diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index 8d7b1ac..d7fdc99 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -5153,11 +5153,15 @@ namespace APT.PP.WebApi.Controllers.Api { try { - var dtNow = DateTime.Now; - var year = dtNow.Year; - var month = dtNow.Month; - var day = dtNow.Day; - var week = dtNow.DayOfWeek; + DateTime dt = DateTime.Now; + if (filter.Parameter1 != null) + { + dt = DateTime.Parse(filter.Parameter1); + } + var year = dt.Year; + var month = dt.Month; + var day = dt.Day; + var week = dt.DayOfWeek; List setList = new List(); //查配置表,有配才执行 var timeSets = GetEntities(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); @@ -5235,92 +5239,105 @@ namespace APT.PP.WebApi.Controllers.Api 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 productions = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).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()) + //企业库 + var librarys = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_Area", "Nav_ProductionUnit").ToList(); + var libIds = librarys.Select(t => t.ID).ToList(); + //管控层级 + var libraryDeparts = this.GetEntities(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList(); + //管控措施 + var libraryDetails = this.GetEntities(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList(); + var libDetailIds = libraryDetails.Select(t => t.ID).ToList(); + //检查内容 + var contents = this.GetEntities(t => !t.IS_DELETED && libDetailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents").ToList(); + var libContentIds = contents.Select(t => t.ID).ToList(); + //检查层级 + var contentDeparts = this.GetEntities(t => !t.IS_DELETED && libContentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList(); + //取检查人 + var contentDepartIds = contentDeparts.Select(t => t.ID).ToList(); + var contentDepartUsers = this.GetEntities(t => !t.IS_DELETED && contentDepartIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(filter.OrgId), "Nav_User").ToList(); + //隐患描述 + //var contentHiddens = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList(); + //辨识岗位 + var posts = this.GetEntities(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); + + //检查清单(生产单元+检查层级+检查类型+检查周期+检查部门:取辨识部门+检查对象:取辨识岗位) + if (contentDeparts != null && contentDeparts.Any()) { - foreach (var item in librarys) + foreach (var item in contentDeparts) { - 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()) + var conFirst = contents.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID); + var detailFirst = libraryDetails.FirstOrDefault(t => t.ID == conFirst?.ENTERPRISE_LIBRARY_DETAIL_ID); + var libFirst = librarys.FirstOrDefault(t => t.ID == detailFirst?.ENTERPRISE_LIBRARY_ID); + if (item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID)) { - foreach (var depart in contentDepartTemps) + var postFirst = posts.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == libFirst?.ID && t.DEPARTMENT_ID == item.DEPARTMENT_ID); + if (postFirst != null && postFirst.Nav_PostDetails != null && postFirst.Nav_PostDetails.Any()) { - 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 item2 in postFirst.Nav_PostDetails) { - foreach (var post in first) + //去除有审批角色的人 + var userCharge = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == item2.POST_ID && t.APPROVE_ROLE_ID != null && t.DEPARTMENT_ID != null && t.DEPARTMENT_ID == item.DEPARTMENT_ID); + if (userCharge == null) { - //没角色的才取岗位 - 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.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; - 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); - } + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.POST_NAME = item2.Nav_Post?.NAME; + de.MineType = libFirst != null ? libFirst.MineType : SKProductionUnit.All; + de.PRODUCTION_UNIT_ID = libFirst != null ? libFirst.PRODUCTION_UNIT_ID :null; + de.AREA_NAME = libFirst?.Nav_Area?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_ID = detailFirst?.ID; + de.ENTERPRISE_LIBRARY_ID = libFirst?.ID; + de.TYPE_NAME = item.Nav_CheckType?.NAME; + de.DEPART_NAME = item.Nav_Department?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = item.CHECK_CYCLE; + de.CHECK_TYPE_ID = item.CHECK_TYPE_ID; + de.DEPARTMENT_ID = item.DEPARTMENT_ID; + de.CHECK_TYPE = item.CHECK_TYPE; + de.POST_ID = item2?.POST_ID; + detailContents.Add(de); } } - else + } + } + else + { + var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员")); + if (userInfo == null) + { + var depart = departs.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID); + if (depart != null && depart.USER_ID != null) { - 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.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); + userInfo = users.FirstOrDefault(t => t.ID == depart.USER_ID); } } + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.POST_NAME = userInfo?.Nav_ApproveRole?.NAME; + de.POST_ID = userInfo?.Nav_Person?.POST_ID; + de.MineType = libFirst != null ? libFirst.MineType : SKProductionUnit.All; + de.PRODUCTION_UNIT_ID = libFirst != null ? libFirst.PRODUCTION_UNIT_ID : null; + de.AREA_NAME = libFirst?.Nav_Area?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_ID = detailFirst?.ID; + de.ENTERPRISE_LIBRARY_ID = libFirst?.ID; + de.TYPE_NAME = item.Nav_CheckType?.NAME; + de.DEPART_NAME = item.Nav_Department?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = item.CHECK_CYCLE; + de.CHECK_TYPE_ID = item.CHECK_TYPE_ID; + de.DEPARTMENT_ID = item.DEPARTMENT_ID; + de.CHECK_TYPE = item.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)) @@ -5392,11 +5409,7 @@ namespace APT.PP.WebApi.Controllers.Api } list = list.Where(m => m.CheckDepartId != null).OrderBy(y => y.PRODUCTION_UNIT_ID).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(); @@ -5561,7 +5574,7 @@ namespace APT.PP.WebApi.Controllers.Api exist = noticeExsiss.FirstOrDefault(t => t.APPLY_USER_ID == userInfo.ID && t.DEPARTMENT_TYPE == item.DepartType && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle && t.CREATE_TIME > startTime && (t.CREATE_TIME.Value.Date == dt.Date || t.CREATE_TIME.Value.Date == dt.AddDays(-1).Date)); } } - if ((exist == null && item.CheckPost == "班组负责人") || (exist == null && item.CheckPost != "班组负责人" && setTime != null && dtNow.Hour == setTime.CHECKTIME.Value.Hour)) + if ((exist == null && item.CheckPost == "班组负责人") || (exist == null && item.CheckPost != "班组负责人" && setTime != null && dt.Hour == setTime.CHECKTIME.Value.Hour)) { T_SK_SECURITY_INSPECTION_NOTICE safeNotice = new T_SK_SECURITY_INSPECTION_NOTICE(); safeNotice.ORG_ID = filter.OrgId; diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs index 78d215b..b642cc6 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs @@ -2589,7 +2589,7 @@ namespace APT.SK.WebApi.Controllers.Api foreach (var item2 in postFirst.Nav_PostDetails) { //去除有审批角色的人 - var userCharge = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == item2.POST_ID && t.APPROVE_ROLE_ID != null); + var userCharge = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == item2.POST_ID && t.APPROVE_ROLE_ID != null && t.DEPARTMENT_ID != null && t.DEPARTMENT_ID == item.DEPARTMENT_ID); if (userCharge == null) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();