using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.IServices; using APT.BaseData.Domain.IServices.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.BS; using APT.MS.Domain.Entities.HM; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; namespace APT.HM.WebApi.Controllers.Api { [Route("api/HM/HMEvaluateResult")] public partial class EvaluateResultController : AuthorizeApiController { IFMFlowPermitService MFlowPermitService { get; set; } IPFCodeRuleService CodeRuleService { get; set; } IFMNotificationTaskService NotificationTaskService { get; set; } IPFApproveCallBackService ApproveCallBackService { get; set; } public EvaluateResultController(IFMNotificationTaskService notificationTaskService, IPFCodeRuleService codeRuleService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService) { NotificationTaskService = notificationTaskService; CodeRuleService = codeRuleService; MFlowPermitService = mFlowPermitService; ApproveCallBackService = approveCallBackService; } /// /// 更新 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_HM_EVALUATE_RESULT entity) { return SafeExecute(() => { if (entity.STATUS >= FOPreMeetingStatusEnum.审核中) { throw new Exception("已提交审批不能修改!"); } ICollection risks = null; List workdutys = null; List equipments = null; List facilities = null; List individuals = null; List engineerings = null; List managements = null; List educations = null; List emergencys = null; ICollection hazards = null; List hazardIndividuals = null; List hazardEngineerings = null; List hazardManagements = null; List hazardEducations = null; List hazardEmergencys = null; T_FM_NOTIFICATION_TASK finishNotice = null; if (entity.EVALUATE_TYPE == HMRiskTypeEnmu.危险源辨识) { risks = entity.Nav_Risks; workdutys = new List(); equipments = new List(); facilities = new List(); individuals = new List(); engineerings = new List(); managements = new List(); educations = new List(); emergencys = new List(); risks.ForEach(detail => { if (detail.Nav_EvaluateRiskWorkduty != null) { workdutys.AddRange(detail.Nav_EvaluateRiskWorkduty); detail.Nav_EvaluateRiskWorkduty = null; } if (detail.Nav_EvaluateRiskEquipment != null) { equipments.AddRange(detail.Nav_EvaluateRiskEquipment); detail.Nav_EvaluateRiskEquipment = null; } if (detail.Nav_EvaluateRiskFacilities != null) { facilities.AddRange(detail.Nav_EvaluateRiskFacilities); detail.Nav_EvaluateRiskFacilities = null; } if (detail.Nav_EvaluateRiskIndividualMeasures != null) { individuals.AddRange(detail.Nav_EvaluateRiskIndividualMeasures); detail.Nav_EvaluateRiskIndividualMeasures = null; } if (detail.Nav_EvaluateRiskEngineeringMeasures != null) { engineerings.AddRange(detail.Nav_EvaluateRiskEngineeringMeasures); detail.Nav_EvaluateRiskEngineeringMeasures = null; } if (detail.Nav_EvaluateRiskManagementMeasures != null) { managements.AddRange(detail.Nav_EvaluateRiskManagementMeasures); detail.Nav_EvaluateRiskManagementMeasures = null; } if (detail.Nav_EvaluateRiskEducationMeasures != null) { educations.AddRange(detail.Nav_EvaluateRiskEducationMeasures); detail.Nav_EvaluateRiskEducationMeasures = null; } if (detail.Nav_EvaluateRiskEmergencyMeasures != null) { emergencys.AddRange(detail.Nav_EvaluateRiskEmergencyMeasures); detail.Nav_EvaluateRiskEmergencyMeasures = null; } }); } else { hazards = entity.Nav_Hazards; hazardIndividuals = new List(); hazardEngineerings = new List(); hazardManagements = new List(); hazardEducations = new List(); hazardEmergencys = new List(); hazards.ForEach(detail => { if (detail.Nav_EvaluateHazardIndividualMeasures != null) { hazardIndividuals.AddRange(detail.Nav_EvaluateHazardIndividualMeasures); detail.Nav_EvaluateHazardIndividualMeasures = null; } if (detail.Nav_EvaluateHazardEngineeringMeasures != null) { hazardEngineerings.AddRange(detail.Nav_EvaluateHazardEngineeringMeasures); detail.Nav_EvaluateHazardEngineeringMeasures = null; } if (detail.Nav_EvaluateHazardManagementMeasures != null) { hazardManagements.AddRange(detail.Nav_EvaluateHazardManagementMeasures); detail.Nav_EvaluateHazardManagementMeasures = null; } if (detail.Nav_EvaluateHazardEducationMeasures != null) { hazardEducations.AddRange(detail.Nav_EvaluateHazardEducationMeasures); detail.Nav_EvaluateHazardEducationMeasures = null; } if (detail.Nav_EvaluateHazardEmergencyMeasures != null) { hazardEmergencys.AddRange(detail.Nav_EvaluateHazardEmergencyMeasures); detail.Nav_EvaluateHazardEmergencyMeasures = null; } }); } var files = entity.Nav_Files; entity.Nav_Files = null; entity.Nav_Hazards = null; entity.Nav_Risks = null; var isUpdate = false; if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; entity.APPROVECODE = DateTime.Now.ToString("yyyyMMddHHmmss"); entity.STATUS = FOPreMeetingStatusEnum.审核中; if (entity.TaskID != null) { finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID, "HM121_SHOWPRINT"); } isUpdate = true; } //加入审批流 if (entity.EVALUATE_TYPE == HMRiskTypeEnmu.危险源辨识) { if (individuals.Count(t => t.IS_DELETED == false) == 0 && engineerings.Count(t => t.IS_DELETED == false) == 0 && managements.Count(t => t.IS_DELETED == false) == 0 && educations.Count(t => t.IS_DELETED == false) == 0 && emergencys.Count(t => t.IS_DELETED == false) == 0) { throw new Exception("五项管控措施请至少选择一项!"); } var param = ""; if (entity.PLAN_ID != null) { param = "plan"; } MFlowPermitService.InsertApprove(entity.APPROVECODE, "HM122", param, entity.ID, "HM121_SHOWPRINT", null, isUpdate, () => { if (entity != null) UpdateEntityNoCommit(entity); //保存主表 if (files != null && files.Any()) BantchSaveEntityNoCommit(files); //保存子表 if (risks != null && risks.Any()) BantchSaveEntityNoCommit(risks); //保存子表 if (workdutys != null && workdutys.Any()) BantchSaveEntityNoCommit(workdutys); //保存子表 if (equipments != null && equipments.Any()) BantchSaveEntityNoCommit(equipments); //保存子表 if (facilities != null && facilities.Any()) BantchSaveEntityNoCommit(facilities); //保存子表 if (individuals != null && individuals.Any()) BantchSaveEntityNoCommit(individuals); //保存子表 if (engineerings != null && engineerings.Any()) BantchSaveEntityNoCommit(engineerings); //保存子表 if (managements != null && managements.Any()) BantchSaveEntityNoCommit(managements); //保存子表 if (educations != null && educations.Any()) BantchSaveEntityNoCommit(educations); //保存子表 if (emergencys != null && emergencys.Any()) BantchSaveEntityNoCommit(emergencys); //保存子表 if (finishNotice != null) UpdateEntityNoCommit(finishNotice); }); } else { MFlowPermitService.InsertApprove(entity.APPROVECODE, "HM123", "", entity.ID, "HM121_SHOWPRINT", null, isUpdate, () => { if (entity != null) UpdateEntityNoCommit(entity); //保存主表 if (files != null && files.Any()) BantchSaveEntityNoCommit(files); //保存子表 if (hazards != null && hazards.Any()) BantchSaveEntityNoCommit(hazards); //保存子表 if (hazardIndividuals != null && hazardIndividuals.Any()) BantchSaveEntityNoCommit(hazardIndividuals); //保存子表 if (hazardEngineerings != null && hazardEngineerings.Any()) BantchSaveEntityNoCommit(hazardEngineerings); //保存子表 if (hazardManagements != null && hazardManagements.Any()) BantchSaveEntityNoCommit(hazardManagements); //保存子表 if (hazardEducations != null && hazardEducations.Any()) BantchSaveEntityNoCommit(hazardEducations); //保存子表 if (hazardEmergencys != null && hazardEmergencys.Any()) BantchSaveEntityNoCommit(hazardEmergencys); //保存子表 if (finishNotice != null) UpdateEntityNoCommit(finishNotice); }); } return true; }); } /// /// 获得单条实体数据 /// /// 过滤实体 /// [HttpPost, Route("FullGet")] public JsonActionResult FullGet([FromBody] KeywordFilter filter) { filter.Include = new string[] { }; var entity = GetEntity(null, filter); var evaluateType = entity.EVALUATE_TYPE; filter.Include = new string[] { "Nav_Requirement", "Nav_NoteTaker", "Nav_InitiatingDepartment", "Nav_Files.Nav_ImgFile", }; var result = WitEntity(null, filter); var newfilter = new BaseFilter(filter.GetOrgId()); var ID = new Guid(filter.FilterGroup.Rules.ToList()[0].Value.ToString()); if (evaluateType == HMRiskTypeEnmu.危险源辨识) { newfilter.Include = new string[] { "Nav_Area", "Nav_Identifying", "Nav_Type", "Nav_OperationStep", "Nav_EvaluateRiskWorkduty.Nav_Post", "Nav_EvaluateRiskEquipment.Nav_Equipment", "Nav_EvaluateRiskIndividualMeasures.Nav_IndividualMeasures", "Nav_EvaluateRiskEngineeringMeasures.Nav_EngineeringMeasures", "Nav_EvaluateRiskManagementMeasures.Nav_ManagementMeasures", "Nav_EvaluateRiskEducationMeasures.Nav_EducationMeasures", "Nav_EvaluateRiskEmergencyMeasures.Nav_EmergencyMeasures", "Nav_DepartmentLiable", "Nav_PostLiable", }; var detailData = GetEntities(t => t.EVALUATE_RESULT_ID == ID, newfilter); result.Data.Nav_Risks = detailData.ToList(); } else { newfilter.Include = new string[] { "Nav_Identifying", "Nav_Area", "Nav_OccupationalRisk", "Nav_DepartmentLiable", "Nav_PostLiable", "Nav_MonitorMeasures", "Nav_EvaluateHazardIndividualMeasures.Nav_IndividualMeasures", "Nav_EvaluateHazardEngineeringMeasures.Nav_EngineeringMeasures", "Nav_EvaluateHazardManagementMeasures.Nav_ManagementMeasures", "Nav_EvaluateHazardEducationMeasures.Nav_EducationMeasures", "Nav_EvaluateHazardEmergencyMeasures.Nav_EmergencyMeasures", }; var detailData = GetEntities(t => t.EVALUATE_RESULT_ID == ID, newfilter); result.Data.Nav_Hazards = detailData.ToList(); } if (result.Data != null) { if (evaluateType == HMRiskTypeEnmu.危险源辨识) { result.Data.Nav_Risks = result.Data.Nav_Risks.OrderBy(t => t.EVALUATE_SCORE).ToList(); } else { result.Data.Nav_Hazards = result.Data.Nav_Hazards.OrderBy(t => t.HAZARD_LEVEL).ToList(); } } return result; } /// /// 危险源及风险审批流回调 /// /// /// [HttpGet, Route("PersonalApprove1")] public JsonActionResult PersonalApprove1(string id) { return SafeExecute(() => { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; Guid RiskId = Guid.Parse(id); BaseFilter filter = new BaseFilter(orgId); filter.Include = new string[] { "Nav_Risks", "Nav_Risks.Nav_EvaluateRiskWorkduty", "Nav_Risks.Nav_EvaluateRiskEquipment", "Nav_Risks.Nav_EvaluateRiskIndividualMeasures", "Nav_Risks.Nav_EvaluateRiskEngineeringMeasures", "Nav_Risks.Nav_EvaluateRiskManagementMeasures", "Nav_Risks.Nav_EvaluateRiskEducationMeasures", "Nav_Risks.Nav_EvaluateRiskEmergencyMeasures" }; var entity = GetEntity(t => t.ID == RiskId, filter); List addEvaluateRisks = new List(); List addWorkdutys = new List(); List addEquipments = new List(); //List addFacilities = new List(); List addIndividuals = new List(); List addEngineerings = new List(); List addManagements = new List(); List addEducations = new List(); List addEmergencys = new List(); List updateRiskResult = new List(); List newjobAdds1 = null; List newjobAdds2 = null; T_HM_JOBTASK_IDENTIFY jobTask = null; List jobtaskDetailList = null; List jobtaskDetailPostList = null; List jobtaskDetailRiskList = null; List modelCheck = null; List listProject = null; List listDetail = null; if (entity.Nav_Risks != null && entity.Nav_Risks.Any()) { entity.STATUS = FOPreMeetingStatusEnum.归档; var updateRecord = entity.Nav_Risks.Where(t => t.MODIFY_TYPE != 0); foreach (var update in updateRecord) { T_HM_EVALUATE_RISK risk = new T_HM_EVALUATE_RISK(); if (update.EVALUATE_RISK_ID != null) { risk.ID = (Guid)update.EVALUATE_RISK_ID; } else { risk.ID = Guid.NewGuid(); update.EVALUATE_RISK_ID = risk.ID; updateRiskResult.Add(update); } risk.NAME = update.NAME; risk.AREA_ID = update.AREA_ID; risk.OPERATION_STEP_ID = update.OPERATION_STEP_ID; risk.IDENTIFYING_ID = update.IDENTIFYING_ID; risk.TYPE_ID = update.TYPE_ID; risk.RISK_PLACE = update.RISK_PLACE; risk.LEVEL = entity.LEVEL; risk.ORG_ID = orgId; risk.EVALUATE_L = update.EVALUATE_L; risk.EVALUATE_E = update.EVALUATE_E; risk.EVALUATE_C = update.EVALUATE_C; risk.EVALUATE_SCORE = update.EVALUATE_SCORE; risk.EVALUATE_LEVEL = update.EVALUATE_LEVEL; risk.POST_LIABLE_ID = update.POST_LIABLE_ID; risk.DEPARTMENT_LIABLE_ID = update.DEPARTMENT_LIABLE_ID; risk.MODIFY_TYPE = HMModifyEnum.新增; foreach (var item in update.Nav_EvaluateRiskWorkduty) { T_HM_EVALUATE_RISK_WORKDUTY addWorkduty = new T_HM_EVALUATE_RISK_WORKDUTY(); addWorkduty.EVALUATION_RISK_ID = risk.ID; addWorkduty.POST_ID = item.WORKDUTY_ID; addWorkduty.ORG_ID = orgId; addWorkdutys.Add(addWorkduty); } foreach (var item in update.Nav_EvaluateRiskEquipment) { T_HM_EVALUATE_RISK_EQUIPMENT addEquipment = new T_HM_EVALUATE_RISK_EQUIPMENT(); addEquipment.EVALUATION_RISK_ID = risk.ID; addEquipment.EQUIPMENT_ID = item.EQUIPMENT_ID; addEquipment.ORG_ID = orgId; addEquipments.Add(addEquipment); } //foreach (var item in update.Nav_EvaluateRiskFacilities) //{ // T_HM_EVALUATE_RISK_FACILITIES addFacility = new T_HM_EVALUATE_RISK_FACILITIES(); // addFacility.EVALUATION_RISK_ID = risk.ID; // addFacility.FACILITIES_ID = item.FACILITIES_ID; // addFacility.ORG_ID = orgId; // addFacilities.Add(addFacility); //} foreach (var item in update.Nav_EvaluateRiskIndividualMeasures) { T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES addItem = new T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES(); addItem.EVALUATION_RISK_ID = risk.ID; addItem.INDIVIDUAL_MEASURES_ID = item.INDIVIDUAL_MEASURES_ID; addItem.ORG_ID = orgId; addIndividuals.Add(addItem); } foreach (var item in update.Nav_EvaluateRiskEngineeringMeasures) { T_HM_EVALUATE_RISK_ENGINEERING_MEASURES addItem = new T_HM_EVALUATE_RISK_ENGINEERING_MEASURES(); addItem.EVALUATION_RISK_ID = risk.ID; addItem.ENGINEERING_MEASURES_ID = item.ENGINEERING_MEASURES_ID; addItem.ORG_ID = orgId; addEngineerings.Add(addItem); } foreach (var item in update.Nav_EvaluateRiskManagementMeasures) { T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES addItem = new T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES(); addItem.EVALUATION_RISK_ID = risk.ID; addItem.MANAGEMENT_MEASURES_ID = item.MANAGEMENT_MEASURES_ID; addItem.ORG_ID = orgId; addManagements.Add(addItem); } foreach (var item in update.Nav_EvaluateRiskEducationMeasures) { T_HM_EVALUATE_RISK_EDUCATION_MEASURES addItem = new T_HM_EVALUATE_RISK_EDUCATION_MEASURES(); addItem.EVALUATION_RISK_ID = risk.ID; addItem.EDUCATION_MEASURES_ID = item.EDUCATION_MEASURES_ID; addItem.ORG_ID = orgId; addEducations.Add(addItem); } foreach (var item in update.Nav_EvaluateRiskEmergencyMeasures) { T_HM_EVALUATE_RISK_EMERGENCY_MEASURES addItem = new T_HM_EVALUATE_RISK_EMERGENCY_MEASURES(); addItem.EVALUATION_RISK_ID = risk.ID; addItem.EMERGENCY_MEASURES_ID = item.EMERGENCY_MEASURES_ID; addItem.ORG_ID = orgId; addEmergencys.Add(addItem); } addEvaluateRisks.Add(risk); } var addDetails = entity.Nav_Risks.Where(t => t.MODIFY_TYPE == HMModifyEnum.新增); var noticeTitles1 = new List(); var noticeUserIds1 = new List(); var noticeUserNames1 = new List(); var noticeDataIds1 = new List(); var noticeTitles2 = new List(); var noticeUserIds2 = new List(); var noticeUserNames2 = new List(); var noticeDataIds2 = new List(); if (addDetails != null && addDetails.Any()) { jobtaskDetailList = new List(); jobtaskDetailPostList = new List(); jobtaskDetailRiskList = new List(); modelCheck = new List(); listProject = new List(); listDetail = new List(); var allIdentifyID = GetEntities(t => true, new BaseFilter(orgId)); var identifyID = allIdentifyID.FirstOrDefault(t => t.NAME == "作业过程" || t.NAME == "作业活动").ID; var jobadds = addDetails.Where(t => t.IDENTIFYING_ID == identifyID && t.OPERATION_STEP_ID != null); var allUsers = GetEntities(t => t.APPROVE_ROLE_ID != null, new BaseFilter(orgId)); if (jobadds.Count() > 0) { jobTask = new T_HM_JOBTASK_IDENTIFY(); jobTask.ORG_ID = orgId; jobTask.ID = Guid.NewGuid(); jobTask.CREATER_ID = userId; var jobaddsDistinct = jobadds.GroupBy(t => new { t.AREA_ID, t.OPERATION_STEP_ID }).Select(g => g.First()).ToList(); foreach (var itemDistinct in jobaddsDistinct) { var addItem = jobadds.Where(t => t.AREA_ID == itemDistinct.AREA_ID && t.OPERATION_STEP_ID == itemDistinct.OPERATION_STEP_ID); foreach (var item in addItem) { T_HM_JOBTASK_IDENTIFY_DETAIL jobtaskDetail = new T_HM_JOBTASK_IDENTIFY_DETAIL(); jobtaskDetail.ID = Guid.NewGuid(); jobtaskDetail.JOBTASK_IDENTIFY_ID = jobTask.ID; jobtaskDetail.AREA_ID = item.AREA_ID; jobtaskDetail.OPERATION_STEP_ID = item.OPERATION_STEP_ID; jobtaskDetail.ORG_ID = orgId; foreach (var post in item.Nav_EvaluateRiskWorkduty) { T_HM_JOBTASK_IDENTIFY_DETAIL_POST jobTaskPost = new T_HM_JOBTASK_IDENTIFY_DETAIL_POST(); jobTaskPost.JOBTASK_IDENTIFY_DETAIL_ID = jobtaskDetail.ID; jobTaskPost.POST_ID = post.WORKDUTY_ID; jobTaskPost.ORG_ID = orgId; jobtaskDetailPostList.Add(jobTaskPost); } var newRisks = addEvaluateRisks.Where(t => t.AREA_ID == item.AREA_ID && t.OPERATION_STEP_ID == item.OPERATION_STEP_ID).Select(p => p.ID); foreach (var risk in newRisks) { T_HM_JOBTASK_IDENTIFY_DETAIL_RISK jobTaskRisk = new T_HM_JOBTASK_IDENTIFY_DETAIL_RISK(); jobTaskRisk.JOBTASK_IDENTIFY_DETAIL_ID = jobtaskDetail.ID; jobTaskRisk.EVALUATE_RISK_ID = risk; jobTaskRisk.ORG_ID = orgId; jobtaskDetailRiskList.Add(jobTaskRisk); } var jobUser = allUsers.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_LIABLE_ID && t.APPROVE_ROLE_ID == item.POST_LIABLE_ID); if (jobUser != null) { jobtaskDetailList.Add(jobtaskDetail); noticeTitles1.Add("新增作业任务识别"); noticeDataIds1.Add(jobTask.ID); noticeUserIds1.Add(jobUser.ID); noticeUserNames1.Add(jobUser.NAME); } } } } if (addDetails.Count() > 0) { var safeCheckAddsDistinct = addDetails.GroupBy(t => new { t.AREA_ID }).Select(g => g.First()).ToList(); foreach (var safeCheckArea in safeCheckAddsDistinct) { var safeCheck1 = addDetails.Where(t => t.AREA_ID == safeCheckArea.AREA_ID); if (safeCheck1 != null) { foreach (var item in safeCheck1) { var DIC = new Dictionary>(); var texts = new List(); if (item.Nav_EvaluateRiskEquipment.Count > 0) { var equipmentIds = item.Nav_EvaluateRiskEquipment.Select(t => t.ID); var equipments = GetEntities(t => equipmentIds.Contains(t.ID), new BaseFilter(orgId)); var equipmentNames = string.Join(",", equipments.Select(i => i.NAME)); if (item.Nav_EvaluateRiskIndividualMeasures.Count > 0) { var IndividualMeasuresIds = item.Nav_EvaluateRiskIndividualMeasures.Select(t => t.INDIVIDUAL_MEASURES_ID); var IndividualMeasures = GetEntities(t => IndividualMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var IndividualMeasureNames = string.Join(",", IndividualMeasures.Select(i => i.NAME)); texts.Add(equipmentNames + "是否" + IndividualMeasureNames); } if (item.Nav_EvaluateRiskEngineeringMeasures.Count > 0) { var EngineeringMeasuresIds = item.Nav_EvaluateRiskEngineeringMeasures.Select(t => t.ENGINEERING_MEASURES_ID); var EngineeringMeasures = GetEntities(t => EngineeringMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var EngineeringMeasuresNames = string.Join(",", EngineeringMeasures.Select(i => i.NAME)); texts.Add(equipmentNames + "是否" + EngineeringMeasuresNames); } if (item.Nav_EvaluateRiskManagementMeasures.Count > 0) { var ManagementMeasuresIds = item.Nav_EvaluateRiskManagementMeasures.Select(t => t.MANAGEMENT_MEASURES_ID); var ManagementMeasures = GetEntities(t => ManagementMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var ManagementMeasureNames = string.Join(",", ManagementMeasures.Select(i => i.NAME)); texts.Add(equipmentNames + "是否" + ManagementMeasureNames); } if (item.Nav_EvaluateRiskEducationMeasures.Count > 0) { var EducationMeasuresIds = item.Nav_EvaluateRiskEducationMeasures.Select(t => t.EDUCATION_MEASURES_ID); var EducationMeasures = GetEntities(t => EducationMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var EducationMeasureNames = string.Join(",", EducationMeasures.Select(i => i.NAME)); texts.Add(equipmentNames + "是否" + EducationMeasureNames); } if (item.Nav_EvaluateRiskEmergencyMeasures.Count > 0) { var EmergencyMeasuresIds = item.Nav_EvaluateRiskEmergencyMeasures.Select(t => t.EMERGENCY_MEASURES_ID); var EmergencyMeasures = GetEntities(t => EmergencyMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var EmergencyMeasureNames = string.Join(",", EmergencyMeasures.Select(i => i.NAME)); texts.Add(equipmentNames + "是否" + EmergencyMeasureNames); } } if (item.OPERATION_STEP_ID != null) { var operationStepName = GetEntity(t => t.ID == item.OPERATION_STEP_ID).NAME; if (item.Nav_EvaluateRiskIndividualMeasures.Count > 0) { var IndividualMeasuresIds = item.Nav_EvaluateRiskIndividualMeasures.Select(t => t.INDIVIDUAL_MEASURES_ID); var IndividualMeasures = GetEntities(t => IndividualMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var IndividualMeasureNames = string.Join(",", IndividualMeasures.Select(i => i.NAME)); texts.Add(operationStepName + "是否" + IndividualMeasureNames); } if (item.Nav_EvaluateRiskEngineeringMeasures.Count > 0) { var EngineeringMeasuresIds = item.Nav_EvaluateRiskEngineeringMeasures.Select(t => t.ENGINEERING_MEASURES_ID); var EngineeringMeasures = GetEntities(t => EngineeringMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var EngineeringMeasuresNames = string.Join(",", EngineeringMeasures.Select(i => i.NAME)); texts.Add(operationStepName + "是否" + EngineeringMeasuresNames); } if (item.Nav_EvaluateRiskManagementMeasures.Count > 0) { var ManagementMeasuresIds = item.Nav_EvaluateRiskManagementMeasures.Select(t => t.MANAGEMENT_MEASURES_ID); var ManagementMeasures = GetEntities(t => ManagementMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var ManagementMeasureNames = string.Join(",", ManagementMeasures.Select(i => i.NAME)); texts.Add(operationStepName + "是否" + ManagementMeasureNames); } if (item.Nav_EvaluateRiskEducationMeasures.Count > 0) { var EducationMeasuresIds = item.Nav_EvaluateRiskEducationMeasures.Select(t => t.EDUCATION_MEASURES_ID); var EducationMeasures = GetEntities(t => EducationMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var EducationMeasureNames = string.Join(",", EducationMeasures.Select(i => i.NAME)); texts.Add(operationStepName + "是否" + EducationMeasureNames); } if (item.Nav_EvaluateRiskEmergencyMeasures.Count > 0) { var EmergencyMeasuresIds = item.Nav_EvaluateRiskEmergencyMeasures.Select(t => t.EMERGENCY_MEASURES_ID); var EmergencyMeasures = GetEntities(t => EmergencyMeasuresIds.Contains(t.ID), new BaseFilter(orgId)); var EmergencyMeasureNames = string.Join(",", EmergencyMeasures.Select(i => i.NAME)); texts.Add(operationStepName + "是否" + EmergencyMeasureNames); } } var identifyName = allIdentifyID.FirstOrDefault(t => t.ID == item.IDENTIFYING_ID).NAME; if (texts.Count > 0) { DIC.Add(identifyName, texts); var sendUser = allUsers.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_LIABLE_ID && t.APPROVE_ROLE_ID == item.POST_LIABLE_ID); var dataId = Guid.NewGuid(); T_BS_SAFE_CHECK safeCheck = new T_BS_SAFE_CHECK(); List templistProject = new List(); List templistDetail = new List(); HazardsIni(safeCheckArea.AREA_ID, DIC, sendUser.ID, item.DEPARTMENT_LIABLE_ID, orgId, dataId, ref safeCheck, ref templistProject, ref templistDetail); modelCheck.Add(safeCheck); listProject.AddRange(templistProject); listDetail.AddRange(templistDetail); noticeTitles2.Add("新增安全检查任务制定-" + identifyName); noticeDataIds2.Add(dataId); noticeUserIds2.Add(sendUser.ID); noticeUserNames2.Add(sendUser.NAME); } } } } } newjobAdds1 = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles1, noticeDataIds1, orgId, noticeUserIds1, noticeUserNames1, DateTime.Now, DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "HM104"); newjobAdds2 = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles2, noticeDataIds2, orgId, noticeUserIds2, noticeUserNames2, DateTime.Now, DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "BS032"); } } this.UnifiedCommit(() => { if (entity != null) UpdateEntityNoCommit(entity, "STATUS"); //保存主表 if (updateRiskResult.Any()) BantchUpdateEntityNoCommit(updateRiskResult, "EVALUATE_RISK_ID"); //保存主表 if (addEvaluateRisks != null && addEvaluateRisks.Any()) BantchSaveEntityNoCommit(addEvaluateRisks); //保存子表 if (addWorkdutys != null && addWorkdutys.Any()) BantchSaveEntityNoCommit(addWorkdutys); //保存子表 if (addEquipments != null && addEquipments.Any()) BantchSaveEntityNoCommit(addEquipments); //保存子表 //if (addFacilities != null && addFacilities.Any()) // BantchSaveEntityNoCommit(addFacilities); //保存子表 if (addIndividuals != null && addIndividuals.Any()) BantchSaveEntityNoCommit(addIndividuals); //保存子表 if (addEngineerings != null && addEngineerings.Any()) BantchSaveEntityNoCommit(addEngineerings); //保存子表 if (addManagements != null && addManagements.Any()) BantchSaveEntityNoCommit(addManagements); //保存子表 if (addEducations != null && addEducations.Any()) BantchSaveEntityNoCommit(addEducations); //保存子表 if (addEmergencys != null && addEmergencys.Any()) BantchSaveEntityNoCommit(addEmergencys); //保存子表 if (newjobAdds1 != null && newjobAdds1.Any()) BantchAddEntityNoCommit(newjobAdds1); //新增的消息表 if (newjobAdds2 != null && newjobAdds2.Any()) BantchAddEntityNoCommit(newjobAdds2); //新增的消息表 if (jobTask != null) AddEntityNoCommit(jobTask); //新增的作业任务表 if (jobtaskDetailList != null && jobtaskDetailList.Any()) BantchAddEntityNoCommit(jobtaskDetailList); //新增的作业任务表 if (jobtaskDetailPostList != null && jobtaskDetailPostList.Any()) BantchAddEntityNoCommit(jobtaskDetailPostList); //新增的作业任务表 if (jobtaskDetailRiskList != null && jobtaskDetailRiskList.Any()) BantchAddEntityNoCommit(jobtaskDetailRiskList); //新增的作业任务表 if (modelCheck != null && modelCheck.Any()) BantchAddEntityNoCommit(modelCheck); //新增的安全检查表 if (listProject != null && listProject.Any()) BantchSaveEntityNoCommit(listProject); //新增的安全检查表 if (listDetail != null && listDetail.Any()) BantchSaveEntityNoCommit(listDetail); //新增的安全检查表 }); return true; //return ApproveCallBackService.CallBack("HM/HMEvaluateResult/PersonalApprove1", id); }); } private void HazardsIni(Guid? RISK_AREA_ID, Dictionary> dicProjctContents, Guid UserID, Guid? DEPARTMENTID, Guid? OrgId, Guid DateID, ref T_BS_SAFE_CHECK modelCheck, ref List listProject, ref List listDetail) { modelCheck = new T_BS_SAFE_CHECK(); modelCheck.ID = DateID; modelCheck.ORG_ID = OrgId; DateTime dtNow = DateTime.Now; modelCheck.NAME = "危险源辨识触发安全检查"; modelCheck.CODE = dtNow.ToString("yyyyMMddHHmmss"); //变成可空 //modelCheck.CHECK_TYPE_ID = ; //modelCheck.CHECKOBJECT = ; //modelCheck.CHECK_TYPE_LEVEL_ID = ; modelCheck.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用; modelCheck.CREACTTYPE = CREACTTYPEEnum.HazardsAdd; modelCheck.IS_DELETED = false; modelCheck.CREATE_TIME = dtNow; modelCheck.CREATER_ID = UserID; modelCheck.STATUCHECK = 0;// HMAuditStatusEnmu.草稿; modelCheck.STATUSPLAN = 0;// HMAuditStatusEnmu.草稿; modelCheck.DEPARTMENTID = DEPARTMENTID; modelCheck.USERID_DOPLAN = UserID; modelCheck.RISKSTATE = 0; //modelCheck.PLAN_SET_ID = ; //modelCheck.CHECKTIME = ; //modelCheck.ENTITY_ORG_TPYE = ; //modelCheck.FORM_ID = ; //modelCheck.FLOW_STATUS = ; //modelCheck.FLOW_SEND_STATUS = ; //modelCheck.FLOW_ID = ; //modelCheck.MODIFY_TIME = ; //modelCheck.MODIFIER_ID = ; //modelCheck.APPROVE_ID = ; //modelCheck.APPROVE_CHECKAUDIT_ID = ; //modelCheck.APPROVE_TEMP_ID = ; //modelCheck.CheckUsers = ; listDetail = new List(); listProject = new List(); int rowNO = 0; T_BS_CHECK_PROJECT operateProject = null; foreach (var item in dicProjctContents) { operateProject = GetEntity(e => e.NAME == item.Key); if (operateProject == null) { operateProject = new T_BS_CHECK_PROJECT(); operateProject.NAME = item.Key; operateProject.ID = Guid.NewGuid(); operateProject.CREATER_ID = UserID; operateProject.CREATE_TIME = dtNow; operateProject.ENABLE_STATUS = 0; operateProject.IS_DELETED = false; operateProject.ORG_ID = OrgId; listProject.Add(operateProject); } for (int i = 0; i < item.Value.Count; i++) { rowNO++; T_BS_SAFE_CHECK_DETAIL modelDetail = new T_BS_SAFE_CHECK_DETAIL(); modelDetail.ID = Guid.NewGuid(); modelDetail.SAFE_CHECK_ID = DateID; modelDetail.CHECKTYPE = 0; modelDetail.IS_DELETED = false; modelDetail.ORG_ID = OrgId; modelDetail.CREATE_TIME = dtNow; modelDetail.CREATER_ID = UserID; modelDetail.ROW_NO = rowNO; modelDetail.CHECKCONTENT = item.Value[i]; modelDetail.CHECK_PROJECT_ID = operateProject.ID; modelDetail.RISK_AREA_ID = RISK_AREA_ID; //modelDetail.CHECK_MAIN_ID = ; //modelDetail.REMARK_RESULT = ; //modelDetail.QUESTION_LEVEL = ; //modelDetail.ENTITY_ORG_TPYE = ; //modelDetail.FORM_ID = ; //modelDetail.FLOW_STATUS = ; //modelDetail.FLOW_SEND_STATUS = ; //modelDetail.FLOW_ID = ; //modelDetail.MODIFY_TIME = ; //modelDetail.MODIFIER_ID = ; //modelDetail.CHECKRESULT = ; //modelDetail.CHECKPROOF = ; //modelDetail.CHECK_PROJECT_PROJECT_CATEGORY_ID = ; //modelDetail.CHECK_QUESTION_ID = ; //modelDetail.SERIOUS_RISK = ; listDetail.Add(modelDetail); } } //UnifiedCommit(() => //{ // if (modelCheck != null)//添加安全检查 // AddEntity(modelCheck); // if (listProject.Any())//添加检查项目 // BantchSaveEntityNoCommit(listProject); // if (listDetail.Any())//添加审批详情 // BantchSaveEntityNoCommit(listDetail); //}); } /// /// 职业危害审批流回调 /// /// /// [HttpGet, Route("PersonalApprove2")] public JsonActionResult PersonalApprove2(string id) { return SafeExecute(() => { return ApproveCallBackService.CallBack("HM/HMEvaluateResult/PersonalApprove2", id); }); } } }