This commit is contained in:
wyw 2026-04-15 10:31:54 +08:00
commit 1c673e94ba
2 changed files with 89 additions and 76 deletions

View File

@ -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<T_SK_PLAN_SET> setList = new List<T_SK_PLAN_SET>();
//查配置表,有配才执行
var timeSets = GetEntities<T_SK_PLAN_SET>(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList();
@ -5235,92 +5239,105 @@ namespace APT.PP.WebApi.Controllers.Api
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART> detailContents = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>();
if (setList != null && setList.Any())
{
//岗位排查
var checkTypes = this.GetEntities<T_SK_CHECK_TYPE>(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_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_User");
var users = this.GetEntities<T_FM_USER>(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_FM_USER_PRODUCTION_UNIT_SET>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList();
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area", "Nav_ProductionUnit").ToList();
var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList();
var contents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Contents").ToList();
var contentDeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList();
var posts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList();
if (librarys != null && librarys.Any())
//企业库
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(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_SK_ENTERPRISE_LIBRARY_DEPART>(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList();
//管控措施
var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList();
//辨识岗位
var posts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(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 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))
//去除有审批角色的人
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();
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;
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
{
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)
{
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 = "未配置辨识岗位";
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_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<T_FM_DEPARTMENT_SCHEDULING>(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;

View File

@ -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();