|
|
@@ -23,6 +23,7 @@ import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDataVo;
|
|
|
import com.xunmei.common.core.domain.drill.vo.CoreDrillTaskDetailVo;
|
|
|
import com.xunmei.common.core.domain.drill.vo.CoreDrillTaskPageVo;
|
|
|
import com.xunmei.common.core.domain.drill.vo.CoreDrillTaskReportVo;
|
|
|
+import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskReportVo;
|
|
|
import com.xunmei.common.core.enums.ExportPdfType;
|
|
|
import com.xunmei.common.core.enums.drill.DrillDoStatus;
|
|
|
import com.xunmei.common.core.enums.drill.DrillType;
|
|
|
@@ -344,6 +345,16 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
|
|
|
@Override
|
|
|
public List<CoreDrillTaskReportVo> selectCoreDrillTaskReport(CoreDrillTaskReportDto request) {
|
|
|
+ CoreDrillPlan plan = coreDrillPlanMapper.selectById(request.getPlanId());
|
|
|
+ if (ObjectUtil.isNull(plan)) {
|
|
|
+ throw new SystemException("未获取到该计划信息");
|
|
|
+ }
|
|
|
+ List<Long> planIdList = new ArrayList<>();
|
|
|
+ Long planId = request.getPlanId();
|
|
|
+ if (ObjectUtil.equal(1, plan.getStandard()) && ObjectUtil.equal(1, plan.getIssue())) {
|
|
|
+ planIdList = coreDrillPlanMapper.selectIdByParentId(plan.getId());
|
|
|
+ planId = null;
|
|
|
+ }
|
|
|
request.setStartDate(DateUtil.beginOfMonth(request.getDate()));
|
|
|
request.setEndDate(DateUtil.endOfMonth(request.getDate()));
|
|
|
Long orgId = request.getOrgId();
|
|
|
@@ -353,21 +364,21 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
List<CoreDrillTaskReportVo> result = new ArrayList<>();
|
|
|
- List<CoreDrillTaskReportVo> list = coreDrillTaskMapper.selectReport(request);
|
|
|
+ List<CoreDrillTaskReportVo> list = coreDrillTaskMapper.selectReport(request, planId, planIdList);
|
|
|
for (SysOrg org : sysOrgList) {
|
|
|
- Optional<CoreDrillTaskReportVo> optional = list.stream().filter(vo -> ObjectUtil.equal(vo.getOrgId(), org.getId())).findFirst();
|
|
|
- CoreDrillTaskReportVo reportVo;
|
|
|
- if (!optional.isPresent()) {
|
|
|
- reportVo = new CoreDrillTaskReportVo();
|
|
|
- reportVo.setPlanId(request.getPlanId());
|
|
|
- reportVo.setOrgId(org.getId());
|
|
|
- reportVo.setOrgName(org.getName());
|
|
|
+ List<CoreDrillTaskReportVo> childrenOrgData = list.stream().filter(vo -> vo.getOrgPath().startsWith(org.getPath())).collect(Collectors.toList());
|
|
|
+ CoreDrillTaskReportVo reportVo=new CoreDrillTaskReportVo();
|
|
|
+ reportVo.setOrgId(org.getId());
|
|
|
+ reportVo.setOrgName(org.getName());
|
|
|
+ if (ObjectUtil.isEmpty(childrenOrgData)) {;
|
|
|
reportVo.setShouldFinish(0);
|
|
|
reportVo.setFinish(0);
|
|
|
reportVo.setFinishRate("0%");
|
|
|
} else {
|
|
|
- reportVo = optional.get();
|
|
|
- reportVo.setFinishRate(calculatePercent(reportVo.getShouldFinish(), reportVo.getFinish()));
|
|
|
+ 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()));
|
|
|
}
|
|
|
result.add(reportVo);
|
|
|
}
|