风险辨识模块优化

This commit is contained in:
何美荣 2026-04-08 16:59:29 +08:00
parent 40171f73bb
commit 7518e67a79
5 changed files with 64 additions and 51 deletions

View File

@ -1,22 +1,23 @@
using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using System;
using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.IServices.FM; using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Api;
using System.Collections.Generic;
using System.Linq;
using APT.MS.Domain.Enums;
using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices; using APT.BaseData.Domain.IServices;
using System.Linq.Expressions;
using Newtonsoft.Json;
using APT.MS.Domain.Entities.PF;
using InfluxData.Net.InfluxDb.Models.Responses;
using APT.BaseData.Domain.IServices.BS; using APT.BaseData.Domain.IServices.BS;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Api;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.BS; using APT.MS.Domain.Entities.BS;
using APT.MS.Domain.Entities.HM; using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.PF;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using InfluxData.Net.InfluxDb.Models.Responses;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
namespace APT.BaseData.Services.Services.FM namespace APT.BaseData.Services.Services.FM
{ {
@ -559,6 +560,10 @@ namespace APT.BaseData.Services.Services.FM
case "HM122": case "HM122":
case "HM123": case "HM123":
endTime = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1); endTime = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
break;
case "SK031":
var plan = this.GetEntity<T_SK_IDENTIFY_EVALUATION_PLAN>(t => t.ID == id);
endTime = (plan!=null && plan.START_DATE!=null)? plan.START_DATE.Value: DateTime.Now.AddHours(24);
break; break;
default: break; default: break;
} }

View File

@ -13095,7 +13095,7 @@ namespace APT.BaseData.Services.DomainServices
{ {
var entity = this.GetEntity<T_SK_RISK_IDENTIFY>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID); var entity = this.GetEntity<T_SK_RISK_IDENTIFY>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
entity.STATUS = PFStandardStatus.Archived; entity.STATUS = PFStandardStatus.Archived;
entity.END_DATE = DateTime.Now; //entity.END_DATE = DateTime.Now;
Guid? userId = null; Guid? userId = null;
T_SK_RISK_IDENTIFY_RESULT result = null; T_SK_RISK_IDENTIFY_RESULT result = null;
T_FM_NOTIFICATION_TASK notice = null; T_FM_NOTIFICATION_TASK notice = null;
@ -13689,7 +13689,7 @@ namespace APT.BaseData.Services.DomainServices
sum.APPLY_USER_ID = user.ID; sum.APPLY_USER_ID = user.ID;
sum.YEAR = entity.YEAR; sum.YEAR = entity.YEAR;
sum.START_DATE = entity.START_DATE; sum.START_DATE = entity.START_DATE;
sum.END_DATE = DateTime.Now; sum.END_DATE = entity.END_DATE;
sum.CONTENTS = entity.CONTENTS; sum.CONTENTS = entity.CONTENTS;
sum.REQUIRE_ID = entity.REQUIRE_ID != null ? entity.REQUIRE_ID : requre?.ID; sum.REQUIRE_ID = entity.REQUIRE_ID != null ? entity.REQUIRE_ID : requre?.ID;
sum.ISCOMPANY = entity.ISCOMPANY; sum.ISCOMPANY = entity.ISCOMPANY;

View File

@ -1,37 +1,38 @@
namespace APT.PF.WebApi.Controllers.Api namespace APT.PF.WebApi.Controllers.Api
{ {
using APT.Infrastructure.Core;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using APT.Utility;
using APT.Infrastructure.Api;
using APT.BaseData.Domain.ApiModel.PF; using APT.BaseData.Domain.ApiModel.PF;
using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Enums.PF;
using System.Linq;
using System;
using APT.BaseData.Domain.IServices.FM;
using APT.MS.Domain.Enums;
using System.Dynamic;
using System.Reflection;
using APT.BaseData.Domain.Entities.PF;
using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Entities.FM;
using System.Linq.Expressions; using APT.BaseData.Domain.Entities.PF;
using APT.MS.Domain.Entities.BS;
using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices; using APT.BaseData.Domain.IServices;
using APT.MS.Domain.Entities.HM; using APT.BaseData.Domain.IServices.FM;
using Newtonsoft.Json; using APT.BaseData.Domain.IServices.OP;
using NPOI.Util;
using System.Data;
using NPOI.SS.Formula.Functions;
using APT.MS.Domain.Entities.SC;
using APT.Infrastructure.EF;
using APT.BaseData.Services.DomainServices; using APT.BaseData.Services.DomainServices;
using APT.BaseData.Services.Services.FM; using APT.BaseData.Services.Services.FM;
using APT.BaseData.Services.Sys; using APT.BaseData.Services.Sys;
using APT.Infrastructure.Api;
using APT.Infrastructure.Core;
using APT.Infrastructure.EF;
using APT.MS.Domain.Entities.BS;
using APT.MS.Domain.Entities.FO; using APT.MS.Domain.Entities.FO;
using APT.BaseData.Domain.IServices.OP; using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.SC;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using NPOI.SS.Formula.Functions;
using NPOI.Util;
using System;
using System.Collections.Generic;
using System.Data;
using System.Dynamic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
[Route("api/PF/PFApprove")] [Route("api/PF/PFApprove")]
public partial class ApproveController : AuthorizeApiController<T_PF_APPROVE> public partial class ApproveController : AuthorizeApiController<T_PF_APPROVE>
@ -340,6 +341,10 @@
var job = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(t => t.ID == entity.DATA_ID, "Nav_OperationStep"); var job = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(t => t.ID == entity.DATA_ID, "Nav_OperationStep");
NoticeTitle = job != null && job.Nav_OperationStep != null ? entity.NAME + "-" + job.Nav_OperationStep?.NAME + "待审批" : NoticeTitle; NoticeTitle = job != null && job.Nav_OperationStep != null ? entity.NAME + "-" + job.Nav_OperationStep?.NAME + "待审批" : NoticeTitle;
endTime = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1); endTime = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
break;
case "安全风险辨识与评估计划":
var plan = this.GetEntity<T_SK_IDENTIFY_EVALUATION_PLAN>(t => t.ID == entity.DATA_ID);
endTime = (plan != null && plan.START_DATE != null) ? plan.START_DATE.Value : DateTime.Now.AddHours(24);
break; break;
default: break; default: break;
} }

View File

@ -1567,7 +1567,7 @@ namespace APT.PP.WebApi.Controllers.Api
var endtime = DateTime.Now.AddHours(24); var endtime = DateTime.Now.AddHours(24);
if (plan.END_DATE != null) if (plan.END_DATE != null)
{ {
endtime = Convert.ToDateTime(plan.END_DATE.ToString().Replace("0:00:00", "23:59:59")); endtime = Convert.ToDateTime(plan.END_DATE.ToString());
} }
var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel("安全风险辨识表" + DateTime.Now.Month.PadLeft(2,'0') + DateTime.Now.Day.PadLeft(2, '0'), ide.ID, filter.OrgId, user.ID, user.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum., "SK033"); var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel("安全风险辨识表" + DateTime.Now.Month.PadLeft(2,'0') + DateTime.Now.Day.PadLeft(2, '0'), ide.ID, filter.OrgId, user.ID, user.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum., "SK033");
notices.Add(noticeTask); notices.Add(noticeTask);
@ -1651,7 +1651,8 @@ namespace APT.PP.WebApi.Controllers.Api
Expression<Func<T_SK_RISK_IDENTIFY, bool>> newexpression = i => planIds.Contains((Guid)i.IDENTIFY_EVALUATION_PLAN_ID); Expression<Func<T_SK_RISK_IDENTIFY, bool>> newexpression = i => planIds.Contains((Guid)i.IDENTIFY_EVALUATION_PLAN_ID);
List<T_SK_RISK_IDENTIFY> identityTemps = this.GetOrderEntities(newexpression, newFilter).ToList(); List<T_SK_RISK_IDENTIFY> identityTemps = this.GetOrderEntities(newexpression, newFilter).ToList();
identitys = identityTemps.Where(t => t.STATUS != PFStandardStatus.Archived && t.STATUS != PFStandardStatus.Close).ToList(); identitys = identityTemps.Where(t => t.STATUS != PFStandardStatus.Archived && t.STATUS != PFStandardStatus.Close).ToList();
var identityPlanIds = identitys.Select(t => t.IDENTIFY_EVALUATION_PLAN_ID).Distinct().ToList(); var identityPlanIds = identityTemps.Select(t => t.IDENTIFY_EVALUATION_PLAN_ID).Distinct().ToList();
planIds = planIds.Where(t => identityPlanIds.Contains(t)).Distinct().ToList();
//plans = planTemps.Where(t => identityPlanIds.Contains(t.ID)).ToList(); //plans = planTemps.Where(t => identityPlanIds.Contains(t.ID)).ToList();
var identityIds = identitys.Select(i => i.ID).ToList(); var identityIds = identitys.Select(i => i.ID).ToList();
var approvIds = this.GetEntities<T_PF_APPROVE>(t => identityIds.Contains(t.DATA_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); var approvIds = this.GetEntities<T_PF_APPROVE>(t => identityIds.Contains(t.DATA_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
@ -1670,7 +1671,8 @@ namespace APT.PP.WebApi.Controllers.Api
identitys.ForEach(m => { m.STATUS = PFStandardStatus.Close; m.END_DATE = DateTime.Now; }); identitys.ForEach(m => { m.STATUS = PFStandardStatus.Close; m.END_DATE = DateTime.Now; });
tasks.ForEach(t => { t.NOTICE_STATUS = 4; t.SOURCE_FORMCODE = "SK033_SHOWPRINT"; }); tasks.ForEach(t => { t.NOTICE_STATUS = 4; t.SOURCE_FORMCODE = "SK033_SHOWPRINT"; });
foreach (var plan in planIds) foreach (var plan in planIds)
{ {
var planTemp = planTemps.FirstOrDefault(t => t.ID == plan);
var ides = identityTemps.Where(t => t.IDENTIFY_EVALUATION_PLAN_ID == plan).ToList(); var ides = identityTemps.Where(t => t.IDENTIFY_EVALUATION_PLAN_ID == plan).ToList();
if (ides.Any()) if (ides.Any())
{ {
@ -1713,11 +1715,10 @@ namespace APT.PP.WebApi.Controllers.Api
result.ISAUTO = true; result.ISAUTO = true;
result.ISCOMPANY = SKIsStoreEnum.Yes; result.ISCOMPANY = SKIsStoreEnum.Yes;
result.CONTENTS = deTemp?.CONTENTS; result.CONTENTS = deTemp?.CONTENTS;
result.START_DATE = DateTime.Now; result.START_DATE = planTemp.START_DATE;
result.END_DATE = DateTime.Now; result.END_DATE = planTemp.END_DATE;
result.REQUIRE_ID = requre?.ID; result.REQUIRE_ID = requre?.ID;
results.Add(result); results.Add(result);
var planTemp = planTemps.FirstOrDefault(t => t.ID == plan);
if (planTemp != null && planTemp.Nav_Requires != null && planTemp.Nav_Requires.Any()) if (planTemp != null && planTemp.Nav_Requires != null && planTemp.Nav_Requires.Any())
{ {
foreach (var itemReq in planTemp.Nav_Requires) foreach (var itemReq in planTemp.Nav_Requires)
@ -1878,11 +1879,11 @@ namespace APT.PP.WebApi.Controllers.Api
result.ISAUTO = true; result.ISAUTO = true;
result.ISCOMPANY = SKIsStoreEnum.No; result.ISCOMPANY = SKIsStoreEnum.No;
result.CONTENTS = deTemp.CONTENTS; result.CONTENTS = deTemp.CONTENTS;
result.START_DATE = DateTime.Now; result.START_DATE = planTemp.START_DATE;
result.END_DATE = DateTime.Now; result.END_DATE = planTemp.END_DATE;
result.REQUIRE_ID = requre?.ID; result.REQUIRE_ID = requre?.ID;
results.Add(result); results.Add(result);
var planTemp = planTemps.FirstOrDefault(t => t.ID == plan);
if (planTemp != null && planTemp.Nav_Requires != null && planTemp.Nav_Requires.Any()) if (planTemp != null && planTemp.Nav_Requires != null && planTemp.Nav_Requires.Any())
{ {
foreach (var itemReq in planTemp.Nav_Requires) foreach (var itemReq in planTemp.Nav_Requires)
@ -2074,11 +2075,10 @@ namespace APT.PP.WebApi.Controllers.Api
result.ISAUTO = true; result.ISAUTO = true;
result.ISCOMPANY = SKIsStoreEnum.No; result.ISCOMPANY = SKIsStoreEnum.No;
result.CONTENTS = deTemp.CONTENTS; result.CONTENTS = deTemp.CONTENTS;
result.START_DATE = DateTime.Now; result.START_DATE = planTemp.START_DATE;
result.END_DATE = DateTime.Now; result.END_DATE = planTemp.END_DATE;
result.REQUIRE_ID = requre?.ID; result.REQUIRE_ID = requre?.ID;
results.Add(result); results.Add(result);
var planTemp = planTemps.FirstOrDefault(t => t.ID == plan);
if (planTemp != null && planTemp.Nav_Requires != null && planTemp.Nav_Requires.Any()) if (planTemp != null && planTemp.Nav_Requires != null && planTemp.Nav_Requires.Any())
{ {
foreach (var itemReq in planTemp.Nav_Requires) foreach (var itemReq in planTemp.Nav_Requires)
@ -5436,6 +5436,7 @@ namespace APT.PP.WebApi.Controllers.Api
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(); 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() && sche != null) if (userInfo != null && userInfo.Any() && sche != null)
{ {
var j = 1;
foreach (var user in userInfo) foreach (var user in userInfo)
{ {
//判断是否重复触发 //判断是否重复触发
@ -5461,6 +5462,7 @@ namespace APT.PP.WebApi.Controllers.Api
record.DEPARTMENT_TYPE = item.DepartType; record.DEPARTMENT_TYPE = item.DepartType;
record.STATUS = PFStandardStatus.Draft; record.STATUS = PFStandardStatus.Draft;
record.ISAUTO = true; record.ISAUTO = true;
record.NOTICE_CODE = "GWPC" + DateTime.Now.ToString("yyyyMMddHH") + j.ToString().PadLeft(4, '0');
records.Add(record); records.Add(record);
if (item.details != null && item.details.Any()) if (item.details != null && item.details.Any())
{ {
@ -5514,6 +5516,7 @@ namespace APT.PP.WebApi.Controllers.Api
} }
var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "岗位排查记录" + date, record.ID, filter.OrgId, user.ID, user.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum., "SK010"); var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "岗位排查记录" + date, record.ID, filter.OrgId, user.ID, user.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum., "SK010");
notices.Add(notice); notices.Add(notice);
j++;
} }
} }
} }

View File

@ -56,9 +56,9 @@ namespace APT.SK.WebApi.Controllers.Api
entity.Nav_Evaluations = null; entity.Nav_Evaluations = null;
entity.ApplyDepartmentName = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == departId).NAME; entity.ApplyDepartmentName = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == departId).NAME;
entity.ApplyPostName = this.GetEntity<T_FM_USER>(t => t.ID == userId, "Nav_Person.Nav_Post")?.Nav_Person?.Nav_Post?.NAME; entity.ApplyPostName = this.GetEntity<T_FM_USER>(t => t.ID == userId, "Nav_Person.Nav_Post")?.Nav_Person?.Nav_Post?.NAME;
if (entity.START_DATE.Value.Date < DateTime.Now.Date) if (entity.START_DATE < DateTime.Now.AddDays(3))
{ {
throw new Exception("辨识开始时间必须大于今天"); throw new Exception("辨识开始时间必须大于"+ DateTime.Now.AddDays(3));
} }
List<Guid> deleteUserIds = new List<Guid>(); List<Guid> deleteUserIds = new List<Guid>();
List<Guid> deleteIds = new List<Guid>(); List<Guid> deleteIds = new List<Guid>();