|
@@ -14,6 +14,7 @@ import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
import com.zjugis.module.adm.constants.DictConstants;
|
|
|
import com.zjugis.module.adm.controller.admin.attendance.vo.sheet.AttendanceSheetRelationWorkDay;
|
|
|
import com.zjugis.module.adm.controller.admin.report.dto.report.ReportListQueryDTO;
|
|
|
+import com.zjugis.module.adm.controller.admin.report.dto.report.ReportPageQueryDTO;
|
|
|
import com.zjugis.module.adm.controller.admin.report.dto.report.ReportPageReqDTO;
|
|
|
import com.zjugis.module.adm.controller.admin.report.dto.report.ReportQueryDTO;
|
|
|
import com.zjugis.module.adm.controller.admin.report.dto.statistics.ReportStatisticReqDTO;
|
|
@@ -178,6 +179,7 @@ public class ReportServiceImpl implements ReportService {
|
|
|
*/
|
|
|
@Override
|
|
|
public PageResult<ReportRespVO> getReportPage(ReportPageReqDTO reqVO) {
|
|
|
+ //工作报告
|
|
|
PageResult<ReportRespVO> reportPageResult = ReportConvert.INSTANCE.convertPage(reportMapper.selectPage(reqVO));
|
|
|
if (reportPageResult.getTotal() == 0L) {
|
|
|
return reportPageResult;
|
|
@@ -186,8 +188,57 @@ public class ReportServiceImpl implements ReportService {
|
|
|
List<Long> reportIds = reportList.stream().map(ReportRespVO::getId).collect(Collectors.toList());
|
|
|
Set<String> userIdList = reportList.stream().map(ReportRespVO::getUserId).collect(Collectors.toSet());
|
|
|
|
|
|
+ //工作量
|
|
|
List<ReportWorkloadRespVO> workloadDetailList = reportWorkloadService.getReportWorkloadByRIds(reportIds, userIdList);
|
|
|
+ reportList.forEach(report -> {
|
|
|
+ report.setWorkload(workloadDetailList.stream().filter(load -> load.getReportId().equals(report.getId())).collect(Collectors.toList()));
|
|
|
+ });
|
|
|
+
|
|
|
+ return reportPageResult;
|
|
|
+ }
|
|
|
|
|
|
+ @Override
|
|
|
+ public PageResult<ReportRespVO> getReportMePage(ReportPageQueryDTO reqVO) {
|
|
|
+ //获取当前用户接收的报告Id
|
|
|
+ List<ReportReceiveRespVO> userReportReceiveList = reportReceiveService.getUserReportReceiveList(SecurityFrameworkUtils.getLoginUserId());
|
|
|
+ if (CollectionUtil.isEmpty(userReportReceiveList)) {
|
|
|
+ return new PageResult<>();
|
|
|
+ }
|
|
|
+ List<Long> reportIdList = userReportReceiveList.stream().map(ReportReceiveRespVO::getReportId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //获取报告分页列表
|
|
|
+ LambdaQueryWrapper<ReportDO> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(ReportDO::getDeleted, 0);
|
|
|
+ queryWrapper.eq(ReportDO::getIsTemp, 0);
|
|
|
+ queryWrapper.in(ReportDO::getId, reportIdList);
|
|
|
+ queryWrapper.eq(StrUtil.isNotBlank(reqVO.getReportType()), ReportDO::getReportType, reqVO.getReportType());
|
|
|
+ queryWrapper.orderByDesc(ReportDO::getFillingDate);
|
|
|
+ if (reqVO.getReportYear() != null) {
|
|
|
+ if (StrUtil.isNotBlank(reqVO.getReportType())) {
|
|
|
+ if ("daily".equals(reqVO.getReportType())) {
|
|
|
+ queryWrapper.between(ReportDO::getReportStartDate, DateUtils.getStartDateTime(reqVO.getReportYear(), reqVO.getReportMonth()), DateUtils.getEndDateTime(reqVO.getReportYear(), reqVO.getReportMonth()));
|
|
|
+ } else {
|
|
|
+ queryWrapper.eq(ReportDO::getReportYear, reqVO.getReportYear()).eq(ReportDO::getReportMonth, reqVO.getReportMonth()).eq(ReportDO::getReportWeek, reqVO.getReportWeek());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ queryWrapper.and(qw -> {
|
|
|
+ qw.eq(ReportDO::getReportType, "daily").between(ReportDO::getReportStartDate, DateUtils.getStartDateTime(reqVO.getReportYear(), reqVO.getReportMonth()), DateUtils.getEndDateTime(reqVO.getReportYear(), reqVO.getReportMonth()));
|
|
|
+ qw.or();
|
|
|
+ qw.eq(ReportDO::getReportType, "weekly").eq(ReportDO::getReportYear, reqVO.getReportYear()).eq(ReportDO::getReportMonth, reqVO.getReportMonth());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ PageResult<ReportRespVO> reportPageResult = ReportConvert.INSTANCE.convertPage(reportMapper.selectPage(reqVO, queryWrapper));
|
|
|
+ if (reportPageResult.getTotal() == 0L) {
|
|
|
+ return reportPageResult;
|
|
|
+ }
|
|
|
+ List<ReportRespVO> reportList = reportPageResult.getList();
|
|
|
+ List<Long> reportIds = reportList.stream().map(ReportRespVO::getId).collect(Collectors.toList());
|
|
|
+ Set<String> userIdList = reportList.stream().map(ReportRespVO::getUserId).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ //工作量
|
|
|
+ List<ReportWorkloadRespVO> workloadDetailList = reportWorkloadService.getReportWorkloadByRIds(reportIds, userIdList);
|
|
|
reportList.forEach(report -> {
|
|
|
report.setWorkload(workloadDetailList.stream().filter(load -> load.getReportId().equals(report.getId())).collect(Collectors.toList()));
|
|
|
});
|