private void InitControl(WF_WorkFlow workFlow, List <WF_Process> currApprovers) { if (workFlow.IsFinish) { return; } var currentUser = RequestSession.GetSessionUser(); if (currentUser == null) { return; } if (workFlow.Requester.Equals(currentUser.UserId.ToString())) { if (workFlow.WFStatus == (int)OperateEnum.Reject || workFlow.WFStatus == (int)OperateEnum.Cancel) { btn_resubmit.Visible = true; } btn_cancel.Visible = true; } else { var currApprover = currApprovers.Where(c => currentUser.Equals(c.ApproverID)).FirstOrDefault(); if (currApprover != null) { btn_approve.Visible = true; btn_return.Visible = true; } } }
/// <summary> /// 创建工作流 /// </summary> /// <param name="contractId">合同ID</param> /// <param name="contractAmount">合同金额</param> /// <returns></returns> public string CreateWorkFlow(string contractId, string currentUserId, double contractAmount) { string retMsg = "true"; if (string.IsNullOrWhiteSpace(contractId) || contractAmount <= 0) { retMsg = "合同不存在或合同金额错误"; return(retMsg); } var workFlowInfo = GetWorkFlowInfoByAmount(contractAmount); if (workFlowInfo == null) { retMsg = "流程不存在"; return(retMsg); } var activities = GetWorkActivity(workFlowInfo.ID); var wfId = Guid.NewGuid().ToString(); var workFlow = new WF_WorkFlow() { ContractId = contractId, Creater = currentUserId, CreateTime = DateTime.Now, CurrentActivityId = "", NextActivityId = "", Id = Guid.NewGuid().ToString(), Requester = currentUserId, StatusDescrip = "", WFStatus = (int)WorkFlowStatus.Approving, WorkInfoId = workFlowInfo.ID }; using (var context = WDbContext()) { context.Insert("WF_WorkFlow") .Column("Id", workFlow.Id) .Column("WorkInfoId", workFlow.WorkInfoId) .Column("ContractId", workFlow.ContractId) .Column("WFStatus", (int)WorkFlowStatus.Approving) .Column("CurrentActivityId", workFlow.CurrentActivityId) .Column("NextActivityId", workFlow.NextActivityId) .Column("Requester", workFlow.Requester) .Column("Creater", workFlow.Creater) .Column("CreateTime", workFlow.CreateTime) .Column("IsFinish", "0") .Execute(); } foreach (var itm in activities) { if (itm.Step == 1) { AddProcess(itm, workFlow); } //if (itm.ApproveType != (int)ApproveType.Skip) { // break; //} } return(retMsg); }
/// <summary> /// 根据ID获取流程信息 /// </summary> /// <param name="flowInfoId"></param> /// <returns></returns> public WF_WorkFlow GetWorkFlow(string flowInfoId) { WF_WorkFlow retData = null; if (string.IsNullOrEmpty(flowInfoId)) { return(retData); } using (var context = WDbContext()) { retData = context.Sql(@"select id,WorkInfoId,ContractId,CurrentActivityId,NextActivityId,StatusDescrip,WFStatus,IsFinish,Requester,Creater,CreateTime from WF_WorkFlow where id=@id") .Parameter("id", flowInfoId) .QuerySingle <WF_WorkFlow>(); return(retData); } }
public static Common.Business.WF_WorkFlow Fetch(WF_WorkFlow data) { Common.Business.WF_WorkFlow item = (Common.Business.WF_WorkFlow)Activator.CreateInstance(typeof(Common.Business.WF_WorkFlow)); //using (ObjectFactory.BypassPropertyChecks(item)) { item.Client = data.Client; item.WorkflowId = data.WorkflowId; item.WorkflowName = data.WorkflowName; item.WorkflowGroup = data.WorkflowGroup; item.InitialState = data.InitialState; item.Stoped = data.Stoped; item.Description = data.Description; item.TimeStamp = data.TimeStamp; item.CreatedUser = data.CreatedUser; item.CreatedDate = data.CreatedDate; item.ChangedUser = data.ChangedUser; item.ChangedDate = data.ChangedDate; } ObjectFactory.MarkAsChild(item); ObjectFactory.MarkOld(item); return(item); }
/// <summary> /// 添加过程 /// </summary> /// <param name="activity"></param> /// <returns></returns> public int AddProcess(WF_Activity activity, WF_WorkFlow workFlow) { var execResult = 0; if (activity == null || workFlow == null) { return(execResult); } int? operate = null; DateTime?operateTime = null; string remark = ""; bool isFinish = false; // List<UserInfo> userList = new List<UserInfo>(); //switch (activity.ApproveType) //{ // //case (int)ApproveType.Department: // // userList = GetUserByDepartId(activity.Department); // // break; // //case (int)ApproveType.Group: // // userList = GetUserByGroupId(activity.GroupId); // // break; // case (int)ApproveType.Role: // userList = GetUserByRole(activity.RoleId); // break; // //case (int)ApproveType.Skip: // // userList.Add(new UserInfo() // // { // // User_ID = workFlow.Requester // // }); // // operate = (int)OperateEnum.Submit; // // operateTime = DateTime.Now; // // remark = "合同提交"; // // isFinish = true; // // break; // //case (int)ApproveType.Submitter: // // userList.Add(new UserInfo() // // { // // User_ID = workFlow.Requester // // }); // // break; // default: // break; //} using (var context = WDbContext()) { //foreach (var itm in userList) //{ execResult += context.Insert("WF_Process") .Column("WorFlowId", workFlow.Id) .Column("ActivityId", activity.Id) .Column("Step", activity.Step) .Column("ApproverID", RequestSession.GetSessionUser().UserId.ToString()) .Column("Operate", operate) .Column("operateTime", operateTime) .Column("Remark", remark) .Column("IsFinish", isFinish) .Column("CreateTime", DateTime.Now) .Execute(); // } //更新流程状态 context.Update("WF_WorkFlow") .Column("CurrentActivityId", activity.Id) .Where("Id", workFlow.Id) .Execute(); } return(execResult); }