/// <summary> /// 网格数据处理 /// </summary> /// <param name="data"></param> /// <param name="otherParams"></param> /// <param name="currUser"></param> public bool PageGridDataHandle(List <Bpm_WorkToDoList> data, object[] otherParams = null, UserInfo currUser = null) { if (data != null && data.Count > 0) { string errMsg = string.Empty; foreach (Bpm_WorkToDoList todo in data) { todo.ModuleName = SystemOperate.GetModuleNameById(todo.ModuleId); if (!todo.Bpm_WorkFlowInstanceId.HasValue) { continue; } Bpm_WorkFlowInstance flowInst = BpmOperate.GetWorkflowInstanceById(todo.Bpm_WorkFlowInstanceId.Value); if (flowInst == null) { continue; } todo.StatusOfEnum = flowInst.StatusOfEnum; int status = (int)flowInst.StatusOfEnum; Bpm_WorkToDoList tempTodo = CommonOperate.GetEntity <Bpm_WorkToDoList>(x => x.Bpm_WorkFlowInstanceId == todo.Bpm_WorkFlowInstanceId.Value && x.Status == status, null, out errMsg); if (tempTodo != null && !string.IsNullOrEmpty(todo.NextNodeHandler)) { List <Guid> tempEmpIds = tempTodo.NextNodeHandler.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(x => x.ObjToGuid()).Where(x => x != Guid.Empty).ToList(); if (tempEmpIds.Count > 0) { todo.OrgM_EmpName = string.Join(",", tempEmpIds.Select(x => OrgMOperate.GetEmpNameContainsQuit(x)).Where(x => !string.IsNullOrEmpty(x))); } } } } return(false); }
/// <summary> /// 操作前验证,如果流程已经在运行则不能删除 /// </summary> /// <param name="operateType"></param> /// <param name="t"></param> /// <param name="errMsg"></param> /// <param name="otherParams"></param> /// <returns></returns> public bool BeforeOperateVerifyOrHandle(ModelRecordOperateType operateType, Bpm_WorkFlow t, out string errMsg, object[] otherParams = null) { errMsg = string.Empty; if (operateType == ModelRecordOperateType.Del) { //如果该流程存在流程实例则不允许删除 Bpm_WorkFlowInstance workflowInst = CommonOperate.GetEntity <Bpm_WorkFlowInstance>(x => x.Bpm_WorkFlowId == t.Id, null, out errMsg); if (workflowInst != null) { errMsg = "运行中的流程不允许删除!"; return(false); } } else if (operateType == ModelRecordOperateType.Add) { if (t.ValidEndTime != null && t.ValidEndTime.Value <= DateTime.Now) { errMsg = "结束时间必须大于今天!"; return(false); } if (t.ValidEndTime != null) { if (t.ValidStartTime == null) { errMsg = "设置了结束时间必须也要设置起始时间!"; return(false); } else if (t.ValidStartTime.Value < DateTime.Now) { errMsg = "起始时间必须大于等于今天!"; return(false); } } if (t.ValidStartTime == null && t.ValidEndTime == null) { if (BpmOperate.GetAllWorkflows(x => x.Sys_ModuleId == t.Sys_ModuleId && x.ValidStartTime == null && x.ValidEndTime == null).Count > 0) { errMsg = "该模块已经存在了默认流程(起始时间和结束时间为空),不允许再添加默认流程!"; return(false); } } } return(true); }
/// <summary> /// 操作前验证 /// </summary> /// <param name="operateType"></param> /// <param name="ts"></param> /// <param name="errMsg"></param> /// <param name="otherParams"></param> /// <returns></returns> public bool BeforeOperateVerifyOrHandles(ModelRecordOperateType operateType, List <Bpm_WorkFlow> ts, out string errMsg, object[] otherParams = null) { errMsg = string.Empty; if (operateType == ModelRecordOperateType.Del) { foreach (Bpm_WorkFlow t in ts) { //如果该流程存在流程实例则不允许删除 Bpm_WorkFlowInstance workflowInst = CommonOperate.GetEntity <Bpm_WorkFlowInstance>(x => x.Bpm_WorkFlowId == t.Id, null, out errMsg); if (workflowInst != null) { errMsg += string.Format("【{0}】,", t.Name); } } if (errMsg.Length > 0) { errMsg = string.Format("流程{0}正在运行不允许删除!", errMsg); return(false); } } return(true); }