修改计算公式的设置方法

This commit is contained in:
wulin 2020-11-09 15:22:27 +08:00
parent 2c17a09954
commit 66d13ad154

View File

@ -408,7 +408,6 @@ public class ResultRecordController extends AbstractController {
BigDecimal weight = BigDecimal.ZERO;
for (ResultModel model:resultModels
) {
setCalculateValue(calculateModels, model);
ResultRecortModelDto resultRecortModelDto = new ResultRecortModelDto();
BeanUtils.copyProperties(model, resultRecortModelDto);
if(resultRecortModelDto.getWeight().compareTo(BigDecimal.ZERO) == 0){//不限权重的
@ -421,6 +420,7 @@ public class ResultRecordController extends AbstractController {
resultDetailService.selectDtosByRecordId(resultRecord.getId(), model.getType());
for (ResultDetailDto dto:detailDtos
) {
//下面设置计算公式
dto.setCalculate(setCalculateValue(calculateModels, dto)) ;
weight = weight.add(dto.getCheckWeight());
//获取评分详细
@ -460,7 +460,7 @@ public class ResultRecordController extends AbstractController {
dto.setScoreDtos(scoreDtos);
}
}
//下面设置计算公式
resultRecortModelDto.setDetailDtos(detailDtos);
resultRecortModelDtos.add(resultRecortModelDto);
@ -476,8 +476,10 @@ public class ResultRecordController extends AbstractController {
private String setCalculateValue(List<CalculateModel> calculateModels, Object model){
String mName = model.getClass().getName();//.replace("req", "dto");
String cal = "";
for (CalculateModel calculate:calculateModels
) {
//for (CalculateModel calculate:calculateModels
//) {
for(int i = 0; i < calculateModels.size(); i++){
CalculateModel calculate = calculateModels.get(i);
if(mName.contains("." + calculate.getTaboleBeanName())){//支持表名生成的req和dto
//获取值
try {
@ -487,8 +489,9 @@ public class ResultRecordController extends AbstractController {
if(obj != null){
calculate.setFieldValue(obj.toString());
}
if(calculate.getFieldValue() == null){
cal += calculate.getFieldBeanName();
//最后一个对象为自己或者获取的对象中的属性为null
if(calculate.getFieldValue() == null || i == calculateModels.size()){
cal += ("{" + calculate.getFieldBeanName() + "}");
}else{
cal += calculate.getFieldValue();
}