From b7380ff70bcc962494cd6640fcc3eac21aaab0a1 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 15 一月 2026 08:09:29 +0800
Subject: [PATCH] 1.自动下发出库任务给wcs 2.wcs申请入库
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 375 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 337 insertions(+), 38 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 f5fb2df..7e2a3df 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,5 +1,6 @@
package com.zy.asrs.task.handler;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.*;
@@ -8,9 +9,11 @@
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import springfox.documentation.spring.web.json.Json;
import java.util.Date;
import java.util.List;
@@ -22,6 +25,15 @@
@Service
@Transactional
public class WorkMastHandler extends AbstractHandler<String> {
+
+ @Value("${erp.address.URL}")
+ private String erpBaseUrl;
+
+ @Value("${erp.address.Inaddress}")
+ private String erpInAddress;
+
+ @Value("${erp.address.Outaddress}")
+ private String erpOutAddress;
@Autowired
private WrkMastService wrkMastService;
@@ -35,6 +47,10 @@
private WaitPakinService waitPakinService;
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private OrderDetlPakinService orderDetlPakinService;
+ @Autowired
+ private OrderDetlPakoutService orderDetlPakoutService;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -92,9 +108,11 @@
// 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
for (WrkDetl wrkDetl : wrkDetls) {
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
+ ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3()
+ ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) {
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -107,6 +125,7 @@
locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
+ locDetl.setOrigin("鍦ㄥ簱");
if (!locDetlService.insert(locDetl)) {
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -114,19 +133,36 @@
}
}
- // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- try {
- if(!Cools.isEmpty(orderDetl)){
- if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- wrkDetl.getBatch(),wrkDetl.getAnfme())){
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())){
+ log.info("杩涘叆鍏ュ簱浠诲姟瀹屾垚锛屽甫璁㈠崟:"+ JSON.toJSONString(wrkDetl));
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem
+ (wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ wrkDetl.getBatch(), wrkDetl.getBrand(),
+ wrkDetl.getStandby1(), wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+ if (orderDetlPakin==null){
+ log.info("杩涘叆鍏ュ簱浠诲姟瀹屾垚锛屾煡璇㈣鍗曞け璐�:"+ JSON.toJSONString(wrkDetl));
+
+ orderDetlPakin = orderDetlPakinService.selectItem
+ (wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ wrkDetl.getBatch(), wrkDetl.getBrand(),
+ wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ }
+ try {
+ if(!Cools.isEmpty(orderDetlPakin)){
+ if(!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetlPakin.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
// wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
}
- }
- } catch (Exception ignore){}
+ } catch (Exception ignore){}
+ }
}
// 淇敼搴撲綅鐘舵�� S ====>> F
@@ -142,6 +178,50 @@
}
}
break;
+ // 鎷f枡閫斾腑骞舵澘
+ case 8:
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls8 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkDetls8.isEmpty()) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
+ for (WrkDetl wrkDetl : wrkDetls8) {
+
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
+ , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+ if (null != locDetl) {
+ if (!locDetlService.updateAnfme(wrkDetl.getAnfme() + locDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
+ , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ } else {
+ 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)) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ }
+ break;
// 鎷f枡鍏ュ簱
case 53:
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
@@ -153,28 +233,41 @@
}
for (WrkDetl wrkDetl : wrkDetls53) {
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
+ ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
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.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3()
+ ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) {
// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
- // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- try {
- if(!Cools.isEmpty(orderDetl)){
- if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- wrkDetl.getBatch(),wrkDetl.getAnfme())){
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())){
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem
+ (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
+ wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+ if (orderDetlPakout==null){
+ orderDetlPakout = orderDetlPakoutService.selectItem
+ (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ }
+ try {
+ if(!Cools.isEmpty(orderDetlPakout)){
+ if(!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetlPakout.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){
// exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
// wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
}
- }
- } catch (Exception ignore){}
+ } catch (Exception ignore){}
+ }
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
@@ -202,9 +295,11 @@
// 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
for (WrkDetl wrkDetl:wrkDetls54) {
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
+ ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3()
+ ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) {
// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -218,11 +313,26 @@
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
if (!locDetlService.insert(locDetl)) {
-// exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
+
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(), wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ try {
+ if(!Cools.isEmpty(orderDetlPakin)){
+ if(!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetlPakin.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){
+
+ }
+
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
@@ -245,6 +355,21 @@
// exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ for (WrkDetl wrkDetl : wrkDetls57) {
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+ if (!Cools.isEmpty(orderDetlPakout)) {
+ if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ }
+ }
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
@@ -321,7 +446,7 @@
Date now = new Date();
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
try {
- if (null == locMast) {
+ if (null == locMast && wrkMast.getIoType() !=12) {
// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -341,20 +466,29 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
+
for (WrkDetl wrkDetl : wrkDetls101) {
- // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- try {
- if(!Cools.isEmpty(orderDetl)){
- if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- wrkDetl.getBatch(),wrkDetl.getAnfme())){
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())){
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ if (orderDetlPakout==null){
+ orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ }
+ try {
+ if(!Cools.isEmpty(orderDetlPakout)){
+ if(!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetlPakout.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){
// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
// wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
}
- }
- } catch (Exception ignore){}
+ } catch (Exception ignore){}
+ }
}
// 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
@@ -375,6 +509,39 @@
}
}
break;
+ // 骞舵澘閫斾腑鎹℃枡
+ case 108:
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls108 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkDetls108.isEmpty()) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘閫斾腑鎹℃枡 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ for (WrkDetl wrkDetl : wrkDetls108) {
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
+ ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ if (null != locDetl) {
+ if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3()
+ ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘閫斾腑鎹℃枡 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ try {
+ if(!Cools.isEmpty(orderDetlPakout)){
+ if(!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetlPakout.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(),wrkDetl.getAnfme())){
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘閫斾腑鎹℃枡 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+ }
+ break;
// 绌烘澘鍑哄簱
case 110:
// 淇敼搴撲綅鐘舵�� R ===>> O
@@ -389,6 +556,9 @@
return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
}
+ break;
+ //3鍙峰爢鍨涙満琛旀帴
+ case 12:
break;
default:
break;
@@ -410,4 +580,133 @@
return SUCCESS;
}
+ /**
+ * wcs涓婃姤浠诲姟瀹屾垚鍚庯紝灏嗕换鍔′笂鎶ョ粰erp
+ * 2.鍏ュ簱涓婃姤
+ * 13.鍑哄簱涓婃姤
+ */
+ public ReturnT<String> start1(WrkMast wrkMast) {
+ // 2.鍏ュ簱涓婃姤
+ if (wrkMast.getWrkSts() == 2) {
+ return ErpdoIn(wrkMast);
+ // 13.鍑哄簱涓婃姤
+ } else if (wrkMast.getWrkSts() == 13) {
+ return ErpdoOut(wrkMast);
+ }
+ return SUCCESS;
+ }
+
+ private ReturnT<String> ErpdoOut(WrkMast wrkMast){
+ try {
+ com.zy.common.utils.HttpHandler.Builder builder = new com.zy.common.utils.HttpHandler.Builder();
+ if (Cools.isEmpty(erpBaseUrl) || Cools.isEmpty(erpOutAddress)) {
+ return FAIL.setMsg("ERP鍑哄簱涓婃姤鍦板潃鏈厤缃甗erp.address.URL / erp.address.Outaddress]");
+ }
+ java.util.List<WrkDetl> wrkDetls = wrkDetlService.selectList(
+ new com.baomidou.mybatisplus.mapper.EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())
+ );
+ if (wrkDetls == null || wrkDetls.isEmpty()) {
+ return FAIL.setMsg("ERP鍑哄簱涓婃姤澶辫触, 鏈壘鍒板伐浣滄槑缁哰workNo=" + wrkMast.getWrkNo() + "]");
+ }
+
+ java.util.Map<String, Object> payload = new java.util.HashMap<>();
+ payload.put("palletId", wrkMast.getBarcode());
+ payload.put("anfme", wrkDetls.get(0).getAnfme());
+ payload.put("locId", wrkMast.getSourceLocNo());
+ payload.put("weight", wrkMast.getScWeight());
+ payload.put("photos", new java.util.ArrayList<String>());
+ if (wrkMast.getModiTime() != null) {
+ payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(wrkMast.getModiTime()));
+ } else {
+ payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
+ }
+ payload.put("BizNo", String.valueOf(wrkDetls.get(0).getThreeCode()));
+
+ String uri = erpBaseUrl;
+ String response = builder
+ .setUri(uri)
+ .setPath(erpOutAddress)
+ .setHttps(uri != null && uri.startsWith("https://"))
+ .setTimeout(10, java.util.concurrent.TimeUnit.SECONDS)
+ .setJson(com.alibaba.fastjson.JSON.toJSONString(payload))
+ .build()
+ .doPost();
+
+ com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(response == null ? "{}" : response);
+ Integer code = jsonObject.getInteger("code");
+ if (code == null || code != 0) {
+ String msg = jsonObject.getString("msg");
+ return FAIL.setMsg(Cools.isEmpty(msg) ? "ERP鍑哄簱涓婃姤澶辫触" : msg);
+ }
+ wrkMast.setWrkSts(wrkMast.getWrkSts() + 1);
+ wrkMast.setModiTime(new java.util.Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ return FAIL.setMsg("ERP鍑哄簱涓婃姤鎴愬姛浣嗘洿鏂板伐浣滅姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "]");
+ }
+ } catch (Exception e) {
+ return FAIL.setMsg(e.getMessage());
+ }
+ return SUCCESS;
+ }
+
+ private ReturnT<String> ErpdoIn(WrkMast wrkMast){
+ try {
+ com.zy.common.utils.HttpHandler.Builder builder = new com.zy.common.utils.HttpHandler.Builder();
+ if (Cools.isEmpty(erpBaseUrl) || Cools.isEmpty(erpInAddress)) {
+ return FAIL.setMsg("ERP鍏ュ簱涓婃姤鍦板潃鏈厤缃甗erp.address.URL / erp.address.Inaddress]");
+ }
+
+ java.util.Map<String, Object> payload = new java.util.HashMap<>();
+ payload.put("palletId", wrkMast.getBarcode());
+ java.util.List<WrkDetl> wrkDetls = wrkDetlService.selectList(
+ new com.baomidou.mybatisplus.mapper.EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())
+ );
+ if (wrkDetls == null || wrkDetls.isEmpty()) {
+ return FAIL.setMsg("ERP鍏ュ簱涓婃姤澶辫触, 鏈壘鍒板伐浣滄槑缁哰workNo=" + wrkMast.getWrkNo() + "]");
+ }
+ double anfme = 0D;
+ for (WrkDetl d : wrkDetls) {
+ if (d != null && d.getAnfme() != null) {
+ anfme += d.getAnfme();
+ }
+ }
+ payload.put("anfme", anfme);
+ payload.put("locId", wrkMast.getLocNo());
+ payload.put("weight", wrkMast.getScWeight());
+ payload.put("photos", new java.util.ArrayList<String>());
+ if (wrkMast.getModiTime() != null) {
+ payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(wrkMast.getModiTime()));
+ } else {
+ payload.put("createTime", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
+ }
+ payload.put("BizNo", String.valueOf(wrkDetls.get(0).getThreeCode()));
+
+ String uri = erpBaseUrl;
+
+ String response = builder
+ .setUri(uri)
+ .setPath(erpInAddress)
+ .setHttps(uri != null && uri.startsWith("https://"))
+ .setTimeout(10, java.util.concurrent.TimeUnit.SECONDS)
+ .setJson(com.alibaba.fastjson.JSON.toJSONString(payload))
+ .build()
+ .doPost();
+
+ com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(response == null ? "{}" : response);
+ Integer code = jsonObject.getInteger("code");
+ if (code == null || code != 0) {
+ String msg = jsonObject.getString("msg");
+ return FAIL.setMsg(Cools.isEmpty(msg) ? "ERP鍏ュ簱涓婃姤澶辫触" : msg);
+ }
+ wrkMast.setWrkSts(wrkMast.getWrkSts() + 1);
+ wrkMast.setModiTime(new java.util.Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ return FAIL.setMsg("ERP鍏ュ簱涓婃姤鎴愬姛浣嗘洿鏂板伐浣滅姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "]");
+ }
+ } catch (Exception e) {
+ return FAIL.setMsg(e.getMessage());
+ }
+ return SUCCESS;
+ }
+
}
--
Gitblit v1.9.1