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 |   73 ++++++++++++++++++++++++++++++------
 1 files changed, 61 insertions(+), 12 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 d52f37d..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;
@@ -687,10 +734,10 @@
     public String inWeightBill(InoutRecord data) {
 
         // 鑾峰彇琛ㄥ崟鏁版嵁
-        InoutPrintBill bill = this.createBillData(data, "-鍏ュ簱鍗�");
+        InoutPrintBill bill = this.createBillData(data, "鍏ュ簱鍗�");
 
         // 璋冩暣妯$増鏁版嵁骞惰繑鍥�
-        String htmlStr = InoutBill.IN_WEIGHT_DEFAULT;
+        String htmlStr = InoutBill.IN_WEIGHT_DEFAULT_NEW;
 
         htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
 
@@ -748,7 +795,7 @@
         htmlStr = htmlStr.replace("handleEnd", "");
         htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
         htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
-        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
+        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
 
         htmlStr = htmlStr.replaceAll("weightUser",
                 bill.getWeightUser() == null ? "" : bill.getWeightUser());
@@ -756,7 +803,7 @@
                 bill.getHandleUser() == null ? "" : bill.getHandleUser());
         htmlStr = htmlStr.replaceAll("keeperName",
                 bill.getKeeperUser() == null ? "" : bill.getKeeperUser());
-
+        htmlStr = htmlStr.replaceAll("createUser",ContextUtil.getLoginUserName());
 
         return htmlStr;
     }
@@ -769,10 +816,10 @@
      */
     public String outWeightBill(InoutRecord data) {
         // 鑾峰彇琛ㄥ崟鏁版嵁
-        InoutPrintBill bill = this.createBillData(data, "-鍑哄簱鍗�");
+        InoutPrintBill bill = this.createBillData(data, "鍑哄簱鍗�");
 
         //榛樿妯$増
-        String htmlStr = InoutBill.OUT_WEIGHT_DEFAULT;
+        String htmlStr = InoutBill.OUT_WEIGHT_DEFAULT_NEW;
 
         htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
 
@@ -821,11 +868,13 @@
         htmlStr = htmlStr.replace("handleEnd", "");
         htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
         htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
-        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
+        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
 
         htmlStr = htmlStr.replaceAll("weightUser", getValue(bill.getWeightUser()));
         htmlStr = htmlStr.replace("handleUser", getValue(bill.getHandleUser()));
         htmlStr = htmlStr.replaceAll("keeperName", getValue(bill.getKeeperUser()));
+        htmlStr = htmlStr.replaceAll("createUser",ContextUtil.getLoginUserName());
+
         return htmlStr;
     }
 
@@ -861,13 +910,13 @@
             data.setRegisterTime(new Date());
         }
         bill.setRegisterTime(DateFormatUtils.format(data.getRegisterTime(),
-                "yyyy-MM-dd HH:mm"));
+                "yyyy-MM-dd HH:mm:ss"));
 
         if (null == data.getCompleteTime()) {
             data.setCompleteTime(new Date());
         }
         bill.setCompleteTime(DateFormatUtils.format(data.getCompleteTime(),
-                "yyyy-MM-dd HH:mm"));
+                "yyyy-MM-dd HH:mm:ss"));
 
         bill.setEmptyTime(DateFormatUtils.format(data.getEmptyWeightTime(),
                 "yyyy-MM-dd HH:mm:ss"));
@@ -921,7 +970,7 @@
                 data.setSettleMoney(NumberUtil.keepPrecision(data.getPrice() * data.getRecordWeight(), 2));
             }
         }
-        bill.setSettleMoney(data.getSettleMoney() == null ? "" : data.getSettleMoney() + "");
+        bill.setSettleMoney(data.getSettleMoney() == null ? "" : String.format("%.2f", data.getSettleMoney()));
         bill.setRemark(data.getRemarks() == null ? "" : data.getRemarks());
 
         if (Constant.TYPE_IN.equals(data.getType())) {

--
Gitblit v1.9.3