Browse Source

feat: 获取可用积分包

shc 5 months ago
parent
commit
28d7340f18

+ 0 - 43
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageControllerV2.java

@@ -1,43 +0,0 @@
-package com.qunzhixinxi.hnqz.admin.controller;
-
-import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
-import com.pig4cloud.plugin.excel.annotation.Sheet;
-import com.qunzhixinxi.hnqz.admin.api.model.excel.WmScorePackageInfoExcelModel;
-import com.qunzhixinxi.hnqz.admin.manager.WmPackageManager;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.time.LocalDate;
-import java.util.List;
-
-/**
- * 积分包前端控制器v2
- *
- * @author jimmy
- * @date 2024-12-02 18:36
- */
-@Slf4j
-@RestController
-@AllArgsConstructor
-public class WmScorePackageControllerV2 {
-
-    private final WmPackageManager packageManager;
-
-    @GetMapping(value = "/pkg/info/export")
-    @ResponseExcel(name = "pkgInfoExcel", sheets = {@Sheet(sheetName = "执行包信息")})
-    public List<WmScorePackageInfoExcelModel> exportPkgInfo() {
-
-        LocalDate today = LocalDate.now();
-
-        // 获取三个月内的数据
-        LocalDate startDate = today.minusMonths(6);
-
-
-        return packageManager.exportPkgInfo(startDate, today);
-
-    }
-
-
-}

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java → hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/pkg/WmScorePackageController.java

@@ -1,4 +1,4 @@
-package com.qunzhixinxi.hnqz.admin.controller;
+package com.qunzhixinxi.hnqz.admin.controller.pkg;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;

+ 112 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/pkg/WmScorePackageControllerV2.java

@@ -0,0 +1,112 @@
+package com.qunzhixinxi.hnqz.admin.controller.pkg;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
+import com.pig4cloud.plugin.excel.annotation.Sheet;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.model.excel.WmScorePackageInfoExcelModel;
+import com.qunzhixinxi.hnqz.admin.api.vo.SysImplementPlanVO.ToList;
+import com.qunzhixinxi.hnqz.admin.manager.WmPackageManager;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import io.prometheus.client.Collector;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 积分包前端控制器v2
+ *
+ * @author jimmy
+ * @date 2024-12-02 18:36
+ */
+@Slf4j
+@RestController
+@AllArgsConstructor
+public class WmScorePackageControllerV2 {
+
+  private final WmPackageManager packageManager;
+  private final SysDeptService sysDeptService;
+  private final WmScorePackageService wmScorePackageService;
+
+  @GetMapping(value = "/pkg/info/export")
+  @ResponseExcel(
+      name = "pkgInfoExcel",
+      sheets = {@Sheet(sheetName = "执行包信息")})
+  public List<WmScorePackageInfoExcelModel> exportPkgInfo() {
+
+    LocalDate today = LocalDate.now();
+
+    // 获取三个月内的数据
+    LocalDate startDate = today.minusMonths(12);
+
+    return packageManager.exportPkgInfo(startDate, today);
+  }
+
+  @GetMapping(value = "/pkg/avail")
+  public R<Map<String, List<String>>> availPkg(
+      @RequestParam(value = "pkgName", required = false) String pkgName) {
+
+    // 获取所有的包
+    List<WmScorePackage> avail =
+        wmScorePackageService.list(
+            Wrappers.<WmScorePackage>lambdaQuery()
+                .eq(WmScorePackage::getEnableFlag, CommonConstants.STATUS_NORMAL)
+                .eq(WmScorePackage::getDelFlag, CommonConstants.STATUS_NORMAL));
+
+    // 获取区域
+    List<String> depts =
+        sysDeptService.list(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 3)).stream()
+            .map(d -> d.getDeptId().toString())
+            .distinct()
+            .sorted()
+            .collect(Collectors.toList());
+
+    List<WmScorePackage> ppkgs =
+        avail.stream()
+            .filter(p -> depts.contains(p.getSendPackageDeptId()))
+            .collect(Collectors.toList());
+
+
+    if (CollUtil.isEmpty(ppkgs)) {
+      return R.ok(Collections.emptyMap());
+    }
+
+    Map<String, List<WmScorePackage>> collect =
+          avail.stream().collect(Collectors.groupingBy(WmScorePackage::getRelationScoreId));
+
+    Map<String, List<String>> map = new HashMap<>(ppkgs.size());
+    ppkgs.forEach(
+        ppkg -> {
+          List<WmScorePackage> pkg = collect.get(ppkg.getId());
+          List<String> pkgIds =
+              CollUtil.isEmpty(pkg)
+                  ? Collections.emptyList()
+                  : pkg.stream()
+                      .map(WmScorePackage::getId)
+                      .distinct()
+                      .sorted()
+                      .collect(Collectors.toList());
+
+          map.put(ppkg.getScorePackageName(), pkgIds);
+        });
+
+    return R.ok(map);
+  }
+}