Пример #1
0
        public bool ApproveForm(string keyValue, string applyId, AptitudeinvestigateauditEntity aentity)
        {
            SafeMeasureEntity entity    = safeMeasure.GetEntity(keyValue);
            Operator          curUser   = OperatorProvider.Provider.Current();
            string            status    = "";
            string            curFlowId = string.Empty;

            aentity.AUDITPEOPLEID = curUser.UserId;
            aentity.AUDITDEPTID   = curUser.DeptId;
            aentity.APTITUDEID    = keyValue;
            aentity.APPLYID       = applyId;
            aentity.FlowId        = entity.FlowId;
            ManyPowerCheckEntity mpcEntity = service.CheckAuditPower(curUser, out status, "安措计划调整审批", curUser.DeptId, out curFlowId);

            aentity.Disable = aentity.AUDITRESULT == "1" ? "1" : "0";

            SafeAdjustmentEntity adjustmentEntity = service.GetEntity(entity.Id);

            if (mpcEntity != null)
            {
                if (status == "0")
                {
                    return(false);
                }
                else
                {
                    aentity.Create();
                    new AptitudeinvestigateauditBLL().SaveForm("", aentity);
                    entity.FlowId       = mpcEntity.ID;
                    entity.FlowRoleName = mpcEntity.CHECKROLENAME;
                    entity.FlowDept     = mpcEntity.CHECKDEPTID;
                    entity.FlowDeptName = mpcEntity.CHECKDEPTNAME;
                    entity.IsCommit     = "1";
                    if (aentity.AUDITRESULT == "1")
                    {
                        //调整审批不通过
                        entity.FlowName = "审批不通过";
                        entity.Stauts   = "审批不通过";
                        adjustmentEntity.AdjustStauts = "审批不通过";
                        entity.IsOver = 1;
                    }
                    else
                    {
                        entity.FlowName = mpcEntity.FLOWNAME;
                        entity.IsOver   = 0;
                        if (mpcEntity.CHECKROLENAME.Equals("公司领导"))
                        {
                            entity.Stauts = mpcEntity.CHECKROLENAME;
                            adjustmentEntity.AdjustStauts = mpcEntity.CHECKROLENAME;
                        }
                        else
                        {
                            entity.Stauts = mpcEntity.CHECKDEPTNAME + mpcEntity.CHECKROLENAME;
                            adjustmentEntity.AdjustStauts = mpcEntity.CHECKDEPTNAME + mpcEntity.CHECKROLENAME;
                        }
                    }
                    entity.ProcessState           = 2;
                    adjustmentEntity.ProcessState = 2;
                    safeMeasure.UpdateForm(keyValue, entity);
                    service.UpdateAdjustment(adjustmentEntity);
                    return(true);
                }
            }
            else
            {
                if (status == "0")
                {
                    return(false);
                }
                else
                {
                    aentity.Create();
                    new AptitudeinvestigateauditBLL().SaveForm("", aentity);
                    entity.FlowId                 = "";
                    entity.FlowRoleName           = "";
                    entity.FlowDept               = "";
                    entity.FlowDeptName           = "";
                    entity.IsOver                 = 1;
                    entity.IsCommit               = "1";
                    entity.ProcessState           = 3;
                    adjustmentEntity.ProcessState = 3;
                    entity.Stauts                 = aentity.AUDITRESULT == "1" ? "审批不通过" : "审批通过";
                    if (aentity.AUDITRESULT == "0")
                    {
                        //审批通过,更新调整费用和调整时间

                        if (adjustmentEntity != null)
                        {
                            if (adjustmentEntity.IsAdjustFee == 1)
                            {
                                entity.Cost = Convert.ToDouble(adjustmentEntity.AdjustFee);
                            }
                            if (adjustmentEntity.IsDelay == 1)
                            {
                                entity.PlanFinishDate = entity.PlanFinishDate.Value.AddDays(Convert.ToDouble(adjustmentEntity.DelayDays));
                            }
                        }
                    }
                    safeMeasure.UpdateForm(keyValue, entity);
                    adjustmentEntity.AdjustStauts = aentity.AUDITRESULT == "1" ? "审批不通过" : "审批通过";
                    service.UpdateAdjustment(adjustmentEntity);
                    return(true);
                }
            }
        }
Пример #2
0
        public void SubmitForm(SafeAdjustmentEntity adjustmentEntity)
        {
            adjustmentEntity.ID = Guid.NewGuid().ToString();
            Operator             curUser   = OperatorProvider.Provider.Current();
            string               flowid    = string.Empty;
            string               status    = string.Empty;
            string               curFlowId = string.Empty;
            SafeMeasureEntity    entity    = safeMeasure.GetEntity(adjustmentEntity.SafeMeasureId);
            ManyPowerCheckEntity mpcEntity = service.CheckAuditPower(curUser, out status, "安措计划调整审批", curUser.DeptId, out curFlowId);


            if (mpcEntity != null)
            {
                //如果当前登录人是审核人,直接审核通过
                if (status.Equals("1"))
                {
                    AptitudeinvestigateauditEntity aentity = new AptitudeinvestigateauditEntity();
                    aentity.Create();
                    aentity.AUDITPEOPLEID = curUser.UserId;
                    aentity.AUDITPEOPLE   = curUser.UserName;
                    aentity.AUDITDEPTID   = curUser.DeptId;
                    aentity.AUDITDEPT     = curUser.DeptName;
                    aentity.APTITUDEID    = entity.Id;
                    aentity.APPLYID       = adjustmentEntity.ID;
                    aentity.FlowId        = curFlowId;//mpcEntity.ID;
                    aentity.AUDITTIME     = DateTime.Now;
                    aentity.AUDITRESULT   = "0";
                    aentity.Disable       = "0";
                    new AptitudeinvestigateauditBLL().SaveForm("", aentity);
                    if (mpcEntity.CHECKROLENAME.Equals("公司领导"))
                    {
                        entity.Stauts = mpcEntity.CHECKROLENAME;
                        adjustmentEntity.AdjustStauts = mpcEntity.CHECKROLENAME;
                    }
                    else
                    {
                        entity.Stauts = mpcEntity.CHECKDEPTNAME + mpcEntity.CHECKROLENAME;
                        adjustmentEntity.AdjustStauts = mpcEntity.CHECKDEPTNAME + mpcEntity.CHECKROLENAME;
                    }
                    entity.ProcessState           = 2;
                    adjustmentEntity.ProcessState = 2;
                }
                else
                {
                    if (mpcEntity.CHECKROLENAME.Equals("公司领导"))
                    {
                        entity.Stauts = mpcEntity.CHECKROLENAME;
                        adjustmentEntity.AdjustStauts = mpcEntity.CHECKROLENAME;
                    }
                    else
                    {
                        entity.Stauts = curUser.DeptName + mpcEntity.CHECKROLENAME;
                        adjustmentEntity.AdjustStauts = curUser.DeptName + mpcEntity.CHECKROLENAME;
                    }
                    entity.ProcessState           = 1;
                    adjustmentEntity.ProcessState = 1;
                }
                entity.FlowId       = mpcEntity.ID;
                entity.FlowName     = mpcEntity.FLOWNAME;
                entity.FlowRole     = mpcEntity.CHECKROLEID;
                entity.FlowRoleName = mpcEntity.CHECKROLENAME;
                entity.FlowDept     = mpcEntity.CHECKDEPTID;
                entity.FlowDeptName = mpcEntity.CHECKDEPTNAME;
                entity.IsCommit     = "1";
                entity.IsOver       = 0;
            }
            else
            {
                entity.FlowId                 = "";
                entity.FlowName               = "";
                entity.FlowRole               = "";
                entity.FlowRoleName           = "";
                entity.FlowDept               = "";
                entity.FlowDeptName           = "";
                entity.IsCommit               = "1";
                entity.IsOver                 = 1;
                entity.Stauts                 = "审批通过";
                entity.ProcessState           = 3;
                adjustmentEntity.ProcessState = 3;
                //审批通过,更新调整费用和调整时间
                if (adjustmentEntity.IsAdjustFee == 1)
                {
                    entity.Cost = Convert.ToDouble(adjustmentEntity.AdjustFee);
                }
                if (adjustmentEntity.IsDelay == 1)
                {
                    entity.PlanFinishDate = entity.PlanFinishDate.Value.AddDays(Convert.ToDouble(adjustmentEntity.DelayDays));
                }
                adjustmentEntity.AdjustStauts = "审批通过";
            }
            service.InsertAdjustment(adjustmentEntity);
            safeMeasure.UpdateForm(entity.Id, entity);
        }
Пример #3
0
        /// <summary>
        /// 获取流程图
        /// </summary>
        /// <param name="keyValue"></param>
        /// <param name="modulename"></param>
        /// <returns></returns>
        public Flow GetFlow(string modulename, string keyValue, string adjustId)
        {
            List <nodes> nlist = new List <nodes>();
            List <lines> llist = new List <lines>();
            Operator     user  = ERCHTMS.Code.OperatorProvider.Provider.Current();
            //得到流程节点
            SafeAdjustmentEntity adjustmentEntity = adjustmentService.GetEntity(keyValue);

            if (string.IsNullOrEmpty(adjustId))
            {
                //取最新一条
                adjustmentEntity = adjustmentService.GetEntity(keyValue);
                adjustId         = adjustmentEntity.ID;
            }
            DataTable         nodeDt = service.GetCheckInfo(modulename, keyValue, adjustId);
            SafeMeasureEntity entity = service.GetEntity(keyValue);
            Flow flow = new Flow();

            flow.title    = "";
            flow.initNum  = 22;
            flow.activeID = entity.FlowId;

            if (nodeDt != null && nodeDt.Rows.Count > 0)
            {
                #region [创建node对象]
                for (int i = 0; i < nodeDt.Rows.Count; i++)
                {
                    DataRow dr    = nodeDt.Rows[i];
                    nodes   nodes = new nodes();
                    nodes.alt     = true;
                    nodes.isclick = false;
                    nodes.css     = "";
                    nodes.id      = dr["id"].ToString(); //主键
                    nodes.img     = "";
                    nodes.name    = dr["flowname"].ToString();
                    nodes.type    = "stepnode";
                    nodes.width   = 150;
                    nodes.height  = 60;
                    //位置
                    int m = i % 4;
                    int n = i / 4;
                    if (m == 0)
                    {
                        nodes.left = 120;
                    }
                    else
                    {
                        nodes.left = 120 + ((150 + 60) * m);
                    }
                    if (n == 0)
                    {
                        nodes.top = 54;
                    }
                    else
                    {
                        nodes.top = (n * 100) + 54;
                    }


                    setInfo sinfo = new setInfo();
                    sinfo.NodeName = nodes.name;
                    if (dr["AUDITDEPT"] != null && !string.IsNullOrEmpty(dr["AUDITDEPT"].ToString()))
                    {
                        sinfo.Taged = 1;
                        List <NodeDesignateData> nodelist          = new List <NodeDesignateData>();
                        NodeDesignateData        nodedesignatedata = new NodeDesignateData();
                        DateTime auditdate;
                        DateTime.TryParse(dr["AUDITTIME"].ToString(), out auditdate);
                        nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm");
                        nodedesignatedata.creatdept  = dr["AUDITDEPT"].ToString();
                        nodedesignatedata.createuser = dr["AUDITPEOPLE"].ToString();
                        nodedesignatedata.status     = dr["AUDITRESULT"].ToString() == "0" ? "同意" : "不同意";
                        if (dr["AUDITRESULT"].ToString() == "1")
                        {
                            flow.activeID = "";
                        }
                        if (i == 0)
                        {
                            nodedesignatedata.prevnode = "无";
                        }
                        else
                        {
                            nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString();
                        }
                        nodelist.Add(nodedesignatedata);
                        sinfo.NodeDesignateData = nodelist;
                        nodes.setInfo           = sinfo;
                    }
                    else
                    {
                        List <NodeDesignateData> nodelist          = new List <NodeDesignateData>();
                        NodeDesignateData        nodedesignatedata = new NodeDesignateData();
                        nodedesignatedata.createdate = "无";
                        //获取执行部门
                        string executeDeptId = string.Empty;
                        if (dr["checkdeptid"].ToString() == "-3")
                        {
                            executeDeptId = service.GetExecuteDept(entity.Id);
                        }
                        else
                        {
                            executeDeptId = dr["checkdeptid"].ToString();
                        }
                        //获取执行人
                        IManyPowerCheckService powerCheck = new ManyPowerCheckService();
                        //获取流程节点配置
                        List <ManyPowerCheckEntity> powerList = powerCheck.GetListBySerialNum(user.OrganizeCode, "安措计划调整审批");
                        if (powerList.Count > 0)
                        {
                            var item = powerList.Where(t => t.FLOWNAME == dr["FLOWNAME"].ToString()).FirstOrDefault();
                            if (item.CHECKDEPTCODE == "-3" || item.CHECKDEPTID == "-3")
                            {
                                string executedept = new DepartmentService().GetEntity(executeDeptId).DepartmentId;
                                switch (item.ChooseDeptRange) //判断部门范围
                                {
                                case "0":
                                    item.CHECKDEPTID = executedept;
                                    break;

                                case "1":
                                    var dept = deptservice.GetEntity(executedept);
                                    while (dept.Nature != "部门" && dept.Nature != "厂级")
                                    {
                                        dept = deptservice.GetEntity(dept.ParentId);
                                    }
                                    item.CHECKDEPTID = dept.DepartmentId;
                                    break;

                                case "2":
                                    var dept1 = deptservice.GetEntity(executedept);
                                    while (dept1.Nature != "部门" && dept1.Nature != "厂级")
                                    {
                                        dept1 = deptservice.GetEntity(dept1.ParentId);
                                    }
                                    item.CHECKDEPTID = (dept1.DepartmentId + "," + executedept).Trim(',');
                                    break;

                                default:
                                    item.CHECKDEPTID = executedept;
                                    break;
                                }
                                executeDeptId = item.CHECKDEPTID;
                            }
                        }
                        string    userNames = "";
                        string    execusers = GetNextStepUser(dr["checkrolename"].ToString(), executeDeptId, out userNames);
                        DataTable dtuser    = userservice.GetUserTable(execusers.Split(','));
                        string[]  usernames = dtuser.AsEnumerable().Select(d => d.Field <string>("realname")).ToArray();
                        string[]  deptnames = dtuser.AsEnumerable().Select(d => d.Field <string>("deptname")).ToArray().GroupBy(t => t).Select(p => p.Key).ToArray();
                        nodedesignatedata.createuser = usernames.Length > 0 ? string.Join(",", usernames) : "无";
                        nodedesignatedata.creatdept  = deptnames.Length > 0 ? string.Join(",", deptnames) : "无";
                        //nodedesignatedata.createuser = "******";
                        //nodedesignatedata.creatdept = "无";
                        nodedesignatedata.status = "无";
                        if (i == 0)
                        {
                            nodedesignatedata.prevnode = "无";
                        }
                        else
                        {
                            nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString();
                        }
                        nodelist.Add(nodedesignatedata);
                        sinfo.NodeDesignateData = nodelist;
                        nodes.setInfo           = sinfo;
                    }

                    nlist.Add(nodes);
                }
                //流程结束节点
                nodes nodes_end = new nodes();
                nodes_end.alt     = true;
                nodes_end.isclick = false;
                nodes_end.css     = "";
                nodes_end.id      = Guid.NewGuid().ToString();
                nodes_end.img     = "";
                nodes_end.name    = "流程结束";
                nodes_end.type    = "endround";
                nodes_end.width   = 150;
                nodes_end.height  = 60;
                //取最后一流程的位置,相对排位
                nodes_end.left = nlist[nlist.Count - 1].left;
                nodes_end.top  = nlist[nlist.Count - 1].top + 100;
                nlist.Add(nodes_end);

                //如果状态为审核通过或不通过,流程结束进行标识
                if (entity.Stauts == "审批不通过" || (entity.IsOver == 1 && entity.Stauts == "审批通过"))
                {
                    setInfo sinfo = new setInfo();
                    sinfo.NodeName = nodes_end.name;
                    sinfo.Taged    = 1;
                    List <NodeDesignateData> nodelist          = new List <NodeDesignateData>();
                    NodeDesignateData        nodedesignatedata = new NodeDesignateData();

                    //取流程结束时的节点信息
                    DataRow[] end_rows = nodeDt.Select("AUDITPEOPLE is not null").OrderBy(t => t.Field <DateTime>("AUDITTIME")).ToArray();
                    DataRow   end_row  = end_rows[end_rows.Count() - 1];
                    DateTime  auditdate;
                    DateTime.TryParse(end_row["AUDITTIME"].ToString(), out auditdate);
                    nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm");
                    nodedesignatedata.creatdept  = end_row["AUDITDEPT"].ToString();
                    nodedesignatedata.createuser = end_row["AUDITPEOPLE"].ToString();
                    nodedesignatedata.status     = end_row["AUDITRESULT"].ToString() == "0" ? "同意" : "不同意";
                    nodedesignatedata.prevnode   = end_row["flowname"].ToString();

                    nodelist.Add(nodedesignatedata);
                    sinfo.NodeDesignateData = nodelist;
                    nodes_end.setInfo       = sinfo;
                }

                #region 创建line对象

                for (int i = 0; i < nodeDt.Rows.Count; i++)
                {
                    lines lines = new lines();
                    lines.alt  = true;
                    lines.id   = Guid.NewGuid().ToString();
                    lines.from = nodeDt.Rows[i]["id"].ToString();
                    if (i < nodeDt.Rows.Count - 1)
                    {
                        lines.to = nodeDt.Rows[i + 1]["id"].ToString();
                    }
                    lines.name = "";
                    lines.type = "sl";
                    llist.Add(lines);
                }

                lines lines_end = new lines();
                lines_end.alt  = true;
                lines_end.id   = Guid.NewGuid().ToString();
                lines_end.from = nodeDt.Rows[nodeDt.Rows.Count - 1]["id"].ToString();
                lines_end.to   = nodes_end.id;
                llist.Add(lines_end);
                #endregion

                flow.nodes = nlist;
                flow.lines = llist;
                #endregion
            }
            return(flow);
        }