This commit is contained in:
杜建超 2020-12-10 18:07:43 +08:00
parent 123e993e68
commit 6ff5b1b3f9
3 changed files with 22 additions and 18 deletions

View File

@ -873,7 +873,7 @@ public class ResultRecordController extends AbstractController {
taskReq.setTaskId(taskDto.getId());
taskReq.setName(taskDto.getName());
taskReq.setOrderBy(orderBy);
taskReq.setProcessRate(taskDto.getProcessRate());
taskReq.setProcessRate(BigDecimal.valueOf(taskDto.getProcessRate()));
resultTaskService.saveOrUpdateResultTask(taskReq);
orderBy++;
}

View File

@ -28,7 +28,7 @@ public class ResultTaskDto {
private String name;
//任务的当前进度
@ApiModelProperty(value = "任务的当前进度", name = "processRate")
private BigDecimal processRate;
private Double processRate;
//头像
@ApiModelProperty(value = "头像", name = "avatar")
private String avatar;

View File

@ -145,38 +145,40 @@ public class ResultTaskServiceImpl extends ServiceImpl<ResultTaskMapper, ResultT
log.info("绩效任务修改操作。。。");
resultTask = resultTaskMapper.selectResultTaskById(tasklId);
resultTask.setOrderBy(req.getOrderBy());
resultTask.setName(req.getName());
resultTask.setProcessRate(req.getProcessRate());
resultTaskMapper.updateResultTaskById(resultTask);
int i = changeTaskProcess(resultTask, req);
if(i<1){
log.info("任务暂无变化,不做修改");
}
resultTask.setOrderBy(req.getOrderBy());
resultTask.setName(req.getName());
resultTask.setProcessRate(req.getProcessRate());
resultTaskMapper.updateCoverResultTaskById(resultTask);
}
//修改总进度
if(detailId == null){
detailId = resultTask.getDetailId();
}
ResultDetail resultDetail = resultDetailService.selectResultDetailById(detailId);
resultDetail.setProcessRate(caclateResultDetailProcess(detailId));
resultDetail.setProcessRate(BigDecimal.valueOf(caclateResultDetailProcess(detailId)));
return resultDetailService.updateResultDetailById(resultDetail);
}
//计算总进度
private BigDecimal caclateResultDetailProcess(Long detailId){
private Double caclateResultDetailProcess(Long detailId){
List<ResultTaskDto> resultTaskDtos = resultTaskMapper.selectResultTaskDtosByDetailId(detailId);
if(CollectionUtils.isEmpty(resultTaskDtos)){
log.info("未找到该绩效详情下得任务信息");
return BigDecimal.ZERO;
return 0d;
}
int size = resultTaskDtos.size();
BigDecimal rate = BigDecimal.ZERO;
Double rate = 0d;
for(ResultTaskDto dto:resultTaskDtos){
rate = BigDecimalUtil.add(rate,dto.getProcessRate());
}
return BigDecimalUtil.divide(rate,BigDecimal.valueOf(size)).setScale(4);
double result = BigDecimalUtil.div(rate, size, 4);
return result;
}
@ -187,16 +189,16 @@ public class ResultTaskServiceImpl extends ServiceImpl<ResultTaskMapper, ResultT
//新增操作
if(before == null){
taskProcessRecord.setType(ProcessRecordEnum.ADD.getType());
taskProcessRecord.setLabel("新增key Results名称" + after.getName() + "进度:" + BigDecimalUtil.mul(after.getProcessRate(),BigDecimal.valueOf(100)) + "%");
taskProcessRecord.setLabel("新增key Results名称" + after.getName() + "进度:" + BigDecimalUtil.mul(after.getProcessRate(),BigDecimal.valueOf(100)).setScale(2) + "%");
return taskProcessRecordService.insertTaskProcessRecord(taskProcessRecord).intValue();
}
taskProcessRecord.setTaskId(before.getId());
//判断修改了名称或进度
if(before.getName().equals(after.getName())){
if(before.getProcessRate().equals(after.getProcessRate())){
if(!before.getName().equals(after.getName())){
if(!before.getProcessRate().equals(after.getProcessRate())){
taskProcessRecord.setType(ProcessRecordEnum.ALL.getType());
taskProcessRecord.setLabel("将key Results名称" + before.getName() + "改为" + after.getName() + "\n"
+ "进度:" + BigDecimalUtil.mul(before.getProcessRate(),BigDecimal.valueOf(100)) + "%" + "改为" + BigDecimalUtil.mul(after.getProcessRate(),BigDecimal.valueOf(100)) + "%");
+ "进度:" + BigDecimalUtil.mul(before.getProcessRate(),BigDecimal.valueOf(100)).setScale(2) + "%" + "改为" + BigDecimalUtil.mul(after.getProcessRate(),BigDecimal.valueOf(100)).setScale(2) + "%");
return taskProcessRecordService.insertTaskProcessRecord(taskProcessRecord).intValue();
}
@ -205,14 +207,16 @@ public class ResultTaskServiceImpl extends ServiceImpl<ResultTaskMapper, ResultT
return taskProcessRecordService.insertTaskProcessRecord(taskProcessRecord).intValue();
}
if(before.getProcessRate().equals(after.getProcessRate())){
if(!before.getProcessRate().equals(after.getProcessRate())){
taskProcessRecord.setType(ProcessRecordEnum.PROCESS.getType());
taskProcessRecord.setLabel("" +before.getName() + "得进度由" + BigDecimalUtil.mul(before.getProcessRate(),BigDecimal.valueOf(100)) + "%" + "更新为:" + BigDecimalUtil.mul(after.getProcessRate(),BigDecimal.valueOf(100)) + "%");
taskProcessRecord.setLabel("" +before.getName() + "得进度由" + BigDecimalUtil.mul(before.getProcessRate(),BigDecimal.valueOf(100)).setScale(2) + "%" + "更新为:" + BigDecimalUtil.mul(after.getProcessRate(),BigDecimal.valueOf(100)).setScale(2) + "%");
return taskProcessRecordService.insertTaskProcessRecord(taskProcessRecord).intValue();
}
return -1;
}
@Override
public List<ResultTask> selectResultTasksByDetailId(Long detailId){
return resultTaskMapper.selectResultTasksByDetailId(detailId);
@ -240,7 +244,7 @@ public class ResultTaskServiceImpl extends ServiceImpl<ResultTaskMapper, ResultT
taskProcessRecordService.insertTaskProcessRecord(taskProcessRecord);
//修改总进度
ResultDetail resultDetail = resultDetailService.selectResultDetailById(resultTask.getDetailId());
resultDetail.setProcessRate(caclateResultDetailProcess(resultTask.getDetailId()));
resultDetail.setProcessRate(BigDecimal.valueOf(caclateResultDetailProcess(resultTask.getDetailId())));
resultDetailService.updateResultDetailById(resultDetail);
}