检查触发

This commit is contained in:
何美荣 2026-03-13 14:14:44 +08:00
parent 21d4e5c944
commit 06a25b01a1

View File

@ -5371,9 +5371,9 @@ namespace APT.PP.WebApi.Controllers.Api
{ {
dt = DateTime.Parse(filter.Parameter1); dt = DateTime.Parse(filter.Parameter1);
} }
DateTime minTime = dt.AddMinutes(-10); DateTime minTime = dt.AddMinutes(0);
DateTime maxTime = dt.AddMinutes(60); 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(); 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();
var teamIds = shiftClassList.Select(t => t.TEAM_ID).Distinct().ToList(); var teamIds = shiftClassList.Select(t => t.TEAM_ID).Distinct().ToList();
var teamInfos = this.GetEntities<T_FM_TEAM>(t => teamIds.Contains(t.ID), new BaseFilter(filter.OrgId)); var teamInfos = this.GetEntities<T_FM_TEAM>(t => teamIds.Contains(t.ID), new BaseFilter(filter.OrgId));
var teamDepartIds = teamInfos.Select(m => m.DEPARTMENT_ID).Distinct().ToList(); var teamDepartIds = teamInfos.Select(m => m.DEPARTMENT_ID).Distinct().ToList();
@ -5408,18 +5408,19 @@ namespace APT.PP.WebApi.Controllers.Api
var sche = shiftClassList.FirstOrDefault(t => t.TEAM_ID == teamFirst?.ID); var sche = shiftClassList.FirstOrDefault(t => t.TEAM_ID == teamFirst?.ID);
//触发安全检查记录给对应的岗位工(有排班才触发) //触发安全检查记录给对应的岗位工(有排班才触发)
var userInfo = users.Where(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).ToList(); var userInfo = users.Where(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).ToList();
if (userInfo != null && userInfo.Any()) if (userInfo != null && userInfo.Any() && sche != null)
{ {
foreach (var user in userInfo) foreach (var user in userInfo)
{ {
//判断是否重复触发 //判断是否重复触发
var exist = recordExsiss.FirstOrDefault(t => t.APPLY_USER_ID == user.ID && t.DEPARTMENT_TYPE == item.DepartType && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle && t.CREATE_TIME.Value.Date == dt.Date && t.ISAUTO == true); var startTime = sche.START_TIME.AddHours(-1.5);
var exist = recordExsiss.FirstOrDefault(t => t.APPLY_USER_ID == user.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 && sche != null && sche.START_TIME.AddHours(-1).Date != dt.Date) //if (exist == null && sche != null && sche.START_TIME.AddHours(-1).Date != dt.Date)
{ //{
var tempDate = sche.START_TIME.AddHours(-2); // var tempDate = sche.START_TIME.AddHours(-2);
exist = recordExsiss.FirstOrDefault(t => t.APPLY_USER_ID == user.ID && t.DEPARTMENT_TYPE == item.DepartType && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle && t.CREATE_TIME > tempDate && t.ISAUTO == true); // exist = recordExsiss.FirstOrDefault(t => t.APPLY_USER_ID == user.ID && t.DEPARTMENT_TYPE == item.DepartType && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle && t.CREATE_TIME > tempDate && t.ISAUTO == true);
} //}
if (exist == null) 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();
@ -5516,17 +5517,17 @@ namespace APT.PP.WebApi.Controllers.Api
{ {
var setTime = setList.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == item.PRODUCTION_UNIT_ID && t.CHECK_CYCLE == item.Cycle); var setTime = setList.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == item.PRODUCTION_UNIT_ID && t.CHECK_CYCLE == item.Cycle);
//判断是否重复触发 //判断是否重复触发
var 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.Value.Date == dt.Date && t.ISAUTO == true); var 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.Value.Date == dt.Date);
//如果是大夜班,跨天的情况下再判断一次,如果存在,就表示今天已触发,只是创建日期是昨天 //如果是大夜班,跨天的情况下再判断一次,如果存在,就表示今天已触发,只是创建日期是昨天
if (exist == null && item.CheckPost == "班组负责人") if (item.CheckPost == "班组负责人")
{ {
//取排班 //取排班
var teamFirst = teamInfos.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId); var teamFirst = teamInfos.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId);
var sche = shiftClassList.FirstOrDefault(t => t.TEAM_ID == teamFirst?.ID); var sche = shiftClassList.FirstOrDefault(t => t.TEAM_ID == teamFirst?.ID);
if (sche != null && sche.START_TIME.AddHours(-1).Date != dt.Date) if (sche != null)
{ {
var tempDate = sche.START_TIME.AddHours(-2); var startTime = sche.START_TIME.AddHours(-1.5);
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 > tempDate && t.ISAUTO == true); 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 && dtNow.Hour == setTime.CHECKTIME.Value.Hour))