From 383c6139926563f02fba4432effbfc27f87d88c5 Mon Sep 17 00:00:00 2001 From: bfwms <1> Date: 星期三, 30 七月 2025 14:36:57 +0800 Subject: [PATCH] ERP对接 --- src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 76 ++++++++++++++++++++++++++++++++++--- 1 files changed, 69 insertions(+), 7 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 816c14d..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,8 +314,12 @@ } 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()); @@ -318,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 } @@ -329,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()); } @@ -353,8 +409,14 @@ break; } if(wrkMast.getIoType()!=11) { - // 淇敼宸ヤ綔涓绘。鐘舵�� - wrkMast.setWrkSts(18L); + //鏄惁闇�瑕佷笂鎶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()); -- Gitblit v1.9.1