年度培训计划 触发修改

安全意识调查 在结束时间到了
This commit is contained in:
wyw 2025-11-25 11:40:24 +08:00
parent b58d616897
commit b3510238da
2 changed files with 43 additions and 10 deletions

View File

@ -97,7 +97,7 @@ namespace APT.MS.Domain.Entities.SE
[FormFieldQuery] [FormFieldQuery]
public SESafeSurveyStatus STATUS { get; set; } public SESafeSurveyStatus STATUS { get; set; }
/// <summary> /// <summary>
/// 发起人报表发送 /// 公司报表通知
/// </summary> /// </summary>
[Description("公司报表通知")] [Description("公司报表通知")]
[FormFieldEdit] [FormFieldEdit]

View File

@ -160,7 +160,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP
//安全意识调查结束部门汇总 //安全意识调查结束部门汇总
CheckSafeSuveyDepartReport(filter, dtNow); CheckSafeSuveyDepartReport(filter, dtNow);
//安全意识调查所有结束公司汇总 //安全意识调查所有结束公司汇总
CheckSafeSuveyCompanyReport(filter, dtNow); CheckSafeSuveyCompanyReport(filter, dtNow); //安全意识调查 非草稿时间到了 或者已经到截止时间了 汇总给 部门安全员/负责人 公司:安环安全员/安环负责人/安环总监
//培训需求调查结束汇总 //培训需求调查结束汇总
CheckTrainSuveyFinishByDepartment(filter, dtNow); CheckTrainSuveyFinishByDepartment(filter, dtNow);
#endregion #endregion
@ -1396,11 +1396,11 @@ namespace APT.PP.WebApi.Controllers.Api.PP
if (mm == dtNow.Month && dd == dtNow.Day) if (mm == dtNow.Month && dd == dtNow.Day)
{ {
int year = int.Parse(dtNow.Year.ToString()); int year = int.Parse(dtNow.Year.ToString());
if (mm > 9) if (mm > 10)
{ {
year++;//超过9月算 制定 明年的代办 year++;//超过9月算 制定 明年的代办
} }
var yearPlan = this.GetEntity<T_SE_TRAIN_PLAN>(e => e.YEAR == year); var yearPlan = this.GetEntity<T_SE_TRAIN_PLAN>(e => e.YEAR == year && e.TYPE == PlanType.Company && !e.IS_DELETED);
if (yearPlan != null) if (yearPlan != null)
{ {
return true; return true;
@ -1704,17 +1704,19 @@ namespace APT.PP.WebApi.Controllers.Api.PP
BantchAddEntityNoCommit(sendNotices); BantchAddEntityNoCommit(sendNotices);
}); });
} }
/// <summary> /// <summary>
/// 安全意识调查完成后 /// 安全意识调查完成后
/// </summary> /// </summary>
/// <param name="entity"></param> /// <param name="filter"></param>
/// <returns></returns> /// <param name="dt"></param>
private void CheckSafeSuveyCompanyReport(KeywordFilter filter, DateTime dt) private void CheckSafeSuveyCompanyReport(KeywordFilter filter, DateTime dt)
{ {
//安全意识调查全部完成后发送给安环部负责人 //安全意识调查全部完成后发送给安环部负责人
var surveysAll = GetEntities<T_SE_SAFE_SURVEY>(t => t.LAUNCH_TIME.Value.Year == dt.Year && // 安全意识调查全部完成 或者 截止时间到了 并且没给公司 发送意识调查 触发 意识调查 公司汇总 给安环负责人/总监 或者 安环安全员
t.STATUS == SESafeSurveyStatus. && !t.COMPNAY_REPORT && t.TASK_ID != null, new BaseFilter(filter.GetOrgId())).ToList(); var surveysAll = GetEntities<T_SE_SAFE_SURVEY>(t => ((t.LAUNCH_TIME.Value.Year == dt.Year &&
t.STATUS == SESafeSurveyStatus.) || (t.STATUS != SESafeSurveyStatus.稿 && t.END_TIME.HasValue && t.END_TIME.Value <= dt)) && t.LAUNCH_DEPARTMENT_ID.HasValue && !t.COMPNAY_REPORT && t.TASK_ID != null, new BaseFilter(filter.GetOrgId())).ToList();
if (surveysAll == null || surveysAll.Count == 0) if (surveysAll == null || surveysAll.Count == 0)
{ {
return; return;
@ -1722,13 +1724,44 @@ namespace APT.PP.WebApi.Controllers.Api.PP
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>(); List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
var taskids = surveysAll.Select(t => t.TASK_ID).Distinct(); var taskids = surveysAll.Select(t => t.TASK_ID).Distinct();
var chargeUser = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0); var chargeUser = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0);
if (chargeUser == null)
{
chargeUser = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安全总监" && t.ENABLE_STATUS == 0);
}
var chargeUserSafe = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
foreach (var taskid in taskids) foreach (var taskid in taskids)
{ {
var surveys = surveysAll.Where(t => t.TASK_ID == taskid).ToList(); var surveys = surveysAll.Where(t => t.TASK_ID == taskid).ToList();
if (surveys != null && surveys.Count() > 0)
{
if (chargeUser != null)
{
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("意识调查-" + surveys[0].LAUNCH_TIME + "-公司汇总", (Guid)taskid, filter.GetOrgId(), chargeUser.ID, chargeUser.NAME, DateTime.Now, (int)FMFormTypeEnum., "SE005_ALLREPORT", FMTASKTYPE.Default));
}
if (chargeUserSafe != null)
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("意识调查-" + surveys[0].LAUNCH_TIME + "-公司汇总", (Guid)taskid, filter.GetOrgId(), chargeUserSafe.ID, chargeUserSafe.NAME, DateTime.Now, (int)FMFormTypeEnum., "SE005_ALLREPORT", FMTASKTYPE.Default));
}
foreach (var survey in surveys) foreach (var survey in surveys)
{ {
survey.COMPNAY_REPORT = true; survey.COMPNAY_REPORT = true;
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("意识调查-" + surveys[0].LAUNCH_TIME + "-公司汇总", (Guid)taskid, filter.GetOrgId(), chargeUser.ID, chargeUser.NAME, DateTime.Now, DateTime.Now.AddDays(1), (int)FMFormTypeEnum., "SE005_ALLREPORT")); //发起部门 负责人 或者安全员
if ((chargeUser != null && chargeUser.DEPARTMENT_ID.HasValue && chargeUser.DEPARTMENT_ID.Value == survey.LAUNCH_DEPARTMENT_ID.Value) || (chargeUserSafe != null && chargeUserSafe.DEPARTMENT_ID.HasValue && chargeUserSafe.DEPARTMENT_ID.Value == survey.LAUNCH_DEPARTMENT_ID.Value))
{
continue;
}
//发起组织的 安全员和负责人 有此确认单
var depcharge = GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == 0 && t.DEPARTMENT_ID.HasValue && t.DEPARTMENT_ID.Value == survey.LAUNCH_DEPARTMENT_ID.Value && t.Nav_ApproveRole.NAME.Contains("部门负责人"));
var depSafe = GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == 0 && t.DEPARTMENT_ID.HasValue && t.DEPARTMENT_ID.Value == survey.LAUNCH_DEPARTMENT_ID.Value && t.Nav_ApproveRole.NAME.Contains("部门安全员"));
if (depcharge != null)
{
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("意识调查-" + surveys[0].LAUNCH_TIME + "-部门汇总", survey.ID, survey.ORG_ID, depcharge.ID, depcharge.NAME, DateTime.Now, (int)FMFormTypeEnum., "SE005_ALLREPORT", FMTASKTYPE.Default));
}
if (depSafe != null)
{
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("意识调查-" + surveys[0].LAUNCH_TIME + "-部门汇总", survey.ID, survey.ORG_ID, depSafe.ID, depSafe.NAME, DateTime.Now, (int)FMFormTypeEnum., "SE005_ALLREPORT", FMTASKTYPE.Default));
}
} }
} }
UnifiedCommit(() => UnifiedCommit(() =>