检查跑批优化

This commit is contained in:
何美荣 2026-03-25 15:09:50 +08:00
parent c0420dc78f
commit abc49bb29e

View File

@ -581,6 +581,7 @@ namespace APT.PP.WebApi.Controllers.Api
dtNow = DateTime.Parse(filter.Parameter1); dtNow = DateTime.Parse(filter.Parameter1);
} }
//filter.IgnoreDataRule = false; //filter.IgnoreDataRule = false;
List<T_SK_SECURITY_INSPECTION_NOTICE> updateNotices = new List<T_SK_SECURITY_INSPECTION_NOTICE>();
List<T_FM_NOTIFICATION_TASK> tasks = new List<T_FM_NOTIFICATION_TASK>(); List<T_FM_NOTIFICATION_TASK> tasks = new List<T_FM_NOTIFICATION_TASK>();
List<T_FM_NOTIFICATION_TASK> noticeTasks = new List<T_FM_NOTIFICATION_TASK>(); List<T_FM_NOTIFICATION_TASK> noticeTasks = new List<T_FM_NOTIFICATION_TASK>();
List<T_SK_SECURITY_INSPECTION_RECORD> records = new List<T_SK_SECURITY_INSPECTION_RECORD>(); List<T_SK_SECURITY_INSPECTION_RECORD> records = new List<T_SK_SECURITY_INSPECTION_RECORD>();
@ -598,7 +599,7 @@ namespace APT.PP.WebApi.Controllers.Api
baseFilter.SelectField = new string[] { "ID", "PRODUCTION_UNIT_ID","NOTICE_CODE", "CHECK_TYPE_ID","APPLY_DEPARTMENT_ID","APPLY_USER_ID","PLANCHECKFREQUENCY","DEPARTMENT_TYPE","CHECK_TIME","CHECK_PERSON", baseFilter.SelectField = new string[] { "ID", "PRODUCTION_UNIT_ID","NOTICE_CODE", "CHECK_TYPE_ID","APPLY_DEPARTMENT_ID","APPLY_USER_ID","PLANCHECKFREQUENCY","DEPARTMENT_TYPE","CHECK_TIME","CHECK_PERSON",
"Nav_CheckNoticeDetails.RISK_AREA_ID","Nav_CheckNoticeDetails.CHECK_CONTENTS_ID","Nav_CheckNoticeDetails.CHECKCONTENT","Nav_CheckNoticeDetails.CHECKPROOF","Nav_CheckNoticeDetails.CHECKSTANDARD", "Nav_CheckNoticeDetails.RISK_AREA_ID","Nav_CheckNoticeDetails.CHECK_CONTENTS_ID","Nav_CheckNoticeDetails.CHECKCONTENT","Nav_CheckNoticeDetails.CHECKPROOF","Nav_CheckNoticeDetails.CHECKSTANDARD",
"Nav_CheckNoticeFiles.IMG_FILE_ID", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailUsers.USER_ID", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailBasics.LAW_ID" }; //指定字段,包括导航属性 "Nav_CheckNoticeFiles.IMG_FILE_ID", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailUsers.USER_ID", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailBasics.LAW_ID" }; //指定字段,包括导航属性
Expression<Func<T_SK_SECURITY_INSPECTION_NOTICE, bool>> expression = i => i.IS_DELETED == false && i.CHECK_TIME != null && i.CHECK_TIME.Value.Date == DateTime.Now.Date && i.CHECK_TIME.Value.Hour == dtNow.Hour && i.STATUS == PFStandardStatus.Archived; Expression<Func<T_SK_SECURITY_INSPECTION_NOTICE, bool>> expression = i => i.IS_DELETED == false && i.CHECK_TIME != null && i.CHECK_TIME.Value.Date == dtNow.Date && i.CHECK_TIME <= dtNow && (i.STATUS == PFStandardStatus.Archived || i.STATUS == PFStandardStatus.Sign);
List<T_SK_SECURITY_INSPECTION_NOTICE> notices = this.GetOrderEntities(expression, baseFilter).ToList(); List<T_SK_SECURITY_INSPECTION_NOTICE> notices = this.GetOrderEntities(expression, baseFilter).ToList();
var noticeExsisIds = notices.Select(t => t.ID).ToList(); var noticeExsisIds = notices.Select(t => t.ID).ToList();
baseFilter.SelectField = new string[] { "ID", "SECURITY_INSPECTION_NOTICE_ID" }; //指定字段,包括导航属性 baseFilter.SelectField = new string[] { "ID", "SECURITY_INSPECTION_NOTICE_ID" }; //指定字段,包括导航属性
@ -720,16 +721,29 @@ namespace APT.PP.WebApi.Controllers.Api
var noticeIds = notices.Select(i => i.ID).ToList(); var noticeIds = notices.Select(i => i.ID).ToList();
tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => noticeIds.Contains((Guid)t.SOURCE_DATA_ID) && t.NOTICE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => noticeIds.Contains((Guid)t.SOURCE_DATA_ID) && t.NOTICE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList();
tasks.ForEach(t => t.NOTICE_STATUS = 4); tasks.ForEach(t => t.NOTICE_STATUS = 4);
var sourceIds = tasks.Select(i => i.SOURCE_DATA_ID).ToList(); var newFilter = new BaseFilter(filter.GetOrgId());
notices.ForEach(m => { newFilter.IgnoreDataRule = true;
m.Nav_CheckNoticeDetails = null; updateNotices = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE>(t => noticeIds.Contains(t.ID) && t.STATUS == PFStandardStatus.Sign, newFilter).ToList();
m.Nav_CheckNoticeFiles = null; updateNotices.ForEach(t => t.STATUS = PFStandardStatus.Close);
}); //var sourceIds = tasks.Select(i => i.SOURCE_DATA_ID).ToList();
//notices.ForEach(m => {
// m.Nav_CheckNoticeDetails = null;
// m.Nav_CheckNoticeFiles = null;
//});
//notices.Where(t => sourceIds.Contains(t.ID)).ForEach(m => m.STATUS = PFStandardStatus.Close); //notices.Where(t => sourceIds.Contains(t.ID)).ForEach(m => m.STATUS = PFStandardStatus.Close);
//notices.Where(t => !sourceIds.Contains(t.ID)).ForEach(m => m.STATUS = PFStandardStatus.Archived); //notices.Where(t => !sourceIds.Contains(t.ID)).ForEach(m => m.STATUS = PFStandardStatus.Archived);
} }
else
{
var newFilter = new BaseFilter(filter.GetOrgId());
newFilter.IgnoreDataRule = true;
updateNotices = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE>(t => recordExsisIds.Contains(t.ID) && t.STATUS == PFStandardStatus.Sign, newFilter).ToList();
updateNotices.ForEach(t => t.STATUS = PFStandardStatus.Close);
}
UnifiedCommit(() => UnifiedCommit(() =>
{ {
if (updateNotices != null && updateNotices.Any())
BantchSaveEntityNoCommit(updateNotices);
//if (notices != null && notices.Any()) //if (notices != null && notices.Any())
// BantchSaveEntityNoCommit(notices); // BantchSaveEntityNoCommit(notices);
if (tasks != null && tasks.Any()) if (tasks != null && tasks.Any())
@ -828,6 +842,7 @@ namespace APT.PP.WebApi.Controllers.Api
sum.ORG_ID = noticeFirst.ORG_ID; sum.ORG_ID = noticeFirst.ORG_ID;
sum.SECURITY_INSPECTION_NOTICE_ID = id; sum.SECURITY_INSPECTION_NOTICE_ID = id;
sum.APPLY_DEPARTMENT_ID = noticeFirst.APPLY_DEPARTMENT_ID; sum.APPLY_DEPARTMENT_ID = noticeFirst.APPLY_DEPARTMENT_ID;
sum.PRODUCTION_UNIT_ID = noticeFirst.PRODUCTION_UNIT_ID;
sum.APPLY_USER_ID = noticeFirst.APPLY_USER_ID; sum.APPLY_USER_ID = noticeFirst.APPLY_USER_ID;
sum.CHECK_PERSON = noticeFirst.CHECK_PERSON; sum.CHECK_PERSON = noticeFirst.CHECK_PERSON;
sum.CHECK_TIME = noticeFirst.CHECK_TIME; sum.CHECK_TIME = noticeFirst.CHECK_TIME;