From 88d29e7c87259e12cba5d8e93235d7f4005fe1a2 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 07 二月 2026 15:01:00 +0800
Subject: [PATCH] no message
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 168 +++++++++++++++++++++++++++++++++++---------------------
1 files changed, 105 insertions(+), 63 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 2943288..0d66579 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -29,6 +29,9 @@
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import com.zy.system.service.impl.ConfigServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -131,6 +134,10 @@
private StationRelaService stationRelaService;
@Autowired
private BasStationDetlService basStationDetlService;
+ @Autowired
+ private WorkService workService;
+ @Autowired
+ private ConfigService configService;
@Override
@Transactional
@@ -589,9 +596,6 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void comb(CombParam param, Long userId) {
-// if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
-// throw new CoolException(BaseRes.PARAM);
-// }
if (Objects.isNull(param.getBarcode())) {
throw new CoolException(BaseRes.PARAM);
}
@@ -627,7 +631,8 @@
Date now = new Date();
// 鏃犲崟缁勬墭
if (Cools.isEmpty(param.getOrderNo())) {
- if (param.getPakinType().equals("3")) {
+ //绌烘澘缁勬墭
+ if (!Cools.isEmpty(param.getPakinType()) && param.getPakinType().equals("3")) {
WaitPakin waitPakin = new WaitPakin();
waitPakin.setZpallet(param.getBarcode());
waitPakin.setIoStatus("N");
@@ -1207,15 +1212,15 @@
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(locDetl.getLocNo());
// 鑾峰彇璺緞
- Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", ioType)
- .eq("stn_no", staNo.getDevNo())
- .eq("crn_no", locMast.getCrnNo());
-
- StaDesc staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
- }
+// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+// .eq("type_no", ioType)
+// .eq("stn_no", staNo.getDevNo())
+// .eq("crn_no", locMast.getCrnNo());
+//
+// StaDesc staDesc = staDescService.selectOne(wrapper);
+// if (Cools.isEmpty(staDesc)) {
+// throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+// }
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(2);
// 鐢熸垚宸ヤ綔妗�
@@ -1226,8 +1231,8 @@
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
- wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
+// wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
+// wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
wrkMast.setSourceLocNo(locDetl.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -1330,18 +1335,12 @@
if (Objects.isNull(params)) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- if (Objects.isNull(params.getOrderNo())) {
- throw new CoolException("鍗曞彿涓嶈兘涓虹┖锛侊紒");
- }
- OrderPakin orderPakin = orderPakinService
- .selectOne(new EntityWrapper<OrderPakin>().eq("order_no", params.getOrderNo()));
- if (Objects.isNull(orderPakin)) {
- throw new CoolException("鏁版嵁閿欒锛氬崟鎹笉瀛樺湪锛侊紒");
- }
+
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())
- .eq("order_id", orderPakin.getId()));
+// .eq(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
+// .eq(!Cools.isEmpty(params.getOrderNo()), "order_no", params.getOrderNo())
+ );
if (Objects.isNull(detlPakins) || detlPakins.isEmpty()) {
throw new CoolException("鏁版嵁閿欒锛� 鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
}
@@ -1380,7 +1379,8 @@
.eq("area_id", basAreas.getId())
.eq("loc_no", locCache.getLocNo()));
if (Objects.isNull(locDetls) || locDetls.isEmpty()) {
- throw new CoolException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�");
+ continue;
+// throw new CoolException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�");
}
Set<String> set = locDetls.stream().map(LocDetl::getMatnr).collect(Collectors.toSet());
@@ -1808,31 +1808,49 @@
whsType = 2;
}
- log.info("WCS浠诲姟鐢熸垚璇锋眰鍙傛暟锛歿}", JSONObject.toJSONString(param));
+ WrkMast barcode = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+ if (!Objects.isNull(barcode) && (barcode.getIoType() == 104 || barcode.getIoType() == 103 || barcode.getIoType() == 107) && barcode.getWrkSts() == 14L) {
+ //
+ workService.pickWrkMast(barcode.getWrkNo() + "", userId);
- BasDevp station = basDevpService.selectOne(new EntityWrapper<BasDevp>()
- .eq("dev_no", param.getSourceStaNo()));
- if (Objects.isNull(station)) {
- throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
+ Map<String, Object> response = new HashMap<>();
+ response.put("taskNo", barcode.getWrkNo());
+ response.put("locNo", barcode.getLocNo());
+ response.put("taskPri", barcode.getIoPri());
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛").add(response);
+ } else {
+ log.info("WCS浠诲姟鐢熸垚璇锋眰鍙傛暟锛歿}", JSONObject.toJSONString(param));
+
+ BasDevp station = basDevpService.selectOne(new EntityWrapper<BasDevp>()
+ .eq("dev_no", param.getSourceStaNo()));
+ if (Objects.isNull(station)) {
+ throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
+ }
+ Map<String, Object> response = new HashMap<>();
+
+ if (Objects.isNull(barcode)) {
+ List<WaitPakin> waitPakins = waitPakinService
+ .selectList(new EntityWrapper<WaitPakin>()
+ .eq("io_status", "N")
+ .eq("zpallet", param.getBarcode()));
+ if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) {
+ throw new CoolException("鏁版嵁閿欒,缁勬嫋妗e凡涓嶅瓨鍦�!!");
+ }
+
+ WrkMast wrkMast = generateCrnInTask(waitPakins, whsType, station, param.getLocType1(), userId);
+
+ response.put("taskNo", wrkMast.getWrkNo());
+ response.put("locNo", wrkMast.getLocNo());
+ response.put("taskPri", wrkMast.getIoPri());
+ } else {
+ response.put("taskNo", barcode.getWrkNo());
+ response.put("locNo", barcode.getLocNo());
+ response.put("taskPri", barcode.getIoPri());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛").add(response);
}
-
- List<WaitPakin> waitPakins = waitPakinService
- .selectList(new EntityWrapper<WaitPakin>()
- .eq("io_status", "N")
- .eq("zpallet", param.getBarcode()));
- if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) {
- throw new CoolException("鏁版嵁閿欒,缁勬嫋妗e凡涓嶅瓨鍦�!!");
- }
-
- WrkMast wrkMast = generateCrnInTask(waitPakins,whsType, station, param.getLocType1(), userId);
-
- Map<String, Object> response = new HashMap<>();
- response.put("taskNo", wrkMast.getWrkNo());
- response.put("locNo", wrkMast.getLocNo());
- response.put("taskPri", wrkMast.getIoPri());
-
- return R.ok("浠诲姟鐢熸垚鎴愬姛").add(response);
-
}
/**
@@ -2029,7 +2047,7 @@
}
} else {
- StartupDto dto = commonService.getLocNo(1, sourceStaNo.getDevNo(), whsType, findLocNoAttributeVo, locTypeDto);
+ StartupDto dto = commonService.getLocNo(1, sourceStaNo.getDevNo(), whsType, findLocNoAttributeVo, locTypeDto);
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -2091,13 +2109,11 @@
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
} else {
- wrkMast.setWrkSts(1L);
+ wrkMast.setWrkSts(2L);
wrkMast.setIoType(10);
-
wrkMastService.updateById(wrkMast);
}
});
-
// 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
@@ -2230,11 +2246,9 @@
});
});
- // 鍒ゆ柇鏍规嵁鍒嗘嫞鍑哄簱鍚�,杩橀渶瑕佸嚭澶氬皯鎵樼洏鎴栨枡绠�;濡傛灉浣欐枡澶т簬0, 鍑烘柊鎵樼洏鎴栨枡绠�
- if (totalOut.get().compareTo(0.0) > 0) {
- generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
- //TODO 缁嗗寲鍖哄垎锛屽綋鍓嶅嚭搴撴墭鐩樻槸婊¤冻鎷h揣鏁伴噺
- } else {
+ /**鏄惁浼樺厛绌烘澘鍑哄簱*/
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "OutStockOrderByEmpty"));
+ if (!Objects.isNull(config) && Boolean.parseBoolean(config.getValue())) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
// todo 鏍规嵁鐗╂枡绉嶇被,鍖哄垎搴撳尯绫诲瀷
.eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
@@ -2244,12 +2258,32 @@
if (Objects.isNull(locMast)) {
throw new CoolException("鏈煡璇㈠埌鍙敤鐨勭┖鏉夸俊鎭紒锛�");
}
-
CrnTaskDetlDTO crnTaskDetlDTO = new CrnTaskDetlDTO().setLocNo(locMast.getLocNo()).setLocDetlList(locDetls);
locMasts.add(crnTaskDetlDTO);
// 绌烘澘鍑哄簱
generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
+ } else {
+ // 鍒ゆ柇鏍规嵁鍒嗘嫞鍑哄簱鍚�,杩橀渶瑕佸嚭澶氬皯鎵樼洏鎴栨枡绠�;濡傛灉浣欐枡澶т簬0, 鍑烘柊鎵樼洏鎴栨枡绠�
+ if (totalOut.get().compareTo(0.0) > 0) {
+ generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
+ //TODO 缁嗗寲鍖哄垎锛屽綋鍓嶅嚭搴撴墭鐩樻槸婊¤冻鎷h揣鏁伴噺
+ } else {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ // todo 鏍规嵁鐗╂枡绉嶇被,鍖哄垎搴撳尯绫诲瀷
+ .eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
+ .orderAsc(Arrays.asList("row1", "bay1", "lev1"))
+ .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+
+ if (Objects.isNull(locMast)) {
+ throw new CoolException("鏈煡璇㈠埌鍙敤鐨勭┖鏉夸俊鎭紒锛�");
+ }
+ CrnTaskDetlDTO crnTaskDetlDTO = new CrnTaskDetlDTO().setLocNo(locMast.getLocNo()).setLocDetlList(locDetls);
+ locMasts.add(crnTaskDetlDTO);
+
+ // 绌烘澘鍑哄簱
+ generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
+ }
}
}
@@ -2631,7 +2665,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
public R taskMove(CompleteParam combParam, long userId) {
- if (Objects.isNull(combParam.getWorkNo())) {
+ if (Objects.isNull(combParam.getTaskNo())) {
return R.error("浠诲姟鍙蜂笉鑳戒负绌�");
}
if (Objects.isNull(combParam.getSourceLocNo())) {
@@ -2640,25 +2674,32 @@
if (Objects.isNull(combParam.getLocNo())) {
return R.error("鐩爣搴撲綅涓嶈兘涓虹┖锛�");
}
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", combParam.getWorkNo()));
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", combParam.getTaskNo()));
if (Objects.isNull(wrkMast)) {
return R.error("浠诲姟妗d笉瀛樺湪锛侊紒");
}
+
+
String body = JSON.toJSONString(combParam);
boolean success = false;
String response = "";
try {
response = new HttpHandler.Builder()
- .setUri(HIKApiConstant.AGV_IP)
+ .setUri(MesConstant.WCS_URL)
.setPath(MesConstant.MOVE_LOC_TASK)
.setJson(body)
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
- wrkMast.setWrkSts(12L);
+ wrkMast.setWrkSts(2L);
if (!wrkMastService.updateById(wrkMast)) {
throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+ }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+ if (!Objects.isNull(locMast)) {
+ locMast.setMoveStatus(1);
+ locMastService.updateById(locMast);
}
success = true;
} else {
@@ -2687,6 +2728,7 @@
/**
* 6.15WCS鐢宠鍦ㄥ簱搴撲綅鏇存崲搴撲綅
+ *
* @param combParam
* @param l
* @return
--
Gitblit v1.9.1