From 1442f149019ee0590389abd7a88a79c4d9b59034 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 27 五月 2025 18:23:34 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/large/AnalysisOrderDataController.java |   98 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 88 insertions(+), 10 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 43e19db..4ea2008 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
@@ -5,15 +5,23 @@
 import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 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;
@@ -32,8 +40,11 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URLEncoder;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -51,15 +62,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);
+    }
     /**
      * 查询上门回收订单列表
      */
@@ -115,16 +181,16 @@
     @ApiOperation(value = "回收订单导入模板下载")
     @GetMapping("/import-template")
     public void importTemplate() {
-        List<AnalysisOrderData> contractList = new ArrayList<>();
-        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), AnalysisOrderData.class, contractList);
+        ClassPathResource classPathResource = new ClassPathResource("template/回收订单导入.xlsx");
+        TemplateExportParams params = new TemplateExportParams(classPathResource.getPath());
+        Workbook workbook = ExcelExportUtil.exportExcel(params, new HashMap<>());
         HttpServletResponse response = WebUtils.response();
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
         ServletOutputStream outputStream = null;
         try {
-            String fileName = URLEncoder.encode("回收订单导入模板.xls", "utf-8");
-            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
-            response.setHeader("content-Type", "application/vnd.ms-excel");
-            response.setHeader("Pragma", "no-cache");
-            response.setHeader("Cache-Control", "no-cache");
+            String fileName = URLEncoder.encode("回收订单导入.xlsx", "utf-8");
+            response.setHeader("Content-dispodition", "attachment;filename=" + fileName);
             outputStream = response.getOutputStream();
             workbook.write(outputStream);
         } catch (IOException e) {
@@ -154,6 +220,7 @@
             while (iterator.hasNext()){
                 AnalysisOrderData analysisOrderData = iterator.next();
                 try {
+                    analysisOrderData.setDataType(1);
                     analysisOrderData.setOrderDate(new SimpleDateFormat("yyyy-MM-dd").parse(analysisOrderData.getOrderDateStr()));
                 }catch (Exception e){
                     errors.add("回收订单编号:["+analysisOrderData.getOrderNum()+"],时间格式化错误,忽略导入");
@@ -184,16 +251,27 @@
             orders.forEach(order -> {
                 AnalysisOrderData analysisOrderData = new AnalysisOrderData();
                 analysisOrderData.setOrderNum(order.getOrderNumber());
-                analysisOrderData.setOrderDate(analysisOrderData.getOrderDate());
-//                analysisOrderData.setOrderChannel(order.getOrderChannel());
+                try {
+                    analysisOrderData.setOrderDate(new SimpleDateFormat("yyyy-MM-dd").parse(order.getTime()));
+                } catch (ParseException e) {
+                    throw new RuntimeException(e);
+                }
+                analysisOrderData.setOrderChannel(order.getSiteName());
                 analysisOrderData.setCity(order.getCity());
                 analysisOrderData.setOrderCategory(order.getServeName());
                 analysisOrderData.setUserName(order.getReservationName());
                 analysisOrderData.setUserPhone(order.getReservationPhone());
                 analysisOrderData.setRecyclePerson(order.getServerName());
                 analysisOrderData.setState(order.getState());
+                analysisOrderData.setImportTime(LocalDateTime.now());
+                analysisOrderData.setDataType(2);
                 analysisOrderDataList.add(analysisOrderData);
             });
+            // 删除今日订单
+            analysisOrderDataService.remove(new QueryWrapper<AnalysisOrderData>().lambda()
+                            .eq(AnalysisOrderData::getDataType,2)
+                    .like(AnalysisOrderData::getOrderDate, new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
+            );
             analysisOrderDataService.saveBatch(analysisOrderDataList);
         }
         return R.ok();

--
Gitblit v1.7.1