不限权重的支持

This commit is contained in:
wulin 2020-11-04 14:48:54 +08:00
parent 3acb7a3efe
commit c706c343b6
3 changed files with 21 additions and 7 deletions

View File

@ -411,6 +411,9 @@ public class ResultRecordController extends AbstractController {
setCalculateValue(calculateModels, model); setCalculateValue(calculateModels, model);
ResultRecortModelDto resultRecortModelDto = new ResultRecortModelDto(); ResultRecortModelDto resultRecortModelDto = new ResultRecortModelDto();
BeanUtils.copyProperties(model, resultRecortModelDto); BeanUtils.copyProperties(model, resultRecortModelDto);
if(resultRecortModelDto.getWeight().compareTo(BigDecimal.ZERO) == 0){//不限权重的
resultRecortModelDto.setWeight(null);
}
List<ResultDetailDto> detailDtos = List<ResultDetailDto> detailDtos =
resultDetailService.selectDtosByRecordId(resultRecord.getId(), model.getType()); resultDetailService.selectDtosByRecordId(resultRecord.getId(), model.getType());
for (ResultDetailDto dto:detailDtos for (ResultDetailDto dto:detailDtos
@ -614,7 +617,9 @@ public class ResultRecordController extends AbstractController {
} }
} }
if(weight.compareTo(model.getWeight()) == 1){ //下面不限权重的计算权重之和是否超标
if(model.getWeight() != null && model.getWeight().compareTo(BigDecimal.ZERO) != 0
&& weight.compareTo(model.getWeight()) == 1){
return R.error(model.getName() + "的指标之和不能超过" + model.getWeight().multiply(BigDecimal.valueOf(100)) + "%"); return R.error(model.getName() + "的指标之和不能超过" + model.getWeight().multiply(BigDecimal.valueOf(100)) + "%");
} }
} }

View File

@ -124,7 +124,10 @@ public class ResultModelServiceImpl extends ServiceImpl<ResultModelMapper, Resul
} }
for (ResultModelItemReq itemReq: for (ResultModelItemReq itemReq:
resultModelDetailReq.getModelItems()) { resultModelDetailReq.getModelItems()) {
modelWeight = modelWeight.add(itemReq.getWeight()); if(itemReq.getWeight() != null){
modelWeight = modelWeight.add(itemReq.getWeight());
}
if(modelWeight.compareTo(BigDecimal.ONE) == 1){ if(modelWeight.compareTo(BigDecimal.ONE) == 1){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
return R.error("维度权重之和不能能超过100%"); return R.error("维度权重之和不能能超过100%");
@ -156,12 +159,15 @@ public class ResultModelServiceImpl extends ServiceImpl<ResultModelMapper, Resul
BeanUtils.copyProperties(req, resultTagetLib); BeanUtils.copyProperties(req, resultTagetLib);
resultTagetLib.setModelId(resultModel.getId()); resultTagetLib.setModelId(resultModel.getId());
resultTagetLib.setOrderBy(libOrderBy); resultTagetLib.setOrderBy(libOrderBy);
tagLibWeight = tagLibWeight.add(req.getWeight()); if(req.getWeight() != null){
if(tagLibWeight.compareTo(resultModel.getWeight()) == 1){ tagLibWeight = tagLibWeight.add(req.getWeight());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 if(resultModel.getWeight() != null && tagLibWeight.compareTo(resultModel.getWeight()) == 1){
return R.error(resultModel.getName() + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
"维度的指标之和不能大于" + (resultModel.getWeight().multiply(BigDecimal.valueOf(100))) + "%"); return R.error(resultModel.getName() +
"维度的指标之和不能大于" + (resultModel.getWeight().multiply(BigDecimal.valueOf(100))) + "%");
}
} }
if(resultTagetLib.getId() != null && resultTagetLib.getId().intValue() > 0){ if(resultTagetLib.getId() != null && resultTagetLib.getId().intValue() > 0){
updates.add(resultTagetLib); updates.add(resultTagetLib);
}else{ }else{

View File

@ -53,6 +53,9 @@ public class ResultModelController {
resultModelDetailReq.setGradeGroupId(dto.getGradeGroupId()); resultModelDetailReq.setGradeGroupId(dto.getGradeGroupId());
ResultModelItemReq itemReq = new ResultModelItemReq(); ResultModelItemReq itemReq = new ResultModelItemReq();
BeanUtils.copyProperties(dto, itemReq); BeanUtils.copyProperties(dto, itemReq);
if(itemReq.getWeight().compareTo(BigDecimal.ZERO) == 0){//不限权重
itemReq.setWeight(null);
}
if(dto.getMaxCount().intValue() == 10000){ if(dto.getMaxCount().intValue() == 10000){
itemReq.setMaxCount(null); itemReq.setMaxCount(null);
} }