增加返回绩效详情时,返回当前指标权重之和
This commit is contained in:
parent
8587ce74fe
commit
b5347a0aee
@ -35,6 +35,8 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -346,24 +348,30 @@ public class ResultRecordController extends AbstractController {
|
|||||||
//获取计算公式
|
//获取计算公式
|
||||||
List<CalculateModel> calculateModels = getCalculate(resultModels.get(0).getCalculateId());
|
List<CalculateModel> calculateModels = getCalculate(resultModels.get(0).getCalculateId());
|
||||||
|
|
||||||
|
resultRecordDetailDto.setGradeGroupId(resultModels.get(0).getGradeGroupId());//设置评分等级
|
||||||
StaffEntity staffEntity = staffService.selectStaffById(resultRecord.getStaffId());
|
StaffEntity staffEntity = staffService.selectStaffById(resultRecord.getStaffId());
|
||||||
resultRecordDetailDto.setAvatar(staffEntity.getAvatar());
|
resultRecordDetailDto.setAvatar(staffEntity.getAvatar());
|
||||||
resultRecordDetailDto.setJobNumber(staffEntity.getJobNumber());
|
resultRecordDetailDto.setJobNumber(staffEntity.getJobNumber());
|
||||||
List<ResultRecortModelDto> resultRecortModelDtos = new ArrayList<>();
|
List<ResultRecortModelDto> resultRecortModelDtos = new ArrayList<>();
|
||||||
|
BigDecimal weight = BigDecimal.ZERO;
|
||||||
for (ResultModel model:resultModels
|
for (ResultModel model:resultModels
|
||||||
) {
|
) {
|
||||||
resultRecordDetailDto.setGradeGroupId(model.getGradeGroupId());
|
setCalculateValue(calculateModels, model);
|
||||||
ResultRecortModelDto resultRecortModelDto = new ResultRecortModelDto();
|
ResultRecortModelDto resultRecortModelDto = new ResultRecortModelDto();
|
||||||
BeanUtils.copyProperties(model, resultRecortModelDto);
|
BeanUtils.copyProperties(model, resultRecortModelDto);
|
||||||
List<ResultDetailDto> detailDtos =
|
List<ResultDetailDto> detailDtos =
|
||||||
resultDetailService.selectDtosByRecordId(resultRecord.getId(), model.getType());
|
resultDetailService.selectDtosByRecordId(resultRecord.getId(), model.getType());
|
||||||
|
for (ResultDetailDto dto:detailDtos
|
||||||
|
) {
|
||||||
|
dto.setCalculate(setCalculateValue(calculateModels, dto)) ;
|
||||||
|
weight = weight.add(dto.getCheckWeight());
|
||||||
|
}
|
||||||
//下面设置计算公式
|
//下面设置计算公式
|
||||||
|
resultRecortModelDto.setWeight(weight);
|
||||||
resultRecortModelDto.setDetailDtos(detailDtos);
|
resultRecortModelDto.setDetailDtos(detailDtos);
|
||||||
resultRecortModelDtos.add(resultRecortModelDto);
|
resultRecortModelDtos.add(resultRecortModelDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
resultRecordDetailDto.setRecortModelDtos(resultRecortModelDtos);
|
resultRecordDetailDto.setRecortModelDtos(resultRecortModelDtos);
|
||||||
|
|
||||||
return R.ok().put("data", resultRecordDetailDto);
|
return R.ok().put("data", resultRecordDetailDto);
|
||||||
@ -371,6 +379,40 @@ 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
|
||||||
|
) {
|
||||||
|
if(mName.contains("." + calculate.getTaboleBeanName())){//支持表名生成的req和dto
|
||||||
|
//获取值
|
||||||
|
try {
|
||||||
|
Class<?> clazz = model.getClass();
|
||||||
|
Method method = clazz.getMethod("get" + calculate.getFieldBeanName());
|
||||||
|
Object obj = method.invoke(model);
|
||||||
|
if(obj != null){
|
||||||
|
calculate.setFieldValue(obj.toString());
|
||||||
|
}
|
||||||
|
if(calculate.getFieldValue() == null){
|
||||||
|
cal += calculate.getFieldBeanName();
|
||||||
|
}else{
|
||||||
|
cal += calculate.getFieldValue();
|
||||||
|
}
|
||||||
|
if(calculate.getOpt() != null){
|
||||||
|
cal += calculate.getOpt();
|
||||||
|
}
|
||||||
|
} catch (NoSuchMethodException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cal;
|
||||||
|
}
|
||||||
|
|
||||||
private List<CalculateModel> getCalculate(Long id){
|
private List<CalculateModel> getCalculate(Long id){
|
||||||
ResultCalculate resultCalculate =
|
ResultCalculate resultCalculate =
|
||||||
resultCalculateService.selectResultCalculateById(id);
|
resultCalculateService.selectResultCalculateById(id);
|
||||||
@ -384,7 +426,8 @@ public class ResultRecordController extends AbstractController {
|
|||||||
) {
|
) {
|
||||||
char b = chars[i];
|
char b = chars[i];
|
||||||
if(b == '*' || b == '/' || b == '+' || b == '-'){
|
if(b == '*' || b == '/' || b == '+' || b == '-'){
|
||||||
calculateModel.setFieldName(getBeanName(value));
|
calculateModel.setFieldName(value);
|
||||||
|
calculateModel.setFieldBeanName(getBeanName(value));
|
||||||
calculateModel.setOpt(String.valueOf(b));
|
calculateModel.setOpt(String.valueOf(b));
|
||||||
calculateModels.add(calculateModel);
|
calculateModels.add(calculateModel);
|
||||||
calculateModel = null;
|
calculateModel = null;
|
||||||
@ -394,9 +437,9 @@ public class ResultRecordController extends AbstractController {
|
|||||||
|
|
||||||
}else if(b == '>'){
|
}else if(b == '>'){
|
||||||
if(type == 0){
|
if(type == 0){
|
||||||
|
calculateModel.setTableName(value);
|
||||||
value = value.replace("lz_", "");//去掉lz_前缀
|
value = value.replace("lz_", "");//去掉lz_前缀
|
||||||
|
calculateModel.setTaboleBeanName(getBeanName(value));
|
||||||
calculateModel.setTableName(getBeanName(value));
|
|
||||||
}
|
}
|
||||||
type--;
|
type--;
|
||||||
type *= -1;
|
type *= -1;
|
||||||
@ -408,7 +451,8 @@ public class ResultRecordController extends AbstractController {
|
|||||||
}
|
}
|
||||||
value += String.valueOf(b);
|
value += String.valueOf(b);
|
||||||
if(i == chars.length - 1){
|
if(i == chars.length - 1){
|
||||||
calculateModel.setFieldName(getBeanName(value));
|
calculateModel.setFieldName(value);
|
||||||
|
calculateModel.setFieldBeanName(getBeanName(value));
|
||||||
calculateModels.add(calculateModel);
|
calculateModels.add(calculateModel);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,10 @@ import lombok.Data;
|
|||||||
* */
|
* */
|
||||||
@Data
|
@Data
|
||||||
public class CalculateModel {
|
public class CalculateModel {
|
||||||
private String tableName;//表明,对象名称
|
private String tableName;//表名
|
||||||
|
private String taboleBeanName;//类的可能名称
|
||||||
private String fieldName;//字段,属性名称
|
private String fieldName;//字段,属性名称
|
||||||
|
private String fieldBeanName;//字段的名称
|
||||||
|
private String fieldValue;//取得的字段的值
|
||||||
private String opt;//计算方法 + - * /
|
private String opt;//计算方法 + - * /
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,7 +73,10 @@ public class ResultRecordDetailDto {
|
|||||||
//当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束
|
//当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束
|
||||||
@ApiModelProperty(value = "当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束", name = "flowProcess")
|
@ApiModelProperty(value = "当前是目标确认还是评分,0,目标制定,1,目标确认,2执行中,3,结果值录入,4,评分,5考核结束", name = "flowProcess")
|
||||||
private Integer flowProcess;
|
private Integer flowProcess;
|
||||||
|
@ApiModelProperty(value = "考核维度合计", name = "recortModelDtos")
|
||||||
List<ResultRecortModelDto> recortModelDtos;
|
List<ResultRecortModelDto> recortModelDtos;
|
||||||
|
@ApiModelProperty(value = "当前指标权重之和", name = "weight")
|
||||||
|
BigDecimal weight;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user