From 9c136c58963fb453c41865f658d4eef48d536d02 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 26 十二月 2025 17:56:46 +0800
Subject: [PATCH] 抓拍、ai事件查询修改;弹框调整;收储公司、库区、仓库页面交互优化

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java |   73 ++++++++++++++++++++++++++----------
 1 files changed, 53 insertions(+), 20 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java
index be3b45f..7e83a03 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SuperInventoryReportService.java
@@ -45,10 +45,9 @@
     /**
      * 鏌ヨ鎶ヨ〃鏁版嵁
      *
+     * @param param
      * @author sgj
      * @date 2025/12/19
-     * @param param
-
      */
     public List<SuperInventoryReportData> listSuperInventoryReportData(SuperInventoryReportParam param) {
         //1.鑾峰彇鏌ヨ寰楄捣姝㈡椂闂达紝濡傛灉娌℃湁鍒欙紝榛樿鎴鏃堕棿涓哄綋澶╋紝璧峰鏃堕棿涓�30澶╁墠
@@ -66,12 +65,27 @@
         //榛樿搴撳尯缂栫爜
         String deptId = ContextUtil.subDeptId(null);
         param.setCompanyId(companyId);
+
+        //region 鏌ヨ鏉′欢鏀跺偍鍏徃鍜屾墍灞炲簱鍖哄鐞�
+        if (StringUtils.isNotEmpty(param.getDeptId()) && StringUtils.isNotEmpty(param.getCustomerId())) {
+            String substring = param.getDeptId().substring(0, (param.getDeptId().length() - 3));
+            if (!substring.equals(param.getCustomerId())) {
+                return new ArrayList<SuperInventoryReportData>();
+            }
+        }
         if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(param.getCustomerId());
+        }
+        //test鎻愪氦
+        //鏀跺偍鍏徃锛屾墍灞炲簱鍖烘煡璇㈠潎涓虹┖锛屽垯鏌ヨ榛樿搴撳尯
+        if (StringUtils.isEmpty(param.getCustomerId()) && StringUtils.isEmpty(param.getDeptId())) {
             param.setDeptId(deptId);
         }
+        //endregion
 
         //region 鍒濆鍖栭渶瑕佽寖鍥寸殑鏁版嵁
-        Map<String, SuperInventoryReportData> resultMap = new HashMap<>();
+        Map<String, SuperInventoryReportData> columsMap = new HashMap<>();
+
         //鏌ヨ褰撳墠鐢ㄦ埛涓嬪睘鐨勬墍鏈夊簱鍖�
         List<Dept> deptList = coreDeptService.getDeptData();
         if (null == deptList || deptList.isEmpty()) {
@@ -79,10 +93,12 @@
         }
 
         //棰勫姞杞芥墍鏈夐儴闂ㄤ笅鐨勪粨搴撲俊鎭紝鍑忓皯閲嶅鏌ヨ
+        Map<String, Dept> deptCache = new HashMap<>();
         Map<String, List<Depot>> deptDepotsMap = new HashMap<>();
         Map<String, Company> companyCache = new HashMap<>();
 
         for (Dept dept : deptList) {
+            deptCache.put(dept.getId(), dept);
             //鑾峰彇搴撳尯涓嬫墍鏈変粨搴�
             List<Depot> depotList = depotService.getData(companyId, dept.getId(), true);
             if (null == depotList || depotList.isEmpty()) {
@@ -99,27 +115,30 @@
             }
         }
 
-        //鏋勫缓缁撴灉鏁版嵁
+        //鏋勫缓缁撴灉鏁版嵁鏄犲皠map
         for (Map.Entry<String, List<Depot>> entry : deptDepotsMap.entrySet()) {
             String deptIdKey = entry.getKey();
             Company company = companyCache.get(deptIdKey.substring(0, deptIdKey.length() - 3));
-
+            Dept dept = deptCache.get(deptIdKey);
             for (Depot depot : entry.getValue()) {
                 //搴撳尯缂栫爜+浠撳簱缂栫爜缁勬垚鍞竴閿�
                 String key = deptIdKey + "_" + depot.getId();
                 SuperInventoryReportData data = new SuperInventoryReportData();
-
-                data.setCustomerName(Optional.ofNullable(company)
+                data.setCustomerId(Optional.ofNullable(company)
                         .map(Company::getId)
                         .orElse("-"));
+                data.setCustomerName(Optional.ofNullable(company)
+                        .map(Company::getDwmc)
+                        .orElse("-"));
                 data.setDeptId(deptIdKey);
+                data.setDeptName(dept.getKqmc());
                 data.setDepotId(depot.getId());
-                resultMap.put(key, data);
+                data.setDepotName(depot.getName());
+                columsMap.put(key, data);
             }
         }
         //endregion
-
-        if (resultMap.isEmpty()) {
+        if (columsMap.isEmpty()) {
             return new ArrayList<>();
         }
 
@@ -137,10 +156,11 @@
                 .collect(Collectors.groupingBy(record -> record.getDeptId() + "_" + record.getDepotId()));
 
         //4. 鏍规嵁搴撳尯銆佷粨搴撲负鍞竴閿紝缁勮鎶ヨ〃鏁版嵁
+        List<SuperInventoryReportData> result = new ArrayList<>();
         Date todayZero = DateUtil.getCurZero(new Date());
         boolean isEndDateBeforeToday = param.getEnd().before(todayZero);
 
-        for (SuperInventoryReportData data : resultMap.values()) {
+        for (SuperInventoryReportData data : columsMap.values()) {
             String dataKey = data.getDeptId() + "_" + data.getDepotId();
 
             //鑾峰彇搴撳瓨鏁版嵁
@@ -227,9 +247,10 @@
             data.setChangeOutWeight(sumStockChangeOut);
             data.setLossWeight(sumLossOver);
             data.setFinalWeight(finalWeight);
+            result.add(data);
         }
 
-        return new ArrayList<>(resultMap.values());
+        return result;
     }
 
     /**
@@ -238,8 +259,11 @@
     private List<DepotStore> queryDepotStores(SuperInventoryReportParam param) {
         QueryWrapper<DepotStore> depotStoreQueryWrapper = new QueryWrapper<>();
         depotStoreQueryWrapper.eq("company_id", param.getCompanyId());
-        depotStoreQueryWrapper.eq("dept_id", param.getDeptId());
-        depotStoreQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+        if (StringUtils.isNotBlank(param.getDeptId())) {
+            depotStoreQueryWrapper.likeRight("dept_id", param.getDeptId());
+        }
+        depotStoreQueryWrapper.ge("create_time", param.getStart());
+        depotStoreQueryWrapper.le("create_time", param.getEnd());
         depotStoreQueryWrapper.orderByAsc("create_time");
         return depotStoreMapper.selectList(depotStoreQueryWrapper);
     }
@@ -250,8 +274,11 @@
     private List<InoutRecord> queryInoutRecords(SuperInventoryReportParam param) {
         QueryWrapper<InoutRecord> inoutRecordQueryWrapper = new QueryWrapper<>();
         inoutRecordQueryWrapper.eq("company_id", param.getCompanyId());
-        inoutRecordQueryWrapper.eq("dept_id", param.getDeptId());
-        inoutRecordQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+        if (StringUtils.isNotBlank(param.getDeptId())) {
+            inoutRecordQueryWrapper.likeRight("dept_id", param.getDeptId());
+        }
+        inoutRecordQueryWrapper.ge("create_time", param.getStart());
+        inoutRecordQueryWrapper.le("create_time", param.getEnd());
         inoutRecordQueryWrapper.orderByAsc("create_time");
         return inoutRecordMapper.selectList(inoutRecordQueryWrapper);
     }
@@ -262,8 +289,11 @@
     private List<InoutStockChange> queryInoutStockChanges(SuperInventoryReportParam param) {
         QueryWrapper<InoutStockChange> inoutStockChangeQueryWrapper = new QueryWrapper<>();
         inoutStockChangeQueryWrapper.eq("company_id", param.getCompanyId());
-        inoutStockChangeQueryWrapper.eq("dept_id", param.getDeptId());
-        inoutStockChangeQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+        if (StringUtils.isNotBlank(param.getDeptId())) {
+            inoutStockChangeQueryWrapper.likeRight("dept_id", param.getDeptId());
+        }
+        inoutStockChangeQueryWrapper.ge("create_time", param.getStart());
+        inoutStockChangeQueryWrapper.le("create_time", param.getEnd());
         inoutStockChangeQueryWrapper.orderByAsc("create_time");
         return inoutStockChangeMapper.selectList(inoutStockChangeQueryWrapper);
     }
@@ -274,8 +304,11 @@
     private List<InoutLossOver> queryInoutLossOvers(SuperInventoryReportParam param) {
         QueryWrapper<InoutLossOver> inoutLossOverQueryWrapper = new QueryWrapper<>();
         inoutLossOverQueryWrapper.eq("company_id", param.getCompanyId());
-        inoutLossOverQueryWrapper.eq("dept_id", param.getDeptId());
-        inoutLossOverQueryWrapper.between("create_time", param.getStart(), param.getEnd());
+        if (StringUtils.isNotBlank(param.getDeptId())) {
+            inoutLossOverQueryWrapper.likeRight("dept_id", param.getDeptId());
+        }
+        inoutLossOverQueryWrapper.ge("create_time", param.getStart());
+        inoutLossOverQueryWrapper.le("create_time", param.getEnd());
         inoutLossOverQueryWrapper.orderByAsc("create_time");
         return inoutLossOverMapper.selectList(inoutLossOverQueryWrapper);
     }

--
Gitblit v1.9.3