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