检查通知超时审批不触发后续流程

This commit is contained in:
何美荣 2026-03-27 10:44:32 +08:00
parent f234a5a857
commit 68f49d4c4d
2 changed files with 74 additions and 68 deletions

View File

@ -11392,74 +11392,79 @@ namespace APT.BaseData.Services.DomainServices
});
}
else
{
var entity = this.GetEntity<T_SK_SECURITY_INSPECTION_NOTICE>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_CheckType");
entity.STATUS = PFStandardStatus.Sign;
var entityDetails = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL>(t => t.SECURITY_INSPECTION_NOTICE_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_CheckNoticeDetailUsers");
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
List<Guid> userIds = new List<Guid>();
List<Guid> applyUserIds = new List<Guid>();
{
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
List<Guid> userIds = new List<Guid>();
List<Guid> applyUserIds = new List<Guid>();
List<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER> detailUsers = new List<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER>();
if (entityDetails != null && entityDetails.Any())
{
foreach (var user in entityDetails)
{
if (user.Nav_CheckNoticeDetailUsers != null && user.Nav_CheckNoticeDetailUsers.Any())
{
var tempIds = user.Nav_CheckNoticeDetailUsers.Where(t => t.USER_ID == entity.APPLY_USER_ID).Select(t => t.ID).ToList();
if (tempIds != null && tempIds.Any())
{
applyUserIds.AddRange(tempIds);
}
var ids = user.Nav_CheckNoticeDetailUsers.Where(m => m.USER_ID != null && m.USER_ID != entity.APPLY_USER_ID).Select(t => (Guid)t.USER_ID).Distinct().ToList();
userIds.AddRange(ids);
}
var entity = this.GetEntity<T_SK_SECURITY_INSPECTION_NOTICE>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_CheckType");
entity.STATUS = PFStandardStatus.Approving;
if (DateTime.Now > entity.CHECK_TIME)
{ }
else
{
var entityDetails = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL>(t => t.SECURITY_INSPECTION_NOTICE_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_CheckNoticeDetailUsers");
if (entityDetails != null && entityDetails.Any())
{
foreach (var user in entityDetails)
{
if (user.Nav_CheckNoticeDetailUsers != null && user.Nav_CheckNoticeDetailUsers.Any())
{
var tempIds = user.Nav_CheckNoticeDetailUsers.Where(t => t.USER_ID == entity.APPLY_USER_ID).Select(t => t.ID).ToList();
if (tempIds != null && tempIds.Any())
{
applyUserIds.AddRange(tempIds);
}
var ids = user.Nav_CheckNoticeDetailUsers.Where(m => m.USER_ID != null && m.USER_ID != entity.APPLY_USER_ID).Select(t => (Guid)t.USER_ID).Distinct().ToList();
userIds.AddRange(ids);
}
}
}
if (applyUserIds != null && applyUserIds.Any())
{
detailUsers = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER>(t => applyUserIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
detailUsers.ForEach(t =>
{
t.ISCHECK = true;
t.CHECKTIME = DateTime.Now;
});
//存入一条已办
T_FM_NOTIFICATION_TASK notice = new T_FM_NOTIFICATION_TASK();
notice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
notice.NOTICE_TITLE = entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + entity.Nav_CheckType?.NAME + "-确认";
notice.SOURCE_DATA_ID = entity.ID;
notice.ORG_ID = entity.ORG_ID;
notice.ID = Guid.NewGuid();
notice.TASK_STARTDT = DateTime.Now;
notice.TASK_ENDDT = DateTime.Now.AddHours(24);
notice.NOTICE_TYPE = (int)FMNoticeTypeEnum.;
notice.NOTICE_STATUS = (int)FMNoticeStatusEnum.;
notice.USER_ID = (Guid)entity.APPLY_USER_ID;
notice.USER_NAME = entity.Nav_ApplyUser?.NAME;
notice.SOURCE_FORMCODE = "SK006_SHOWPRINT";
sendNotices.Add(notice);
}
userIds = userIds.Distinct().ToList();
if (userIds != null && userIds.Any())
{
entity.STATUS = PFStandardStatus.Sign;
var UserNames = new List<string>();
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum. && userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
foreach (var u in userIds)
{
var current = users.FirstOrDefault(t => t.ID == u);
UserNames.Add(current?.NAME);
}
var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
//发消息
sendNotices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK006_SHOWPRINT"));
}
else
{
entity.STATUS = PFStandardStatus.Archived;
}
}
if (applyUserIds != null && applyUserIds.Any())
{
detailUsers = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER>(t => applyUserIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
detailUsers.ForEach(t =>
{
t.ISCHECK = true;
t.CHECKTIME = DateTime.Now;
});
//存入一条已办
T_FM_NOTIFICATION_TASK notice = new T_FM_NOTIFICATION_TASK();
notice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
notice.NOTICE_TITLE = entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + entity.Nav_CheckType?.NAME + "-确认";
notice.SOURCE_DATA_ID = entity.ID;
notice.ORG_ID = entity.ORG_ID;
notice.ID = Guid.NewGuid();
notice.TASK_STARTDT = DateTime.Now;
notice.TASK_ENDDT = DateTime.Now.AddHours(24);
notice.NOTICE_TYPE = (int)FMNoticeTypeEnum.;
notice.NOTICE_STATUS = (int)FMNoticeStatusEnum.;
notice.USER_ID = (Guid)entity.APPLY_USER_ID;
notice.USER_NAME = entity.Nav_ApplyUser?.NAME;
notice.SOURCE_FORMCODE = "SK006_SHOWPRINT";
sendNotices.Add(notice);
}
userIds = userIds.Distinct().ToList();
if (userIds != null && userIds.Any())
{
entity.STATUS = PFStandardStatus.Sign;
var UserNames = new List<string>();
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum. && userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
foreach (var u in userIds)
{
var current = users.FirstOrDefault(t => t.ID == u);
UserNames.Add(current?.NAME);
}
var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
//发消息
sendNotices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK006_SHOWPRINT"));
}
else
{
entity.STATUS = PFStandardStatus.Archived;
}
UnifiedCommit(() =>
{
if (modelApp != null)

View File

@ -790,7 +790,7 @@ namespace APT.PP.WebApi.Controllers.Api
var day = dtNow.Day;
var week = dtNow.DayOfWeek;
filter.IgnoreDataRule = true;
//查记录表,检查时间第二天12点自动转为已办
//查记录表,检查时间第二天自动转为已办
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_SUMMARY> summarys = new List<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>();
@ -810,11 +810,12 @@ namespace APT.PP.WebApi.Controllers.Api
// "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.ISMAINCHECK","Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.CHECKTIME","Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.ISCHECK",
// "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.SECURITY_INSPECTION_RECORD_DETAIL_ID","Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.SECURITY_INSPECTION_RECORD_DETAIL_ID",
// "Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.LAW_ID" }; //指定字段,包括导航属性
var notices = GetEntities<T_SK_SECURITY_INSPECTION_NOTICE>(i => i.CHECK_TIME.Value.AddDays(1).Date == dtNow.Date && i.CHECK_TIME.Value.AddDays(1).Hour == dtNow.Hour && i.Nav_CheckType != null && !i.Nav_CheckType.NAME.Contains("岗位排查"), baseFilter);
var notices = GetEntities<T_SK_SECURITY_INSPECTION_NOTICE>(i => i.CHECK_TIME.Value.AddDays(1).Date == dtNow.Date && i.CHECK_TIME.Value.AddDays(1).Hour == dtNow.Hour && i.Nav_CheckType != null && !i.Nav_CheckType.NAME.Contains("岗位排查") && (i.STATUS == PFStandardStatus.Archived || i.STATUS == PFStandardStatus.Sign), baseFilter);
var noticeIds = notices.Select(t => t.ID).ToList();
var sumNoticeIds = GetEntities<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(t => t.SECURITY_INSPECTION_NOTICE_ID != null && noticeIds.Contains((Guid)t.SECURITY_INSPECTION_NOTICE_ID), baseFilter).Select(m => m.SECURITY_INSPECTION_NOTICE_ID).Distinct().ToList();
var needDealIds = noticeIds.Where(t => !sumNoticeIds.Contains(t)).ToList();
var records = GetEntities<T_SK_SECURITY_INSPECTION_RECORD>(i => i.SECURITY_INSPECTION_NOTICE_ID != null && needDealIds.Contains((Guid)i.SECURITY_INSPECTION_NOTICE_ID), baseFilter).ToList();
var recordNoticeIds = records.Select(t => t.SECURITY_INSPECTION_NOTICE_ID).Distinct().ToList();
if (records != null && records.Any())
{
var recordIds = records.Select(i => i.ID).ToList();
@ -832,7 +833,7 @@ namespace APT.PP.WebApi.Controllers.Api
var recordDetailFiles = this.GetEntities<T_SK_SECURITY_INSPECTION_RECORD_DETAIL_FILE>(t => recordDetailIds.Contains(t.SECURITY_INSPECTION_RECORD_DETAIL_ID), baseFilter);
var recordDetailBasics = this.GetEntities<T_SK_SECURITY_INSPECTION_RECORD_DETAIL_BASIC>(t => recordDetailIds.Contains(t.SECURITY_INSPECTION_RECORD_DETAIL_ID), baseFilter);
//触发汇总表
foreach (var id in needDealIds)
foreach (var id in recordNoticeIds)
{
var noticeFirst = notices.FirstOrDefault(t => t.ID == id);
var user = users.FirstOrDefault(t => t.ID == noticeFirst?.APPLY_USER_ID);