public bool SupTaskNodeSave(string loginKey, ref ErrorInfo err, ProInterface.Models.TNode inEnt) { if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } GlobalUser gu = Global.GetUser(loginKey); using (DBEntities db = new DBEntities()) { FunTask.SupUpDataTaskFlow(gu, ref err, db, inEnt.ID, inEnt.ToFlowNodeID, inEnt.Remark); if (err.IsError) { return(false); } YL_TASK_FLOW taskFlow = db.YL_TASK_FLOW.SingleOrDefault(x => x.ID == inEnt.ID); try { db.SaveChanges(); return(true); } catch (DbEntityValidationException error) { err.IsError = true; err.Message = error.Message; return(false); } } }
public bool TaskFlowSave(string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.TTaskFlow inEnt, IList <string> allPar) { if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { GlobalUser gu = Global.GetUser(loginKey); if (gu == null) { err.IsError = true; err.Message = "登录超时"; return(false); } var flow = db.YL_TASK_FLOW.Single(x => x.ID == inEnt.ID); if (string.IsNullOrEmpty(inEnt.ROLE_ID_STR)) //无转派 { flow.DEAL_STATUS = "处理完成"; if (flow.PARENT_ID != null) //有上级 { //是否全部处理 var noDealNum = flow.YL_TASK_FLOW2.YL_TASK_FLOW1.Where(x => x.IS_HANDLE == 0 && x.ID != flow.ID).Count(); if (noDealNum == 0) { var taskFlowNext2 = new YL_TASK_FLOW(); taskFlowNext2.ID = Fun.GetSeqID <YL_TASK_FLOW>(); taskFlowNext2.HANDLE_USER_ID = flow.YL_TASK_FLOW2.HANDLE_USER_ID; //taskFlowNext2.DEAL_USER_NAME = flow.YL_TASK_FLOW2.DEAL_USER_NAME; taskFlowNext2.LEVEL_ID = flow.LEVEL_ID + 1; taskFlowNext2.NAME = flow.YL_TASK_FLOW2.NAME; taskFlowNext2.HANDLE_URL = "~/TaskFlow/Handle"; taskFlowNext2.SHOW_URL = "~/TaskFlow/Single"; taskFlowNext2.IS_HANDLE = 0; taskFlowNext2.PARENT_ID = flow.YL_TASK_FLOW2.PARENT_ID; taskFlowNext2.TASK_ID = flow.TASK_ID; db.YL_TASK_FLOW.Add(taskFlowNext2); } } else { flow.YL_TASK.STATUS = "完成"; flow.YL_TASK.STATUS_TIME = DateTime.Now; } } else //转派 { flow.DEAL_STATUS = "分派处理"; if (!string.IsNullOrEmpty(inEnt.UserIdArrStr)) { IList <int> userIdArr = inEnt.UserIdArrStr.Split(',').Where(x => x.IsInt32()).Select(x => Convert.ToInt32(x)).ToList(); var allUser = db.YL_USER.Where(x => userIdArr.Contains(x.ID)).ToList(); var allRole = db.YL_ROLE.Where(x => x.YL_USER.Where(y => userIdArr.Contains(y.ID)).Count() > 0).ToList(); flow.ROLE_ID_STR = string.Join(",", allRole.Select(x => x.ID).ToList()); foreach (var t in flow.YL_TASK_FLOW1.ToList()) { if (allUser.SingleOrDefault(x => x.ID == t.HANDLE_USER_ID) == null) { db.YL_TASK_FLOW.Remove(t); } } foreach (var user in allUser) { YL_TASK_FLOW taskFlowNext1 = flow.YL_TASK_FLOW1.SingleOrDefault(x => x.HANDLE_USER_ID == user.ID); if (taskFlowNext1 == null) { taskFlowNext1 = new YL_TASK_FLOW(); taskFlowNext1.ID = Fun.GetSeqID <YL_TASK_FLOW>(); taskFlowNext1.HANDLE_USER_ID = user.ID; //taskFlowNext1.DEAL_USER_NAME = user.NAME; taskFlowNext1.LEVEL_ID = flow.LEVEL_ID + 1; taskFlowNext1.NAME = "承办人办理"; taskFlowNext1.HANDLE_URL = "~/TaskFlow/Handle"; taskFlowNext1.SHOW_URL = "~/TaskFlow/Single"; taskFlowNext1.IS_HANDLE = 0; taskFlowNext1.YL_TASK_FLOW2 = flow; taskFlowNext1.TASK_ID = flow.TASK_ID; flow.YL_TASK_FLOW1.Add(taskFlowNext1); } } } else //角色下所有用户 { } } flow.IS_HANDLE = 1; //if (!string.IsNullOrEmpty(inEnt.AllFilesStr)) //{ // var fileIdList = ProInterface.JSON.EncodeToEntity<IList<FILES>>(inEnt.AllFilesStr).Select(x => x.ID); // flow.YL_FILES.Clear(); // flow.YL_FILES = db.YL_FILES.Where(x => fileIdList.Contains(x.ID)).ToList(); //} //flow.REMARK = inEnt.REMARK; db.SaveChanges(); return(true); } }
/// <summary> /// 修改任务 /// </summary> /// <param name="loginKey">登录凭证</param> /// <param name="err">错误信息</param> /// <param name="inEnt">实体类</param> /// <param name="allPar">更新的参数</param> /// <returns>修改任务</returns> public bool TaskSave(string loginKey, ref ProInterface.ErrorInfo err, ProInterface.Models.TTask inEnt, IList <string> allPar) { if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { GlobalUser gu = Global.GetUser(loginKey); if (gu == null) { err.IsError = true; err.Message = "登录超时"; return(false); } var ent = db.YL_TASK.SingleOrDefault(a => a.ID == inEnt.ID); YL_TASK_FLOW taskFlow0 = new YL_TASK_FLOW(); bool isAdd = false; if (ent == null) { isAdd = true; if (inEnt.FLOW_ID != null && inEnt.FLOW_ID.Value != 0) { #region 非任务工单 YL_FLOW flow = db.YL_FLOW.SingleOrDefault(x => x.ID == inEnt.FLOW_ID); TNode tnode = new TNode(); tnode.FlowID = inEnt.FLOW_ID.Value; tnode.TaskName = inEnt.TASK_NAME; tnode.AllFilesStr = inEnt.AllFilesStr; tnode.UserIdArrStr = inEnt.UserIdArrStr; tnode.Remark = inEnt.REMARK; FunTask.StartTask(db, ref err, gu, tnode, inEnt.NowSubmitType); #endregion } else { #region 任务工单 FunTask.StartTaskNoFlow(db, ref err, gu, inEnt.TASK_NAME, inEnt.REMARK, inEnt.AllFilesStr, inEnt.UserIdArrStr, inEnt.ROLE_ID_STR); #endregion } } else { ent = Fun.ClassToCopy <ProInterface.Models.TASK, YL_TASK>(inEnt, ent, allPar); } db.SaveChanges(); UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(true); } catch (DbEntityValidationException e) { err.IsError = true; err.Message = Fun.GetDbEntityErrMess(e); return(false); } catch (Exception e) { err.IsError = true; err.Message = Fun.GetExceptionMessage(e); return(false); } } }