From f56e004dac74ebcf6638e0b8dc162062f19dbe34 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 06 一月 2025 15:50:02 +0800
Subject: [PATCH] #平库入库完成+库存明细+库存统计
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 130 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 126 insertions(+), 4 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 acb5fa9..c665b9c 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -2,8 +2,11 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.core.common.SpringUtils;
import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.BasDevpMapper;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.ManLocDetlServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
@@ -13,7 +16,9 @@
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* Created by vincent on 2020/7/4
@@ -35,6 +40,18 @@
private WaitPakinService waitPakinService;
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private ManLocDetlService manLocDetlService;
+ @Autowired
+ private NodeService nodeService;
+
+ private static final Map<Integer,Integer> sourceSite = new HashMap<>();
+ static {
+ sourceSite.put(1041,1040);sourceSite.put(1042,1040);
+ sourceSite.put(2011,2010);sourceSite.put(2012,2010);
+ sourceSite.put(2001,2000);sourceSite.put(2002,2000);
+ sourceSite.put(3011,3010);sourceSite.put(3010,1040);
+ }
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -49,14 +66,28 @@
private ReturnT<String> doIn(WrkMast wrkMast){
Date now = new Date();
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- try {
+ LocMast locMast = null;
+ Node node = null;
+ if (wrkMast.getIoType() == 300){
+ node = nodeService.selectOne(new EntityWrapper<Node>().eq("name",wrkMast.getLocNo()).eq("type",3));
+ if (null == node) {
+// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
+ }
+ assert node != null;
+ }else {
+ locMast = locMastService.selectById(wrkMast.getLocNo());
if (null == locMast) {
// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
}
assert locMast != null;
+ }
+
+ try {
+
switch (wrkMast.getIoType()) {
// 绌烘澘鍏ュ簱
case 10:
@@ -68,6 +99,7 @@
locMast.setLocSts("D");
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setFullPlt(wrkMast.getFullPlt());
if (!locMastService.updateById(locMast)) {
// exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -94,7 +126,8 @@
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ Double anfme = locDetl.getAnfme()+wrkDetl.getAnfme();
+ if (!locDetlService.updateAnfme(anfme, wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -143,6 +176,8 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
+ }else {
+ exceptionHandle("搴撲綅鐘舵�佷笉涓哄叆搴撻绾︾姸鎬�;[workNo={0}]", wrkMast.getWrkNo());
}
break;
// 鎷f枡鍏ュ簱
@@ -210,7 +245,8 @@
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ Double anfme = locDetl.getAnfme()+wrkDetl.getAnfme();
+ if (!locDetlService.updateAnfme(anfme, locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -229,6 +265,25 @@
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())){
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ 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.getLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+ }
+
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
@@ -241,6 +296,8 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
+ }else {
+ exceptionHandle("搴撲綅鐘舵�佷笉涓哄叆搴撻绾︾姸鎬�;[workNo={0}]", wrkMast.getWrkNo());
}
break;
// 鐩樼偣鍏ュ簱
@@ -303,9 +360,74 @@
return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
break;
+ case 300:
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls300 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkDetls300.isEmpty()) {
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+ for (WrkDetl wrkDetl:wrkDetls300) {
+
+ ManLocDetl manLocDetl = manLocDetlService.selectItem(node.getName(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (null != manLocDetl) {
+ Double anfme = manLocDetl.getAnfme()+wrkDetl.getAnfme();
+ if (!manLocDetlService.updateAnfme(anfme, locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ } else {
+ manLocDetl = new ManLocDetl();
+ manLocDetl.sync(wrkDetl);
+ manLocDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ manLocDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+ manLocDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ manLocDetl.setModiTime(now);
+ manLocDetl.setCreateTime(now);
+ if (!manLocDetlService.insert(manLocDetl)) {
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())){
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ 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.getLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+ }
+
+ }
+
+ break;
default:
break;
}
+
+ // 鏇存柊鍏ュ簱绔欑偣鐨勫叆搴撴殏瀛樻暟
+ int sourceStaNo = wrkMast.getSourceStaNo() == null ? 0 : wrkMast.getSourceStaNo();
+ if (sourceSite.get(sourceStaNo) != null) {
+ BasDevpMapper basDevpMapper = SpringUtils.getBean(BasDevpMapper.class);
+ BasDevp basDevp = basDevpMapper.selectById(sourceSite.get(sourceStaNo));
+ basDevp.setInQty(basDevp.getInQty() -1);
+ basDevpMapper.updateById(basDevp);
+ }
+
// 淇敼宸ヤ綔涓绘。鐘舵��
wrkMast.setWrkSts(5L);
wrkMast.setModiTime(now);
--
Gitblit v1.9.1