浏览代码

feat: data statistics v1.4 服务商分数

shc 7 月之前
父节点
当前提交
9b73d6ffef

+ 7 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/SysStatisticDto.java

@@ -46,7 +46,14 @@ public final class SysStatisticDto {
 
     @Data
     public static class OnProviderQccData {
+        @NotNull(message = "页码必填")
+        @Min(value = 1, message = "页码最小为{value}")
+        private Integer current;
 
+        @NotNull(message = "分页数量必填")
+        @Min(value = 10, message = "分页数量最小为{value}")
+        @Max(value = 100, message = "分页数量最大为{value}")
+        private Integer size;
     }
 
     @Data

+ 7 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysStatisticController.java

@@ -67,9 +67,14 @@ public class SysStatisticController {
         return R.ok(statisticManager.statPkgTree(query, SecurityUtils.getUser()));
     }
 
-    // todo
+    /**
+     * 服务商评分统计
+     *
+     * @param query 查询条件
+     * @return 分页结果
+     */
     @GetMapping(value = "/stat/provider/data")
-    public R<Page<Map<String, Object>>> statProviderData(SysStatisticDto.OnProviderQccData query) {
+    public R<Page<?>> statProviderData(@Validated SysStatisticDto.OnProviderQccData query) {
         return R.ok(statisticManager.statProviderData(query, SecurityUtils.getUser()));
     }
 

+ 60 - 16
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysStatisticManager.java

@@ -1,7 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.manager;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.lang.tree.TreeNode;
 import cn.hutool.core.lang.tree.TreeUtil;
@@ -13,12 +12,15 @@ import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.dto.SysStatisticDto;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysImplementPlan;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmQccInfo;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervision;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
+import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
 import com.qunzhixinxi.hnqz.admin.service.SysImplementPlanService;
+import com.qunzhixinxi.hnqz.admin.service.WmQccInfoService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionService;
@@ -57,7 +59,9 @@ public class SysStatisticManager {
     private final WmTaskService taskService;
     private final WmTaskTypeService taskTypeService;
     private final WmTaskSupervisionService taskSupervisionService;
+    private final SysEnterpriseAreaService enterpriseAreaService;
     private final SysImplementPlanService implementPlanService;
+    private final WmQccInfoService qccInfoService;
 
     /**
      * 获取积分包统计
@@ -428,24 +432,64 @@ public class SysStatisticManager {
      * @param user  操作人
      * @return 统计信息
      */
-    public Page<Map<String, Object>> statProviderData(SysStatisticDto.OnProviderQccData query, HnqzUser user) {
-        Map<String, Object> records = new HashMap<>();
-        records.put("id", 123);
-        records.put("providerName", "测试服务提供方1");
-        records.put("areaCodes", ListUtil.of(0));
-        records.put("products", "123456");
-        records.put("qccScore", "90");
-        records.put("serviceMark", "120");
-        records.put("average", 123);
+    public Page<?> statProviderData(SysStatisticDto.OnProviderQccData query, HnqzUser user) {
 
+        // 获取服务商分页
+        Page<SysDept> page = new Page<>(query.getCurrent(), query.getSize());
+        deptService.page(page, Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 4).eq(SysDept::getDelFlag, CommonConstants.STATUS_NORMAL));
 
-        Page<Map<String, Object>> page = new Page<>();
-        page.setRecords(Collections.singletonList(records));
-        page.setCurrent(1);
-        page.setSize(20);
-        page.setTotal(1);
+        List<SysDept> depts = page.getRecords();
 
-        return page;
+        if (CollUtil.isEmpty(depts)) {
+            return page;
+        }
+
+        // 获取企业的服务区域
+        List<Long> deptIds = depts.stream().mapToLong(SysDept::getDeptId).boxed().distinct().sorted().collect(Collectors.toList());
+        Map<Long, List<Long>> detpId2AreaCodesMap = enterpriseAreaService.listEntAreas1(deptIds);
+
+        // 获取企查查信息
+        List<String> regCodes = depts.stream().map(SysDept::getTaxCode).distinct().sorted().collect(Collectors.toList());
+        Map<String, List<WmQccInfo>> qccInfo = qccInfoService.getQccInfo1(regCodes);
+
+
+        // 封装参数
+        List<Map<String, Object>> collect = depts.stream().map(d -> {
+            Map<String, Object> map = new HashMap<>(7);
+
+            map.put("id", d.getDeptId());
+            map.put("providerName", d.getName());
+            map.put("areaCodes", detpId2AreaCodesMap.get((long) d.getDeptId()));
+            map.put("products", "123456");
+
+            Map<String, Object> creditRatingReportGrade;
+            if (StrUtil.isNotBlank(d.getTaxCode())) {
+                List<WmQccInfo> wmQccInfos = qccInfo.get(d.getTaxCode());
+                if (CollUtil.isNotEmpty(wmQccInfos)) {
+                    creditRatingReportGrade = wmQccInfos.get(0).getCreditRatingReportGrade();
+                } else {
+                    creditRatingReportGrade = Collections.emptyMap();
+                }
+            } else {
+                creditRatingReportGrade = Collections.emptyMap();
+            }
+
+
+            map.put("qccScore", creditRatingReportGrade);
+
+
+            map.put("serviceMark", "120");
+            map.put("average", 123);
+
+            return map;
+        }).collect(Collectors.toList());
+
+
+        Page<Map<String, Object>> builds = new Page<>(query.getCurrent(), query.getSize());
+        builds.setRecords(collect);
+        builds.setTotal(page.getTotal());
+
+        return builds;
 
     }
 

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmQccInfoService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmQccInfo;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 
+import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -30,4 +32,12 @@ public interface WmQccInfoService extends IService<WmQccInfo> {
      * @return 企查查信息
      */
     WmQccInfo getQccInfo(String regCode);
+
+    /**
+     * 批量获取企业企查查信息
+     *
+     * @param regCodes 企业信用代码
+     * @return 企查查信息
+     */
+    Map<String, List<WmQccInfo>> getQccInfo1(Collection<String> regCodes);
 }

+ 19 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmQccInfoServiceImpl.java

@@ -1,6 +1,5 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONNull;
@@ -17,11 +16,11 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -507,7 +506,7 @@ public class WmQccInfoServiceImpl extends ServiceImpl<WmQccInfoMapper, WmQccInfo
 
                     JSONObject am = data.getJSONObject("AdjustModule");
                     Map<String, Object> AdjustModule = new HashMap<>(13);
-                    AdjustModule.put("AdjustScore", am.get("AdjustScore") );
+                    AdjustModule.put("AdjustScore", am.get("AdjustScore"));
                     AdjustModule.put("RegistcapiScore", am.get("RegistcapiScore"));
                     AdjustModule.put("OperationTimeScore", am.get("OperationTimeScore"));
                     AdjustModule.put("EciChangeScore", am.get("EciChangeScore"));
@@ -549,4 +548,21 @@ public class WmQccInfoServiceImpl extends ServiceImpl<WmQccInfoMapper, WmQccInfo
         List<WmQccInfo> list = this.list(Wrappers.<WmQccInfo>lambdaQuery().eq(WmQccInfo::getRegCode, regCode).orderByDesc(WmQccInfo::getCreateTime));
         return CollUtil.isEmpty(list) ? null : list.get(0);
     }
+
+    /**
+     * 批量获取企业企查查信息
+     *
+     * @param regCodes 企业信用代码
+     * @return 企查查信息
+     */
+    @Override
+    public Map<String, List<WmQccInfo>> getQccInfo1(Collection<String> regCodes) {
+        List<WmQccInfo> list = this.list(Wrappers.<WmQccInfo>lambdaQuery().in(WmQccInfo::getRegCode, regCodes).orderByDesc(WmQccInfo::getCreateTime));
+
+        if (CollUtil.isEmpty(list)) {
+            return Collections.emptyMap();
+        }
+
+        return list.stream().collect(Collectors.groupingBy(WmQccInfo::getRegCode));
+    }
 }