From 3f62a93a0b0d64984cf070d0ca307a55faf95085 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 29 四月 2025 16:06:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java |   70 ++++++++++++++++++++++++++++++++++-
 1 files changed, 68 insertions(+), 2 deletions(-)

diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java
index d3d1d45..7a72e3f 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java
@@ -7,15 +7,21 @@
 import cn.afterturn.easypoi.excel.entity.ImportParams;
 import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
 import cn.hutool.core.io.resource.ClassPathResource;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.admin.entity.MasterWorker;
 import com.ruoyi.admin.large.model.AnalysisOrderData;
 import com.ruoyi.admin.large.model.query.OrderDataQuery;
 import com.ruoyi.admin.large.service.AnalysisOrderDataService;
+import com.ruoyi.admin.service.MasterWorkerService;
 import com.ruoyi.admin.service.SysUserService;
 import com.ruoyi.admin.utils.ImportExcelUtil;
 import com.ruoyi.admin.utils.WebUtils;
+import com.ruoyi.admin.vo.SiteLargeeVO;
+import com.ruoyi.admin.vo.WorkersLargeeVO;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.api.entity.Order;
@@ -36,6 +42,7 @@
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -53,15 +60,70 @@
     private final TokenService tokenService;
     private final SysUserService sysUserService;
     private final OrderClient orderClient;
+    private final MasterWorkerService masterWorkerService;
 
     @Autowired
-    public AnalysisOrderDataController(AnalysisOrderDataService analysisOrderDataService, TokenService tokenService, SysUserService sysUserService, OrderClient orderClient) {
+    public AnalysisOrderDataController(AnalysisOrderDataService analysisOrderDataService, TokenService tokenService, SysUserService sysUserService, OrderClient orderClient,MasterWorkerService masterWorkerService) {
         this.analysisOrderDataService = analysisOrderDataService;
         this.tokenService = tokenService;
         this.sysUserService = sysUserService;
         this.orderClient = orderClient;
+        this.masterWorkerService = masterWorkerService;
     }
 
+    /**
+     * 大屏-站点分布
+     */
+    @ApiOperation( value = "大屏-站点分布")
+    @GetMapping(value = "/listSiteLarge")
+    public R<SiteLargeeVO> listSiteLarge() {
+        SiteLargeeVO siteLargeeVO = new SiteLargeeVO();
+        // 回收订单数量
+        Map<String, Integer> orderMap = new HashMap<>();
+        // 回收人员数量
+        Map<String, Integer> userMap = new HashMap<>();
+        // 根据city为键,值为对应city的订单数量
+        List<AnalysisOrderData> list1 = analysisOrderDataService.list();
+        for (AnalysisOrderData analysisOrderData : list1) {
+            if (orderMap.containsKey(analysisOrderData.getCity())) {
+                orderMap.put(analysisOrderData.getCity(), orderMap.get(analysisOrderData.getCity()) + 1);
+            } else {
+                orderMap.put(analysisOrderData.getCity(), 1);
+            }
+            if (userMap.containsKey(analysisOrderData.getCity())) {
+                userMap.put(analysisOrderData.getCity(), userMap.get(analysisOrderData.getCity()) + 1);
+            } else {
+                userMap.put(analysisOrderData.getCity(), 1);
+            }
+        }
+        siteLargeeVO.setOrderMap(orderMap);
+        siteLargeeVO.setUserMap(userMap);
+        return R.ok(siteLargeeVO);
+    }
+    /**
+     * 大屏-师傅定位分布
+     */
+    @ApiOperation( value = "大屏-师傅定位分布")
+    @GetMapping(value = "/listWorkersLarge")
+    public R<WorkersLargeeVO> listWorkersLarge() {
+        WorkersLargeeVO siteLargeeVO = new WorkersLargeeVO();
+        // 查询师傅经纬度
+        List<MasterWorker> list = masterWorkerService.lambdaQuery().isNotNull(MasterWorker::getWorkerLat).isNotNull(MasterWorker::getWorkerLon)
+                .list();
+        siteLargeeVO.setWorkers(list);
+        // 师傅数量
+        Map<String, Integer> userMap = new HashMap<>();
+        for (MasterWorker masterWorker : list) {
+            if (userMap.containsKey(masterWorker.getCity())) {
+                userMap.put(masterWorker.getCity(), userMap.get(masterWorker.getCity()) + 1);
+            } else {
+                userMap.put(masterWorker.getCity(), 1);
+            }
+        }
+//        siteLargeeVO.setSiteMap();
+        siteLargeeVO.setUserMap(userMap);
+        return R.ok(siteLargeeVO);
+    }
     /**
      * 查询上门回收订单列表
      */
@@ -186,7 +248,7 @@
             orders.forEach(order -> {
                 AnalysisOrderData analysisOrderData = new AnalysisOrderData();
                 analysisOrderData.setOrderNum(order.getOrderNumber());
-                analysisOrderData.setOrderDate(analysisOrderData.getOrderDate());
+                analysisOrderData.setOrderDate(order.getCreateTime());
 //                analysisOrderData.setOrderChannel(order.getOrderChannel());
                 analysisOrderData.setCity(order.getCity());
                 analysisOrderData.setOrderCategory(order.getServeName());
@@ -196,6 +258,10 @@
                 analysisOrderData.setState(order.getState());
                 analysisOrderDataList.add(analysisOrderData);
             });
+            // 删除今日订单
+            analysisOrderDataService.remove(new QueryWrapper<AnalysisOrderData>().lambda()
+                    .like(AnalysisOrderData::getOrderDate, new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
+            );
             analysisOrderDataService.saveBatch(analysisOrderDataList);
         }
         return R.ok();

--
Gitblit v1.7.1