package com.ruoyi.project.tr.riskEvaluationPlan.controller; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.security.ShiroUtils; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.project.enumerate.TrEvaluationMethodDetailsEnum; import com.ruoyi.project.enumerate.TrEvaluationMethodTypeEnum; import com.ruoyi.project.enumerate.TrRiskTypeEnum; import com.ruoyi.project.system.dept.domain.Dept; import com.ruoyi.project.system.dept.service.IDeptService; import com.ruoyi.project.system.user.domain.User; import com.ruoyi.project.tr.criterionDetail.domain.CriterionDetail; import com.ruoyi.project.tr.criterionDetail.domain.CriterionDetailDTO; import com.ruoyi.project.tr.criterionDetail.service.ICriterionDetailService; import com.ruoyi.project.tr.region.domain.Region; import com.ruoyi.project.tr.region.service.IRegionService; import com.ruoyi.project.tr.riskCheckPoint.domain.RiskCheckPoint; import com.ruoyi.project.tr.riskCheckPoint.service.IRiskCheckPointService; import com.ruoyi.project.tr.riskEvaluationPlan.domain.RiskEvaluationPlan; import com.ruoyi.project.tr.riskEvaluationPlan.domain.dto.RiskEvaluationDTO; import com.ruoyi.project.tr.riskEvaluationPlan.service.IRiskEvaluationPlanService; import com.ruoyi.project.tr.riskList.domain.RiskList; import com.ruoyi.project.tr.riskList.service.IRiskListService; import com.ruoyi.project.tr.riskType.domain.RiskType; import com.ruoyi.project.tr.riskType.service.IRiskTypeService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; /** * 风险评价,统一使用方法控制器 * * @author wm * @date 2020-05-09 */ @Controller @RequestMapping("/tr/riskEvaluation") public class RiskEvaluationController extends BaseController{ @Autowired private IRiskListService riskListService; @Autowired private IRiskEvaluationPlanService riskEvaluationPlanService; @Autowired private IRiskCheckPointService riskCheckPointService; @Autowired private IRiskTypeService typeService; @Autowired private IRegionService regionService; @Autowired private IDeptService deptService; @Autowired private ICriterionDetailService criterionDetailService; // /** // * 用于设备设施计划的导入 // * @param file // * @return // * @throws Exception // */ // @Log(title = "设备设施计划导入", businessType = BusinessType.IMPORT) // @PostMapping("/deviceImportData") // @ResponseBody // @Transactional // public AjaxResult deviceImportData(MultipartFile file) throws Exception { // User user = ShiroUtils.getSysUser(); // // //查询各个评分所用的准则明细 // List LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId()); // List LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId()); // // List LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId()); // List LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId()); // List LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId()); // // List MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId()); // List MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId()); // List MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId()); // // List RS_R = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.RS_R.getCriterionId()); // List RS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.RS_S.getCriterionId()); // // // // ExcelUtil util = new ExcelUtil(RiskEvaluationDTO.class); // List deviceList = util.importExcel(file.getInputStream()); // // RiskList risk = new RiskList(); // // RiskEvaluationPlan plan = new RiskEvaluationPlan(); // //首先添加设备 // for (RiskEvaluationDTO riskEvaluationDTO :deviceList){ // // //如果不为空,就新增设备 // if (StringUtils.isNotEmpty(riskEvaluationDTO.getRiskListName())) { // BeanUtils.copyProperties(riskEvaluationDTO, risk); // risk.setCompanyId(user.getCompanyId()); // risk.setUserId(user.getUserId()); // risk.setCreateBy(user.getUserName()); // risk.setRiskType(TrRiskTypeEnum.DEVICE.getCode()); // //根据名称,替换成对应ID // // //设备设施类型 // String riskType = riskEvaluationDTO.getRiskListDeviceType(); // if (StringUtils.isNotEmpty(riskType)) { // List riskTypeList = typeService.selectRiskTypeListByCompanyId(user.getCompanyId(), 1); // for (RiskType r : riskTypeList) { // if (riskType.equals(r.getRiskTypeName())) { // risk.setRiskListDeviceType(r.getRiskTypeId()); // break; // } // } // if (risk.getRiskListDeviceType()==null){ // return AjaxResult.error("{"+riskType+"},该[设备设施类型]未找到"); // } // } else { // return AjaxResult.error("[设备设施类型]不能为空"); // } // // //区域/位置 // String region = riskEvaluationDTO.getRegionName(); // if (StringUtils.isNotEmpty(region)) { // List regionList = regionService.selectRegionListByCompanyId(user.getCompanyId()); // for (Region r : regionList) { // if (region.equals(r.getRegionName())) { // risk.setRegionId(r.getRegionId()); // break; // } // } // if (risk.getRegionId()==null){ // return AjaxResult.error("{"+region+"},该[区域/位置]未找到"); // } // } else { // return AjaxResult.error("[区域/位置]不能为空"); // } // // //管辖部门/单位 // String dept = riskEvaluationDTO.getDeptName(); // if (StringUtils.isNotEmpty(dept)) { // List deptList = deptService.selectDeptListByCompanyId(user.getCompanyId()); // for (Dept d : deptList) { // if (dept.equals(d.getDeptName())) { // risk.setDeptId(d.getDeptId()); // break; // } // } // if (risk.getDeptId()==null){ // return AjaxResult.error("{"+dept+"},该[管辖部门/单位]未找到"); // } // } else { // return AjaxResult.error("[管辖部门/单位]不能为空"); // } // // //保存复制过的对象 // int addNum = riskListService.insertRiskList(risk); // if (addNum<= 0){ // throw new Exception("设备导入失败!"); // } // } // // //新增设备后继续新增计划,评价计划是否存在 // if (StringUtils.isNotEmpty(riskEvaluationDTO.getEvaluationPlanName())){ // BeanUtils.copyProperties(riskEvaluationDTO,plan); // //保存复制过的对象 // plan.setEvaluationRiskId(risk.getRiskListId()); // plan.setCompanyId(user.getCompanyId()); // plan.setPlanUserId(user.getUserId()); // plan.setIdentifyUserId(user.getUserId()); // plan.setPlanStatus(2); // plan.setStageStatus(4); // plan.setIdentifyStatus(2); // plan.setEvaluationType(1); // plan.setRiskIdentifyMethod(1); // // int addNum = riskEvaluationPlanService.insertRiskEvaluationPlan(plan); // if (addNum<=0){ // throw new Exception("计划导入失败!"); // } // } // System.out.println(plan); // // //新增过计划后,增加检查点, // RiskCheckPoint checkPoint = new RiskCheckPoint(); // BeanUtils.copyProperties(riskEvaluationDTO,checkPoint); // checkPoint.setPlanId(plan.getPlanId()); // checkPoint.setEvaluationUserId(user.getUserId()); // checkPoint.setReviewUserId(user.getUserId()); // checkPoint.setEvaluationStatus(2); // checkPoint.setReviewStatus(2); // checkPoint.setCompanyId(user.getCompanyId()); // // //根据分数信息,和选择评分类型,查找用户选择的分级 // if (TrEvaluationMethodTypeEnum.LS.getMethodId().equals(checkPoint.getEvaluationMethodType())){ // checkPoint.setEvaluationNowLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationNowLsL())); // checkPoint.setEvaluationNowLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationNowLsS())); // // checkPoint.setEvaluationAfterLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationAfterLsL())); // checkPoint.setEvaluationAfterLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationAfterLsS())); // }else if(TrEvaluationMethodTypeEnum.LEC.getMethodId().equals(checkPoint.getEvaluationMethodType())){ // checkPoint.setEvaluationNowLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationNowLecL())); // checkPoint.setEvaluationNowLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationNowLecE())); // checkPoint.setEvaluationNowLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationNowLecC())); // // checkPoint.setEvaluationAfterLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationAfterLecL())); // checkPoint.setEvaluationAfterLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationAfterLecE())); // checkPoint.setEvaluationAfterLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationAfterLecC())); // }else if(TrEvaluationMethodTypeEnum.MES.getMethodId().equals(checkPoint.getEvaluationMethodType())){ // checkPoint.setEvaluationNowMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationNowMesM())); // checkPoint.setEvaluationNowMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationNowMesE())); // checkPoint.setEvaluationNowMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationNowMesS())); // // checkPoint.setEvaluationAfterMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationAfterMesM())); // checkPoint.setEvaluationAfterMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationAfterMesE())); // checkPoint.setEvaluationAfterMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationAfterMesS())); // }else if(TrEvaluationMethodTypeEnum.RS.getMethodId().equals(checkPoint.getEvaluationMethodType())){ // checkPoint.setEvaluationNowRsR(getScoreIdByRsR(RS_R,riskEvaluationDTO.getEvaluationNowRsR())); // checkPoint.setEvaluationNowRsS(getScoreIdByRsS(RS_S,riskEvaluationDTO.getEvaluationNowRsS())); // // checkPoint.setEvaluationAfterRsR(getScoreIdByRsR(RS_R,riskEvaluationDTO.getEvaluationAfterRsR())); // checkPoint.setEvaluationAfterRsS(getScoreIdByRsS(RS_S,riskEvaluationDTO.getEvaluationAfterRsS())); // } // // //计算分值 // pingFen(checkPoint); // // riskCheckPointService.insertRiskCheckPoint(checkPoint); // } // // return AjaxResult.success("导入成功!"); // } /** * 用于设备设施计划的导入 * @param file * @return * @throws Exception */ @Log(title = "设备设施计划导入", businessType = BusinessType.IMPORT) @PostMapping("/deviceImportData") @ResponseBody @Transactional public AjaxResult deviceImportData(MultipartFile file) throws Exception { User user = ShiroUtils.getSysUser(); ExcelUtil util = new ExcelUtil(RiskEvaluationDTO.class); List deviceList = util.importExcel(file.getInputStream()); RiskList risk = new RiskList(); int tag = 0; RiskEvaluationPlan plan = new RiskEvaluationPlan(); //首先添加设备 for (RiskEvaluationDTO riskEvaluationDTO :deviceList){ //如果不为空,就新增设备 if (StringUtils.isNotEmpty(riskEvaluationDTO.getRiskListName())) { BeanUtils.copyProperties(riskEvaluationDTO, risk); risk.setCompanyId(user.getCompanyId()); risk.setUserId(user.getUserId()); risk.setCreateBy(user.getUserName()); risk.setRiskType(TrRiskTypeEnum.DEVICE.getCode()); //根据名称,替换成对应ID //设备设施类型 String riskType = riskEvaluationDTO.getRiskListDeviceType(); if (StringUtils.isNotEmpty(riskType)) { List riskTypeList = typeService.selectRiskTypeListByCompanyId(user.getCompanyId(), 1); for (RiskType r : riskTypeList) { if (riskType.equals(r.getRiskTypeName())) { risk.setRiskListDeviceType(r.getRiskTypeId()); break; } } if (risk.getRiskListDeviceType()==null){ return AjaxResult.error("{"+riskType+"},该[设备设施类型]未找到"); } } else { return AjaxResult.error("[设备设施类型]不能为空"); } //区域/位置 String region = riskEvaluationDTO.getRegionName(); if (StringUtils.isNotEmpty(region)) { List regionList = regionService.selectRegionListByCompanyId(user.getCompanyId()); for (Region r : regionList) { if (region.equals(r.getRegionName())) { risk.setRegionId(r.getRegionId()); break; } } if (risk.getRegionId()==null){ return AjaxResult.error("{"+region+"},该[区域/位置]未找到"); } } else { return AjaxResult.error("[区域/位置]不能为空"); } //管辖部门/单位 String dept = riskEvaluationDTO.getDeptName(); if (StringUtils.isNotEmpty(dept)) { List deptList = deptService.selectDeptListByCompanyId(user.getCompanyId()); for (Dept d : deptList) { if (dept.equals(d.getDeptName())) { risk.setDeptId(d.getDeptId()); break; } } if (risk.getDeptId()==null){ return AjaxResult.error("{"+dept+"},该[管辖部门/单位]未找到"); } } else { return AjaxResult.error("[管辖部门/单位]不能为空"); } //保存复制过的对象 int addNum = riskListService.insertRiskList(risk); if (addNum > 0){ tag = 1; } } } if (tag == 0){ return AjaxResult.success("导入失败!"); } return AjaxResult.success("导入成功!"); } @Log(title = "作业活动计划导入", businessType = BusinessType.IMPORT) @PostMapping("/workImportData") @ResponseBody @Transactional public AjaxResult workImportData(MultipartFile file) throws Exception { User user = ShiroUtils.getSysUser(); List LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId()); List LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId()); List LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId()); List LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId()); List LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId()); List MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId()); List MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId()); List MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId()); ExcelUtil util = new ExcelUtil(RiskEvaluationDTO.class); List deviceList = util.importExcel(file.getInputStream()); RiskList risk = new RiskList(); RiskEvaluationPlan plan = new RiskEvaluationPlan(); //首先添加设备 for (RiskEvaluationDTO riskEvaluationDTO :deviceList){ //如果不为空,就新增设备 if (StringUtils.isNotEmpty(riskEvaluationDTO.getRiskListName())) { BeanUtils.copyProperties(riskEvaluationDTO, risk); risk.setCompanyId(user.getCompanyId()); risk.setUserId(user.getUserId()); risk.setCreateBy(user.getUserName()); risk.setRiskType(TrRiskTypeEnum.WORK.getCode()); //根据名称,替换成对应ID //作业活动类型 String workType = riskEvaluationDTO.getRiskListWorkType(); if (StringUtils.isNotEmpty(workType)) { List riskTypeList = typeService.selectRiskTypeListByCompanyId(user.getCompanyId(), 2); for (RiskType r : riskTypeList) { if (workType.equals(r.getRiskTypeName())) { risk.setRiskListWorkType(r.getRiskTypeId()); break; } } if (risk.getRiskListWorkType()==null){ return AjaxResult.error("{"+workType+"},该[作业活动类型]未找到"); } } else { return AjaxResult.error("[作业活动类型]不能为空"); } //作业频率 String workFrequency = riskEvaluationDTO.getRiskListWorkFrequency(); if (StringUtils.isNotEmpty(workFrequency)) { List riskTypeList = typeService.selectRiskTypeListByCompanyId(user.getCompanyId(), 4); for (RiskType r : riskTypeList) { if (workFrequency.equals(r.getRiskTypeName())) { risk.setRiskListWorkFrequency(r.getRiskTypeId()); break; } } if (risk.getRiskListWorkFrequency()==null){ return AjaxResult.error("{"+workFrequency+"},该[作业频率]未找到"); } } else { return AjaxResult.error("[作业频率]不能为空"); } //区域/位置 String region = riskEvaluationDTO.getRegionName(); if (StringUtils.isNotEmpty(region)) { List regionList = regionService.selectRegionListByCompanyId(user.getCompanyId()); for (Region r : regionList) { if (region.equals(r.getRegionName())) { risk.setRegionId(r.getRegionId()); break; } } if (risk.getRegionId()==null){ return AjaxResult.error("{"+region+"},该[区域/位置]未找到"); } } else { return AjaxResult.error("[区域/位置]不能为空"); } //管辖部门/单位 String dept = riskEvaluationDTO.getDeptName(); if (StringUtils.isNotEmpty(dept)) { List deptList = deptService.selectDeptListByCompanyId(user.getCompanyId()); for (Dept d : deptList) { if (dept.equals(d.getDeptName())) { risk.setDeptId(d.getDeptId()); break; } } if (risk.getDeptId()==null){ return AjaxResult.error("{"+dept+"},该[管辖部门/单位]未找到"); } } else { return AjaxResult.error("[管辖部门/单位]不能为空"); } //保存复制过的对象 int addNum = riskListService.insertRiskList(risk); if (addNum<= 0){ throw new Exception("设备导入失败!"); } } //新增设备后继续新增计划,评价计划是否存在 if (StringUtils.isNotEmpty(riskEvaluationDTO.getEvaluationPlanName())){ BeanUtils.copyProperties(riskEvaluationDTO,plan); //保存复制过的对象 plan.setEvaluationRiskId(risk.getRiskListId()); plan.setCompanyId(user.getCompanyId()); plan.setPlanUserId(user.getUserId()); plan.setIdentifyUserId(user.getUserId()); plan.setPlanStatus(2); plan.setStageStatus(4); plan.setIdentifyStatus(2); plan.setEvaluationType(2); plan.setRiskIdentifyMethod(2); int addNum = riskEvaluationPlanService.insertRiskEvaluationPlan(plan); if (addNum<=0){ throw new Exception("计划导入失败!"); } } System.out.println(plan); //新增过计划后,增加检查点, RiskCheckPoint checkPoint = new RiskCheckPoint(); BeanUtils.copyProperties(riskEvaluationDTO,checkPoint); checkPoint.setPlanId(plan.getPlanId()); checkPoint.setEvaluationUserId(user.getUserId()); checkPoint.setReviewUserId(user.getUserId()); checkPoint.setEvaluationStatus(2); checkPoint.setReviewStatus(2); checkPoint.setCompanyId(user.getCompanyId()); //根据分数信息,和选择评分类型,查找用户选择的分级 if (TrEvaluationMethodTypeEnum.LS.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationNowLsL())); checkPoint.setEvaluationNowLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationNowLsS())); checkPoint.setEvaluationAfterLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationAfterLsL())); checkPoint.setEvaluationAfterLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationAfterLsS())); }else if(TrEvaluationMethodTypeEnum.LEC.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationNowLecL())); checkPoint.setEvaluationNowLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationNowLecE())); checkPoint.setEvaluationNowLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationNowLecC())); checkPoint.setEvaluationAfterLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationAfterLecL())); checkPoint.setEvaluationAfterLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationAfterLecE())); checkPoint.setEvaluationAfterLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationAfterLecC())); }else if(TrEvaluationMethodTypeEnum.MES.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationNowMesM())); checkPoint.setEvaluationNowMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationNowMesE())); checkPoint.setEvaluationNowMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationNowMesS())); checkPoint.setEvaluationAfterMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationAfterMesM())); checkPoint.setEvaluationAfterMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationAfterMesE())); checkPoint.setEvaluationAfterMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationAfterMesS())); } pingFen(checkPoint); riskCheckPointService.insertRiskCheckPoint(checkPoint); } return AjaxResult.success("导入成功!"); } @Log(title = "工艺节点计划导入", businessType = BusinessType.IMPORT) @PostMapping("/craftsImportData") @ResponseBody @Transactional public AjaxResult craftsImportData(MultipartFile file) throws Exception { User user = ShiroUtils.getSysUser(); List LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId()); List LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId()); List LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId()); List LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId()); List LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId()); List MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId()); List MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId()); List MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId()); ExcelUtil util = new ExcelUtil(RiskEvaluationDTO.class); List deviceList = util.importExcel(file.getInputStream()); RiskList risk = new RiskList(); RiskEvaluationPlan plan = new RiskEvaluationPlan(); //首先添加工艺节点 for (RiskEvaluationDTO riskEvaluationDTO :deviceList){ //如果不为空,就新增设备 if (StringUtils.isNotEmpty(riskEvaluationDTO.getRiskListName())) { BeanUtils.copyProperties(riskEvaluationDTO, risk); risk.setCompanyId(user.getCompanyId()); risk.setUserId(user.getUserId()); risk.setCreateBy(user.getUserName()); risk.setRiskType(TrRiskTypeEnum.CRAFTS.getCode()); //根据名称,替换成对应ID //工艺节点类型 String craftsType = riskEvaluationDTO.getRiskListCraftsType(); if (StringUtils.isNotEmpty(craftsType)) { List riskTypeList = typeService.selectRiskTypeListByCompanyId(user.getCompanyId(), 3); for (RiskType r : riskTypeList) { if (craftsType.equals(r.getRiskTypeName())) { risk.setRiskListCraftsType(r.getRiskTypeId()); break; } } if (risk.getRiskListCraftsType()==null){ return AjaxResult.error("{"+craftsType+"},该[工艺节点类型]未找到"); } } else { return AjaxResult.error("[工艺节点类型]不能为空"); } //区域/位置 String region = riskEvaluationDTO.getRegionName(); if (StringUtils.isNotEmpty(region)) { List regionList = regionService.selectRegionListByCompanyId(user.getCompanyId()); for (Region r : regionList) { if (region.equals(r.getRegionName())) { risk.setRegionId(r.getRegionId()); break; } } if (risk.getRegionId()==null){ return AjaxResult.error("{"+region+"},该[区域/位置]未找到"); } } else { return AjaxResult.error("[区域/位置]不能为空"); } //管辖部门/单位 String dept = riskEvaluationDTO.getDeptName(); if (StringUtils.isNotEmpty(dept)) { List deptList = deptService.selectDeptListByCompanyId(user.getCompanyId()); for (Dept d : deptList) { if (dept.equals(d.getDeptName())) { risk.setDeptId(d.getDeptId()); break; } } if (risk.getDeptId()==null){ return AjaxResult.error("{"+dept+"},该[管辖部门/单位]未找到"); } } else { return AjaxResult.error("[管辖部门/单位]不能为空"); } //保存复制过的对象 int addNum = riskListService.insertRiskList(risk); if (addNum<= 0){ throw new Exception("设备导入失败!"); } } //新增设备后继续新增计划,评价计划是否存在 if (StringUtils.isNotEmpty(riskEvaluationDTO.getEvaluationPlanName())){ BeanUtils.copyProperties(riskEvaluationDTO,plan); //保存复制过的对象 plan.setEvaluationRiskId(risk.getRiskListId()); plan.setCompanyId(user.getCompanyId()); plan.setPlanUserId(user.getUserId()); plan.setIdentifyUserId(user.getUserId()); plan.setPlanStatus(2); plan.setStageStatus(4); plan.setIdentifyStatus(2); plan.setEvaluationType(3); plan.setRiskIdentifyMethod(3); int addNum = riskEvaluationPlanService.insertRiskEvaluationPlan(plan); if (addNum<=0){ throw new Exception("计划导入失败!"); } } System.out.println(plan); //新增过计划后,增加检查点, RiskCheckPoint checkPoint = new RiskCheckPoint(); BeanUtils.copyProperties(riskEvaluationDTO,checkPoint); checkPoint.setPlanId(plan.getPlanId()); checkPoint.setEvaluationUserId(user.getUserId()); checkPoint.setReviewUserId(user.getUserId()); checkPoint.setEvaluationStatus(2); checkPoint.setReviewStatus(2); checkPoint.setCompanyId(user.getCompanyId()); //根据分数信息,和选择评分类型,查找用户选择的分级 if (TrEvaluationMethodTypeEnum.LS.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationNowLsL())); checkPoint.setEvaluationNowLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationNowLsS())); checkPoint.setEvaluationAfterLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationAfterLsL())); checkPoint.setEvaluationAfterLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationAfterLsS())); }else if(TrEvaluationMethodTypeEnum.LEC.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationNowLecL())); checkPoint.setEvaluationNowLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationNowLecE())); checkPoint.setEvaluationNowLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationNowLecC())); checkPoint.setEvaluationAfterLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationAfterLecL())); checkPoint.setEvaluationAfterLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationAfterLecE())); checkPoint.setEvaluationAfterLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationAfterLecC())); }else if(TrEvaluationMethodTypeEnum.MES.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationNowMesM())); checkPoint.setEvaluationNowMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationNowMesE())); checkPoint.setEvaluationNowMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationNowMesS())); checkPoint.setEvaluationAfterMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationAfterMesM())); checkPoint.setEvaluationAfterMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationAfterMesE())); checkPoint.setEvaluationAfterMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationAfterMesS())); } pingFen(checkPoint); riskCheckPointService.insertRiskCheckPoint(checkPoint); } return AjaxResult.success("导入成功!"); } /** * 用于区域计划的导入 * @param file * @return * @throws Exception */ @Log(title = "设备设施计划导入", businessType = BusinessType.IMPORT) @PostMapping("/roomImportData") @ResponseBody @Transactional public AjaxResult roomImportData(MultipartFile file) throws Exception { User user = ShiroUtils.getSysUser(); //查询各个评分所用的准则明细 List LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId()); List LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId()); List LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId()); List LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId()); List LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId()); List MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId()); List MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId()); List MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId()); ExcelUtil util = new ExcelUtil(RiskEvaluationDTO.class); List deviceList = util.importExcel(file.getInputStream()); RiskList risk = new RiskList(); RiskEvaluationPlan plan = new RiskEvaluationPlan(); //首先添加设备 for (RiskEvaluationDTO riskEvaluationDTO :deviceList){ //如果不为空,就新增设备 if (StringUtils.isNotEmpty(riskEvaluationDTO.getRiskListName())) { BeanUtils.copyProperties(riskEvaluationDTO, risk); risk.setCompanyId(user.getCompanyId()); risk.setUserId(user.getUserId()); risk.setCreateBy(user.getUserName()); risk.setRiskType(TrRiskTypeEnum.ROOM.getCode()); //根据名称,替换成对应ID //设备设施类型 String riskType = riskEvaluationDTO.getRiskListDeviceType(); if (StringUtils.isNotEmpty(riskType)) { List riskTypeList = typeService.selectRiskTypeListByCompanyId(user.getCompanyId(), 1); for (RiskType r : riskTypeList) { if (riskType.equals(r.getRiskTypeName())) { risk.setRiskListDeviceType(r.getRiskTypeId()); break; } } if (risk.getRiskListDeviceType()==null){ return AjaxResult.error("{"+riskType+"},该[设备设施类型]未找到"); } } else { return AjaxResult.error("[设备设施类型]不能为空"); } //区域/位置 String region = riskEvaluationDTO.getRegionName(); if (StringUtils.isNotEmpty(region)) { List regionList = regionService.selectRegionListByCompanyId(user.getCompanyId()); for (Region r : regionList) { if (region.equals(r.getRegionName())) { risk.setRegionId(r.getRegionId()); break; } } if (risk.getRegionId()==null){ return AjaxResult.error("{"+region+"},该[区域/位置]未找到"); } } else { return AjaxResult.error("[区域/位置]不能为空"); } //管辖部门/单位 String dept = riskEvaluationDTO.getDeptName(); if (StringUtils.isNotEmpty(dept)) { List deptList = deptService.selectDeptListByCompanyId(user.getCompanyId()); for (Dept d : deptList) { if (dept.equals(d.getDeptName())) { risk.setDeptId(d.getDeptId()); break; } } if (risk.getDeptId()==null){ return AjaxResult.error("{"+dept+"},该[管辖部门/单位]未找到"); } } else { return AjaxResult.error("[管辖部门/单位]不能为空"); } //保存复制过的对象 int addNum = riskListService.insertRiskList(risk); if (addNum<= 0){ throw new Exception("设备导入失败!"); } } //新增设备后继续新增计划,评价计划是否存在 if (StringUtils.isNotEmpty(riskEvaluationDTO.getEvaluationPlanName())){ BeanUtils.copyProperties(riskEvaluationDTO,plan); //保存复制过的对象 plan.setEvaluationRiskId(risk.getRiskListId()); plan.setCompanyId(user.getCompanyId()); plan.setPlanUserId(user.getUserId()); plan.setIdentifyUserId(user.getUserId()); plan.setPlanStatus(2); plan.setStageStatus(4); plan.setIdentifyStatus(2); plan.setEvaluationType(1); plan.setRiskIdentifyMethod(1); int addNum = riskEvaluationPlanService.insertRiskEvaluationPlan(plan); if (addNum<=0){ throw new Exception("计划导入失败!"); } } System.out.println(plan); //新增过计划后,增加检查点, RiskCheckPoint checkPoint = new RiskCheckPoint(); BeanUtils.copyProperties(riskEvaluationDTO,checkPoint); checkPoint.setPlanId(plan.getPlanId()); checkPoint.setEvaluationUserId(user.getUserId()); checkPoint.setReviewUserId(user.getUserId()); checkPoint.setEvaluationStatus(2); checkPoint.setReviewStatus(2); checkPoint.setCompanyId(user.getCompanyId()); //根据分数信息,和选择评分类型,查找用户选择的分级 if (TrEvaluationMethodTypeEnum.LS.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationNowLsL())); checkPoint.setEvaluationNowLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationNowLsS())); checkPoint.setEvaluationAfterLsL(getScoreId(LS_L,riskEvaluationDTO.getEvaluationAfterLsL())); checkPoint.setEvaluationAfterLsS(getScoreId(LS_S,riskEvaluationDTO.getEvaluationAfterLsS())); }else if(TrEvaluationMethodTypeEnum.LEC.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationNowLecL())); checkPoint.setEvaluationNowLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationNowLecE())); checkPoint.setEvaluationNowLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationNowLecC())); checkPoint.setEvaluationAfterLecL(getScoreId(LEC_L,riskEvaluationDTO.getEvaluationAfterLecL())); checkPoint.setEvaluationAfterLecE(getScoreId(LEC_E,riskEvaluationDTO.getEvaluationAfterLecE())); checkPoint.setEvaluationAfterLecC(getScoreId(LEC_C,riskEvaluationDTO.getEvaluationAfterLecC())); }else if(TrEvaluationMethodTypeEnum.MES.getMethodId().equals(checkPoint.getEvaluationMethodType())){ checkPoint.setEvaluationNowMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationNowMesM())); checkPoint.setEvaluationNowMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationNowMesE())); checkPoint.setEvaluationNowMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationNowMesS())); checkPoint.setEvaluationAfterMesM(getScoreId(MES_M,riskEvaluationDTO.getEvaluationAfterMesM())); checkPoint.setEvaluationAfterMesE(getScoreId(MES_E,riskEvaluationDTO.getEvaluationAfterMesE())); checkPoint.setEvaluationAfterMesS(getScoreId(MES_S,riskEvaluationDTO.getEvaluationAfterMesS())); } //计算分值 pingFen(checkPoint); riskCheckPointService.insertRiskCheckPoint(checkPoint); } return AjaxResult.success("导入成功!"); } /** * 根据分数,获取到该分数的 * @param list * @param score * @return */ private Long getScoreId(List list,BigDecimal score){ for (CriterionDetail detail : list){ if (score.compareTo(detail.getDetailScore())==0){ return detail.getDetailId(); } } return 0L; } /** * * @param list * @param score * @return */ private Long getScoreIdByRsR(List list,String score){ for (CriterionDetail detail : list){ if (score.equals(detail.getRsRKenengxing())){ return detail.getDetailId(); } } return 0L; } private Long getScoreIdByRsS(List list,String score){ for (CriterionDetail detail : list){ if (score.equals(detail.getRsSDengji())){ return detail.getDetailId(); } } return 0L; } /** * 分数计算方法 * @param riskCheckPoint */ private void pingFen(RiskCheckPoint riskCheckPoint){ //计算之前评分 CriterionDetailDTO now = new CriterionDetailDTO(); now.setEvaluationMethodType(riskCheckPoint.getEvaluationMethodType()); now.setLS_L(riskCheckPoint.getEvaluationNowLsL()); now.setLS_S(riskCheckPoint.getEvaluationNowLsS()); now.setLEC_L(riskCheckPoint.getEvaluationNowLecL()); now.setLEC_E(riskCheckPoint.getEvaluationNowLecE()); now.setLEC_C(riskCheckPoint.getEvaluationNowLecC()); now.setMES_M(riskCheckPoint.getEvaluationNowMesM()); now.setMES_E(riskCheckPoint.getEvaluationNowMesE()); now.setMES_S(riskCheckPoint.getEvaluationNowMesS()); now.setRS_R(riskCheckPoint.getEvaluationNowRsR()); now.setRS_S(riskCheckPoint.getEvaluationNowRsS()); HashMap nowMap = criterionDetailService.calculation(now); riskCheckPoint.setEvaluationNowFengxianzhi(nowMap.get("Fengxianzhi")); riskCheckPoint.setEvaluationNowJibie(nowMap.get("Jibie")); riskCheckPoint.setEvaluationNowFengxianJibie(nowMap.get("FengxianJibie")); riskCheckPoint.setEvaluationNowFengxianse(nowMap.get("Fengxianse")); riskCheckPoint.setEvaluationNowGuankongCengji(nowMap.get("GuankongCengji")); //计算建议后评分 CriterionDetailDTO after = new CriterionDetailDTO(); after.setEvaluationMethodType(riskCheckPoint.getEvaluationMethodType()); after.setLS_L(riskCheckPoint.getEvaluationAfterLsL()); after.setLS_S(riskCheckPoint.getEvaluationAfterLsS()); after.setLEC_L(riskCheckPoint.getEvaluationAfterLecL()); after.setLEC_E(riskCheckPoint.getEvaluationAfterLecE()); after.setLEC_C(riskCheckPoint.getEvaluationAfterLecC()); after.setMES_M(riskCheckPoint.getEvaluationAfterMesM()); after.setMES_E(riskCheckPoint.getEvaluationAfterMesE()); after.setMES_S(riskCheckPoint.getEvaluationAfterMesS()); after.setRS_R(riskCheckPoint.getEvaluationAfterRsR()); after.setRS_S(riskCheckPoint.getEvaluationAfterRsS()); HashMap afterMap = criterionDetailService.calculation(after); riskCheckPoint.setEvaluationAfterFengxianzhi(afterMap.get("Fengxianzhi")); riskCheckPoint.setEvaluationAfterJibie(afterMap.get("Jibie")); riskCheckPoint.setEvaluationAfterFengxianJibie(afterMap.get("FengxianJibie")); riskCheckPoint.setEvaluationAfterFengxianse(afterMap.get("Fengxianse")); riskCheckPoint.setEvaluationAfterGuankongCengji(afterMap.get("GuankongCengji")); } }