| | |
| | | if (dto.areRiskLevelsDistinct()) { |
| | | throw new ServiceException("得分范围不能重叠"); |
| | | } |
| | | //查询是否有该指标配置 |
| | | // 查询是否有该指标配置 |
| | | TbDataScreenConfig tbDataScreenConfig = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, DataScreenConfigEnum.RISK_LEVEL) |
| | | .oneOpt().orElseGet(() -> BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class)); |
| | | List<CalculateItemDTO> calculateItemList = dto.getCalculateItemList(); |
| | | validateCalculateItemList(calculateItemList); |
| | | String numberCalculateFormulaJsonStr = JSON.toJSONString(calculateItemList); |
| | | tbDataScreenConfig.setCalculateFormula(numberCalculateFormulaJsonStr); |
| | | // List<CalculateItemDTO> calculateItemList = dto.getCalculateItemList(); |
| | | // validateCalculateItemList(calculateItemList); |
| | | // String numberCalculateFormulaJsonStr = JSON.toJSONString(calculateItemList); |
| | | // tbDataScreenConfig.setCalculateFormula(numberCalculateFormulaJsonStr); |
| | | tbDataScreenConfig.setNoRisk(dto.getNoRisk()); |
| | | tbDataScreenConfig.setLowRisk(dto.getLowRisk()); |
| | | tbDataScreenConfig.setMediumRisk(dto.getMediumRisk()); |
| | | tbDataScreenConfig.setHighRisk(dto.getHighRisk()); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.RISK_LEVEL); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | DataScreenConfigVO dataScreenConfigVO = BeanUtils.copyBean(tbDataScreenConfig, |
| | | DataScreenConfigVO.class); |
| | | dataScreenConfigVO.setRateCalculateList(calculateItemList); |
| | | // dataScreenConfigVO.setRateCalculateList(calculateItemList); |
| | | return dataScreenConfigVO; |
| | | } |
| | | |
| | |
| | | if (result) { |
| | | throw new ServiceException("计算表达式有误,请修改"); |
| | | } |
| | | //参数校验 |
| | | // 参数校验 |
| | | String numberCalculateFormulaStr = calculateItemList.stream() |
| | | .map(CalculateItemDTO::getContent) |
| | | .collect(Collectors.joining()); |
| | | //校验表达式是否正确 |
| | | // 校验表达式是否正确 |
| | | try { |
| | | CalculateUtil.calculate(numberCalculateFormulaStr); |
| | | } catch (Exception e) { |
| | |
| | | } |
| | | } |
| | | |
| | | //表达式校验 |
| | | // 表达式校验 |
| | | public boolean hasConsecutiveDuplicates(List<CalculateItemDTO> calculateItemList) { |
| | | return IntStream.range(1, calculateItemList.size()) |
| | | .anyMatch(i -> calculateItemList.get(i - 1).getValueType() |
| | |
| | | public List<DataScreenConfigVO> editDataIndicatorsConfig(List<DataIndicatorsUpdDTO> dtoList) { |
| | | List<DataScreenConfigVO> vosList = new ArrayList<>(); |
| | | for (DataIndicatorsUpdDTO dto : dtoList) { |
| | | //查询是否有该指标配置 |
| | | // 查询是否有该指标配置 |
| | | TbDataScreenConfig tbDataScreenConfig = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, DataScreenConfigEnum.DATA_INDICATORS) |
| | | .eq(TbDataScreenConfig::getSubType, |
| | |
| | | List<FormalIndicatorsUpdDTO> dtoList) { |
| | | List<DataScreenConfigVO> vosList = new ArrayList<>(); |
| | | for (FormalIndicatorsUpdDTO dto : dtoList) { |
| | | //查询是否有该指标配置 |
| | | // 查询是否有该指标配置 |
| | | TbDataScreenConfig tbDataScreenConfig = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, DataScreenConfigEnum.FORMAL_INDICATORS) |
| | | .eq(TbDataScreenConfig::getSubType, |