| | |
| | | import com.ruoyi.system.mapper.TbDataScreenConfigMapper; |
| | | import com.ruoyi.system.service.TbDataScreenConfigService; |
| | | import com.ruoyi.system.vo.DataScreenConfigVO; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public DataScreenConfigVO editRiskLevel(RiskLevelUpdDTO dto) { |
| | | if (dto.areRiskLevelsDistinct()) { |
| | | /* if (dto.areRiskLevelsDistinct()) { |
| | | throw new ServiceException("得分范围不能重叠"); |
| | | } |
| | | }*/ |
| | | //查询是否有该指标配置 |
| | | TbDataScreenConfig tbDataScreenConfig = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, DataScreenConfigEnum.RISK_LEVEL) |
| | |
| | | } |
| | | } |
| | | |
| | | //表达式校验 |
| | | public boolean hasConsecutiveDuplicates(List<CalculateItemDTO> calculateItemList) { |
| | | return IntStream.range(1, calculateItemList.size()) |
| | | .anyMatch(i -> calculateItemList.get(i - 1).getValueType() |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public DataScreenConfigVO editDataIndicatorsConfig(DataIndicatorsUpdDTO dto) { |
| | | //查询是否有该指标配置 |
| | | TbDataScreenConfig tbDataScreenConfig = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, DataScreenConfigEnum.DATA_INDICATORS) |
| | | .eq(TbDataScreenConfig::getSubType, |
| | | dto.getSubType()).oneOpt().orElseGet(() -> BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class)); |
| | | List<CalculateItemDTO> scoreCalculateList = dto.getScoreCalculateList(); |
| | | List<CalculateItemDTO> rateCalculateList = dto.getRateCalculateList(); |
| | | validateCalculateItemList(scoreCalculateList); |
| | | validateCalculateItemList(rateCalculateList); |
| | | String scoreCalculateFormulaJsonStr = JSON.toJSONString(scoreCalculateList); |
| | | tbDataScreenConfig.setCalculateFormula(scoreCalculateFormulaJsonStr); |
| | | String rateCalculateFormulaJsonStr = JSON.toJSONString(rateCalculateList); |
| | | tbDataScreenConfig.setCalculateRateFormula(rateCalculateFormulaJsonStr); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.DATA_INDICATORS); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | DataScreenConfigVO dataScreenConfigVO = BeanUtils.copyBean(tbDataScreenConfig, |
| | | DataScreenConfigVO.class); |
| | | dataScreenConfigVO.setScoreCalculateList(scoreCalculateList); |
| | | dataScreenConfigVO.setRateCalculateList(rateCalculateList); |
| | | return dataScreenConfigVO; |
| | | 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, |
| | | dto.getSubType()).oneOpt().orElseGet(() -> BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class)); |
| | | List<CalculateItemDTO> scoreCalculateList = dto.getScoreCalculateList(); |
| | | List<CalculateItemDTO> rateCalculateList = dto.getRateCalculateList(); |
| | | validateCalculateItemList(scoreCalculateList); |
| | | validateCalculateItemList(rateCalculateList); |
| | | String scoreCalculateFormulaJsonStr = JSON.toJSONString(scoreCalculateList); |
| | | tbDataScreenConfig.setCalculateFormula(scoreCalculateFormulaJsonStr); |
| | | String rateCalculateFormulaJsonStr = JSON.toJSONString(rateCalculateList); |
| | | tbDataScreenConfig.setCalculateRateFormula(rateCalculateFormulaJsonStr); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.DATA_INDICATORS); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | DataScreenConfigVO dataScreenConfigVO = BeanUtils.copyBean(tbDataScreenConfig, |
| | | DataScreenConfigVO.class); |
| | | dataScreenConfigVO.setScoreCalculateList(scoreCalculateList); |
| | | dataScreenConfigVO.setRateCalculateList(rateCalculateList); |
| | | vosList.add(dataScreenConfigVO); |
| | | } |
| | | return vosList; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public DataScreenConfigVO editFormalIndicatorsConfig(FormalIndicatorsUpdDTO dto) { |
| | | //查询是否有该指标配置 |
| | | TbDataScreenConfig tbDataScreenConfig = this.lambdaQuery() |
| | | .eq(TbDataScreenConfig::getType, DataScreenConfigEnum.FORMAL_INDICATORS) |
| | | .eq(TbDataScreenConfig::getSubType, |
| | | dto.getSubType()).oneOpt().orElseGet(() -> BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class)); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.FORMAL_INDICATORS); |
| | | List<CalculateItemDTO> calculateItemList = dto.getCalculateItemList(); |
| | | validateCalculateItemList(calculateItemList); |
| | | String calculateFormulaJsonStr = JSON.toJSONString(calculateItemList); |
| | | tbDataScreenConfig.setCalculateFormula(calculateFormulaJsonStr); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | DataScreenConfigVO dataScreenConfigVO = BeanUtils.copyBean(tbDataScreenConfig, |
| | | DataScreenConfigVO.class); |
| | | dataScreenConfigVO.setScoreCalculateList(calculateItemList); |
| | | return dataScreenConfigVO; |
| | | public List<DataScreenConfigVO> editFormalIndicatorsConfig( |
| | | 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, |
| | | dto.getSubType()).oneOpt().orElseGet(() -> BeanUtils.copyBean(dto, |
| | | TbDataScreenConfig.class)); |
| | | tbDataScreenConfig.setType(DataScreenConfigEnum.FORMAL_INDICATORS); |
| | | tbDataScreenConfig.setMaxScore(dto.getMaxScore()); |
| | | List<CalculateItemDTO> calculateItemList = dto.getCalculateItemList(); |
| | | validateCalculateItemList(calculateItemList); |
| | | String calculateFormulaJsonStr = JSON.toJSONString(calculateItemList); |
| | | tbDataScreenConfig.setCalculateFormula(calculateFormulaJsonStr); |
| | | this.saveOrUpdate(tbDataScreenConfig); |
| | | DataScreenConfigVO dataScreenConfigVO = BeanUtils.copyBean(tbDataScreenConfig, |
| | | DataScreenConfigVO.class); |
| | | dataScreenConfigVO.setScoreCalculateList(calculateItemList); |
| | | vosList.add(dataScreenConfigVO); |
| | | } |
| | | return vosList; |
| | | } |
| | | } |