From 1a2c37eb04a1fcb43d93022912dfa2c013867008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Tue, 30 Sep 2025 11:03:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/PF/PFApproveCallBackService.cs | 11 ++++++++-- .../Controllers/Api/SKController.cs | 22 +++++++++++++++---- .../Api/EnterpriseLibraryController.cs | 13 +++++++++-- .../Api/HiddenDangerConfirmController.cs | 2 +- ...HiddenDangerRectifyDelayApplyController.cs | 2 +- .../HiddenDangerRectifyRecordController.cs | 2 +- .../Api/IdentifyEvaluationPlanController.cs | 2 +- .../Api/RiskEvaluationController.cs | 2 +- .../Controllers/Api/RiskIdentifyController.cs | 6 ++--- .../Api/RiskIdentifyResultController.cs | 2 +- 10 files changed, 47 insertions(+), 17 deletions(-) diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index e94009f..be072a3 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -12341,8 +12341,15 @@ namespace APT.BaseData.Services.DomainServices var i = 1; foreach (var ite in measuresTemp) { - var temp2 = i + "、" + ite + ";"; - ideDetail.MEASURE = ideDetail.MEASURE + Environment.NewLine + temp2; + var temp2 = i + "、" + ite; + if (i == 1) + { + ideDetail.MEASURE = temp2; + } + else + { + ideDetail.MEASURE = ideDetail.MEASURE + Environment.NewLine + temp2; + } i++; } } diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index 6773b66..aa813a5 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -1121,8 +1121,15 @@ namespace APT.PP.WebApi.Controllers.Api var i = 1; foreach (var ite in measuresTemp) { - var temp2 = i + "、" + ite + ";"; - ideDetail.MEASURE = ideDetail.MEASURE + Environment.NewLine + temp2; + var temp2 = i + "、" + ite; + if (i == 1) + { + ideDetail.MEASURE = temp2; + } + else + { + ideDetail.MEASURE = ideDetail.MEASURE + Environment.NewLine + temp2; + } i++; } } @@ -1364,8 +1371,15 @@ namespace APT.PP.WebApi.Controllers.Api var i = 1; foreach (var ite in measuresTemp) { - var temp2 = i + "、" + ite + ";"; - ideDetail.MEASURE = ideDetail.MEASURE + Environment.NewLine + temp2; + var temp2 = i + "、" + ite; + if (i == 1) + { + ideDetail.MEASURE = temp2; + } + else + { + ideDetail.MEASURE = ideDetail.MEASURE + Environment.NewLine + temp2; + } i++; } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs index 45c3575..9c88202 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs @@ -2305,7 +2305,9 @@ namespace APT.SK.WebApi.Controllers.Api [HttpPost, Route("GetCheckListNew")] public JsonActionResult> GetCheckListNew([FromBody] KeywordFilter filter) { - var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; + var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; + var loginUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + var userInfo = this.GetEntity(t => t.ID == loginUser); var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); List selectMinetype = new List(); var minetype = departs.FirstOrDefault(t => t.ID == loginDepart)?.MineType; @@ -2485,7 +2487,14 @@ namespace APT.SK.WebApi.Controllers.Api } list.Add(listNew); } - checkList.Data = list.Where(t => selectMinetype.Contains(t.MineType)).OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + if (userInfo != null && userInfo.NAME.Contains("管理员")) + { + checkList.Data = list.OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + } + else + { + checkList.Data = list.Where(t => selectMinetype.Contains(t.MineType)).OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + } checkList.TotalCount = checkList.Data.Count; } return checkList; diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerConfirmController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerConfirmController.cs index cf89b8c..efef3bd 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerConfirmController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerConfirmController.cs @@ -109,7 +109,7 @@ namespace APT.SK.WebApi.Controllers.Api if (hiddenLevel == SKHiddenLevel.General) { var departmentType = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.DEPARTMENT_TYPE; - level = Enum.GetName(typeof(FMDepartmentType), departmentType); + level = Enum.GetName(typeof(SKDepartmentTypeEnum), departmentType); } //触发审批 entity.STATUS = PFStandardStatus.Approving; diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs index d55cb42..7c741f6 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs @@ -54,7 +54,7 @@ namespace APT.SK.WebApi.Controllers.Api if (hiddenLevel == SKHiddenLevel.General) { var departmentType = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.DEPARTMENT_TYPE; - param = Enum.GetName(typeof(FMDepartmentType), departmentType); + param = Enum.GetName(typeof(SKDepartmentTypeEnum), departmentType); } entity.STATUS = PFStandardStatus.Approving; //取审批流水码 diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyRecordController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyRecordController.cs index 1fe70f6..2587c5d 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyRecordController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyRecordController.cs @@ -178,7 +178,7 @@ namespace APT.SK.WebApi.Controllers if (entity.HIDDEN_LEVEL == SKHiddenLevel.General) { var departmentType = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.DEPARTMENT_TYPE; - param = Enum.GetName(typeof(FMDepartmentType), departmentType); + param = Enum.GetName(typeof(SKDepartmentTypeEnum), departmentType); } MFlowPermitService.InsertApprove(serialCode[0], "SK022", param, entity.ID, "SK022_SHOWPRINT", entity.TaskID, true, () => { diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/IdentifyEvaluationPlanController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/IdentifyEvaluationPlanController.cs index 1e80891..98938d3 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/IdentifyEvaluationPlanController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/IdentifyEvaluationPlanController.cs @@ -106,7 +106,7 @@ namespace APT.SK.WebApi.Controllers.Api var department = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0); if (department != null) { - if (department.DEPARTMENT_TYPE == 3 || (department.NAME.Contains("安全环保") && department.DEPARTMENT_TYPE == 0)) + if (department.DEPARTMENT_TYPE == 5 || (department.NAME.Contains("安全环保") && department.DEPARTMENT_TYPE == 10)) { param = "公司"; } } entity.STATUS = PFStandardStatus.Approving; diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs index 3dd9c15..510163c 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs @@ -167,7 +167,7 @@ namespace APT.SK.WebApi.Controllers.Api if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { var departmentType = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.DEPARTMENT_TYPE; - var param = Enum.GetName(typeof(FMDepartmentType), departmentType); + var param = Enum.GetName(typeof(SKDepartmentTypeEnum), departmentType); entity.STATUS = PFStandardStatus.Approving; //取审批流水码 var sysFilter = new SystemCodeFilter(); diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyController.cs index da417a8..ff65b85 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyController.cs @@ -120,10 +120,10 @@ namespace APT.SK.WebApi.Controllers.Api if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { var department = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0); - var param = Enum.GetName(typeof(FMDepartmentType), department?.DEPARTMENT_TYPE); - if (department.PARENT_ID != null && param == "公司") + var param = Enum.GetName(typeof(SKDepartmentTypeEnum), department?.DEPARTMENT_TYPE); + if (department.PARENT_ID != null && param == "公司级") { - param = "部门"; + param = "部门级"; } entity.STATUS = PFStandardStatus.Approving; //取审批流水码 diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyResultController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyResultController.cs index 5a6abfc..39689db 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyResultController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskIdentifyResultController.cs @@ -155,7 +155,7 @@ namespace APT.SK.WebApi.Controllers.Api if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { var departmentType = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.DEPARTMENT_TYPE; - var param = Enum.GetName(typeof(FMDepartmentType), departmentType); + var param = Enum.GetName(typeof(SKDepartmentTypeEnum), departmentType); entity.STATUS = PFStandardStatus.Approving; //取审批流水码 var sysFilter = new SystemCodeFilter(); From df24bf4e9b4c8330cb6d9072e8709c1358bc6d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Tue, 30 Sep 2025 11:51:12 +0800 Subject: [PATCH 2/2] 2 --- .../Controllers/Api/SKController.cs | 942 +++++++++--------- 1 file changed, 473 insertions(+), 469 deletions(-) diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index aa813a5..28ba829 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -4833,476 +4833,480 @@ namespace APT.PP.WebApi.Controllers.Api }); } - /// - /// 触发安全检查通知(最新版) - /// - /// - /// - [HttpPost, Route("SafeCheckNoticeNeww")] - public JsonActionResult SafeCheckNoticeNeww([FromBody] KeywordFilter filter) - { - return SafeExecute(() => - { - try - { - var dtNow = DateTime.Now; - var year = dtNow.Year; - var month = dtNow.Month; - var day = dtNow.Day; - var week = dtNow.DayOfWeek; - List setList = new List(); - //查配置表,有配才执行 - var timeSets = GetEntities(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); - if (timeSets != null && timeSets.Any()) - { - foreach (var set in timeSets) - { - switch (set.CHECK_CYCLE) - { - case SKPLANCHECKFREQUENCYEnum.Year: - if (set.MONTH == month && set.DATA == day) - { - setList.Add(set); - } - break; - case SKPLANCHECKFREQUENCYEnum.HalfYear: - if ((set.MONTH == month && set.DATA == day) || ((set.MONTH + 6) == month && (set.DATA + 183) == day)) - { - setList.Add(set); - } - break; - case SKPLANCHECKFREQUENCYEnum.Date: - setList.Add(set); - break; - //case SKPLANCHECKFREQUENCYEnum.Class: - // setList.Add(set); - break; - case SKPLANCHECKFREQUENCYEnum.Week: - if (set.WEEKDATA != null && (int)set.WEEKDATA.Value == (int)week) - { - setList.Add(set); - } - break; - case SKPLANCHECKFREQUENCYEnum.Month: - if (set.DATA == day) - { - setList.Add(set); - } - break; - case SKPLANCHECKFREQUENCYEnum.Quarter: - if (set.MONTH == 1) - { - if ((month == 1 || month == 4 || month == 7 || month == 10) && set.DATA == day) - { - setList.Add(set); - } - } - if (set.MONTH == 2) - { - if ((month == 2 || month == 5 || month == 8 || month == 11) && set.DATA == day) - { - setList.Add(set); - } - } - if (set.MONTH == 3) - { - if ((month == 3 || month == 6 || month == 9 || month == 12) && set.DATA == day) - { - setList.Add(set); - } - } - break; - default: - break; - } - } - } - List notices = new List(); - List safeNotices = new List(); - List safeDetialNotices = new List(); - List records = new List(); - List recordDetails = new List(); - List recordDetailUsers = new List(); - List list = new List(); - List detailContents = new List(); - if (setList != null && setList.Any()) - { - var checkTypes = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)); - var checkTypeIds = checkTypes.Where(t => t.NAME == "岗位排查").Select(m => m.ID).ToList(); - var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_User"); - var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin") && t.Nav_Person != null, new BaseFilter(filter.OrgId), "Nav_Person", "Nav_ApproveRole"); - var checkCycles = setList.Select(t => t.CHECK_CYCLE).Distinct().ToList(); - var librarys = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area", "Nav_ProductionUnit").ToList(); - var libraryDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList(); - var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Contents").ToList(); - var contentDeparts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList(); - var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); - if (librarys != null && librarys.Any()) - { - foreach (var item in librarys) - { - var libraryPost = posts.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); - var details = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); - var detailIds = details.Select(t => t.ID).ToList(); - var contentTemps = contents.Where(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID)).ToList(); - var contentTempIds = contentTemps.Select(t => t.ID).ToList(); - var contentDepartTemps = contentDeparts.Where(t => contentTempIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).ToList(); - if (contentDepartTemps != null && contentDepartTemps.Any()) - { - foreach (var depart in contentDepartTemps) - { - var first = libraryPost.FirstOrDefault(t => t.DEPARTMENT_ID == depart.DEPARTMENT_ID)?.Nav_PostDetails?.Select(m => m.Nav_Post).OrderBy(n => n?.NAME).ToList(); - var contentFirst = contentTemps.FirstOrDefault(t => t.ID == depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID); - if (first != null && first.Any()) - { - foreach (var post in first) - { - //没角色的才取岗位 - var userRole = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == post?.ID).APPROVE_ROLE_ID; - if (userRole == null) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); - de.POST_NAME = post?.NAME; - de.MineType = item.MineType; - de.MINE_NAME = item.Nav_ProductionUnit?.NAME; - de.AREA_NAME = item.Nav_Area?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; - de.ENTERPRISE_LIBRARY_ID = item.ID; - de.TYPE_NAME = depart.Nav_CheckType?.NAME; - de.DEPART_NAME = depart.Nav_Department?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; - de.CHECK_CYCLE = depart.CHECK_CYCLE; - de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; - de.DEPARTMENT_ID = depart.DEPARTMENT_ID; - de.CHECK_TYPE = depart.CHECK_TYPE; - de.POST_ID = post?.ID; - detailContents.Add(de); - } - } - } - else - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); - de.POST_NAME = "未配置辨识岗位"; - de.MineType = item.MineType; - de.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; - de.MINE_NAME = item.Nav_ProductionUnit?.NAME; - de.AREA_NAME = item.Nav_Area?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; - de.ENTERPRISE_LIBRARY_ID = item.ID; - de.TYPE_NAME = depart.Nav_CheckType?.NAME; - de.DEPART_NAME = depart.Nav_Department?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; - de.CHECK_CYCLE = depart.CHECK_CYCLE; - de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; - de.DEPARTMENT_ID = depart.DEPARTMENT_ID; - de.CHECK_TYPE = depart.CHECK_TYPE; - detailContents.Add(de); - } - } - } - } - } - if (detailContents != null && detailContents.Any()) - { - foreach (var item in contents) - { - var detailLib = libraryDetails.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_ID); - var lib = librarys.FirstOrDefault(t => t.ID == detailLib?.ENTERPRISE_LIBRARY_ID); - item.RISK_NAME = lib?.RISK_NAME; - item.AREA_ID = lib?.AREA_ID; - item.Nav_Area = lib?.Nav_Area; - } - foreach (var item in detailContents) - { - if (checkTypeIds != null && checkTypeIds.Any() && item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID)) - { - - } - else - { - if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级) - { - item.POST_NAME = "班组负责人"; - } - else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级) - { - item.POST_NAME = "车间安全员"; - } - else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级) - { - item.POST_NAME = "部门安全员"; - } - else - { - item.POST_NAME = "安环部安全员"; - } - var user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.POST_NAME); - if (user != null) - { - item.POST_ID = user.Nav_Person?.POST_ID; - } - } - } - var group = detailContents.Where(m => checkCycles.Contains(m.CHECK_CYCLE)).GroupBy(t => new { t.MineType,t.PRODUCTION_UNIT_ID, t.MINE_NAME,t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME, t.POST_ID }).ToList(); - foreach (var item in group) - { - CheckListNew listNew = new CheckListNew(); - listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID; - listNew.Cycle = item.Key.CHECK_CYCLE; - listNew.DepartType = item.Key.CHECK_TYPE; - listNew.MineType = item.Key.MINE_NAME; - listNew.CheckType = item.Key.TYPE_NAME; - listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); - listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); - listNew.Num = (int)item.Key.CHECK_TYPE; - listNew.CheckDepart = item.Key.DEPART_NAME; - listNew.CheckPostId = item.Key.POST_ID; - listNew.CheckPost = item.Key.POST_NAME; - listNew.CheckDepartId = item.Key.DEPARTMENT_ID; - listNew.CheckTypeId = item.Key.CHECK_TYPE_ID; - var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.MineType == item.Key.MineType && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); - var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList(); - if (temps.Any()) - { - List listDetail = new List(); - foreach (var tem in temps) - { - CheckListDetail checkListDetail = new CheckListDetail(); - checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID; - checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT; - checkListDetail.RISK_NAME = tem.RISK_NAME; - checkListDetail.RISK_AREA_ID = tem.AREA_ID; - checkListDetail.RISK_AREA_NAME = tem.Nav_Area?.NAME; - checkListDetail.CHECKPROOF = tem.CHECK_BASIC; - checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD; - listDetail.Add(checkListDetail); - } - listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); - } - list.Add(listNew); - } - list = list.OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); - } - DateTime dt = DateTime.Now; - if (filter.Parameter1 != null) - { - dt = DateTime.Parse(filter.Parameter1); - } - DateTime minTime = dt.AddMinutes(0); - DateTime maxTime = dt.AddMinutes(60); - var shiftClassList = this.GetEntities(s => s.START_TIME > minTime && s.START_TIME <= maxTime && s.START_TIME != s.END_TIME && s.Nav_Team.ENABLE_STATUS == 0 && s.TEAM_ID != null, new BaseFilter(filter.OrgId), "Nav_DepartmentSchedulingDetail.Nav_Person").ToList(); - var teamIds = shiftClassList.Select(t => t.TEAM_ID).Distinct().ToList(); - var teamInfos = this.GetEntities(t => teamIds.Contains(t.ID), new BaseFilter(filter.OrgId)); - var teamDepartIds = teamInfos.Select(m => m.DEPARTMENT_ID).Distinct().ToList(); - var personIds = new List(); - if (shiftClassList != null && shiftClassList.Any()) - { - foreach (var item in shiftClassList) - { - if (item.Nav_DepartmentSchedulingDetail != null && item.Nav_DepartmentSchedulingDetail.Any()) - { - var ids = item.Nav_DepartmentSchedulingDetail.Select(t => t.PERSON_ID).Distinct().ToList(); - personIds.AddRange(ids); - } - } - } - var baseFilter = new BaseFilter(filter.GetOrgId()); - baseFilter.IgnoreDataRule = true; - baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" }; //指定字段,包括导航属性 - Expression> expression = i => i.IS_DELETED == false && i.CREATE_TIME.Value.Date == dt.Date; - List noticeExsiss = this.GetOrderEntities(expression, baseFilter).ToList(); - //取岗位排查表 - var postCheckList = list.Where(t => t.CheckTypeId != null && checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList(); - if (postCheckList != null && postCheckList.Any()) - { - foreach (var item in postCheckList) - { - //触发安全检查记录给对应的岗位工(有排班才触发) - var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.Nav_Person != null && t.Nav_Person.POST_ID == item.CheckPostId); - if (userInfo != null) - { - T_SK_SECURITY_INSPECTION_RECORD record = new T_SK_SECURITY_INSPECTION_RECORD(); - record.ORG_ID = filter.OrgId; - record.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID; - record.APPLY_USER_ID = userInfo.ID; - record.MineType = item.Mine; - record.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; - record.CHECK_TYPE_ID = item.CheckTypeId; - record.PLANCHECKFREQUENCY = item.Cycle; - record.DEPARTMENT_TYPE = item.DepartType; - record.STATUS = PFStandardStatus.Draft; - record.ISAUTO = true; - records.Add(record); - if (item.details != null && item.details.Any()) - { - foreach (var item2 in item.details) - { - var i = 1; - //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID); - //if (repeat == null) - { - T_SK_SECURITY_INSPECTION_RECORD_DETAIL detail = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL(); - detail.ORG_ID = filter.OrgId; - detail.SECURITY_INSPECTION_RECORD_ID = record.ID; - detail.RISK_AREA_ID = item2.RISK_AREA_ID; - detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; - detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME; - detail.CHECKPROOF = item2.CHECKPROOF; - detail.CHECKSTANDARD = item2.CHECKSTANDARD; - detail.NUM = i; - recordDetails.Add(detail); - i++; - T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER deUser = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER(); - deUser.ORG_ID = filter.OrgId; - deUser.SECURITY_INSPECTION_RECORD_DETAIL_ID = detail.ID; - deUser.USER_ID = userInfo.ID; - deUser.ISMAINCHECK = true; - recordDetailUsers.Add(deUser); - } - } - } - var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); - var endtime = DateTime.Now.AddHours(24); - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week) - { - endtime = DateTime.Now.AddDays(7); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month) - { - endtime = DateTime.Now.AddMonths(1); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear) - { - endtime = DateTime.Now.AddMonths(6); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year) - { - endtime = DateTime.Now.AddMonths(12); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter) - { - endtime = DateTime.Now.AddMonths(3); - } - var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "岗位排查记录" + date, record.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK010"); - notices.Add(notice); - } - } - } - //取非岗位排查 - var checkList = list.Where(t => t.CheckTypeId != null && !checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList(); - if (checkList != null && checkList.Any()) - { - foreach (var item in checkList) - { - var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); - //触发安全检查通知给对应的审批角色 - if (item.CheckPost == "安环部安全员") - { - userInfo = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); - } - if (item.CheckPost == "班组负责人") - { - //判断排班 - userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); - } - if (userInfo == null) - { - userInfo = departs.FirstOrDefault(t => t.ID == (Guid)item.CheckDepartId)?.Nav_User; - } - if (userInfo != null) - { - var setTime = setList.FirstOrDefault(t => t.MineType == item.Mine && t.CHECK_CYCLE == item.Cycle && t.CHECKTIME.Value.Hour == dt.Hour); - if (item.CheckPost != "班组负责人" && setTime == null) + /// + /// 触发安全检查通知(最新版) + /// + /// + /// + [HttpPost, Route("SafeCheckNoticeNeww")] + public JsonActionResult SafeCheckNoticeNeww([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + try + { + var dtNow = DateTime.Now; + var year = dtNow.Year; + var month = dtNow.Month; + var day = dtNow.Day; + var week = dtNow.DayOfWeek; + List setList = new List(); + //查配置表,有配才执行 + var timeSets = GetEntities(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); + if (timeSets != null && timeSets.Any()) + { + foreach (var set in timeSets) + { + switch (set.CHECK_CYCLE) + { + case SKPLANCHECKFREQUENCYEnum.Year: + if (set.MONTH == month && set.DATA == day) { - continue; - } - T_SK_SECURITY_INSPECTION_NOTICE safeNotice = new T_SK_SECURITY_INSPECTION_NOTICE(); - safeNotice.ORG_ID = filter.OrgId; - safeNotice.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID; - safeNotice.APPLY_USER_ID = userInfo.ID; - safeNotice.MineType = item.Mine; - safeNotice.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; - safeNotice.CHECK_TYPE_ID = item.CheckTypeId; - safeNotice.PLANCHECKFREQUENCY = item.Cycle; - safeNotice.DEPARTMENT_TYPE = item.DepartType; - safeNotice.STATUS = PFStandardStatus.Draft; - safeNotice.ISAUTO = true; - safeNotices.Add(safeNotice); - if (item.details != null && item.details.Any()) - { - foreach (var item2 in item.details) - { - var i = 1; - //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID); - //if (repeat == null) - { - T_SK_SECURITY_INSPECTION_NOTICE_DETAIL detail = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL(); - detail.ORG_ID = filter.OrgId; - detail.SECURITY_INSPECTION_NOTICE_ID = safeNotice.ID; - detail.RISK_AREA_ID = item2.RISK_AREA_ID; - detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; - detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME; - detail.CHECKPROOF = item2.CHECKPROOF; - detail.CHECKSTANDARD = item2.CHECKSTANDARD; - detail.NUM = i; - safeDetialNotices.Add(detail); - } - } - } - var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); - var endtime = DateTime.Now.AddHours(24); - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week) - { - endtime = DateTime.Now.AddDays(7); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month) - { - endtime = DateTime.Now.AddMonths(1); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear) - { - endtime = DateTime.Now.AddMonths(6); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year) - { - endtime = DateTime.Now.AddMonths(12); - } - if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter) - { - endtime = DateTime.Now.AddMonths(3); - } - var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "安全检查通知" + date, safeNotice.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK006"); - notices.Add(notice); - } - } - } - } - UnifiedCommit(() => - { - if (notices != null && notices.Any()) - BantchSaveEntityNoCommit(notices); - if (safeNotices != null && safeNotices.Any()) - BantchSaveEntityNoCommit(safeNotices); - if (safeDetialNotices != null && safeDetialNotices.Any()) - BantchSaveEntityNoCommit(safeDetialNotices); - if (records != null && records.Any()) - BantchSaveEntityNoCommit(records); - if (recordDetails != null && recordDetails.Any()) - BantchSaveEntityNoCommit(recordDetails); - if (recordDetailUsers != null && recordDetailUsers.Any()) - BantchSaveEntityNoCommit(recordDetailUsers); - }); - } - catch (Exception ex) - { - if (!string.IsNullOrEmpty(ex.StackTrace)) - throw new Exception("错误日志:[StackTrace]" + ex.StackTrace); - else - throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message); - } - return true; - }); + setList.Add(set); + } + break; + case SKPLANCHECKFREQUENCYEnum.HalfYear: + if ((set.MONTH == month && set.DATA == day) || ((set.MONTH + 6) == month && (set.DATA + 183) == day)) + { + setList.Add(set); + } + break; + case SKPLANCHECKFREQUENCYEnum.Date: + setList.Add(set); + break; + //case SKPLANCHECKFREQUENCYEnum.Class: + // setList.Add(set); + break; + case SKPLANCHECKFREQUENCYEnum.Week: + if (set.WEEKDATA != null && (int)set.WEEKDATA.Value == (int)week) + { + setList.Add(set); + } + break; + case SKPLANCHECKFREQUENCYEnum.Month: + if (set.DATA == day) + { + setList.Add(set); + } + break; + case SKPLANCHECKFREQUENCYEnum.Quarter: + if (set.MONTH == 1) + { + if ((month == 1 || month == 4 || month == 7 || month == 10) && set.DATA == day) + { + setList.Add(set); + } + } + if (set.MONTH == 2) + { + if ((month == 2 || month == 5 || month == 8 || month == 11) && set.DATA == day) + { + setList.Add(set); + } + } + if (set.MONTH == 3) + { + if ((month == 3 || month == 6 || month == 9 || month == 12) && set.DATA == day) + { + setList.Add(set); + } + } + break; + default: + break; + } + } + } + List notices = new List(); + List safeNotices = new List(); + List safeDetialNotices = new List(); + List records = new List(); + List recordDetails = new List(); + List recordDetailUsers = new List(); + List list = new List(); + List detailContents = new List(); + if (setList != null && setList.Any()) + { + var checkTypes = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)); + var checkTypeIds = checkTypes.Where(t => t.NAME == "岗位排查").Select(m => m.ID).ToList(); + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_User"); + var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.DEPARTMENT_ID != null && !t.CODE.Contains("admin") && t.Nav_Person != null, new BaseFilter(filter.OrgId), "Nav_Person", "Nav_ApproveRole"); + var checkCycles = setList.Select(t => t.CHECK_CYCLE).Distinct().ToList(); + var librarys = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area").ToList(); + var libraryDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList(); + var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Contents").ToList(); + var contentDeparts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList(); + var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); + if (librarys != null && librarys.Any()) + { + foreach (var item in librarys) + { + var libraryPost = posts.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); + var details = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); + var detailIds = details.Select(t => t.ID).ToList(); + var contentTemps = contents.Where(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID)).ToList(); + var contentTempIds = contentTemps.Select(t => t.ID).ToList(); + var contentDepartTemps = contentDeparts.Where(t => contentTempIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).ToList(); + if (contentDepartTemps != null && contentDepartTemps.Any()) + { + foreach (var depart in contentDepartTemps) + { + var first = libraryPost.FirstOrDefault(t => t.DEPARTMENT_ID == depart.DEPARTMENT_ID)?.Nav_PostDetails?.Select(m => m.Nav_Post).OrderBy(n => n?.NAME).ToList(); + var contentFirst = contentTemps.FirstOrDefault(t => t.ID == depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID); + if (first != null && first.Any()) + { + foreach (var post in first) + { + //没角色的才取岗位 + var userRole = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID != null && t.Nav_Person.POST_ID == post?.ID); + if (userRole == null || (userRole != null && userRole.APPROVE_ROLE_ID == null)) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.POST_NAME = post?.NAME; + de.MineType = item.MineType; + de.AREA_NAME = item.Nav_Area?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; + de.ENTERPRISE_LIBRARY_ID = item.ID; + de.TYPE_NAME = depart.Nav_CheckType?.NAME; + de.DEPART_NAME = depart.Nav_Department?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = depart.CHECK_CYCLE; + de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; + de.DEPARTMENT_ID = depart.DEPARTMENT_ID; + de.CHECK_TYPE = depart.CHECK_TYPE; + de.POST_ID = post?.ID; + detailContents.Add(de); + } + } + } + else + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.POST_NAME = "未配置辨识岗位"; + de.MineType = item.MineType; + de.AREA_NAME = item.Nav_Area?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; + de.ENTERPRISE_LIBRARY_ID = item.ID; + de.TYPE_NAME = depart.Nav_CheckType?.NAME; + de.DEPART_NAME = depart.Nav_Department?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = depart.CHECK_CYCLE; + de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; + de.DEPARTMENT_ID = depart.DEPARTMENT_ID; + de.CHECK_TYPE = depart.CHECK_TYPE; + detailContents.Add(de); + } + } + } + } + } + if (detailContents != null && detailContents.Any()) + { + foreach (var item in contents) + { + var detailLib = libraryDetails.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_ID); + var lib = librarys.FirstOrDefault(t => t.ID == detailLib?.ENTERPRISE_LIBRARY_ID); + item.RISK_NAME = lib?.RISK_NAME; + item.AREA_ID = lib?.AREA_ID; + item.Nav_Area = lib?.Nav_Area; + } + foreach (var item in detailContents) + { + if (checkTypeIds != null && checkTypeIds.Any() && item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID)) + { + + } + else + { + if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级) + { + item.POST_NAME = "班组负责人"; + } + else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级) + { + item.POST_NAME = "车间安全员"; + } + else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级) + { + item.POST_NAME = "部门安全员"; + } + else + { + item.POST_NAME = "安环部安全员"; + } + var user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.POST_NAME); + if (user != null) + { + item.POST_ID = user.Nav_Person?.POST_ID; + } + } + } + var group = detailContents.Where(m => checkCycles.Contains(m.CHECK_CYCLE)).GroupBy(t => new { t.MineType, t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME, t.POST_ID }).ToList(); + foreach (var item in group) + { + CheckListNew listNew = new CheckListNew(); + listNew.Mine = item.Key.MineType; + listNew.Cycle = item.Key.CHECK_CYCLE; + listNew.DepartType = item.Key.CHECK_TYPE; + listNew.MineType = item.Key.MineType.GetDescription(); + listNew.CheckType = item.Key.TYPE_NAME; + listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); + listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); + listNew.Num = (int)item.Key.CHECK_TYPE; + listNew.CheckDepart = item.Key.DEPART_NAME; + listNew.CheckPostId = item.Key.POST_ID; + listNew.CheckPost = item.Key.POST_NAME; + listNew.CheckDepartId = item.Key.DEPARTMENT_ID; + listNew.CheckTypeId = item.Key.CHECK_TYPE_ID; + var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.MineType == item.Key.MineType && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); + var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList(); + if (temps.Any()) + { + List listDetail = new List(); + foreach (var tem in temps) + { + CheckListDetail checkListDetail = new CheckListDetail(); + checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID; + checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT; + checkListDetail.RISK_NAME = tem.RISK_NAME; + checkListDetail.RISK_AREA_ID = tem.AREA_ID; + checkListDetail.RISK_AREA_NAME = tem.Nav_Area?.NAME; + checkListDetail.CHECKPROOF = tem.CHECK_BASIC; + checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD; + listDetail.Add(checkListDetail); + } + listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); + } + list.Add(listNew); + } + list = list.Where(m => m.CheckDepartId != null).OrderBy(y => y.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + } + DateTime dt = DateTime.Now; + if (filter.Parameter1 != null) + { + dt = DateTime.Parse(filter.Parameter1); + } + DateTime minTime = dt.AddMinutes(0); + DateTime maxTime = dt.AddMinutes(60); + var shiftClassList = this.GetEntities(s => s.START_TIME > minTime && s.START_TIME <= maxTime && s.START_TIME != s.END_TIME && s.Nav_Team.ENABLE_STATUS == 0 && s.TEAM_ID != null, new BaseFilter(filter.OrgId), "Nav_DepartmentSchedulingDetail.Nav_Person").ToList(); + var teamIds = shiftClassList.Select(t => t.TEAM_ID).Distinct().ToList(); + var teamInfos = this.GetEntities(t => teamIds.Contains(t.ID), new BaseFilter(filter.OrgId)); + var teamDepartIds = teamInfos.Select(m => m.DEPARTMENT_ID).Distinct().ToList(); + var personIds = new List(); + if (shiftClassList != null && shiftClassList.Any()) + { + foreach (var item in shiftClassList) + { + if (item.Nav_DepartmentSchedulingDetail != null && item.Nav_DepartmentSchedulingDetail.Any()) + { + var ids = item.Nav_DepartmentSchedulingDetail.Select(t => t.PERSON_ID).Distinct().ToList(); + personIds.AddRange(ids); + } + } + } + var baseFilter = new BaseFilter(filter.GetOrgId()); + baseFilter.IgnoreDataRule = true; + baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" }; //指定字段,包括导航属性 + Expression> expression = i => i.IS_DELETED == false && i.CREATE_TIME > minTime && i.CREATE_TIME <= maxTime; + List noticeExsiss = this.GetOrderEntities(expression, baseFilter).ToList(); + baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" }; + Expression> expressionR = i => i.IS_DELETED == false && i.CREATE_TIME > minTime && i.CREATE_TIME <= maxTime; + List recordExsiss = this.GetOrderEntities(expressionR, baseFilter).ToList(); + //取岗位排查表 + var postCheckList = list.Where(t => t.CheckTypeId != null && checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList(); + if (postCheckList != null && postCheckList.Any()) + { + foreach (var item in postCheckList) + { + //触发安全检查记录给对应的岗位工(有排班才触发) + var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.PERSON_ID != null && personIds.Contains((Guid)t.PERSON_ID) && t.Nav_Person != null && t.Nav_Person.POST_ID == item.CheckPostId); + if (userInfo != null) + { + //判断是否重复触发 + var exist = recordExsiss.FirstOrDefault(t => t.APPLY_USER_ID == userInfo.ID && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle); + if (exist == null) + { + T_SK_SECURITY_INSPECTION_RECORD record = new T_SK_SECURITY_INSPECTION_RECORD(); + record.ORG_ID = filter.OrgId; + record.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID; + record.APPLY_USER_ID = userInfo.ID; + record.MineType = item.Mine; + record.CHECK_TYPE_ID = item.CheckTypeId; + record.PLANCHECKFREQUENCY = item.Cycle; + record.DEPARTMENT_TYPE = item.DepartType; + record.STATUS = PFStandardStatus.Draft; + record.ISAUTO = true; + records.Add(record); + if (item.details != null && item.details.Any()) + { + foreach (var item2 in item.details) + { + var i = 1; + //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID); + //if (repeat == null) + { + T_SK_SECURITY_INSPECTION_RECORD_DETAIL detail = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL(); + detail.ORG_ID = filter.OrgId; + detail.SECURITY_INSPECTION_RECORD_ID = record.ID; + detail.RISK_AREA_ID = item2.RISK_AREA_ID; + detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; + detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME; + detail.CHECKPROOF = item2.CHECKPROOF; + detail.CHECKSTANDARD = item2.CHECKSTANDARD; + detail.NUM = i; + recordDetails.Add(detail); + i++; + T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER deUser = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER(); + deUser.ORG_ID = filter.OrgId; + deUser.SECURITY_INSPECTION_RECORD_DETAIL_ID = detail.ID; + deUser.USER_ID = userInfo.ID; + deUser.ISMAINCHECK = true; + recordDetailUsers.Add(deUser); + } + } + } + var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); + var endtime = DateTime.Now.AddHours(24); + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week) + { + endtime = DateTime.Now.AddDays(7); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month) + { + endtime = DateTime.Now.AddMonths(1); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear) + { + endtime = DateTime.Now.AddMonths(6); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year) + { + endtime = DateTime.Now.AddMonths(12); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter) + { + endtime = DateTime.Now.AddMonths(3); + } + var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "岗位排查记录" + date, record.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK010"); + notices.Add(notice); + } + } + } + } + //取非岗位排查 + var checkList = list.Where(t => t.CheckTypeId != null && !checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList(); + if (checkList != null && checkList.Any()) + { + foreach (var item in checkList) + { + var setTime = setList.FirstOrDefault(t => t.MineType == item.Mine && t.CHECK_CYCLE == item.Cycle); + var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); + //触发安全检查通知给对应的审批角色 + if (item.CheckPost == "安环部安全员") + { + userInfo = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); + } + if (item.CheckPost == "班组负责人") + { + //判断排班 + userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.PERSON_ID != null && personIds.Contains((Guid)t.PERSON_ID) && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); + } + if (userInfo == null && item.CheckDepartId != null && item.CheckPost != "班组负责人") + { + userInfo = departs.FirstOrDefault(t => t.ID == (Guid)item.CheckDepartId)?.Nav_User; + } + if (userInfo != null) + { + //判断是否重复触发 + var exist = noticeExsiss.FirstOrDefault(t => t.APPLY_USER_ID == userInfo.ID && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle); + if ((exist == null && item.CheckPost == "班组负责人") || (exist == null && item.CheckPost != "班组负责人" && setTime != null && dtNow.Hour == setTime.CHECKTIME.Value.Hour)) + { + T_SK_SECURITY_INSPECTION_NOTICE safeNotice = new T_SK_SECURITY_INSPECTION_NOTICE(); + safeNotice.ORG_ID = filter.OrgId; + safeNotice.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID; + safeNotice.APPLY_USER_ID = userInfo.ID; + safeNotice.MineType = item.Mine; + safeNotice.CHECK_TYPE_ID = item.CheckTypeId; + safeNotice.PLANCHECKFREQUENCY = item.Cycle; + safeNotice.DEPARTMENT_TYPE = item.DepartType; + safeNotice.STATUS = PFStandardStatus.Draft; + safeNotice.ISAUTO = true; + safeNotices.Add(safeNotice); + if (item.details != null && item.details.Any()) + { + foreach (var item2 in item.details) + { + var i = 1; + //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID); + //if (repeat == null) + { + T_SK_SECURITY_INSPECTION_NOTICE_DETAIL detail = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL(); + detail.ORG_ID = filter.OrgId; + detail.SECURITY_INSPECTION_NOTICE_ID = safeNotice.ID; + detail.RISK_AREA_ID = item2.RISK_AREA_ID; + detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; + detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME; + detail.CHECKPROOF = item2.CHECKPROOF; + detail.CHECKSTANDARD = item2.CHECKSTANDARD; + detail.NUM = i; + safeDetialNotices.Add(detail); + } + } + } + var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); + var endtime = DateTime.Now.AddHours(24); + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week) + { + endtime = DateTime.Now.AddDays(7); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month) + { + endtime = DateTime.Now.AddMonths(1); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear) + { + endtime = DateTime.Now.AddMonths(6); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year) + { + endtime = DateTime.Now.AddMonths(12); + } + if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter) + { + endtime = DateTime.Now.AddMonths(3); + } + var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "安全检查通知" + date, safeNotice.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK006"); + notices.Add(notice); + } + } + } + } + } + UnifiedCommit(() => + { + if (notices != null && notices.Any()) + BantchSaveEntityNoCommit(notices); + if (safeNotices != null && safeNotices.Any()) + BantchSaveEntityNoCommit(safeNotices); + if (safeDetialNotices != null && safeDetialNotices.Any()) + BantchSaveEntityNoCommit(safeDetialNotices); + if (records != null && records.Any()) + BantchSaveEntityNoCommit(records); + if (recordDetails != null && recordDetails.Any()) + BantchSaveEntityNoCommit(recordDetails); + if (recordDetailUsers != null && recordDetailUsers.Any()) + BantchSaveEntityNoCommit(recordDetailUsers); + }); + } + catch (Exception ex) + { + if (!string.IsNullOrEmpty(ex.StackTrace)) + throw new Exception("错误日志:[StackTrace]" + ex.StackTrace); + else + throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message); + } + return true; + }); } } }