From 178d30a9b69598e82489d24b1da18b3b3ab0766b Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 19 一月 2026 14:01:50 +0800
Subject: [PATCH] #拣料盘点功能优化
---
src/main/java/com/zy/common/web/WcsController.java | 260 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 205 insertions(+), 55 deletions(-)
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 700d502..e102f20 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -95,7 +95,19 @@
return Re.error("浠撳簱缂栧彿涓嶅尮閰�");
}
List<WaitPakin> waitPakins = null;
- if (param.getFromPort().equals("1001")) {
+
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarCode()));
+
+ if(wrkMast != null && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
+ switch (wrkMast.getIoType()){
+ case 103:param.setIoType(103);break;//鎷f枡
+ case 107:param.setIoType(107);break;//鐩樼偣
+ }
+ }else{
+ //鍏ㄦ澘鍏ュ簱
+ param.setIoType(1);
+ }
+ if (param.getFromPort().equals("1001") && param.getIoType()!=103 && param.getIoType() != 107) {
//鏈夌┖鏉垮嚭搴撴椂绂佹鍏ュ簱
int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("sta_no", 1001).notIn("wrk_sts", 7));
@@ -108,7 +120,7 @@
}
waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarCode()));
if (Cools.isEmpty(waitPakins)) {
- WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarCode());
+// WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarCode());
if (wrkMast != null && wrkMast.getIoType() == 103) {
return Re.parse(CodeRes.PICK_600);
}
@@ -153,17 +165,14 @@
StartupDto dto = null;
- //鍏ㄦ澘鍏ュ簱
- param.setIoType(1);
switch (param.getIoType()) {
case 1://婊℃墭鐩樺叆搴�
assert waitPakins != null;
dto = startupFullPutStore(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, waitPakins);
break;
-// case 10://绌烘墭鐩樺叆搴�
-// dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto, param.getBarCode());
-// break;
+ case 103:startupFullPutStore103(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, wrkMast);break;
+ case 107:startupFullPutStore107(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, wrkMast);break;
default:
break;
}
@@ -378,6 +387,147 @@
return dto;
}
+ /**
+ * 鐩樼偣鍏ュ簱
+ */
+ @Transactional
+ public StartupDto startupFullPutStore107(Integer devpNo, String barcode, LocTypeDto locTypeDto, WrkMast wrkMast) {
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+ List<WrkDetl> wrkDetlList = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ WrkDetl wrkDetl = wrkDetlList.get(0);
+ findLocNoAttributeVo.setMatnr(wrkDetl.getMatnr());
+ findLocNoAttributeVo.setBatch(wrkDetl.getBatch());
+// StartupDto dto = commonService.getLocNo(1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto);
+ StartupDto dto = commonService.getLocNoNew(1, devpNo, findLocNoAttributeVo, locTypeDto,barcode);
+ if (dto == null) {
+ throw new CoolException("娌℃湁妫�绱㈠埌绌哄簱浣�");
+ }
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ try{
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoTime(now);
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(0L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
+ wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(now);
+ wrkMast.setMk("N");//鏄惁瀹屾垚涓婃姤wcs
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
+ wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(wrkMast.getWrkNo());
+ sourceStaNo.setModiTime(now);
+ if (!basDevpService.updateById(sourceStaNo)) {
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("O")) {
+ locMast.setLocSts("Q"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ return dto;
+ }
+
+
+ /**
+ * 鐩樼偣鍏ュ簱
+ */
+ @Transactional
+ public StartupDto startupFullPutStore103(Integer devpNo, String barcode, LocTypeDto locTypeDto, WrkMast wrkMast) {
+ // 婧愮珯鐐圭姸鎬佹娴�
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+ List<WrkDetl> wrkDetlList = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ WrkDetl wrkDetl = wrkDetlList.get(0);
+ findLocNoAttributeVo.setMatnr(wrkDetl.getMatnr());
+ findLocNoAttributeVo.setBatch(wrkDetl.getBatch());
+// StartupDto dto = commonService.getLocNo(1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto);
+ StartupDto dto = commonService.getLocNoNew(1, devpNo, findLocNoAttributeVo, locTypeDto,barcode);
+ if (dto == null) {
+ throw new CoolException("娌℃湁妫�绱㈠埌绌哄簱浣�");
+ }
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ try{
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoTime(now);
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(0L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
+ wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(now);
+ wrkMast.setMk("N");//鏄惁瀹屾垚涓婃姤wcs
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
+ wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(wrkMast.getWrkNo());
+ sourceStaNo.setModiTime(now);
+ if (!basDevpService.updateById(sourceStaNo)) {
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("O")) {
+ locMast.setLocSts("Q"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ return dto;
+ }
+
@Transactional
public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto) {
// 婧愮珯鐐圭姸鎬佹娴�
@@ -451,44 +601,44 @@
*/
if (statusParam.getTaskStatus() == 0) {
- //鎷f枡鍜岀洏鐐瑰啀鍏ュ簱鍒ゆ柇
- if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14) {
- 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, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2);
- FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
- findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr());
- StartupDto dto = commonService.getLocNoNew(1, 101, findLocNoAttributeVo,locTypeDto,null);
- Date now = new Date();
- wrkMast.setIoTime(now);
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+// //鎷f枡鍜岀洏鐐瑰啀鍏ュ簱鍒ゆ柇
+// if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14) {
+// 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, wrkDetls.get(0).getMatnr(), wrkDetls.get(0).getBatch(), null, 4, locTypeDto, 2);
+// FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+// findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr());
+// StartupDto dto = commonService.getLocNoNew(1, 101, findLocNoAttributeVo,locTypeDto,null);
+// 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(dto.getLocNo()); // 鐩爣搴撲綅
+// wrkMast.setSourceLocNo(sourcecLocNo);
+// wrkMast.setModiTime(now);
+// wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+//
+// // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+// LocMast locMast2 = locMastService.selectById(dto.getLocNo());
+// locMast2.setLocSts("Q");
+// locMast2.setModiTime(new Date());
+// if (!locMastService.updateById(locMast2)) {
+//
+// throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+// }
+// } else {
wrkMast.setWrkSts(1L);//1.宸叉帴鏀�
- wrkMast.setSourceStaNo(101); // 婧愮珯
- wrkMast.setStaNo(null); // 鐩爣绔�
- wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅
- wrkMast.setSourceLocNo(sourcecLocNo);
- wrkMast.setModiTime(now);
- wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
-
- // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
- LocMast locMast2 = locMastService.selectById(dto.getLocNo());
- locMast2.setLocSts("Q");
- locMast2.setModiTime(new Date());
- if (!locMastService.updateById(locMast2)) {
-
- throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
- }
- } else {
- wrkMast.setWrkSts(1L);//1.宸叉帴鏀�
- }
+// }
} else if (statusParam.getTaskStatus() == 1) {
wrkMast.setWrkSts(2L);//2.浠诲姟寮�濮�
} else if (statusParam.getTaskStatus() == 2) {
@@ -531,17 +681,17 @@
}
}
wrkMastService.updateById(wrkMast);
- //宸插叆搴撴湭纭鍘嗗彶妗f洿鏂�
- if(wrkMast.getWrkSts() == 14){
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
- throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�");
- }
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�");
- }
- }
+// //宸插叆搴撴湭纭鍘嗗彶妗f洿鏂�
+// if(wrkMast.getWrkSts() == 14 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
+// // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+// if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+// throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�");
+// }
+// // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�");
+// }
+// }
return Re.ok();
}
--
Gitblit v1.9.1