Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        /// <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);
                }
            }
        }