From 644b6194f8e5bfbe8d4c431eb53e6b3d36026351 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 19 十二月 2025 12:56:35 +0800
Subject: [PATCH] bug修复
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 78 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 76 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 362f761..72bb2ae 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1540,7 +1540,7 @@
station.setModiTime(new Date());
station.setModiUser(userId);
if (!basStationService.updateById(station)) {
- throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+ throw new CoolException("鏇存柊鐩爣绔欑偣鐘舵�佸け璐�");
}
} else {
throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + station.getLocSts());
@@ -1741,6 +1741,7 @@
throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
}
station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+ station.setBarcode(null);
if (!basStationService.updateById(station)) {
throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
}
@@ -1785,6 +1786,7 @@
}
station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+ station.setBarcode(null);
if (!basStationService.updateById(station)) {
throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐�!");
}
@@ -1806,6 +1808,13 @@
generateCrnInTask(waitPakins, station, param.getLocType1(), userId);
}
+ /**
+ * SO/EO 鍖虹粍鎵�
+ * @author Ryan
+ * @date 2025/12/18 15:19
+ * @param params
+ * @return com.core.common.R
+ */
@Override
@Transactional(rollbackFor = Exception.class)
public R collectionPakin(CollectionPakinParams params, Long userId) {
@@ -2456,7 +2465,7 @@
if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
station.setLocSts("R"); // S.鍏ュ簱棰勭害
- station.setBarcode(barcode);
+// station.setBarcode(barcode);
station.setModiTime(new Date());
station.setModiUser(userId);
if (!basStationService.updateById(station)) {
@@ -2520,4 +2529,69 @@
}
return result;
}
+
+ /**
+ * 鍛煎彨AGV杩斿洖
+ * @author Ryan
+ * @date 2025/9/24
+ * @param callAgvBackParam
+ * @return com.core.common.R
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R agvCallback(AgvCallParams callAgvBackParam, Long userId) {
+ if (Objects.isNull(callAgvBackParam.getOrgSite())) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖!!");
+ }
+
+ // 鎸夊綋鍓嶆煡鎵惧簱浣嶉『搴忥紝鏌ュ埌涓�涓悗锛屼笉鍐嶅線涓嬫煡璇�
+ LocCache locCache = findPriorityLocCache();
+
+ if (Objects.isNull(locCache)) {
+ return R.error("鏈煡璇㈠埌鍙敤搴撲綅");
+ }
+
+ try {
+ generateAgvTask("agv", locCache, callAgvBackParam.getOrgSite(), callAgvBackParam.getBarcode(), userId);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return R.error(e.getMessage());
+ }
+
+ return R.ok(locCache);
+ }
+
+ /**
+ * 鎸変紭鍏堢骇鏌ユ壘鍙敤搴撲綅
+ * 椤哄簭锛氬叆搴撶紦瀛樺尯 -> SO鍖� -> EO鍖�
+ */
+ private LocCache findPriorityLocCache() {
+ // 1. Try Inbound Cache Area
+ LocCache loc = findAvailableLocByAreaType(LocAreaType.LOC_AREA_TYPE_IN_CACHE);
+ if (loc != null) return loc;
+
+ // 2. Try SO Area
+ loc = findAvailableLocByAreaType(LocAreaType.LOC_AREA_TYPE_SO);
+ if (loc != null) return loc;
+
+ // 3. Try EO Area
+ loc = findAvailableLocByAreaType(LocAreaType.LOC_AREA_TYPE_EO);
+ return loc;
+ }
+
+ /**
+ * 鏍规嵁鍖哄煙绫诲瀷鏌ユ壘鍙敤搴撲綅
+ */
+ private LocCache findAvailableLocByAreaType(LocAreaType areaType) {
+ BasAreas area = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", areaType.type));
+ if (area == null) {
+ return null;
+ }
+ return locCacheService.selectOne(new EntityWrapper<LocCache>()
+ .eq("area_id", area.getId())
+ .eq("frozen", 0)
+ .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+ .orderAsc(Arrays.asList("loc_no"))
+ .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+ }
}
--
Gitblit v1.9.1