|
|
@@ -293,8 +293,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
start = dateRange.getStartTime();
|
|
|
end = dateRange.getEndTime();
|
|
|
} else {
|
|
|
- start = DateUtil.beginOfDay(start).setField(DateField.MILLISECOND,0);
|
|
|
- end = DateUtil.endOfDay(end).setField(DateField.MILLISECOND,0);
|
|
|
+ start = DateUtil.beginOfDay(start).setField(DateField.MILLISECOND, 0);
|
|
|
+ end = DateUtil.endOfDay(end).setField(DateField.MILLISECOND, 0);
|
|
|
}
|
|
|
List<CoreEduTrainingPlanToExecOrg> planExecOrgList = plan.getPlanExecOrgList();
|
|
|
List<SysOrg> orgList;
|
|
|
@@ -359,46 +359,63 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
|
|
|
@Override
|
|
|
public List<CoreEduTrainingTaskReportVo> selectCoreEduTrainingTaskReport(CoreEduTrainingTaskReportDto request) {
|
|
|
CoreEduTrainingPlan plan = coreEduTrainingPlanMapper.selectById(request.getPlanId());
|
|
|
- if (ObjectUtil.isNull(plan)) {
|
|
|
+ if (plan == null) {
|
|
|
throw new SystemException("未获取到该计划信息");
|
|
|
}
|
|
|
+
|
|
|
List<Long> planIdList = new ArrayList<>();
|
|
|
Long planId = request.getPlanId();
|
|
|
if (ObjectUtil.equal(1, plan.getStandard()) && ObjectUtil.equal(1, plan.getIssue())) {
|
|
|
planIdList = coreEduTrainingPlanMapper.selectIdByParentId(plan.getId());
|
|
|
planId = null;
|
|
|
}
|
|
|
+
|
|
|
request.setStartDate(DateUtil.beginOfMonth(request.getDate()));
|
|
|
request.setEndDate(DateUtil.endOfMonth(request.getDate()));
|
|
|
- Long orgId = request.getOrgId();
|
|
|
|
|
|
- SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(request.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
+ Long orgId = request.getOrgId();
|
|
|
+ SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
request.setOrgPath(sysOrg.getPath());
|
|
|
+
|
|
|
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, planId, planIdList);
|
|
|
- for (SysOrg org : sysOrgList) {
|
|
|
- List<CoreEduTrainingTaskReportVo> childrenOrgData = list.stream().filter(vo -> vo.getOrgPath().startsWith(org.getPath())).collect(Collectors.toList());
|
|
|
- CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
|
|
|
- reportVo.setOrgId(org.getId());
|
|
|
- reportVo.setOrgName(org.getName());
|
|
|
- if (ObjectUtil.isEmpty(childrenOrgData)) {
|
|
|
+
|
|
|
+ if (list.size() == 1 && list.get(0).getOrgId() == null) {
|
|
|
+ //走到这 说明mapper没有查到数据 构建空数据返回
|
|
|
+ for (SysOrg org : sysOrgList) {
|
|
|
+ CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
|
|
|
+ reportVo.setOrgId(org.getId());
|
|
|
+ reportVo.setOrgName(org.getName());
|
|
|
reportVo.setShouldFinish(0);
|
|
|
reportVo.setFinish(0);
|
|
|
reportVo.setFinishRate("0%");
|
|
|
- } else {
|
|
|
- childrenOrgData.stream().map(CoreEduTrainingTaskReportVo::getShouldFinish).reduce(Integer::sum).ifPresent(reportVo::setShouldFinish);
|
|
|
- childrenOrgData.stream().map(CoreEduTrainingTaskReportVo::getFinish).reduce(Integer::sum).ifPresent(reportVo::setFinish);
|
|
|
- reportVo.setFinishRate(calculatePercent(reportVo.getFinish(), reportVo.getShouldFinish()));
|
|
|
+ result.add(reportVo);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ } else {
|
|
|
+ for (SysOrg org : sysOrgList) {
|
|
|
+ List<CoreEduTrainingTaskReportVo> childrenOrgData = list.stream()
|
|
|
+ .filter(vo -> vo.getOrgPath().startsWith(org.getPath()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ int totalShouldFinish = childrenOrgData.stream().mapToInt(CoreEduTrainingTaskReportVo::getShouldFinish).sum();
|
|
|
+ int totalFinish = childrenOrgData.stream().mapToInt(CoreEduTrainingTaskReportVo::getFinish).sum();
|
|
|
+
|
|
|
+ CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
|
|
|
+ reportVo.setOrgId(org.getId());
|
|
|
+ reportVo.setOrgName(org.getName());
|
|
|
+ reportVo.setShouldFinish(totalShouldFinish);
|
|
|
+ reportVo.setFinish(totalFinish);
|
|
|
+ reportVo.setFinishRate(calculatePercent(totalFinish, totalShouldFinish));
|
|
|
+ result.add(reportVo);
|
|
|
}
|
|
|
- result.add(reportVo);
|
|
|
+ return result;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- return result;
|
|
|
}
|
|
|
|
|
|
public static String calculatePercent(Integer num1, Integer num2) {
|