From 9611dc686299be640ce5e5f5990c747765161ec7 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期三, 21 一月 2026 10:59:38 +0800
Subject: [PATCH] agv逻辑调整2
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 266 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 253 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 4a28523..0974a79 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -629,9 +629,40 @@
public ReturnT<String> agvDoOut(Task task) {
if (task.getIoType().equals(101)) {
Date now = new Date();
+
+ // 妫�鏌ourceLocNo鏄惁涓虹┖
+ if (task.getSourceLocNo() == null || task.getSourceLocNo().isEmpty()) {
+// log.warn("浠诲姟ID锛歿}鐨剆ourceLocNo涓虹┖锛岃烦杩囧簱浣嶆搷浣滐紙鍙兘鏄粠绔欑偣鍏ュ簱鐨勪换鍔★級", task.getId());
+ task.setWrkSts(15L);
+ if (!taskService.updateById(task)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+
+ // 鏌ヨ搴撲綅淇℃伅
LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", task.getSourceLocNo()));
if (Objects.isNull(locMast)) {
- throw new RuntimeException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉鑳戒负绌猴紒锛�");
+ // 濡傛灉鏌ヨ涓嶅埌搴撲綅锛屽彲鑳芥槸sourceLocNo鏄珯鐐瑰彿鑰屼笉鏄簱浣嶅彿
+ // 妫�鏌asDevp琛ㄤ腑鏄惁瀛樺湪璇ョ珯鐐�
+ try {
+ Integer siteNo = Integer.parseInt(task.getSourceLocNo());
+ List<BasDevp> basDevpList = basDevpMapper.selectList(new EntityWrapper<BasDevp>().eq("dev_no", siteNo));
+ if (basDevpList != null && !basDevpList.isEmpty()) {
+ // sourceLocNo鏄珯鐐瑰彿锛岃繖鏄粠绔欑偣鍏ュ簱鐨勪换鍔★紝涓嶉渶瑕佸鐞嗗簱浣�
+// log.info("浠诲姟ID锛歿}鐨剆ourceLocNo鏄珯鐐瑰彿锛歿}锛岃烦杩囧簱浣嶆搷浣滐紙浠庣珯鐐瑰叆搴撲换鍔★級", task.getId(), task.getSourceLocNo());
+ task.setWrkSts(15L);
+ if (!taskService.updateById(task)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+ } catch (NumberFormatException e) {
+ // sourceLocNo涓嶆槸鏁板瓧锛屽彲鑳芥槸搴撲綅鍙锋牸寮忛敊璇�
+ log.warn("浠诲姟ID锛歿}鐨剆ourceLocNo锛歿}涓嶆槸鏈夋晥鐨勬暟瀛楁牸寮�", task.getId(), task.getSourceLocNo());
+ }
+ // 鏃笉鏄簱浣嶄篃涓嶆槸绔欑偣锛屾姏鍑哄紓甯�
+ throw new RuntimeException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉鑳戒负绌猴紒锛佷换鍔D锛�" + task.getId() + "锛宻ourceLocNo锛�" + task.getSourceLocNo());
}
List<TaskDetl> wrkDetls101 = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
if (wrkDetls101.isEmpty()) {
@@ -711,6 +742,7 @@
.eq("barcode", completedTask.getBarcode())
.in("io_type", 110, 101) // 绌烘澘鍑哄簱鎴栧叏鏉垮嚭搴�
.eq("wrk_sts", 7) // 寰呭懠鍙獳GV鐘舵��
+ .andNew("(is_deleted = 0)")
);
if (!existingTasks.isEmpty()) {
log.info("浠诲姟ID锛歿}鐨勬墭鐩樼爜锛歿}宸插瓨鍦ㄧ┖鎵�/婊℃墭鍑哄簱浠诲姟锛岃烦杩囩敓鎴�", completedTask.getId(), completedTask.getBarcode());
@@ -781,15 +813,9 @@
}
// 鍒嗛厤缂撳瓨搴撲綅锛氬彧鏌ユ壘WA寮�澶寸殑搴撲綅锛圕A寮�澶村彧鍋氬叆搴擄紝WA寮�澶存墠浼氳鍑哄簱鍒嗛厤缂撳瓨鍖猴級
+ // 浣跨敤鏂扮殑鍒嗛厤閫昏緫锛氭寜鍒椾紭鍏堢骇锛堢涓夊垪鈫掔浜屽垪鈫掔涓�鍒楋級鍒嗛厤
String cacheAreaPrefix = agvProperties.getLocationPrefix().getCacheArea();
- LocCache cacheLoc = locCacheService.selectOne(new EntityWrapper<LocCache>()
- .eq("whs_type", targetWhsType) // 鏍规嵁鍑哄簱绔欑偣鍒ゆ柇鐨剋hs_type
- .like("loc_no", cacheAreaPrefix + "%") // 鍙煡鎵網A寮�澶寸殑搴撲綅锛堜粠閰嶇疆璇诲彇锛�
- .eq("frozen", 0)
- .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type) // O.闂茬疆
- .ne("full_plt", isEmptyPallet ? "Y" : "N") // 绌烘墭涓嶉�夋弧鏉垮簱浣嶏紝婊℃墭涓嶉�夌┖鏉垮簱浣�
- .orderAsc(Arrays.asList("row1", "bay1", "lev1"))
- .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+ LocCache cacheLoc = allocateCacheLocationByPriority(targetWhsType, cacheAreaPrefix, isEmptyPallet);
if (cacheLoc == null) {
log.warn("{}渚ф病鏈夊彲鐢ㄧ殑{}缂撳瓨搴撲綅锛屼笉鐢熸垚{}AGV浠诲姟锛屼换鍔D锛歿}",
@@ -837,6 +863,7 @@
.eq("task_type", "agv")
.eq("wrk_sts", 8L) // 鍙鏌ユ鍦ㄦ惉杩愮姸鎬佺殑浠诲姟
.in("io_type", 101, 110) // 鍑哄簱鍒扮紦瀛樺尯鐨勪换鍔$被鍨�
+ .andNew("(is_deleted = 0)")
);
// 濡傛灉鏈夋鍦ㄦ惉杩愮殑浠诲姟锛屼笖宸ヤ綔妗f湭瀹屾垚锛屽垯涓嶅垎閰嶇紦瀛樺簱浣�
@@ -902,6 +929,167 @@
log.info("鎴愬姛鐢熸垚{}浠诲姟锛屼换鍔D锛歿}锛屽伐浣滃彿锛歿}锛屾簮绔欑偣锛歿}锛岀洰鏍囩珯鐐癸細{}锛岀紦瀛樺簱浣嶏細{}",
isEmptyPallet ? "绌烘墭鍑哄簱" : "婊℃墭鍑哄簱", cacheTask.getId(), workNo, outboundStaNo, cacheStaNo, cacheLoc.getLocNo());
+ }
+
+ /**
+ * 鎸変紭鍏堢骇鍒嗛厤缂撳瓨搴撲綅
+ * 浼樺厛绾ц鍒欙細
+ * 1. 浼樺厛鍒嗛厤绗笁鍒楋紙bay1=3锛夛紝涓旇鎺掔殑1銆�2銆�3鍒楅兘鏄┖鐨�
+ * 2. 濡傛灉鎵�鏈夌涓夊垪閮芥湁璐э紝鍒欏垎閰嶇浜屽垪锛坆ay1=2锛夛紝涓旇鎺掔殑1銆�2鍒楅兘鏄┖鐨�
+ * 3. 濡傛灉鎵�鏈夋帓鐨勭浜岀涓夊垪閮芥弧浜嗭紝鍒欏垎閰嶇涓�鍒楋紙bay1=1锛�
+ * 4. 濡傛灉鎵�鏈夌涓�鍒楅兘婊′簡锛屽啀妫�鏌ョ浜屽垪鍜岀涓夊垪
+ * 5. 灞傦紙lev1锛変粠绗竴灞傚紑濮�
+ *
+ * @param whsType 搴撳尯绫诲瀷
+ * @param cacheAreaPrefix 缂撳瓨鍖哄簱浣嶅墠缂�锛堝"WA"锛�
+ * @param isEmptyPallet 鏄惁绌烘墭
+ * @return 鍒嗛厤鐨勭紦瀛樺簱浣嶏紝濡傛灉鏃犳硶鍒嗛厤鍒欒繑鍥瀗ull
+ */
+ private LocCache allocateCacheLocationByPriority(Long whsType, String cacheAreaPrefix, boolean isEmptyPallet) {
+ // 鏌ヨ鎵�鏈夌鍚堟潯浠剁殑绌哄簱浣�
+ List<LocCache> allLocations = locCacheService.selectList(new EntityWrapper<LocCache>()
+ .eq("whs_type", whsType)
+ .like("loc_no", cacheAreaPrefix + "%")
+ .eq("frozen", 0)
+ .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type) // O.闂茬疆
+ .ne("full_plt", isEmptyPallet ? "Y" : "N") // 绌烘墭涓嶉�夋弧鏉垮簱浣嶏紝婊℃墭涓嶉�夌┖鏉垮簱浣�
+ );
+
+ if (allLocations == null || allLocations.isEmpty()) {
+ return null;
+ }
+
+ // 鎸塺ow1鍒嗙粍
+ Map<Integer, List<LocCache>> locationsByRow = allLocations.stream()
+ .filter(loc -> loc.getRow1() != null)
+ .collect(Collectors.groupingBy(LocCache::getRow1));
+
+ if (locationsByRow.isEmpty()) {
+ return null;
+ }
+
+ // 瀵规瘡涓帓锛屾鏌�1銆�2銆�3鍒楃殑鐘舵��
+ // 鍒楃姸鎬侊細true琛ㄧず璇ュ垪鏈夌┖搴撲綅锛宖alse琛ㄧず璇ュ垪宸叉弧
+ Map<Integer, Map<Integer, Boolean>> rowColumnStatus = new HashMap<>();
+ for (Map.Entry<Integer, List<LocCache>> entry : locationsByRow.entrySet()) {
+ Integer row = entry.getKey();
+ List<LocCache> rowLocs = entry.getValue();
+
+ Map<Integer, Boolean> columnStatus = new HashMap<>();
+ // 妫�鏌ョ1銆�2銆�3鍒楁槸鍚︽湁绌哄簱浣�
+ for (int bay = 1; bay <= 3; bay++) {
+ final int bayFinal = bay; // 鍒涘缓final鍓湰渚沴ambda浣跨敤
+ boolean hasEmpty = rowLocs.stream()
+ .anyMatch(loc -> loc.getBay1() != null && loc.getBay1() == bayFinal);
+ columnStatus.put(bay, hasEmpty);
+ }
+ rowColumnStatus.put(row, columnStatus);
+ }
+
+ // 浼樺厛绾�1锛氬垎閰嶇涓夊垪锛坆ay1=3锛夛紝涓旇鎺掔殑1銆�2銆�3鍒楅兘鏄┖鐨�
+ for (Map.Entry<Integer, List<LocCache>> entry : locationsByRow.entrySet()) {
+ Integer row = entry.getKey();
+ Map<Integer, Boolean> columnStatus = rowColumnStatus.get(row);
+
+ // 妫�鏌ヨ鎺掔殑1銆�2銆�3鍒楁槸鍚﹂兘鏄┖鐨�
+ if (Boolean.TRUE.equals(columnStatus.get(1)) &&
+ Boolean.TRUE.equals(columnStatus.get(2)) &&
+ Boolean.TRUE.equals(columnStatus.get(3))) {
+ // 鍒嗛厤璇ユ帓鐨勭涓夊垪锛屼粠绗竴灞傚紑濮�
+ List<LocCache> bay3Locs = entry.getValue().stream()
+ .filter(loc -> loc.getBay1() != null && loc.getBay1() == 3)
+ .sorted(Comparator.comparing(loc -> loc.getLev1() != null ? loc.getLev1() : 0))
+ .collect(Collectors.toList());
+
+ if (!bay3Locs.isEmpty()) {
+ log.debug("浼樺厛绾�1锛氬垎閰嶆帓{}鐨勭涓夊垪锛屽簱浣嶏細{}", row, bay3Locs.get(0).getLocNo());
+ return bay3Locs.get(0);
+ }
+ }
+ }
+
+ // 浼樺厛绾�2锛氬垎閰嶇浜屽垪锛坆ay1=2锛夛紝涓旇鎺掔殑1銆�2鍒楅兘鏄┖鐨勶紙绗笁鍒楀彲鑳藉凡婊★級
+ for (Map.Entry<Integer, List<LocCache>> entry : locationsByRow.entrySet()) {
+ Integer row = entry.getKey();
+ Map<Integer, Boolean> columnStatus = rowColumnStatus.get(row);
+
+ // 妫�鏌ヨ鎺掔殑1銆�2鍒楁槸鍚﹂兘鏄┖鐨�
+ if (Boolean.TRUE.equals(columnStatus.get(1)) &&
+ Boolean.TRUE.equals(columnStatus.get(2))) {
+ // 鍒嗛厤璇ユ帓鐨勭浜屽垪锛屼粠绗竴灞傚紑濮�
+ List<LocCache> bay2Locs = entry.getValue().stream()
+ .filter(loc -> loc.getBay1() != null && loc.getBay1() == 2)
+ .sorted(Comparator.comparing(loc -> loc.getLev1() != null ? loc.getLev1() : 0))
+ .collect(Collectors.toList());
+
+ if (!bay2Locs.isEmpty()) {
+ log.debug("浼樺厛绾�2锛氬垎閰嶆帓{}鐨勭浜屽垪锛屽簱浣嶏細{}", row, bay2Locs.get(0).getLocNo());
+ return bay2Locs.get(0);
+ }
+ }
+ }
+
+ // 浼樺厛绾�3锛氬垎閰嶇涓�鍒楋紙bay1=1锛夛紝鎵�鏈夋帓鐨勭浜岀涓夊垪閮芥弧浜�
+ for (Map.Entry<Integer, List<LocCache>> entry : locationsByRow.entrySet()) {
+ Integer row = entry.getKey();
+ Map<Integer, Boolean> columnStatus = rowColumnStatus.get(row);
+
+ // 妫�鏌ヨ鎺掔殑绗竴鍒楁槸鍚︽湁绌哄簱浣�
+ if (Boolean.TRUE.equals(columnStatus.get(1))) {
+ // 鍒嗛厤璇ユ帓鐨勭涓�鍒楋紝浠庣涓�灞傚紑濮�
+ List<LocCache> bay1Locs = entry.getValue().stream()
+ .filter(loc -> loc.getBay1() != null && loc.getBay1() == 1)
+ .sorted(Comparator.comparing(loc -> loc.getLev1() != null ? loc.getLev1() : 0))
+ .collect(Collectors.toList());
+
+ if (!bay1Locs.isEmpty()) {
+ log.debug("浼樺厛绾�3锛氬垎閰嶆帓{}鐨勭涓�鍒楋紝搴撲綅锛歿}", row, bay1Locs.get(0).getLocNo());
+ return bay1Locs.get(0);
+ }
+ }
+ }
+
+ // 浼樺厛绾�4锛氬鏋滄墍鏈夌涓�鍒楅兘婊′簡锛屽啀妫�鏌ョ浜屽垪鍜岀涓夊垪锛堜笉瑕佹眰璇ユ帓鐨�1銆�2鍒楅兘鏄┖鐨勶級
+ // 鍏堟鏌ョ浜屽垪
+ for (Map.Entry<Integer, List<LocCache>> entry : locationsByRow.entrySet()) {
+ Integer row = entry.getKey();
+ Map<Integer, Boolean> columnStatus = rowColumnStatus.get(row);
+
+ // 妫�鏌ヨ鎺掔殑绗簩鍒楁槸鍚︽湁绌哄簱浣�
+ if (Boolean.TRUE.equals(columnStatus.get(2))) {
+ List<LocCache> bay2Locs = entry.getValue().stream()
+ .filter(loc -> loc.getBay1() != null && loc.getBay1() == 2)
+ .sorted(Comparator.comparing(loc -> loc.getLev1() != null ? loc.getLev1() : 0))
+ .collect(Collectors.toList());
+
+ if (!bay2Locs.isEmpty()) {
+ log.debug("浼樺厛绾�4锛氬垎閰嶆帓{}鐨勭浜屽垪锛屽簱浣嶏細{}", row, bay2Locs.get(0).getLocNo());
+ return bay2Locs.get(0);
+ }
+ }
+ }
+
+ // 浼樺厛绾�5锛氭渶鍚庢鏌ョ涓夊垪锛堜笉瑕佹眰璇ユ帓鐨�1銆�2銆�3鍒楅兘鏄┖鐨勶級
+ for (Map.Entry<Integer, List<LocCache>> entry : locationsByRow.entrySet()) {
+ Integer row = entry.getKey();
+ Map<Integer, Boolean> columnStatus = rowColumnStatus.get(row);
+
+ // 妫�鏌ヨ鎺掔殑绗笁鍒楁槸鍚︽湁绌哄簱浣�
+ if (Boolean.TRUE.equals(columnStatus.get(3))) {
+ List<LocCache> bay3Locs = entry.getValue().stream()
+ .filter(loc -> loc.getBay1() != null && loc.getBay1() == 3)
+ .sorted(Comparator.comparing(loc -> loc.getLev1() != null ? loc.getLev1() : 0))
+ .collect(Collectors.toList());
+
+ if (!bay3Locs.isEmpty()) {
+ log.debug("浼樺厛绾�5锛氬垎閰嶆帓{}鐨勭涓夊垪锛屽簱浣嶏細{}", row, bay3Locs.get(0).getLocNo());
+ return bay3Locs.get(0);
+ }
+ }
+ }
+
+ // 濡傛灉鎵�鏈夊垪閮芥弧浜嗭紝杩斿洖null
+ return null;
}
/**
@@ -990,6 +1178,7 @@
.eq("task_type", "agv")
.eq("wrk_sts", 8L) // 鍙鏌ユ鍦ㄦ惉杩愮姸鎬佺殑浠诲姟
.in("io_type", checkIoTypes)
+ .andNew("(is_deleted = 0)")
);
if (!transportingTasks.isEmpty()) {
@@ -1006,7 +1195,7 @@
// 濡傛灉鎵�鏈夌珯鐐归兘鍦ㄦ惉杩愶紝鍒欎笉鍒嗛厤绔欑偣
if (selectedSite == null) {
- log.warn("鎵�鏈夌紦瀛樺尯绔欑偣閮芥湁姝e湪鎼繍鐨勫嚭搴撲换鍔★紝鏆備笉鍒嗛厤绔欑偣锛岀瓑寰呯┖闂�");
+// log.warn("鎵�鏈夌紦瀛樺尯绔欑偣閮芥湁姝e湪鎼繍鐨勫嚭搴撲换鍔★紝鏆備笉鍒嗛厤绔欑偣锛岀瓑寰呯┖闂�");
return null;
}
@@ -1027,9 +1216,42 @@
if (ioType == 1 || ioType == 10 || ioType == 53 || ioType == 57) {
// ioType == 1 闇�瑕佸鐞嗙粍鎵樻暟鎹�
if (ioType == 1) {
+ // 妫�鏌ocNo鏄惁涓虹┖
+ if (wrkMast.getLocNo() == null || wrkMast.getLocNo().isEmpty()) {
+ log.warn("浠诲姟ID锛歿}鐨刲ocNo涓虹┖锛岃烦杩囧簱浣嶆搷浣滐紙鍙兘鏄粠绔欑偣鍏ュ簱鐨勪换鍔★級", wrkMast.getId());
+ // 鏇存柊浠诲姟鐘舵�佷负5锛堝簱瀛樻洿鏂板畬鎴愶級
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(new Date());
+ if (!taskService.updateById(wrkMast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+
LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
if (Objects.isNull(locCache)) {
- throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
+ // 濡傛灉鏌ヨ涓嶅埌搴撲綅锛屽彲鑳芥槸locNo鏄珯鐐瑰彿鑰屼笉鏄簱浣嶅彿
+ // 妫�鏌asDevp琛ㄤ腑鏄惁瀛樺湪璇ョ珯鐐�
+ try {
+ Integer siteNo = Integer.parseInt(wrkMast.getLocNo());
+ List<BasDevp> basDevpList = basDevpMapper.selectList(new EntityWrapper<BasDevp>().eq("dev_no", siteNo));
+ if (basDevpList != null && !basDevpList.isEmpty()) {
+ // locNo鏄珯鐐瑰彿锛岃繖鏄粠绔欑偣鍏ュ簱鐨勪换鍔★紝涓嶉渶瑕佸鐞嗗簱浣嶆槑缁�
+ log.info("浠诲姟ID锛歿}鐨刲ocNo鏄珯鐐瑰彿锛歿}锛岃烦杩囧簱浣嶆搷浣滐紙浠庣珯鐐瑰叆搴撲换鍔★級", wrkMast.getId(), wrkMast.getLocNo());
+ // 鏇存柊浠诲姟鐘舵�佷负5锛堝簱瀛樻洿鏂板畬鎴愶級
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(new Date());
+ if (!taskService.updateById(wrkMast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+ } catch (NumberFormatException e) {
+ // locNo涓嶆槸鏁板瓧锛屽彲鑳芥槸搴撲綅鍙锋牸寮忛敊璇�
+ log.warn("浠诲姟ID锛歿}鐨刲ocNo锛歿}涓嶆槸鏈夋晥鐨勬暟瀛楁牸寮�", wrkMast.getId(), wrkMast.getLocNo());
+ }
+ // 鏃笉鏄簱浣嶄篃涓嶆槸绔欑偣锛屾姏鍑哄紓甯�
+ throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒浠诲姟ID锛�" + wrkMast.getId() + "锛宭ocNo锛�" + wrkMast.getLocNo());
}
if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_S.type)) {
throw new CoolException("褰撳墠搴撲綅鐘舵�佷负锛�" + LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc + "锛屼笉鏄嚭搴撻绾︾姸鎬�");
@@ -1058,14 +1280,32 @@
}
});
- locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
+ // 鏍规嵁fullPlt璁剧疆搴撲綅鐘舵�侊細婊℃墭璁剧疆涓�"F"锛堝湪搴擄級锛岀┖鎵樿缃负"D"锛堢┖妗�/绌烘爤鏉匡級
+ boolean isFullPlt = wrkMast.getFullPlt() != null && wrkMast.getFullPlt().equals("Y");
+ locCache.setLocSts(isFullPlt ? LocStsType.LOC_STS_TYPE_F.type : LocStsType.LOC_STS_TYPE_D.type);
+ locCache.setFullPlt(isFullPlt ? "Y" : "N");
locCache.setModiTime(new Date());
locCache.setBarcode(wrkMast.getBarcode());
- locCache.setModiTime(new Date());
locCache.setIoTime(new Date());
if (!locCacheService.updateById(locCache)) {
throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
}
+ } else if (ioType == 10 || ioType == 53 || ioType == 57) {
+ // 绌烘墭鍏ュ簱鎴栧叾浠栧叆搴撶被鍨嬶紝涔熼渶瑕佹洿鏂扮紦瀛樺簱浣嶇姸鎬�
+ LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
+ if (locCache != null) {
+ // 鏍规嵁fullPlt璁剧疆搴撲綅鐘舵�侊細婊℃墭璁剧疆涓�"F"锛堝湪搴擄級锛岀┖鎵樿缃负"D"锛堢┖妗�/绌烘爤鏉匡級
+ // ioType == 10 鏄┖鎵樺叆搴擄紝榛樿璁剧疆涓�"D"
+ boolean isFullPlt = (ioType != 10) && (wrkMast.getFullPlt() != null && wrkMast.getFullPlt().equals("Y"));
+ locCache.setLocSts(isFullPlt ? LocStsType.LOC_STS_TYPE_F.type : LocStsType.LOC_STS_TYPE_D.type);
+ locCache.setFullPlt(isFullPlt ? "Y" : "N");
+ locCache.setModiTime(new Date());
+ locCache.setBarcode(wrkMast.getBarcode());
+ locCache.setIoTime(new Date());
+ if (!locCacheService.updateById(locCache)) {
+ throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
+ }
+ }
}
// 鏇存柊浠诲姟鐘舵�佷负5锛堝簱瀛樻洿鏂板畬鎴愶級
--
Gitblit v1.9.1