From 1eddf64a7104dcd06065e8ac309eebc42c24fb05 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 27 三月 2026 14:29:56 +0800
Subject: [PATCH] 出入库记录导入,判重兜底校验纠正

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
index 6413c9d..d4b0335 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
@@ -646,10 +646,57 @@
             }
         }
 
+
+        // 鏁版嵁搴� ID 閲嶅鏍¢獙锛岀‘淇濇柊鐢熸垚鐨� ID 鍦ㄦ暟鎹簱涓笉瀛樺湪
+        while (this.checkIdExists(companyId, cacheId)) {
+            String temp = cacheId.substring(cacheId.length() - 4);
+            Integer i = Integer.valueOf(temp);
+            i++;
+            temp = String.valueOf(i);
+            if (temp.length() == 1) {
+                cacheId = timeKey + "000" + temp;
+            }
+            if (temp.length() == 2) {
+                cacheId = timeKey + "00" + temp;
+            }
+            if (temp.length() == 3) {
+                cacheId = timeKey + "0" + temp;
+            }
+            if (temp.length() == 4) {
+                cacheId = timeKey + temp;
+            }
+        }
+
         // 鏇存柊缂撳瓨
         redisCache.setCacheObject(cacheKey, cacheId);
 
         return cacheId;
+    }
+
+    /**
+     * 妫�鏌� ID 鏄惁鍦ㄦ暟鎹簱涓凡瀛樺湪
+     *
+     * @param companyId
+     * @param id
+     * @return true-宸插瓨鍦紝false-涓嶅瓨鍦�
+     */
+    public boolean checkIdExists(String companyId, String id) {
+        QueryWrapper<InoutRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("company_id", companyId);
+        queryWrapper.and(wrapper ->
+                wrapper.eq("id", id)
+                        .or()
+                        .eq("id", "R_" + id)
+                        .or()
+                        .eq("id", "C_" + id)
+                        .or()
+                        .eq("id", "M_" + id)
+        );
+        List<InoutRecord> inoutRecords = inoutRecordMapper.selectList(queryWrapper);
+        if( null != inoutRecords && inoutRecords.size() > 0){
+            return true;
+        }
+        return false;
     }
 
     /**
@@ -668,8 +715,8 @@
 
         queryWrapper.eq("company_id", companyId);
         queryWrapper.like("id", timeKey);
-        queryWrapper.orderByDesc("create_time");
-
+        queryWrapper.orderByDesc("register_time");
+        queryWrapper.orderByDesc("id");
         List<InoutRecord> inoutRecords = inoutRecordMapper.selectList(queryWrapper);
         if (null == inoutRecords || inoutRecords.isEmpty()) {
             return null;

--
Gitblit v1.9.3