领导带班下井记录跑批问题修复

This commit is contained in:
何美荣 2026-01-03 01:31:23 +08:00
parent 950a42c770
commit 6e0166b6bb

View File

@ -2003,8 +2003,8 @@ namespace APT.PP.WebApi.Controllers.Api.PP
var company = this.GetEntity<T_FM_DEPARTMENT>(t => t.PARENT_ID == null && t.ENABLE_STATUS == 0); var company = this.GetEntity<T_FM_DEPARTMENT>(t => t.PARENT_ID == null && t.ENABLE_STATUS == 0);
var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail"); var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId),"Nav_Department"); var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId),"Nav_Department");
var jobs = this.GetEntities<T_FO_SCHEDULING>(t => t.DATE.Date == dt.Date, new BaseFilter(filter.OrgId), "Nav_User"); var jobs = this.GetEntities<T_FO_SCHEDULING>(t => t.DATE.Date == dt.Date || t.DATE.Date == dt.AddDays(1).Date, new BaseFilter(filter.OrgId), "Nav_User");
var records = this.GetEntities<T_FO_LEADER_WELL_RECORD>(t => t.JOB_START_DATE.Value.Date == dt.Date, new BaseFilter(filter.OrgId)); var records = this.GetEntities<T_FO_LEADER_WELL_RECORD>(t => t.JOB_START_DATE.Value.Date == dt.Date || t.JOB_START_DATE.Value.Date == dt.AddDays(1).Date, new BaseFilter(filter.OrgId));
if (jobs != null && jobs.Any()) if (jobs != null && jobs.Any())
{ {
foreach (var item in jobs) foreach (var item in jobs)
@ -2012,9 +2012,10 @@ namespace APT.PP.WebApi.Controllers.Api.PP
var classFisrt = fmClass.FirstOrDefault(t => t.ID == item.CLASS_ID); var classFisrt = fmClass.FirstOrDefault(t => t.ID == item.CLASS_ID);
if (classFisrt != null && classFisrt.Nav_ClassDetail != null && classFisrt.Nav_ClassDetail.Any()) if (classFisrt != null && classFisrt.Nav_ClassDetail != null && classFisrt.Nav_ClassDetail.Any())
{ {
var firstRecord = records.FirstOrDefault(t => t.CLASS_ID == item.CLASS_ID); var firstRecord = records.FirstOrDefault(t =>t.JOB_START_DATE.Value.Date == dt.Date && t.CLASS_ID == item.CLASS_ID && t.APPLY_USER_ID == item.USER_ID);
var secondRecord = records.FirstOrDefault(t => t.JOB_START_DATE.Value.Date == dt.AddDays(1).Date && t.CLASS_ID == item.CLASS_ID && t.APPLY_USER_ID == item.USER_ID);
var firstTime = classFisrt.Nav_ClassDetail.OrderBy(t => t.NUM).FirstOrDefault(); var firstTime = classFisrt.Nav_ClassDetail.OrderBy(t => t.NUM).FirstOrDefault();
if (firstTime.STARTTIME.Hour == dt.AddHours(1).Hour && firstRecord == null) if (firstTime.STARTTIME.Hour != 0 && firstTime.STARTTIME.Hour == dt.AddHours(1).Hour && firstRecord == null && dt.Date == item.DATE)
{ {
var sendUser = users.FirstOrDefault(t => t.ID == item.USER_ID); var sendUser = users.FirstOrDefault(t => t.ID == item.USER_ID);
if (sendUser != null) if (sendUser != null)
@ -2023,8 +2024,8 @@ namespace APT.PP.WebApi.Controllers.Api.PP
record.ORG_ID = item.ORG_ID; record.ORG_ID = item.ORG_ID;
record.APPLY_USER_ID = sendUser.ID; record.APPLY_USER_ID = sendUser.ID;
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID; record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
record.JOB_START_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() +" "+ firstTime.STARTTIME.ToShortTimeString()); record.JOB_START_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() + " " + firstTime.STARTTIME.ToShortTimeString());
record.JOB_END_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() +" "+ firstTime.ENDTIME.ToShortTimeString()); record.JOB_END_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() + " " + firstTime.ENDTIME.ToShortTimeString());
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID; record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
record.COMPANY_ID = company?.ID; record.COMPANY_ID = company?.ID;
record.CLASS_ID = item.CLASS_ID; record.CLASS_ID = item.CLASS_ID;
@ -2035,7 +2036,33 @@ namespace APT.PP.WebApi.Controllers.Api.PP
ledUser.LEADER_WELL_RECORD_ID = record.ID; ledUser.LEADER_WELL_RECORD_ID = record.ID;
ledUser.USER_ID = sendUser.ID; ledUser.USER_ID = sendUser.ID;
wellRecordUsers.Add(ledUser); wellRecordUsers.Add(ledUser);
var notice = NotificationTaskService.InsertUserNoticeTaskModel("领导带班下井记录"+dt.Month.PadLeft(2,'0')+ dt.Day.PadLeft(2, '0') + "("+classFisrt.NAME+")", record.ID, item.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now, var notice = NotificationTaskService.InsertUserNoticeTaskModel("领导带班下井记录" + dt.Month.PadLeft(2, '0') + dt.Day.PadLeft(2, '0') + "(" + classFisrt.NAME + ")", record.ID, item.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO041");
notices.Add(notice);
}
}
else if (firstTime.STARTTIME.Hour == 0 && dt.Hour == 23 && secondRecord == null && dt.AddDays(1).Date == item.DATE)
{
var sendUser = users.FirstOrDefault(t => t.ID == item.USER_ID);
if (sendUser != null)
{
T_FO_LEADER_WELL_RECORD record = new T_FO_LEADER_WELL_RECORD();
record.ORG_ID = item.ORG_ID;
record.APPLY_USER_ID = sendUser.ID;
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
record.JOB_START_DATE = Convert.ToDateTime(dt.AddDays(1).Date.ToShortDateString() + " " + firstTime.STARTTIME.ToShortTimeString());
record.JOB_END_DATE = Convert.ToDateTime(dt.AddDays(1).Date.ToShortDateString() + " " + firstTime.ENDTIME.ToShortTimeString());
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
record.COMPANY_ID = company?.ID;
record.CLASS_ID = item.CLASS_ID;
record.PRODUCTION_UNIT_ID = sendUser?.Nav_Department?.PRODUCTION_UNIT_ID;
wellRecords.Add(record);
T_FO_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER();
ledUser.ORG_ID = item.ORG_ID;
ledUser.LEADER_WELL_RECORD_ID = record.ID;
ledUser.USER_ID = sendUser.ID;
wellRecordUsers.Add(ledUser);
var notice = NotificationTaskService.InsertUserNoticeTaskModel("领导带班下井记录" + dt.AddDays(1).Month.PadLeft(2, '0') + dt.AddDays(1).Day.PadLeft(2, '0') + "(" + classFisrt.NAME + ")", record.ID, item.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO041"); DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO041");
notices.Add(notice); notices.Add(notice);
} }