1. 程式人生 > 其它 >實現自動下班打卡計算時長

實現自動下班打卡計算時長

  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 為是否提交流程操作 } }