不限权重的支持

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);
ResultRecortModelDto resultRecortModelDto = new ResultRecortModelDto();
BeanUtils.copyProperties(model, resultRecortModelDto);
if(resultRecortModelDto.getWeight().compareTo(BigDecimal.ZERO) == 0){//不限权重的
resultRecortModelDto.setWeight(null);
}
List<ResultDetailDto> detailDtos =
resultDetailService.selectDtosByRecordId(resultRecord.getId(), model.getType());
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)) + "%");
}
}

View File

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

View File

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