826 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			826 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using APT.BaseData.Domain.Entities.FM;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Enums;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Entities;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.IServices;
							 | 
						|||
| 
								 | 
							
								using APT.Infrastructure.Core;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Entities.FO;
							 | 
						|||
| 
								 | 
							
								using APT.Utility;
							 | 
						|||
| 
								 | 
							
								using Microsoft.AspNetCore.Mvc;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.IServices.FM;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Entities.HM;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Enums;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Entities.PF;
							 | 
						|||
| 
								 | 
							
								using Microsoft.AspNetCore.JsonPatch.Operations;
							 | 
						|||
| 
								 | 
							
								using NPOI.SS.Formula.Functions;
							 | 
						|||
| 
								 | 
							
								using Microsoft.EntityFrameworkCore.Metadata.Internal;
							 | 
						|||
| 
								 | 
							
								using Microsoft.CodeAnalysis;
							 | 
						|||
| 
								 | 
							
								using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
							 | 
						|||
| 
								 | 
							
								using System.Diagnostics.Eventing.Reader;
							 | 
						|||
| 
								 | 
							
								using System.Runtime.Intrinsics.Arm;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Services.Services.FM;
							 | 
						|||
| 
								 | 
							
								using APT.WebApi.Models;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace APT.PP.WebApi.Controllers.Api.PP
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    /// <summary>
							 | 
						|||
| 
								 | 
							
								    /// 风险管理跑批任务
							 | 
						|||
| 
								 | 
							
								    /// </summary>
							 | 
						|||
| 
								 | 
							
								    [Route("api/PP/HMController")]
							 | 
						|||
| 
								 | 
							
								    [TypeFilter(typeof(CustomActionFilterAttribute))]
							 | 
						|||
| 
								 | 
							
								    public class HMController : AuthorizeApiController<T_FM_BASE_CONFIG>
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        IFMNotificationTaskService NotificationTaskService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IPFCodeRuleService CodeRuleService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IFMDepartmentService DepartmentService { get; set; }
							 | 
						|||
| 
								 | 
							
								        public HMController(IFMNotificationTaskService notificationTaskService, IPFCodeRuleService codeRuleService, IFMDepartmentService departmentService)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            NotificationTaskService = notificationTaskService;
							 | 
						|||
| 
								 | 
							
								            CodeRuleService = codeRuleService;
							 | 
						|||
| 
								 | 
							
								            DepartmentService = departmentService;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 生成年度风险评价计划
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("CreateAnnualRiskEvaluatePlan")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> CreateAnnualRiskEvaluatePlan([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var orgId = filter.GetOrgId();
							 | 
						|||
| 
								 | 
							
								                var isRun = GetEntities<T_HM_EVALUATION_SCHEDULE>(null, new BaseFilter(filter.GetOrgId())).FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                if (isRun != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var today = DateTime.Now.ToShortDateString();
							 | 
						|||
| 
								 | 
							
								                    var runDate1 = isRun.START_TIME.ToShortDateString();
							 | 
						|||
| 
								 | 
							
								                    DateTime tempDate = isRun.START_TIME;
							 | 
						|||
| 
								 | 
							
								                    if (isRun.Cycle == HMCycleEnum.每周)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        tempDate = tempDate.AddDays(7);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (isRun.Cycle == HMCycleEnum.每月)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        tempDate = tempDate.AddMonths(1);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (isRun.Cycle == HMCycleEnum.每季度)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        tempDate = tempDate.AddMonths(3);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (isRun.Cycle == HMCycleEnum.每年)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        tempDate = tempDate.AddYears(1);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    var runDate2 = tempDate.ToShortDateString();
							 | 
						|||
| 
								 | 
							
								                    if (today.Equals(runDate1) || today.Equals(runDate2) || isRun.Cycle == HMCycleEnum.每天)
							 | 
						|||
| 
								 | 
							
								                    //if(true)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        isRun.START_TIME = tempDate;
							 | 
						|||
| 
								 | 
							
								                        T_HM_EVALUATION_PLAN plan = new T_HM_EVALUATION_PLAN();
							 | 
						|||
| 
								 | 
							
								                        plan.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                        plan.EVALUATION_DATE = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                        plan.STATUS = (int)FOPreMeetingStatusEnum.草稿;
							 | 
						|||
| 
								 | 
							
								                        plan.ORG_ID = filter.GetOrgId();
							 | 
						|||
| 
								 | 
							
								                        plan.DOCUMENT_NAME = "年度风险评价计划";
							 | 
						|||
| 
								 | 
							
								                        List<T_HM_EVALUATION_DETAIL> riskEvaluationDetails = new List<T_HM_EVALUATION_DETAIL>();
							 | 
						|||
| 
								 | 
							
								                        List<T_HM_EVALUATION_DETAIL_IDENTIFYING> riskEvaluationDetailIdentifyings = new List<T_HM_EVALUATION_DETAIL_IDENTIFYING>();
							 | 
						|||
| 
								 | 
							
								                        List<T_HM_EVALUATION_DETAIL_AREA> riskEvaluationDetailAreas = new List<T_HM_EVALUATION_DETAIL_AREA>();
							 | 
						|||
| 
								 | 
							
								                        var allDeps = GetEntities<T_FM_DEPARTMENT>(t => t.DEPARTMENT_TYPE == (int)FMDepartmentType.部门, new BaseFilter(orgId));//查出所有部门级
							 | 
						|||
| 
								 | 
							
								                        var DBfilter = new BaseFilter(orgId);
							 | 
						|||
| 
								 | 
							
								                        DBfilter.SelectField = new string[] { "AREA_ID", "LEVEL", "DEPARTMENT_LIABLE_ID", "IDENTIFYING_ID" };
							 | 
						|||
| 
								 | 
							
								                        var riskDB = GetEntities<T_HM_EVALUATE_RISK>(t => t.STATUS == 0 && t.DEPARTMENT_LIABLE_ID != null, DBfilter);
							 | 
						|||
| 
								 | 
							
								                        var hazardDB = GetEntities<T_HM_EVALUATE_HAZARD>(t => t.STATUS == 0 && t.DEPARTMENT_LIABLE_ID != null, DBfilter);
							 | 
						|||
| 
								 | 
							
								                        foreach (var dep in allDeps)//循环部门,查出部门下所有区域和层级
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            List<Guid> departmentIds = new List<Guid>() { dep.ID };
							 | 
						|||
| 
								 | 
							
								                            DepartmentService.GetDepartmentIds(filter.GetOrgId(), new List<Guid>() { dep.ID }, ref departmentIds);
							 | 
						|||
| 
								 | 
							
								                            var areas = riskDB.Where(t => departmentIds.Contains((Guid)t.DEPARTMENT_LIABLE_ID)).Select(t => t.AREA_ID).Distinct();
							 | 
						|||
| 
								 | 
							
								                            var allLevels = riskDB.Where(t => departmentIds.Contains((Guid)t.DEPARTMENT_LIABLE_ID)).Select(t => t.LEVEL).Distinct();
							 | 
						|||
| 
								 | 
							
								                            var allIdentifyings = riskDB.Where(t => departmentIds.Contains((Guid)t.DEPARTMENT_LIABLE_ID)).Select(t => t.IDENTIFYING_ID).Distinct();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            T_HM_EVALUATION_DETAIL RiskEvaluationDetail1 = new T_HM_EVALUATION_DETAIL();
							 | 
						|||
| 
								 | 
							
								                            RiskEvaluationDetail1.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                            RiskEvaluationDetail1.ORG_ID = orgId;
							 | 
						|||
| 
								 | 
							
								                            RiskEvaluationDetail1.PLAN_ID = plan.ID;
							 | 
						|||
| 
								 | 
							
								                            RiskEvaluationDetail1.RISK_TYPE = HMRiskTypeEnmu.危险源辨识;
							 | 
						|||
| 
								 | 
							
								                            if (dep.DEPARTMENT_TYPE == (int)FMDepartmentType.公司)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail1.CHARGE_USER_ID = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部负责人").ID; ;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail1.CHARGE_USER_ID = dep.USER_ID;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            RiskEvaluationDetail1.START_TIME = null;
							 | 
						|||
| 
								 | 
							
								                            RiskEvaluationDetail1.END_TIME = null;
							 | 
						|||
| 
								 | 
							
								                            RiskEvaluationDetail1.CYCLE = HMCycleEnum.每月;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            var levels = "_";
							 | 
						|||
| 
								 | 
							
								                            foreach (var db in allLevels)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (db == FMDepartmentType.公司)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    levels += "3_";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else if (db == FMDepartmentType.部门)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    levels += "0_";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else if (db == FMDepartmentType.车间)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    levels += "1_";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else if (db == FMDepartmentType.班组)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    levels += "2_";
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (levels != "_")
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail1.LEVEL = levels;
							 | 
						|||
| 
								 | 
							
								                                areas.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_EVALUATION_DETAIL_AREA area = new T_HM_EVALUATION_DETAIL_AREA();
							 | 
						|||
| 
								 | 
							
								                                    area.ORG_ID = orgId;
							 | 
						|||
| 
								 | 
							
								                                    area.DETAIL_ID = RiskEvaluationDetail1.ID;
							 | 
						|||
| 
								 | 
							
								                                    area.AREA_ID = (Guid)t;
							 | 
						|||
| 
								 | 
							
								                                    riskEvaluationDetailAreas.Add(area);
							 | 
						|||
| 
								 | 
							
								                                });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                allIdentifyings.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_EVALUATION_DETAIL_IDENTIFYING identifying = new T_HM_EVALUATION_DETAIL_IDENTIFYING();
							 | 
						|||
| 
								 | 
							
								                                    identifying.ORG_ID = orgId;
							 | 
						|||
| 
								 | 
							
								                                    identifying.DETAIL_ID = RiskEvaluationDetail1.ID;
							 | 
						|||
| 
								 | 
							
								                                    identifying.IDENTIFYING_ID = (Guid)t;
							 | 
						|||
| 
								 | 
							
								                                    riskEvaluationDetailIdentifyings.Add(identifying);
							 | 
						|||
| 
								 | 
							
								                                });
							 | 
						|||
| 
								 | 
							
								                                riskEvaluationDetails.Add(RiskEvaluationDetail1);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            var hazardAreas = hazardDB.Where(t => departmentIds.Contains((Guid)t.DEPARTMENT_LIABLE_ID)).Select(t => t.AREA_ID).Distinct();
							 | 
						|||
| 
								 | 
							
								                            var hazardIdentifyings = hazardDB.Where(t => departmentIds.Contains((Guid)t.DEPARTMENT_LIABLE_ID)).Select(t => t.IDENTIFYING_ID).Distinct();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            if (hazardAreas.Any())
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                T_HM_EVALUATION_DETAIL RiskEvaluationDetail2 = new T_HM_EVALUATION_DETAIL();
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.LEVEL = "0";
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.ORG_ID = orgId;
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.PLAN_ID = plan.ID;
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.RISK_TYPE = HMRiskTypeEnmu.职业危害辨识;
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.CHARGE_USER_ID = dep.USER_ID;
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.START_TIME = null;
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.END_TIME = null;
							 | 
						|||
| 
								 | 
							
								                                RiskEvaluationDetail2.CYCLE = HMCycleEnum.每月;
							 | 
						|||
| 
								 | 
							
								                                foreach (var hazardarea in hazardAreas)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_EVALUATION_DETAIL_AREA area = new T_HM_EVALUATION_DETAIL_AREA();
							 | 
						|||
| 
								 | 
							
								                                    area.ORG_ID = orgId;
							 | 
						|||
| 
								 | 
							
								                                    area.DETAIL_ID = RiskEvaluationDetail2.ID;
							 | 
						|||
| 
								 | 
							
								                                    area.AREA_ID = (Guid)hazardarea;
							 | 
						|||
| 
								 | 
							
								                                    riskEvaluationDetailAreas.Add(area);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                hazardIdentifyings.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_EVALUATION_DETAIL_IDENTIFYING identifying = new T_HM_EVALUATION_DETAIL_IDENTIFYING();
							 | 
						|||
| 
								 | 
							
								                                    identifying.ORG_ID = orgId;
							 | 
						|||
| 
								 | 
							
								                                    identifying.DETAIL_ID = RiskEvaluationDetail2.ID;
							 | 
						|||
| 
								 | 
							
								                                    identifying.IDENTIFYING_ID = t;
							 | 
						|||
| 
								 | 
							
								                                    riskEvaluationDetailIdentifyings.Add(identifying);
							 | 
						|||
| 
								 | 
							
								                                });
							 | 
						|||
| 
								 | 
							
								                                riskEvaluationDetails.Add(RiskEvaluationDetail2);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        Guid UserID;
							 | 
						|||
| 
								 | 
							
								                        string UserName;
							 | 
						|||
| 
								 | 
							
								                        T_FM_USER user = null;
							 | 
						|||
| 
								 | 
							
								                        if (isRun.APPROVE_ROLE_ID != null && isRun.APPROVE_ROLE_ID != Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            user = GetEntity<T_FM_USER>(t => t.APPROVE_ROLE_ID == isRun.APPROVE_ROLE_ID);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            user = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部负责人");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (user != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            UserID = user.ID;
							 | 
						|||
| 
								 | 
							
								                            UserName = user.NAME;
							 | 
						|||
| 
								 | 
							
								                            plan.RELEASE_USER_ID = user.ID;
							 | 
						|||
| 
								 | 
							
								                            plan.CREATE_TIME = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            throw new Exception("未找到安环部负责人!");
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        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");
							 | 
						|||
| 
								 | 
							
								                            if (riskEvaluationDetails != null && riskEvaluationDetails.Any())
							 | 
						|||
| 
								 | 
							
								                                BantchAddEntityNoCommit(riskEvaluationDetails);
							 | 
						|||
| 
								 | 
							
								                            if (riskEvaluationDetailIdentifyings != null && riskEvaluationDetailIdentifyings.Any())
							 | 
						|||
| 
								 | 
							
								                                BantchAddEntityNoCommit(riskEvaluationDetailIdentifyings);
							 | 
						|||
| 
								 | 
							
								                            if (riskEvaluationDetailAreas != null && riskEvaluationDetailAreas.Any())
							 | 
						|||
| 
								 | 
							
								                                BantchAddEntityNoCommit(riskEvaluationDetailAreas);
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 更新年度风险评价计划
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("updateEvaluateTime")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> updateEvaluateTime([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //BaseFilter baseFilter = new BaseFilter(filter.GetOrgId());
							 | 
						|||
| 
								 | 
							
								                //baseFilter.Include = new string[] { "Nav_Details" };
							 | 
						|||
| 
								 | 
							
								                //var evaluations = GetEntities<T_HM_RISK_EVALUATION>(t => t.ANNUAL.Year == DateTime.Now.Year, baseFilter);
							 | 
						|||
| 
								 | 
							
								                //var usersGuids = new List<Guid?>();
							 | 
						|||
| 
								 | 
							
								                //foreach (var item in evaluations)
							 | 
						|||
| 
								 | 
							
								                //{
							 | 
						|||
| 
								 | 
							
								                //    foreach (var item1 in item.Nav_Details)
							 | 
						|||
| 
								 | 
							
								                //    {
							 | 
						|||
| 
								 | 
							
								                //        DateTime d1 = Convert.ToDateTime(DateTime.Now);
							 | 
						|||
| 
								 | 
							
								                //        DateTime d2 = Convert.ToDateTime(item1.START_TIME);
							 | 
						|||
| 
								 | 
							
								                //        switch (item1.CYCLE)
							 | 
						|||
| 
								 | 
							
								                //        {
							 | 
						|||
| 
								 | 
							
								                //            case HMCycleEnum.每天:
							 | 
						|||
| 
								 | 
							
								                //                if ((d1 - d2).Days % 1 == 0)
							 | 
						|||
| 
								 | 
							
								                //                {
							 | 
						|||
| 
								 | 
							
								                //                    usersGuids.Add(item1.CHARGE_PERSON_ID);
							 | 
						|||
| 
								 | 
							
								                //                }
							 | 
						|||
| 
								 | 
							
								                //                break;
							 | 
						|||
| 
								 | 
							
								                //            case HMCycleEnum.每周:
							 | 
						|||
| 
								 | 
							
								                //                if ((d1 - d2).Days % 7 == 0)
							 | 
						|||
| 
								 | 
							
								                //                {
							 | 
						|||
| 
								 | 
							
								                //                    usersGuids.Add(item1.CHARGE_PERSON_ID);
							 | 
						|||
| 
								 | 
							
								                //                }
							 | 
						|||
| 
								 | 
							
								                //                break;
							 | 
						|||
| 
								 | 
							
								                //            case HMCycleEnum.每月:
							 | 
						|||
| 
								 | 
							
								                //                if ((d1 - d2).Days % 30 == 0)
							 | 
						|||
| 
								 | 
							
								                //                {
							 | 
						|||
| 
								 | 
							
								                //                    usersGuids.Add(item1.CHARGE_PERSON_ID);
							 | 
						|||
| 
								 | 
							
								                //                }
							 | 
						|||
| 
								 | 
							
								                //                break;
							 | 
						|||
| 
								 | 
							
								                //            case HMCycleEnum.每季度:
							 | 
						|||
| 
								 | 
							
								                //                if ((d1 - d2).Days % 90 == 0)
							 | 
						|||
| 
								 | 
							
								                //                {
							 | 
						|||
| 
								 | 
							
								                //                    usersGuids.Add(item1.CHARGE_PERSON_ID);
							 | 
						|||
| 
								 | 
							
								                //                }
							 | 
						|||
| 
								 | 
							
								                //                break;
							 | 
						|||
| 
								 | 
							
								                //            case HMCycleEnum.每年:
							 | 
						|||
| 
								 | 
							
								                //                if ((d1 - d2).Days % 365 == 0)
							 | 
						|||
| 
								 | 
							
								                //                {
							 | 
						|||
| 
								 | 
							
								                //                    usersGuids.Add(item1.CHARGE_PERSON_ID);
							 | 
						|||
| 
								 | 
							
								                //                }
							 | 
						|||
| 
								 | 
							
								                //                break;
							 | 
						|||
| 
								 | 
							
								                //        }
							 | 
						|||
| 
								 | 
							
								                //    }
							 | 
						|||
| 
								 | 
							
								                //}
							 | 
						|||
| 
								 | 
							
								                //var notificationTasks = GetEntities<T_FM_NOTIFICATION_TASK>(t => t.NOTICE_STATUS == 0 && (t.SOURCE_FORMCODE == "HM062" || t.SOURCE_FORMCODE == "HM102") && usersGuids.Contains(t.USER_ID), new BaseFilter(filter.GetOrgId())).ToList();
							 | 
						|||
| 
								 | 
							
								                //foreach (var item in notificationTasks)
							 | 
						|||
| 
								 | 
							
								                //{
							 | 
						|||
| 
								 | 
							
								                //    item.TASK_STARTDT = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                //    item.TASK_ENDDT = DateTime.Now.AddDays(1);
							 | 
						|||
| 
								 | 
							
								                //}
							 | 
						|||
| 
								 | 
							
								                //this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                //{
							 | 
						|||
| 
								 | 
							
								                //    BantchUpdateEntityNoCommit(notificationTasks, "TASK_STARTDT", "TASK_ENDDT");
							 | 
						|||
| 
								 | 
							
								                //});
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 更新年度风险评价计划
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("updateOperationLink")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> updateOperationLink([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                List<T_HM_OPERATION_TASK_SAFE_CONFIRM> safeConfs = new List<T_HM_OPERATION_TASK_SAFE_CONFIRM>();
							 | 
						|||
| 
								 | 
							
								                List<T_HM_OPERATION_TASK_SAFE_MEASURE> safeMeas = new List<T_HM_OPERATION_TASK_SAFE_MEASURE>();
							 | 
						|||
| 
								 | 
							
								                List<T_HM_OPERATION_TASK_DEAL_MEASURE> dealMeas = new List<T_HM_OPERATION_TASK_DEAL_MEASURE>();
							 | 
						|||
| 
								 | 
							
								                var operationLink = this.GetEntities<T_HM_OPERATION_LINK>(t => t.IS_RUN == DisableStatusEnum.否, new BaseFilter(filter.OrgId)).ToList();
							 | 
						|||
| 
								 | 
							
								                if (operationLink != null && operationLink.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in operationLink)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.SafeConfirmsStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var conf = item.SafeConfirmsStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
							 | 
						|||
| 
								 | 
							
								                            if (conf.Length > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                foreach (var c in conf)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_OPERATION_TASK_SAFE_CONFIRM safeConf = new T_HM_OPERATION_TASK_SAFE_CONFIRM();
							 | 
						|||
| 
								 | 
							
								                                    safeConf.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                    safeConf.OPERATION_LINK_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                    if (c.Contains(";"))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        var co = c.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
							 | 
						|||
| 
								 | 
							
								                                        if (co.Length > 0)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NAME = co[1];
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NUM = int.Parse(co[0]);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        else
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NAME = c;
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NUM = 1;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        safeConf.NAME = c;
							 | 
						|||
| 
								 | 
							
								                                        safeConf.NUM = 1;
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    safeConfs.Add(safeConf);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.SafeMeasuresStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var conf = item.SafeMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
							 | 
						|||
| 
								 | 
							
								                            if (conf.Length > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                foreach (var c in conf)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_OPERATION_TASK_SAFE_MEASURE safeConf = new T_HM_OPERATION_TASK_SAFE_MEASURE();
							 | 
						|||
| 
								 | 
							
								                                    safeConf.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                    safeConf.OPERATION_LINK_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                    if (c.Contains(";"))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        var co = c.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
							 | 
						|||
| 
								 | 
							
								                                        if (co.Length > 0)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NAME = co[1];
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NUM = int.Parse(co[0]);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        else
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NAME = c;
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NUM = 1;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        safeConf.NAME = c;
							 | 
						|||
| 
								 | 
							
								                                        safeConf.NUM = 1;
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    safeMeas.Add(safeConf);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.DealMeasuresStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var conf = item.DealMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
							 | 
						|||
| 
								 | 
							
								                            if (conf.Length > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                foreach (var c in conf)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_OPERATION_TASK_DEAL_MEASURE safeConf = new T_HM_OPERATION_TASK_DEAL_MEASURE();
							 | 
						|||
| 
								 | 
							
								                                    safeConf.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                    safeConf.OPERATION_LINK_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                    if (c.Contains(";"))
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        var co = c.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
							 | 
						|||
| 
								 | 
							
								                                        if (co.Length > 0)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NAME = co[1];
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NUM = int.Parse(co[0]);
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                        else
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NAME = c;
							 | 
						|||
| 
								 | 
							
								                                            safeConf.NUM = 1;
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    else
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        safeConf.NAME = c;
							 | 
						|||
| 
								 | 
							
								                                        safeConf.NUM = 1;
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                    dealMeas.Add(safeConf);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        item.IS_RUN = DisableStatusEnum.是;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (operationLink != null && operationLink.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchUpdateEntityNoCommit(operationLink);
							 | 
						|||
| 
								 | 
							
								                    if (safeConfs != null && safeConfs.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(safeConfs);
							 | 
						|||
| 
								 | 
							
								                    if (safeMeas != null && safeMeas.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(safeMeas);
							 | 
						|||
| 
								 | 
							
								                    if (dealMeas != null && dealMeas.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchAddEntityNoCommit(dealMeas);
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 导入更新,风险
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("updateHazard")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> updateHazard([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                List<T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES> addINDIVIDUAL = new List<T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES>();
							 | 
						|||
| 
								 | 
							
								                List<T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES> addENGINEERING = new List<T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES>();
							 | 
						|||
| 
								 | 
							
								                List<T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES> addMANAGEMENT = new List<T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES>();
							 | 
						|||
| 
								 | 
							
								                List<T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES> addEDUCATION = new List<T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES>();
							 | 
						|||
| 
								 | 
							
								                List<T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES> addEMERGENCY = new List<T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var INDIVIDUALs = GetEntities<T_HM_INDIVIDUAL_MEASURES>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
							 | 
						|||
| 
								 | 
							
								                var ENGINEERINGs = GetEntities<T_HM_ENGINEERING_MEASURES>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
							 | 
						|||
| 
								 | 
							
								                var MANAGEMENTs = GetEntities<T_HM_MANAGEMENT_MEASURES>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
							 | 
						|||
| 
								 | 
							
								                var EDUCATIONs = GetEntities<T_HM_EDUCATION_MEASURES>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
							 | 
						|||
| 
								 | 
							
								                var EMERGENCYs = GetEntities<T_HM_EMERGENCY_MEASURES>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var operationLink = this.GetEntities<T_HM_EVALUATE_HAZARD>(t => t.STATUS == (int)HMOperationStepEnum.有效, new BaseFilter(filter.OrgId)).ToList();
							 | 
						|||
| 
								 | 
							
								                if (operationLink != null && operationLink.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in operationLink)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.IndividualMeasuresStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.IndividualMeasuresStr != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var isin = INDIVIDUALs.FirstOrDefault(t => t.NAME == item.IndividualMeasuresStr);
							 | 
						|||
| 
								 | 
							
								                                T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES measure = new T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                measure.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                measure.EVALUATE_HAZARD_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                if (isin == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_INDIVIDUAL_MEASURES additem = new T_HM_INDIVIDUAL_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                    additem.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                                    additem.NAME = item.IndividualMeasuresStr;
							 | 
						|||
| 
								 | 
							
								                                    additem.ORG_ID = filter.GetOrgId();
							 | 
						|||
| 
								 | 
							
								                                    measure.INDIVIDUAL_MEASURES_ID = additem.ID;
							 | 
						|||
| 
								 | 
							
								                                    AddEntity(additem);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    measure.INDIVIDUAL_MEASURES_ID = isin.ID;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                addINDIVIDUAL.Add(measure);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.EngineeringMeasuresStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.EngineeringMeasuresStr != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var isin = ENGINEERINGs.FirstOrDefault(t => t.NAME == item.EducationTrainingMeasuresStr);
							 | 
						|||
| 
								 | 
							
								                                T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES measure = new T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                measure.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                measure.EVALUATE_HAZARD_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                if (isin == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_ENGINEERING_MEASURES additem = new T_HM_ENGINEERING_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                    additem.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                                    additem.NAME = item.EngineeringMeasuresStr;
							 | 
						|||
| 
								 | 
							
								                                    additem.ORG_ID = filter.GetOrgId();
							 | 
						|||
| 
								 | 
							
								                                    measure.ENGINEERING_MEASURES_ID = additem.ID;
							 | 
						|||
| 
								 | 
							
								                                    AddEntity(additem);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    measure.ENGINEERING_MEASURES_ID = isin.ID;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                addENGINEERING.Add(measure);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.ManagementMeasuresStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.ManagementMeasuresStr != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var isin = MANAGEMENTs.FirstOrDefault(t => t.NAME == item.ManagementMeasuresStr);
							 | 
						|||
| 
								 | 
							
								                                T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES measure = new T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                measure.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                measure.EVALUATE_HAZARD_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                if (isin == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_MANAGEMENT_MEASURES additem = new T_HM_MANAGEMENT_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                    additem.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                                    additem.NAME = item.ManagementMeasuresStr;
							 | 
						|||
| 
								 | 
							
								                                    additem.ORG_ID = filter.GetOrgId();
							 | 
						|||
| 
								 | 
							
								                                    measure.MANAGEMENT_MEASURES_ID = additem.ID;
							 | 
						|||
| 
								 | 
							
								                                    AddEntity(additem);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    measure.MANAGEMENT_MEASURES_ID = isin.ID;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                addMANAGEMENT.Add(measure);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.EducationTrainingMeasuresStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.EducationTrainingMeasuresStr != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var isin = EDUCATIONs.FirstOrDefault(t => t.NAME == item.EducationTrainingMeasuresStr);
							 | 
						|||
| 
								 | 
							
								                                T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES measure = new T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                measure.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                measure.EVALUATE_HAZARD_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                if (isin == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_EDUCATION_MEASURES additem = new T_HM_EDUCATION_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                    additem.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                                    additem.NAME = item.EducationTrainingMeasuresStr;
							 | 
						|||
| 
								 | 
							
								                                    additem.ORG_ID = filter.GetOrgId();
							 | 
						|||
| 
								 | 
							
								                                    measure.EDUCATION_MEASURES_ID = additem.ID;
							 | 
						|||
| 
								 | 
							
								                                    AddEntity(additem);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    measure.EDUCATION_MEASURES_ID = isin.ID;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                addEDUCATION.Add(measure);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (!string.IsNullOrEmpty(item.EmergencyDisposalMeasuresStr))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.EmergencyDisposalMeasuresStr != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var isin = EMERGENCYs.FirstOrDefault(t => t.NAME == item.EmergencyDisposalMeasuresStr);
							 | 
						|||
| 
								 | 
							
								                                T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES measure = new T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                measure.ORG_ID = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								                                measure.EVALUATE_HAZARD_ID = item.ID;
							 | 
						|||
| 
								 | 
							
								                                if (isin == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    T_HM_EMERGENCY_MEASURES additem = new T_HM_EMERGENCY_MEASURES();
							 | 
						|||
| 
								 | 
							
								                                    additem.ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                                    additem.NAME = item.EmergencyDisposalMeasuresStr;
							 | 
						|||
| 
								 | 
							
								                                    additem.ORG_ID = filter.GetOrgId();
							 | 
						|||
| 
								 | 
							
								                                    measure.EMERGENCY_MEASURES_ID = additem.ID;
							 | 
						|||
| 
								 | 
							
								                                    AddEntity(additem);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    measure.EMERGENCY_MEASURES_ID = isin.ID;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                addEMERGENCY.Add(measure);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (addINDIVIDUAL != null && addINDIVIDUAL.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchAddEntityNoCommit(addINDIVIDUAL);
							 | 
						|||
| 
								 | 
							
								                    if (addENGINEERING != null && addENGINEERING.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchAddEntityNoCommit(addENGINEERING);
							 | 
						|||
| 
								 | 
							
								                    if (addMANAGEMENT != null && addMANAGEMENT.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchAddEntityNoCommit(addMANAGEMENT);
							 | 
						|||
| 
								 | 
							
								                    if (addEDUCATION != null && addEDUCATION.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchAddEntityNoCommit(addEDUCATION);
							 | 
						|||
| 
								 | 
							
								                    if (addEMERGENCY != null && addEMERGENCY.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchAddEntityNoCommit(addEMERGENCY);
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 非班组的每日作业触发
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("everydayTask")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> everydayTask([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var jobs = new List<T_FO_CRUCIAL_LICENSE_JOB>();
							 | 
						|||
| 
								 | 
							
								                var records = new List<T_FO_JOB_EVENT_RECORD>();
							 | 
						|||
| 
								 | 
							
								                var notices = new List<T_FM_NOTIFICATION_TASK>();
							 | 
						|||
| 
								 | 
							
								                var persons = new List<T_FO_JOB_EVENT_PERSON>();
							 | 
						|||
| 
								 | 
							
								                var details = new List<T_FO_JOB_EVENT_DETAIL>();
							 | 
						|||
| 
								 | 
							
								                var flows = new List<T_FO_JOB_EVENT_FLOW>();
							 | 
						|||
| 
								 | 
							
								                var measures = new List<T_FO_JOB_EVENT_MEASURE>();
							 | 
						|||
| 
								 | 
							
								                var jobDetails = new List<T_FO_CRUCIAL_LICENSE_SAFE_CONFIRM>();
							 | 
						|||
| 
								 | 
							
								                var jobFlows = new List<T_FO_CRUCIAL_LICENSE_SAFE_MEASURE>();
							 | 
						|||
| 
								 | 
							
								                var jobMeasures = new List<T_FO_CRUCIAL_LICENSE_DEAL_MEASURE>();
							 | 
						|||
| 
								 | 
							
								                if (DateTime.Now.Hour == 8)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var links = this.GetEntities<T_HM_OPERATION_LINK>(t => t.CYCLE_TYPE == HMCycleTypeEnum.Day && t.STATUS == (int)STATUSEnum.启用, new BaseFilter(filter.OrgId), new string[] { "Nav_WorkPermitType", "Nav_SafeConfirms", "Nav_SafeMeasures", "Nav_DealMeasures" });
							 | 
						|||
| 
								 | 
							
								                    if (links != null && links.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var linkIds = links.Select(t => t.ID).ToList();
							 | 
						|||
| 
								 | 
							
								                        var linkPosts = this.GetEntities<T_HM_OPERATION_LINK_POST>(t => linkIds.Contains(t.OPERATION_LINK_ID), new BaseFilter(filter.OrgId));
							 | 
						|||
| 
								 | 
							
								                        if (linkPosts != null && linkPosts.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var postIds = linkPosts.Select(t => t.POST_ID).Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                            var users = this.GetEntities<T_FM_USER>(t => t.Nav_Department != null && t.Nav_Department.DEPARTMENT_TYPE != 2 && t.Nav_Person != null && postIds.Contains(t.Nav_Person.POST_ID) && t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), new string[] { "Nav_Person" });
							 | 
						|||
| 
								 | 
							
								                            if (users != null && users.Any())
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                foreach (var user in users)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    var postLinkIds = linkPosts.Where(t => t.POST_ID == user.Nav_Person.POST_ID).Select(m => m.OPERATION_LINK_ID).ToList();
							 | 
						|||
| 
								 | 
							
								                                    var postLinks = links.Where(t => postLinkIds.Contains(t.ID)).Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                                    if (postLinks != null && postLinks.Any())
							 | 
						|||
| 
								 | 
							
								                                    {
							 | 
						|||
| 
								 | 
							
								                                        foreach (var link in postLinks)
							 | 
						|||
| 
								 | 
							
								                                        {
							 | 
						|||
| 
								 | 
							
								                                            //许可作业、非许可的关键任务
							 | 
						|||
| 
								 | 
							
								                                            if (link != null && (link.Nav_WorkPermitType != null && link.Nav_WorkPermitType.NAME != "无") || (link.Nav_WorkPermitType != null && link.Nav_WorkPermitType.NAME == "无" && link.IS_IMPORTANT == (int)ISImportantEnum.是))
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                //取审批流水码
							 | 
						|||
| 
								 | 
							
								                                                var sysFilter = new SystemCodeFilter();
							 | 
						|||
| 
								 | 
							
								                                                sysFilter.CodeType = (int)PFCodeRuleType.关键许可作业票编号;
							 | 
						|||
| 
								 | 
							
								                                                sysFilter.Count = 1;
							 | 
						|||
| 
								 | 
							
								                                                sysFilter.OrgId = link.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                var codes = CodeRuleService.NewGenSerial(sysFilter);
							 | 
						|||
| 
								 | 
							
								                                                var codeList = codes.Split(new char[] { ',' });
							 | 
						|||
| 
								 | 
							
								                                                T_FO_CRUCIAL_LICENSE_JOB job = new T_FO_CRUCIAL_LICENSE_JOB();
							 | 
						|||
| 
								 | 
							
								                                                //主表
							 | 
						|||
| 
								 | 
							
								                                                job.CODE = codeList[0];
							 | 
						|||
| 
								 | 
							
								                                                job.ORG_ID = link.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                job.APPLY_USER_ID = user.ID;
							 | 
						|||
| 
								 | 
							
								                                                job.IS_AUTO = (int)ISImportantEnum.是;
							 | 
						|||
| 
								 | 
							
								                                                job.OPERATION_STEP_ID = link.OPERATION_STEP_ID;
							 | 
						|||
| 
								 | 
							
								                                                job.AUDIT_LEVEL = link.AUDIT_LEVEL;
							 | 
						|||
| 
								 | 
							
								                                                jobs.Add(job);
							 | 
						|||
| 
								 | 
							
								                                                //作业前安全确认
							 | 
						|||
| 
								 | 
							
								                                                if (link != null && link.Nav_SafeConfirms != null && link.Nav_SafeConfirms.Any())
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    link.Nav_SafeConfirms.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        T_FO_CRUCIAL_LICENSE_SAFE_CONFIRM detail = new T_FO_CRUCIAL_LICENSE_SAFE_CONFIRM();
							 | 
						|||
| 
								 | 
							
								                                                        detail.CRUCIAL_LICENSE_JOB_ID = job.ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NAME = t.NAME;
							 | 
						|||
| 
								 | 
							
								                                                        detail.ORG_ID = t.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NUM = t.NUM;
							 | 
						|||
| 
								 | 
							
								                                                        jobDetails.Add(detail);
							 | 
						|||
| 
								 | 
							
								                                                    });
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                //作业流程及安全措施
							 | 
						|||
| 
								 | 
							
								                                                if (link != null && link.Nav_SafeMeasures != null && link.Nav_SafeMeasures.Any())
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    link.Nav_SafeMeasures.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        T_FO_CRUCIAL_LICENSE_SAFE_MEASURE detail = new T_FO_CRUCIAL_LICENSE_SAFE_MEASURE();
							 | 
						|||
| 
								 | 
							
								                                                        detail.CRUCIAL_LICENSE_JOB_ID = job.ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NAME = t.NAME;
							 | 
						|||
| 
								 | 
							
								                                                        detail.ORG_ID = t.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NUM = t.NUM;
							 | 
						|||
| 
								 | 
							
								                                                        jobFlows.Add(detail);
							 | 
						|||
| 
								 | 
							
								                                                    });
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                //作业后处理措施
							 | 
						|||
| 
								 | 
							
								                                                if (link != null && link.Nav_DealMeasures != null && link.Nav_DealMeasures.Any())
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    link.Nav_DealMeasures.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        T_FO_CRUCIAL_LICENSE_DEAL_MEASURE detail = new T_FO_CRUCIAL_LICENSE_DEAL_MEASURE();
							 | 
						|||
| 
								 | 
							
								                                                        detail.CRUCIAL_LICENSE_JOB_ID = job.ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NAME = t.NAME;
							 | 
						|||
| 
								 | 
							
								                                                        detail.ORG_ID = t.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NUM = t.NUM;
							 | 
						|||
| 
								 | 
							
								                                                        jobMeasures.Add(detail);
							 | 
						|||
| 
								 | 
							
								                                                    });
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                var noticeTemp = NotificationTaskService.InsertUserNoticeTaskModel("关键许可作业票", job.ID, link.ORG_ID, user.ID, user.NAME, DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                                                DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO017");
							 | 
						|||
| 
								 | 
							
								                                                notices.Add(noticeTemp);
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                            //非许可非关键的一般任务
							 | 
						|||
| 
								 | 
							
								                                            if (link != null && (link.Nav_WorkPermitType == null || (link.Nav_WorkPermitType != null && link.Nav_WorkPermitType.NAME == "无")) && link.IS_IMPORTANT == (int)ISImportantEnum.否)
							 | 
						|||
| 
								 | 
							
								                                            {
							 | 
						|||
| 
								 | 
							
								                                                //取审批流水码
							 | 
						|||
| 
								 | 
							
								                                                var sysFilter = new SystemCodeFilter();
							 | 
						|||
| 
								 | 
							
								                                                sysFilter.CodeType = (int)PFCodeRuleType.一般作业活动记录表编号;
							 | 
						|||
| 
								 | 
							
								                                                sysFilter.Count = 1;
							 | 
						|||
| 
								 | 
							
								                                                sysFilter.OrgId = link.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                var codes = CodeRuleService.NewGenSerial(sysFilter);
							 | 
						|||
| 
								 | 
							
								                                                var codeList = codes.Split(new char[] { ',' });
							 | 
						|||
| 
								 | 
							
								                                                T_FO_JOB_EVENT_RECORD record = new T_FO_JOB_EVENT_RECORD();
							 | 
						|||
| 
								 | 
							
								                                                //主表
							 | 
						|||
| 
								 | 
							
								                                                record.CODE = codeList[0];
							 | 
						|||
| 
								 | 
							
								                                                record.ORG_ID = link.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                record.OPERATION_STEP_ID = link.OPERATION_STEP_ID;
							 | 
						|||
| 
								 | 
							
								                                                record.JOB_DATE = DateTime.Now.Date.ToString();
							 | 
						|||
| 
								 | 
							
								                                                records.Add(record);
							 | 
						|||
| 
								 | 
							
								                                                var userPostIds = users.Where(t => t.Nav_Person.POST_ID == user.Nav_Person.POST_ID).Select(m => m.ID).ToList();
							 | 
						|||
| 
								 | 
							
								                                                //作业人员表
							 | 
						|||
| 
								 | 
							
								                                                if (userPostIds != null && userPostIds.Any())
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    userPostIds.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        T_FO_JOB_EVENT_PERSON person = new T_FO_JOB_EVENT_PERSON();
							 | 
						|||
| 
								 | 
							
								                                                        person.USER_ID = t;
							 | 
						|||
| 
								 | 
							
								                                                        person.JOB_EVENT_RECORD_ID = record.ID;
							 | 
						|||
| 
								 | 
							
								                                                        person.ORG_ID = link.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                        persons.Add(person);
							 | 
						|||
| 
								 | 
							
								                                                    });
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                //作业前安全确认
							 | 
						|||
| 
								 | 
							
								                                                if (link != null && link.Nav_SafeConfirms != null && link.Nav_SafeConfirms.Any())
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    link.Nav_SafeConfirms.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        T_FO_JOB_EVENT_DETAIL detail = new T_FO_JOB_EVENT_DETAIL();
							 | 
						|||
| 
								 | 
							
								                                                        detail.JOB_EVENT_RECORD_ID = record.ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.SafeConfirmsStr = t.NAME;
							 | 
						|||
| 
								 | 
							
								                                                        detail.IS_CONFIRM = false;
							 | 
						|||
| 
								 | 
							
								                                                        detail.ORG_ID = t.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NUM = t.NUM;
							 | 
						|||
| 
								 | 
							
								                                                        details.Add(detail);
							 | 
						|||
| 
								 | 
							
								                                                    });
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                //作业流程及安全措施
							 | 
						|||
| 
								 | 
							
								                                                if (link != null && link.Nav_SafeMeasures != null && link.Nav_SafeMeasures.Any())
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    link.Nav_SafeMeasures.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        T_FO_JOB_EVENT_FLOW detail = new T_FO_JOB_EVENT_FLOW();
							 | 
						|||
| 
								 | 
							
								                                                        detail.JOB_EVENT_RECORD_ID = record.ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.SafeMeasuresStr = t.NAME;
							 | 
						|||
| 
								 | 
							
								                                                        detail.IS_CONFIRM = false;
							 | 
						|||
| 
								 | 
							
								                                                        detail.ORG_ID = t.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NUM = t.NUM;
							 | 
						|||
| 
								 | 
							
								                                                        flows.Add(detail);
							 | 
						|||
| 
								 | 
							
								                                                    });
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                //作业后处理措施
							 | 
						|||
| 
								 | 
							
								                                                if (link != null && link.Nav_DealMeasures != null && link.Nav_DealMeasures.Any())
							 | 
						|||
| 
								 | 
							
								                                                {
							 | 
						|||
| 
								 | 
							
								                                                    link.Nav_DealMeasures.ForEach(t =>
							 | 
						|||
| 
								 | 
							
								                                                    {
							 | 
						|||
| 
								 | 
							
								                                                        T_FO_JOB_EVENT_MEASURE detail = new T_FO_JOB_EVENT_MEASURE();
							 | 
						|||
| 
								 | 
							
								                                                        detail.JOB_EVENT_RECORD_ID = record.ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.DealMeasuresStr = t.NAME;
							 | 
						|||
| 
								 | 
							
								                                                        detail.IS_CONFIRM = false;
							 | 
						|||
| 
								 | 
							
								                                                        detail.ORG_ID = t.ORG_ID;
							 | 
						|||
| 
								 | 
							
								                                                        detail.NUM = t.NUM;
							 | 
						|||
| 
								 | 
							
								                                                        measures.Add(detail);
							 | 
						|||
| 
								 | 
							
								                                                    });
							 | 
						|||
| 
								 | 
							
								                                                }
							 | 
						|||
| 
								 | 
							
								                                                var noticeTemp = NotificationTaskService.InsertUserNoticeTaskModel("作业活动记录表(一般作业)", record.ID, link.ORG_ID, user.ID, user.NAME, DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                                                DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO015");
							 | 
						|||
| 
								 | 
							
								                                                notices.Add(noticeTemp);
							 | 
						|||
| 
								 | 
							
								                                            }
							 | 
						|||
| 
								 | 
							
								                                        }
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (records != null && records.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(records);
							 | 
						|||
| 
								 | 
							
								                    if (jobs != null && jobs.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(jobs);
							 | 
						|||
| 
								 | 
							
								                    if (notices != null && notices.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(notices);
							 | 
						|||
| 
								 | 
							
								                    if (persons != null && persons.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(persons);
							 | 
						|||
| 
								 | 
							
								                    if (details != null && details.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(details);
							 | 
						|||
| 
								 | 
							
								                    if (flows != null && flows.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(flows);
							 | 
						|||
| 
								 | 
							
								                    if (measures != null && measures.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(measures);
							 | 
						|||
| 
								 | 
							
								                    if (jobDetails != null && jobDetails.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(jobDetails);
							 | 
						|||
| 
								 | 
							
								                    if (jobFlows != null && jobFlows.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(jobFlows);
							 | 
						|||
| 
								 | 
							
								                    if (jobMeasures != null && jobMeasures.Any())
							 | 
						|||
| 
								 | 
							
								                        this.BantchSaveEntityNoCommit(jobMeasures);
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |