package com.ruoyi.project.tr.criterionDetail.controller;
|
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
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.framework.web.page.TableDataInfo;
|
import com.ruoyi.project.enumerate.TrEvaluationMethodDetailsEnum;
|
import com.ruoyi.project.enumerate.TrEvaluationMethodTypeEnum;
|
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.determination.domain.Determination;
|
import com.ruoyi.project.tr.determination.service.IDeterminationService;
|
import com.ruoyi.project.tr.riskCheckPoint.domain.RiskCheckPoint;
|
import com.ruoyi.project.tr.riskLevel.domain.RiskLevel;
|
import com.ruoyi.project.tr.riskLevel.service.IRiskLevelService;
|
import com.ruoyi.project.tr.rsStandard.domain.RsStandard;
|
import com.ruoyi.project.tr.rsStandard.service.IRsStandardService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* 准则明细Controller
|
*
|
* @author wm
|
* @date 2020-05-05
|
*/
|
@Controller
|
@RequestMapping("/tr/criterionDetail")
|
public class CriterionDetailController extends BaseController
|
{
|
private String prefix = "tr/criterionDetail";
|
|
@Autowired
|
private ICriterionDetailService criterionDetailService;
|
|
@Autowired
|
private IRiskLevelService riskLevelService;
|
|
@Autowired
|
private IDeterminationService determinationService;
|
|
@Autowired
|
private IRsStandardService rsStandardService;
|
|
@GetMapping()
|
public String criterionDetail()
|
{
|
return prefix + "/criterionDetail";
|
}
|
|
/**
|
* 查询准则明细列表
|
*/
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(CriterionDetail criterionDetail)
|
{
|
startPage();
|
List<CriterionDetail> list = criterionDetailService.selectCriterionDetailList(criterionDetail);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出准则明细列表
|
*/
|
@Log(title = "准则明细", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
@ResponseBody
|
public AjaxResult export(CriterionDetail criterionDetail)
|
{
|
List<CriterionDetail> list = criterionDetailService.selectCriterionDetailList(criterionDetail);
|
ExcelUtil<CriterionDetail> util = new ExcelUtil<CriterionDetail>(CriterionDetail.class);
|
return util.exportExcel(list, "criterionDetail");
|
}
|
|
/**
|
* 新增准则明细
|
*/
|
@GetMapping("/add")
|
public String add()
|
{
|
return prefix + "/add";
|
}
|
|
/**
|
* 新增保存准则明细
|
*/
|
@Log(title = "准则明细", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
@ResponseBody
|
public AjaxResult addSave(CriterionDetail criterionDetail)
|
{
|
return toAjax(criterionDetailService.insertCriterionDetail(criterionDetail));
|
}
|
|
/**
|
* 修改准则明细
|
*/
|
@GetMapping("/edit/{detailId}")
|
public String edit(@PathVariable("detailId") Long detailId, ModelMap mmap)
|
{
|
CriterionDetail criterionDetail = criterionDetailService.selectCriterionDetailById(detailId);
|
mmap.put("criterionDetail", criterionDetail);
|
return prefix + "/edit";
|
}
|
|
/**
|
* 修改保存准则明细
|
*/
|
@Log(title = "准则明细", businessType = BusinessType.UPDATE)
|
@PostMapping("/edit")
|
@ResponseBody
|
public AjaxResult editSave(CriterionDetail criterionDetail)
|
{
|
return toAjax(criterionDetailService.updateCriterionDetail(criterionDetail));
|
}
|
|
/**
|
* 删除准则明细
|
*/
|
@Log(title = "准则明细", businessType = BusinessType.DELETE)
|
@PostMapping( "/remove")
|
@ResponseBody
|
public AjaxResult remove(String ids)
|
{
|
return toAjax(criterionDetailService.deleteCriterionDetailByIds(ids));
|
}
|
|
|
/**
|
* 根据方法跳至不同的方法选择列表
|
* @param criterion
|
* @param time 时间标识
|
* Now
|
* After
|
* @param mmap
|
* @return
|
*/
|
@GetMapping("/getDetial/{criterion}/{time}")
|
public String getDetial(@PathVariable("criterion") String criterion,
|
@PathVariable("time") String time,
|
ModelMap mmap) {
|
mmap.put("time",time);
|
|
if (TrEvaluationMethodDetailsEnum.LS_L.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.LS_L.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.LS_S.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.LS_S.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.LEC_L.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.LEC_L.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.LEC_E.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.LEC_E.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.LEC_C.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.LEC_C.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.MES_M.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.MES_M.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.MES_E.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.MES_E.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.MES_S.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.MES_S.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.RS_R.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.RS_R.getCriterionId());
|
}else if (TrEvaluationMethodDetailsEnum.RS_S.getUrl().equals(criterion)){
|
mmap.put("criterionId",TrEvaluationMethodDetailsEnum.RS_S.getCriterionId());
|
}
|
|
|
return prefix + "/criterion"+criterion;
|
}
|
|
|
//用于计算评价结果
|
@PostMapping( "/calculation")
|
@ResponseBody
|
public AjaxResult calculation(CriterionDetailDTO criterionDetailDTO)
|
{
|
Integer methodId = criterionDetailDTO.getEvaluationMethodType();
|
|
BigDecimal sum = BigDecimal.ZERO;
|
|
if (TrEvaluationMethodTypeEnum.LS.getMethodId().equals(methodId)) {
|
if(criterionDetailDTO.getLS_L()!=null && criterionDetailDTO.getLS_S()!=null){
|
//LS 评分方法积分
|
CriterionDetail l = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getLS_L());
|
CriterionDetail s = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getLS_S());
|
sum = l.getDetailScore().multiply(s.getDetailScore());
|
}
|
|
}else if (TrEvaluationMethodTypeEnum.LEC.getMethodId().equals(criterionDetailDTO.getEvaluationMethodType())){
|
if(criterionDetailDTO.getLEC_L()!=null && criterionDetailDTO.getLEC_E()!=null && criterionDetailDTO.getLEC_C()!=null){
|
//LEC 评分方法积分
|
CriterionDetail l = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getLEC_L());
|
CriterionDetail e = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getLEC_E());
|
CriterionDetail c = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getLEC_C());
|
sum = l.getDetailScore().multiply(e.getDetailScore()).multiply(c.getDetailScore());
|
}
|
|
}else if (TrEvaluationMethodTypeEnum.MES.getMethodId().equals(criterionDetailDTO.getEvaluationMethodType())){
|
if(criterionDetailDTO.getMES_M()!=null && criterionDetailDTO.getMES_E()!=null && criterionDetailDTO.getMES_S()!=null){
|
//MES 评分方法积分
|
CriterionDetail m = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getMES_M());
|
CriterionDetail e = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getMES_E());
|
CriterionDetail s = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getMES_S());
|
sum = m.getDetailScore().multiply(e.getDetailScore()).multiply(s.getDetailScore());
|
}
|
}else if (TrEvaluationMethodTypeEnum.RS.getMethodId().equals(criterionDetailDTO.getEvaluationMethodType())){
|
if(criterionDetailDTO.getRS_R()!=null && criterionDetailDTO.getRS_S()!=null){
|
//MES 评分方法积分
|
CriterionDetail r = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getRS_R());
|
CriterionDetail s = criterionDetailService.selectCriterionDetailById(criterionDetailDTO.getRS_S());
|
|
//根据对应 的可能性,和等级,获取确切的分值
|
RsStandard rsStandard = rsStandardService.selectRsStandardByKenengxingAndDengji(r.getRsRKenengxing(),s.getRsSDengji()) ;
|
|
if (StringUtils.isNotNull(rsStandard)){
|
sum = rsStandard.getResult();
|
}
|
}
|
}
|
|
//查询判断标准
|
List <Determination> determinationList = determinationService.selectDeterminationListByMethod(Long.parseLong(methodId.toString()));
|
|
Determination d_result =new Determination();
|
for(Determination d : determinationList){
|
//判断是否在这条范围之内
|
boolean flag = (sum.compareTo(d.getRiskMinNum())>0&& sum.compareTo(d.getRiskMaxNum())<0)
|
||sum.compareTo(d.getRiskMinNum())==0|| sum.compareTo(d.getRiskMaxNum())==0;
|
if(flag){
|
d_result =d;
|
}
|
}
|
|
//查询颜色标准
|
List <RiskLevel> riskLevelList = riskLevelService.selectRiskLevelListByMethodId(Long.parseLong(methodId.toString()));
|
RiskLevel r_result = new RiskLevel();
|
for(RiskLevel r : riskLevelList){
|
//判断是否在这条范围之内
|
boolean flag =(sum.compareTo(r.getLevelBeginNum())>0&& sum.compareTo(r.getLevelEndNum())<0)
|
||sum.compareTo(r.getLevelBeginNum())==0 ||sum.compareTo(r.getLevelEndNum())==0;
|
if(flag){
|
r_result =r;
|
}
|
}
|
|
RiskCheckPoint checkPoint = new RiskCheckPoint();
|
|
|
sum = sum.setScale(2);
|
|
/** 现有措施评价风险值 */
|
checkPoint.setEvaluationNowFengxianzhi(sum.toString());
|
/** 现有措施评价级别 */
|
checkPoint.setEvaluationNowJibie(d_result.getRiskLevel());
|
/** 现有措施评价风险级别 */
|
checkPoint.setEvaluationNowFengxianJibie(r_result.getRiskLevel());
|
/** 现有措施评价风险色 */
|
checkPoint.setEvaluationNowFengxianse(r_result.getLevelColor());
|
/** 现有措施评价管控层级(1班组级,2车间级,3部门级,4公司级) */
|
checkPoint.setEvaluationNowGuankongCengji(r_result.getLevelControlLevel());
|
|
return AjaxResult.success(checkPoint);
|
|
}
|
|
|
}
|