From 849409866c1372f5daf7becf9aec054922e260b2 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期五, 14 二月 2025 13:20:23 +0800
Subject: [PATCH] 兼容四期
---
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 96 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 89 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 21e2a1d..ececff1 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -4,6 +4,7 @@
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.exception.CoolException;
+import com.zy.asrs.constant.AsrsConstants;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
@@ -179,6 +180,7 @@
// 鏇存柊璁㈠崟
OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()));
orderDetl.setQty(orderDetl.getQty() + pick.getCount());
+ orderDetl.setUpdateTime(new Date());
if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()))) {
throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + pick.getOrderNo() + pick.getMatnr());
}
@@ -353,6 +355,10 @@
AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", stationCode));
+ if (agvBasDevp == null) {
+ throw new CoolException(stationCode + "绔欑偣淇℃伅閿欒");
+ }
+
if (Cools.eq(agvBasDevp.getBarcode(), barcode)) {
return;
}
@@ -367,9 +373,7 @@
throw new CoolException(barcode + "宸茬粡缁戝畾鍦�" + agvBasDevp.getDevNo() + "绔欑偣");
}
- if (agvBasDevp == null) {
- throw new CoolException(stationCode + "绔欑偣淇℃伅閿欒");
- }
+
if (!"O".equals(agvBasDevp.getLocSts())) {
throw new CoolException(stationCode + "璇ョ珯鐐硅揣浣嶇姸鎬侀潪绌�");
}
@@ -651,6 +655,9 @@
@Transactional
public String allocationIn(AgvMobileStartPakin param, Long userId) {
Date now = new Date();
+ if (Cools.isEmpty(param.getBarcode())) {
+ throw new CoolException("璇疯緭鍏ヨ揣鏋剁爜");
+ }
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()));
if (Cools.isEmpty(agvWrkMast)) {
throw new CoolException("鏆傛棤褰撳墠璐ф灦鐮佺殑浠诲姟");
@@ -728,6 +735,9 @@
@Synchronized
public String empIn(AgvMobileStartPakin param, Long userId) {
Date now = new Date();
+ if (Cools.isEmpty(param.getBarcode())) {
+ throw new CoolException("璇疯緭鍏ヨ揣鏋剁爜");
+ }
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()));
if (Cools.isEmpty(agvWrkMast)) {
throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
@@ -757,7 +767,7 @@
public String handBack(AgvMobileStartPakin param, Long userId) {
Date now = new Date();
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.getDevNo()));
- if (agvWrkMast == null){
+ if (agvWrkMast == null) {
throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
}
agvWrkMast.setIoType(113);
@@ -788,7 +798,8 @@
agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
String sourceLocNo = agvWrkMast.getSourceLocNo();
AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
- if (newLocMast==null){
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
+ if (newLocMast == null) {
throw new CoolException("鏃犲彲鐢ㄥ簱浣�");
}
agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo());
@@ -810,7 +821,6 @@
agvLocMastService.updateLocStsByLocNo(sourceLocNo, "O", "", (short) 30);
agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocNo));
- List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
agvWrkDetls.forEach(agvWrkDetl -> {
for (AgvWrkDetl wrkDetl : param.getWrkDetls()) {
if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) {
@@ -833,6 +843,77 @@
return "ok";
}
+ /*
+ * 纭鍔犲伐瀹屾垚
+ */
+ @Override
+ @Transactional
+ public String processedV2(AgvMobileStartPakin param, Long userId) {
+ Date now = new Date();
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()).eq("loc_no", param.getDevNo()));
+ if (Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("鏆傛棤褰撳墠璐ф灦鐨勫伐浣滄。");
+ }
+ if (agvWrkMast.getWrkSts() != 205) {
+ throw new CoolException("褰撳墠浠诲姟鏈畬鎴愶紝璇风‘璁�");
+ }
+ //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + 鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+ agvWrkMastLogService.save(agvWrkMast);
+ agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
+ String sourceLocNo = agvWrkMast.getSourceLocNo();
+ // TODO: 鍥涙湡
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
+ String factory = param.getFactory();
+ AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory);
+ if (newLocMast == null) {
+ throw new CoolException("鏃犲彲鐢ㄥ簱浣�");
+ }
+ agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo());
+ agvWrkMast.setLocNo(newLocMast.getLocNo());
+ agvWrkMast.setIoType(57);
+ agvWrkMast.setWrkSts(201L);
+ agvWrkMast.setModiUser(userId);
+ agvWrkMast.setModiTime(now);
+ agvWrkMast.setIoTime(now);
+ // 鎵撴爣璁帮紝鑻ュ簱浣嶄笉澶燂紝鍏ュ簱鍒板埆鐨勬ゼ灞傦紝閭d箞闇�瑕佽法灞傜Щ搴�
+ if (!Cools.isEmpty(factory)) {
+ if (newLocMast.getLev1() == 1 && !factory.equals(AsrsConstants.SANCHANG)) {
+ agvWrkMast.setCtnNo("1");
+ } else if (newLocMast.getLev1() == 2 && !factory.equals(AsrsConstants.ERCHANG)) {
+ agvWrkMast.setCtnNo("2");
+ }
+ }
+ if (!agvWrkMastService.update(agvWrkMast, new EntityWrapper<AgvWrkMast>().eq("wrk_no", agvWrkMast.getWrkNo()))) {
+ throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+ }
+
+ // 鏇存柊婧愮珯鐐� + 鐩爣搴撲綅鐘舵�� + 鍘嗗彶婧愬簱浣�
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(), "R", param.getBarcode(), agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(newLocMast.getLocNo(), "S", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(sourceLocNo, "O", "", (short) 30);
+ agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocNo));
+
+ agvWrkDetls.forEach(agvWrkDetl -> {
+ for (AgvWrkDetl wrkDetl : param.getWrkDetls()) {
+ if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) {
+ agvWrkDetl.setAnfme(wrkDetl.getAnfme());
+ break;
+ }
+ }
+ agvWrkDetl.setProcessSts(2);
+ agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2));
+ agvWrkDetl.setModiUser(userId);
+ agvWrkDetl.setModiTime(now);
+ agvWrkDetl.setIoTime(now);
+ if (!agvWrkDetlService.update(agvWrkDetl, new EntityWrapper<AgvWrkDetl>()
+ .eq("matnr", agvWrkDetl.getMatnr())
+ .eq("three_code", agvWrkDetl.getThreeCode())
+ .eq("supp_code", param.getBarcode()))) {
+ throw new CoolException("鏇存柊宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ return "ok";
+ }
/*
* 绔欑偣鍥為��
@@ -896,7 +977,8 @@
} else {
orderDetl = orderDetls.get(0);
}
- orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+ double v = orderDetl.getQty() - agvWrkDetl.getAnfme();
+ orderDetl.setQty(v < 0 ? 0 : v);
if (!orderDetlService.updateById(orderDetl)) {
throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + orderDetl.getOrderNo() + orderDetl.getMatnr());
}
--
Gitblit v1.9.1