From 67b2e6a3b7e4254be92e3ecbcd7b6e9f61b3aae3 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期二, 14 四月 2026 09:23:39 +0800
Subject: [PATCH] 添加批复处理页面

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java |   64 +++++++++++++++++++++++++++-----
 1 files changed, 54 insertions(+), 10 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..b2c65db 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
@@ -244,7 +244,7 @@
         InoutRecord record = new InoutRecord();
         BeanUtils.copyProperties(data, record);
         //淇濆瓨
-        int num = this.addInoutRecord(record);
+        int num = this.addInoutRecord(record,true);
 
         //闄勪欢澶勭悊
         fileService.saveInoutFiles(data.getFiles(), record.getId(), null, "INOUT");
@@ -262,13 +262,13 @@
      * @param list
      * @return
      */
-    public String addInoutRecordList(List<InoutRecord> list) {
+    public String addInoutRecordList(List<InoutRecord> list,boolean isCache) {
         if (null == list || list.isEmpty()) {
             return "鏂板澶辫触";
         }
 
         for (InoutRecord inoutRecord : list) {
-            addInoutRecord(inoutRecord);
+            addInoutRecord(inoutRecord,isCache);
         }
 
         return null;
@@ -280,10 +280,10 @@
      * @param data
      * @return
      */
-    public int addInoutRecord(InoutRecord data) {
+    public int addInoutRecord(InoutRecord data,boolean isCache) {
 
         if (StringUtils.isBlank(data.getId())) {
-            String id = this.createId(data.getRegisterTime(), data.getCompanyId());
+            String id = this.createId(data.getRegisterTime(), data.getCompanyId(),isCache);
             if (Constant.TYPE_IN.equals(data.getType())) {
                 data.setId("R_" + id);
             } else if (Constant.TYPE_OUT.equals(data.getType())) {
@@ -595,7 +595,7 @@
      * @param companyId
      * @return
      */
-    public String createId(Date registerTime, String companyId) {
+    public String createId(Date registerTime, String companyId,boolean isCache) {
 
         // 鏃堕棿鎴虫爣绛�
         String timeKey = DateFormatUtils.format(registerTime, "yyyyMMdd");
@@ -603,7 +603,10 @@
         // 浠庣紦瀛樹腑鑾峰彇宸叉湁鐨勭粍缁囩紪鐮�
         String cacheKey = RedisConst.buildKey(companyId, Constant.CACHE_RECORD_ID);
 
-        String cacheId = (String) redisCache.getCacheObject(cacheKey);
+        String cacheId = null;
+        if (isCache) {
+            cacheId=(String) redisCache.getCacheObject(cacheKey);
+        }
 
         if (null != cacheId && cacheId.indexOf(timeKey) >= 0) {
             String temp = cacheId.substring(cacheId.length() - 4);
@@ -646,10 +649,52 @@
             }
         }
 
+
+        // 鏁版嵁搴� 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);
+        if(isCache){
+            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);
+        //浣跨敤likeleft
+        queryWrapper.likeLeft("id", id);
+        List<InoutRecord> inoutRecords = inoutRecordMapper.selectList(queryWrapper);
+        if( null != inoutRecords && inoutRecords.size() > 0){
+            return true;
+        }
+        return false;
     }
 
     /**
@@ -668,8 +713,7 @@
 
         queryWrapper.eq("company_id", companyId);
         queryWrapper.like("id", timeKey);
-        queryWrapper.orderByDesc("create_time");
-
+        queryWrapper.orderByDesc("register_time");
         List<InoutRecord> inoutRecords = inoutRecordMapper.selectList(queryWrapper);
         if (null == inoutRecords || inoutRecords.isEmpty()) {
             return null;

--
Gitblit v1.9.3