diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs
index df4d446..4ba0df9 100644
--- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs
+++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs
@@ -15,9 +15,11 @@ using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.PF;
using APT.MS.Domain.Entities.SC.SC;
using APT.MS.Domain.Enums;
+using Google.Protobuf.Collections;
using InfluxData.Net.InfluxDb.Models.Responses;
using MySqlX.XDevAPI.Common;
using NPOI.SS.Formula.Functions;
+using Org.BouncyCastle.Ocsp;
using Org.BouncyCastle.Utilities;
using System;
using System.Collections.Generic;
@@ -5317,7 +5319,7 @@ namespace APT.BaseData.Services.DomainServices
///
private bool PersonalApprove(string id)
{
- var entity = GetEntity(id);
+ var entity = GetEntity(id, new string[] { "Nav_Details.Nav_Areas", "Nav_Details.Nav_Identifyings" });
entity.STATUS = FOPreMeetingStatusEnum.归档;
T_HM_NOTICE_RELEASE model = new T_HM_NOTICE_RELEASE();
List noticefiles = new List();
@@ -5391,6 +5393,217 @@ namespace APT.BaseData.Services.DomainServices
sendUser = (Guid)GetEntity(t => t.NAME == "综合部").USER_ID;
sendUserName = GetEntity(sendUser.ToString()).NAME;
}
+ else
+ {
+ Guid depId = Guid.Empty;
+ List risks = new List();
+ List listRiskArea = new List();
+ List listRiskIdentifyings = new List();
+ List listRiskDetails = new List();
+ List hazards = new List();
+ List listHazardDetails = new List();
+ List listHazardIdentifyings = new List();
+ List listHazardArea = new List();
+ List taskUsers = new List();
+ List sendNoticeList = null;
+ var departmentFilter = new BaseFilter(orgId);
+ var userIds = entity.Nav_Details.Where(t => t.IS_DELETED == false).Select(t => t.CHARGE_USER_ID);
+ var users = GetEntities(t => userIds.Contains(t.ID) || t.APPROVE_ROLE_ID != null, new BaseFilter(entity.ORG_ID));
+ var depts = GetEntities(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
+ var riskDetails = entity.Nav_Details.Where(t => t.IS_DELETED == false && t.RISK_TYPE == HMRiskTypeEnmu.危险源辨识);
+ var hazardDetails = entity.Nav_Details.Where(t => t.IS_DELETED == false && t.RISK_TYPE == HMRiskTypeEnmu.职业危害辨识);
+ var noticeTitles = new List();
+ var noticeUserIds = new List();
+ var noticeUserNames = new List();
+ var noticeDataIds = new List();
+ var noticeFormCodes = new List();
+ SystemCodeFilter riskCode = new SystemCodeFilter
+ {
+ CodeType = (int)PFCodeRuleType.风险辨识任务编号,
+ Count = riskDetails.Count(),
+ OrgId = entity.ORG_ID
+ };
+ var riskCodes = CodeRuleService.NewGenSerial(riskCode);
+ var riskCodeList = riskCodes.Split(new char[] { ',' });
+ SystemCodeFilter hazardCode = new SystemCodeFilter
+ {
+ CodeType = (int)PFCodeRuleType.风险辨识任务编号,
+ Count = hazardDetails.Count(),
+ OrgId = entity.ORG_ID
+ };
+ var hazardCodes = CodeRuleService.NewGenSerial(hazardCode);
+ var hazardCodeList = hazardCodes.Split(new char[] { ',' });
+ int riskIndex = 0;
+ foreach (var riskDetail in riskDetails)
+ {
+ T_HM_RISK_TASK riskTask = new T_HM_RISK_TASK();
+ riskTask.ID = Guid.NewGuid();
+ var user = users.FirstOrDefault(t => t.ID == riskDetail.CHARGE_USER_ID);
+ if (user != null)
+ riskTask.INITIATING_DEPARTMENT = user.DEPARTMENT_ID;
+ riskTask.CODE = riskCodeList[riskIndex];
+ riskIndex++;
+ riskTask.START_TIME = (DateTime)riskDetail.START_TIME;
+ riskTask.END_TIME = (DateTime)riskDetail.END_TIME;
+ riskTask.LEVEL = riskDetail.LEVEL;
+ riskTask.ORG_ID = riskDetail.ORG_ID;
+ riskTask.LIABLE_USER_ID = riskDetail.CHARGE_USER_ID;
+ riskTask.REQUEST_ID = GetEntity(t => true).ID;
+ riskTask.PLAN_ID = entity.ID;
+ if (riskDetail.Nav_Areas.Where(t => t.IS_DELETED == false).Any())
+ {
+ var levels = riskDetail.LEVEL.Split("_").Where(t => t != "");
+ var Nav_Areas = riskDetail.Nav_Areas.Where(t => t.IS_DELETED == false);
+ foreach (var Area in Nav_Areas)
+ {
+ T_HM_RISK_TASK_AREA area = new T_HM_RISK_TASK_AREA();
+ area.ORG_ID = entity.ORG_ID;
+ area.AREA_ID = Area.AREA_ID;
+ area.TASK_ID = riskTask.ID;
+ listRiskArea.Add(area);
+ foreach (var level in levels)
+ {
+ var sendUsers = GetEntities(t => t.AREA_ID == Area.AREA_ID && t.Nav_DepartmentLiable.IS_DELETED == false && t.DEPARTMENT_LIABLE_ID != null && t.LEVEL == (FMDepartmentType)int.Parse(level), new BaseFilter(entity.ORG_ID)).Select(t => new { t.DEPARTMENT_LIABLE_ID }).Distinct();
+ if (sendUsers.Any())
+ {
+ T_HM_RISK_TASK_DETAIL taskDetail = new T_HM_RISK_TASK_DETAIL();
+ taskDetail.ORG_ID = riskDetail.ORG_ID;
+ taskDetail.AREA_ID = Area.AREA_ID;
+ taskDetail.LEVEL = (FMDepartmentType)int.Parse(level);
+ taskDetail.TASK_ID = riskTask.ID;
+ taskDetail.ID = Guid.NewGuid();
+ var record_user = Guid.Empty;
+ var index = 0;
+ foreach (var sendUserItem in sendUsers)
+ {
+ T_HM_RISK_TASK_USER taskUser = new T_HM_RISK_TASK_USER();
+ taskUser.TASK_DETAIL_ID = taskDetail.ID;
+ depId = (Guid)sendUserItem.DEPARTMENT_LIABLE_ID;
+ var depChargeUser = depts.FirstOrDefault(t => t.ID == depId);
+ if (depChargeUser.USER_ID == null)
+ {
+ throw new Exception(depChargeUser.NAME + "在组织架构中未找到负责人!");
+ }
+ taskUser.USER_ID = (Guid)depChargeUser.USER_ID;
+ var taskUsersCount = taskUsers.Count(t => t.TASK_DETAIL_ID == taskDetail.ID && t.USER_ID == taskUser.USER_ID);//查询是否有插入避免豫鹭有重复人员添加
+ if (taskUsersCount == 0)
+ {
+ taskUser.ORG_ID = entity.ORG_ID;
+ taskUser.ROW_NO = index;
+ if (index == 0)
+ {
+ record_user = taskUser.USER_ID;
+ }
+ index++;
+ taskUsers.Add(taskUser);
+ }
+ }
+ taskDetail.RECORD_USER_ID = record_user;
+ taskDetail.DEAL_STATUS = (int)FOUserShiftStatusEnum.待处理;
+ listRiskDetails.Add(taskDetail);
+ }
+ }
+
+ }
+
+ riskDetail.Nav_Identifyings.ForEach(t =>
+ {
+ T_HM_RISK_TASK_IDENTIFYING identifying = new T_HM_RISK_TASK_IDENTIFYING();
+ identifying.ORG_ID = entity.ORG_ID;
+ identifying.IDENTIFYING_ID = t.IDENTIFYING_ID;
+ identifying.TASK_ID = riskTask.ID;
+ listRiskIdentifyings.Add(identifying);
+
+ });
+ }
+ noticeTitles.Add("危险源辨识任务");
+ noticeDataIds.Add(riskTask.ID);
+ noticeUserIds.Add((Guid)riskDetail.CHARGE_USER_ID);
+ noticeUserNames.Add(user.NAME);
+ noticeFormCodes.Add("HM062");
+ risks.Add(riskTask);
+ }
+ int hazardIndex = 0;
+ foreach (var hazardDetail in hazardDetails)
+ {
+ T_HM_HAZARD_TASK hazardTask = new T_HM_HAZARD_TASK();
+ hazardTask.ID = Guid.NewGuid();
+ var user = users.FirstOrDefault(t => t.ID == hazardDetail.CHARGE_USER_ID);
+ if (user != null)
+ hazardTask.INITIATING_DEPARTMENT = user.DEPARTMENT_ID;
+ hazardTask.CODE = hazardCodeList[hazardIndex];
+ hazardTask.START_TIME = (DateTime)hazardDetail.START_TIME;
+ hazardTask.END_TIME = (DateTime)hazardDetail.END_TIME;
+ hazardTask.LEVEL = "0";
+ hazardTask.ORG_ID = entity.ORG_ID;
+ hazardTask.LIABLE_USER_ID = hazardDetail.CHARGE_USER_ID;
+ hazardTask.PLAN_ID = entity.ID;
+ hazardDetail.Nav_Areas.ForEach(t =>
+ {
+ T_HM_HAZARD_TASK_AREA area = new T_HM_HAZARD_TASK_AREA();
+ area.ORG_ID = entity.ORG_ID;
+ area.AREA_ID = t.AREA_ID;
+ area.TASK_ID = hazardTask.ID;
+ listHazardArea.Add(area);
+ T_HM_HAZARD_TASK_DETAIL taskDetail = new T_HM_HAZARD_TASK_DETAIL();
+ taskDetail.ORG_ID = entity.ORG_ID;
+ taskDetail.AREA_ID = t.AREA_ID;
+ taskDetail.TASK_ID = hazardTask.ID;
+ taskDetail.RECORD_USER_ID = null;
+ taskDetail.DEAL_STATUS = (int)FOUserShiftStatusEnum.待处理;
+ listHazardDetails.Add(taskDetail);
+ });
+
+ if (hazardDetail.Nav_Identifyings != null && hazardDetail.Nav_Identifyings.Any())
+ {
+ hazardDetail.Nav_Identifyings.ForEach(t =>
+ {
+ T_HM_HAZARD_TASK_IDENTIFYING identifying = new T_HM_HAZARD_TASK_IDENTIFYING();
+ identifying.ORG_ID = entity.ORG_ID;
+ identifying.IDENTIFYING_ID = t.IDENTIFYING_ID;
+ identifying.TASK_ID = hazardTask.ID;
+ listHazardIdentifyings.Add(identifying);
+ });
+ }
+ noticeTitles.Add("职业危害辨识任务");
+ noticeDataIds.Add(hazardTask.ID);
+ noticeUserIds.Add((Guid)hazardDetail.CHARGE_USER_ID);
+ noticeUserNames.Add(user.NAME);
+ noticeFormCodes.Add("HM102");
+ hazards.Add(hazardTask);
+ }
+ sendNoticeList = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles, noticeDataIds, entity.ORG_ID, noticeUserIds, noticeUserNames, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(1).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, noticeFormCodes);
+ this.UnifiedCommit(() =>
+ {
+ if (entity != null)
+ UpdateEntityNoCommit(entity);
+ if (files != null && files.Any())
+ BantchSaveEntityNoCommit(files);
+ if (entity != null)
+ UpdateEntityNoCommit(entity); //保存主表
+ if (risks.Any())
+ BantchAddEntityNoCommit(risks);
+ if (listRiskArea.Any())
+ BantchAddEntityNoCommit(listRiskArea);
+ if (listRiskIdentifyings.Any())
+ BantchAddEntityNoCommit(listRiskIdentifyings);
+ if (listRiskDetails.Any())
+ BantchAddEntityNoCommit(listRiskDetails);
+ if (hazards.Any())
+ BantchAddEntityNoCommit(hazards);
+ if (listHazardArea.Any())
+ BantchAddEntityNoCommit(listHazardArea);
+ if (listHazardIdentifyings.Any())
+ BantchAddEntityNoCommit(listHazardIdentifyings);
+ if (listHazardDetails.Any())
+ BantchAddEntityNoCommit(listHazardDetails);
+ if (taskUsers.Any())
+ BantchAddEntityNoCommit(taskUsers);
+ if (sendNoticeList != null && sendNoticeList.Any())
+ BantchAddEntityNoCommit(sendNoticeList);
+ });
+ return true;
+ }
model.RELEASE_USER_ID = sendUser;
NotificationTaskService.SendNotificationTask("风险评价计划发布", model.ID, orgId, sendUser, sendUserName,
DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.审批, "HM002", () =>
diff --git a/APT.MicroApi/APT.HM.WebApi/Controllers/Api/NoticeReleaseController.cs b/APT.MicroApi/APT.HM.WebApi/Controllers/Api/NoticeReleaseController.cs
index e74b940..1f48b6b 100644
--- a/APT.MicroApi/APT.HM.WebApi/Controllers/Api/NoticeReleaseController.cs
+++ b/APT.MicroApi/APT.HM.WebApi/Controllers/Api/NoticeReleaseController.cs
@@ -51,7 +51,6 @@ namespace APT.HM.WebApi.Controllers.Api
entity.RELEAS_DEPARTMENT_ID = user.DEPARTMENT_ID;
}
List sendNotices = null;
- T_FM_NOTIFICATION_TASK sendChargeNotice = null;
T_FM_NOTIFICATION_TASK finishNotice = null;
Guid depId = Guid.Empty;
Guid approveRoldId = Guid.Empty;
@@ -268,8 +267,6 @@ namespace APT.HM.WebApi.Controllers.Api
BantchAddEntityNoCommit(sendNotices);
if (finishNotice != null)
UpdateEntityNoCommit(finishNotice);
- if (sendChargeNotice != null)
- UpdateEntityNoCommit(sendChargeNotice);
if (entity != null)
UpdateEntityNoCommit(entity); //保存主表
if (risks.Any())
diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/HMController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/HMController.cs
index 93fd6a6..23ad27c 100644
--- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/HMController.cs
+++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/HMController.cs
@@ -222,7 +222,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP
{
throw new Exception("未找到安环部负责人!");
}
- NotificationTaskService.SendNotificationTask(DateTime.Now.Year.ToString() + "年度风险评价计划", plan.ID, filter.GetOrgId(), UserID, UserName, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), 0, "HM043", () =>
+ NotificationTaskService.SendNotificationTask(DateTime.Now.Year.ToString() + isRun.Cycle.GetDescription() +"风险评价计划", plan.ID, filter.GetOrgId(), UserID, UserName, DateTime.Now, DateTime.Parse(DateTime.Now.AddMonths(1).ToShortDateString() + " 23:59:59"), 0, "HM043", () =>
{
AddEntityNoCommit(plan);
UpdateEntityNoCommit(isRun, "START_TIME");