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<CriterionDetail> LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId());
|
List<CriterionDetail> LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId());
|
|
List<CriterionDetail> LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId());
|
List<CriterionDetail> LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId());
|
List<CriterionDetail> LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId());
|
|
List<CriterionDetail> MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId());
|
List<CriterionDetail> MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId());
|
List<CriterionDetail> MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId());
|
|
List<CriterionDetail> RS_R = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.RS_R.getCriterionId());
|
List<CriterionDetail> RS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.RS_S.getCriterionId());
|
|
|
|
ExcelUtil<RiskEvaluationDTO> util = new ExcelUtil<RiskEvaluationDTO>(RiskEvaluationDTO.class);
|
List<RiskEvaluationDTO> 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<RiskType> 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<Region> 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<Dept> 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("导入成功!");
|
}
|
|
|
@Log(title = "作业活动计划导入", businessType = BusinessType.IMPORT)
|
@PostMapping("/workImportData")
|
@ResponseBody
|
@Transactional
|
public AjaxResult workImportData(MultipartFile file) throws Exception {
|
User user = ShiroUtils.getSysUser();
|
|
List<CriterionDetail> LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId());
|
List<CriterionDetail> LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId());
|
|
List<CriterionDetail> LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId());
|
List<CriterionDetail> LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId());
|
List<CriterionDetail> LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId());
|
|
List<CriterionDetail> MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId());
|
List<CriterionDetail> MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId());
|
List<CriterionDetail> MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId());
|
|
ExcelUtil<RiskEvaluationDTO> util = new ExcelUtil<RiskEvaluationDTO>(RiskEvaluationDTO.class);
|
List<RiskEvaluationDTO> 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<RiskType> 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<RiskType> 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<Region> 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<Dept> 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<CriterionDetail> LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId());
|
List<CriterionDetail> LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId());
|
|
List<CriterionDetail> LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId());
|
List<CriterionDetail> LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId());
|
List<CriterionDetail> LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId());
|
|
List<CriterionDetail> MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId());
|
List<CriterionDetail> MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId());
|
List<CriterionDetail> MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId());
|
|
ExcelUtil<RiskEvaluationDTO> util = new ExcelUtil<RiskEvaluationDTO>(RiskEvaluationDTO.class);
|
List<RiskEvaluationDTO> 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<RiskType> 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<Region> 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<Dept> 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<CriterionDetail> LS_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_L.getCriterionId());
|
List<CriterionDetail> LS_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LS_S.getCriterionId());
|
|
List<CriterionDetail> LEC_L = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId());
|
List<CriterionDetail> LEC_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId());
|
List<CriterionDetail> LEC_C = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId());
|
|
List<CriterionDetail> MES_M = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_M.getCriterionId());
|
List<CriterionDetail> MES_E = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_E.getCriterionId());
|
List<CriterionDetail> MES_S = criterionDetailService.selectCriterionDetailListByCriterionId(TrEvaluationMethodDetailsEnum.MES_S.getCriterionId());
|
|
ExcelUtil<RiskEvaluationDTO> util = new ExcelUtil<RiskEvaluationDTO>(RiskEvaluationDTO.class);
|
List<RiskEvaluationDTO> 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<RiskType> 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<Region> 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<Dept> 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<CriterionDetail> 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<CriterionDetail> list,String score){
|
for (CriterionDetail detail : list){
|
if (score.equals(detail.getRsRKenengxing())){
|
return detail.getDetailId();
|
}
|
}
|
return 0L;
|
}
|
|
private Long getScoreIdByRsS(List<CriterionDetail> 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<String ,String> 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<String ,String> 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"));
|
|
}
|
|
|
|
|
}
|