Explorar o código

feat:监督模块分页条件1

shc hai 6 meses
pai
achega
a2d12748b6

+ 17 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/WmSupervisionDto.java

@@ -246,6 +246,23 @@ public final class WmSupervisionDto {
     @Data
     public static class OnTaskSupervisionPage {
 
+        private String taskId;
+
+        private String taskNumber;
+
+        private String taskTypeId;
+
+        private String pkgName;
+
+        private LocalDate[] pkgPeriod;
+
+        private String skuName;
+
+        private String mahName;
+
+        private String memberName;
+
+
         @NotNull(message = "查询服务商必填")
         private Integer deptId;
 

+ 6 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmSupervisionController.java

@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.IOException;
+import java.time.LocalDate;
 import java.util.List;
 import java.util.Map;
 
@@ -150,14 +151,16 @@ public class WmSupervisionController {
     /**
      * 导出监察报告
      *
-     * @param entId 企业ID
+     * @param entId  企业ID
+     * @param period 周期
      * @return 上传结果
      * @throws Exception 异常
      */
     @GetMapping(value = "/supervision/report/export")
-    public R<Map<String, String>> exportSupervisionReportPDF(@RequestParam(value = "entId") Integer entId) throws Exception {
+    public R<Map<String, String>> exportSupervisionReportPDF(@RequestParam(value = "entId") Integer entId,
+                                                             @RequestParam(value = "period", required = false) LocalDate[] period) throws Exception {
 
-        return R.ok(supervisionManager.exportSupervisionReportPDF(entId, SecurityUtils.getUser()));
+        return R.ok(supervisionManager.exportSupervisionReportPDF(entId, period, SecurityUtils.getUser()));
 
 
     }

+ 82 - 13
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -1211,25 +1211,73 @@ public class WmSupervisionManager {
         HnqzUser user = SecurityUtils.getUser();
         Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
 
+        // 判断是否要查询指定的代表
+        String memberName = query.getMemberName();
+        List<Integer> userIds1;
+        if (StrUtil.isNotBlank(memberName)) {
+            userIds1 = userService.list(Wrappers.<SysUser>lambdaQuery()
+                            .eq(SysUser::getLockFlag, CommonConstants.STATUS_NORMAL)
+                            .eq(SysUser::getDelFlag, CommonConstants.STATUS_NORMAL)
+                            .like(SysUser::getRealname, memberName.trim()))
+                    .stream()
+                    .mapToInt(SysUser::getUserId)
+                    .boxed()
+                    .sorted()
+                    .distinct()
+                    .collect(Collectors.toList());
+
+            if (CollUtil.isEmpty(userIds1)) {
+                return page;
+            }
+
+        } else {
+            userIds1 = Collections.emptyList();
+        }
+
+
+        // 获取药品条件
+        List<Integer> drugtableIds = wmDaDrugEntDrugtableMapper.selectList(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery()
+                        .like(StrUtil.isNotBlank(query.getMahName()), WmDaDrugEntDrugtable::getDrugEntName, query.getMahName())
+                        .like(StrUtil.isNotBlank(query.getSkuName()), WmDaDrugEntDrugtable::getDrugnameTy, query.getSkuName()))
+                .stream()
+                .mapToInt(drug -> Integer.parseInt(drug.getId()))
+                .boxed()
+                .distinct()
+                .sorted()
+                .collect(Collectors.toList());
+
+
         // 根据角色判断药品
         List<Integer> drugIds;
         if (!roles.contains(39) && !roles.contains(37)) {
 
             drugIds = userDrugService.listDrugIdByUserId(user.getId());
 
+            // 如果有条件参数查询交集
+            drugIds = new ArrayList<>(CollUtil.intersectionDistinct(drugIds, drugtableIds));
+
             if (CollUtil.isEmpty(drugIds)) {
                 log.info("当前操作人没有分配产品");
                 return page;
             }
 
         } else {
-            drugIds = Collections.emptyList();
+            drugIds = CollUtil.isEmpty(drugtableIds) ? Collections.emptyList() : drugtableIds;
         }
 
         // 获取积分包
-        List<WmScorePackage> packages = packageService.list(Wrappers.<WmScorePackage>lambdaQuery()
+        LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
+                .like(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
                 .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
-                .eq(WmScorePackage::getSendPackageDeptId, query.getDeptId()));
+                .eq(WmScorePackage::getSendPackageDeptId, query.getDeptId());
+
+        LocalDate[] pkgPeriod = query.getPkgPeriod();
+        if (ArrayUtil.isNotEmpty(pkgPeriod)) {
+            queryWrapper.ge(WmScorePackage::getStartTime, pkgPeriod[0]);
+            queryWrapper.le(WmScorePackage::getEndTime, pkgPeriod[1]);
+        }
+
+        List<WmScorePackage> packages = packageService.list(queryWrapper);
 
         if (CollUtil.isEmpty(packages)) {
             return page;
@@ -1239,11 +1287,11 @@ public class WmSupervisionManager {
         List<Integer> pkgIds = packages.stream().map(WmScorePackage::getId).mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList());
 
         // 积分包内已经监督的任务
-
         List<WmTaskSupervision> list1 = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
                 // .in(WmTaskSupervision::getRoleId, visibleRoleIds)
                 // .eq(WmTaskSupervision::getModifiable, false)
-                .in(WmTaskSupervision::getPackageId, pkgIds).orderByDesc(WmTaskSupervision::getCreateTime));
+                .in(WmTaskSupervision::getPackageId, pkgIds)
+                .orderByDesc(WmTaskSupervision::getCreateTime));
 
         List<WmTaskSupervision> list = list1.stream().filter(ts -> !ts.getModifiable()).collect(Collectors.toList());
 
@@ -1283,7 +1331,13 @@ public class WmSupervisionManager {
             Set<Integer> supTaskIds = collect.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
 
 
-            taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
+            taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()),
+                    Wrappers.<WmTask>lambdaQuery()
+                            .in(CollUtil.isNotEmpty(userIds1), WmTask::getTaskUserId, userIds1)
+                            .eq(StrUtil.isNotBlank(query.getTaskTypeId()), WmTask::getTaskTypeId, query.getTaskTypeId())
+                            .like(StrUtil.isNotBlank(query.getTaskId()), WmTask::getId, query.getTaskId())
+                            .like(StrUtil.isNotBlank(query.getTaskNumber()), WmTask::getTaskNumber, query.getTaskNumber())
+                            .in(WmTask::getId, supTaskIds));
         }
         // 负责人|分管领导|事业部总经理
         else {
@@ -1351,7 +1405,12 @@ public class WmSupervisionManager {
                 return page;
             }
 
-            taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
+            taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery()
+                    .in(CollUtil.isNotEmpty(userIds1), WmTask::getTaskUserId, userIds1)
+                    .eq(StrUtil.isNotBlank(query.getTaskTypeId()), WmTask::getTaskTypeId, query.getTaskTypeId())
+                    .like(StrUtil.isNotBlank(query.getTaskId()), WmTask::getId, query.getTaskId())
+                    .like(StrUtil.isNotBlank(query.getTaskNumber()), WmTask::getTaskNumber, query.getTaskNumber())
+                    .in(WmTask::getId, supTaskIds));
 
         }
 
@@ -1479,18 +1538,19 @@ public class WmSupervisionManager {
     /**
      * 生成报告pdf
      *
-     * @param entId 企业ID
-     * @param user  操作人
+     * @param entId  企业ID
+     * @param user   操作人
+     * @param period 周期
      * @return 本地路径
      */
-    public Map<String, String> exportSupervisionReportPDF(Integer entId, HnqzUser user) throws Exception {
+    public Map<String, String> exportSupervisionReportPDF(Integer entId, LocalDate[] period, HnqzUser user) throws Exception {
 
         Map<String, String> envPaths = OsEnvUtils.getEachEnvPaths();
         // 生成本地路径
         String targetPath = envPaths.get(OsEnvUtils.TargetFile.TEMP.getName()) + DateTimeFormatter.ofPattern(DatePattern.PURE_DATETIME_PATTERN).format(LocalDateTime.now()) + "_supervision_" + IdUtil.fastSimpleUUID() + ".pdf";
 
         // 封装报告数据
-        Object[][] datas = buildSupervisionReportDatas(entId, user);
+        Object[][] datas = buildSupervisionReportDatas(entId, period, user);
 
         PdfUtils.generateSupervisionReport(targetPath, PageSize.A4, true, envPaths.get(OsEnvUtils.TargetFile.FONT.getName()) + "SimSun.ttc", datas);
 
@@ -1502,14 +1562,23 @@ public class WmSupervisionManager {
         return uploaded;
     }
 
-    private Object[][] buildSupervisionReportDatas(Integer entId, HnqzUser user) {
+    private Object[][] buildSupervisionReportDatas(Integer entId, LocalDate[] period, HnqzUser user) {
 
 
         // 获取企业
         SysDept service = deptService.getById(entId);
 
         // 获取服务商下的所有c端包
-        List<WmScorePackage> pkgs = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getSendPackageDeptId, service.getDeptId().toString()));
+
+        LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
+                .eq(WmScorePackage::getSendPackageDeptId, service.getDeptId().toString());
+
+        if (ArrayUtil.isNotEmpty(period)) {
+            queryWrapper.ge(WmScorePackage::getStartTime, period[0]);
+            queryWrapper.le(WmScorePackage::getEndTime, period[1]);
+        }
+
+        List<WmScorePackage> pkgs = packageService.list(queryWrapper);
 
         if (CollUtil.isEmpty(pkgs)) {
             throw new BizException("当前服务商不存在可用的执行包,无法导出");