From aa9f5df9a7ea885dcc157e1dd86dc6ee3c10d488 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 09 一月 2025 09:16:56 +0800
Subject: [PATCH] #拣料盘点重新找库位
---
src/main/webapp/views/wrkDetlLog/wrkDetlLog.html | 2
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 2
src/main/webapp/views/report/viewWorkOut.html | 2
src/main/java/com/zy/asrs/service/LocDetlService.java | 2
src/main/java/com/zy/asrs/entity/LocDetl.java | 4 +-
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 50 +++++++++++++++++++++++--
src/main/resources/mapper/LocDetlMapper.xml | 5 +-
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 2
src/main/webapp/views/report/viewWorkIn.html | 2
src/main/java/com/zy/common/web/WcsController.java | 47 +++++++++++++++++------
src/main/webapp/static/js/common.js | 2
11 files changed, 91 insertions(+), 29 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/LocDetl.java b/src/main/java/com/zy/asrs/entity/LocDetl.java
index 9c9d0e5..9de6142 100644
--- a/src/main/java/com/zy/asrs/entity/LocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -47,8 +47,8 @@
@ExcelProperty("瑙勬牸")
private String specs;
- @ApiModelProperty(value= "璐у搧鐗瑰緛")
- @ExcelProperty("璐у搧鐗瑰緛")
+ @ApiModelProperty(value= "鎵瑰彿")
+ @ExcelProperty("鎵瑰彿")
private String batch;
@ApiModelProperty(value= "鍗曟嵁缂栧彿")
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index a2c043b..6d0cabd 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -23,7 +23,7 @@
LocDetl selectItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
- LocDetl selectItemByLocNo(String locNo);
+ List<LocDetl> selectItemByLocNo(String locNo);
int deleteItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index adf1a03..6dd58c8 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -15,7 +15,7 @@
LocDetl selectItem(String locNo, String matnr, String batch);
- LocDetl selectItemByLocNo(String locNo);
+ List<LocDetl> selectItemByLocNo(String locNo);
Page<LocDetl> getStockOut(Page<LocDetl> page);
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 5a4f0a8..8bd5696 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -118,7 +118,7 @@
return this.baseMapper.selectItem(locNo, matnr, batch);
}
- public LocDetl selectItemByLocNo(String locNo) {
+ public List<LocDetl> selectItemByLocNo(String locNo) {
return this.baseMapper.selectItemByLocNo(locNo);
}
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 52ddfb1..97f0c5c 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -152,6 +152,11 @@
break;
// 鎷f枡鍏ュ簱
case 53:
+ // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏
+ List<LocDetl> locDetl53 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+ if (!locDetl53.isEmpty()) {
+ locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+ }
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls53.isEmpty()) {
@@ -160,13 +165,24 @@
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());
+ if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ } else {
+ locDetl = new LocDetl();
+ locDetl.sync(wrkDetl);
+ locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+ locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ locDetl.setModiTime(now);
+ locDetl.setAppeTime(now);
+ if (!locDetlService.insert(locDetl)) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
@@ -179,6 +195,32 @@
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("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+
+// 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("鎷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();
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 1ee123a..f1d3197 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -22,6 +22,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
@@ -344,33 +345,34 @@
* 浠诲姟涓柇,4-鏀捐揣
* 瀹屾垚,8-浠诲姟缁撴潫
*/
+
if (statusParam.getTaskStatus() == 0) {
//鎷f枡鍜岀洏鐐瑰啀鍏ュ簱鍒ゆ柇
if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14) {
-// LocDetl locDetl = locDetlService.selectItemByLocNo(wrkMast.getSourceLocNo());
-// List<WrkDetl> wrkDetl = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
String sourcecLocNo = wrkMast.getSourceLocNo();
-// // 鑾峰彇鍚庝袱浣嶇殑灞傛暟
-// String layerStr = sourcecLocNo.substring(sourcecLocNo.length() - 2);
-// int layer = Integer.parseInt(layerStr);
-// // 鍒ゆ柇灞傛暟
-// Short locType1 = (short) ((layer == 1) ? 1 : 2);
-// LocTypeDto locTypeDto = new LocTypeDto();
-// locTypeDto.setLocType1(locType1);
-// StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetl.get(0).getMatnr(), wrkDetl.get(0).getBatch(), null, 4, locTypeDto, 2);
+ // 鑾峰彇鍚庝袱浣嶇殑灞傛暟
+ String layerStr = sourcecLocNo.substring(sourcecLocNo.length() - 2);
+ int layer = Integer.parseInt(layerStr);
+ // 鍒ゆ柇灞傛暟
+ Short locType1 = (short) ((layer == 1) ? 1 : 2);
+ LocTypeDto locTypeDto = new LocTypeDto();
+ locTypeDto.setLocType1(locType1);
+ //娉ㄦ剰涓�涓澘鍙兘鏀惧悓涓�绉嶇墿鏂�
+ StartupDto dto = commonService.getLocNoRunPick(4, 1, 101, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2);
Date now = new Date();
wrkMast.setIoTime(now);
wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
wrkMast.setWrkSts(1L);//1.宸叉帴鏀�
wrkMast.setSourceStaNo(101); // 婧愮珯
wrkMast.setStaNo(null); // 鐩爣绔�
- wrkMast.setLocNo(sourcecLocNo); // 鐩爣搴撲綅
- wrkMast.setSourceLocNo("");
+ wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅
+ wrkMast.setSourceLocNo(sourcecLocNo);
wrkMast.setModiTime(now);
wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
// 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
- LocMast locMast2 = locMastService.selectById(sourcecLocNo);
+ LocMast locMast2 = locMastService.selectById(dto.getLocNo());
locMast2.setLocSts("Q");
locMast2.setModiTime(new Date());
if (!locMastService.updateById(locMast2)) {
@@ -390,6 +392,25 @@
if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 11 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
wrkMast.setWrkSts(4L);//4.鍏ュ簱瀹屾垚
} else if (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) {
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ String sourcecLocNo = wrkMast.getSourceLocNo();
+ //鏇存柊宸ヤ綔鏄庣粏骞舵竻绌烘簮搴撲綅
+ for (WrkDetl wrkDetl : wrkDetls){
+ LocDetl locDetl = locDetlService.selectItem(wrkMast.getSourceLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (null != locDetl) {
+ if (!wrkDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(),wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ throw new CoolException("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ }
+ LocMast locMast1 = locMastService.selectById(sourcecLocNo);
+ locMast1.setLocSts("O");
+ locMast1.setModiTime(new Date());
+ if (!locMastService.updateById(locMast1)) {
+
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
wrkMast.setWrkSts(14L);//14.宸插嚭搴撴湭纭
} else if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 110) {
wrkMast.setWrkSts(7L);//7.鍑哄簱瀹屾垚
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 09bcd34..1faecb9 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -67,10 +67,9 @@
</select>
<select id="selectItemByLocNo" resultMap="BaseResultMap">
- select top 1 *
+ select *
from asr_loc_detl
- where 1=1
- and loc_no = #{locNo}
+ where loc_no = #{locNo}
</select>
<delete id="deleteItem">
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 054399e..61de4a1 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -225,7 +225,7 @@
{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿锛堝搧鍙凤級', sort:true}
,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О锛堝搧鍚嶏級', sort:true}
,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: false}
- ,{field: 'batch', align: 'center',title: '璐у搧鐗瑰緛', sort:true}
+ ,{field: 'batch', align: 'center',title: '鎵瑰彿', sort:true}
,{field: 'anfme', align: 'center',title: '鏁伴噺', hide: false}
,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜', hide: false}
diff --git a/src/main/webapp/views/report/viewWorkIn.html b/src/main/webapp/views/report/viewWorkIn.html
index 0636317..b0caa2e 100644
--- a/src/main/webapp/views/report/viewWorkIn.html
+++ b/src/main/webapp/views/report/viewWorkIn.html
@@ -41,7 +41,7 @@
</div>
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="batch" placeholder="璐у搧鐗瑰緛" autocomplete="off">
+ <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
</div>
</div>
<div class="layui-inline">
diff --git a/src/main/webapp/views/report/viewWorkOut.html b/src/main/webapp/views/report/viewWorkOut.html
index 7e8a106..badbe6b 100644
--- a/src/main/webapp/views/report/viewWorkOut.html
+++ b/src/main/webapp/views/report/viewWorkOut.html
@@ -41,7 +41,7 @@
</div>
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="batch" placeholder="璐у搧鐗瑰緛" autocomplete="off">
+ <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
</div>
</div>
<div class="layui-inline">
diff --git a/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html b/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
index d40678c..7f899d0 100644
--- a/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
+++ b/src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
@@ -46,7 +46,7 @@
</div>
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="batch" placeholder="璐у搧鐗瑰緛" autocomplete="off">
+ <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
</div>
</div>
<div class="layui-inline">
--
Gitblit v1.9.1