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