From 68aafce5aaef75bc6505b899d380aa58e00067fa Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 20 八月 2024 15:18:30 +0800
Subject: [PATCH] 桁架理货出库流程修改
---
src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java | 2
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 58 ++++++++++---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 2
src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java | 9 ++
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 132 +++++++++++++++++++++-----------
5 files changed, 141 insertions(+), 62 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java b/src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java
index 2a0a538..df6d8aa 100644
--- a/src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/ZphjcdwcParam.java
@@ -12,4 +12,13 @@
private Integer workNo; // 宸ヤ綔鍙�
+ // 鎹㈢洏鐐圭珯鐐�
+ private Integer sourceStaNo;
+
+ // 缁勭洏绔欑偣鎵樼洏鐮�
+ private String barcode;
+
+ // 缁勭洏绔欑偣
+ private Integer site;
+
}
diff --git a/src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java b/src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java
index c4b9a65..894bfdb 100644
--- a/src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java
+++ b/src/main/java/com/zy/asrs/entity/result/ZphjcdwcVo.java
@@ -16,6 +16,8 @@
private int staNo; // 鐩爣绔欑偣
+ private String barcode; // 鎵樼洏鏉$爜
+
private int descFlag; // 鎷嗗灈鍑烘潵鎵樼洏鍑哄簱璺緞
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 1ae1587..7dbc6d1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1177,7 +1177,7 @@
if (wrkMast == null) {
throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + param.getBarcode());
}
- if (wrkMast.getIoType() != 101 || wrkMast.getWrkSts() != 20) {
+ if (wrkMast.getWrkSts() != 20) {
throw new CoolException(wrkMast.getWrkNo() + ",宸ヤ綔妗g被鍨嬶細" + wrkMast.getIoType() + "宸ヤ綔鐘舵�侊細" + wrkMast.getWrkSts() + ",涓嶅尮閰�");
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index c3f4301..f43ab7b 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -2,7 +2,6 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
@@ -1591,8 +1590,8 @@
@Transactional
public R zphjCdwc(ZphjcdwcParam param) {
- if (Cools.isEmpty(param.getWorkNo())) {
- throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒");
+ if (Cools.isEmpty(param.getWorkNo(),param.getBarcode(),param.getSourceStaNo(),param.getSite())) {
+ return R.parse("鍙傛暟涓嶈兘涓虹┖锛岃妫�鏌ュ叆鍙�");
}
WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
if (wrkMast == null) {
@@ -1602,60 +1601,59 @@
throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�42/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
}
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
- throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
- }
- // 鑾峰彇鐩爣绔�
- Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", wrkMast.getIoType() - 50)
- .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
- .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
- StaDesc staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
- }
- // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
- Integer staNo = staDesc.getCrnStn();
- // 鏇存柊宸ヤ綔绫诲瀷103->53
- wrkMast.setIoType(53);
- wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級
- // 鐩爣绔欑偣婧愮珯鐐硅浆鎹�
- wrkMast.setSourceStaNo(wrkMast.getStaNo());
- wrkMast.setStaNo(staNo);
- // 鐩爣搴撲綅=婧愬簱浣�
- wrkMast.setLocNo(wrkMast.getSourceLocNo());
- // 婧愬簱浣嶆竻闄�
- wrkMast.setSourceLocNo("");
- wrkMast.setModiTime(new Date());
-
- int outStaNo = 0; // 鍑哄簱婧愮珯鐐�
- if (staNo == 3044 || staNo == 3045) {
- outStaNo = 3046;
- } else if(staNo == 3040 || staNo == 3041) {
- outStaNo = 3042;
- }
- if (outStaNo == 0) {
- throw new CoolException("鍑哄簱婧愮珯鐐硅浆鎹㈡湁璇細" + staNo);
- }
-
// 鑾峰彇鍑哄簱鐗╂枡
List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+
+ // 鍒涘缓妗佹灦鐞嗚揣鍑哄簱鐨勫伐浣滄。
+ int work = create111Work(wrkMast, wrkDetls, param.getSite(), wrkMast.getStaNo(), param.getBarcode());
+
int descFlag = getType(wrkDetls);
// get0鍘熸墭鐩樺洖娴佷俊鎭紝get1鎷嗗灈鍑烘潵鐗╂枡鍑哄簱淇℃伅
List<ZphjcdwcVo> zphjcdwcVos = new ArrayList<>();
ZphjcdwcVo zphjcdwcVo1 = new ZphjcdwcVo();
zphjcdwcVo1.setWorkNo(wrkMast.getWrkNo());
- zphjcdwcVo1.setStaNo(wrkMast.getStaNo());
- zphjcdwcVo1.setSourceStaNo(wrkMast.getSourceStaNo());
+ zphjcdwcVo1.setStaNo(wrkMast.getSourceStaNo());
+ zphjcdwcVo1.setSourceStaNo(param.getSourceStaNo());
+ zphjcdwcVo1.setBarcode(wrkMast.getBarcode());
zphjcdwcVos.add(zphjcdwcVo1);
ZphjcdwcVo zphjcdwcVo2 = new ZphjcdwcVo();
- zphjcdwcVo2.setSourceStaNo(outStaNo);
- zphjcdwcVo2.setStaNo(3106); // 3106/3077
+ zphjcdwcVo2.setWorkNo(work);
+ zphjcdwcVo2.setSourceStaNo(param.getSite());
+ zphjcdwcVo2.setStaNo(wrkMast.getStaNo());
+ zphjcdwcVo2.setBarcode(param.getBarcode());
zphjcdwcVo2.setDescFlag(descFlag);
zphjcdwcVos.add(zphjcdwcVo2);
+
+
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+ // 鑾峰彇鐩爣绔�
+// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+// .eq("type_no", wrkMast.getIoType() - 50)
+// .eq("stn_no", wrkMast.getSourceStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+// .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+// StaDesc staDesc = staDescService.selectOne(wrapper);
+// if (Cools.isEmpty(staDesc)) {
+// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+// }
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+// Integer staNo = staDesc.getCrnStn();
+ // 鏇存柊宸ヤ綔绫诲瀷103->53
+ wrkMast.setIoType(53);
+ wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級
+ // 鐩爣绔欑偣婧愮珯鐐硅浆鎹�
+ wrkMast.setStaNo(wrkMast.getSourceStaNo());
+ wrkMast.setSourceStaNo(param.getSourceStaNo());
+
+ // 鐩爣搴撲綅=婧愬簱浣�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo());
+ // 婧愬簱浣嶆竻闄�
+ wrkMast.setSourceLocNo("");
+ wrkMast.setModiTime(new Date());
// 鏇存柊宸ヤ綔涓绘。
wrkMastService.updateById(wrkMast);
@@ -1672,12 +1670,54 @@
}
/**
+ * 鍒涘缓妗佹灦鐞嗚揣鍑哄簱鐨勫伐浣滄。
+ */
+ private int create111Work(WrkMast wrk, List<WrkDetl> wrkDetls, Integer site, Integer staNo,String barcode) {
+ int workNo = commonService.getWorkNo(4);
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋
+ wrkMast.setIoType(111); // 鍏ュ嚭搴撶姸鎬侊細111.鐞嗚揣璐存爣鍑哄簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setCrnNo(wrk.getCrnNo());
+ wrkMast.setSourceStaNo(site);
+ wrkMast.setStaNo(staNo);
+ wrkMast.setSourceLocNo(wrk.getSourceLocNo());
+ wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+
+ // 鎻掑叆宸ヤ綔妗�
+ wrkMastService.insert(wrkMast);
+
+ // 鎻掑叆宸ヤ綔妗f槑缁�
+ for (WrkDetl wrkDetl:wrkDetls) {
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setBarcode(barcode);
+ wrkDetl.setZpallet(barcode);
+ wrkDetlService.insert(wrkDetl);
+ }
+
+ return workNo;
+ }
+
+ /**
* 鏍规嵁鍑哄簱鐗╂枡鏄庣粏鍒ゆ柇鏄惁鍘昏创鏍�(鍗曞嵎璐存爣锛屽鍗蜂笉璐存爣)
* @param wrkDetls 鐗╂枡鏄庣粏
- * @return 0.澶氬嵎涓嶈创鏍囪矾寰勶紝1.鍗曞嵎璐存爣璺緞
+ * @return 1.澶氬嵎鐩存帴鍑鸿矾寰勶紝4.鍗曞嵎璐存爣璺緞
*/
private int getType(List<WrkDetl> wrkDetls) {
- return wrkDetls.size() > 1 ? 0 : 1; // 涓�鏉¤褰曞氨鏄竴鍗�
+ return wrkDetls.size() > 1 ? 1 : 4; // 涓�鏉¤褰曞氨鏄竴鍗�
}
public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode) {
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 3e49836..9a4f64f 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -173,21 +173,21 @@
}
// 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- if (orderDetl==null){
- orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- }
- 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){}
+// OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+// if (orderDetl==null){
+// orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+// }
+// 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
@@ -419,6 +419,34 @@
}
}
break;
+ // 鐞嗚揣璐存爣鍑哄簱
+ case 111:
+ List<WrkDetl> wrkDetls111 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkDetls111.isEmpty()) {
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ for (WrkDetl wrkDetl : wrkDetls111) {
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ }
+ 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) {
+ }
+ }
+ break;
default:
break;
}
--
Gitblit v1.9.1