Quellcode durchsuchen

增加我收到的周日报接口

zhangjq vor 1 Jahr
Ursprung
Commit
9d068d3c3a

+ 12 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/report/ReportController.java

@@ -1,6 +1,7 @@
 package com.zjugis.module.adm.controller.admin.report;
 
 import com.zjugis.framework.common.pojo.PageResult;
+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.ReportListQueryDTO;
 import com.zjugis.module.adm.convert.report.ReportConvert;
@@ -72,6 +73,17 @@ public class ReportController {
         return success(reportService.getReportPage(reqVO));
     }
 
+    /**
+     * 获得我收到的周日报分页列表
+     *
+     * @param reqVO
+     * @return
+     */
+    @GetMapping("/page/me")
+    @Operation(summary = "获得我收到的报告分页列表")
+    public CommonResult<PageResult<ReportRespVO>> getReportMePage(@Valid ReportPageQueryDTO reqVO) {
+        return success(reportService.getReportMePage(reqVO));
+    }
 
     /**
      * 获得行政管理_报告列表

+ 29 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/report/dto/report/ReportPageQueryDTO.java

@@ -0,0 +1,29 @@
+package com.zjugis.module.adm.controller.admin.report.dto.report;
+
+import com.zjugis.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 行政管理_工作报告分页列表查询参数")
+@Data
+public class ReportPageQueryDTO extends PageParam {
+
+    @Schema(description = "daily:日报;weekly:周报", example = "daily")
+    private String reportType;
+
+
+    @Schema(description = "报告年份")
+    private Short reportYear;
+
+
+    @Schema(description = "报告月份")
+    private Short reportMonth;
+
+    @Schema(description = "报告周")
+    private Short reportWeek;
+
+
+}

+ 8 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/report/ReportService.java

@@ -3,6 +3,7 @@ package com.zjugis.module.adm.service.report;
 import java.util.*;
 import javax.validation.*;
 
+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.ReportListQueryDTO;
 import com.zjugis.module.adm.controller.admin.report.dto.report.ReportQueryDTO;
@@ -42,6 +43,13 @@ public interface ReportService {
      */
     PageResult<ReportRespVO> getReportPage(ReportPageReqDTO reqVO);
 
+    /**
+     * 获取我收到的报告分页列表
+     * @param reqVO
+     * @return
+     */
+    PageResult<ReportRespVO> getReportMePage(ReportPageQueryDTO reqVO) ;
+
     /**
      * 获取报告列表
      * @param reqVO

+ 51 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/report/ReportServiceImpl.java

@@ -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()));
         });

+ 9 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/reportreceive/ReportReceiveService.java

@@ -93,4 +93,13 @@ public interface ReportReceiveService {
      */
     List<ReportReceiveRespVO> getReportReceiveList(List<Long> reportId);
 
+
+    /**
+     * 根据用户获得行政管理_报告接收列表
+     *
+     * @param userId 用户id
+     * @return 行政管理_报告接收列表
+     */
+    List<ReportReceiveRespVO> getUserReportReceiveList(String userId);
+
 }

+ 11 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/reportreceive/ReportReceiveServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zjugis.module.adm.service.reportreceive;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -123,4 +124,14 @@ public class ReportReceiveServiceImpl implements ReportReceiveService {
                 .inIfPresent(ReportReceiveDO::getReportId, reportId)));
     }
 
+    @Override
+    public List<ReportReceiveRespVO> getUserReportReceiveList(String userId) {
+        if (StrUtil.isEmpty(userId)) {
+            return Collections.emptyList();
+        }
+        return ReportReceiveConvert.INSTANCE.convertList(reportReceiveMapper.selectList(new LambdaQueryWrapperX<ReportReceiveDO>()
+                        .eq(ReportReceiveDO::getDeleted,0)
+                .eqIfPresent(ReportReceiveDO::getReceiveUserId, userId)));
+    }
+
 }