using APT.BaseData.Domain.ApiModel; using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.HM; using APT.MS.Domain.Entities.LR; using APT.MS.Domain.Entities.PF; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; namespace APT.HM.WebApi.Controllers.Api { [Route("api/HM/HMEvaluateRisk")] public partial class EvaluateRiskController : AuthorizeApiController { /// /// 更新 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_HM_EVALUATE_RISK entity) { { return SafeExecute(() => { var workduty = entity.Nav_EvaluateRiskWorkduty; var facilities = entity.Nav_EvaluateRiskFacilities; var equipment = entity.Nav_EvaluateRiskEquipment; var Individual = entity.Nav_EvaluateRiskIndividualMeasures; var Engineering = entity.Nav_EvaluateRiskEngineeringMeasures; var Management = entity.Nav_EvaluateRiskManagementMeasures; var Education = entity.Nav_EvaluateRiskEducationMeasures; var Emergency = entity.Nav_EvaluateRiskEmergencyMeasures; entity.Nav_EvaluateRiskWorkduty = null; entity.Nav_EvaluateRiskFacilities = null; entity.Nav_EvaluateRiskEquipment = null; entity.Nav_EvaluateRiskIndividualMeasures = null; entity.Nav_EvaluateRiskEngineeringMeasures = null; entity.Nav_EvaluateRiskManagementMeasures = null; entity.Nav_EvaluateRiskEducationMeasures = null; entity.Nav_EvaluateRiskEmergencyMeasures = null; this.UnifiedCommit(() => { if (entity != null)//保存主表 UpdateEntityNoCommit(entity); if (workduty != null && workduty.Any())//保存子表 BantchSaveEntityNoCommit(workduty); if (facilities != null && facilities.Any())//保存子表 BantchSaveEntityNoCommit(facilities); if (equipment != null && equipment.Any()) //保存子表 BantchSaveEntityNoCommit(equipment); if (Individual != null && Individual.Any()) //保存子表 this.BantchSaveEntityNoCommit(Individual); if (Engineering != null && Engineering.Any()) //保存子表 this.BantchSaveEntityNoCommit(Engineering); if (Management != null && Management.Any()) //保存子表 this.BantchSaveEntityNoCommit(Management); if (Education != null && Education.Any()) //保存子表 this.BantchSaveEntityNoCommit(Education); if (Emergency != null && Emergency.Any()) //保存子表 this.BantchSaveEntityNoCommit(Emergency); }); return true; }); } } /// /// 获取导入数据 /// 参考 [Route("api/PF/Import")] /// /// [HttpPost, Route("GetImportData")] public JsonActionResult GetImportData() { return SafeExecute(() => { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; var httpRequest = this.HttpContext.Request; string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织 ImportDataModel result = new ImportDataModel(); var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles"); if (!Directory.Exists(dic)) Directory.CreateDirectory(dic); foreach (var key in httpRequest.Form.Files) // 文件键 { var postedFile = key; // 获取文件键对应的文件对象 string filePath = Path.Combine(dic, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + postedFile.FileName); Byte[] fileData = new Byte[postedFile.Length]; Stream sr = postedFile.OpenReadStream();//创建数据流对象 sr.Read(fileData, 0, (int)postedFile.Length); using (FileStream fs = new FileStream(filePath, FileMode.CreateNew)) { fs.Write(fileData, 0, fileData.Length); fs.Flush(); fs.Close(); } //获取数据 Dictionary startRowIndexs = new Dictionary(); startRowIndexs.Add(0, 1);//根据Excel格式数据赋值 var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs); string Msg = string.Empty; bool isOK = InsertModel(dataTables.Tables[0], orgId, ref Msg); try { System.IO.File.Delete(filePath); } catch { } result.Data = Msg; result.MessageList = new List { Msg }; } return result; }); } /// /// 数据插入 /// /// /// /// /// /// /// public bool InsertModel(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) { var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; if (dtSource == null || dtSource.Rows.Count < rowIndex) { Msg = "未获取到导入数据"; throw new Exception(Msg); } int rowAll = dtSource.Rows.Count; if (!string.IsNullOrEmpty(Msg)) { throw new Exception(Msg); } List riskAll = new List(); List addEquipment = new List(); List addWorkduty = new List(); List addINDIVIDUAL = new List(); List addENGINEERING = new List(); List addMANAGEMENT = new List(); List addEDUCATION = new List(); List addEMERGENCY = new List(); var deps = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); var posts = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); DateTime dtNow = DateTime.Now; for (int i = 0; i < rowAll; i++) { T_HM_EVALUATE_RISK item = new T_HM_EVALUATE_RISK(); item.ID = Guid.NewGuid(); item.ORG_ID = orgId; if (!string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()))//辨识区域 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][0].ToString().Trim()); if (item1 != null) { item.AREA_ID = item1.ID; } else { T_HM_RISK_AREA addarea = new T_HM_RISK_AREA(); addarea.ID = Guid.NewGuid(); addarea.NAME = dtSource.Rows[i][0].ToString().Trim(); addarea.ORG_ID = orgId; item.AREA_ID = addarea.ID; AddEntity(addarea); } } if (!string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim()))//辨识对象 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][1].ToString().Trim()); if (item1 != null) { item.IDENTIFYING_ID = item1.ID; } else { T_HM_IDENTIFYING add = new T_HM_IDENTIFYING(); add.ID = Guid.NewGuid(); add.NAME = dtSource.Rows[i][1].ToString().Trim(); add.ORG_ID = orgId; item.IDENTIFYING_ID = add.ID; AddEntity(add); } if (dtSource.Rows[i][1].ToString().Trim() == "设备设施") { var conf = dtSource.Rows[i][2].ToString().Trim().Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries); if (conf.Length > 0) { foreach (var c in conf) { var item2 = GetEntity(t => t.NAME == dtSource.Rows[i][2].ToString().Trim()); T_HM_EVALUATE_RISK_EQUIPMENT safeConf = new T_HM_EVALUATE_RISK_EQUIPMENT(); safeConf.ORG_ID = orgId; safeConf.EVALUATION_RISK_ID = item.ID; if (item2 == null) { T_HM_EQUIPMENT addequ = new T_HM_EQUIPMENT(); addequ.ID = Guid.NewGuid(); addequ.NAME = c; addequ.ORG_ID = orgId; safeConf.EQUIPMENT_ID = addequ.ID; AddEntity(addequ); } else { safeConf.EQUIPMENT_ID = item2.ID; } addEquipment.Add(safeConf); } } } } if (!string.IsNullOrEmpty(dtSource.Rows[i][3].ToString().Trim()))//相关岗位 { var conf = dtSource.Rows[i][3].ToString().Trim().Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries); if (conf.Length > 0) { foreach (var c in conf) { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][3].ToString().Trim()); T_HM_EVALUATE_RISK_WORKDUTY safeConf = new T_HM_EVALUATE_RISK_WORKDUTY(); safeConf.ORG_ID = orgId; safeConf.EVALUATION_RISK_ID = item.ID; if (item1 == null) { T_FM_USER_POST additem = new T_FM_USER_POST(); additem.ID = Guid.NewGuid(); additem.NAME = c; additem.ORG_ID = orgId; safeConf.POST_ID = additem.ID; AddEntity(additem); } else { safeConf.POST_ID = item1.ID; } addWorkduty.Add(safeConf); } } } if (!string.IsNullOrEmpty(dtSource.Rows[i][4].ToString().Trim()))//危险源 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][4].ToString().Trim()); if (item1 != null) { item.NAME = item1.NAME; } else { T_HM_RISKSOURCE add = new T_HM_RISKSOURCE(); add.ID = Guid.NewGuid(); add.NAME = dtSource.Rows[i][4].ToString().Trim(); add.ORG_ID = orgId; item.NAME = add.NAME; AddEntity(add); } } if (!string.IsNullOrEmpty(dtSource.Rows[i][5].ToString().Trim()))//伤害类型 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][5].ToString().Trim()); if (item1 != null) { item.TYPE_ID = item1.ID; } else { T_HM_RISK_TYPE add = new T_HM_RISK_TYPE(); add.ID = Guid.NewGuid(); add.NAME = dtSource.Rows[i][5].ToString().Trim(); add.ORG_ID = orgId; item.TYPE_ID = add.ID; AddEntity(add); } } if (!string.IsNullOrEmpty(dtSource.Rows[i][6].ToString().Trim()))//风险地点 { item.RISK_PLACE = dtSource.Rows[i][6].ToString().Trim(); } if (!string.IsNullOrEmpty(dtSource.Rows[i][7].ToString().Trim()))//L { item.EVALUATE_L = decimal.Parse(dtSource.Rows[i][7].ToString().Trim()); } if (!string.IsNullOrEmpty(dtSource.Rows[i][8].ToString().Trim()))//E { item.EVALUATE_E = decimal.Parse(dtSource.Rows[i][8].ToString().Trim()); } if (!string.IsNullOrEmpty(dtSource.Rows[i][9].ToString().Trim()))//C { item.EVALUATE_C = decimal.Parse(dtSource.Rows[i][9].ToString().Trim()); } if (!string.IsNullOrEmpty(dtSource.Rows[i][10].ToString().Trim()))//D { item.EVALUATE_SCORE = decimal.Parse(dtSource.Rows[i][10].ToString().Trim()); } if (!string.IsNullOrEmpty(dtSource.Rows[i][11].ToString().Trim()))//风险等级 { if (dtSource.Rows[i][11].ToString().Trim() == "一级") { item.EVALUATE_LEVEL = EvaluateLevelEnum.一级; } else if (dtSource.Rows[i][11].ToString().Trim() == "二级") { item.EVALUATE_LEVEL = EvaluateLevelEnum.二级; } else if (dtSource.Rows[i][11].ToString().Trim() == "三级") { item.EVALUATE_LEVEL = EvaluateLevelEnum.三级; } else if (dtSource.Rows[i][11].ToString().Trim() == "四级") { item.EVALUATE_LEVEL = EvaluateLevelEnum.四级; } } if (!string.IsNullOrEmpty(dtSource.Rows[i][12].ToString().Trim()))//工程控制 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][12].ToString().Trim()); T_HM_EVALUATE_RISK_ENGINEERING_MEASURES measure = new T_HM_EVALUATE_RISK_ENGINEERING_MEASURES(); measure.ORG_ID = orgId; measure.EVALUATION_RISK_ID = item.ID; if (item1 == null) { T_HM_ENGINEERING_MEASURES additem = new T_HM_ENGINEERING_MEASURES(); additem.ID = Guid.NewGuid(); additem.NAME = dtSource.Rows[i][12].ToString().Trim(); additem.ORG_ID = orgId; measure.ENGINEERING_MEASURES_ID = additem.ID; AddEntity(additem); } else { measure.ENGINEERING_MEASURES_ID = item1.ID; } addENGINEERING.Add(measure); } if (!string.IsNullOrEmpty(dtSource.Rows[i][13].ToString().Trim()))//管理控制措施 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][13].ToString().Trim()); T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES measure = new T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES(); measure.ORG_ID = orgId; measure.EVALUATION_RISK_ID = item.ID; if (item1 == null) { T_HM_MANAGEMENT_MEASURES additem = new T_HM_MANAGEMENT_MEASURES(); additem.ID = Guid.NewGuid(); additem.NAME = dtSource.Rows[i][13].ToString().Trim(); additem.ORG_ID = orgId; measure.MANAGEMENT_MEASURES_ID = additem.ID; AddEntity(additem); } else { measure.MANAGEMENT_MEASURES_ID = item1.ID; } addMANAGEMENT.Add(measure); } if (!string.IsNullOrEmpty(dtSource.Rows[i][14].ToString().Trim()))//个体防护措施 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][14].ToString().Trim()); T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES measure = new T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES(); measure.ORG_ID = orgId; measure.EVALUATION_RISK_ID = item.ID; if (item1 == null) { T_HM_INDIVIDUAL_MEASURES additem = new T_HM_INDIVIDUAL_MEASURES(); additem.ID = Guid.NewGuid(); additem.NAME = dtSource.Rows[i][14].ToString().Trim(); additem.ORG_ID = orgId; measure.INDIVIDUAL_MEASURES_ID = additem.ID; AddEntity(additem); } else { measure.INDIVIDUAL_MEASURES_ID = item1.ID; } addINDIVIDUAL.Add(measure); } if (!string.IsNullOrEmpty(dtSource.Rows[i][15].ToString().Trim()))//教育培训措施 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][15].ToString().Trim()); T_HM_EVALUATE_RISK_EDUCATION_MEASURES measure = new T_HM_EVALUATE_RISK_EDUCATION_MEASURES(); measure.ORG_ID = orgId; measure.EVALUATION_RISK_ID = item.ID; if (item1 == null) { T_HM_EDUCATION_MEASURES additem = new T_HM_EDUCATION_MEASURES(); additem.ID = Guid.NewGuid(); additem.NAME = dtSource.Rows[i][15].ToString().Trim(); additem.ORG_ID = orgId; measure.EDUCATION_MEASURES_ID = additem.ID; AddEntity(additem); } else { measure.EDUCATION_MEASURES_ID = item1.ID; } addEDUCATION.Add(measure); } if (!string.IsNullOrEmpty(dtSource.Rows[i][16].ToString().Trim()))//应急处置措施 { var item1 = GetEntity(t => t.NAME == dtSource.Rows[i][16].ToString().Trim()); T_HM_EVALUATE_RISK_EMERGENCY_MEASURES measure = new T_HM_EVALUATE_RISK_EMERGENCY_MEASURES(); measure.ORG_ID = orgId; measure.EVALUATION_RISK_ID = item.ID; if (item1 == null) { T_HM_EMERGENCY_MEASURES additem = new T_HM_EMERGENCY_MEASURES(); additem.ID = Guid.NewGuid(); additem.NAME = dtSource.Rows[i][16].ToString().Trim(); additem.ORG_ID = orgId; measure.EMERGENCY_MEASURES_ID = additem.ID; AddEntity(additem); } else { measure.EMERGENCY_MEASURES_ID = item1.ID; } addEMERGENCY.Add(measure); } if (!string.IsNullOrEmpty(dtSource.Rows[i][17].ToString().Trim()))//管控层级 { if (dtSource.Rows[i][17].ToString().Trim() == "公司级") { item.LEVEL = FMDepartmentType.公司; } else if (dtSource.Rows[i][17].ToString().Trim() == "部门级") { item.LEVEL = FMDepartmentType.部门; } else if (dtSource.Rows[i][17].ToString().Trim() == "车间级") { item.LEVEL = FMDepartmentType.车间; } else if (dtSource.Rows[i][17].ToString().Trim() == "班组级") { item.LEVEL = FMDepartmentType.班组; } } if (!string.IsNullOrEmpty(dtSource.Rows[i][18].ToString().Trim()))//责任单位 { item.DEPARTMENT_LIABLE_ID = deps.FirstOrDefault(t => t.NAME == dtSource.Rows[i][18].ToString().Trim()).ID; } if (!string.IsNullOrEmpty(dtSource.Rows[i][19].ToString().Trim()))//责任岗位 { item.POST_LIABLE_ID = posts.FirstOrDefault(t => t.NAME == dtSource.Rows[i][19].ToString().Trim()).ID; } riskAll.Add(item); } UnifiedCommit(() => { BantchSaveEntityNoCommit(riskAll); if (addEquipment != null && addEquipment.Any()) BantchSaveEntityNoCommit(addEquipment); if (addWorkduty != null && addWorkduty.Any()) BantchSaveEntityNoCommit(addWorkduty); 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); }); Msg = "导入成功!"; return true; } } }