diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index 58b75b5..8952199 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -5371,9 +5371,9 @@ namespace APT.PP.WebApi.Controllers.Api { dt = DateTime.Parse(filter.Parameter1); } - DateTime minTime = dt.AddMinutes(-10); + 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 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(); @@ -5408,18 +5408,19 @@ namespace APT.PP.WebApi.Controllers.Api 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(); - if (userInfo != null && userInfo.Any()) + if (userInfo != null && userInfo.Any() && sche != null) { 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) - { - 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); - } + //if (exist == null && sche != null && sche.START_TIME.AddHours(-1).Date != dt.Date) + //{ + // 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); + //} if (exist == null) { 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 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 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); - 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); + 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 > 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))