diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs index e9b0516..0860e4f 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs @@ -13,6 +13,7 @@ using APT.MS.Domain.Enums; using APT.MS.Domain.Enums.SK; using APT.Utility; using Microsoft.AspNetCore.Mvc; +using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Linq; @@ -54,7 +55,16 @@ namespace APT.FO.WebApi.Controllers if (entity != null) { var details = this.GetEntities(t => t.FIRE_JOB_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_DetailFiles.Nav_ImgFile.Nav_File").ToList(); + entity.Nav_Details = details.OrderBy(t => t.JOB_STEP).ThenBy(m => m.NUM).ToList(); + if (entity.FIRE_STATUS.GetInt() <= 15) + { + entity.Nav_Details = entity.Nav_Details.Where(t => t.JOB_STEP == FOJobStepEnum.Pre).OrderBy(m => m.NUM).ToList(); + } + else if (entity.FIRE_STATUS.GetInt() <= 21) + { + entity.Nav_Details = entity.Nav_Details.Where(t => t.JOB_STEP != FOJobStepEnum.Pre).OrderBy(t => t.JOB_STEP).ThenBy(m => m.NUM).ToList(); + } var users = this.GetEntities(t => t.FIRE_JOB_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_UserType", "Nav_Train", "Nav_UserFiles.Nav_ImgFile", "Nav_User").ToList(); entity.Nav_Users = users.ToList(); } @@ -137,8 +147,10 @@ namespace APT.FO.WebApi.Controllers details = details.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_Details = null; - var detailIds = this.GetEntities(t => t.FIRE_JOB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); - var detailFileIds = this.GetEntities(t => detailIds.Contains(t.FIRE_JOB_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); + var detailInfos = this.GetEntities(t => t.FIRE_JOB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).ToList(); + var detailIds = detailInfos.Select(m => m.ID).ToList(); + var detailFileInfos = this.GetEntities(t => detailIds.Contains(t.FIRE_JOB_DETAIL_ID), new BaseFilter(entity.ORG_ID)).ToList(); + var detailFileIds = detailFileInfos.Select(m => m.ID).ToList(); var detailList = new List(); var detailFileList = new List(); if (details != null && details.Any()) @@ -343,6 +355,11 @@ namespace APT.FO.WebApi.Controllers var detailNeed = detailList.FirstOrDefault(t => (t.JOB_STEP == FOJobStepEnum.Ing && t.IS_CONFIRM_NEW == false) || (t.JOB_STEP == FOJobStepEnum.After && t.IS_CONFIRM_NEW == false)); if (detailNeed != null) throw new Exception("作业中或作业后未全部确认!"); + //作业前不删 + var noDeleteIds = detailInfos.Where(t => t.JOB_STEP == FOJobStepEnum.Pre).Select(t => t.ID).ToList(); + detailIds = detailIds.Where(t => !noDeleteIds.Contains(t)).ToList(); + var noDeleteFileIds = detailFileInfos.Where(t => noDeleteIds.Contains(t.FIRE_JOB_DETAIL_ID)).Select(t => t.ID).ToList(); + detailFileIds = detailFileIds.Where(t => !noDeleteFileIds.Contains(t)).ToList(); //触发给动火部门负责人、安全管理人员审阅 var sendUser = this.GetEntities(t => t.ID == entity.FIRE_USER_ID || t.ID == entity.SAFE_USER_ID, new BaseFilter(entity.ORG_ID)).ToList(); if (sendUser != null && sendUser.Any()) @@ -375,6 +392,11 @@ namespace APT.FO.WebApi.Controllers var detailNeed = detailList.FirstOrDefault(t => t.JOB_STEP == FOJobStepEnum.Pre && t.IS_CONFIRM_NEW == false); if (detailNeed != null) throw new Exception("作业前未全部确认!"); + //作业中后不删 + var noDeleteIds = detailInfos.Where(t => t.JOB_STEP != FOJobStepEnum.Pre).Select(t => t.ID).ToList(); + detailIds = detailIds.Where(t => !noDeleteIds.Contains(t)).ToList(); + var noDeleteFileIds = detailFileInfos.Where(t => noDeleteIds.Contains(t.FIRE_JOB_DETAIL_ID)).Select(t => t.ID).ToList(); + detailFileIds = detailFileIds.Where(t => !noDeleteFileIds.Contains(t)).ToList(); //触发给动火部门负责人、安全管理人员、矿调度人员审阅 var sendUser = this.GetEntities(t => t.ID == entity.FIRE_USER_ID || t.ID == entity.SAFE_USER_ID || t.ID == entity.DISPATCH_USER_ID, new BaseFilter(entity.ORG_ID)).ToList(); if (sendUser != null && sendUser.Any()) @@ -403,6 +425,11 @@ namespace APT.FO.WebApi.Controllers } else { + //作业中后不删 + var noDeleteIds = detailInfos.Where(t => t.JOB_STEP != FOJobStepEnum.Pre).Select(t => t.ID).ToList(); + detailIds = detailIds.Where(t => !noDeleteIds.Contains(t)).ToList(); + var noDeleteFileIds = detailFileInfos.Where(t => noDeleteIds.Contains(t.FIRE_JOB_DETAIL_ID)).Select(t => t.ID).ToList(); + detailFileIds = detailFileIds.Where(t => !noDeleteFileIds.Contains(t)).ToList(); //触发审批 entity.STATUS = BaseData.Domain.Enums.PF.PFStandardStatus.Approving; entity.FIRE_STATUS = FOFireStatus.Approving; @@ -519,6 +546,7 @@ namespace APT.FO.WebApi.Controllers return SafeExecute(() => { var fire = this.GetEntity(entity.ID); + var detailList = new List(); var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; if (entity.TaskID != Guid.Empty) { diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/TechDisclosureFromController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/TechDisclosureFromController.cs index a12fc25..afa1bf4 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/TechDisclosureFromController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/TechDisclosureFromController.cs @@ -102,6 +102,7 @@ namespace APT.FO.WebApi.Controllers if (files != null && files.Any()) { files = files.Where(t => !t.IS_DELETED).ToList(); + files.ForEach(t => t.TECH_DISCLOSURE_FROM_ID = entity.ID); } entity.Nav_Files = null; List notices = new List();