From 22e17b6db03ca58bc477a35ca067e55a09cffce7 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 10 十二月 2025 17:04:08 +0800
Subject: [PATCH] 添加工程表及相关逻辑,防止重复导入Excel表序号重复生成

---
 mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java |   56 +++++++-------------------------------------------------
 1 files changed, 7 insertions(+), 49 deletions(-)

diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java
index 9b1dd51..6c26414 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java
@@ -5,19 +5,16 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.device.entity.GlassInfo;
 import com.mes.device.mapper.DeviceGlassInfoMapper;
+import com.mes.device.service.EngineeringSequenceService;
 import com.mes.device.service.GlassInfoService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import static java.util.stream.IntStream.range;
@@ -32,6 +29,9 @@
 @RefreshScope
 @Service("deviceGlassInfoService")
 public class GlassInfoServiceImpl extends ServiceImpl<DeviceGlassInfoMapper, GlassInfo> implements GlassInfoService {
+
+    @Autowired
+    private EngineeringSequenceService engineeringSequenceService;
 
     @Override
     public GlassInfo getGlassInfo(String glassId) {
@@ -230,9 +230,8 @@
             return result;
         }
 
-        // 宸ョ▼鍙风敓鎴愶細P + yyMMdd + 搴忓彿(2浣�)
-        AtomicInteger seq = new AtomicInteger(1);
-        final String engineerId = generateEngineerId(firstValue(excelRows, "glassId"), seq.getAndIncrement());
+        // 宸ョ▼鍙风敓鎴愶細浣跨敤鏁版嵁搴撹嚜澧炲簭鍙凤紝閬垮厤閲嶅
+        final String engineerId = engineeringSequenceService.generateAndSaveEngineeringId(new Date());
         final String filmsIdDefault = firstValue(excelRows, "filmsId", "鐧界幓");
         final double thicknessDefault = parseDouble(firstValue(excelRows, "thickness"), 0d);
 
@@ -389,47 +388,6 @@
         return result;
     }
 
-    // 鏃ユ湡鏍煎紡鍖栧櫒锛堢嚎绋嬩笉瀹夊叏锛屼娇鐢═hreadLocal淇濊瘉绾跨▼瀹夊叏锛�
-    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyMMdd");
-
-    // 鏁板瓧鍖归厤姝e垯锛堥缂栬瘧鎻愬崌鎬ц兘锛�
-    private static final Pattern DIGIT_PATTERN = Pattern.compile("\\d+");
-
-    /**
-     * 鐢熸垚宸ョ▼甯圛D
-     * 鏍煎紡瑙勫垯锛歅 + 骞存湀鏃�(yyMMdd) + 涓や綅搴忓彿
-     * 搴忓彿浼樺厛浠巊lassId涓彁鍙栨湯灏句袱浣嶆暟瀛楋紝鍚﹀垯浣跨敤浼犲叆鐨刬ndex琛ラ浂
-     *
-     * @param glassId 鐜荤拑ID锛堝彲涓簄ull锛岀敤浜庢彁鍙栨暟瀛楀簭鍙凤級
-     * @param index   澶囩敤搴忓彿锛堝綋glassId鏃犳湁鏁堟暟瀛楁椂浣跨敤锛�
-     * @return 鏍煎紡鍖栫殑宸ョ▼甯圛D锛堝锛歅25010801锛�
-     */
-    private String generateEngineerId(Object glassId, int index) {
-        // 1. 鐢熸垚鏃ユ湡鍓嶇紑锛坹yMMdd锛�
-        String base = LocalDate.now().format(DATE_FORMATTER);
-
-        // 2. 鍒濆鍖栧簭鍙凤紙涓や綅琛ラ浂锛�
-        String seq = String.format("%02d", index);
-
-        // 3. 浠巊lassId涓彁鍙栨湯灏句袱浣嶆暟瀛楋紙瑕嗙洊榛樿搴忓彿锛�
-        if (glassId != null) {
-            String glassIdStr = glassId.toString();
-            Matcher matcher = DIGIT_PATTERN.matcher(glassIdStr);
-            String lastDigitStr = null;
-
-            // 閬嶅巻鍖归厤鎵�鏈夋暟瀛楁锛屽彇鏈�鍚庝竴涓�
-            while (matcher.find()) {
-                lastDigitStr = matcher.group();
-            }
-
-            // 鑻ユ暟瀛楁闀垮害鈮�2锛屽彇鏈�鍚庝袱浣嶏紱鍚﹀垯淇濈暀鍘熷簭鍙�
-            if (lastDigitStr != null && lastDigitStr.length() >= 2) {
-                seq = lastDigitStr.substring(lastDigitStr.length() - 2);
-            }
-        }
-
-        return "P" + base + seq;
-    }
 
     /**
      * 鎻愬彇List涓涓�涓狹ap鐨勬寚瀹歬ey鍊硷紙榛樿绌哄瓧绗︿覆锛�

--
Gitblit v1.8.0