|
@@ -13,6 +13,7 @@ import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
|
import com.pig4cloud.plugin.excel.annotation.Sheet;
|
|
import com.pig4cloud.plugin.excel.annotation.Sheet;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.DelEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.DelEnum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.EnableEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
@@ -23,6 +24,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUserArea;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
|
|
@@ -34,6 +36,7 @@ import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaAgentMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaAgentMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.WmPackageTaskTypeQtyMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeMapper;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysCheckChainNodeCheckHistoryService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysCheckChainNodeCheckHistoryService;
|
|
@@ -41,10 +44,16 @@ import com.qunzhixinxi.hnqz.admin.service.SysLogService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmPackageTaskTypeQtyService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmPackageTaskTypeQtyService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
|
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
|
|
+import com.qunzhixinxi.hnqz.common.core.exception.BizException;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
|
|
import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
|
|
|
|
+import java.util.IntSummaryStatistics;
|
|
|
|
+import java.util.TreeMap;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.context.ApplicationEventPublisher;
|
|
import org.springframework.context.ApplicationEventPublisher;
|
|
@@ -100,9 +109,11 @@ public class InitController {
|
|
private final SysUserAreaService userAreaService;
|
|
private final SysUserAreaService userAreaService;
|
|
private final SysAreaEntityService areaEntityService;
|
|
private final SysAreaEntityService areaEntityService;
|
|
private final SysUserService userService;
|
|
private final SysUserService userService;
|
|
- private final RedisTemplate<String, Object> redisTemplate;
|
|
|
|
|
|
+ private final RedisTemplate redisTemplate;
|
|
private final ApplicationEventPublisher applicationEventPublisher;
|
|
private final ApplicationEventPublisher applicationEventPublisher;
|
|
private final WmPackageTaskTypeQtyService packageTaskTypeQtyService;
|
|
private final WmPackageTaskTypeQtyService packageTaskTypeQtyService;
|
|
|
|
+ private final WmPackageTaskTypeQtyMapper wmPackageTaskTypeQtyMapper;
|
|
|
|
+ private final WmScorePackageService wmScorePackageService;
|
|
private final SysCheckChainNodeCheckHistoryService checkChainNodeCheckHistoryService;
|
|
private final SysCheckChainNodeCheckHistoryService checkChainNodeCheckHistoryService;
|
|
|
|
|
|
@Inner(value = false)
|
|
@Inner(value = false)
|
|
@@ -1184,5 +1195,205 @@ public class InitController {
|
|
return Math.max(seconds, 0L);
|
|
return Math.max(seconds, 0L);
|
|
}
|
|
}
|
|
|
|
|
|
- public void export1() {}
|
|
|
|
|
|
+ @Inner(value = false)
|
|
|
|
+ @GetMapping(value = "/cnbg/pkg/dis/stat")
|
|
|
|
+ public R<Map<String, Object>> scorePackageDisStat() {
|
|
|
|
+
|
|
|
|
+ // Set<Integer> ignoreIds = new HashSet<>();
|
|
|
|
+ // ignoreIds.add(1716964676);
|
|
|
|
+ // ignoreIds.add(-1020826);
|
|
|
|
+ // ignoreIds.add(-1019986);
|
|
|
|
+ //
|
|
|
|
+ // List<SysDept> range = redisTemplate.opsForList().range(CacheConstants.DEPT_KEY, 0, -1);
|
|
|
|
+ //
|
|
|
|
+ // // 获取所有的企业
|
|
|
|
+ // List<SysDept> depts =
|
|
|
|
+ // range.stream().filter(d ->
|
|
|
|
+ // !ignoreIds.contains(d.getDeptId())).collect(Collectors.toList());
|
|
|
|
+ //
|
|
|
|
+ // if (CollUtil.isEmpty(depts)) {
|
|
|
|
+ // throw new BizException("不存在生效的企业信息,无法获取导出数据");
|
|
|
|
+ // }
|
|
|
|
+ //
|
|
|
|
+ // // 分别过滤区域和服务商
|
|
|
|
+ // Map<Integer, SysDept> dis =
|
|
|
|
+ // depts.stream()
|
|
|
|
+ // .filter(d -> d.getLevel() == 3)
|
|
|
|
+ // .collect(Collectors.toMap(SysDept::getDeptId, Function.identity()));
|
|
|
|
+ // Map<Integer, SysDept> service =
|
|
|
|
+ // depts.stream()
|
|
|
|
+ // .filter(d -> d.getLevel() == 4)
|
|
|
|
+ // .collect(Collectors.toMap(SysDept::getDeptId, Function.identity()));
|
|
|
|
+ //
|
|
|
|
+ // if (CollUtil.isEmpty(dis) || CollUtil.isEmpty(service)) {
|
|
|
|
+ // throw new BizException("不存在生效的区域或服务商,无法获取导出数据");
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // 获取全部的包
|
|
|
|
+ List<WmScorePackage> pkgs =
|
|
|
|
+ wmScorePackageService.list(
|
|
|
|
+ Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
|
+ .eq(WmScorePackage::getEnableFlag, EnableEnum.ENABLE.val())
|
|
|
|
+ .between(
|
|
|
|
+ WmScorePackage::getCreateTime,
|
|
|
|
+ LocalDateTime.now().minusYears(1L),
|
|
|
|
+ LocalDateTime.now()));
|
|
|
|
+
|
|
|
|
+ if (CollUtil.isEmpty(pkgs)) {
|
|
|
|
+ return R.ok(Collections.emptyMap());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Map<Integer, List<WmPackageTaskTypeQty>> collect1 =
|
|
|
|
+ wmPackageTaskTypeQtyMapper
|
|
|
|
+ .selectList(
|
|
|
|
+ Wrappers.<WmPackageTaskTypeQty>lambdaQuery()
|
|
|
|
+ .in(
|
|
|
|
+ WmPackageTaskTypeQty::getPackageId,
|
|
|
|
+ pkgs.stream()
|
|
|
|
+ .map(p -> Integer.parseInt(p.getId()))
|
|
|
|
+ .distinct()
|
|
|
|
+ .sorted()
|
|
|
|
+ .collect(Collectors.toList())))
|
|
|
|
+ .stream()
|
|
|
|
+ .collect(Collectors.groupingBy(WmPackageTaskTypeQty::getPackageId));
|
|
|
|
+
|
|
|
|
+ pkgs.forEach(
|
|
|
|
+ p -> {
|
|
|
|
+ if (StrUtil.isBlank(p.getRelationScoreId())) {
|
|
|
|
+ p.setRelationScoreId("0");
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ Map<String, List<WmScorePackage>> collect =
|
|
|
|
+ pkgs.stream().collect(Collectors.groupingBy(WmScorePackage::getRelationScoreId));
|
|
|
|
+
|
|
|
|
+ List<WmScorePackage> wmScorePackages = collect.get("0");
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>(wmScorePackages.size());
|
|
|
|
+
|
|
|
|
+ long lv1 = 0;
|
|
|
|
+ long lv2 = 0;
|
|
|
|
+ long lv3 = 0;
|
|
|
|
+ long lv4 = 0;
|
|
|
|
+
|
|
|
|
+ for (WmScorePackage wmScorePackage : wmScorePackages) {
|
|
|
|
+ Map<String, Object> r = new HashMap<>(8);
|
|
|
|
+ r.put("pkgId", wmScorePackage.getId());
|
|
|
|
+ r.put("pkgName", wmScorePackage.getScorePackageName());
|
|
|
|
+ r.put("score", wmScorePackage.getScore());
|
|
|
|
+ r.put("provAbbr", wmScorePackage.getProvAbbr());
|
|
|
|
+ List<WmPackageTaskTypeQty> wmPackageTaskTypeQties =
|
|
|
|
+ collect1.get(Integer.parseInt(wmScorePackage.getId()));
|
|
|
|
+ r.put(
|
|
|
|
+ "qty",
|
|
|
|
+ CollUtil.isEmpty(wmPackageTaskTypeQties)
|
|
|
|
+ ? 0
|
|
|
|
+ : wmPackageTaskTypeQties.stream().mapToInt(WmPackageTaskTypeQty::getQty).sum());
|
|
|
|
+
|
|
|
|
+ long disQty = 0L;
|
|
|
|
+ List<Map<String, Object>> sonList;
|
|
|
|
+ List<WmScorePackage> son = collect.get(wmScorePackage.getId());
|
|
|
|
+ if (CollUtil.isNotEmpty(son)) {
|
|
|
|
+ sonList = new ArrayList<>(son.size());
|
|
|
|
+
|
|
|
|
+ for (WmScorePackage sonPackage : son) {
|
|
|
|
+ Map<String, Object> s = new HashMap<>(8);
|
|
|
|
+ s.put("pkgId", sonPackage.getId());
|
|
|
|
+ s.put("pkgName", sonPackage.getScorePackageName());
|
|
|
|
+ s.put("score", sonPackage.getScore());
|
|
|
|
+ s.put("provAbbr", sonPackage.getProvAbbr());
|
|
|
|
+ List<WmPackageTaskTypeQty> wmPackageTaskTypeQties1 =
|
|
|
|
+ collect1.get(Integer.parseInt(sonPackage.getId()));
|
|
|
|
+ long sum1 =
|
|
|
|
+ CollUtil.isEmpty(wmPackageTaskTypeQties1)
|
|
|
|
+ ? 0
|
|
|
|
+ : wmPackageTaskTypeQties1.stream().mapToInt(WmPackageTaskTypeQty::getQty).sum();
|
|
|
|
+ s.put("qty", sum1);
|
|
|
|
+
|
|
|
|
+ long sDisQty = 0L;
|
|
|
|
+ List<Map<String, Object>> grandsonList;
|
|
|
|
+ List<WmScorePackage> grandson = collect.get(wmScorePackage.getId());
|
|
|
|
+ if (CollUtil.isNotEmpty(grandson)) {
|
|
|
|
+ grandsonList = new ArrayList<>(son.size());
|
|
|
|
+
|
|
|
|
+ for (WmScorePackage grandsonPackage : grandson) {
|
|
|
|
+ Map<String, Object> gs = new HashMap<>(6);
|
|
|
|
+ gs.put("pkgId", grandsonPackage.getId());
|
|
|
|
+ gs.put("pkgName", grandsonPackage.getScorePackageName());
|
|
|
|
+ gs.put("score", grandsonPackage.getScore());
|
|
|
|
+ gs.put("provAbbr", grandsonPackage.getProvAbbr());
|
|
|
|
+ List<WmPackageTaskTypeQty> wmPackageTaskTypeQties2 =
|
|
|
|
+ collect1.get(Integer.parseInt(grandsonPackage.getId()));
|
|
|
|
+ long sum =
|
|
|
|
+ CollUtil.isEmpty(wmPackageTaskTypeQties2)
|
|
|
|
+ ? 0
|
|
|
|
+ : wmPackageTaskTypeQties2.stream()
|
|
|
|
+ .mapToInt(WmPackageTaskTypeQty::getQty)
|
|
|
|
+ .sum();
|
|
|
|
+
|
|
|
|
+ long gsDisQty = 0L;
|
|
|
|
+ List<Map<String, Object>> grandsonList2;
|
|
|
|
+ List<WmScorePackage> grandson2 = collect.get(wmScorePackage.getId());
|
|
|
|
+ if (CollUtil.isNotEmpty(grandson2)) {
|
|
|
|
+ grandsonList2 = new ArrayList<>(son.size());
|
|
|
|
+
|
|
|
|
+ for (WmScorePackage grandson2Package : grandson) {
|
|
|
|
+ Map<String, Object> gs2 = new HashMap<>(5);
|
|
|
|
+ gs2.put("pkgId", grandson2Package.getId());
|
|
|
|
+ gs2.put("pkgName", grandson2Package.getScorePackageName());
|
|
|
|
+ gs2.put("score", grandson2Package.getScore());
|
|
|
|
+ gs2.put("provAbbr", grandson2Package.getProvAbbr());
|
|
|
|
+ List<WmPackageTaskTypeQty> wmPackageTaskTypeQties3 =
|
|
|
|
+ collect1.get(Integer.parseInt(grandsonPackage.getId()));
|
|
|
|
+ long sum4 =
|
|
|
|
+ CollUtil.isEmpty(wmPackageTaskTypeQties3)
|
|
|
|
+ ? 0
|
|
|
|
+ : wmPackageTaskTypeQties3.stream()
|
|
|
|
+ .mapToInt(WmPackageTaskTypeQty::getQty)
|
|
|
|
+ .sum();
|
|
|
|
+
|
|
|
|
+ grandsonList2.add(gs2);
|
|
|
|
+ gs2.put("qty", sum4);
|
|
|
|
+ lv4 += sum4;
|
|
|
|
+ gsDisQty += sum4;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ grandsonList2 = Collections.emptyList();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ lv3 += gsDisQty;
|
|
|
|
+ gs.put("qty", gsDisQty);
|
|
|
|
+ gs.put("children", grandsonList2);
|
|
|
|
+ sDisQty += sum;
|
|
|
|
+ grandsonList.add(gs);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ grandsonList = Collections.emptyList();
|
|
|
|
+ }
|
|
|
|
+ lv2 += sDisQty;
|
|
|
|
+ s.put("disQty", sDisQty);
|
|
|
|
+ s.put("children", grandsonList);
|
|
|
|
+ disQty += sum1;
|
|
|
|
+ sonList.add(s);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ sonList = Collections.emptyList();
|
|
|
|
+ }
|
|
|
|
+ r.put("disQty", disQty);
|
|
|
|
+ r.put("children", sonList);
|
|
|
|
+ lv1 += disQty;
|
|
|
|
+ list.add(r);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Map<String, Object> r = new TreeMap<>();
|
|
|
|
+ r.put("lv1", lv1);
|
|
|
|
+ r.put("lv2", lv1);
|
|
|
|
+ r.put("lv3", lv1);
|
|
|
|
+ r.put("lv4", lv1);
|
|
|
|
+ r.put("details", list);
|
|
|
|
+ return R.ok(r);
|
|
|
|
+ }
|
|
}
|
|
}
|