This commit is contained in:
何美荣 2025-09-30 11:51:12 +08:00
parent 1a2c37eb04
commit df24bf4e9b

View File

@ -4930,9 +4930,9 @@ namespace APT.PP.WebApi.Controllers.Api
var checkTypes = this.GetEntities<T_SK_CHECK_TYPE>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)); 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 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 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.CODE.Contains("admin") && t.Nav_Person != null, new BaseFilter(filter.OrgId), "Nav_Person", "Nav_ApproveRole"); 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 checkCycles = setList.Select(t => t.CHECK_CYCLE).Distinct().ToList();
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area", "Nav_ProductionUnit").ToList(); var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area").ToList();
var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).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 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 contentDeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList();
@ -4958,13 +4958,12 @@ namespace APT.PP.WebApi.Controllers.Api
foreach (var post in first) foreach (var post in first)
{ {
//没角色的才取岗位 //没角色的才取岗位
var userRole = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == post?.ID).APPROVE_ROLE_ID; 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) 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(); T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
de.POST_NAME = post?.NAME; de.POST_NAME = post?.NAME;
de.MineType = item.MineType; de.MineType = item.MineType;
de.MINE_NAME = item.Nav_ProductionUnit?.NAME;
de.AREA_NAME = item.Nav_Area?.NAME; de.AREA_NAME = item.Nav_Area?.NAME;
de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID;
de.ENTERPRISE_LIBRARY_ID = item.ID; de.ENTERPRISE_LIBRARY_ID = item.ID;
@ -4985,8 +4984,6 @@ namespace APT.PP.WebApi.Controllers.Api
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
de.POST_NAME = "未配置辨识岗位"; de.POST_NAME = "未配置辨识岗位";
de.MineType = item.MineType; 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.AREA_NAME = item.Nav_Area?.NAME;
de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID;
de.ENTERPRISE_LIBRARY_ID = item.ID; de.ENTERPRISE_LIBRARY_ID = item.ID;
@ -5044,14 +5041,14 @@ namespace APT.PP.WebApi.Controllers.Api
} }
} }
} }
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(); 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) foreach (var item in group)
{ {
CheckListNew listNew = new CheckListNew(); CheckListNew listNew = new CheckListNew();
listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID; listNew.Mine = item.Key.MineType;
listNew.Cycle = item.Key.CHECK_CYCLE; listNew.Cycle = item.Key.CHECK_CYCLE;
listNew.DepartType = item.Key.CHECK_TYPE; listNew.DepartType = item.Key.CHECK_TYPE;
listNew.MineType = item.Key.MINE_NAME; listNew.MineType = item.Key.MineType.GetDescription();
listNew.CheckType = item.Key.TYPE_NAME; listNew.CheckType = item.Key.TYPE_NAME;
listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription();
listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription();
@ -5082,7 +5079,7 @@ namespace APT.PP.WebApi.Controllers.Api
} }
list.Add(listNew); list.Add(listNew);
} }
list = list.OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); list = list.Where(m => m.CheckDepartId != null).OrderBy(y => y.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList();
} }
DateTime dt = DateTime.Now; DateTime dt = DateTime.Now;
if (filter.Parameter1 != null) if (filter.Parameter1 != null)
@ -5110,8 +5107,11 @@ namespace APT.PP.WebApi.Controllers.Api
var baseFilter = new BaseFilter(filter.GetOrgId()); var baseFilter = new BaseFilter(filter.GetOrgId());
baseFilter.IgnoreDataRule = true; baseFilter.IgnoreDataRule = true;
baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" }; //指定字段,包括导航属性 baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" }; //指定字段,包括导航属性
Expression<Func<T_SK_SECURITY_INSPECTION_NOTICE, bool>> expression = i => i.IS_DELETED == false && i.CREATE_TIME.Value.Date == dt.Date; Expression<Func<T_SK_SECURITY_INSPECTION_NOTICE, bool>> expression = i => i.IS_DELETED == false && i.CREATE_TIME > minTime && i.CREATE_TIME <= maxTime;
List<T_SK_SECURITY_INSPECTION_NOTICE> noticeExsiss = this.GetOrderEntities(expression, baseFilter).ToList(); List<T_SK_SECURITY_INSPECTION_NOTICE> noticeExsiss = this.GetOrderEntities(expression, baseFilter).ToList();
baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" };
Expression<Func<T_SK_SECURITY_INSPECTION_RECORD, bool>> expressionR = i => i.IS_DELETED == false && i.CREATE_TIME > minTime && i.CREATE_TIME <= maxTime;
List<T_SK_SECURITY_INSPECTION_RECORD> recordExsiss = this.GetOrderEntities(expressionR, baseFilter).ToList();
//取岗位排查表 //取岗位排查表
var postCheckList = list.Where(t => t.CheckTypeId != null && checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList(); var postCheckList = list.Where(t => t.CheckTypeId != null && checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList();
if (postCheckList != null && postCheckList.Any()) if (postCheckList != null && postCheckList.Any())
@ -5119,15 +5119,18 @@ namespace APT.PP.WebApi.Controllers.Api
foreach (var item in postCheckList) 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); 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) 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(); T_SK_SECURITY_INSPECTION_RECORD record = new T_SK_SECURITY_INSPECTION_RECORD();
record.ORG_ID = filter.OrgId; record.ORG_ID = filter.OrgId;
record.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID; record.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
record.APPLY_USER_ID = userInfo.ID; record.APPLY_USER_ID = userInfo.ID;
record.MineType = item.Mine; record.MineType = item.Mine;
record.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
record.CHECK_TYPE_ID = item.CheckTypeId; record.CHECK_TYPE_ID = item.CheckTypeId;
record.PLANCHECKFREQUENCY = item.Cycle; record.PLANCHECKFREQUENCY = item.Cycle;
record.DEPARTMENT_TYPE = item.DepartType; record.DEPARTMENT_TYPE = item.DepartType;
@ -5189,12 +5192,14 @@ namespace APT.PP.WebApi.Controllers.Api
} }
} }
} }
}
//取非岗位排查 //取非岗位排查
var checkList = list.Where(t => t.CheckTypeId != null && !checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList(); var checkList = list.Where(t => t.CheckTypeId != null && !checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList();
if (checkList != null && checkList.Any()) if (checkList != null && checkList.Any())
{ {
foreach (var item in checkList) 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); var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost);
//触发安全检查通知给对应的审批角色 //触发安全检查通知给对应的审批角色
if (item.CheckPost == "安环部安全员") if (item.CheckPost == "安环部安全员")
@ -5204,25 +5209,23 @@ namespace APT.PP.WebApi.Controllers.Api
if (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); 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) if (userInfo == null && item.CheckDepartId != null && item.CheckPost != "班组负责人")
{ {
userInfo = departs.FirstOrDefault(t => t.ID == (Guid)item.CheckDepartId)?.Nav_User; userInfo = departs.FirstOrDefault(t => t.ID == (Guid)item.CheckDepartId)?.Nav_User;
} }
if (userInfo != null) 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) 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))
{ {
continue;
}
T_SK_SECURITY_INSPECTION_NOTICE safeNotice = new T_SK_SECURITY_INSPECTION_NOTICE(); T_SK_SECURITY_INSPECTION_NOTICE safeNotice = new T_SK_SECURITY_INSPECTION_NOTICE();
safeNotice.ORG_ID = filter.OrgId; safeNotice.ORG_ID = filter.OrgId;
safeNotice.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID; safeNotice.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
safeNotice.APPLY_USER_ID = userInfo.ID; safeNotice.APPLY_USER_ID = userInfo.ID;
safeNotice.MineType = item.Mine; safeNotice.MineType = item.Mine;
safeNotice.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
safeNotice.CHECK_TYPE_ID = item.CheckTypeId; safeNotice.CHECK_TYPE_ID = item.CheckTypeId;
safeNotice.PLANCHECKFREQUENCY = item.Cycle; safeNotice.PLANCHECKFREQUENCY = item.Cycle;
safeNotice.DEPARTMENT_TYPE = item.DepartType; safeNotice.DEPARTMENT_TYPE = item.DepartType;
@ -5278,6 +5281,7 @@ namespace APT.PP.WebApi.Controllers.Api
} }
} }
} }
}
UnifiedCommit(() => UnifiedCommit(() =>
{ {
if (notices != null && notices.Any()) if (notices != null && notices.Any())