From 78d73df2f8e0c6855d65eb1f2c6df08e0f99bab1 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 22 十月 2025 12:45:05 +0800
Subject: [PATCH] 仓储后端接口返回信息国际化处理
---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java | 137 +++++++++++++++++++++++++++++++++++++++------
1 files changed, 117 insertions(+), 20 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
index 510c58f..582ac35 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -19,9 +19,13 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -43,6 +47,12 @@
@Autowired(required = false)
MiloService miloService;
+ @Resource
+ private MessageSource messageSource;
+
+ // 鍚婅浣�
+ private static final Integer LEFTING_01 = 99;
+
@Override
public boolean deleteRawGlassStorageDetails(String device_id) {
QueryWrapper<RawGlassStorageDetails> queryWrapper = new QueryWrapper<>();
@@ -59,28 +69,58 @@
return list();
}
-
+ // 绌烘灦瀛愬埌鍚婅浣�
@Override
+ @Transactional(rollbackFor = Exception.class)
public String warehousingRequest(int leftingStation) {
RawGlassStorageDetails storageDetails = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
.in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
- .eq(RawGlassStorageDetails::getSlot, leftingStation));
+ .eq(RawGlassStorageDetails::getSlot, leftingStation)
+ // 娣诲姞琛岄攣锛屽叾浠栬姹傞渶绛夊緟閿侀噴鏀�
+ .last("FOR UPDATE"));
+
if (null != storageDetails) {
log.info("褰撳墠鍚婅浣嶆湁鏋跺瓙锛岀粨鏉熸湰鍦板叆搴撹姹�");
- return "fail";
+ return messageSource.getMessage(
+ "rawglass.warehousing.slot.occupied",
+ null,
+ LocaleContextHolder.getLocale()
+ );
}
+
List<RawGlassStorageDetails> shelfList = listBySlotState(Const.RAW_GLASS_DEVICE, Const.RAW_GLASS_STATE_IN_ALL);
if (CollectionUtils.isEmpty(shelfList)) {
log.info("褰撳墠宸ヤ綅涓嶅瓨鍦ㄥ彲鐢ㄧ殑绌烘灦瀛�");
- return "fail";
+ return messageSource.getMessage(
+ "rawglass.no.empty.shelf",
+ null,
+ LocaleContextHolder.getLocale()
+ );
}
+
+ if (rawGlassStorageTaskService.count(new LambdaQueryWrapper<RawGlassStorageTask>()
+ .eq(RawGlassStorageTask::getEndSlot, leftingStation)
+ .in(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW, Const.RAW_GLASS_TASK_RUNNING)) > 0) {
+
+ log.info("鍚婅浣� {} 宸叉湁鏈畬鎴愪换鍔★紝鎷掔粷閲嶅涓嬪彂", leftingStation);
+ return messageSource.getMessage(
+ "rawglass.warehousing.task.exists",
+ null,
+ LocaleContextHolder.getLocale()
+ );
+ }
+
Integer shelf = shelfList.get(0).getSlot();
Integer deviceId = shelfList.get(0).getDeviceId();
log.info("鐢熸垚浠诲姟");
try {
generateTask(shelf, leftingStation, shelf, 0, Const.RAW_GLASS_TASK_TYPE_IN_REQUEST);
} catch (Exception e) {
- return "fail";
+ return messageSource.getMessage(
+ "rawglass.task.generate.error",
+ null,
+ LocaleContextHolder.getLocale()
+ );
}
//鐢熸垚涓�鏉¤鎯呮暟鎹� 浠呰褰曟灦瀛愮姸鎬�
RawGlassStorageDetails details = new RawGlassStorageDetails();
@@ -92,13 +132,24 @@
return "success";
}
+ /**
+ * 鍘熺墖鍏ュ簱
+ *
+ * @param request
+ * @return
+ */
@Override
public String patternWarehousing(RawGlassRequest request) {
RawGlassStorageDetails glassStorageDetails = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
.eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
.eq(RawGlassStorageDetails::getSlot, request.getSlot()));
if (null == glassStorageDetails) {
- log.info("褰撳墠鍚婅浣嶆病鏈夋灦瀛�");
+ log.info("褰撳墠宸ヤ綅涓嶅瓨鍦ㄥ彲鐢ㄧ殑鏋跺瓙");
+ return messageSource.getMessage(
+ "rawglass.no.empty.shelf",
+ null,
+ LocaleContextHolder.getLocale()
+ );
}
//鍘熺墖淇℃伅瀛樺叆璇︽儏琛�
BeanUtils.copyProperties(request, glassStorageDetails);
@@ -138,13 +189,51 @@
return "success";
}
+ // 鍑哄簱
@Override
public String outWarehousing(Long slotId) {
- update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slotId)
- .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+ // 1. 妫�鏌ュ綋鍓嶆灦瀛愮姸鎬�
+ RawGlassStorageDetails details = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
+ .eq(RawGlassStorageDetails::getSlot, slotId)
+ .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN));
+ if (details == null) {
+ log.info("鏋跺瓙鐘舵�佸紓甯革紝鏃犳硶鎵ц鍑哄簱鎿嶄綔");
+ return messageSource.getMessage(
+ "rawglass.outWarehousing.error",
+ null,
+ LocaleContextHolder.getLocale()
+ );
+ }
+
+ // 2. 灏嗘灦瀛愮姸鎬佹敼涓衡�滃緟鍑哄簱鈥濓紙鏍囪涓哄彲鎵ц锛�
+ update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+ .eq(RawGlassStorageDetails::getSlot, slotId)
.set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_WAIT_OUT));
- //鐢熸垚涓�鏉¤鎯呮暟鎹� 浠呰褰曟灦瀛愮姸鎬�
- return "success";
+
+ // 3. 鐩存帴鐢熸垚鍑哄簱浠诲姟锛堝叧閿細鍦ㄩ〉闈㈢偣鍑绘椂灏卞垱寤轰换鍔¤褰曪級
+ try {
+ // 璧峰浣嶏細浠撳簱瀛樺偍浣嶏紙slotId锛夛紝鐩爣浣嶏細鍚婅浣�99
+ generateTask(
+ slotId.intValue(), // 璧峰浣嶏細浠撳簱瀛樺偍浣嶏紙slotId锛�
+ LEFTING_01, // 鐩爣浣嶏細鍚婅浣�99
+ slotId.intValue(), // 鏋跺瓙鍙�
+ details.getRemainQuantity(), // 鏁伴噺
+ Const.RAW_GLASS_TASK_TYPE_OUT // 浠诲姟绫诲瀷锛氬嚭搴�
+ );
+ log.info("鍑哄簱浠诲姟鐢熸垚鎴愬姛锛屾灦瀛愶細{}锛岀洰鏍囦綅锛歿}", slotId, LEFTING_01);
+ return "success";
+ } catch (Exception e) {
+ log.error("鐢熸垚鍑哄簱浠诲姟澶辫触", e);
+ // 澶辫触鏃跺洖婊氱姸鎬�
+ update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+ .eq(RawGlassStorageDetails::getSlot, slotId)
+ .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN));
+ return messageSource.getMessage(
+ "rawglass.task.generate.error",
+ null,
+ LocaleContextHolder.getLocale()
+ );
+ }
}
@Override
@@ -152,15 +241,19 @@
return baseMapper.listBySlotState(liftingStation, state);
}
-
+ // 鍥炲簱
@Override
public String outWarehousingRequest(int leftingStation) {
//瀵瑰簲宸ヤ綅鏄惁鏈夌┖鏋跺瓙
RawGlassStorageDetails details = getOne(new LambdaQueryWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
.eq(RawGlassStorageDetails::getSlot, leftingStation));
if (null == details) {
- log.info("鏃犵┖鏋跺瓙锛岀粨鏉熸湰鍦板嚭鐗囪姹�");
- return "fail";
+ log.info("鏃犵┖鏋跺瓙锛岀粨鏉熷洖搴撲换鍔�");
+ return messageSource.getMessage(
+ "rawglass.no.empty.shelf",
+ null,
+ LocaleContextHolder.getLocale()
+ );
}
//鐢熸垚涓�鏉¤鎯呮暟鎹� 浠呰褰曟灦瀛愮姸鎬�
update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
@@ -168,9 +261,13 @@
.eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
.set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
try {
- generateTask(leftingStation, details.getShelf(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT_REQUEST);
+ generateTask(leftingStation, details.getShelf(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_IN);
} catch (Exception e) {
- return "fail";
+ return messageSource.getMessage(
+ "rawglass.task.generate.error",
+ null,
+ LocaleContextHolder.getLocale()
+ );
}
return "success";
}
@@ -195,11 +292,11 @@
.shelf(shelf)
.createTime(new Date()).build();
rawGlassStorageTaskService.save(task);
- List<ReadWriteEntity> list = new ArrayList<>();
- list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
- list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
- list.add(generateReadWriteEntity("CC.CC.endSlot", endSlot));
- miloService.writeToOpcWord(list);
+// List<ReadWriteEntity> list = new ArrayList<>();
+// list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+// list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+// list.add(generateReadWriteEntity("CC.CC.endSlot", endSlot));
+// miloService.writeToOpcWord(list);
return Boolean.TRUE;
}
--
Gitblit v1.8.0