Merge branch 'version_performance_2.0' of http://gitlab.ldxinyong.com/enterpriseManagement/lz_management into version_performance_2.0

This commit is contained in:
杜建超 2020-11-04 16:01:02 +08:00
commit aeea27efbf
3 changed files with 38 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

@ -107,9 +107,14 @@ public class ResultModelServiceImpl extends ServiceImpl<ResultModelMapper, Resul
public R saveDetail(ResultModelDetailReq resultModelDetailReq){
BigDecimal modelWeight = BigDecimal.ZERO;
int resultModelOrderBy = 0;
int delCount = resultModelDetailReq.getModelItems().size();//记录删除的条数如果为0那么插入一条记录
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%");
@ -129,6 +134,9 @@ public class ResultModelServiceImpl extends ServiceImpl<ResultModelMapper, Resul
}else{
resultModelMapper.updateResultModelById(resultModel);
if(resultModel.getIsDelete() != null && resultModel.getIsDelete().intValue() == 1){
delCount--;
}
}
if(itemReq.getTagetLibItems() != null){
int libOrderBy = 0;
@ -141,12 +149,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{
@ -170,6 +181,18 @@ public class ResultModelServiceImpl extends ServiceImpl<ResultModelMapper, Resul
}
}
if(delCount == 0){
//如果全部被删除或者没有传入具体维度那么默认保存一个维度
//没有传具体的维度
ResultModel resultModel = new ResultModel();
resultModel.setCalculateId(resultModelDetailReq.getCalculateId());
resultModel.setGradeGroupId(resultModelDetailReq.getGradeGroupId());
resultModel.setGradeStatus(resultModelDetailReq.getGradeStatus());
resultModel.setEvaluationGroupId(resultModelDetailReq.getEvaluationGroupId());
resultModel.setOrderBy(resultModelOrderBy);
resultModelMapper.insertResultModel(resultModel);
return R.ok();
}
return R.ok();
}

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);
}