|
|
@@ -317,16 +317,30 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
|
|
|
List<SysOrg> sysOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectSysOrgByParentId(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
if (ObjectUtil.isEmpty(sysOrgList)) {
|
|
|
-
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
+ List<CoreEduTrainingTaskReportVo> result = new ArrayList<>();
|
|
|
List<CoreEduTrainingTaskReportVo> list = coreEduTrainingTaskMapper.selectReport(request);
|
|
|
- list.forEach(item -> {
|
|
|
- item.setFinishRate(calculatePercent(item.getShouldFinish(), item.getFinish()));
|
|
|
- });
|
|
|
+ for (SysOrg org : sysOrgList) {
|
|
|
+ Optional<CoreEduTrainingTaskReportVo> optional = list.stream().filter(vo -> ObjectUtil.equal(vo.getOrgId(), org.getId())).findFirst();
|
|
|
+ CoreEduTrainingTaskReportVo reportVo;
|
|
|
+ if (!optional.isPresent()) {
|
|
|
+ reportVo = new CoreEduTrainingTaskReportVo();
|
|
|
+ reportVo.setPlanId(request.getPlanId());
|
|
|
+ reportVo.setOrgId(org.getId());
|
|
|
+ reportVo.setOrgName(org.getName());
|
|
|
+ reportVo.setShouldFinish(0);
|
|
|
+ reportVo.setFinish(0);
|
|
|
+ reportVo.setFinishRate("0%");
|
|
|
+ } else {
|
|
|
+ reportVo = optional.get();
|
|
|
+ reportVo.setFinishRate(calculatePercent(reportVo.getShouldFinish(), reportVo.getFinish()));
|
|
|
+ }
|
|
|
+ result.add(reportVo);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- return list;
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
private String calculatePercent(Integer num1, Integer num2) {
|