修改触发逻辑
This commit is contained in:
		
							parent
							
								
									937f0032b6
								
							
						
					
					
						commit
						3bc65344be
					
				@ -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
 | 
			
		||||
        /// <returns></returns> 
 | 
			
		||||
        private bool PersonalApprove(string id)
 | 
			
		||||
        {
 | 
			
		||||
            var entity = GetEntity<T_HM_EVALUATION_PLAN>(id);
 | 
			
		||||
            var entity = GetEntity<T_HM_EVALUATION_PLAN>(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<T_HM_NOTICE_RELEASE_FILE> noticefiles = new List<T_HM_NOTICE_RELEASE_FILE>();
 | 
			
		||||
@ -5391,6 +5393,217 @@ namespace APT.BaseData.Services.DomainServices
 | 
			
		||||
                sendUser = (Guid)GetEntity<T_FM_DEPARTMENT>(t => t.NAME == "综合部").USER_ID;
 | 
			
		||||
                sendUserName = GetEntity<T_FM_USER>(sendUser.ToString()).NAME;
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Guid depId = Guid.Empty;
 | 
			
		||||
                List<T_HM_RISK_TASK> risks = new List<T_HM_RISK_TASK>();
 | 
			
		||||
                List<T_HM_RISK_TASK_AREA> listRiskArea = new List<T_HM_RISK_TASK_AREA>();
 | 
			
		||||
                List<T_HM_RISK_TASK_IDENTIFYING> listRiskIdentifyings = new List<T_HM_RISK_TASK_IDENTIFYING>();
 | 
			
		||||
                List<T_HM_RISK_TASK_DETAIL> listRiskDetails = new List<T_HM_RISK_TASK_DETAIL>();
 | 
			
		||||
                List<T_HM_HAZARD_TASK> hazards = new List<T_HM_HAZARD_TASK>();
 | 
			
		||||
                List<T_HM_HAZARD_TASK_DETAIL> listHazardDetails = new List<T_HM_HAZARD_TASK_DETAIL>();
 | 
			
		||||
                List<T_HM_HAZARD_TASK_IDENTIFYING> listHazardIdentifyings = new List<T_HM_HAZARD_TASK_IDENTIFYING>();
 | 
			
		||||
                List<T_HM_HAZARD_TASK_AREA> listHazardArea = new List<T_HM_HAZARD_TASK_AREA>();
 | 
			
		||||
                List<T_HM_RISK_TASK_USER> taskUsers = new List<T_HM_RISK_TASK_USER>();
 | 
			
		||||
                List<T_FM_NOTIFICATION_TASK> 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_FM_USER>(t => userIds.Contains(t.ID) || t.APPROVE_ROLE_ID != null, new BaseFilter(entity.ORG_ID));
 | 
			
		||||
                var depts = GetEntities<T_FM_DEPARTMENT>(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<string>();
 | 
			
		||||
                var noticeUserIds = new List<Guid>();
 | 
			
		||||
                var noticeUserNames = new List<string>();
 | 
			
		||||
                var noticeDataIds = new List<Guid>();
 | 
			
		||||
                var noticeFormCodes = new List<string>();
 | 
			
		||||
                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_HM_REQUEST>(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_HM_EVALUATE_RISK>(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", () =>
 | 
			
		||||
 | 
			
		||||
@ -51,7 +51,6 @@ namespace APT.HM.WebApi.Controllers.Api
 | 
			
		||||
                        entity.RELEAS_DEPARTMENT_ID = user.DEPARTMENT_ID;
 | 
			
		||||
                }
 | 
			
		||||
                List<T_FM_NOTIFICATION_TASK> 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())
 | 
			
		||||
 | 
			
		||||
@ -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");
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user