随笔 - 95,  文章 - 0,  评论 - 0,  阅读 - 14253
复制代码
  if(actionName == "Submit")
        {
            H3.DataModel.BizObject masterBo = this.Request.BizObject;
            //下班时间
            DateTime Checkinperiod = Convert.ToDateTime(masterBo["Checkinperiod"]);
            //获取是否按钮
            bool switchOT = Convert.ToBoolean(masterBo["SwitchOT"]);

            DateTime swo = Convert.ToDateTime("18:00");

            string Checkintype = masterBo["Checkintype"] + string.Empty;
            if(switchOT && Checkinperiod > swo && Checkintype == "下班打卡")
            {
                //获取D002033d77c757585ff46658b0465482e43fec7表单的表单结构对象
                H3.DataModel.BizObjectSchema aSchema = Engine.BizObjectManager.GetPublishedSchema("D002033d77c757585ff46658b0465482e43fec7");
                //new一个D002033d77c757585ff46658b0465482e43fec7表单的业务对象
                H3.DataModel.BizObject aBo = new H3.DataModel.BizObject(this.Engine, aSchema, this.Request.UserContext.UserId);
                //设置业务对象的创建人为当前登录人
                aBo["F0000006"] = masterBo["Signinperson"];
                //加班开始时间
                aBo["F0000002"] = DateTime.Parse(Checkinperiod.Year + "/" + Checkinperiod.Month + "/" + Checkinperiod.Day + " 18:00:00");
                //加班结束时间
                aBo["F0000003"] = Checkinperiod;
                //审批人
                aBo["F0000005"] = "b1da064e-be77-4a1b-89a7-4b6abc4da1f3";
                //加班时长
                TimeSpan otTime = Checkinperiod - swo;
                aBo["F0000004"] = otTime.TotalHours;
                //设置业务对象数据为生效状态
                // aBo.Status = H3.DataModel.BizObjectStatus.Effective;

                //设置流程id
                string instanceId = System.Guid.NewGuid().ToString();
                if(string.IsNullOrEmpty(aBo.WorkflowInstanceId))
                    aBo.WorkflowInstanceId = instanceId;

                //将业务对象创建到数据库中,即创建到表名为i_D000001Account的表中
                aBo.Create();

                //激活流程
                H3.Workflow.Instance.WorkflowInstance wfInstance = this.Engine.WorkflowInstanceManager.GetWorkflowInstance(aBo.WorkflowInstanceId);
                if(wfInstance == null)
                {
                    //启动流程
                    string workItemID = string.Empty;
                    string errorMsg = string.Empty;
                    H3.Workflow.Template.WorkflowTemplate wfTemp = this.Engine.WorkflowTemplateManager.GetDefaultWorkflow(aBo.Schema.SchemaCode);
                    this.Engine.Interactor.OriginateInstance(this.Request.UserContext.UserId, aBo.Schema.SchemaCode,
                        wfTemp.WorkflowVersion, aBo.ObjectId, aBo.WorkflowInstanceId, H3.Workflow.WorkItem.AccessMethod.Web,
                        true, string.Empty, true, out workItemID, out errorMsg);
                }//第七个参数 false/true 为是否提交流程操作

            }
        }
复制代码

 

posted on   天涯何  阅读(90)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示