|
|
@@ -382,8 +382,9 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
planId = null;
|
|
|
}
|
|
|
|
|
|
- request.setStartDate(DateUtil.beginOfMonth(request.getDate()));
|
|
|
- request.setEndDate(DateUtil.endOfMonth(request.getDate()));
|
|
|
+ request.setStartDate(DateUtils.getStartAndEnd(request.getDate(), 4).getStartTime());
|
|
|
+
|
|
|
+ request.setEndDate(DateUtils.getStartAndEnd(request.getDate(), 4).getEndTime());
|
|
|
|
|
|
Long orgId = request.getOrgId();
|
|
|
SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
@@ -395,17 +396,15 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
}
|
|
|
List<CoreDrillTaskReportVo> result = new ArrayList<>();
|
|
|
List<CoreDrillTaskReportVo> list = coreDrillTaskMapper.selectReport(request, planId, planIdList);
|
|
|
-
|
|
|
if (list.size() == 1 && list.get(0).getOrgId() == null) {
|
|
|
//走到这 说明mapper没有查到数据 构建空数据返回
|
|
|
for (SysOrg org : sysOrgList) {
|
|
|
-
|
|
|
CoreDrillTaskReportVo reportVo = new CoreDrillTaskReportVo();
|
|
|
reportVo.setOrgId(org.getId());
|
|
|
reportVo.setOrgName(org.getName());
|
|
|
reportVo.setShouldFinish(0);
|
|
|
reportVo.setFinish(0);
|
|
|
- reportVo.setFinishRate("0%");
|
|
|
+ reportVo.setScore("0%");
|
|
|
result.add(reportVo);
|
|
|
}
|
|
|
} else {
|
|
|
@@ -415,20 +414,27 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
reportVo.setOrgId(org.getId());
|
|
|
reportVo.setOrgName(org.getName());
|
|
|
if (ObjectUtil.isEmpty(childrenOrgData)) {
|
|
|
- ;
|
|
|
reportVo.setShouldFinish(0);
|
|
|
reportVo.setFinish(0);
|
|
|
- reportVo.setFinishRate("0%");
|
|
|
+ reportVo.setScore("0%");
|
|
|
} else {
|
|
|
childrenOrgData.stream().map(CoreDrillTaskReportVo::getShouldFinish).reduce(Integer::sum).ifPresent(reportVo::setShouldFinish);
|
|
|
childrenOrgData.stream().map(CoreDrillTaskReportVo::getFinish).reduce(Integer::sum).ifPresent(reportVo::setFinish);
|
|
|
- reportVo.setFinishRate(calculatePercent(reportVo.getFinish(), reportVo.getShouldFinish()));
|
|
|
+ reportVo.setScore(calculateScore(childrenOrgData));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private String calculateScore(List<CoreDrillTaskReportVo> childrenOrgData) {
|
|
|
+ //将数组childrenOrgData中的score字段取出来转换成BigDecimal类型的数组,并计算出平均数,保留两位小数
|
|
|
+ BigDecimal avg = childrenOrgData.stream().map(CoreDrillTaskReportVo::getScore).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(childrenOrgData.size()), 2, RoundingMode.HALF_UP);
|
|
|
+ return avg.toString();
|
|
|
+ // childrenOrgData.stream().map(CoreDrillTaskReportVo::getScore).map(BigDecimal::valueOf).
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Integer sign(CoreDrillTaskSignDto request) {
|
|
|
@@ -603,6 +609,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
CoreDrillTask drillTask = getById(request.getTaskId());
|
|
|
drillTask.setCommentScore(request.getScore());
|
|
|
drillTask.setStatus(DrillDoStatus.DONE.getCode());
|
|
|
+ drillTask.setComment(request.getComment());
|
|
|
return baseMapper.updateById(drillTask);
|
|
|
}
|
|
|
}
|