检查跑批优化

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

View File

@ -579,8 +579,9 @@ namespace APT.PP.WebApi.Controllers.Api
if (filter.Parameter1 != null)
{
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> noticeTasks = new List<T_FM_NOTIFICATION_TASK>();
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",
"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" }; //指定字段,包括导航属性
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();
var noticeExsisIds = notices.Select(t => t.ID).ToList();
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();
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);
var sourceIds = tasks.Select(i => i.SOURCE_DATA_ID).ToList();
notices.ForEach(m => {
m.Nav_CheckNoticeDetails = null;
m.Nav_CheckNoticeFiles = null;
});
var newFilter = new BaseFilter(filter.GetOrgId());
newFilter.IgnoreDataRule = true;
updateNotices = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE>(t => noticeIds.Contains(t.ID) && t.STATUS == PFStandardStatus.Sign, newFilter).ToList();
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.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(() =>
{
{
if (updateNotices != null && updateNotices.Any())
BantchSaveEntityNoCommit(updateNotices);
//if (notices != null && notices.Any())
// BantchSaveEntityNoCommit(notices);
if (tasks != null && tasks.Any())
@ -828,6 +842,7 @@ namespace APT.PP.WebApi.Controllers.Api
sum.ORG_ID = noticeFirst.ORG_ID;
sum.SECURITY_INSPECTION_NOTICE_ID = 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.CHECK_PERSON = noticeFirst.CHECK_PERSON;
sum.CHECK_TIME = noticeFirst.CHECK_TIME;