From a1dd6ff24f7cae0b529ad313ba07351c07965605 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 03 十一月 2025 13:04:09 +0800
Subject: [PATCH] 管控线边仓库存
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 250 +++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 206 insertions(+), 44 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 dd58724..b8b09db 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,20 +1,23 @@
package com.zy.asrs.task.handler;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.SaasUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
/**
* Created by vincent on 2020/7/4
@@ -34,6 +37,17 @@
private LocDetlService locDetlService;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+
+ @Resource
+ private OrderService orderService;
+
+ @Resource
+ private ManLocDetlService manLocDetlService;
+
+ @Resource
+ private NodeService nodeService;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -51,7 +65,9 @@
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
try {
if (null == locMast) {
- exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
}
assert locMast != null;
switch (wrkMast.getIoType()) {
@@ -66,7 +82,9 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
break;
@@ -80,7 +98,9 @@
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls.isEmpty()) {
- exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
+// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
// 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
for (WrkDetl wrkDetl : wrkDetls) {
@@ -88,7 +108,9 @@
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
if (null != locDetl) {
if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
- exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
} else {
locDetl = new LocDetl();
@@ -99,25 +121,49 @@
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
if (!locDetlService.insert(locDetl)) {
- exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
- // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (orderDetl==null){
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+ }
try {
- Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
- .eq("zpallet", wrkDetl.getZpallet())
- .eq("matnr", wrkDetl.getMatnr())
- .eq("anfme", wrkDetl.getAnfme());
- if (Cools.isEmpty(wrkDetl.getBatch())) {
- wrapper.eq("batch", wrkDetl.getBatch());
- } else {
- wrapper.isNull("batch").or().eq("batch", "");
+ if(!Cools.isEmpty(orderDetl)){
+ if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetl.getBatch(),wrkDetl.getAnfme())){
+// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+// wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ } else {
+ // 鎻掑叆璋冩嫧鍏ュ簱鍗曞搴旂嚎杈逛粨鍑哄簱璁板綍
+ Order order = orderService.selectByNo(orderDetl.getOrderNo());
+ if (order.getDocType$().equals("璋冩嫧鍏ュ簱鍗�")) {
+ String locNo = orderDetl.getSupp();
+ ManLocDetl locDetl2 = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr", wrkDetl.getMatnr()).eq("batch", wrkDetl.getBatch()));
+ if (locDetl2 == null) { // 绾胯竟搴撴棤姝ゅ簱瀛�
+ log.warn("璋冩嫧鍏ュ簱鍗曞搴旂嚎杈瑰簱搴撳瓨鏃狅細{locNo:{},matnr:{},batch:{}}", locNo, wrkDetl.getMatnr(), wrkDetl.getBatch());
+ } else if (locDetl2.getAnfme() < wrkDetl.getAnfme()) { // 绾胯竟搴撴搴撳瓨涓嶅
+ manLocDetlService.delete(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr", wrkDetl.getMatnr()).eq("batch", wrkDetl.getBatch()));
+ log.warn("璋冩嫧鍏ュ簱鍗曞搴旂嚎杈瑰簱搴撳瓨涓嶈冻锛歿locNo:{},matnr:{},batch:{},locAnfme:{},wrkAnfme:{}}", locNo, wrkDetl.getMatnr(), wrkDetl.getBatch(), locDetl2.getAnfme(), wrkDetl.getAnfme());
+ } else if (Objects.equals(locDetl2.getAnfme(), wrkDetl.getAnfme())) { // 鍒犻櫎璇ョ墿鏂欑嚎杈瑰簱搴撳瓨鏁版嵁
+ manLocDetlService.delete(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr", wrkDetl.getMatnr()).eq("batch", wrkDetl.getBatch()));
+ } else { // 鏇存柊璇ョ墿鏂欑嚎杈瑰簱搴撳瓨
+ locDetl2.setAnfme(locDetl2.getAnfme() - wrkDetl.getAnfme());
+ locDetl2.setUpdateBy(wrkDetl.getAppeUser());
+ locDetl2.setModiTime(new Date());
+ manLocDetlService.update(locDetl2, new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr", wrkDetl.getMatnr()).eq("batch", wrkDetl.getBatch()));
+ }
+ // 璁板綍鏃ュ織
+ SaasUtils.insertLog(3, locNo, wrkDetl.getMatnr(), wrkDetl.getAnfme(), wrkDetl.getAppeUser(), wrkDetl.getBatch());
+ }
+ }
}
- WaitPakin setParam = new WaitPakin();
- setParam.setIoStatus("Y");
- setParam.setModiTime(now);
- waitPakinService.update(setParam, wrapper);
} catch (Exception ignore){}
}
@@ -128,7 +174,9 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
break;
@@ -137,16 +185,38 @@
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls53.isEmpty()) {
- exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+// exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
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())) {
- exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// 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());
+ if (orderDetl==null){
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+ }
+ try {
+ if(!Cools.isEmpty(orderDetl)){
+ if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetl.getBatch(),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() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
@@ -155,7 +225,9 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
break;
@@ -164,7 +236,9 @@
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls54.isEmpty()) {
- exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
// 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
for (WrkDetl wrkDetl:wrkDetls54) {
@@ -172,7 +246,9 @@
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
if (null != locDetl) {
if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
- exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
} else {
locDetl = new LocDetl();
@@ -183,7 +259,9 @@
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
if (!locDetlService.insert(locDetl)) {
- exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
}
@@ -194,7 +272,9 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
break;
@@ -203,7 +283,9 @@
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls57.isEmpty()) {
- exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+// exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
@@ -212,7 +294,9 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
break;
@@ -225,7 +309,9 @@
locSts = "F";
// 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
- exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+// exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
// 淇敼婧愬簱浣嶇姸鎬� ==> O
@@ -236,7 +322,9 @@
sourceLoc.setModiTime(now);
sourceLoc.setIoTime(now);
if (!locMastService.updateById(sourceLoc)) {
- exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
// 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
@@ -245,7 +333,9 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
break;
default:
@@ -255,7 +345,9 @@
wrkMast.setWrkSts(5L);
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
- exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+// exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
} catch (Exception e) {
log.error("fail", e);
@@ -271,27 +363,91 @@
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
try {
if (null == locMast) {
- exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
assert locMast != null;
switch (wrkMast.getIoType()) {
// 鍏ㄦ澘鍑哄簱
case 101:
- // 鍑哄簱纭淇″彿浣�
- if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
- return SUCCESS;
- }
+// // 鍑哄簱纭淇″彿浣�
+// if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
+// return SUCCESS;
+// }
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls101.isEmpty()) {
- exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
for (WrkDetl wrkDetl : wrkDetls101) {
- // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (orderDetl==null){
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+ }
+ try {
+ if(!Cools.isEmpty(orderDetl)){
+ if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetl.getBatch(),wrkDetl.getAnfme())){
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+// wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ } else { // 鎻掑叆璋冩嫧鍑哄簱鍗曞搴旂嚎杈逛粨鍏ュ簱璁板綍
+ Order order = orderService.selectByNo(orderDetl.getOrderNo());
+ if(order.getDocType$().equals("璋冩嫧鍑哄簱鍗�")) {
+
+ String locNo = orderDetl.getSuppCode(); // 绾胯竟浠�
+
+ Node node = nodeService.selectByUuid(locNo);
+ if (Cools.isEmpty(node)) {
+ throw new CoolException(locNo + ":搴撲綅涓嶅瓨鍦�");
+ }
+ ManLocDetl locDetl1 = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr", wrkDetl.getMatnr()).
+ eq("batch", wrkDetl.getBatch()));
+ if (!Cools.isEmpty(locDetl1)) {
+ locDetl1.setAnfme(locDetl1.getAnfme() + wrkDetl.getAnfme());
+ locDetl1.setModiTime(now);
+ manLocDetlService.update(locDetl1, new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr", wrkDetl.getMatnr()).
+ eq("batch", wrkDetl.getBatch()));
+ } else {
+ ManLocDetl manLocDetl = new ManLocDetl();
+ manLocDetl.setLocNo(locNo);
+// manLocDetl.setBarcode(barcode);
+// manLocDetl.setZpallet(barcode);
+ manLocDetl.setNodeId(node.getId());
+ manLocDetl.setMaktx(wrkDetl.getMaktx());
+ manLocDetl.setMatnr(wrkDetl.getMatnr());
+ manLocDetl.setSpecs(wrkDetl.getSpecs());
+ manLocDetl.setBatch(Cools.isEmpty(wrkDetl.getBatch()) ? "" : wrkDetl.getBatch());
+ manLocDetl.setAnfme(wrkDetl.getAnfme());
+ manLocDetl.setCreateBy(wrkDetl.getAppeUser());
+ manLocDetl.setCreateTime(now);
+ if (!manLocDetlService.insert(manLocDetl)) {
+ log.error("搴撳瓨鏇存柊鏃舵彃鍏ョ嚎杈瑰簱鏄庣粏澶辫触");
+ throw new CoolException("搴撳瓨鏇存柊鏃舵彃鍏ョ嚎杈瑰簱鏄庣粏澶辫触锛�");
+ }
+
+ node.setUpdateBy(wrkDetl.getAppeUser());
+ node.setUpdateTime(now);
+ nodeService.updateById(node);
+ }
+
+ // 璁板綍鏃ュ織
+ SaasUtils.insertLog(2, locNo, wrkDetl.getMatnr(), wrkDetl.getAnfme(), wrkDetl.getAppeUser(),wrkDetl.getBatch());
+ }
+ }
+ }
+ } catch (Exception ignore){}
}
// 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
- exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
// 淇敼婧愬簱浣嶇姸鎬� R ===>> O
if (locMast.getLocSts().equals("R")) {
@@ -300,7 +456,9 @@
locMast.setModiTime(now);
locMast.setIoTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
}
break;
@@ -313,7 +471,9 @@
locMast.setModiTime(now);
locMast.setIoTime(now);
if (!locMastService.updateById(locMast)) {
- exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+// exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
}
break;
@@ -324,7 +484,9 @@
wrkMast.setWrkSts(15L);
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
- exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+// exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
} catch (Exception e) {
log.error("fail", e);
--
Gitblit v1.9.1