From ab14726215678ac69adfeafbd845ebc5b0776ea2 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 14 一月 2025 14:56:41 +0800
Subject: [PATCH] 优化订单同步逻辑及库位查找
---
src/main/java/com/zy/asrs/controller/AgvMobileController.java | 53 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 44 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index b0112aa..5795120 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -11,6 +11,8 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.OrderServiceImpl;
+import com.zy.asrs.utils.OrderUtils;
import com.zy.common.web.BaseController;
import lombok.Synchronized;
import org.slf4j.Logger;
@@ -55,6 +57,8 @@
private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
private FlowLogService flowLogService;
+ @Autowired
+ private OrderServiceImpl orderService;
/*
@@ -137,8 +141,11 @@
params.getCombParams().forEach(combParam -> {
agvMobileService.comb(combParam, getUserId());
});
+ //鑾峰彇鍒ゆ柇鏃跺摢涓巶鐨勮鍗�
+ String csocode = params.getCombParams().get(0).getCombMats().get(0).getCsocode();
+ String factory = OrderUtils.getFactory(csocode);
params.setContainerType(Short.valueOf(params.getContainerCode().substring(0, 2)));
- workService.emptyPlateIn(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false);
+ workService.emptyPlateIn(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false,factory);
return R.ok("鐢熸垚宸ヤ綔妗f垚鍔�");
}
@@ -153,7 +160,7 @@
for (AgvMobileStartParam.Pda pda : params.getPad()) {
pda.setContainerType(Short.valueOf(pda.getContainerCode().substring(0, 2)));
- workService.emptyPlateIn(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false);
+ workService.emptyPlateIn(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false,null);
}
return R.ok();
@@ -406,6 +413,9 @@
agvLocMastByContainerCode.setBarcode(barcode1);
agvLocMastService.updateById(agvLocMastByContainerCode);
}
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+
return R.ok("缁存姢鎴愬姛");
}
@@ -505,6 +515,9 @@
for (AgvLocDetl agvLocDetl : agvLocDetls) {
// 鏇存柊璁㈠崟
OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
+ if (orderDetl == null) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+ }
orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr());
@@ -525,6 +538,7 @@
List<HashMap<String, String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
params.get("dbList");
Object mT = params.get("moveType");
+ String orderNo = params.get("orderNo").toString();
String moveType = "";
Integer ioType = 0;
if (mT.equals("unAuto")) {
@@ -559,6 +573,7 @@
wrkDetl.setWrkNo(wrkMast.getWrkNo());
wrkDetl.sync(agvLocDetl);
wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+ wrkDetl.setModel(orderNo);
wrkDetl.setIoTime(now);
wrkDetl.setAppeUser(getUserId());
wrkDetl.setAppeTime(now);
@@ -567,10 +582,13 @@
if (!agvWrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
-
// 鏇存柊璁㈠崟
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
-// FlowLog flowLog = new FlowLog();
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
+ // 鍒ゆ柇璁㈠崟鏄惁瓒呴噺
+ if (orderDetl.getQty() >= orderDetl.getAnfme()) {
+ throw new CoolException("璋冩嫧鍗�:" + orderNo + "鐨�<" + agvLocDetl.getMatnr() + ">宸插畬鎴愯皟鎷ㄦ暟閲�,璇锋鏌�!");
+ }
+ // FlowLog flowLog = new FlowLog();
// flowLog.setFid(String.valueOf(flowId));
// flowLog.setSpare2(wrkMast.getWrkNo().toString());
// flowLog.setLocNo(wrkMast.getSourceLocNo());
@@ -597,8 +615,16 @@
// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
// }
orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
- if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
- throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr());
+ if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
+ throw new CoolException("璁㈠崟鍙凤細{" + orderNo + "}鏇存柊璁㈠崟鏄庣粏澶辫触锛� 寮傚父鐗╂枡:" + agvLocDetl.getMatnr() + "(鍗婃垚鍝佽皟鎷ㄥ崟浠诲姟)");
+ }
+ // 鏇存柊璁㈠崟鐘舵��
+ Order order = orderService.selectByNo(orderDetl.getOrderNo());
+ Long settle = order.getSettle();
+ if (settle == 1L) {
+ if (!orderService.updateSettle(order.getId(), 2L, getUserId())) {
+ throw new CoolException("璁㈠崟鍙凤細{" + order.getOrderNo() + "}鏇存柊璁㈠崟鐘舵�侊細1-->2 澶辫触锛�(鍗婃垚鍝佽皟鎷ㄥ崟浠诲姟)");
+ }
}
}
// 鏇存柊婧愬簱浣�
@@ -617,6 +643,7 @@
Date now = new Date();
List<HashMap<String, String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
params.get("dbList");
+ String orderNo = params.get("orderNo").toString();
for (HashMap<String, String> map : dbList) {
String locNo = map.get("locNo");
String barcode = map.get("suppCode");
@@ -647,11 +674,19 @@
// 鏇存柊璁㈠崟
// 鍏堟煡璇㈠簱璁㈠崟鏄庣粏 鎵�灞炵殑璁㈠崟
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source", 36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()));
orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
- if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("source", 36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
+ if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("source", 17).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) {
throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr());
}
+ // 鏇存柊璁㈠崟鐘舵��
+ Order order = orderService.selectByNo(orderNo);
+ Long settle = order.getSettle();
+ if (settle == 1L) {
+ if (!orderService.updateSettle(order.getId(), 2L, getUserId())) {
+ throw new CoolException("璁㈠崟鍙凤細{" + order.getOrderNo() + "}鏇存柊璁㈠崟鐘舵�侊細1-->2 澶辫触锛�(鍗婃垚鍝佽皟鎷ㄥ崟浠诲姟)");
+ }
+ }
}
// 鏇存柊婧愬簱浣�
AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo));
--
Gitblit v1.9.1