Beispiel #1
0
        public ActionResult reject(int id)
        {
            int wfpid = id;

            //2.0 修改id对应的数据 中的 处理状态为 拒绝 处理理由,ext1字段为当前登录用户的uid
            string msg = Request.Form["msg"];

            if (msg.IsEmpty())
            {
                return(WriteError("处理理由非空"));
            }

            var process = processSer.QueryWhere(c => c.wfPID == wfpid).FirstOrDefault();

            if (process.wfRFStatus != (int)Enums.ERequestFormStatus.Processing)
            {
                return(WriteError("此单已经被您处理,请勿重复处理"));
            }

            //2.0 对实体进行更新操作
            process.wfRFStatus     = (int)Enums.ERequestFormStatus.Reject;
            process.wfPDescription = msg;
            process.wfPExt1        = UserMgr.GetCurrentUserInfo().uID.ToString();

            var endNode = process.wfWorkNodes.wfWork.wfWorkNodes.OrderBy(c => c.wfnOrderNo).LastOrDefault();

            //3.0 增加一条结束数据
            wfProcess endProcess = new wfProcess()
            {
                fUpdateTime    = DateTime.Now,
                fCreateTime    = DateTime.Now,
                fCreatorID     = UserMgr.GetCurrentUserInfo().uID,
                wfPExt1        = UserMgr.GetCurrentUserInfo().uID.ToString(),
                wfPDescription = "申请单已经结束",
                wfRFStatus     = (int)Enums.ERequestFormStatus.Pass,
                wfRFID         = process.wfRFID,
                wfnID          = endNode.wfnID
            };

            //新增一条结束明细数据
            processSer.Add(endProcess);

            //4.0 将当前提交单的状态修改拒绝状态
            wfRequestForm rfmodel = new wfRequestForm()
            {
                wfRFID     = process.wfRFID,
                wfRFStatus = (int)Enums.ERequestFormStatus.Reject
            };

            requestformSer.Edit(rfmodel, new string[] { "wfRFStatus" });

            using (System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope())
            {
                processSer.SaveChanges();

                scop.Complete();
            }

            return(WriteSuccess("申请单已经拒绝"));
        }
        public ActionResult add(wfRequestFormView model)
        {
            if (ModelState.IsValid == false)
            {
                return(WriteError("实体属性验证失败"));
            }

            int uid = UserMgr.GetCurrentUserInfo().uID;

            //补全数据
            model.fCreateTime = DateTime.Now;
            model.fUpdateTime = DateTime.Now;
            model.fCreatorID  = UserMgr.GetCurrentUserInfo().uID;
            model.wfRFStatus  = (int)Enums.ERequestFormStatus.Processing;

            //2.0 将实体追加到EF容器
            wfRequestForm entity = model.EntityMap();

            requestformSer.Add(entity);

            using (System.Transactions.TransactionScope scop = new System.Transactions.TransactionScope())
            {
                requestformSer.SaveChanges();

                //获取当前新增的申请单的最新主键值
                int wfRFID = entity.wfRFID;

                //2.0.1 根据wfid获取工作流下面的第1,2个节点数据
                var nodes = workSer.QueryWhere(c => c.wfID == model.wfID).FirstOrDefault().wfWorkNodes
                            .OrderBy(c => c.wfnOrderNo).ToList();

                //判断nodes是否有值
                if (nodes == null || nodes.Count() < 2)
                {
                    return(WriteError("您所选的工作流中不存在节点数据,请联系管理"));
                }

                //2.0.2 获取当前登录用户所在的角色
                var role = userinfoRoleSer.QueryWhere(c => c.uID == uid).FirstOrDefault();

                //3.0 向wfProcess表中插入数据
                //3.0.1 向wfProcess表中插入数据一条申请成功的数据
                wfProcess process = new wfProcess()
                {
                    fCreateTime    = DateTime.Now,
                    fCreatorID     = UserMgr.GetCurrentUserInfo().uID,
                    fUpdateTime    = DateTime.Now,
                    wfnID          = nodes[0].wfnID,
                    wfPDescription = "申请单已经提交",
                    wfProcessor    = role.rID,
                    wfRFID         = wfRFID,
                    wfPExt1        = UserMgr.GetCurrentUserInfo().uID.ToString(),
                    wfRFStatus     = (int)Enums.ERequestFormStatus.Pass //通过
                };
                //追加到EF容器
                processSer.Add(process);

                //3.0.2 向wfProcess表中插入数据一条审批节点的审批数据
                int secWfnid = nodes[1].wfnID;
                int roleType = nodes[1].wfnRoleType;                            //次节点的审批角色类型
                int eDeptID  = UserMgr.GetCurrentUserInfo().uWorkGroupID.Value; //获取当前申请人所在的部门

                //获取当前节点的审批角色id
                int processRoleid = roleSer.QueryWhere(c => c.eDepID == eDeptID && c.RoleType == roleType).FirstOrDefault().rID;

                wfProcess process1 = new wfProcess()
                {
                    fCreateTime    = DateTime.Now,
                    fCreatorID     = UserMgr.GetCurrentUserInfo().uID,
                    fUpdateTime    = DateTime.Now,
                    wfnID          = secWfnid,
                    wfPDescription = "",
                    wfProcessor    = processRoleid,
                    wfRFID         = wfRFID,
                    wfRFStatus     = (int)Enums.ERequestFormStatus.Processing //处理中
                };

                //追加到EF容器
                processSer.Add(process1);

                processSer.SaveChanges();

                scop.Complete();
            }
            return(WriteSuccess("新增成功"));
        }
Beispiel #3
0
 public static wfRequestFormView EntityMap(this wfRequestForm model)
 {
     //2.0 将一个实体转换成另外一个实体
     return(Mapper.Map <wfRequestForm, wfRequestFormView>(model));
 }
Beispiel #4
0
 public static wfRequestFormView EntityMap(this wfRequestForm model)
 {
     return(Mapper.Map <wfRequestForm, wfRequestFormView>(model));
 }