From 04914a9997afbbead6f8adbb9d9c40e05b2edbd1 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 17 十二月 2025 17:04:34 +0800
Subject: [PATCH] 修复调用导入工程失败 重复保存;修复分批出片逻辑
---
mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/EngineeringSequenceServiceImpl.java | 55 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 40 insertions(+), 15 deletions(-)
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/EngineeringSequenceServiceImpl.java b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/EngineeringSequenceServiceImpl.java
index 0a37fb0..f5eaab5 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/EngineeringSequenceServiceImpl.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/EngineeringSequenceServiceImpl.java
@@ -34,36 +34,61 @@
private static final int RETRY_INTERVAL_MAX = 200;
@Override
- @Transactional(rollbackFor = Exception.class)
- public String generateAndSaveEngineeringId(Date date) {
- try {
- Integer maxSequence = baseMapper.selectMaxSequenceByDate(date);
- maxSequence = (maxSequence == null) ? 0 : maxSequence;
- int newSequence = maxSequence + 1;
+ public String generateEngineeringId(Date date) {
+ Integer maxSequence = baseMapper.selectMaxSequenceByDate(date);
+ maxSequence = (maxSequence == null) ? 0 : maxSequence;
+ int newSequence = maxSequence + 1;
+ LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ String dateStr = DATE_FORMATTER_THREAD_LOCAL.get().format(localDate);
+ String engineeringId = "P" + dateStr + String.format("%02d", newSequence);
+
+ log.info("鐢熸垚宸ョ▼鍙凤紙鏈繚瀛橈級: engineeringId={}, date={}, sequence={}", engineeringId, date, newSequence);
+ return engineeringId;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean saveEngineeringId(Date date, String engineeringId) {
+ try {
+ // 瑙f瀽宸ョ▼鍙疯幏鍙栧簭鍙�
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
String dateStr = DATE_FORMATTER_THREAD_LOCAL.get().format(localDate);
- String engineeringId = "P" + dateStr + String.format("%02d", newSequence);
+ String sequenceStr = engineeringId.substring(engineeringId.length() - 2);
+ int sequence = Integer.parseInt(sequenceStr);
EngineeringSequence engineeringSequence = new EngineeringSequence();
engineeringSequence.setEngineeringId(engineeringId);
engineeringSequence.setDate(date);
- engineeringSequence.setSequence(newSequence);
+ engineeringSequence.setSequence(sequence);
engineeringSequence.setCreatedTime(new Date());
engineeringSequence.setUpdatedTime(new Date());
engineeringSequence.setCreatedBy("system");
engineeringSequence.setUpdatedBy("system");
- save(engineeringSequence);
+ boolean result = save(engineeringSequence);
- log.info("鐢熸垚宸ョ▼鍙锋垚鍔�: engineeringId={}, date={}, sequence={}", engineeringId, date, newSequence);
- return engineeringId;
+ if (result) {
+ log.info("淇濆瓨宸ョ▼鍙锋垚鍔�: engineeringId={}, date={}, sequence={}", engineeringId, date, sequence);
+ } else {
+ log.error("淇濆瓨宸ョ▼鍙峰け璐�: engineeringId={}, date={}, sequence={}", engineeringId, date, sequence);
+ }
+
+ return result;
} catch (DuplicateKeyException dup) {
- log.error("鐢熸垚宸ョ▼鍙峰敮涓�閿啿绐�: date={}", date, dup);
- throw new RuntimeException("鐢熸垚宸ョ▼鍙峰け璐�", dup);
+ log.error("淇濆瓨宸ョ▼鍙峰敮涓�閿啿绐�: date={}, engineeringId={}", date, engineeringId, dup);
+ throw new RuntimeException("淇濆瓨宸ョ▼鍙峰け璐�", dup);
} catch (Exception e) {
- log.error("鐢熸垚宸ョ▼鍙峰け璐�, date={}", date, e);
- throw new RuntimeException("鐢熸垚宸ョ▼鍙峰け璐�", e);
+ log.error("淇濆瓨宸ョ▼鍙峰け璐�, date={}, engineeringId={}", date, engineeringId, e);
+ throw new RuntimeException("淇濆瓨宸ョ▼鍙峰け璐�", e);
}
}
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public String generateAndSaveEngineeringId(Date date) {
+ String engineeringId = generateEngineeringId(date);
+ saveEngineeringId(date, engineeringId);
+ return engineeringId;
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0