From 8ec0064cd95292f14027006a8be47c1a71f69af9 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 31 十二月 2025 17:02:57 +0800
Subject: [PATCH] 添加查询所有玻璃数据
---
mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java | 1
mes-processes/mes-plcSend/src/main/java/com/mes/device/mapper/DeviceGlassInfoMapper.java | 47 +++++++++++++++
mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java | 66 ++++++++++++++++++----
mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/EngineeringSequenceServiceImpl.java | 45 ++++++++++----
4 files changed, 132 insertions(+), 27 deletions(-)
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/device/mapper/DeviceGlassInfoMapper.java b/mes-processes/mes-plcSend/src/main/java/com/mes/device/mapper/DeviceGlassInfoMapper.java
index f0d531d..9399ef2 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/device/mapper/DeviceGlassInfoMapper.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/device/mapper/DeviceGlassInfoMapper.java
@@ -51,5 +51,52 @@
*/
@Select("SELECT * FROM glass_info WHERE engineering_id = #{engineeringId} AND is_deleted = 0")
List<GlassInfo> selectByEngineeringId(@Param("engineeringId") String engineeringId);
+
+ /**
+ * 鏍规嵁鐜荤拑ID鏌ヨ鐜荤拑淇℃伅锛堝寘鎷�昏緫鍒犻櫎鐨勮褰曪級
+ *
+ * @param glassId 鐜荤拑ID
+ * @return 鐜荤拑淇℃伅
+ */
+ @Select("SELECT * FROM glass_info WHERE glass_id = #{glassId} LIMIT 1")
+ GlassInfo selectByGlassIdIncludingDeleted(@Param("glassId") String glassId);
+
+ /**
+ * 鎭㈠閫昏緫鍒犻櫎鐨勮褰曞苟鏇存柊瀛楁锛堢粫杩囬�昏緫鍒犻櫎鎷︽埅鍣級
+ *
+ * @param id 璁板綍ID
+ * @param glassId 鐜荤拑ID
+ * @param glassLength 鐜荤拑闀垮害
+ * @param glassWidth 鐜荤拑瀹藉害
+ * @param glassThickness 鐜荤拑鍘氬害
+ * @param status 鐘舵��
+ * @param state 鐘舵�佸��
+ * @param engineeringId 宸ョ▼鍙�
+ * @param updatedTime 鏇存柊鏃堕棿
+ * @param updatedBy 鏇存柊浜�
+ * @return 鏇存柊琛屾暟
+ */
+ @org.apache.ibatis.annotations.Update("UPDATE glass_info SET " +
+ "is_deleted = 0, " +
+ "glass_id = #{glassId}, " +
+ "glass_length = #{glassLength}, " +
+ "glass_width = #{glassWidth}, " +
+ "glass_thickness = #{glassThickness}, " +
+ "status = #{status}, " +
+ "state = #{state}, " +
+ "engineering_id = #{engineeringId}, " +
+ "updated_time = #{updatedTime}, " +
+ "updated_by = #{updatedBy} " +
+ "WHERE id = #{id}")
+ int restoreAndUpdateById(@Param("id") Long id,
+ @Param("glassId") String glassId,
+ @Param("glassLength") Integer glassLength,
+ @Param("glassWidth") Integer glassWidth,
+ @Param("glassThickness") java.math.BigDecimal glassThickness,
+ @Param("status") String status,
+ @Param("state") Integer state,
+ @Param("engineeringId") String engineeringId,
+ @Param("updatedTime") java.util.Date updatedTime,
+ @Param("updatedBy") String updatedBy);
}
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 f5eaab5..397cbf3 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
@@ -5,7 +5,6 @@
import com.mes.device.mapper.EngineeringSequenceMapper;
import com.mes.device.service.EngineeringSequenceService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -57,27 +56,45 @@
String sequenceStr = engineeringId.substring(engineeringId.length() - 2);
int sequence = Integer.parseInt(sequenceStr);
+ // 妫�鏌ユ槸鍚﹀凡瀛樺湪
+ EngineeringSequence existing = baseMapper.selectByEngineeringId(engineeringId);
+
EngineeringSequence engineeringSequence = new EngineeringSequence();
engineeringSequence.setEngineeringId(engineeringId);
engineeringSequence.setDate(date);
engineeringSequence.setSequence(sequence);
- engineeringSequence.setCreatedTime(new Date());
- engineeringSequence.setUpdatedTime(new Date());
- engineeringSequence.setCreatedBy("system");
- engineeringSequence.setUpdatedBy("system");
-
- boolean result = save(engineeringSequence);
-
- if (result) {
- log.info("淇濆瓨宸ョ▼鍙锋垚鍔�: engineeringId={}, date={}, sequence={}", engineeringId, date, sequence);
+
+ boolean result;
+ if (existing != null) {
+ // 濡傛灉宸插瓨鍦紝鍒欐洿鏂�
+ engineeringSequence.setId(existing.getId());
+ // 淇濈暀鍘熷鍒涘缓淇℃伅
+ engineeringSequence.setCreatedTime(existing.getCreatedTime());
+ engineeringSequence.setCreatedBy(existing.getCreatedBy());
+ // 鏇存柊涓哄綋鍓嶆椂闂�
+ engineeringSequence.setUpdatedTime(new Date());
+ engineeringSequence.setUpdatedBy("system");
+ result = updateById(engineeringSequence);
+ if (result) {
+ log.info("鏇存柊宸ョ▼鍙锋垚鍔�: engineeringId={}, date={}, sequence={}", engineeringId, date, sequence);
+ } else {
+ log.error("鏇存柊宸ョ▼鍙峰け璐�: engineeringId={}, date={}, sequence={}", engineeringId, date, sequence);
+ }
} else {
- log.error("淇濆瓨宸ョ▼鍙峰け璐�: engineeringId={}, date={}, sequence={}", engineeringId, date, sequence);
+ // 濡傛灉涓嶅瓨鍦紝鍒欐彃鍏�
+ engineeringSequence.setCreatedTime(new Date());
+ engineeringSequence.setUpdatedTime(new Date());
+ engineeringSequence.setCreatedBy("system");
+ engineeringSequence.setUpdatedBy("system");
+ result = save(engineeringSequence);
+ 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={}, engineeringId={}", date, engineeringId, dup);
- throw new RuntimeException("淇濆瓨宸ョ▼鍙峰け璐�", dup);
} catch (Exception e) {
log.error("淇濆瓨宸ョ▼鍙峰け璐�, date={}, engineeringId={}", date, engineeringId, e);
throw new RuntimeException("淇濆瓨宸ョ▼鍙峰け璐�", e);
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 3e04c93..0de3ef9 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
@@ -107,9 +107,10 @@
return false;
}
try {
- // 妫�鏌ユ槸鍚﹀凡瀛樺湪
- GlassInfo existing = baseMapper.selectByGlassId(glassInfo.getGlassId());
+ // 鏌ヨ鍖呮嫭閫昏緫鍒犻櫎鐨勮褰�
+ GlassInfo existing = baseMapper.selectByGlassIdIncludingDeleted(glassInfo.getGlassId());
if (existing != null) {
+ // 瀛樺湪鍒欐洿鏂�
glassInfo.setId(existing.getId());
// 淇濈暀鍘熷鍒涘缓淇℃伅
if (glassInfo.getCreatedTime() == null) {
@@ -118,15 +119,42 @@
if (glassInfo.getCreatedBy() == null) {
glassInfo.setCreatedBy(existing.getCreatedBy());
}
- // 鏇存柊涓哄綋鍓嶆椂闂�
+ // 璁剧疆鏇存柊鏃堕棿
if (glassInfo.getUpdatedTime() == null) {
glassInfo.setUpdatedTime(new Date());
}
if (glassInfo.getUpdatedBy() == null) {
glassInfo.setUpdatedBy("system");
}
- return updateById(glassInfo);
+
+ if (existing.getIsDeleted() != null && existing.getIsDeleted() != 0) {
+ log.info("鎭㈠閫昏緫鍒犻櫎鐨勭幓鐠冧俊鎭�: glassId={}, id={}", glassInfo.getGlassId(), existing.getId());
+ int updatedRows = baseMapper.restoreAndUpdateById(
+ existing.getId(),
+ glassInfo.getGlassId(),
+ glassInfo.getGlassLength(),
+ glassInfo.getGlassWidth(),
+ glassInfo.getGlassThickness(),
+ glassInfo.getStatus(),
+ glassInfo.getState(),
+ glassInfo.getEngineeringId(),
+ glassInfo.getUpdatedTime() != null ? glassInfo.getUpdatedTime() : new Date(),
+ glassInfo.getUpdatedBy() != null ? glassInfo.getUpdatedBy() : "system"
+ );
+ boolean updated = updatedRows > 0;
+ log.info("鎭㈠閫昏緫鍒犻櫎璁板綍缁撴灉: glassId={}, updatedRows={}, updated={}",
+ glassInfo.getGlassId(), updatedRows, updated);
+ if (!updated) {
+ log.error("鎭㈠閫昏緫鍒犻櫎璁板綍澶辫触锛屽彲鑳藉師鍥狅細鏇存柊鏉′欢涓嶅尮閰嶆垨鏁版嵁寮傚父, glassId={}, id={}",
+ glassInfo.getGlassId(), existing.getId());
+ }
+ return updated;
+ } else {
+ // 姝e父鏇存柊
+ return updateById(glassInfo);
+ }
} else {
+ // 涓嶅瓨鍦ㄥ垯鏂板
Date now = new Date();
if (glassInfo.getCreatedTime() == null) {
glassInfo.setCreatedTime(now);
@@ -139,6 +167,9 @@
}
if (glassInfo.getUpdatedBy() == null) {
glassInfo.setUpdatedBy("system");
+ }
+ if (glassInfo.getIsDeleted() == null) {
+ glassInfo.setIsDeleted(0);
}
return save(glassInfo);
}
@@ -154,10 +185,19 @@
return true;
}
try {
+ int successCount = 0;
+ int failCount = 0;
for (GlassInfo glassInfo : glassInfos) {
- saveOrUpdateGlassInfo(glassInfo);
+ boolean result = saveOrUpdateGlassInfo(glassInfo);
+ if (result) {
+ successCount++;
+ } else {
+ failCount++;
+ log.warn("淇濆瓨鎴栨洿鏂扮幓鐠冧俊鎭け璐�: glassId={}", glassInfo != null ? glassInfo.getGlassId() : "null");
+ }
}
- return true;
+ log.info("鎵归噺淇濆瓨鎴栨洿鏂扮幓鐠冧俊鎭畬鎴�: 鎬绘暟={}, 鎴愬姛={}, 澶辫触={}", glassInfos.size(), successCount, failCount);
+ return failCount == 0;
} catch (Exception e) {
log.error("鎵归噺淇濆瓨鎴栨洿鏂扮幓鐠冧俊鎭け璐�", e);
return false;
@@ -703,8 +743,12 @@
}
if (!glassInfos.isEmpty()) {
- batchSaveOrUpdateGlassInfo(glassInfos);
- log.info("宸蹭繚瀛� {} 鏉$幓鐠冧俊鎭埌鏈湴鏁版嵁搴擄紝宸ョ▼鍙�: {}", glassInfos.size(), engineeringId);
+ boolean success = batchSaveOrUpdateGlassInfo(glassInfos);
+ if (success) {
+ log.info("宸蹭繚瀛� {} 鏉$幓鐠冧俊鎭埌鏈湴鏁版嵁搴擄紝宸ョ▼鍙�: {}", glassInfos.size(), engineeringId);
+ } else {
+ log.error("淇濆瓨鐜荤拑淇℃伅鍒版湰鍦版暟鎹簱澶辫触锛屽伐绋嬪彿: {}, 鎬绘暟: {}", engineeringId, glassInfos.size());
+ }
}
}
@@ -761,14 +805,12 @@
try {
// 鍏堟煡璇㈣鍒犻櫎鐨勬暟閲忥紙鍒犻櫎鍓嶏級
LambdaQueryWrapper<GlassInfo> countWrapper = new LambdaQueryWrapper<>();
- countWrapper.eq(GlassInfo::getEngineeringId, engineeringId.trim())
- .eq(GlassInfo::getIsDeleted, 0); // 鏌ヨ鏈垹闄ょ殑璁板綍
+ countWrapper.eq(GlassInfo::getEngineeringId, engineeringId.trim());
long count = this.count(countWrapper);
// 浣跨敤MyBatis-Plus鐨剅emove鏂规硶锛屼細鏍规嵁@TableLogic鑷姩杩涜閫昏緫鍒犻櫎
LambdaQueryWrapper<GlassInfo> removeWrapper = new LambdaQueryWrapper<>();
- removeWrapper.eq(GlassInfo::getEngineeringId, engineeringId.trim())
- .eq(GlassInfo::getIsDeleted, 0); // 鍙垹闄ゆ湭鍒犻櫎鐨勮褰�
+ removeWrapper.eq(GlassInfo::getEngineeringId, engineeringId.trim());
boolean result = this.remove(removeWrapper);
if (result) {
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java b/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java
index fcc73ee..2a298e2 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java
@@ -147,7 +147,6 @@
VehicleStatus status = statusManager.getVehicleStatus(deviceId);
if (status != null && !status.isAvailable()) {
// 瀵逛簬 feedGlass 鎿嶄綔锛屽鏋滅姸鎬佹槸 EXECUTING锛屽厑璁哥户缁墽琛�
- // 鍥犱负瀹氭椂鍣ㄥ彲鑳戒細閲嶅璋冪敤锛屾垨鑰呴渶瑕佺瓑寰呬换鍔″畬鎴�
if ("feedGlass".equals(operation) && status.isExecuting()) {
log.debug("杞﹁締 {} 褰撳墠鐘舵�佷负 EXECUTING锛屼絾鍏佽缁х画鎵ц feedGlass锛堝畾鏃跺櫒閲嶅璋冪敤锛�", deviceId);
// 鍏佽缁х画鎵ц锛屼笉杩斿洖閿欒
--
Gitblit v1.8.0