he2802 преди 1 година
родител
ревизия
bd6c8e0a60
променени са 24 файла, в които са добавени 632 реда и са изтрити 62 реда
  1. 1 1
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOrderStatisticsController.java
  2. 79 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopSharedCustomerController.java
  3. 7 0
      zhongzheng-admin-saas/src/main/resources/application-dev.yml
  4. 7 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java
  5. 7 0
      zhongzheng-admin/src/main/resources/application-dev.yml
  6. 1 1
      zhongzheng-admin/src/main/resources/application-prod.yml
  7. 7 0
      zhongzheng-api/src/main/resources/application-dev.yml
  8. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  9. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java
  10. 20 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java
  11. 9 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java
  12. 223 49
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java
  13. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderStatisticsBo.java
  14. 28 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopCertStatsVo.java
  15. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateDataVo.java
  16. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateVo.java
  17. 34 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopCustomerStatsVo.java
  18. 25 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderAreaDataVo.java
  19. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderAreaVo.java
  20. 4 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsDetailVo.java
  21. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsMoneyVo.java
  22. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsNumVo.java
  23. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsTwoVo.java
  24. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopSharedCustomerTotalVo.java

+ 1 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOrderStatisticsController.java

@@ -22,7 +22,7 @@ import java.util.List;
  * @author ruoyi
  * @date 2023-04-20
  */
-@Api(value = "订单控制器", tags = {"订单管理"})
+@Api(value = "订单统计控制器", tags = {"订单统计控制器"})
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 @RestController
 @RequestMapping("/system/top/order/statistics")

+ 79 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopSharedCustomerController.java

@@ -0,0 +1,79 @@
+package com.zhongzheng.controller.order;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.framework.web.service.TopTokenService;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
+import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsBo;
+import com.zhongzheng.modules.top.order.bo.TopOrderStatisticsViewBo;
+import com.zhongzheng.modules.top.order.vo.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 订单Controller
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Api(value = "公海控制器", tags = {"公海控制器"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/order/shared")
+public class TopSharedCustomerController extends BaseController {
+
+    private final ITopOldOrderService iTopOldOrderService;
+
+    /**
+     * 公海客户统计
+     */
+    @ApiOperation("公海客户统计")
+    @GetMapping("/statistics")
+    public AjaxResult<TopSharedCustomerTotalVo> getSharedStatistics(TopOrderStatisticsBo bo) {
+        return AjaxResult.success(iTopOldOrderService.getSharedStatistics(bo));
+    }
+
+    /**
+     * 公海总客户
+     */
+    @ApiOperation("公海总客户")
+    @GetMapping("/customer/stats")
+    public AjaxResult<TopCustomerStatsVo> getCustomerStatsData(TopOrderStatisticsBo bo) {
+        return AjaxResult.success(iTopOldOrderService.getCustomerStatsData(bo));
+    }
+
+    /**
+     * 公海过期预警
+     */
+    @ApiOperation("公海过期预警")
+    @GetMapping("/cert/stats")
+    public AjaxResult<TopCertStatsVo> getCertStatsData(TopOrderStatisticsBo bo) {
+        return AjaxResult.success(iTopOldOrderService.getCertStatsData(bo));
+    }
+
+    /**
+     * 城市转化排行
+     */
+    @ApiOperation("城市转化排行")
+    @GetMapping("/order/area")
+    public AjaxResult<TopOrderAreaVo> getOrderAreaData(TopOrderStatisticsBo bo) {
+        return AjaxResult.success(iTopOldOrderService.getOrderAreaData(bo));
+    }
+
+    /**
+     * 客户转化排名
+     */
+    @ApiOperation("客户转化排名")
+    @GetMapping("/conversion/rate")
+    public AjaxResult<TopConversionRateVo> getConversionRateData(TopOrderStatisticsBo bo) {
+        return AjaxResult.success(iTopOldOrderService.getConversionRateData(bo));
+    }
+}

+ 7 - 0
zhongzheng-admin-saas/src/main/resources/application-dev.yml

@@ -186,3 +186,10 @@ exam:
     subscribeSaveExam: http://192.168.1.7:9099/cd/subscribe/save/exam
     subscribeUpdateExam: http://192.168.1.7:9099/cd/subscribe/update/exam
     subscribeAddExamNum: http://192.168.1.7:9099/cd/subscribe/add/num
+
+shared:
+    statistics: http://gdxypx.xy.com/WitSystem/BussinessApi/HighSeasData
+    customer: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerStatsData
+    cert: http://gdxypx.xy.com/WitSystem/BussinessApi/CertStatsData
+    orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
+    rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData

+ 7 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -424,6 +424,13 @@ public class ScheduleController extends BaseController {
         return AjaxResult.success();
     }
 
+    @ApiOperation("同步一二建商品")
+    @GetMapping("/goods/copy/two")
+    public AjaxResult goodsCopyTwo(){
+        iScheduleService.goodsCopyTwo();
+        return AjaxResult.success();
+    }
+
     @ApiOperation("分销佣金解冻")
     @GetMapping("/distributionRebate")
     public AjaxResult distributionRebate(UserQueryBo bo){

+ 7 - 0
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -187,3 +187,10 @@ exam:
     subscribeSaveExam: http://192.168.1.7:9099/cd/subscribe/save/exam
     subscribeUpdateExam: http://192.168.1.7:9099/cd/subscribe/update/exam
     subscribeAddExamNum: http://192.168.1.7:9099/cd/subscribe/add/num
+
+shared:
+    statistics: http://gdxypx.xy.com/WitSystem/BussinessApi/HighSeasData
+    customer: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerStatsData
+    cert: http://gdxypx.xy.com/WitSystem/BussinessApi/CertStatsData
+    orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
+    rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData

+ 1 - 1
zhongzheng-admin/src/main/resources/application-prod.yml

@@ -134,7 +134,7 @@ oldStudySys:
     classOpenPath: https://www.xyyxt.net/System/BussinessApi/OpenClass
     salePassword: http://www.xyyxt.net/WitSystem/BussinessApi/GetSaleInfo
     updateInvoicePath: http://www.xyyxt.net/system/BussinessApi/UpdateInvoiceData
-    createExamPath: http://gdxypx.xy.com/system/BussinessApi/CreateSameClass
+    createExamPath: http://www.xyyxt.net/system/BussinessApi/CreateSameClass
 
 officialPush:
     infoPath: https://jypt.gdcic.net/organjxjy/ShangBaoMingdan

+ 7 - 0
zhongzheng-api/src/main/resources/application-dev.yml

@@ -189,3 +189,10 @@ exam:
     subscribeSaveExam: http://192.168.1.7:9099/cd/subscribe/save/exam
     subscribeUpdateExam: http://192.168.1.7:9099/cd/subscribe/update/exam
     subscribeAddExamNum: http://192.168.1.7:9099/cd/subscribe/add/num
+
+shared:
+    statistics: http://gdxypx.xy.com/WitSystem/BussinessApi/HighSeasData
+    customer: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerStatsData
+    cert: http://gdxypx.xy.com/WitSystem/BussinessApi/CertStatsData
+    orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
+    rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -318,7 +318,10 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             else if (("继续教育二级建造师".equals(businessName)) || ("继续教育二级造价师".equals(businessName))){
                 erJfalg = true;
                 ezJfalg = "继续教育二级造价师".equals(businessName);
-                add.setOfficialName(ServletUtils.getEncoded("PIY"));
+                if (ObjectUtils.isNotNull(bo.getClassStatus()) && bo.getClassStatus() == 0){
+                    //预开班
+                    add.setOfficialName(ServletUtils.getEncoded("PIY"));
+                }
             }
         }
         //是否创建官方班级编号

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java

@@ -117,4 +117,7 @@ public interface IScheduleService extends IService<PolyvVideo> {
     void syncUserDateStudyLog();
 
     void usbUserDownload();
+
+    void goodsCopyTwo();
+
 }

+ 20 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -1182,6 +1182,26 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         iGoodsService.goodsCopyOne(bo);
     }
 
+    @Override
+    public void goodsCopyTwo() {
+        //商品一二建复制
+        List<Goods> list = iGoodsService.list(new LambdaQueryWrapper<Goods>()
+                .eq(Goods::getEducationTypeId, 3)
+                .in(Goods::getBusinessId, Arrays.asList(6,7))
+                .eq(Goods::getProjectId, 5)
+                .like(Goods::getGoodsName,"2023")
+                .eq(Goods::getStatus, 1));
+        if (CollectionUtils.isEmpty(list)) {
+            return;
+        }
+        List<Long> goodsIds = list.stream().filter(item -> !item.getGoodsName().contains("测试")).map(Goods::getGoodsId).collect(Collectors.toList());
+        GoodsBatchCopyTenantBo bo = new GoodsBatchCopyTenantBo();
+        bo.setTenantId(713019440277910L);
+        bo.setGoodsIds(goodsIds);
+        //执行复制
+        iGoodsService.goodsCopyOne(bo);
+    }
+
     @Override
     public void distributionRebate() {
         DistributionRebateQueryBo queryBo = new DistributionRebateQueryBo();

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -160,4 +160,13 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 
 	List<TopOrderStatisticsDetailVo> orderStatisticsDetail(TopOrderStatisticsBo bo);
 
+	TopSharedCustomerTotalVo getSharedStatistics(TopOrderStatisticsBo bo);
+
+	TopCustomerStatsVo getCustomerStatsData(TopOrderStatisticsBo bo);
+
+	TopCertStatsVo getCertStatsData(TopOrderStatisticsBo bo);
+
+	TopOrderAreaVo getOrderAreaData(TopOrderStatisticsBo bo);
+
+	TopConversionRateVo getConversionRateData(TopOrderStatisticsBo bo);
 }

+ 223 - 49
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -261,6 +261,21 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Value("${oldOrder.updateRemark}")
     private String UPDATE_REMARK;
 
+    @Value("${shared.statistics}")
+    private String SHARED_STATISTICS;
+
+    @Value("${shared.customer}")
+    private String SHARED_CUSTOMER;
+
+    @Value("${shared.cert}")
+    private String SHARED_CERT;
+
+    @Value("${shared.orderArea}")
+    private String SHARED_ORDER_AREA;
+
+    @Value("${shared.rateData}")
+    private String SHARED_RATE_DATA;
+
 
     @Override
     public TopOldOrderVo queryById(String orderSn) {
@@ -2161,14 +2176,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 return;
             }
             //环比
-            item.setWeekRate("100%");
             Long startTime = bo.getStartTime();
             Long endTime = bo.getEndTime();
             Long time = endTime - startTime;
             TopOrderStatisticsBo topOrderStatisticsBo = new TopOrderStatisticsBo();
             topOrderStatisticsBo.setStartTime(startTime - time);
             topOrderStatisticsBo.setEndTime(startTime);
-
             topOrderStatisticsBo.setCustomerId(item.getCustomerId());
             List<TopOrderStatisticsMoneyVo> moneyStatistics = baseMapper.getMoneyStatistics(topOrderStatisticsBo);
             if (CollectionUtils.isNotEmpty(moneyStatistics)){
@@ -2176,12 +2189,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (money.compareTo(BigDecimal.ZERO) > 0){
                     BigDecimal subtract = item.getMoney().subtract(money);
                     BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setWeekRate(s+"%");
+                    item.setWeekRate(divide.multiply(new BigDecimal("100")));
                 }
             }
             //同比
-            item.setYearRate("100%");
             Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
             Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
             topOrderStatisticsBo.setStartTime(startBefore);
@@ -2192,8 +2203,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (money.compareTo(BigDecimal.ZERO) > 0){
                     BigDecimal subtract = item.getMoney().subtract(money);
                     BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setYearRate(s+"%");
+                    item.setYearRate(divide.multiply(new BigDecimal("100")));
                 }
             }
 
@@ -2247,14 +2257,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 return;
             }
             //环比
-            item.setWeekRate("100%");
             Long startTime = bo.getStartTime();
             Long endTime = bo.getEndTime();
             Long time = endTime - startTime;
             TopOrderStatisticsBo topOrderStatisticsBo = new TopOrderStatisticsBo();
             topOrderStatisticsBo.setStartTime(startTime - time);
             topOrderStatisticsBo.setEndTime(startTime);
-
             topOrderStatisticsBo.setCustomerId(item.getCustomerId());
             List<TopOrderStatisticsNumVo> numStatistics = baseMapper.getNumStatistics(topOrderStatisticsBo);
             if (CollectionUtils.isNotEmpty(numStatistics)){
@@ -2262,12 +2270,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (num > 0){
                     Long subtract = item.getOrderNum() - num;
                     BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setWeekRate(s+"%");
+                    item.setWeekRate(divide.multiply(new BigDecimal("100")));
                 }
             }
             //同比
-            item.setYearRate("100%");
             Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
             Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
             topOrderStatisticsBo.setStartTime(startBefore);
@@ -2278,8 +2284,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (num > 0){
                     Long subtract = item.getOrderNum() - num;
                     BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setYearRate(s+"%");
+                    item.setYearRate(divide.multiply(new BigDecimal("100")));
                 }
             }
 
@@ -2333,7 +2338,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 return;
             }
             //环比
-            item.setWeekRate("100");
             Long startTime = bo.getStartTime();
             Long endTime = bo.getEndTime();
             Long time = endTime - startTime;
@@ -2346,12 +2350,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             if (money.compareTo(BigDecimal.ZERO) > 0){
                 BigDecimal subtract = item.getMoney().subtract(money);
                 BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
-                String s = divide.multiply(new BigDecimal("100")).toString();
-                item.setWeekRate(s);
+                item.setWeekRate(divide.multiply(new BigDecimal("100")));
             }
 
             //同比
-            item.setYearRate("100");
             Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
             Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
             topOrderStatisticsBo.setStartTime(startBefore);
@@ -2362,8 +2364,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             if (money2.compareTo(BigDecimal.ZERO) > 0){
                 BigDecimal subtract = item.getMoney().subtract(money2);
                 BigDecimal divide = subtract.divide(money2,2, RoundingMode.HALF_UP);
-                String s = divide.multiply(new BigDecimal("100")).toString();
-                item.setYearRate(s);
+                item.setYearRate(divide.multiply(new BigDecimal("100")));
             }
 
             //占比
@@ -2415,24 +2416,20 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 return;
             }
             //环比
-            item.setWeekRate("100");
             Long startTime = bo.getStartTime();
             Long endTime = bo.getEndTime();
             Long time = endTime - startTime;
             TopOrderStatisticsBo topOrderStatisticsBo = new TopOrderStatisticsBo();
             topOrderStatisticsBo.setStartTime(startTime - time);
             topOrderStatisticsBo.setEndTime(startTime);
-
             topOrderStatisticsBo.setCustomerId(item.getCustomerId());
             Long num = baseMapper.getSingleTenantStatisticsOrderNum(topOrderStatisticsBo);
             if (num > 0){
                 Long subtract = item.getOrderNum() - num;
                 BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
-                String s = divide.multiply(new BigDecimal("100")).toString();
-                item.setWeekRate(s);
+                item.setWeekRate(divide.multiply(new BigDecimal("100")));
             }
             //同比
-            item.setYearRate("100");
             Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
             Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
             topOrderStatisticsBo.setStartTime(startBefore);
@@ -2441,8 +2438,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             if (num2 > 0){
                 Long subtract = item.getOrderNum() - num2;
                 BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num2),2, RoundingMode.HALF_UP);
-                String s = divide.multiply(new BigDecimal("100")).toString();
-                item.setWeekRate(s);
+                item.setWeekRate(divide.multiply(new BigDecimal("100")));
             }
 
             //占比
@@ -2495,7 +2491,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 return;
             }
             //环比
-            item.setWeekRate("100");
             Long startTime = bo.getStartTime();
             Long endTime = bo.getEndTime();
             Long time = endTime - startTime;
@@ -2511,13 +2506,11 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (money.compareTo(BigDecimal.ZERO) > 0){
                     BigDecimal subtract = item.getMoney().subtract(money);
                     BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setWeekRate(s);
+                    item.setWeekRate(divide.multiply(new BigDecimal("100")));
                 }
             }
 
             //同比
-            item.setYearRate("100");
             Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
             Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
             topOrderStatisticsBo.setStartTime(startBefore);
@@ -2531,8 +2524,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (money2.compareTo(BigDecimal.ZERO) > 0){
                     BigDecimal subtract = item.getMoney().subtract(money2);
                     BigDecimal divide = subtract.divide(money2,2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setYearRate(s);
+                    item.setYearRate(divide.multiply(new BigDecimal("100")));
                 }
             }
 
@@ -2585,7 +2577,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 return;
             }
             //环比
-            item.setWeekRate("100");
             Long startTime = bo.getStartTime();
             Long endTime = bo.getEndTime();
             Long time = endTime - startTime;
@@ -2600,12 +2591,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (num > 0){
                     Long subtract = item.getOrderNum() - num;
                     BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setWeekRate(s);
+                    item.setWeekRate(divide.multiply(new BigDecimal("100")));
                 }
             }
             //同比
-            item.setYearRate("100");
             Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
             Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
             topOrderStatisticsBo.setStartTime(startBefore);
@@ -2618,8 +2607,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (num > 0){
                     Long subtract = item.getOrderNum() - num;
                     BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setWeekRate(s);
+                    item.setWeekRate(divide.multiply(new BigDecimal("100")));
                 }
             }
 
@@ -2700,6 +2688,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 twoVo.setCustomerId(customerId);
                 twoVo.setCustomerName(customerName);
                 twoVo.setTime(day);
+                twoVo.setTimeStr(DateUtils.timestampToDateFormat(day,"yyyy-MM-dd"));
                 if (voList.stream().anyMatch(x -> DateUtils.getScheduleTimeStrZeroTime(x.getTimeStr(), "yyyy-MM-dd").equals(day))){
                     TopOrderStatisticsTwoVo statisticsTwoVo = voList.stream()
                             .filter(x -> DateUtils.getScheduleTimeStrZeroTime(x.getTimeStr(), "yyyy-MM-dd").equals(day)).findFirst().get();
@@ -2744,6 +2733,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 twoVo.setCustomerId(customerId);
                 twoVo.setCustomerName(customerName);
                 twoVo.setTime(time);
+                twoVo.setTimeStr(DateUtils.timestampToDateFormat(time,"yyyy-MM-dd"));
                 if (voList2.stream().anyMatch(x ->
                         DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) >= time
                                 && DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) <= weekTime.get(time))){
@@ -2792,6 +2782,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 twoVo.setCustomerId(customerId);
                 twoVo.setCustomerName(customerName);
                 twoVo.setTime(time);
+                twoVo.setTimeStr(DateUtils.timestampToDateFormat(time,"yyyy-MM"));
                 if (voList2.stream().anyMatch(x ->
                         DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) >= time
                                 && DateUtils.getScheduleTimeZeroTime(x.getOrderTime()) <= monthTime.get(time))){
@@ -2860,7 +2851,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             }
             //订单金额
             //环比
-            item.setWeekRate("100%");
             Long startTime = bo.getStartTime();
             Long endTime = bo.getEndTime();
             Long time = endTime - startTime;
@@ -2874,8 +2864,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (money.compareTo(BigDecimal.ZERO) > 0){
                     BigDecimal subtract = item.getMoney().subtract(money);
                     BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setMoneyWeekRate(s+"%");
+                    item.setMoneyWeekRate(divide.multiply(new BigDecimal("100")));
                 }
             }
             List<TopOrderStatisticsNumVo> numStatistics = baseMapper.getNumStatistics(topOrderStatisticsBo);
@@ -2884,13 +2873,11 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (num > 0){
                     Long subtract = item.getOrderNum() - num;
                     BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setWeekRate(s+"%");
+                    item.setWeekRate(divide.multiply(new BigDecimal("100")));
                 }
             }
 
             //同比
-            item.setYearRate("100%");
             Long startBefore = DateUtils.getDayBefore(bo.getStartTime(), 365);
             Long endBefore = DateUtils.getDayBefore(bo.getEndTime(), 365);
             topOrderStatisticsBo.setStartTime(startBefore);
@@ -2901,8 +2888,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (money.compareTo(BigDecimal.ZERO) > 0){
                     BigDecimal subtract = item.getMoney().subtract(money);
                     BigDecimal divide = subtract.divide(money,2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setMoneyYearRate(s+"%");
+                    item.setMoneyYearRate(divide.multiply(new BigDecimal("100")));
                 }
             }
             List<TopOrderStatisticsNumVo> numStatistics2 = baseMapper.getNumStatistics(topOrderStatisticsBo);
@@ -2911,8 +2897,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (num > 0){
                     Long subtract = item.getOrderNum() - num;
                     BigDecimal divide = new BigDecimal(subtract).divide(new BigDecimal(num),2, RoundingMode.HALF_UP);
-                    String s = divide.multiply(new BigDecimal("100")).toString();
-                    item.setYearRate(s+"%");
+                    item.setYearRate(divide.multiply(new BigDecimal("100")));
                 }
             }
 
@@ -2929,6 +2914,195 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     }
 
 
+    @Override
+    public TopSharedCustomerTotalVo getSharedStatistics(TopOrderStatisticsBo bo) {
+        TopSharedCustomerTotalVo totalVo = new TopSharedCustomerTotalVo();
+        //筛选时间处理
+        if (ObjectUtils.isNull(bo.getTimeSign()) && ObjectUtils.isNull(bo.getStartTime()) && ObjectUtils.isNull(bo.getEndTime())){
+            //没有选择时间范围,默认为当前时间向前推30天
+            Long nowTime = DateUtils.getNowTime();
+            Long dayBefore = DateUtils.getDayBefore(nowTime, 30);
+            bo.setStartTime(dayBefore);
+            bo.setEndTime(nowTime);
+        }else if (ObjectUtils.isNotNull(bo.getTimeSign())){
+            switch (bo.getTimeSign()){
+                case 1://本周
+                    Map<String, Long> timeInterval = DateUtils.getTimeInterval(new Date());
+                    bo.setStartTime(timeInterval.get("start"));
+                    bo.setEndTime(timeInterval.get("end"));
+                    break;
+                case 2://本月
+                    Long toMonthZeroTime = DateUtils.getToMonthZeroTime();
+                    bo.setStartTime(toMonthZeroTime);
+                    bo.setEndTime(DateUtils.getNowTime());
+                    break;
+                case 3://本年
+                    Long toYearZeroTime = DateUtils.getToYearZeroTime();
+                    bo.setStartTime(toYearZeroTime);
+                    bo.setEndTime(DateUtils.getNowTime());
+                    break;
+                default :
+                    break;
+            }
+        }
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5( nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        if (ObjectUtils.isNotNull(bo.getTenantId())){
+            params.put("orgid", bo.getTenantId().toString());
+        }else {
+            params.put("orgid", "1");
+        }
+        params.put("begintime", DateUtils.timestampToDateFormat(bo.getStartTime(),"yyyy/MM/dd"));
+        params.put("endtime", DateUtils.timestampToDateFormat(bo.getEndTime(),"yyyy/MM/dd"));
+        params.put("saleid", "0");
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(SHARED_STATISTICS, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("公海客户统计接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("Data");
+            if (ObjectUtils.isNotNull(data)){
+                totalVo = JSONObject.parseObject(JSONObject.toJSONString(data), TopSharedCustomerTotalVo.class);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("公海客户统计接口错误");
+        }
+        return totalVo;
+    }
+
+    @Override
+    public TopCustomerStatsVo getCustomerStatsData(TopOrderStatisticsBo bo) {
+        TopCustomerStatsVo statsVo = new TopCustomerStatsVo();
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5( nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(SHARED_CUSTOMER, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("公海总客户接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("Data");
+            if (ObjectUtils.isNotNull(data)){
+                statsVo = JSONObject.parseObject(JSONObject.toJSONString(data), TopCustomerStatsVo.class);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("公海总客户接口错误");
+        }
+        return statsVo;
+    }
+
+    @Override
+    public TopCertStatsVo getCertStatsData(TopOrderStatisticsBo bo) {
+        TopCertStatsVo statsVo = new TopCertStatsVo();
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5( nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        if (ObjectUtils.isNotNull(bo.getTenantId())){
+            params.put("orgid", bo.getTenantId().toString());
+        }
+        if (ObjectUtils.isNotNull(bo.getCustomerId())){
+            params.put("saleId", bo.getCustomerId().toString());
+        }
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(SHARED_CERT, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("公海过期预警接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("Data");
+            if (ObjectUtils.isNotNull(data)){
+                statsVo = JSONObject.parseObject(JSONObject.toJSONString(data), TopCertStatsVo.class);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("公海过期预警接口错误");
+        }
+        return statsVo;
+    }
+
+    @Override
+    public TopOrderAreaVo getOrderAreaData(TopOrderStatisticsBo bo) {
+        TopOrderAreaVo areaVo = new TopOrderAreaVo();
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5( nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        params.put("page", bo.getPageNum().toString());
+        params.put("pagesize", bo.getPageSize().toString());
+        if (ObjectUtils.isNotNull(bo.getTenantId())){
+            params.put("orgid", bo.getTenantId().toString());
+        }
+        if (ObjectUtils.isNotNull(bo.getCustomerId())){
+            params.put("saleid", bo.getCustomerId().toString());
+        }
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(SHARED_ORDER_AREA, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("公海过期预警接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("Data");
+            if (ObjectUtils.isNotNull(data)){
+                areaVo = JSONObject.parseObject(JSONObject.toJSONString(data), TopOrderAreaVo.class);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("公海过期预警接口错误");
+        }
+        return areaVo;
+    }
+
+    @Override
+    public TopConversionRateVo getConversionRateData(TopOrderStatisticsBo bo) {
+        TopConversionRateVo rateVo = new TopConversionRateVo();
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        params.put("type", bo.getType().toString());
+        params.put("page", bo.getPageNum().toString());
+        params.put("pagesize", bo.getPageSize().toString());
+        if (ObjectUtils.isNotNull(bo.getTenantId())){
+            params.put("orgid", bo.getTenantId().toString());
+        }
+        if (ObjectUtils.isNotNull(bo.getCustomerId())){
+            params.put("saleid", bo.getCustomerId().toString());
+        }
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(SHARED_ORDER_AREA, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("公海客户转化排行接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("Data");
+            if (ObjectUtils.isNotNull(data)){
+                rateVo = JSONObject.parseObject(JSONObject.toJSONString(data), TopConversionRateVo.class);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("公海客户转化排行接口错误");
+        }
+        return rateVo;
+    }
+
     private List<Long> getDayTime(Long startTime,Long endTime){
         List<Long> tiemList = new ArrayList<>();
         Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderStatisticsBo.java

@@ -30,6 +30,8 @@ public class TopOrderStatisticsBo implements Serializable {
 
     private Long customerId;
 
+    private String customerName;
+
     @ApiModelProperty("业务号")
     private String createNo;
 
@@ -38,4 +40,7 @@ public class TopOrderStatisticsBo implements Serializable {
 
     @ApiModelProperty("业务层次")
     private String businessName;
+
+    @ApiModelProperty("类型:0数量 1金额")
+    private Integer type;
 }

+ 28 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopCertStatsVo.java

@@ -0,0 +1,28 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年10月31日 14:50
+ */
+@Data
+public class TopCertStatsVo implements Serializable {
+
+    @ApiModelProperty("安管三类人员")
+    private Long abcCount;
+
+    @ApiModelProperty("二建")
+    private Long ejCount;
+
+    @ApiModelProperty("企业资质")
+    private Long zzCount;
+
+    @ApiModelProperty("企业安证")
+    private Long azCount;
+
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateDataVo.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年11月01日 9:39
+ */
+@Data
+public class TopConversionRateDataVo implements Serializable {
+
+    @ApiModelProperty("领取数量")
+    private Long receiveCount;
+
+    @ApiModelProperty("转化量")
+    private Long dealCount;
+
+    @ApiModelProperty("转化金额")
+    private BigDecimal dealAmount;
+
+    @ApiModelProperty("转化率")
+    private BigDecimal converDealRate;
+
+    @ApiModelProperty("同比转化量")
+    private BigDecimal tbDealRate;
+
+    @ApiModelProperty("环比转化量")
+    private BigDecimal hbDealRate;
+
+    @ApiModelProperty("占比转化量")
+    private BigDecimal zbDealRate;
+
+    @ApiModelProperty("同比转化金额")
+    private BigDecimal tbPriceRate;
+
+    @ApiModelProperty("环比转化金额")
+    private BigDecimal hbPriceRate;
+
+    @ApiModelProperty("占比转化金额 ")
+    private BigDecimal zbPriceRate;
+
+    @ApiModelProperty("机构名称")
+    private String orgName;
+
+    @ApiModelProperty("业务员名称")
+    private String saleMan;
+}

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopConversionRateVo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年10月31日 14:50
+ */
+@Data
+public class TopConversionRateVo implements Serializable {
+
+    @ApiModelProperty("数据")
+    private TopConversionRateDataVo _Data;
+
+    private Long CurrentPageIndex;
+
+    private Long PageSize;
+
+    private Long TotalItemCount;
+
+    private Long TotalPageCount;
+
+    private Long StartRecordIndex;
+
+    private Long EndRecordIndex;
+
+    private Long PageNumber;
+
+    private Long TotalCount;
+
+    private Long TotalPage;
+
+}

+ 34 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopCustomerStatsVo.java

@@ -0,0 +1,34 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年10月31日 14:50
+ */
+@Data
+public class TopCustomerStatsVo implements Serializable {
+
+    @ApiModelProperty("转化金额")
+    private BigDecimal orderTotalPrice;
+
+    @ApiModelProperty("转化量")
+    private Long dealCount;
+
+    @ApiModelProperty("已领取")
+    private Long receiveCount;
+
+    @ApiModelProperty("总客户量")
+    private Long totalCount;
+
+    @ApiModelProperty("转化率")
+    private BigDecimal dealRate;
+
+    @ApiModelProperty("待领取")
+    private Long unclaimedCount;
+
+}

+ 25 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderAreaDataVo.java

@@ -0,0 +1,25 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年10月31日 14:50
+ */
+@Data
+public class TopOrderAreaDataVo implements Serializable {
+
+    @ApiModelProperty("城市")
+    private String area;
+
+    @ApiModelProperty("转化金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty("转化数量")
+    private Long num;
+
+}

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderAreaVo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年10月31日 14:50
+ */
+@Data
+public class TopOrderAreaVo implements Serializable {
+
+    @ApiModelProperty("数据")
+    private TopOrderAreaDataVo _Data;
+
+    private Long CurrentPageIndex;
+
+    private Long PageSize;
+
+    private Long TotalItemCount;
+
+    private Long TotalPageCount;
+
+    private Long StartRecordIndex;
+
+    private Long EndRecordIndex;
+
+    private Long PageNumber;
+
+    private Long TotalCount;
+
+    private Long TotalPage;
+
+}

+ 4 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsDetailVo.java

@@ -29,10 +29,10 @@ public class TopOrderStatisticsDetailVo implements Serializable {
     private Integer orderType;
 
     @ApiModelProperty("环比")
-    private String weekRate;
+    private BigDecimal weekRate;
 
     @ApiModelProperty("同比")
-    private String yearRate;
+    private BigDecimal yearRate;
 
     @ApiModelProperty("占比")
     private String occupationRate;
@@ -41,10 +41,10 @@ public class TopOrderStatisticsDetailVo implements Serializable {
     private BigDecimal money;
 
     @ApiModelProperty("环比")
-    private String moneyWeekRate;
+    private BigDecimal moneyWeekRate;
 
     @ApiModelProperty("同比")
-    private String moneyYearRate;
+    private BigDecimal moneyYearRate;
 
     @ApiModelProperty("占比")
     private String moneyOccupationRate;

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsMoneyVo.java

@@ -23,10 +23,10 @@ public class TopOrderStatisticsMoneyVo implements Serializable {
     private BigDecimal money;
 
     @ApiModelProperty("环比")
-    private String weekRate;
+    private BigDecimal weekRate;
 
     @ApiModelProperty("同比")
-    private String yearRate;
+    private BigDecimal yearRate;
 
     @ApiModelProperty("占比")
     private String occupationRate;

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsNumVo.java

@@ -23,10 +23,10 @@ public class TopOrderStatisticsNumVo implements Serializable {
     private Long orderNum;
 
     @ApiModelProperty("环比")
-    private String weekRate;
+    private BigDecimal weekRate;
 
     @ApiModelProperty("同比")
-    private String yearRate;
+    private BigDecimal yearRate;
 
     @ApiModelProperty("占比")
     private String occupationRate;

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderStatisticsTwoVo.java

@@ -27,10 +27,10 @@ public class TopOrderStatisticsTwoVo implements Serializable {
     private String customerName;
 
     @ApiModelProperty("订单数量")
-    private Long orderNum;
+    private Long orderNum = 0L;
 
     @ApiModelProperty("订单金额")
-    private BigDecimal money;
+    private BigDecimal money = BigDecimal.ZERO;
 
 
 }

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopSharedCustomerTotalVo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.top.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author yangdamao
+ * @date 2023年10月24日 16:12
+ */
+@Data
+public class TopSharedCustomerTotalVo implements Serializable {
+
+    @ApiModelProperty("转化金额")
+    private BigDecimal orderTotalPrice;
+
+    @ApiModelProperty("转化量")
+    private Long dealCount;
+
+    @ApiModelProperty("转化量环比")
+    private BigDecimal hbDealRate;
+
+    @ApiModelProperty("转化率")
+    private BigDecimal converDealRate;
+
+    @ApiModelProperty("已领取")
+    private Long receiveCount;
+
+    @ApiModelProperty("转化金额环比")
+    private BigDecimal hbPriceRate;
+
+    @ApiModelProperty("转化金额同比")
+    private BigDecimal tbPriceRate;
+
+    @ApiModelProperty("转化量同比")
+    private BigDecimal tbDealRate;
+}