更新获取计算公式的方法
This commit is contained in:
parent
4952f1a275
commit
1a980afe45
@ -355,13 +355,18 @@ public class ResultRecordController extends AbstractController {
|
|||||||
BeanUtils.copyProperties(resultRecord, resultRecordDetailDto);
|
BeanUtils.copyProperties(resultRecord, resultRecordDetailDto);
|
||||||
List<ResultModel> resultModels = resultModelService.selectResultModelByGroupId(resultRecord.getEvaluationId());
|
List<ResultModel> resultModels = resultModelService.selectResultModelByGroupId(resultRecord.getEvaluationId());
|
||||||
//获取计算公式
|
//获取计算公式
|
||||||
|
List<CalculateModel> calculateModels1 = getCalculate(3l);
|
||||||
|
//获取计算公式
|
||||||
List<CalculateModel> calculateModels = getCalculate(resultModels.get(0).getCalculateId());
|
List<CalculateModel> calculateModels = getCalculate(resultModels.get(0).getCalculateId());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<ResultScoreDto> scoreDtos = new ArrayList<>();
|
List<ResultScoreDto> scoreDtos = new ArrayList<>();
|
||||||
//查询所有参与评分人以及所占比重
|
//查询所有参与评分人以及所占比重
|
||||||
List<FlowChartDetailRecord> flowChartDetailRecords =
|
List<FlowChartDetailRecord> flowChartDetailRecords =
|
||||||
flowChartDetailRecordService.selectFlowChartDetailRecordsByFlowProcess(resultRecord.getEvaluationId(), 4);//获取参与评分的人
|
flowChartDetailRecordService.selectFlowChartDetailRecordsByFlowProcess(resultRecord.getEvaluationId(), ChartFlowType.SCORE.getCode());//获取参与评分的人
|
||||||
List<StaffEntity> staffs = new ArrayList<>();
|
List<StaffEntity> staffs = new ArrayList<>();
|
||||||
|
Boolean isAllScore = true;//false表示返回所有的评分,true表示值返回评分了的人
|
||||||
for (FlowChartDetailRecord record:flowChartDetailRecords
|
for (FlowChartDetailRecord record:flowChartDetailRecords
|
||||||
) {
|
) {
|
||||||
if(record.getOptType().intValue() == -1){
|
if(record.getOptType().intValue() == -1){
|
||||||
@ -390,8 +395,20 @@ public class ResultRecordController extends AbstractController {
|
|||||||
}
|
}
|
||||||
if(staffs.size() == 0){
|
if(staffs.size() == 0){
|
||||||
log.info("无法找到评分人员,开始找绩效管理人员");
|
log.info("无法找到评分人员,开始找绩效管理人员");
|
||||||
staffs = staffService.findManger(resultRecord.getId(), 4);
|
staffs = staffService.findManger(resultRecord.getId(), ChartFlowType.SCORE.getCode());
|
||||||
}
|
}
|
||||||
|
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(resultRecord.getId(), 2);//获取当前的流程节点
|
||||||
|
if(flowRecords.get(0).getFlowProcess().intValue() > ChartFlowType.SCORE.getCode()){
|
||||||
|
//流程已经到了审批节点,那么判断评分是否为或签,如果是那么只需要返回实际评分的那个人即可,否则全部返回
|
||||||
|
flowRecords = flowRecordService.selectFlowRecordByRecordIdFlowProcess(resultRecord.getId(), ChartFlowType.SCORE.getCode());//获取当前的流程节点
|
||||||
|
if(flowRecords.get(0).getType().intValue() == 1){
|
||||||
|
//或签
|
||||||
|
isAllScore = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (StaffEntity staff:staffs
|
for (StaffEntity staff:staffs
|
||||||
) {
|
) {
|
||||||
@ -426,50 +443,68 @@ public class ResultRecordController extends AbstractController {
|
|||||||
for (ResultDetailDto dto:detailDtos
|
for (ResultDetailDto dto:detailDtos
|
||||||
) {
|
) {
|
||||||
//下面设置计算公式
|
//下面设置计算公式
|
||||||
dto.setCalculate(setCalculateValue(calculateModels, dto)) ;
|
dto.setCalculate(setCalculateValue(calculateModels1, dto)) ;
|
||||||
weight = weight.add(dto.getCheckWeight());
|
weight = weight.add(dto.getCheckWeight());
|
||||||
if(scoreDtos.size() > 0){
|
if(scoreDtos.size() > 0){
|
||||||
//获取评分详细
|
//获取评分详细
|
||||||
List<ResultScore> scores =
|
List<ResultScore> scores =
|
||||||
resultScoreService.selectResultScoresByDetailIdAndOrderByStaffIds(dto.getId(), scoreDtos);
|
resultScoreService.selectResultScoresByDetailIdAndOrderByStaffIds(dto.getId(), scoreDtos);
|
||||||
if(scores.size() > 0){
|
|
||||||
//
|
if(scores.size() > 0){//已经有平分了
|
||||||
|
|
||||||
List<ResultScoreDto> scoreDtos1 = new ArrayList<>();
|
List<ResultScoreDto> scoreDtos1 = new ArrayList<>();
|
||||||
for (ResultScoreDto scoreDto: scoreDtos
|
for (ResultScoreDto scoreDto: scoreDtos
|
||||||
) {//
|
) {//
|
||||||
//
|
|
||||||
|
|
||||||
boolean isAdd = false;
|
boolean isAdd = false;
|
||||||
for (ResultScore score:
|
for (ResultScore score:
|
||||||
scores) {
|
scores) {//设置每个已经评分的领导
|
||||||
if(scoreDto.getApprovalId().longValue() == score.getApprovalId().longValue()){
|
if(scoreDto.getApprovalId().longValue() == score.getApprovalId().longValue()){
|
||||||
ResultScoreDto scoreDto1 = new ResultScoreDto();
|
ResultScoreDto scoreDto1 = new ResultScoreDto();
|
||||||
BeanUtils.copyProperties(score, scoreDto1);
|
BeanUtils.copyProperties(score, scoreDto1);
|
||||||
scoreDto1.setApprovalId(scoreDto.getApprovalId());
|
scoreDto1.setApprovalId(scoreDto.getApprovalId());
|
||||||
scoreDto1.setApprovalName(scoreDto.getApprovalName());
|
scoreDto1.setApprovalName(scoreDto.getApprovalName());
|
||||||
scoreDto1.setWeight(scoreDto.getWeight());
|
scoreDto1.setWeight(scoreDto.getWeight());
|
||||||
|
//下面设置计算公式
|
||||||
|
scoreDto1.setCalculate(setCalculateValue(calculateModels, model)) ;
|
||||||
|
scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, dto)) ;
|
||||||
|
scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, scoreDto1)) ;
|
||||||
scoreDtos1.add(scoreDto1);
|
scoreDtos1.add(scoreDto1);
|
||||||
scores.remove(score);
|
scores.remove(score);
|
||||||
isAdd = true;
|
isAdd = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!isAdd){
|
if(!isAdd && isAllScore){//如果isAllScore为true返回所有的评分包括为评分和已评分的,false只返回已评分的,评分或签时用到
|
||||||
ResultScoreDto scoreDto1 = new ResultScoreDto();
|
ResultScoreDto scoreDto1 = new ResultScoreDto();
|
||||||
scoreDto1.setApprovalId(scoreDto.getApprovalId());
|
scoreDto1.setApprovalId(scoreDto.getApprovalId());
|
||||||
scoreDto1.setApprovalName(scoreDto.getApprovalName());
|
scoreDto1.setApprovalName(scoreDto.getApprovalName());
|
||||||
scoreDto1.setWeight(scoreDto.getWeight());
|
scoreDto1.setWeight(scoreDto.getWeight());
|
||||||
|
//下面设置计算公式
|
||||||
|
scoreDto1.setCalculate(setCalculateValue(calculateModels, model)) ;
|
||||||
|
scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, dto)) ;
|
||||||
|
scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, scoreDto1)) ;
|
||||||
scoreDtos1.add(scoreDto1);
|
scoreDtos1.add(scoreDto1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dto.setScoreDtos(scoreDtos1);
|
dto.setScoreDtos(scoreDtos1);
|
||||||
}else{
|
}else{//一个评分都没有
|
||||||
dto.setScoreDtos(scoreDtos);
|
List<ResultScoreDto> scoreDtos1 = new ArrayList<>();
|
||||||
|
for (ResultScoreDto scoreDto: scoreDtos
|
||||||
|
) {//
|
||||||
|
//下面设置计算公式
|
||||||
|
ResultScoreDto sdto = new ResultScoreDto();
|
||||||
|
BeanUtils.copyProperties(scoreDto, sdto);
|
||||||
|
sdto.setCalculate(setCalculateValue(calculateModels, model));
|
||||||
|
sdto.setCalculate(sdto.getCalculate() + setCalculateValue(calculateModels, dto));
|
||||||
|
sdto.setCalculate(sdto.getCalculate() + setCalculateValue(calculateModels, sdto));
|
||||||
|
scoreDtos1.add(sdto);
|
||||||
|
}
|
||||||
|
dto.setScoreDtos(scoreDtos1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
resultRecortModelDto.setDetailDtos(detailDtos);
|
resultRecortModelDto.setDetailDtos(detailDtos);
|
||||||
resultRecortModelDtos.add(resultRecortModelDto);
|
resultRecortModelDtos.add(resultRecortModelDto);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user