From 605812c4717a2e7edbb4a70c706d9b58c454966c Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Fri, 12 Jul 2024 14:18:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E4=BB=BB=E5=8A=A1=E5=88=B6?= =?UTF-8?q?=E5=AE=9A=20=E5=8F=96=E6=B6=88=20=E5=8A=9F=E8=83=BD=20=E5=BB=B6?= =?UTF-8?q?=E6=9C=9F=E6=95=B4=E6=94=B9=20=20=E8=8E=B7=E5=8F=96=E7=8A=B6?= =?UTF-8?q?=E6=80=81=20=E6=B7=BB=E5=8A=A0=20=E4=BF=9D=E5=AD=98=E8=8D=89?= =?UTF-8?q?=E7=A8=BF=20=E6=95=B4=E6=94=B9=E9=A9=B3=E5=9B=9E=E3=80=81?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E9=A9=B3=E5=9B=9E=20=20=E9=99=84=E4=BB=B6?= =?UTF-8?q?=EF=BC=88=E6=95=B4=E6=94=B9=E5=90=8E=EF=BC=89=20=E7=A7=BB?= =?UTF-8?q?=E8=87=B3=20=E6=95=B4=E6=94=B9=E5=89=8D=20=E5=B1=A5=E8=81=8C?= =?UTF-8?q?=E6=83=85=E5=86=B5=20=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E5=85=A5=E5=8F=82=E4=B8=BAID=20=E6=8E=A5=E5=8F=A3=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=98=AF=E4=BB=80=E4=B9=88ID=20=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=89=80=E6=9C=89=E7=9B=B8=E5=85=B3=E6=93=8D=E4=BD=9C=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/BSOperateLogController.cs | 279 +++++++++++++++++- .../Controllers/Api/BSRiskSubmitController.cs | 51 ++++ .../Api/BSRiskSubmitDelayApplyController.cs | 2 +- .../Controllers/Api/BSSafeCheckController.cs | 26 +- 4 files changed, 333 insertions(+), 25 deletions(-) diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSOperateLogController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSOperateLogController.cs index 3dae5ea..e746f80 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSOperateLogController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSOperateLogController.cs @@ -33,42 +33,293 @@ namespace APT.BS.WebApi.Controllers.Api /// [HttpPost, Route("OrderEntities")] - public JsonActionResult> OrderEntities([FromBody] KeywordFilter filter) + public JsonActionResult>> OrderEntities([FromBody] KeywordFilter filter) { - return SafeExecute>(() => + return SafeExecute>>(() => { if (string.IsNullOrEmpty(filter.Keyword)) { - return new List(); + return new List>(); } else { - string Keyword = filter.Keyword; - var ids = Keyword.Split("_"); + Guid Keyword = new Guid(filter.Keyword); Guid? CheckID = null; Guid? SubmitID = null; - for (int i = 0; i < ids.Length; i++) + Guid? SubmitContentID = null; + + var check = GetEntity(Keyword); + T_BS_RISK_SUBMIT_CONTENT riskContent = null; + T_BS_RISK_SUBMIT risk = null; + if (check != null) { - if (!string.IsNullOrEmpty(ids[i])) + CheckID = check.ID; + risk = GetEntity(e => e.CHECK_ID.HasValue && e.CHECK_ID.Value == CheckID); + if (risk != null) { - if (i == 0) - CheckID = new Guid(ids[i]); - else - SubmitID = new Guid(ids[i]); + SubmitID = risk.ID; } } - List result = new List(); + else + { + risk = GetEntity(Keyword); + if (risk != null) + { + SubmitID = risk.ID; + if (risk.CHECK_ID.HasValue) + { + CheckID = risk.CHECK_ID.Value; + } + } + else + { + riskContent = GetEntity(Keyword); + if (riskContent != null) + { + SubmitContentID = riskContent.ID; + SubmitID = riskContent.RISK_SUBMIT_ID; + risk = GetEntity(SubmitID.Value); + if (risk != null && risk.CHECK_ID.HasValue) + { + CheckID = risk.CHECK_ID.Value; + } + } + } + } + + List> result = new List>(); + if (CheckID == null && SubmitID == null && SubmitContentID == null) + { + return result; + } + + List resultCheck1 = new List();//检查任务 + List resultCheck2 = new List();//检查记录 + List resultRisk1 = new List();//隐患上报 + List resultRiskDeal = new List();//隐患整改 + List resultRiskEnd = new List();//隐患上报 + if (CheckID != null) { - result.AddRange(GetEntities(e => e.DATA_ID == CheckID.Value, null, null).OrderBy(e => e.OPERATEPOINT).ToList()); + var resultT = GetEntities(e => e.DATA_ID == CheckID.Value, null, null).OrderBy(e => e.OPERATEPOINT).ToList(); + resultCheck1 = resultT.Where(e => e.OPERATEPOINT == OPERATEPOINT_Enums.GotCheck || e.OPERATEPOINT == OPERATEPOINT_Enums.CheckForm || e.OPERATEPOINT == OPERATEPOINT_Enums.CheckAudit || e.OPERATEPOINT == OPERATEPOINT_Enums.CheckerCheck).OrderBy(e => e.OPERATEPOINT).ToList(); + + resultCheck2 = resultT.Where(e => e.OPERATEPOINT == OPERATEPOINT_Enums.CheckRegisterRun || e.OPERATEPOINT == OPERATEPOINT_Enums.CheckRegister || e.OPERATEPOINT == OPERATEPOINT_Enums.CheckAgree || e.OPERATEPOINT == OPERATEPOINT_Enums.CheckResultAudit || e.OPERATEPOINT == OPERATEPOINT_Enums.CheckEnd).OrderBy(e => e.OPERATEPOINT).ToList(); } + result.Add(resultCheck1); + result.Add(resultCheck2); + int RiskContentCount = 0;//隐患数 if (SubmitID != null) { - result.AddRange(GetEntities(e => e.DATA_ID == SubmitID.Value, null, null).OrderBy(e => e.DATA_ID_SUB).ThenBy(e => e.OPERATEPOINT).ToList()); + Expression> expression = e => e.DATA_ID == SubmitID.Value; + if (SubmitContentID != null) + { + expression = e => e.DATA_ID == SubmitID.Value && (!e.DATA_ID_SUB.HasValue || e.DATA_ID_SUB.Value == SubmitContentID); + } + + var resultT = GetEntities(expression, null, null).OrderBy(e => e.DATA_ID_SUB).ThenBy(e => e.OPERATEPOINT).ToList(); + resultRisk1 = resultT.Where(e => (!e.DATA_ID_SUB.HasValue && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskEnd) || (e.OPERATEPOINT == OPERATEPOINT_Enums.RiskNoticeSD || e.OPERATEPOINT == OPERATEPOINT_Enums.RiskUpSD || e.OPERATEPOINT == OPERATEPOINT_Enums.RiskInfoCompleteSD)).OrderBy(e => e.OPERATEPOINT).ToList(); + result.Add(resultRisk1); + + //多个上报 多组信息 + var listSubID = resultT.Where(e => e.DATA_ID_SUB.HasValue && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskUpSD && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskInfoCompleteSD).Select(e => e.DATA_ID_SUB).Distinct().ToList(); + if (listSubID != null && listSubID.Count > 0) + { + foreach (var item in listSubID) + { + RiskContentCount++; + if (RiskContentCount == 1) + { + resultRiskDeal = resultT.Where(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB.Value == item && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskNoticeSD && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskUpSD && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskInfoCompleteSD && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskGet).OrderBy(e => e.CREATE_TIME).ThenBy(e => e.OPERATEPOINT).ThenBy(e => e.ORDERNO).ToList(); + result.Add(resultRiskDeal); + } + else + { + result.Add(resultT.Where(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB.Value == item && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskNoticeSD && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskUpSD && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskInfoCompleteSD && e.OPERATEPOINT != OPERATEPOINT_Enums.RiskGet).OrderBy(e => e.CREATE_TIME).ThenBy(e => e.OPERATEPOINT).ThenBy(e => e.ORDERNO).ToList()); + } + } + } + else + { + result.Add(resultRiskDeal); + } + + var resultRiskEndT = resultT.FirstOrDefault(e => !e.DATA_ID_SUB.HasValue && e.OPERATEPOINT == OPERATEPOINT_Enums.RiskEnd); + if (resultRiskEndT != null) + { + resultRiskEnd.Add(resultRiskEndT); + result.Add(resultRiskEnd); + } } + + #region 给他们 补齐 OPERATEPOINT + + List listEnums = DataHelper.GetEnum("OPERATEPOINT_Enums"); + + //检查任务 + //检查记录 + //隐患上报 + /* + * + * 隐患整改 + * + */ + //结束 + + T_BS_OPERATE_LOG ModelLog = null; + if (CheckID != null) + { + //安全检查 + if (resultCheck1.Count > 0) + { + ModelLog = resultCheck1[resultCheck1.Count - 1]; + if (ModelLog.OPERATEPOINT != OPERATEPOINT_Enums.CheckerCheck) + { + resultCheck1.AddRange(GetListLog((int)ModelLog.OPERATEPOINT, (int)OPERATEPOINT_Enums.CheckerCheck, listEnums)); + result[1] = resultCheck1; + } + } + else + { + resultCheck1.AddRange(GetListLog((int)OPERATEPOINT_Enums.GotCheck, (int)OPERATEPOINT_Enums.CheckerCheck, listEnums)); + result[1] = resultCheck1; + } + + if (resultCheck2.Count > 0) + { + ModelLog = resultCheck2[resultCheck2.Count - 1]; + if (ModelLog.OPERATEPOINT != OPERATEPOINT_Enums.CheckEnd) + { + resultCheck2.AddRange(GetListLog((int)ModelLog.OPERATEPOINT, (int)OPERATEPOINT_Enums.CheckEnd, listEnums)); + result[1] = resultCheck2; + } + } + else + { + resultCheck2.AddRange(GetListLog((int)OPERATEPOINT_Enums.CheckRegisterRun, (int)OPERATEPOINT_Enums.CheckEnd, listEnums)); + result[1] = resultCheck2; + } + } + + bool isAddApplyDely = false; + + if (SubmitID.HasValue) + { + if (resultRisk1 != null && resultRisk1.Count > 0) + { + if (resultRisk1[0].OPERATEPOINT != OPERATEPOINT_Enums.RiskGet) //检查上报 如果有 一定有值 不需要补 + { + ModelLog = resultRisk1[resultRisk1.Count - 1]; + if (ModelLog.OPERATEPOINT != OPERATEPOINT_Enums.RiskInfoCompleteSD) + { + resultRisk1.AddRange(GetListLog((int)OPERATEPOINT_Enums.RiskUpSD, (int)OPERATEPOINT_Enums.RiskInfoCompleteSD, listEnums, isAddApplyDely, true)); + result[2] = resultRisk1; + } + } + } + else if (risk != null) + { + if (risk.SUBMIT_TYPE == 20) + { + result[2] = GetListLog((int)OPERATEPOINT_Enums.RiskNoticeSD, (int)OPERATEPOINT_Enums.RiskInfoCompleteSD, listEnums, isAddApplyDely, true); + } + else if (risk.SUBMIT_TYPE == 10) + { + result[2] = new List() { new T_BS_OPERATE_LOG() { + OPERATEPOINT = OPERATEPOINT_Enums.RiskGet + } }; + } + } + + //隐患整改 + if (RiskContentCount == 0) + { + resultRiskDeal = GetListLog((int)OPERATEPOINT_Enums.RiskSendAudit, (int)OPERATEPOINT_Enums.RiskDealAudit, listEnums);//, false, false + if (resultRiskDeal != null && resultRiskDeal.Count > 0) + result[3].AddRange(resultRiskDeal); + } + else + { + List listLogT = null; + for (int i = 0; i < RiskContentCount; i++) + { + listLogT = result[i + 3]; + if (listLogT.Count > 0) + { + //第4个开始 下标 3 + ModelLog = listLogT[listLogT.Count - 1]; + if (ModelLog.OPERATEPOINT != OPERATEPOINT_Enums.RiskDealAudit) + { + var appCheck = listLogT.FirstOrDefault(e => e.OPERATEPOINT == OPERATEPOINT_Enums.RiskDelayApply); + if (appCheck != null && appCheck.ID != Guid.Empty) + isAddApplyDely = true; + result[i + 3].AddRange(GetListLog((int)ModelLog.OPERATEPOINT, (int)OPERATEPOINT_Enums.RiskDealAudit, listEnums, isAddApplyDely)); + } + } + else + { + result[i + 3] = GetListLog((int)OPERATEPOINT_Enums.RiskSendAudit, (int)OPERATEPOINT_Enums.RiskDealAudit, listEnums); + } + } + } + + //结束 + if (resultRiskEnd.Count == 0) + { + resultRiskEnd.Add(new T_BS_OPERATE_LOG() + { + OPERATEPOINT = OPERATEPOINT_Enums.RiskEnd + }); + result.Add(resultRiskEnd); + } + } + + #endregion + return result; } }); } + + /// + /// 添加固定项 Start 不添加 end 添加 + /// + /// + /// + /// + /// + /// + /// + public List GetListLog(int Start, int End, List listEnums, bool isAddApplyDely = false, bool isRiskSD = false) + { + List listResult = new List(); + if (Start >= End) + return listResult; + + foreach (var item in listEnums) + { + if (Start < item.ID && item.ID <= End) + { + if (!isAddApplyDely && (item.ID == 165 || item.ID == 170 || item.ID == 175)) + continue; + if (isRiskSD) + { + if (item.ID == 120) + continue;//手动隐患上报 非手动隐患上报的信息 返回 + } + else + { + if (item.ID == 90 || item.ID == 100 || item.ID == 110) + continue;//非手动隐患上报 手动隐患上报的信息 返回 + } + + listResult.Add(new T_BS_OPERATE_LOG() + { + OPERATEPOINT = (OPERATEPOINT_Enums)item.ID + }); + } + } + return listResult; + } } } \ No newline at end of file diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs index 22a5a32..5d60a57 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs @@ -3961,6 +3961,27 @@ namespace APT.BS.WebApi.Controllers.Api } else { + #region //整改责任人 驳回 附件整改后 移到整改前 + var listFilesAfter = GetEntities(e => e.RISK_SUBMIT_CONTENT_DEAL_ID == entity.ID, null, null); + List ids = listFilesAfter.Select(e => e.ID).ToList(); + List listFiles = new List(); + if (listFilesAfter != null && listFilesAfter.Any()) + { + foreach (var item in listFilesAfter) + { + listFiles.Add(new T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE() + { + ID = item.ID,//ID不变 别的不变 + ORG_ID = item.ORG_ID, + RISK_SUBMIT_CONTENT_DEAL_ID = item.RISK_SUBMIT_CONTENT_DEAL_ID, + IMG_FILE_ID = item.IMG_FILE_ID, + CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID, + CREATE_TIME = DateTime.Now + }); + } + } + + #endregion #region 验收未通过 直接驳回给 整改落实人 @@ -3988,6 +4009,10 @@ namespace APT.BS.WebApi.Controllers.Api UpdateEntityNoCommit(noticeActualDeal);//整改单通知 if (task != null)//代办消息 清除 UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + if (listFilesAfter != null && listFilesAfter.Any()) + BantchDeleteEntityNoCommit(ids); + if (listFiles != null && listFiles.Any()) + BantchSaveEntityNoCommit(listFiles); }); #endregion @@ -4997,6 +5022,28 @@ namespace APT.BS.WebApi.Controllers.Api T_FM_NOTIFICATION_TASK noticeBack = NotificationTaskService.InsertUserNoticeTaskModel(title, contentDeal.ID, contentDeal.ORG_ID, contentDeal.ACTUAL_DEAL_USER_ID.Value, contentDeal.Nav_UserActualDeal.NAME, DateTime.Now, DateTime.Now.AddDays(1), 0, "BS044"); + #region //整改责任人 驳回 附件整改后 移到整改前 + var listFilesAfter = GetEntities(e => e.RISK_SUBMIT_CONTENT_DEAL_ID == contentDeal.ID, null, null); + List ids = listFilesAfter.Select(e => e.ID).ToList(); + List listFiles = new List(); + if (listFilesAfter != null && listFilesAfter.Any()) + { + foreach (var item in listFilesAfter) + { + listFiles.Add(new T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE() + { + ID = item.ID,//ID不变 别的不变 + ORG_ID = item.ORG_ID, + RISK_SUBMIT_CONTENT_DEAL_ID = item.RISK_SUBMIT_CONTENT_DEAL_ID, + IMG_FILE_ID = item.IMG_FILE_ID, + CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID, + CREATE_TIME = DateTime.Now + }); + } + } + + #endregion + UnifiedCommit(() => { if (modelApp != null) @@ -5011,6 +5058,10 @@ namespace APT.BS.WebApi.Controllers.Api UpdateEntityNoCommit(noticeBack); if (taskFinish != null) UpdateEntityNoCommit(taskFinish); + if (listFilesAfter != null && listFilesAfter.Any()) + BantchDeleteEntityNoCommit(ids); + if (listFiles != null && listFiles.Any()) + BantchSaveEntityNoCommit(listFiles); }); return true; }); diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitDelayApplyController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitDelayApplyController.cs index 8a4dd97..49713d1 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitDelayApplyController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitDelayApplyController.cs @@ -99,7 +99,7 @@ namespace APT.BS.WebApi.Controllers.Api //&& (((!e.ISBACK.HasValue || !e.ISBACK.Value) && e.RiskContentState == (int)RiskContentState.ActualDealCheck) || (e.ISBACK.HasValue && e.ISBACK.Value && e.RiskContentState == (int)RiskContentState.OKNotBack) //); pageFilter.IgnoreDataRule = true; - var info = GetEntities(e => e.Nav_ListRiskSubmitContent.FirstOrDefault(e => e.ACTUAL_DEAL_USER_ID.HasValue && e.ACTUAL_DEAL_USER_ID.Value == LoginID && !e.IS_DELETED && e.LastDateUser.HasValue && e.LastDateUser.Value >= dtNowDate && (e.RiskContentState == (int)RiskContentState.ActualDealCheck || e.RiskContentState == (int)RiskContentState.OKNotBack)) != null, pageFilter, new string[] { "Nav_ListRiskSubmitContent" }).Distinct(); + var info = GetEntities(e => e.Nav_ListRiskSubmitContent.FirstOrDefault(e => e.ACTUAL_DEAL_USER_ID.HasValue && e.ACTUAL_DEAL_USER_ID.Value == LoginID && !e.IS_DELETED && e.LastDateUser.HasValue && e.LastDateUser.Value >= dtNowDate && (e.RiskContentState == (int)RiskContentState.ActualDealCheck || e.RiskContentState == (int)RiskContentState.DealTemp || e.RiskContentState == (int)RiskContentState.OKNotBack)) != null, pageFilter, new string[] { "Nav_ListRiskSubmitContent" }).Distinct(); result.TotalCount = info.Count(); result.Data = info.Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).OrderByDescending(e => e.CODE).ToList(); diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs index 812a172..9798941 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs @@ -8574,19 +8574,25 @@ namespace APT.BS.WebApi.Controllers.Api Check.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; Check.MODIFY_TIME = DateTime.Now; - T_FM_NOTIFICATION_TASK task = null; - MS.Domain.Entities.SC.BI.T_BI_NOTIFICATION_TASK_NEW taskBI = null; if (TaskID != Guid.Empty) { - task = NotificationTaskService.GetEntityTask(TaskID, "BS032_SHOWPRINT"); - if (task != null) - { - task.ISCANCEL = true; - task.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - task.MODIFY_TIME = DateTime.Now; - } - taskBI = GetEntity(e => e.SOURCE_DATA_ID == CheckID && e.NOTICE_STATUS == 0 && e.SOURCE_FORMCODE == "BS032"); + task = GetEntity(TaskID); + } + else + { + task = GetEntity(e => e.SOURCE_DATA_ID == CheckID && e.SOURCE_FORMCODE == "BS032"); + } + MS.Domain.Entities.SC.BI.T_BI_NOTIFICATION_TASK_NEW taskBI = null; + if (task != null) + { + task.SOURCE_FORMCODE = "BS032_SHOWPRINT"; + task.ISCANCEL = true; + task.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + task.MODIFY_TIME = DateTime.Now; + task.NOTICE_STATUS = 1; + + taskBI = GetEntity(e => e.TASK_ID == task.ID); if (taskBI != null) { taskBI.MODIFIER_ID = task.MODIFIER_ID;