From 6f1daffee3b65b5943dad26e1af3cbcafa46fd90 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期日, 18 二月 2024 16:57:26 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 162 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index a658772..075d879 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -185,8 +185,11 @@
@Override
@Transactional
public void startupFullTakeStoreOrder(StockOutParam param, Long userId) {
- if (Cools.isEmpty(param) || Cools.isEmpty(param.getOrderNo()) || Cools.isEmpty(param.getLocDetls())){
+ if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){
throw new CoolException("鍙傛暟涓虹┖");
+ }
+ if (Cools.isEmpty(param.getOrderNo())){
+ throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�");
}
DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE);
Order order = orderService.selectByNo(param.getOrderNo());
@@ -252,10 +255,12 @@
orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸
orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷
orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷
+ orderDetl.setWeight(locDetl.getWeight());
// orderDetl.setWorkQty(locDetl.getAnfme());
orderDetl.setWorkQty(0.0);
orderDetl.setOrderId(order.getId());
orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setOrigin(locDetl.getOrigin());
orderDetl.setCreateBy(userId);
orderDetl.setCreateTime(now);
orderDetl.setUpdateBy(userId);
@@ -340,6 +345,9 @@
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
wrkMast.setSheetNo("0");
+ if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){
+ wrkMast.setSheetNo("3");
+ }
wrkMast.setBarcode(locMast.getBarcode());
wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
@@ -528,7 +536,17 @@
if (Cools.isEmpty(param.getOutSite())) {
throw new CoolException("绔欑偣涓嶅瓨鍦�");
}
+ List<String> locNoOtherListOne = new ArrayList<>();
for (String locNo : param.getLocNos()) {
+
+ //灏忔枡绠变即鐢熷嚭搴�
+ if (Utils.getRow(locNo)<=8){
+ String locNoOther = staNoOther(locNo);
+ if (!param.getLocNos().contains(locNoOther)){
+ locNoOtherListOne.add(locNoOther);
+ }
+ }
+
// 鑾峰彇宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
// 鑾峰彇搴撲綅
@@ -583,6 +601,139 @@
throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
}
}
+ }
+
+ for (String locNo:locNoOtherListOne){
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+
+ //浼寸敓鍏ュ簱宸ヤ綔鍙�
+ int workNoRu = commonService.getWorkNo(0);
+
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(locNo);
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+ }
+ if (!locMast.getLocSts().equals("D")){
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+ }
+ // 鑾峰彇婧愮珯
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 110)
+ .eq("stn_no", param.getOutSite())
+ .eq("crn_no", locMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ Integer sourceStaNo = staDesc.getCrnStn();
+ if (Cools.isEmpty(sourceStaNo)) {
+ throw new CoolException("妫�绱㈡簮绔欏け璐�");
+ }
+ Date now = new Date();
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+ wrkMast.setIoPri(10D);
+ wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+ wrkMast.setStaNo(crnStaRu(locMast.getCrnNo())); // 鐩爣绔� 鍫嗗灈鏈哄叆搴撳彛
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+ wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("Y"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ wrkMast.setWorkNoOther(workNoRu);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+ if (locMast.getLocSts().equals("D")){
+ locMast.setLocSts("R");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMastRu = new WrkMast();
+ wrkMastRu.setWrkNo(workNoRu);
+ wrkMastRu.setIoTime(new Date());
+ wrkMastRu.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMastRu.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
+ wrkMastRu.setIoPri(13D); // 浼樺厛绾�
+ wrkMastRu.setCrnNo(wrkMast.getCrnNo());
+ wrkMastRu.setSourceStaNo(wrkMast.getSourceStaNo());
+ wrkMastRu.setStaNo(wrkMast.getStaNo());
+// wrkMast.setLocNo(dto.getLocNo());
+ wrkMastRu.setFullPlt("N"); // 婊℃澘
+ wrkMastRu.setPicking("N"); // 鎷f枡
+ wrkMastRu.setExitMk("N"); // 閫�鍑�
+ wrkMastRu.setEmptyMk("Y"); // 绌烘澘
+ wrkMastRu.setLinkMis("Y");
+ wrkMastRu.setCtnType(wrkMast.getCtnType()); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMastRu.setAppeTime(new Date());
+ wrkMastRu.setModiTime(new Date());
+ boolean resOther = wrkMastService.insert(wrkMastRu);
+ if (!resOther) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ }
+ }
+
+ public Integer crnStaRu(Integer crnNo){
+ switch (crnNo){
+ case 1:
+ return 153;
+ case 2:
+ return 145;
+ default:
+ return null;
+ }
+ }
+
+ public String staNoOther(String locNo){
+ int row = Utils.getRow(locNo);
+ if (row%4==0 || row%4==1){
+ return getDeepLoc2(locNo,row);
+ }else {
+ return getDeepLoc(locNo,row);
+ }
+ }
+
+ /**
+ * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿
+ */
+ public static String getDeepLoc(String shallowLoc,int row) {
+ if (row == 2 || row == 6) {
+ return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+ } else if (row == 3 || row == 7) {
+ return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+ }else {
+ return shallowLoc;
+ }
+ }
+
+ /**
+ * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿
+ */
+ public static String getDeepLoc2(String shallowLoc,int row) {
+ if (row == 1 || row == 5) {
+ return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2);
+ } else if (row == 4 || row == 8) {
+ return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2);
+ }else {
+ return null;
}
}
@@ -774,15 +925,17 @@
if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
wrkMast.setWrkSts(4L);
// 鍑哄簱
- } else if (wrkMast.getWrkSts() > 10) {
+ } else if (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()!=202) {
wrkMast.setWrkSts(14L);
+ }else if (wrkMast.getIoType()==202){
+ wrkMast.setWrkSts(57L);
}
Date now = new Date();
wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
wrkMast.setCrnEndTime(now);
wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
- wrkMast.setSheetNo("2");
+ wrkMast.setSheetNo("3");
// 瀹屾垚鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩瀹屾垚");
if (!wrkMastService.updateById(wrkMast)) {
@@ -939,7 +1092,7 @@
locMastService.updateById(locMast);
}
// 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+ } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=202) {
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
@@ -960,6 +1113,7 @@
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
+ } else if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
@@ -1046,6 +1200,9 @@
}
// 鍒犻櫎宸ヤ綔妗f槑缁�
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
+ }
+ if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){
+ return;
}
// 淇敼搴撲綅鐘舵��
@@ -1233,7 +1390,7 @@
}
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr()));
if (Cools.isEmpty(locDetls) || locDetls.size()<1){
- throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 鍝佸彿锛�"+param.getLocDetls().get(0).getMatnr());
+ throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 瑙勬牸锛�"+param.getLocDetls().get(0).getMatnr());
}
try {
locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr());
--
Gitblit v1.9.1