From 3ad65283c54059e0c61110589fb19398ac3525fe Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 08 七月 2025 08:32:32 +0800
Subject: [PATCH] 完善拣料转全板
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 104 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 8309fe1..ea77a6a 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -9,6 +9,8 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -36,6 +38,8 @@
private LocDetlService locDetlService;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private ConfigService configService;
public ReturnT<String> start(WrkMast wrkMast) {
// 9.鍏ュ簱瀹屾垚
@@ -51,6 +55,9 @@
private ReturnT<String> doIn(WrkMast wrkMast){
Date now = new Date();
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+
+ //鍒ゆ柇浠诲姟鏄惁鏈夎鍗曞彿
+ Boolean boo=false;
try {
if (null == locMast) {
exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
@@ -84,9 +91,14 @@
if (wrkDetls.isEmpty()) {
exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
}
+ //鍒ゆ柇鏄惁鏈夎鍗曞彿
+ if(!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+ boo=true;
+ }
// 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
for (WrkDetl wrkDetl : wrkDetls) {
+ wrkDetl.setBatch("");
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
if (null != locDetl) {
if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
@@ -127,8 +139,10 @@
if (locMast.getLocSts().equals("S")) {
locMast.setLocSts("F");
locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setFrozen(wrkMast.getFrozen());
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setFrozenMemo(wrkMast.getMemo());
if (!locMastService.updateById(locMast)) {
exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
}
@@ -141,11 +155,17 @@
if (wrkDetls53.isEmpty()) {
exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
}
+
+ //鍒ゆ柇鏄惁鏈夎鍗曞彿
+ if(!Cools.isEmpty(wrkDetls53.get(0).getOrderNo())){
+ boo=true;
+ }
+
for (WrkDetl wrkDetl : wrkDetls53) {
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getManu(),wrkDetl.getMemo())) {
exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
}
}
@@ -207,6 +227,24 @@
if (wrkDetls57.isEmpty()) {
exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
}
+ if(!Cools.isEmpty(locDetlService.selectByLocNo(wrkMast.getLocNo()))){
+ locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+ }
+ if (Cools.isEmpty(locDetlService.selectByLocNo(wrkMast.getLocNo()))){
+ for (WrkDetl wrkDetl:wrkDetls57){
+ LocDetl locDetl = new LocDetl();
+ locDetl.sync(wrkDetl);
+ locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+ locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ locDetl.setModiTime(now);
+ locDetl.setAppeTime(now);
+ if (!locDetlService.insert(locDetl)) {
+ exceptionHandle("鐩樼偣鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ }
+ }
+ }
+
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
@@ -218,8 +256,8 @@
}
}
break;
- // 搴撲綅绉昏浆
- case 11:
+ case 11:// 搴撲綅绉昏浆
+ case 111:// 搴撲綅绉昏浆(楂橀鍖哄煙)
// 榛樿鐩爣搴撲綅鏄┖鏉�
String locSts = "D";
// 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
@@ -253,8 +291,15 @@
default:
break;
}
- // 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(10L);
+
+ //鏄惁闇�瑕佷笂鎶RP
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "newErpReport"));
+ if(!Cools.isEmpty(config)&&config.getValue().equals("Y")&&boo){
+ wrkMast.setWrkSts(40L);//浠诲姟鐘舵�佽浆ERP涓婃姤涓�
+ }else{
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(10L);
+ }
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -269,14 +314,48 @@
}
private ReturnT<String> doOut(WrkMast wrkMast){
+
Date now = new Date();
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+
+ //鍒ゆ柇浠诲姟鏄惁鏈夎鍗曞彿
+ Boolean boo=false;
try {
if (null == locMast) {
exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
}
assert locMast != null;
switch (wrkMast.getIoType()) {
+ case 11://绉诲簱鍐嶅洖鍘熷簱浣�
+ String locSts = "R";
+ // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+ if (wrkMast.getEmptyMk().equals("N")) {
+ // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+ if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
+ exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+ }
+ }
+ // 淇敼婧愬簱浣嶇姸鎬� ==> O
+ LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+ if (null != sourceLoc && !sourceLoc.getLocSts().equals("O")) {
+ sourceLoc.setBarcode("");
+ sourceLoc.setLocSts("O");
+ sourceLoc.setModiTime(now);
+ sourceLoc.setIoTime(now);
+ if (!locMastService.updateById(sourceLoc)) {
+ exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ }
+
+ // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+ locMast.setLocSts(locSts);
+ locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+ break;
// 鍏ㄦ澘鍑哄簱
case 101:
// 鍑哄簱纭淇″彿浣�
@@ -288,6 +367,11 @@
if (wrkDetls101.isEmpty()) {
exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
}
+ //鍒ゆ柇鏄惁鏈夎鍗曞彿
+ if(!Cools.isEmpty(wrkDetls101.get(0).getOrderNo())){
+ boo=true;
+ }
+
for (WrkDetl wrkDetl : wrkDetls101) {
// todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
}
@@ -299,8 +383,10 @@
if (locMast.getLocSts().equals("R")) {
locMast.setLocSts("O");
locMast.setBarcode("");
+ locMast.setFrozen(0);
locMast.setModiTime(now);
locMast.setIoTime(now);
+ locMast.setFrozenMemo("");
if (!locMastService.updateById(locMast)) {
exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
}
@@ -322,11 +408,19 @@
default:
break;
}
- // 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(18L);
- wrkMast.setModiTime(now);
- if (!wrkMastService.updateById(wrkMast)) {
- exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+ if(wrkMast.getIoType()!=11) {
+ //鏄惁闇�瑕佷笂鎶RP
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "newErpReport"));
+ if(!Cools.isEmpty(config)&&config.getValue().equals("Y")&&boo){
+ wrkMast.setWrkSts(40L);//浠诲姟鐘舵�佽浆ERP涓婃姤涓�
+ }else{
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(18L);
+ }
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.updateById(wrkMast)) {
+ exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+ }
}
} catch (Exception e) {
log.error("fail", e);
--
Gitblit v1.9.1