diff --git a/APT.MS.Domain/Entities/SC/SE/11T_SE_SAFE_SURVEY.cs b/APT.MS.Domain/Entities/SC/SE/11T_SE_SAFE_SURVEY.cs index a3257da..7249ea4 100644 --- a/APT.MS.Domain/Entities/SC/SE/11T_SE_SAFE_SURVEY.cs +++ b/APT.MS.Domain/Entities/SC/SE/11T_SE_SAFE_SURVEY.cs @@ -97,7 +97,7 @@ namespace APT.MS.Domain.Entities.SE [FormFieldQuery] public SESafeSurveyStatus STATUS { get; set; } /// - /// 发起人报表发送 + /// 公司报表通知 /// [Description("公司报表通知")] [FormFieldEdit] diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SEController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SEController.cs index 9892269..4b768e5 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SEController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SEController.cs @@ -160,7 +160,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP //安全意识调查结束部门汇总 CheckSafeSuveyDepartReport(filter, dtNow); //安全意识调查所有结束公司汇总 - CheckSafeSuveyCompanyReport(filter, dtNow); + CheckSafeSuveyCompanyReport(filter, dtNow); //安全意识调查 非草稿时间到了 或者已经到截止时间了 汇总给 部门安全员/负责人 公司:安环安全员/安环负责人/安环总监 //培训需求调查结束汇总 CheckTrainSuveyFinishByDepartment(filter, dtNow); #endregion @@ -1396,11 +1396,11 @@ namespace APT.PP.WebApi.Controllers.Api.PP if (mm == dtNow.Month && dd == dtNow.Day) { int year = int.Parse(dtNow.Year.ToString()); - if (mm > 9) + if (mm > 10) { year++;//超过9月算 制定 明年的代办 } - var yearPlan = this.GetEntity(e => e.YEAR == year); + var yearPlan = this.GetEntity(e => e.YEAR == year && e.TYPE == PlanType.Company && !e.IS_DELETED); if (yearPlan != null) { return true; @@ -1704,17 +1704,19 @@ namespace APT.PP.WebApi.Controllers.Api.PP BantchAddEntityNoCommit(sendNotices); }); } + /// /// 安全意识调查完成后 /// - /// - /// - + /// + /// private void CheckSafeSuveyCompanyReport(KeywordFilter filter, DateTime dt) { //安全意识调查全部完成后发送给安环部负责人 - var surveysAll = GetEntities(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 => ((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) { return; @@ -1722,13 +1724,44 @@ namespace APT.PP.WebApi.Controllers.Api.PP List notices = new List(); var taskids = surveysAll.Select(t => t.TASK_ID).Distinct(); var chargeUser = GetEntity(t => t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0); + if (chargeUser == null) + { + chargeUser = GetEntity(t => t.Nav_ApproveRole.NAME == "安全总监" && t.ENABLE_STATUS == 0); + } + var chargeUserSafe = GetEntity(t => t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0); foreach (var taskid in taskids) { 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) { 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 => 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 => 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(() =>