示例#1
0
          /// <summary>
          /// 保存表单(新增、修改)
          /// </summary>
          /// <param name="keyValue">主键值</param>
          /// <param name="entity">实体对象</param>
          /// <returns></returns>
         public void SaveForm(string keyValue, LllegalAwardDetailEntity entity)
 {
     try
     {
         service.SaveForm(keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
示例#2
0
        public ActionResult SubmitForm(string keyValue, LllegalRegisterEntity entity, LllegalApproveEntity pEntity, LllegalReformEntity rEntity, LllegalAcceptEntity aEntity)
        {
            /*
             * 注:核准分两步
             *
             *  确定为装置类情况下,如果当前核准人是安全管理部门人员, 先判断是否为装置类,如果不是 则直接到整改或退回,如果是,则转发至装置部门 或退回(不是提交)
             *  如果是非安全管理人员,则提交到安全管理部门人员会退回到登记.
             */

            string errorMsg = string.Empty;

            Operator curUser = OperatorProvider.Provider.Current();

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

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

            var lllegatypename = "";

            if (!string.IsNullOrWhiteSpace(entity.LLLEGALTYPE))
            {
                lllegatypename = dataitemdetailbll.GetEntity(entity.LLLEGALTYPE).ItemName;
            }

            //保存违章基本信息
            LllegalRegisterEntity baseentity = lllegalregisterbll.GetEntity(keyValue);

            entity.AUTOID             = baseentity.AUTOID;
            entity.CREATEDATE         = baseentity.CREATEDATE;
            entity.CREATEUSERDEPTCODE = baseentity.CREATEUSERDEPTCODE;
            entity.CREATEUSERID       = baseentity.CREATEUSERID;
            entity.CREATEUSERNAME     = baseentity.CREATEUSERNAME;
            entity.CREATEUSERORGCODE  = baseentity.CREATEUSERORGCODE;
            entity.MODIFYDATE         = DateTime.Now;
            entity.MODIFYUSERID       = curUser.UserId;
            entity.MODIFYUSERNAME     = curUser.UserName;
            entity.RESEVERFOUR        = "";
            entity.RESEVERFIVE        = "";
            lllegalregisterbll.SaveForm(keyValue, entity);

            #region 考核信息

            string RELEVANCEDATA = Request.Form["RELEVANCEDATA"];
            if (!string.IsNullOrEmpty(RELEVANCEDATA))
            {
                //先删除考核信息集合
                lllegalpunishbll.DeleteLllegalPunishList(entity.ID, "");

                JArray jarray = (JArray)JsonConvert.DeserializeObject(RELEVANCEDATA);

                foreach (JObject rhInfo in jarray)
                {
                    //string relevanceId = rhInfo["ID"].ToString(); //主键id
                    string assessobject                 = rhInfo["ASSESSOBJECT"].ToString();
                    string personinchargename           = rhInfo["PERSONINCHARGENAME"].ToString(); //关联责任人姓名
                    string personinchargeid             = rhInfo["PERSONINCHARGEID"].ToString();   //关联责任人id
                    string performancepoint             = rhInfo["PERFORMANCEPOINT"].ToString();   //EHS绩效考核
                    string economicspunish              = rhInfo["ECONOMICSPUNISH"].ToString();    // 经济处罚
                    string education                    = rhInfo["EDUCATION"].ToString();          //教育培训
                    string lllegalpoint                 = rhInfo["LLLEGALPOINT"].ToString();       //违章扣分
                    string awaitjob                     = rhInfo["AWAITJOB"].ToString();           //待岗
                    LllegalPunishEntity newpunishEntity = new LllegalPunishEntity();
                    newpunishEntity.LLLEGALID          = entity.ID;
                    newpunishEntity.ASSESSOBJECT       = assessobject; //考核对象
                    newpunishEntity.PERSONINCHARGEID   = personinchargeid;
                    newpunishEntity.PERSONINCHARGENAME = personinchargename;
                    newpunishEntity.PERFORMANCEPOINT   = !string.IsNullOrEmpty(performancepoint) ? Convert.ToDecimal(performancepoint) : 0;
                    newpunishEntity.ECONOMICSPUNISH    = !string.IsNullOrEmpty(economicspunish) ? Convert.ToDecimal(economicspunish) : 0;
                    newpunishEntity.EDUCATION          = !string.IsNullOrEmpty(education) ? Convert.ToDecimal(education) : 0;
                    newpunishEntity.LLLEGALPOINT       = !string.IsNullOrEmpty(lllegalpoint) ? Convert.ToDecimal(lllegalpoint) : 0;
                    newpunishEntity.AWAITJOB           = !string.IsNullOrEmpty(awaitjob) ? Convert.ToDecimal(awaitjob) : 0;
                    newpunishEntity.MARK = assessobject.Contains("考核") ? "0" : "1"; //标记0考核,1联责
                    lllegalpunishbll.SaveForm("", newpunishEntity);
                }
            }
            #endregion

            #region 违章奖励信息
            string AWARDDATA = Request.Form["AWARDDATA"];
            if (!string.IsNullOrEmpty(AWARDDATA))
            {  //先删除关联集合
                lllegalawarddetailbll.DeleteLllegalAwardList(entity.ID);

                JArray jarray = (JArray)JsonConvert.DeserializeObject(AWARDDATA);

                foreach (JObject rhInfo in jarray)
                {
                    string userid   = rhInfo["USERID"].ToString(); //奖励用户
                    string username = rhInfo["USERNAME"].ToString();
                    string deptid   = rhInfo["DEPTID"].ToString(); //奖励用户部门
                    string deptname = rhInfo["DEPTNAME"].ToString();
                    string points   = rhInfo["POINTS"].ToString(); //奖励积分
                    string money    = rhInfo["MONEY"].ToString();  //奖励金额

                    LllegalAwardDetailEntity awardEntity = new LllegalAwardDetailEntity();
                    awardEntity.LLLEGALID = entity.ID;
                    awardEntity.USERID    = userid; //奖励对象
                    awardEntity.USERNAME  = username;
                    awardEntity.DEPTID    = deptid;
                    awardEntity.DEPTNAME  = deptname;
                    awardEntity.POINTS    = !string.IsNullOrEmpty(points) ? int.Parse(points) : 0;
                    awardEntity.MONEY     = !string.IsNullOrEmpty(money) ? Convert.ToDecimal(money) : 0;
                    lllegalawarddetailbll.SaveForm("", awardEntity);
                }
            }
            #endregion

            //违章整改记录
            LllegalReformEntity cEntity = lllegalreformbll.GetEntityByBid(keyValue);
            cEntity.REFORMDEADLINE         = rEntity.REFORMDEADLINE;
            cEntity.REFORMPEOPLE           = rEntity.REFORMPEOPLE;
            cEntity.REFORMPEOPLEID         = rEntity.REFORMPEOPLEID;
            cEntity.REFORMDEPTCODE         = rEntity.REFORMDEPTCODE;
            cEntity.REFORMDEPTNAME         = rEntity.REFORMDEPTNAME;
            cEntity.REFORMTEL              = rEntity.REFORMTEL;
            cEntity.REFORMSTATUS           = string.Empty;
            cEntity.REFORMCHARGEDEPTID     = rEntity.REFORMCHARGEDEPTID;
            cEntity.REFORMCHARGEDEPTNAME   = rEntity.REFORMCHARGEDEPTNAME;
            cEntity.REFORMCHARGEPERSON     = rEntity.REFORMCHARGEPERSON;
            cEntity.REFORMCHARGEPERSONNAME = rEntity.REFORMCHARGEPERSONNAME;
            cEntity.ISAPPOINT              = rEntity.ISAPPOINT;
            lllegalreformbll.SaveForm(cEntity.ID, cEntity);

            //违章验收
            LllegalAcceptEntity aptEntity = lllegalacceptbll.GetEntityByBid(keyValue);
            aptEntity.ACCEPTPEOPLE   = aEntity.ACCEPTPEOPLE;
            aptEntity.ACCEPTPEOPLEID = aEntity.ACCEPTPEOPLEID;
            aptEntity.ACCEPTDEPTCODE = aEntity.ACCEPTDEPTCODE;
            aptEntity.ACCEPTDEPTNAME = aEntity.ACCEPTDEPTNAME;
            aptEntity.ACCEPTTIME     = aEntity.ACCEPTTIME;
            lllegalacceptbll.SaveForm(aptEntity.ID, aptEntity);


            WfControlObj wfentity = new WfControlObj();
            wfentity.businessid = keyValue;               //
            wfentity.argument1  = entity.MAJORCLASSIFY;   //专业分类
            wfentity.argument2  = entity.LLLEGALTYPE;     //违章类型
            wfentity.argument3  = curUser.DeptId;         //当前人所属部门
            wfentity.argument4  = entity.LLLEGALTEAMCODE; //违章部门
            wfentity.argument5  = entity.LLLEGALLEVEL;    //违章级别
            wfentity.startflow  = baseentity.FLOWSTATE;
            //上报,且存在上级部门
            if (entity.ISUPSAFETY == "1")
            {
                wfentity.submittype = "上报";
            }
            else  //不上报,评估通过需要提交整改,评估不通过退回到登记
            {
                /****判断当前人是否评估通过*****/
                #region 判断当前人是否评估通过
                //评估通过,则直接进行整改
                if (pEntity.APPROVERESULT == "1")
                {
                    wfentity.submittype = "提交";
                    //不指定整改责任人
                    if (rEntity.ISAPPOINT == "0")
                    {
                        wfentity.submittype = "制定提交";
                    }
                    //判断是否是同级提交
                    bool ismajorpush = GetCurUserWfAuth(null, baseentity.FLOWSTATE, baseentity.FLOWSTATE, "厂级违章流程", "同级提交", entity.MAJORCLASSIFY, null, null, keyValue);
                    if (ismajorpush)
                    {
                        wfentity.submittype = "同级提交";
                    }
                }
                else  //评估不通过,退回到登记
                {
                    wfentity.submittype = "退回";
                }
                #endregion
            }
            wfentity.rankid     = null;
            wfentity.user       = curUser;
            wfentity.mark       = "厂级违章流程";
            wfentity.organizeid = entity.BELONGDEPARTID; //对应电厂id
            //获取下一流程的操作人
            WfControlResult 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)
                        {
                            //保存违章核准
                            pEntity.LLLEGALID = keyValue;
                            lllegalapprovebll.SaveForm("", pEntity);

                            htworkflowbll.UpdateFlowStateByObjectId("bis_lllegalregister", "flowstate", keyValue);  //更新业务流程状态

                            return(Success(result.message));
                        }
                        else
                        {
                            return(Error("当前用户无核准权限!"));
                        }
                    }
                    else  //不更改状态的情况下
                    {
                        //保存违章核准
                        pEntity.LLLEGALID = keyValue;
                        lllegalapprovebll.SaveForm("", pEntity);

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

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