From 34aa40fffdda9155e77a7991ca8c7691102bb0b8 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期日, 26 四月 2026 11:29:05 +0800
Subject: [PATCH] no message
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 210 +++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 158 insertions(+), 52 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 33137f2..3af2321 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1312,7 +1312,7 @@
*/
@Override
@Transactional
- public synchronized R callAgvMove(AgvCallParams params, Long userId) {
+ public R callAgvMove(AgvCallParams params, Long userId) {
if (Objects.isNull(params.getOrgSite())) {
throw new CoolException("婧愮珯鐐逛笉鑳戒负绌猴紒锛�");
}
@@ -1389,7 +1389,7 @@
if (Objects.isNull(params)) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
-
+ log.info("缂撳瓨鍖虹粍鎵樺弬鏁�---{}", JSONObject.toJSONString(params));
List<OrderDetlPakin> detlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
.eq(!Cools.isEmpty(params.getThreeCode()), "three_code", params.getThreeCode())
// .eq(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
@@ -1398,7 +1398,7 @@
if (Objects.isNull(detlPakins) || detlPakins.isEmpty()) {
throw new CoolException("鏁版嵁閿欒锛� 鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
}
-
+// log.info("缂撳瓨鍖哄搷搴旂粨鏋�---{}", JSONObject.toJSONString(detlPakins));
return R.ok().add(detlPakins);
}
@@ -1410,7 +1410,7 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R OutCallAgv(AgvCallParams params, Long userId) {
+ public R OutCallAgv(AgvCallParams params, Long userId) {
BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_IN_CACHE.type));
if (Objects.isNull(basAreas)) {
throw new CoolException("搴撳尯涓嶅瓨鍦紒锛�");
@@ -1444,7 +1444,8 @@
}
Set<Long> longs = matList.stream().map(Mat::getTagId).collect(Collectors.toSet());
if (!longs.isEmpty() && longs.size() > 1) {
- throw new CoolException("鐗╂枡绫诲瀷涓嶄竴鑷�,璇锋鏌ユ暟鎹槸鍚︽纭�!!");
+ continue;
+// throw new CoolException("搴撲綅锛�" + locCache.getLocNo() + ",鍙拌溅锛�" + locCache.getBarcode() + "鐗╂枡绫诲瀷涓嶄竴鑷�,璇锋鏌ユ暟鎹槸鍚︽纭�!!");
}
Mat mat = matList.stream().findFirst().get();
@@ -1641,7 +1642,7 @@
* @date 2025/12/8 15:37
*/
@Override
- public R combCacehList(AgvCallParams params) {
+ public R combCacehList(AgvCallParams params) {
if (Objects.isNull(params.getCarBarcode())) {
throw new CoolException("鍙拌溅鎵樼洏鐮佷笉鑳戒负绌猴紒锛�");
}
@@ -2073,7 +2074,42 @@
mast.setWrkSts(2L);
mast.setSourceStaNo(mast.getSourceStaNo());
mast.setStaNo(mast.getSourceStaNo());
- mast.setLocNo(mast.getSourceLocNo());
+ //TODO 鐩樼偣鍑哄簱涓嶉�傜敤鍘熷簱浣�
+ if (wrkMast.getIoType().equals(TaskIOType.CHECK_OUT.type)) {
+ Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>()
+ .eq("whs_type", whsType)
+ .eq("loc_type1", locType)
+ .notIn("row1", Arrays.asList(11, 14))
+ .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type);
+ List<String> strings = wrkDetls103.stream().map(WrkDetl::getMatnr).collect(Collectors.toList());
+ List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", strings));
+ List<Mat> matList = mats.stream().sorted(Comparator.comparing(Mat::getRank, Comparator.nullsLast(String::compareTo))).collect(Collectors.toList());
+ Mat mat = matList.stream().findFirst().get();
+ if (mat.getRank().compareTo("D") >= 0) {
+ wrapper.orderDesc(Arrays.asList("bay1", "lev1"));
+ } else {
+ wrapper.orderAsc(Arrays.asList("bay1", "lev1"));
+ }
+// if (matList.stream().findFirst()) {
+// //.sorted(Comparator.comparing(Person::getName,
+// // Comparator.nullsLast(String::compareTo))) // null 鏀惧湪鏈�鍚�
+// //// 鎴� nullsFirst 鏀惧湪鏈�鍓�
+// Integer rank = max.get().getRank();
+// if (rank > MesConstant.maxRank) {
+// wrapper.
+// }
+// }
+// wrapper.orderAsc(Arrays.asList("bay1", "lev1"));
+ LocMast mast1 = locMastService.selectOne(wrapper);
+ if (Objects.isNull(mast1)) {
+ mast.setLocNo(mast.getSourceLocNo());
+ } else {
+ mast.setLocNo(mast1.getLocNo());
+ }
+ } else {
+ mast.setLocNo(mast.getSourceLocNo());
+ }
+
boolean res = wrkMastService.updateById(mast);
BeanUtils.copyProperties(mast, wrkMast);
if (!res) {
@@ -2183,6 +2219,29 @@
}
return wrkMast;
+ }
+
+ private LocMast getLocMast(LocMast locMast, List<String> locs) {
+ String shallowLoc = Utils.getShallowLoc(locMast.getLocNo(), Arrays.asList(1, 4));
+ if (Objects.isNull(shallowLoc)) {
+ throw new CoolException(locMast.getLocNo() + ",娣卞簱浣嶅搴旀祬搴撲綅" + shallowLoc + "涓嶅瓨鍦紝璇疯仈绯荤鐞嗗憳锛侊紒");
+ }
+
+ LocMast locNo1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
+ if (Objects.isNull(locNo1) || !locNo1.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+ locs.add(locMast.getLocNo());
+ locMast = locMastService.
+ selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+ .notIn(!locs.isEmpty(), "loc_no", locs)
+ .orderDesc(Arrays.asList("gro1"))
+ .orderAsc(Arrays.asList("row1", "bay1", "lev1"))
+ );
+
+ getLocMast(locMast, locs);
+ }
+
+ return locMast;
}
/**
@@ -2388,12 +2447,11 @@
.orderAsc(Arrays.asList("row1", "bay1", "lev1"))
.last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
- if (Objects.isNull(locMast)) {
- throw new CoolException("鏈煡璇㈠埌鍙敤鐨勭┖鏉夸俊鎭紒锛�");
+ if (!Objects.isNull(locMast)) {
+ CrnTaskDetlDTO crnTaskDetlDTO = new CrnTaskDetlDTO().setLocNo(locMast.getLocNo()).setLocDetlList(new ArrayList<>());
+ locMasts.add(crnTaskDetlDTO);
+// throw new CoolException("鏈煡璇㈠埌鍙敤鐨勭┖鏉夸俊鎭紒锛�");
}
- CrnTaskDetlDTO crnTaskDetlDTO = new CrnTaskDetlDTO().setLocNo(locMast.getLocNo()).setLocDetlList(new ArrayList<>());
- locMasts.add(crnTaskDetlDTO);
-
// 绌烘澘鍑哄簱
generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
}
@@ -2483,7 +2541,10 @@
throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locMast.getLocNo());
}
} else {
- throw new CoolException(locMast.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_loc_no", locMast.getLocNo()));
+ if (!Objects.isNull(wrkMast) && wrkMast.getIoType() != 104) {
+ throw new CoolException(locMast.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
}
}
}
@@ -2581,7 +2642,9 @@
*/
@Transactional(rollbackFor = Exception.class)
public void generateAgvTask(String type, LocCache loc, String orgSite, String barcode, Long userId, String isNewIn) {
- List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", barcode));
+ List<Task> tasks = taskService.selectList(new EntityWrapper<Task>()
+ .eq("source_sta_no", orgSite)
+ .eq("barcode", barcode));
if (!tasks.isEmpty()) {
throw new CoolException("鎵樼洏宸插湪浠诲姟鎵ц涓�..");
}
@@ -2948,7 +3011,10 @@
taskDetls.forEach(taskDetl -> {
OrderPakout orderDetlPakout = orderPakoutService.selectOne(new EntityWrapper<OrderPakout>()
.eq("order_no", taskDetl.getOrderNo()));
- taskDetl.setMemo(orderDetlPakout.getShipCode());
+ if (!Objects.isNull(orderDetlPakout)) {
+ taskDetl.setMemo(!Cools.isEmpty(orderDetlPakout.getShipCode()) ? orderDetlPakout.getShipCode() : "0" );
+ }
+
});
return R.ok("鏌ヨ鎴愬姛").add(taskDetls);
@@ -2990,34 +3056,69 @@
.eq("doc_type", 5)
.eq("number", locDetl.getOrderNo()));
if (Objects.isNull(orderPakouts) || orderPakouts.isEmpty()) {
- throw new CoolException("鍗曟嵁淇℃伅涓嶅瓨鍦ㄦ垨宸蹭笂鎶ュ畬鎴愶紒锛�");
- }
- for (OrderPakout orderPakout : orderPakouts) {
- OrderDetlPakout orderDetl = orderDetlPakoutService.selectOne(new EntityWrapper<OrderDetlPakout>()
- .eq("matnr", locDetl.getMatnr())
- .eq("supp_code", locDetl.getSuppCode())
- .eq("order_no", orderPakout.getOrderNo()));
- if (Objects.isNull(orderDetl)) {
- continue;
+ List<OrderPakin> orderPakins = orderPakinService.selectList(new EntityWrapper<OrderPakin>()
+ .eq("doc_type", 7)
+ .eq("order_no", locDetl.getOrderNo()));
+ if (Objects.isNull(orderPakins) || orderPakins.isEmpty()) {
+ throw new CoolException("鍗曟嵁淇℃伅涓嶅瓨鍦ㄦ垨宸蹭笂鎶ュ畬鎴愶紒锛�");
}
- locDetl.setMemo(orderPakout.getShipCode());
- locDetl.setOrderNo(orderPakout.getOrderNo());
+ for (OrderPakin orderPakout : orderPakins) {
+ OrderDetlPakin orderDetl = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
+ .eq("matnr", locDetl.getMatnr())
+ .eq("supp_code", locDetl.getSuppCode())
+ .eq("order_no", orderPakout.getOrderNo()));
+ if (Objects.isNull(orderDetl)) {
+ continue;
+ }
+ locDetl.setMemo(orderPakout.getShipCode());
+ locDetl.setOrderNo(orderPakout.getOrderNo());
+ LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), locDetl.getAnfme());
+ locDto.setFrozen(locDetl.getFrozen());
+ locDto.setFrozenLoc(locCache.getFrozen());
+ locDto.setAgvStaNo(params.getTarSite());
+ locDto.setBrand(orderDetl.getBrand());
+ locDto.setMatnr(orderDetl.getMatnr());
+ locDto.setMaktx(orderDetl.getMaktx());
+ locDto.setSuppCode(orderDetl.getSuppCode());
+ locDto.setStandby1(orderDetl.getStandby1());
+ locDto.setStandby2(orderDetl.getStandby2());
+ locDto.setStandby3(orderDetl.getStandby3());
+ locDto.setBoxType1(orderDetl.getBoxType1());
+ locDto.setBoxType2(orderDetl.getBoxType2());
+ locDto.setBoxType3(orderDetl.getBoxType3());
+ locDtos.add(locDto);
+ }
+ } else {
+ for (OrderPakout orderPakout : orderPakouts) {
+ OrderDetlPakout orderDetl = orderDetlPakoutService.selectOne(new EntityWrapper<OrderDetlPakout>()
+ .eq("matnr", locDetl.getMatnr())
+ .eq("supp_code", locDetl.getSuppCode())
+ .eq("order_no", orderPakout.getOrderNo()));
+ if (Objects.isNull(orderDetl)) {
+ continue;
+ }
+ locDetl.setMemo(orderPakout.getShipCode());
+ locDetl.setOrderNo(orderPakout.getOrderNo());
- LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), locDetl.getAnfme());
- locDto.setFrozen(locDetl.getFrozen());
- locDto.setFrozenLoc(locCache.getFrozen());
- locDto.setAgvStaNo(params.getTarSite());
- locDto.setBrand(orderDetl.getBrand());
- locDto.setSuppCode(orderDetl.getSuppCode());
- locDto.setStandby1(orderDetl.getStandby1());
- locDto.setStandby2(orderDetl.getStandby2());
- locDto.setStandby3(orderDetl.getStandby3());
- locDto.setBoxType1(orderDetl.getBoxType1());
- locDto.setBoxType2(orderDetl.getBoxType2());
- locDto.setBoxType3(orderDetl.getBoxType3());
- locDtos.add(locDto);
+ LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), locDetl.getAnfme());
+ locDto.setFrozen(locDetl.getFrozen());
+ locDto.setFrozenLoc(locCache.getFrozen());
+ locDto.setAgvStaNo(params.getTarSite());
+ locDto.setBrand(orderDetl.getBrand());
+ locDto.setMatnr(orderDetl.getMatnr());
+ locDto.setMaktx(orderDetl.getMaktx());
+ locDto.setSuppCode(orderDetl.getSuppCode());
+ locDto.setStandby1(orderDetl.getStandby1());
+ locDto.setStandby2(orderDetl.getStandby2());
+ locDto.setStandby3(orderDetl.getStandby3());
+ locDto.setBoxType1(orderDetl.getBoxType1());
+ locDto.setBoxType2(orderDetl.getBoxType2());
+ locDto.setBoxType3(orderDetl.getBoxType3());
+ locDtos.add(locDto);
+ }
}
+
// exist.add(locDetl.getLocNo());
});
@@ -3043,11 +3144,15 @@
// if (!Cools.isEmpty(params.getMatnr())) {
// return R.error("鐗╂枡淇℃伅涓嶈兘涓虹┖锛侊紒");
// }
- BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
- .eq("dev_no", params.getOrgSite())
- .eq("barcode", params.getCarBarcode()));
- if (Objects.isNull(station)) {
- LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("dev_no", params.getOrgSite()));
+// BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
+// .eq("dev_no", params.getOrgSite())
+// .eq("barcode", params.getCarBarcode()));
+ List<BasStationDetl> stationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>()
+ .eq(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
+ .eq(!Cools.isEmpty(params.getCarBarcode()),"zpallet", params.getCarBarcode())
+ .eq(!Cools.isEmpty(params.getOrgSite()),"dev_no", params.getOrgSite()));
+ if (Objects.isNull(stationDetls) || stationDetls.isEmpty()) {
+ LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", params.getOrgSite()));
if (!Objects.isNull(locCache)) {
BasAreas whsTypeId = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_IN_CACHE.type));
if (Objects.isNull(whsTypeId)) {
@@ -3055,15 +3160,15 @@
}
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
.eq("area_id", whsTypeId.getId())
- .eq("dev_no", params.getOrgSite()));
+ .eq("loc_no", params.getOrgSite()));
if (!locDetls.isEmpty()) {
return R.ok().add(locDetls);
}
}
} else {
- List<BasStationDetl> stationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>()
- .like(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
- .eq("dev_no", station.getDevNo()));
+// List<BasStationDetl> stationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>()
+// .like(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
+// .eq("dev_no", station.getDevNo()));
if (!stationDetls.isEmpty()) {
return R.ok().add(stationDetls);
}
@@ -3167,9 +3272,10 @@
public void generateAgvTaskByTc(List<LocDto> locDtos) {
List<LocDto> locDtoArrayList = new ArrayList<>();
for (LocDto locDto : locDtos) {
- if (locDto.getFrozen() != 1 && locDto.getFrozenLoc() != 1) {
- locDtoArrayList.add(locDto);
- }
+// if (locDto.getFrozen() != 1 && locDto.getFrozenLoc() != 1) {
+//
+// }
+ locDtoArrayList.add(locDto);
}
locDtos = locDtoArrayList;
if (Cools.isEmpty(locDtos)) {
@@ -3300,7 +3406,7 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R getEmptyOutStock(AgvCallParams params) {
+ public R getEmptyOutStock(AgvCallParams params) {
if (Objects.isNull(params.getOrgSite())) {
return R.error("鎵樼洏绫诲瀷涓嶈兘涓虹┖锛侊紒");
}
--
Gitblit v1.9.1