From da5d4106e294a229e3bf72939c6b7630e6345d76 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 10 三月 2026 10:30:38 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 405 ++++++++++++++++++++-------------------------------------
1 files changed, 145 insertions(+), 260 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 7e2a3df..aa515c1 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,22 +1,25 @@
package com.zy.asrs.task.handler;
-import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.common.entity.Parameter;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
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;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/7/4
@@ -25,15 +28,6 @@
@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;
@@ -51,19 +45,57 @@
private OrderDetlPakinService orderDetlPakinService;
@Autowired
private OrderDetlPakoutService orderDetlPakoutService;
+ @Autowired
+ private OrderPakinService orderPakinService;
+ @Autowired
+ private WorkService workService;
+
+ @Value("${erp.switch.ErpReportOld}")
+ private boolean erpReportOld;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
if (wrkMast.getWrkSts() == 4) {
return doIn(wrkMast);
- // 14.鍑哄簱瀹屾垚
- } else if (wrkMast.getWrkSts() == 14) {
+ // 14.鍑哄簱瀹屾垚
+ } else if (wrkMast.getWrkSts() == 14) {
return doOut(wrkMast);
}
return SUCCESS;
}
- private ReturnT<String> doIn(WrkMast wrkMast){
+
+ private boolean needInboundErpReport(WrkMast wrkMast) {
+ if (!erpReportOld) {
+ return false;
+ }
+ String erpReport = Parameter.get().getErpReport();
+ if (!Cools.isEmpty(erpReport) && !"true".equalsIgnoreCase(erpReport)) {
+ return false;
+ }
+ if (wrkMast == null || Cools.isEmpty(wrkMast.getBarcode())) {
+ return false;
+ }
+ Integer ioType = wrkMast.getIoType();
+ return ioType != null && (ioType == 1 || ioType == 8 || ioType == 53 || ioType == 54 || ioType == 57);
+ }
+
+ private boolean needOutboundErpReport(WrkMast wrkMast) {
+ if (!erpReportOld) {
+ return false;
+ }
+ String erpReport = Parameter.get().getErpReport();
+ if (!Cools.isEmpty(erpReport) && !"true".equalsIgnoreCase(erpReport)) {
+ return false;
+ }
+ if (wrkMast == null || Cools.isEmpty(wrkMast.getBarcode())) {
+ return false;
+ }
+ Integer ioType = wrkMast.getIoType();
+ return ioType != null && (ioType == 101 || ioType == 108 || ioType == 110);
+ }
+
+ public ReturnT<String> doIn(WrkMast wrkMast) {
Date now = new Date();
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
try {
@@ -107,12 +139,11 @@
}
// 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
for (WrkDetl wrkDetl : wrkDetls) {
-
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
- ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ 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(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3()
- ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) {
+ 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() + "]");
@@ -125,45 +156,12 @@
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();
return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
-
- 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() + "]");
- }
- }
- } catch (Exception ignore){}
- }
-
}
// 淇敼搴撲綅鐘舵�� S ====>> F
if (locMast.getLocSts().equals("S")) {
@@ -188,7 +186,6 @@
}
// 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
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) {
@@ -233,40 +230,39 @@
}
for (WrkDetl wrkDetl : wrkDetls53) {
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
- ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ 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())) {
+ 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() + "]");
}
}
- if (!Cools.isEmpty(wrkDetl.getOrderNo())){
- // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem
- (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
- wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ 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) {
+ orderDetlPakin = orderDetlPakinService.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())){
+ }
+ 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("鎷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) {
}
}
@@ -293,13 +289,13 @@
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
// 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
- for (WrkDetl wrkDetl:wrkDetls54) {
+ for (WrkDetl wrkDetl : wrkDetls54) {
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
- ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ 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(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3()
- ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) {
+ 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() + "]");
@@ -319,17 +315,17 @@
}
// 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(), wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ 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())){
+ 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){
+ } catch (Exception ignore) {
}
@@ -373,7 +369,7 @@
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
- locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
+ locMast.setLocSts(wrkMast.getFullPlt().equals("Y") ? "F" : "D");
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
@@ -426,7 +422,15 @@
break;
}
// 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(5L);
+ if (needInboundErpReport(wrkMast)) {
+ wrkMast.setWrkSts(WorkErpReportHandler.ERP_REPORT_PENDING_WRK_STS);
+ wrkMast.setLogMk(WorkErpReportHandler.ERP_REPORT_PENDING_FLAG);
+ wrkMast.setExpTime(0D);
+ wrkMast.setLogErrMemo(null);
+ wrkMast.setLogErrTime(null);
+ } else {
+ wrkMast.setWrkSts(5L);
+ }
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
// exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -442,11 +446,13 @@
return SUCCESS;
}
- private ReturnT<String> doOut(WrkMast wrkMast){
+
+ @Transactional(rollbackFor = Exception.class)
+ public ReturnT<String> doOut(WrkMast wrkMast) {
Date now = new Date();
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
try {
- if (null == locMast && wrkMast.getIoType() !=12) {
+ if (null == locMast) {
// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -455,6 +461,9 @@
switch (wrkMast.getIoType()) {
// 鍏ㄦ澘鍑哄簱
case 101:
+ //濡傛灉wrkCode涓嶄负绌猴紝琛ㄧず鏄伐浣滃彴鍙揣,濡傛灉涓嶄负绌鸿蛋绉诲簱閫昏緫
+ //todo 鍒ゆ柇濡傛灉搴撲綅鎵�灞炰笉鏄悓涓�涓爢鍨涙満鍙凤紝闇�鍐嶇敓鎴愪竴涓柊鐨勫叆搴撲换鍔�
+
// // 鍑哄簱纭淇″彿浣�
// if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
// return SUCCESS;
@@ -466,33 +475,29 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
-
for (WrkDetl wrkDetl : wrkDetls101) {
- 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() + "]");
- }
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ 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())) {
+ 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()))) {
-// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
@@ -503,11 +508,11 @@
locMast.setModiTime(now);
locMast.setIoTime(now);
if (!locMastService.updateById(locMast)) {
-// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
}
+
break;
// 骞舵澘閫斾腑鎹℃枡
case 108:
@@ -518,28 +523,29 @@
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());
+ 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())) {
+ 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());
+ 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())){
+ 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){}
+ } catch (Exception ignore) {
+ }
}
break;
// 绌烘澘鍑哄簱
@@ -557,14 +563,23 @@
}
}
break;
- //3鍙峰爢鍨涙満琛旀帴
- case 12:
- break;
default:
break;
}
// 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(15L);
+ if (needOutboundErpReport(wrkMast)) {
+ wrkMast.setWrkSts(WorkOutErpReportHandler.ERP_REPORT_PENDING_WRK_STS);
+ wrkMast.setLogMk(WorkOutErpReportHandler.ERP_REPORT_PENDING_FLAG);
+ wrkMast.setExpTime(0D);
+ wrkMast.setLogErrMemo(null);
+ wrkMast.setLogErrTime(null);
+ } else {
+ wrkMast.setWrkSts(15L);
+ }
+// if (!Objects.isNull(wrkMast.getWrkCode())) {
+// //棰嗘枡鍑哄簱浠诲姟锛屼笉淇敼
+// } else {
+// }
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
// exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -579,134 +594,4 @@
}
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