Beispiel #1
0
        public ResultModel AuditTaskNode(UserModel user, int taskNodeId, bool isPass, string memo, string logResult, string aids)
        {
            ResultModel result = new ResultModel();

            using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required))
            {
                NFMT.WorkFlow.DAL.TaskNodeDAL taskNodeDAL = new NFMT.WorkFlow.DAL.TaskNodeDAL();
                result = taskNodeDAL.Get(user, taskNodeId);
                if (result.ResultStatus != 0)
                    return result;

                NFMT.WorkFlow.Model.TaskNode taskNode = result.ReturnValue as NFMT.WorkFlow.Model.TaskNode;
                if (taskNode == null || taskNode.TaskNodeId <= 0)
                {
                    result.ResultStatus = -1;
                    result.Message = "任务节点不存在";
                    return result;
                }

                if (taskNode.NodeStatus != StatusEnum.待审核)
                {
                    result.ResultStatus = -1;
                    result.Message = "该节点已审核";
                    return result;
                }

                NFMT.WorkFlow.Model.TaskOperateLog taskOperateLog = new NFMT.WorkFlow.Model.TaskOperateLog()
                {
                    TaskNodeId = taskNode.TaskNodeId,
                    EmpId = user.EmpId,
                    Memo = memo,
                    LogTime = DateTime.Now,
                    LogResult = logResult
                };

                List<NFMT.WorkFlow.Model.TaskAttachOperateLog> taskAttachOperateLogs = new List<TaskAttachOperateLog>();
                if (!string.IsNullOrEmpty(aids))
                {
                    foreach (string s in aids.Split(','))
                    {
                        taskAttachOperateLogs.Add(new TaskAttachOperateLog()
                        {
                            AttachId = Convert.ToInt32(s)
                        });
                    }
                }

                FlowOperate flowOperate = new FlowOperate();
                result = flowOperate.AuditTaskNode(user, taskNode, taskOperateLog, taskAttachOperateLogs, isPass);
                if (result.ResultStatus != 0)
                    return result;

                scope.Complete();
            }

            return result;
        }