예제 #1
0
 /// <summary>
 /// 保存表单(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="entity">实体对象</param>
 /// <returns></returns>
 public void SaveForm(string keyValue, HTApprovalEntity entity)
 {
     try
     {
         service.SaveForm(keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #2
0
        public ActionResult SaveCForm(string keyValue, string isUpSubmit, HTBaseInfoEntity bentity, HTApprovalEntity entity, HTChangeInfoEntity chEntity, HTAcceptInfoEntity aEntity)
        {
            Operator curUser = OperatorProvider.Provider.Current();

            string wfFlag = string.Empty;  //流程标识

            IList <UserEntity> ulist = new List <UserEntity>();

            #region 保存基本信息

            //评估ID
            string APPROVALID = Request.Form["APPROVALID"] != null ? Request.Form["APPROVALID"].ToString() : "";

            string CHANGEID = Request.Form["CHANGEID"] != null ? Request.Form["CHANGEID"].ToString() : "";

            string ACCEPTID = Request.Form["ACCEPTID"] != null ? Request.Form["ACCEPTID"].ToString() : "";

            APPROVALID = APPROVALID == "&nbsp;" ? "" : APPROVALID;

            //隐患曝光
            string EXPOSURESTATE = Request.Form["EXPOSURESTATE"] != null ? Request.Form["EXPOSURESTATE"].ToString() : "";
            //保存隐患基本信息
            htbaseinfobll.SaveForm(keyValue, bentity);

            //隐患整改
            if (!string.IsNullOrEmpty(CHANGEID))
            {
                var tempEntity = htchangeinfobll.GetEntity(CHANGEID);
                chEntity.AUTOID            = tempEntity.AUTOID;
                chEntity.BACKREASON        = ""; //回退原因
                chEntity.APPLICATIONSTATUS = tempEntity.APPLICATIONSTATUS;
                chEntity.POSTPONEDAYS      = tempEntity.POSTPONEDAYS;
                chEntity.POSTPONEDEPT      = tempEntity.POSTPONEDEPT;
                chEntity.POSTPONEDEPTNAME  = tempEntity.POSTPONEDEPTNAME;
            }
            htchangeinfobll.SaveForm(CHANGEID, chEntity);

            //隐患验收
            if (!string.IsNullOrEmpty(ACCEPTID))
            {
                var tempEntity = htacceptinfobll.GetEntity(ACCEPTID);
                aEntity.AUTOID = tempEntity.AUTOID;
            }
            htacceptinfobll.SaveForm(ACCEPTID, aEntity);
            #endregion

            string participant = string.Empty;  //获取流程下一节点的参与人员

            bool isgoback = false;

            WfControlObj wfentity = new WfControlObj();
            wfentity.businessid = keyValue;
            string startflow = htbaseinfobll.GetEntity(keyValue).WORKSTREAM;
            wfentity.startflow  = startflow;
            wfentity.rankid     = bentity.HIDRANK;
            wfentity.user       = curUser;
            wfentity.mark       = "省级隐患排查";
            wfentity.organizeid = bentity.HIDDEPART; //对应电厂id
            //返回结果
            WfControlResult result = new WfControlResult();

            if (isUpSubmit == "1")  //上报,且存在上级部门
            {
                wfentity.submittype = "上报";
            }
            else  //不上报,评估通过需要提交整改,评估不通过退回到登记
            {
                /****判断当前人是否评估通过*****/
                #region 判断当前人是否评估通过
                //评估通过,则直接进行整改
                if (entity.APPROVALRESULT == "1")
                {
                    wfentity.submittype = "提交";
                }
                else  //评估不通过,退回到登记
                {
                    wfentity.submittype = "退回";
                    isgoback            = true;
                }
                #endregion
            }


            //获取下一流程的操作人
            result = wfcontrolbll.GetWfControl(wfentity);

            //返回操作结果成功
            if (result.code == WfCode.Sucess)
            {
                participant = result.actionperson;
                wfFlag      = result.wfflag;
                //更改状态
                if (result.ischangestatus)
                {
                    if (!string.IsNullOrEmpty(participant))
                    {
                        int count = htworkflowbll.SubmitWorkFlow(wfentity, result, keyValue, participant, wfFlag, curUser.UserId);

                        if (count > 0)
                        {
                            //保存隐患评估信息
                            htapprovebll.SaveForm(APPROVALID, entity);
                            htworkflowbll.UpdateWorkStreamByObjectId(keyValue);  //更新业务流程状态
                        }
                        else
                        {
                            return(Error("当前用户无评估权限!"));
                        }
                    }
                }
                else //不更改状态
                {
                    if (!string.IsNullOrEmpty(participant))
                    {
                        //保存隐患评估信息
                        htapprovebll.SaveForm(APPROVALID, entity);

                        htworkflowbll.SubmitWorkFlowNoChangeStatus(wfentity, result, keyValue, participant, curUser.UserId);
                    }
                }
                return(Success(result.message));
            }
            else
            {
                return(Error(result.message));
            }
        }
예제 #3
0
        public ActionResult SaveForm(string keyValue, string isUpSubmit, HTBaseInfoEntity bentity, HTApprovalEntity entity, HTChangeInfoEntity chEntity, HTAcceptInfoEntity aEntity)
        {
            Operator curUser = OperatorProvider.Provider.Current();

            string wfFlag = string.Empty;  //流程标识

            #region 保存基本信息

            //评估ID
            string APPROVALID = Request.Form["APPROVALID"] != null ? Request.Form["APPROVALID"].ToString() : "";

            string CHANGEID = Request.Form["CHANGEID"] != null ? Request.Form["CHANGEID"].ToString() : "";

            string ACCEPTID = Request.Form["ACCEPTID"] != null ? Request.Form["ACCEPTID"].ToString() : "";

            APPROVALID = APPROVALID == "&nbsp;" ? "" : APPROVALID;

            //隐患曝光
            string EXPOSURESTATE = Request.Form["EXPOSURESTATE"] != null ? Request.Form["EXPOSURESTATE"].ToString() : "";
            //设备
            if (string.IsNullOrEmpty(bentity.DEVICEID))
            {
                bentity.DEVICEID = string.Empty;
            }
            if (string.IsNullOrEmpty(bentity.DEVICENAME))
            {
                bentity.DEVICENAME = string.Empty;
            }
            if (string.IsNullOrEmpty(bentity.DEVICECODE))
            {
                bentity.DEVICECODE = string.Empty;
            }
            //保存隐患基本信息
            htbaseinfobll.SaveForm(keyValue, bentity);

            //隐患整改
            if (!string.IsNullOrEmpty(CHANGEID))
            {
                var tempEntity = htchangeinfobll.GetEntity(CHANGEID);
                chEntity.AUTOID            = tempEntity.AUTOID;
                chEntity.BACKREASON        = ""; //回退原因
                chEntity.APPLICATIONSTATUS = tempEntity.APPLICATIONSTATUS;
                chEntity.POSTPONEDAYS      = tempEntity.POSTPONEDAYS;
                chEntity.POSTPONEDEPT      = tempEntity.POSTPONEDEPT;
                chEntity.POSTPONEDEPTNAME  = tempEntity.POSTPONEDEPTNAME;
            }
            htchangeinfobll.SaveForm(CHANGEID, chEntity);

            //隐患验收
            if (!string.IsNullOrEmpty(ACCEPTID))
            {
                var tempEntity = htacceptinfobll.GetEntity(ACCEPTID);
                aEntity.AUTOID = tempEntity.AUTOID;
            }
            htacceptinfobll.SaveForm(ACCEPTID, aEntity);
            #endregion

            string participant = string.Empty;  //获取流程下一节点的参与人员

            HTBaseInfoEntity baseEntity = htbaseinfobll.GetEntity(keyValue);

            WfControlObj wfentity = new WfControlObj();
            wfentity.businessid = keyValue;
            wfentity.argument1  = bentity.MAJORCLASSIFY; //专业分类
            wfentity.argument2  = curUser.DeptId;        //当前部门
            wfentity.argument3  = bentity.HIDTYPE;       //隐患类别
            wfentity.argument4  = bentity.HIDBMID;       //所属部门
            string startflow = baseEntity.WORKSTREAM;
            wfentity.startflow  = startflow;
            wfentity.rankid     = baseEntity.HIDRANK;
            wfentity.user       = curUser;
            wfentity.mark       = "厂级隐患排查";
            wfentity.organizeid = baseEntity.HIDDEPART; //对应电厂id
            //返回结果
            WfControlResult result = new WfControlResult();

            if (isUpSubmit == "1")  //上报,且存在上级部门
            {
                #region  报

                wfentity.submittype = "上报";
                //获取下一流程的操作人
                result = wfcontrolbll.GetWfControl(wfentity);

                //处理成功
                if (result.code == WfCode.Sucess)
                {
                    participant = result.actionperson; //目标流程参与者

                    if (!string.IsNullOrEmpty(participant))
                    {
                        //保存隐患评估信息
                        htapprovebll.SaveForm(APPROVALID, entity);

                        htworkflowbll.SubmitWorkFlowNoChangeStatus(wfentity, result, keyValue, participant, curUser.UserId);

                        return(Success(result.message));
                    }
                    else
                    {
                        return(Error("当前上级部门无评估人员,如需上报,请联系系统管理员进行配置!"));
                    }
                }
                else
                {
                    return(Error(result.message));
                }
                #endregion
            }
            else  //不上报,评估通过需要提交整改,评估不通过退回到登记
            {
                /****判断当前人是否评估通过*****/
                #region 判断当前人是否评估通过
                //评估通过,则直接进行整改
                if (entity.APPROVALRESULT == "1")
                {
                    wfentity.submittype = "提交";
                    //不指定整改责任人
                    if (chEntity.ISAPPOINT == "0")
                    {
                        wfentity.submittype = "制定提交";
                    }
                    //判断是否是同级提交
                    bool ismajorpush = GetCurUserWfAuth(baseEntity.HIDRANK, "隐患评估", "隐患评估", "厂级隐患排查", "同级提交", baseEntity.MAJORCLASSIFY, null, null, keyValue);
                    if (ismajorpush)
                    {
                        wfentity.submittype = "同级提交";
                    }

                    #region 国电新疆版本
                    if (baseEntity.ADDTYPE == "3")
                    {
                        //非本部门整改
                        if (baseEntity.ISSELFCHANGE == "0")
                        {
                            wfentity.submittype = "制定提交";

                            //如果已经制定了整改计划,则按照提交来进行推送
                            if (baseEntity.ISFORMULATE == "1")
                            {
                                wfentity.submittype = "提交";
                            }
                            //如果当前评估部门是整改部门,则直接提交
                            if (curUser.DeptId == chEntity.CHANGEDUTYDEPARTID)
                            {
                                wfentity.submittype = "提交";
                            }
                            //如果当前评估部门是创建部门,则直接提交至非本部门整改的安监部
                            if (curUser.DeptCode == baseEntity.CREATEUSERDEPTCODE)
                            {
                                wfentity.submittype = "制定提交";
                            }
                        }
                        else  //本部门整改情况下, 公司级用户不管如何,都不会直接到生技部
                        {
                            UserEntity userEntity = userbll.GetEntity(baseEntity.CREATEUSERID);
                            if (userEntity.RoleName.Contains("公司级用户") && curUser.RoleName.Contains("公司级用户"))
                            {
                                wfentity.submittype = "制定提交";
                            }
                        }
                    }
                    #endregion
                }
                else  //评估不通过,退回到登记
                {
                    wfentity.submittype = "退回";

                    #region 国电新疆版本
                    if (baseEntity.ADDTYPE == "3")
                    {
                        //已经制定了整改计划,则按照制定计划退回
                        if (baseEntity.ISFORMULATE == "1")
                        {
                            wfentity.submittype = "制定退回";
                        }
                    }
                    #endregion
                }
                //获取下一流程的操作人
                result = wfcontrolbll.GetWfControl(wfentity);
                //处理成功
                if (result.code == WfCode.Sucess)
                {
                    participant = result.actionperson;

                    wfFlag = result.wfflag;

                    if (!string.IsNullOrEmpty(participant))
                    {
                        //如果是更改状态
                        if (result.ischangestatus)
                        {
                            int count = htworkflowbll.SubmitWorkFlow(wfentity, result, keyValue, participant, wfFlag, curUser.UserId);
                            if (count > 0)
                            {
                                //保存隐患评估信息
                                htapprovebll.SaveForm(APPROVALID, entity);
                                htworkflowbll.UpdateWorkStreamByObjectId(keyValue);  //更新业务流程状态
                                return(Success(result.message));
                            }
                            else
                            {
                                return(Error("当前用户无评估权限!"));
                            }
                        }
                        else  //不更改状态的情况下
                        {
                            //保存隐患评估信息
                            htapprovebll.SaveForm(APPROVALID, entity);

                            htworkflowbll.SubmitWorkFlowNoChangeStatus(wfentity, result, keyValue, participant, curUser.UserId);

                            return(Success(result.message));
                        }
                    }
                    else
                    {
                        return(Error("目标流程参与者未定义!"));
                    }
                }
                else
                {
                    return(Error(result.message));
                }
                #endregion
            }
        }