/// <summary> /// 构建审批日志 /// </summary> /// <param name="nodeInstance"></param> /// <param name="instanceName"></param> /// <param name="approvalNote"></param> /// <returns></returns> public static ApprovalLog BuildApprovalLog(ProcessNodeInstance nodeInstance, string instanceName, string approvalNote) { ApprovalLog log = new ApprovalLog(); log.NodeType = nodeInstance.NodeType; log.ApprovalNote = approvalNote; log.BizProcessID = nodeInstance.BizProcessID; log.CompletedTime = nodeInstance.LastUpdatedTime; log.CreatedTime = nodeInstance.CreatedTime; log.InstanceName = instanceName; log.NodeInstanceID = nodeInstance.ID; //TODO:huwz log.NodeName = nodeInstance.NodeName + ObjectHelper.EnumDescription((CommonConsts.NodeType)log.NodeType); log.OperationType = nodeInstance.OperationType; log.ProcessID = nodeInstance.ProcessID; log.ProcessInstanceID = nodeInstance.ProcessInstanceID; log.PreviousNodeInstanceID = nodeInstance.PreviousNodeInstanceID; log.Status = 0;//保留字段 log.UserID = nodeInstance.UserID; log.UserName = nodeInstance.UserName; //add czq log.CreateTime = WebHelper.DateTimeNow; log.CreatorName = WebHelper.GetCurrentUser().LoginName; log.IsDeleted = false; log.ModifyTime = WebHelper.DateTimeNow; log.ModifierName = WebHelper.GetCurrentUser().LoginName; return(log); }
public void ApprovalLogAdapterInsertTest() { ApprovalLogAdapter adp = new ApprovalLogAdapter(); ApprovalLog al = new ApprovalLog() { ApprovalNote = "unit_test", BizProcessID = "unit_test", CompletedTime = DateTime.Now, CreatedTime = DateTime.Now.AddHours(-1), CreateTime = DateTime.Now.AddHours(-1), CreatorName = "unit_test", ID = Guid.NewGuid().ToString(), InstanceName = "UINT_TEST_INSTANCE", IsDeleted = false, NodeInstanceID = "201B8623-C22B-4339-9E3B-97C1B214680A", NodeName = "test_add", NodeType = 1, OperationType = 2, PreviousNodeInstanceID = "8AE10C4B-F27B-4566-89DD-FF3ACC4A9EFF", ProcessID = "71173453-63e0-4b56-9d0d-4314d05326d6", ProcessInstanceID = "DD03D6D7-817E-4AEA-9B28-E0A732E98Add", Status = 0, UserID = 1, UserName = "******" }; adp.Insert(al); }
public void ApprovalLogAdapterUpdateTest() { ApprovalLogAdapter adp = new ApprovalLogAdapter(); ApprovalLog al = adp.Load("16BEB142-1067-44FA-9BE6-D52B214AD37E"); al.UserName = "******"; al.NodeName = "UPDATE"; al.IsDeleted = true; adp.Update(al); }
/// <summary> /// 更新节点使用 /// </summary> /// <param name="bizID">BizProcessID</param> /// <param name="nodeID">NodeInstanceID</param> /// <param name="uid">UserID</param> /// <param name="userName">UserName</param> /// <returns></returns> public int UpdateNodeInstance(int bizID, int nodeID, int uid, string userName) { WorkflowInstance instance = WorkflowEngine.WorkflowService.GetWorkflowInstance(bizID); List <ProcessNodeInstance> nodeInstanceList = ProcessNodeInstanceAdapter.Instance.LoadList(instance.ProcessInstance.ID); ProcessNodeInstance nodeInstance = nodeInstanceList.Find(p => p.ID == nodeID); TodoWork todo = null; int result = 0; foreach (var item in instance.TodoWorks) { if (item.TodoType == (int)Wanda.Lib.LightWorkflow.CommonConsts.TodoType.TODO) { todo = item; using (TransactionScope trans = TransactionScopeFactory.Create()) { //待办的处理方式: //删除待办 WorkflowEngine.WorkflowService.CloseWorkflowTodo(todo); //生成已办日志 ApprovalLog log = new ApprovalLog(); log.NodeType = todo.NodeType; log.ApprovalNote = string.Format("{0}将节点更新至{1}", userName, nodeInstance.UserName); log.BizProcessID = todo.BizProcessID; log.CompletedTime = WebHelper.DateTimeNow; log.CreatedTime = todo.CreatedTime; log.InstanceName = todo.InstanceName; log.NodeInstanceID = todo.NodeInstanceID;//TODO:huwz log.NodeName = todo.NodeName; log.OperationType = (int)Wanda.Lib.LightWorkflow.CommonConsts.NodeOperationType.ChangeNode; log.ProcessID = todo.ProcessID; log.ProcessInstanceID = todo.ProcessInstanceID; log.PreviousNodeInstanceID = todo.PreviousNodeInstanceID; log.Status = 0;//保留字段 //log.cUserID = todo.cUserID; //log.UserCode = todo.UserCode; log.CreateTime = WebHelper.DateTimeNow; log.CreatorName = userName; log.UserID = todo.UserID; log.UserName = todo.UserName; log.ID = 0; log.ModifyTime = WebHelper.DateTimeNow; log.ModifierName = userName; ApprovalLogAdapter.Instance.Insert(log); //计算下个节点,生成待办 TodoWork todoNew = WorkflowEngine.BuildTodo(Wanda.Lib.LightWorkflow.CommonConsts.TodoType.TODO, instance.ProcessInstance, nodeInstance); WorkflowEngine.WorkflowService.CreateWorkflowTodo(todoNew); //更新流程节点 int curSqu = -1; foreach (var temp in nodeInstanceList) { if (temp.NodeSeq > nodeInstance.NodeSeq) { temp.Status = (int)Wanda.Lib.LightWorkflow.CommonConsts.NodeStatus.NotExecute; ProcessNodeInstanceAdapter.Instance.Update(temp); continue; } if (temp.NodeSeq < nodeInstance.NodeSeq) { temp.Status = (int)Wanda.Lib.LightWorkflow.CommonConsts.NodeStatus.Executed; if (temp.ID == todo.NodeInstanceID) { curSqu = temp.NodeSeq; } if (curSqu != -1 && temp.NodeSeq >= curSqu) { temp.OperationType = (int)Wanda.Lib.LightWorkflow.CommonConsts.NodeOperationType.ChangeNode; ProcessNodeInstanceAdapter.Instance.Update(temp); } } else { temp.Status = (int)Wanda.Lib.LightWorkflow.CommonConsts.NodeStatus.Executing; temp.OperationType = (int)Wanda.Lib.LightWorkflow.CommonConsts.NodeOperationType.ChangeNode; ProcessNodeInstanceAdapter.Instance.Update(temp); } } if (nodeInstance.NodeType == (int)CommonConsts.NodeType.Archive) { ProcessInstance p = instance.ProcessInstance; p.Status = (int)CommonConsts.ProcessInstanceStatus.Archiving; ProcessInstanceAdapter.Instance.Update(p); } //添加StakeHolder人员 StakeHolder holder = WorkflowEngine.BuildStakeHolder(nodeInstance); StakeHolderAdapter.Instance.Insert(holder); result = nodeID; trans.Complete(); } break; } } return(result); }
private string Request_Process_Message(ApprovalLog one_rqt, string applicaton) { //Basheer canged SOME PARTS on 17-01-2020 to show role string msg = ""; if (one_rqt.Status == "NEW") { msg = msg = applicaton + "-" + one_rqt.RequestId + " was Saved by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + "."; //msg = applicaton + "-" + one_rqt.RequestId + " was Submited from " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } else if (one_rqt.Status == "SUB") { msg = applicaton + "-" + one_rqt.RequestId + " was Submited by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } else if (one_rqt.Status == "INT" || one_rqt.Status == "QIM" || one_rqt.Status == "PIM") { msg = applicaton + "-" + one_rqt.RequestId + " was Approved by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + "."; } else if (one_rqt.Status == "APC") { msg = applicaton + "-" + one_rqt.RequestId + " Approval Cycle completed by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } else if (one_rqt.Status == "PYD" && one_rqt.SequenceNo != 0) //Basheer on 28-05-2020 { msg = applicaton + "-" + one_rqt.RequestId + " was Paid and Closed by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } else if (one_rqt.Status == "REJ") { if (one_rqt.Reason == null) { msg = applicaton + "-" + one_rqt.RequestId + " was Rejected by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } else { msg = applicaton + "-" + one_rqt.RequestId + " was Rejected by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + ". "; } } else if (one_rqt.Status == "CLS") { msg = applicaton + "-" + one_rqt.RequestId + " was Closed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } else if (one_rqt.Status == "HLD") { if (one_rqt.Reason == null) { msg = applicaton + "-" + one_rqt.RequestId + " was Hold by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } else { msg = applicaton + "-" + one_rqt.RequestId + " was Hold by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + ". "; } } else if (one_rqt.Status == "FWD") { if (one_rqt.Reason == null) { msg = applicaton + "-" + one_rqt.RequestId + " was eforwarded by " + one_rqt.From_Name() + " to " + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + "."; } else { msg = applicaton + "-" + one_rqt.RequestId + " was eforwarded by " + one_rqt.From_Name() + " to " + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + "."; } } else if (one_rqt.Status == "ESC") { //Basheer canged on 17-01-2020 to show role //msg = applicaton + "-" + one_rqt.RequestId + " was escalated by " + one_rqt.From_Name() + " to " + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + "."; if (one_rqt.Reason == null) { msg = applicaton + "-" + one_rqt.RequestId + " was escalated by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " to " + one_rqt.RoleId_To + ' ' + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + "."; } else { msg = applicaton + "-" + one_rqt.RequestId + " was escalated by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " to " + one_rqt.RoleId_To + ' ' + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + "."; } } else if (one_rqt.Status == "BKP") { if (one_rqt.Reason == null) { msg = applicaton + "-" + one_rqt.RequestId + " was send back to previous approver by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ".";// 24-02-2020 ARCHANA SRISHTI } else { msg = applicaton + "-" + one_rqt.RequestId + " was send back to previous approver by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + ".";// 24-02-2020 ARCHANA SRISHTI } } else if (one_rqt.Status == "BKI") { if (one_rqt.Reason == null) { msg = applicaton + "-" + one_rqt.RequestId + " was send back to " + one_rqt.To_Name() + " by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + "."; } else { msg = applicaton + "-" + one_rqt.RequestId + " was send back to " + one_rqt.To_Name() + " by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + "."; } } else if (one_rqt.Status == "CNL") { if (one_rqt.Reason == null || one_rqt.Reason == "") //Basheer on 04-02-2020 { msg = applicaton + "-" + one_rqt.RequestId + " was cancelled by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + "."; //21-02-2020 ARCHANA SRISHI UPDATED WITH ROLE ID } else { msg = applicaton + "-" + one_rqt.RequestId + " was cancelled by " + one_rqt.RoleId + ' ' + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + ".";//21-02-2020 ARCHANA SRISHI UPDATED WITH ROLE ID } } else if (one_rqt.Status == "EDT") { msg = applicaton + "-" + one_rqt.RequestId + " was edited by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + "."; } else if (one_rqt.Status == "UPC") { msg = applicaton + "-" + one_rqt.RequestId + " is currently being processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ".";//28-02-2020 ARCHANA K V SRISHTI } else if (one_rqt.Status == "RRT") { if (one_rqt.Reason == null) { msg = applicaton + "-" + one_rqt.RequestId + " was rerouted by " + one_rqt.From_Name() + " to " + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + "."; } else { msg = applicaton + "-" + one_rqt.RequestId + " was rerouted by " + one_rqt.From_Name() + " to " + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + ", Remark : " + one_rqt.Reason + "."; } } else if (one_rqt.Status == "DST") { msg = one_rqt.RoleId_To + " " + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + "."; } else if (one_rqt.Status == "EDIT") //Basheer on 06-02-2020 { msg = msg = applicaton + "-" + one_rqt.RequestId + " was Edited by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + "."; //msg = applicaton + "-" + one_rqt.RequestId + " was Submited from " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp + ". "; } //Basheer on 28-05-2020 for TA requests else if (one_rqt.Status == "TAP")// CASH ADVANCE NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Cash advance (Cash Paid) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "NTP")// CASH ADVANCE NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Cash advance (Cash not Paid) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "TRD")// TICKET READY { msg = applicaton + "-" + one_rqt.RequestId + " Travel Ticket Booking (Ticket Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "TNR") // TICKET NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Travel Ticket Booking (Ticket not Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "CRD") //RENT CAR READY { msg = applicaton + "-" + one_rqt.RequestId + " Rent a car Booking (Car Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "CNR") // RENT CAR NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Rent a car Booking (Car not Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "HBD") // HOTEL BOOKING READY { msg = applicaton + "-" + one_rqt.RequestId + " Hotel Booking (Hotel Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "HNR") // HOTEL BOOKING NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Hotel Booking (Hotel not Ready) not Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "VRD") // EXIT ENTRY VISA READY { msg = applicaton + "-" + one_rqt.RequestId + " Exit Entry Visa (Visa Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "VNR") // EXIT ENTRY VISA NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Exit Entry Visa (Visa not Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "FRD") // FOREIGN VISA READY { msg = applicaton + "-" + one_rqt.RequestId + " Foreign Visa (Visa Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "FNR") // FOREIGN VISA NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Foreign Visa (Visa not Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "IRD") // TRAVEL INSURANCE READY { msg = applicaton + "-" + one_rqt.RequestId + " Travel Insurance (Insurance Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "INR") // TRAVEL INSURANCE NOT READY { msg = applicaton + "-" + one_rqt.RequestId + " Travel Insurance (Insurance not Ready) is Processed by " + one_rqt.From_Name() + " on " + one_rqt.TimeStamp; } else if (one_rqt.Status == "PRSEMAIL") //07-07-2020 Basheer { msg = one_rqt.RoleId_To + " " + one_rqt.To_Name() + " on " + one_rqt.TimeStamp + "."; } return(msg); }