From 4888f66b027e5f17523761ef5d0d6226f9b7ac6f Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Fri, 2 Feb 2024 11:14:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8B=B7=E8=B4=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/BSCheckProjectCategoryController.cs | 6 + .../Controllers/Api/BSRiskSubmitController.cs | 602 +++++++++++++++++- .../Api/BSRiskSubmitNoticeController.cs | 3 +- .../Api/BSRiskSubmitNoticePersonController.cs | 2 +- .../Controllers/Api/BSSafeCheckController.cs | 50 +- 5 files changed, 636 insertions(+), 27 deletions(-) diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckProjectCategoryController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckProjectCategoryController.cs index 5e7a66b..4d23ae8 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckProjectCategoryController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckProjectCategoryController.cs @@ -95,6 +95,12 @@ namespace APT.BS.WebApi.Controllers.Api { CHECK_TYPE_ID = new Guid(item.Value.ToString()); } + else if (item.Field == "RISK_SUBMIT_ID") + { + var sub = GetEntity(new Guid(item.Value.ToString())); + if (sub != null && sub.CHECK_TYPE_ID.HasValue) + CHECK_TYPE_ID = sub.CHECK_TYPE_ID.Value; + } } if (CHECK_TYPE_ID != Guid.Empty) diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs index 2336ba0..cbd28e6 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs @@ -1515,34 +1515,569 @@ namespace APT.BS.WebApi.Controllers.Api }); } + #region 验收人确认 、整改责任人 流程顺序互换 + /// - /// 验收人 确定/驳回 确定(给责任人 发送通知 ) 驳回 (隐患通知责任人)发送通知 (BS042) + /// 整改责任人、验收人 确定(给责任人 发送通知 ) 驳回 (隐患通知责任人)发送通知 (BS042) + /// 原: 整改责任人、验收人 确定 后面确定 的人 添加 待办给 整改责任人(设置整改落实人) + /// + /// + /// + [HttpPost, Route("UserCheckAndSend")] + public JsonActionResult UserCheckAndSend([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + Guid id = new Guid(filter.Keyword); + var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + var TaskID = new Guid(filter.Parameter1); + + //var entity = GetEntity(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserDeal", "Nav_ListRiskSubmitContent.Nav_User" }); + //var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent; + //if (listRiskSubminContentl != null && listRiskSubminContentl.Count() > 1) + //{ + // listRiskSubminContentl = listRiskSubminContentl.FindAll(e => e.DEAL_USER_ID == LoginID); + // if (listRiskSubminContentl == null || !listRiskSubminContentl.Any()) + // { + // throw new Exception("只有整改责任人才能验收!"); + // } + //} + //else if (listRiskSubminContentl[0].DEAL_USER_ID != LoginID) + //{ + // throw new Exception("只有整改责任人才能验收!"); + //} + + var entity = GetEntity(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserCheck" });//Nav_UserDeal + if (entity.Nav_ListRiskSubmitContent[0].DEAL_USER_ID != LoginID)//.CHECK_USER_ID + { + throw new Exception("只有整改责任人才能确认!");//只有整改责任人才能验收 验收人 + } + + if (filter.Parameter4 == "1") + { + entity.OPERATETYPE = OperateType.Save; + //审核人 同意 + List listNoticeDeal = new List(); + + var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent; + //entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空 + List ListNoticeAll = new List(); + List ListNoticeAllNAME = new List(); + DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Deal, entity.ORG_ID.Value, DateTime.Now, null, null); + listRiskSubminContentl.ForEach(item => + { + //item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人 + item.RiskContentState = (int)RiskContentState.CheckerCheck;//CheckerCheck CheckerCheck + if (string.IsNullOrEmpty(filter.Parameter3)) + { + item.CHECK_USER_REFUSED_REASON = filter.Parameter3; + } + else + { + item.CHECK_USER_REFUSED_REASON = null; + } + if (item.DEAL_USER_ID == LoginID)//CHECK_USER_ID + { + item.ISDEALUSERCHECK = true;//.ISCHECKERCHECK + } + else + { + throw new Exception("只有整改责任人才能确认!"); + //throw new Exception("只有验收人才能验收!"); + } + + if (!ListNoticeAll.Contains(item.CHECK_USER_ID.Value))//DEAL_USER_ID + { + //整改责任人 + ListNoticeAll.Add(item.CHECK_USER_ID.Value);//DEAL_USER_ID + //数量少 每次获取 页面能选 这边就不会报错 + ListNoticeAllNAME.Add(item.Nav_UserCheck.NAME);//Nav_UserDeal + + //给责任人 发送通知 + listNoticeDeal = NotificationTaskService.InsertUserNoticeTaskModels("验收人确认:" + entity.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, DateTime.Now, ((item.LastDateUser.HasValue && item.LastDateUser.Value < dtEnd) ? item.LastDateUser.Value : dtEnd), (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT");//HM001_SHOWPRINT "整改责任人确认:" + entity.NAME.Replace("隐患整改通知:", "") + } + }); + + T_FM_NOTIFICATION_TASK task = null; + GetEntityTask(TaskID, ref task); + + this.UnifiedCommit(() => + { + UpdateEntityNoCommit(entity);//保存状态 + if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表 + BantchSaveEntity(listRiskSubminContentl); //保存子表 + if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单 + BantchSaveEntity(listNoticeDeal); + if (task != null)//代办消息 清除 + UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + }); + + #region /// + + ////同意 + //List listContentDeal = new List(); + //List listNoticeDeal = new List(); + //T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null; + //DateTime dtNow = DateTime.Now; + + ////entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空 + + //listRiskSubminContentl.ForEach(item => + //{ + // item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人 + + // if (item.DEAL_USER_ID == LoginID) + // { + // item.ISDEALUSERCHECK = true; + // } + // else if (item.CHECK_USER_ID == LoginID) + // { + // item.ISCHECKERCHECK = true; + // } + // if (item.ISDEALUSERCHECK && item.ISCHECKERCHECK) + // { + // item.RiskContentState = (int)RiskContentState.ArrangeDeal; + // } + //}); + + ////整改责任人 和验收人 都确定后 + //if (listRiskSubminContentl[0].RiskContentState == (int)RiskContentState.ArrangeDeal) + //{ + // DateTime dtTsakEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDeal, entity.ORG_ID.Value, DateTime.Now, null, null); + // foreach (var item in listRiskSubminContentl) + // { + // //数据处理 + // CodeTemp++; + + // #region 隐患整改通知 + + // dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL(); + // dealTemp.ID = Guid.NewGuid(); + // dealTemp.ORG_ID = item.ORG_ID; + // dealTemp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID; + // dealTemp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID; + // dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = item.RISK_SUBMIT_NOTICE_PERSON_ID; + // dealTemp.RISK_SUBMIT_CONTENT_ID = item.ID; + // dealTemp.CODE = item.CODE + "_" + CodeTemp; + + // dealTemp.NAME = item.NAME.Replace("隐患整改通知:", ""); + // //dealTemp.ENDDATE = item.LastDateUser;//整改结束时间 + // dealTemp.QUESTION_LEVEL = item.QUESTION_LEVEL; + // dealTemp.DEALSITUATION = (int)DealSituation.Temp; + // dealTemp.DEAL_USER_ID = item.DEAL_USER_ID; + // dealTemp.ACTUAL_DEAL_USER_ID = item.ACTUAL_DEAL_USER_ID; + // dealTemp.CHECK_USER_ID = item.CHECK_USER_ID; + + // listContentDeal.Add(dealTemp); + + // #endregion + + // ////每个整改责任人 收到待办 + // //var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + dealTemp.NAME, dealTemp.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_User.NAME, dtNow, item.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044"); + + + // //每个整改责任人 收到待办 + // var notice = NotificationTaskService.InsertUserNoticeTaskModel("指定整改落实人:" + dealTemp.NAME, item.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_UserDeal.NAME, dtNow, (dtTsakEnd > item.LastDateUser.Value ? item.LastDateUser.Value : dtTsakEnd), (int)FMNoticeTypeEnum.消息, "BS049"); + + // notice.CREATE_TIME = dtNow; + // listNoticeDeal.Add(notice); + + // } + //} + + //T_FM_NOTIFICATION_TASK task = null; + //GetEntityTask(TaskID, ref task); + + //this.UnifiedCommit(() => + //{ + // UpdateEntityNoCommit(entity);//保存状态 + // if (listContentDeal.Count > 0) + // BantchSaveEntity(listContentDeal);//保存待整改明细 + // if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表 + // BantchSaveEntity(listRiskSubminContentl); //保存子表 + // if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单 + // BantchSaveEntity(listNoticeDeal); + // if (task != null)//代办消息 清除 + // UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + //}); + #endregion + } + else + { + //驳回 + //给通知责任人 发送 待办 指定 整改责任人、验收人 BS042 + + if (string.IsNullOrEmpty(filter.Parameter3)) + { + throw new Exception("请填写驳回意见!"); + } + + //var sysFilter = new SystemCodeFilter(); + //sysFilter.CodeType = (int)PFCodeRuleType.消息通知; + //sysFilter.Count = 1; + //sysFilter.OrgId = entity.ORG_ID; + //var codes = CodeRuleService.NewGenSerial(sysFilter); + //var codeList = codes.Split(new char[] { ',' }); + + var content = GetEntity(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == entity.ID, "Nav_User"); + content.DEAL_USER_REFUSED_REASON = filter.Parameter3;//回到验收人已确定上一个状态 (不需要 就是这个状态)//CHECK_USER_REFUSED_REASON + + //var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, entity.ID, entity.ORG_ID, content.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042"); //驳回 传入 隐患上报明细ID 否则不明确 + + DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null); + + //如果是手动隐患上报 应该是 BS061 + var risk = GetEntity(entity.RISK_SUBMIT_ID.Value, "Nav_User"); + T_FM_NOTIFICATION_TASK taskAdd = null; + if (risk.SUBMIT_TYPE == (int)APT.MS.Domain.Enums.SUBMIT_TYPE.User) + { + taskAdd = NotificationTaskService.InsertUserNoticeTaskModel("指定责任单位", entity.RISK_SUBMIT_ID.Value, entity.ORG_ID, risk.USER_ID.Value, risk.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS061"); + } + else + { + taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, content.ID, entity.ORG_ID, content.USER_ID.Value, content.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042"); + } + + T_FM_NOTIFICATION_TASK task = null; + GetEntityTask(TaskID, ref task); + + this.UnifiedCommit(() => + { + if (content != null)//填写验收人拒绝原因 + UpdateEntityNoCommit(content); + if (taskAdd != null)//整改责任人 按条数 收到整改单 + UpdateEntityNoCommit(taskAdd); + if (task != null)//代办消息 清除 + UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + }); + + #region /// + + ////驳回 + //if (string.IsNullOrEmpty(filter.Parameter3)) + //{ + // throw new Exception("请填写驳回意见!"); + //} + + ////整改责任人驳回 + ////验收人 已经审批过 整改责任人是自己 自己没审批过 + + //var listContent = entity.Nav_ListRiskSubmitContent.FindAll(e => e.DEAL_USER_ID == LoginID && !e.ISDEALUSERCHECK && e.ISCHECKERCHECK); + + //List listNoticeDeal = new List(); + //T_FM_NOTIFICATION_TASK taskTemp = null; + //int countTh = 0; + //DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, filter.OrgId.Value, DateTime.Now, null, null); + //foreach (var item in listContent) + //{ + // item.ISCHECKERCHECK = false; + // item.DEAL_USER_REFUSED_REASON = filter.Parameter3; + // item.CHECK_USER_REFUSED_REASON = null; + // item.RiskContentState = (int)RiskContentState.Notice; + // taskTemp = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, item.ID, entity.ORG_ID, item.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042"); + // listNoticeDeal.Add(taskTemp); + // countTh++; + //} + + //T_FM_NOTIFICATION_TASK task = null; + //GetEntityTask(TaskID, ref task); + + //this.UnifiedCommit(() => + //{ + // if (listContent != null)//填写整改责任人拒绝原因 + // BantchUpdateEntityNoCommit(listContent); + // if (listNoticeDeal.Count > 0)//发送通知 给通知责任人 + // BantchSaveEntityNoCommit(listNoticeDeal); + // if (task != null)//代办消息 清除 + // UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + //}); + #endregion + } + + return true; + }); + } + + /// + /// 验收人 确定/驳回 确定 整改责任人(设置整改落实人) + /// 原: 验收人 确定/驳回 确定(给责任人 发送通知 ) 驳回 (隐患通知责任人)发送通知 (BS042) /// /// /// [HttpPost, Route("CheckerCheck")] public JsonActionResult CheckerCheck([FromBody] KeywordFilter filter) { - //#region + return SafeExecute(() => + { + //确定 / 驳回 确定(给责任人 BS042_SHOWPRINT 发送通知 ) 驳回 (隐患通知责任人)发送通知 (BS042) + Guid id = new Guid(filter.Keyword); + DateTime dtNow = DateTime.Now; + var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + var TaskID = new Guid(filter.Parameter1); - //int count = 0; - //try - //{ - // count = int.Parse(filter.Parameter2); - //} - //catch - //{ - // count = 200; - //} + var entity = GetEntity(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserDeal", "Nav_ListRiskSubmitContent.Nav_User" }); + var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent; + if (listRiskSubminContentl != null && listRiskSubminContentl.Count() > 1) + { + listRiskSubminContentl = listRiskSubminContentl.FindAll(e => e.CHECK_USER_ID == LoginID);//DEAL_USER_ID + if (listRiskSubminContentl == null || !listRiskSubminContentl.Any()) + { + throw new Exception("只有验收人才能验收!"); + } + } + else if (listRiskSubminContentl[0].CHECK_USER_ID != LoginID)//DEAL_USER_ID + { + throw new Exception("只有验收人才能验收!"); + } + if (filter.Parameter2 == "10") + { + int CodeTemp = 0; + //同意 + List listContentDeal = new List(); + List listNoticeDeal = new List(); + T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null; - //var sysFilter = new SystemCodeFilter(); - //sysFilter.CodeType = (int)PFCodeRuleType.消息通知; - //sysFilter.Count = count; - //sysFilter.OrgId = filter.OrgId; - //var codes = CodeRuleService.NewGenSerial(sysFilter); - //var codeList = codes.Split(new char[] { ',' }); + //entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空 - //#endregion + listRiskSubminContentl.ForEach(item => + { + item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人 + if (item.CHECK_USER_ID == LoginID) + { + item.ISCHECKERCHECK = true; + } + else if (item.DEAL_USER_ID == LoginID) + { + item.ISDEALUSERCHECK = true; + } + + if (item.ISDEALUSERCHECK && item.ISCHECKERCHECK) + { + item.RiskContentState = (int)RiskContentState.ArrangeDeal; + } + }); + + //整改责任人 和验收人 都确定后 + if (listRiskSubminContentl[0].RiskContentState == (int)RiskContentState.ArrangeDeal) + { + DateTime dtTsakEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDeal, entity.ORG_ID.Value, DateTime.Now, null, null); + foreach (var item in listRiskSubminContentl) + { + //数据处理 + CodeTemp++; + + #region 隐患整改通知 + + dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL(); + dealTemp.ID = Guid.NewGuid(); + dealTemp.ORG_ID = item.ORG_ID; + dealTemp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID; + dealTemp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID; + dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = item.RISK_SUBMIT_NOTICE_PERSON_ID; + dealTemp.RISK_SUBMIT_CONTENT_ID = item.ID; + dealTemp.CODE = item.CODE + "_" + CodeTemp; + + dealTemp.NAME = item.NAME.Replace("隐患整改通知:", ""); + //dealTemp.ENDDATE = item.LastDateUser;//整改结束时间 + dealTemp.QUESTION_LEVEL = item.QUESTION_LEVEL; + dealTemp.DEALSITUATION = (int)DealSituation.Temp; + dealTemp.DEAL_USER_ID = item.DEAL_USER_ID; + dealTemp.ACTUAL_DEAL_USER_ID = item.ACTUAL_DEAL_USER_ID; + dealTemp.CHECK_USER_ID = item.CHECK_USER_ID; + + listContentDeal.Add(dealTemp); + + #endregion + + ////每个整改责任人 收到待办 + //var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + dealTemp.NAME, dealTemp.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_User.NAME, dtNow, item.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044"); + + + //每个整改责任人 收到待办 + var notice = NotificationTaskService.InsertUserNoticeTaskModel("指定整改落实人:" + dealTemp.NAME, item.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_UserDeal.NAME, dtNow, (dtTsakEnd > item.LastDateUser.Value ? item.LastDateUser.Value : dtTsakEnd), (int)FMNoticeTypeEnum.消息, "BS049"); + + notice.CREATE_TIME = dtNow; + listNoticeDeal.Add(notice); + + } + } + + T_FM_NOTIFICATION_TASK task = null; + GetEntityTask(TaskID, ref task); + + this.UnifiedCommit(() => + { + UpdateEntityNoCommit(entity);//保存状态 + if (listContentDeal.Count > 0) + BantchSaveEntity(listContentDeal);//保存待整改明细 + if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表 + BantchSaveEntity(listRiskSubminContentl); //保存子表 + if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单 + BantchSaveEntity(listNoticeDeal); + if (task != null)//代办消息 清除 + UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + }); + #region /// + + //entity.OPERATETYPE = OperateType.Save; + ////审核人 同意 + //List listNoticeDeal = new List(); + + //var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent; + ////entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空 + //List ListNoticeAll = new List(); + //List ListNoticeAllNAME = new List(); + //DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Deal, entity.ORG_ID.Value, DateTime.Now, null, null); + //listRiskSubminContentl.ForEach(item => + //{ + // //item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人 + // item.RiskContentState = (int)RiskContentState.CheckerCheck; + // if (string.IsNullOrEmpty(filter.Parameter3)) + // { + // item.CHECK_USER_REFUSED_REASON = filter.Parameter3; + // } + // else + // { + // item.CHECK_USER_REFUSED_REASON = null; + // } + // if (item.CHECK_USER_ID == LoginID) + // { + // item.ISCHECKERCHECK = true; + // } + // else + // { + // throw new Exception("只有验收人才能验收!"); + // } + + // if (!ListNoticeAll.Contains(item.DEAL_USER_ID.Value)) + // { + + // //整改责任人 + // ListNoticeAll.Add(item.DEAL_USER_ID.Value); + // //数量少 每次获取 页面能选 这边就不会报错 + // ListNoticeAllNAME.Add(item.Nav_UserDeal.NAME); + + // //给责任人 发送通知 + // listNoticeDeal = NotificationTaskService.InsertUserNoticeTaskModels("整改责任人确认:" + entity.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, dtNow, ((item.LastDateUser.HasValue && item.LastDateUser.Value < dtEnd) ? item.LastDateUser.Value : dtEnd), (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT");//HM001_SHOWPRINT + // } + //}); + + //T_FM_NOTIFICATION_TASK task = null; + //GetEntityTask(TaskID, ref task); + + //this.UnifiedCommit(() => + //{ + // UpdateEntityNoCommit(entity);//保存状态 + // if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表 + // BantchSaveEntity(listRiskSubminContentl); //保存子表 + // if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单 + // BantchSaveEntity(listNoticeDeal); + // if (task != null)//代办消息 清除 + // UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + //}); + #endregion + } + else + { + //驳回 + if (string.IsNullOrEmpty(filter.Parameter3)) + { + throw new Exception("请填写驳回意见!"); + } + + //整改责任人驳回 + //验收人 已经审批过 整改责任人是自己 自己没审批过 + + var listContent = entity.Nav_ListRiskSubmitContent.FindAll(e => e.CHECK_USER_ID == LoginID && e.ISDEALUSERCHECK && !e.ISCHECKERCHECK);//DEAL_USER_ID + + List listNoticeDeal = new List(); + T_FM_NOTIFICATION_TASK taskTemp = null; + int countTh = 0; + DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, filter.OrgId.Value, DateTime.Now, null, null); + Guid? UserID = null; + string UserName = string.Empty; + foreach (var item in listContent) + { + item.ISCHECKERCHECK = false; + item.CHECK_USER_REFUSED_REASON = filter.Parameter3;//DEAL_USER_REFUSED_REASON + item.CHECK_USER_REFUSED_REASON = null; + item.RiskContentState = (int)RiskContentState.Notice; + UserID = item.CREATER_ID.HasValue ? item.CREATER_ID.Value : item.DEAL_USER_ID.Value; + UserName = GetEntity(UserID.Value)?.NAME; + //taskTemp = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, item.ID, entity.ORG_ID, item.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042"); + taskTemp = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, item.ID, entity.ORG_ID, UserID.Value, UserName, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042");// item.USER_ID.Value, entity.Nav_User.NAME + + listNoticeDeal.Add(taskTemp); + countTh++; + } + + T_FM_NOTIFICATION_TASK task = null; + GetEntityTask(TaskID, ref task); + + this.UnifiedCommit(() => + { + if (listContent != null)//填写整改责任人拒绝原因 + BantchUpdateEntityNoCommit(listContent); + if (listNoticeDeal.Count > 0)//发送通知 给通知责任人 + BantchSaveEntityNoCommit(listNoticeDeal); + if (task != null)//代办消息 清除 + UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + }); + + #region /// + + ////驳回 + ////给通知责任人 发送 待办 指定 整改责任人、验收人 BS042 + + //if (string.IsNullOrEmpty(filter.Parameter3)) + //{ + // throw new Exception("请填写驳回意见!"); + //} + + //var sysFilter = new SystemCodeFilter(); + //sysFilter.CodeType = (int)PFCodeRuleType.消息通知; + //sysFilter.Count = 1; + //sysFilter.OrgId = entity.ORG_ID; + //var codes = CodeRuleService.NewGenSerial(sysFilter); + //var codeList = codes.Split(new char[] { ',' }); + + //var content = GetEntity(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == entity.ID, "Nav_User"); + //content.CHECK_USER_REFUSED_REASON = filter.Parameter3;//回到验收人已确定上一个状态 (不需要 就是这个状态) + + ////var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, entity.ID, entity.ORG_ID, content.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042"); //驳回 传入 隐患上报明细ID 否则不明确 + + //DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null); + //var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, content.ID, entity.ORG_ID, content.USER_ID.Value, content.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042"); + + //T_FM_NOTIFICATION_TASK task = null; + //GetEntityTask(TaskID, ref task); + + //this.UnifiedCommit(() => + //{ + // if (content != null)//填写验收人拒绝原因 + // UpdateEntityNoCommit(content); + // if (taskAdd != null)//整改责任人 按条数 收到整改单 + // UpdateEntityNoCommit(taskAdd); + // if (task != null)//代办消息 清除 + // UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + //}); + #endregion + + } + + return true; + }); + } + + + /// + /// 验收人 确定/驳回 确定(给责任人 发送通知 ) 驳回 (隐患通知责任人)发送通知 (BS042) + /// + /// + /// + [HttpPost, Route("CheckerCheckOld")] + public JsonActionResult CheckerCheckOld([FromBody] KeywordFilter filter) + { return SafeExecute(() => { //确定 / 驳回 确定(给责任人 BS042_SHOWPRINT 发送通知 ) 驳回 (隐患通知责任人)发送通知 (BS042) @@ -1663,8 +2198,8 @@ namespace APT.BS.WebApi.Controllers.Api /// /// /// - [HttpPost, Route("UserCheckAndSend")] - public JsonActionResult UserCheckAndSend([FromBody] KeywordFilter filter) + [HttpPost, Route("UserCheckAndSendOld")] + public JsonActionResult UserCheckAndSendOld([FromBody] KeywordFilter filter) { return SafeExecute(() => { @@ -1825,6 +2360,7 @@ namespace APT.BS.WebApi.Controllers.Api }); } + #endregion ///// ///// 验收人、整改责任人 验收 @@ -4554,6 +5090,19 @@ namespace APT.BS.WebApi.Controllers.Api { throw new Exception("行【" + (i + 1) + "】整改责任人和验收人不能同一个人!"); } + + if (DataHelper.GetRequestType(HttpContext.Request.Headers) != 2 || (DataHelper.GetRequestType(HttpContext.Request.Headers) == 2 && DateTime.Now.Month > 2)) + { + //移动端 修改 版本兼容 + if (!listRiskSubminContentl[i].CHECK_PROJECT_ID.HasValue) + { + throw new Exception("请选择行【" + (i + 1) + "】的检查项目!"); + } + if (!listRiskSubminContentl[i].CHECK_PROJECT_CATEGORY_ID.HasValue) + { + throw new Exception("请选择行【" + (i + 1) + "】的检查项目分类!"); + } + } } } @@ -4631,6 +5180,18 @@ namespace APT.BS.WebApi.Controllers.Api { throw new Exception("行【" + (i + 1) + "】整改责任人和验收人不能同一个人!"); } + + + //移动端 修改 版本兼容 + if (!listRiskSubminContentl[i].CHECK_PROJECT_ID.HasValue) + { + throw new Exception("请选择行【" + (i + 1) + "】的检查项目!"); + } + if (!listRiskSubminContentl[i].CHECK_PROJECT_CATEGORY_ID.HasValue) + { + throw new Exception("请选择行【" + (i + 1) + "】的检查项目分类!"); + } + } } } @@ -4906,7 +5467,6 @@ namespace APT.BS.WebApi.Controllers.Api ApproveIDDependUserID = listRiskSubminContentl[0].DEAL_USER_ID; } } - //?????? ////给通知责任人 发送通知 ////通知责任人 确定 后 走审批流 diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticeController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticeController.cs index 1c034b6..1770b31 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticeController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticeController.cs @@ -59,7 +59,8 @@ namespace APT.BS.WebApi.Controllers.Api } } var Nitoce = GetEntity(e => e.ID == ID, new string[] { "Nav_Submit.Nav_CheckType", "Nav_Submit.Nav_CheckTypeLevel.Nav_Enums", "Nav_Submit.Nav_Files.Nav_ImgFile.Nav_File", "Nav_Approve.Nav_ApproveDetails.Nav_ApproveUser.Nav_UserSignFiles.Nav_ImgFile.Nav_File" }); - var listRiskSubmitContentT = GetEntities(e => e.RISK_SUBMIT_NOTICE_ID == ID, null, new string[] { "Nav_SafeCheckDetail", "Nav_Question", "Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_Files.Nav_ImgFile.Nav_File", "Nav_DepartmentDeal", "Nav_UserDeal", "Nav_UserCheck" });//"Nav_User", "Nav_Department", 不需要了 BS006ShowPrint 隐患通知责任人 责任单位 + var listRiskSubmitContentT = GetEntities(e => e.RISK_SUBMIT_NOTICE_ID == ID, null, new string[] { "Nav_SafeCheckDetail", "Nav_Question", "Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_Files.Nav_ImgFile.Nav_File", "Nav_DepartmentDeal", "Nav_UserDeal", "Nav_UserCheck", "Nav_User", "Nav_Department" });//"Nav_User", "Nav_Department", 不需要了 BS006ShowPrint 隐患通知责任人 责任单位 + //DOTO 等移动端升级后 再取消 "Nav_User", "Nav_Department" if (listRiskSubmitContentT != null && listRiskSubmitContentT.Any()) { Nitoce.Nav_ListRiskSubmitContent = listRiskSubmitContentT.ToList(); diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs index 4e426d7..2309c5d 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs @@ -82,7 +82,7 @@ namespace APT.BS.WebApi.Controllers.Api expression = expression.And(e => e.DEAL_USER_ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID || e.ACTUAL_DEAL_USER_ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID || e.CHECK_USER_ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID); } var nitocePerson = GetEntity(e => e.ID == ID, new string[] { "Nav_Submit.Nav_Check", "Nav_User.Nav_Department" }); - var listRiskSubmitContentT = GetEntities(expression, null, new string[] { "Nav_Question", "Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_User", "Nav_Department", "Nav_DepartmentDeal", "Nav_UserDeal", "Nav_UserCheck", "Nav_UserActualDeal" }); + var listRiskSubmitContentT = GetEntities(expression, null, new string[] { "Nav_Question", "Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_User", "Nav_Department", "Nav_DepartmentDeal", "Nav_UserDeal", "Nav_UserCheck", "Nav_UserActualDeal", "Nav_Files.Nav_ImgFile.Nav_File" }); nitocePerson.Nav_ListRiskSubmitContent = listRiskSubmitContentT.ToList(); if (nitocePerson.Nav_ListRiskSubmitContent != null && nitocePerson.Nav_ListRiskSubmitContent.Any() && DataHelper.GetRequestType(Request.Headers) == 2) { diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs index 7b8e9f6..a658175 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs @@ -10,6 +10,7 @@ using APT.Migrations; using APT.MS.Domain.ApiModel.BS; using APT.MS.Domain.Entities.BS; using APT.MS.Domain.Entities.HM; +using APT.MS.Domain.Entities.LR; using APT.MS.Domain.Entities.SC.SC; using APT.MS.Domain.Enums; using APT.Utility; @@ -1877,6 +1878,23 @@ namespace APT.BS.WebApi.Controllers.Api item.Nav_Standard = null; } } + if (DataHelper.GetRequestType(HttpContext.Response.Headers) == 2) + { + foreach (var item in listDetail) + { + if (item.Nav_SafeCheck != null) + { + item.Nav_SafeCheck = null; + } + } + if (listDetailLaw != null && listDetailLaw.Count > 0) + { + foreach (var item in listDetailLaw) + { + item.Nav_Standard = null; + } + } + } if (entity.STATUSPLAN == 0) { @@ -3891,6 +3909,7 @@ namespace APT.BS.WebApi.Controllers.Api List Set555 = new List();//没问题 但是有填写的 List OtherNoRemarkResult = new List();//需要登录者填,但是登录者选择其他,但是没选问题等级或者备注 List NeedCheckResult = new List();//需要确认但是没有确认的 + List NeedCheckQuestionMore = new List();//检查问题多选 List listEmptyAddress = new List();//有问题 没写隐患位置 @@ -3907,6 +3926,7 @@ namespace APT.BS.WebApi.Controllers.Api //登录检查人员登记检查 List listDetailUserEdit = new List(); + List listDetailUserAdd = new List();//检查登记 如果有多个检查问题 会自动新增行 新增检查人 存在这边 List listDetailQuestion = new List(); List listDetailFile = new List(); @@ -3927,7 +3947,20 @@ namespace APT.BS.WebApi.Controllers.Api for (int i = 0; i < listDetail.Count; i++) { - detailLoginUserEdit = listDetail[i].Nav_ListCheckDetailUser.FirstOrDefault(e => e.USER_ID == UserID); + //如果是自动新增行 的人 + foreach (var item in listDetail[i].Nav_ListCheckDetailUser) + { + if (item.USER_ID == UserID) + { + detailLoginUserEdit = item; + } + else if (item.USER_ID != UserID && item.FLOW_STATUS == 1 && !item.ISMAINCHECK) + { + item.FLOW_STATUS = 0; + listDetailUserAdd.Add(item); + } + } + //detailLoginUserEdit = listDetail[i].Nav_ListCheckDetailUser.FirstOrDefault(e => e.USER_ID == UserID); if (detailLoginUserEdit == null) continue;//如果该检查记录和登录者无关跳过 detailLoginUserEdit.SAFECHECKSTATE = SAFECHECKSTATE;//状态修改 @@ -3955,12 +3988,11 @@ namespace APT.BS.WebApi.Controllers.Api if (listCheckDetailQuestion == null || !listCheckDetailQuestion.Any()) { //没有选择问题描述 - emptyResult.Add(i); + emptyResult.Add(i + 1); } else { listCheckDetailQuestion = listDetail[i].Nav_ListCheckDetailQuestion.Where(e => !e.IS_DELETED).ToList(); - var listDel = listDetail[i].Nav_ListCheckDetailQuestion.Where(e => e.IS_DELETED).ToList(); if (listDel != null && listDel.Count > 0) { @@ -3980,7 +4012,7 @@ namespace APT.BS.WebApi.Controllers.Api if (listDetail[i].QUESTION_LEVEL.HasValue && listDetail[i].QUESTION_LEVEL > 0) { - Set555.Add(i); + Set555.Add(i + 1); } } else if (item.SAFE_CHECK_QUESTION_ID == guid7) @@ -4027,6 +4059,10 @@ namespace APT.BS.WebApi.Controllers.Api listDetailQuestion.AddRange(listCheckDetailQuestion); + if (listCheckDetailQuestion.Count > 1) + { + NeedCheckQuestionMore.Add(i + 1); + } // 无 10 // 与问题描述一致 20 // 其它 30 //如果因为前端 没有赋值到检查问题等级 if (listDetail[i].CHECKRESULT.HasValue) @@ -4314,6 +4350,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(listDetailEdit); if (listDetailUserEdit.Count > 0)//明细检查人信息修改 BantchSaveEntityNoCommit(listDetailUserEdit); + if (listDetailUserAdd.Count > 0)//明细检查人信息新增 + BantchSaveEntityNoCommit(listDetailUserAdd); if (listDetailQuestion.Count > 0)//明细检查问题修改 BantchSaveEntityNoCommit(listDetailQuestion); if (listDetailReason != null && listDetailReason.Count > 0)//明细问题 @@ -4512,6 +4550,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(listDetailEdit); if (listDetailUserEdit.Count > 0)//明细检查人信息修改 BantchSaveEntityNoCommit(listDetailUserEdit); + if (listDetailUserAdd.Count > 0)//明细检查人信息新增 + BantchSaveEntityNoCommit(listDetailUserAdd); if (files != null && files.Any()) BantchSaveEntityNoCommit(files); //保存子表' if (listLoginSign.Any())//签名 @@ -4703,6 +4743,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(listDetailEdit); if (listDetailUserEdit.Count > 0)//明细检查人信息修改 BantchSaveEntityNoCommit(listDetailUserEdit); + if (listDetailUserAdd.Count > 0)//明细检查人信息新增 + BantchSaveEntityNoCommit(listDetailUserAdd); if (files != null && files.Any()) BantchSaveEntityNoCommit(files); //保存子表' if (listLoginSign.Any())//签名