From c9944fa15889ef97236960fcc9370a582cd86267 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 17 三月 2026 14:37:34 +0800
Subject: [PATCH] 1.wcs下发出库任务方式需更改,先采集数据再一次性下发:下发组batch和序号batch_seq 2.库位分配逻辑需优化,目前分配单个巷道 3.
---
src/main/java/com/zy/asrs/controller/OpenController.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 47 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 19c03a1..deba829 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -14,10 +14,11 @@
import com.zy.asrs.service.OpenService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.service.WrkDetlService;
+import com.zy.asrs.service.WrkMastLogService;
+import com.zy.asrs.service.WrkMastService;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocDetlDto;
import com.zy.common.model.enums.WorkNoType;
-import com.zy.common.utils.Synchro;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +51,10 @@
private WaitPakinService waitPakinService;
@Autowired
private WrkDetlService wrkDetlService;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
// @PostMapping("/order/matSync/default/v1")
//// @AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛")
@@ -425,7 +430,8 @@
*/
@PostMapping("/comb/auth")
public synchronized R comb(@RequestBody ArrayList<MesToCombParam> param){
- List<MesToCombReturnParam> errorComb = Lists.newArrayList();
+ List<MesToCombParam> errorComb = Lists.newArrayList();
+ List<MesToCombParam> validComb = Lists.newArrayList();
for (MesToCombParam mesToCombParam : param) {
// if (mesToCombParam.getPalletId().length() != 8) {
// return R.error(mesToCombParam.getPalletId()+"-璇ユ墭鐩樼爜涓嶄负8浣�");
@@ -438,18 +444,18 @@
int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", mesToCombParam.getPalletId()));
// int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getPalletId()));
if (countLoc > 0 || countWrk > 0) {
- MesToCombReturnParam mesToCombReturnParam = new MesToCombReturnParam();
- Synchro.Copy(mesToCombParam, mesToCombReturnParam);
- errorComb.add(mesToCombReturnParam);
+ errorComb.add(mesToCombParam);
// return R.error(mesToCombParam.getPalletId()+"-宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�");
+ continue;
}
// 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
eq("zpallet", mesToCombParam.getPalletId()).eq("io_status", "N")) > 0) {
waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", mesToCombParam.getPalletId()));
}
+ validComb.add(mesToCombParam);
}
- for (MesToCombParam mesToCombParam : param) {
+ for (MesToCombParam mesToCombParam : validComb) {
openService.mesToComb(mesToCombParam);
}
// TODO:寰呮祴璇�
@@ -466,20 +472,48 @@
@PostMapping("/outOrder")
public synchronized R outOrder (@RequestBody ArrayList<OutTaskParam> params){
- List<OutTaskReturnParam> errorOutOrders = Lists.newArrayList();
+ if (Cools.isEmpty(params)) {
+ return R.error("璇锋眰鍙傛暟涓嶈兘涓虹┖");
+ }
+ Set<String> orderIds = new LinkedHashSet<>();
+ for (OutTaskParam outTaskParam : params) {
+ if (Cools.isEmpty(outTaskParam) || Cools.isEmpty(outTaskParam.getOrderId())) {
+ return R.error("鍑哄簱鍗曞彿涓嶈兘涓虹┖");
+ }
+ orderIds.add(outTaskParam.getOrderId());
+ }
+ if (!orderIds.isEmpty()) {
+ Set<String> existedOrderIds = new LinkedHashSet<>();
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("user_no", orderIds));
+ for (WrkMast wrkMast : wrkMasts) {
+ if (!Cools.isEmpty(wrkMast.getUserNo())) {
+ existedOrderIds.add(wrkMast.getUserNo());
+ }
+ }
+ List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().in("user_no", orderIds));
+ for (WrkMastLog wrkMastLog : wrkMastLogs) {
+ if (!Cools.isEmpty(wrkMastLog.getUserNo())) {
+ existedOrderIds.add(wrkMastLog.getUserNo());
+ }
+ }
+ if (!existedOrderIds.isEmpty()) {
+ return R.error("鍑哄簱鍗曞彿宸插瓨鍦ㄤ换鍔℃。鎴栦换鍔″巻鍙叉。锛�" + String.join("锛�", existedOrderIds));
+ }
+ }
+
+ List<OutTaskParam> errorOutOrders = Lists.newArrayList();
+ List<OutTaskParam> validOutOrders = Lists.newArrayList();
for (OutTaskParam outTaskParam : params) {
// TODO:寰呮脯瑭︼紝鏍¢搴瓨淇℃伅锛屼笉瀛樺湪鍓囪繑鍥�
int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", outTaskParam.getPalletId()));
if (countLoc == 0){
- OutTaskReturnParam outTaskReturnParam = new OutTaskReturnParam();
- Synchro.Copy(outTaskParam, outTaskReturnParam);
- errorOutOrders.add(outTaskReturnParam);
-
- params.remove(outTaskParam);
+ errorOutOrders.add(outTaskParam);
+ continue;
}
+ validOutOrders.add(outTaskParam);
}
- for (OutTaskParam outTaskParam : params) {
+ for (OutTaskParam outTaskParam : validOutOrders) {
R r = openService.outOrder(outTaskParam);
if (!r.get("code").equals(200)){
return r;
--
Gitblit v1.9.1