From d05363ac459dfa8acc2fe75079d69c2b4e15e5e4 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 02 六月 2023 08:52:44 +0800
Subject: [PATCH] 捡料盘点回库逻辑恢复
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 340 +++++++++++++++++++++++++++++++++++---------------------
1 files changed, 211 insertions(+), 129 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 27d906e..10fe3a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSON;
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.exception.CoolException;
import com.zy.asrs.entity.*;
@@ -484,136 +485,217 @@
continue;
}
- try {
- // 璁块棶 WMS 鑾峰彇鍏ュ簱搴撲綅
- LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
- SearchLocParam param = new SearchLocParam();
- param.setWrkNo(wrkMast.getWrkNo());
- param.setIoType(wrkMast.getIoType());
- param.setSourceStaNo(pickSta.getStaNo());
- param.setLocType1(locTypeDto.getLocType1());
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/pakin/loc/v1")
- .setJson(JSON.toJSONString(param))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
- Integer code = jsonObject.getInteger("code");
- if (code.equals(200)) {
- StartupDto dto = jsonObject.getObject("data", StartupDto.class);
- News.info("鍐嶅叆搴撹幏鍙栨柊搴撲綅鎴愬姛锛岃繑鍥炴暟鎹�===>>", JSON.toJSON(dto));
-// // 鑾峰彇鐩爣绔�
-// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-// .eq("type_no", wrkMast.getIoType() - 50)
-// .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-// .eq("crn_no", dto.getCrnNo()); // 鍫嗗灈鏈哄彿
-// StaDesc staDesc = staDescService.selectOne(wrapper);
-// if (Cools.isEmpty(staDesc)) {
-// News.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
-// continue;
-// }
-// // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-// Integer staNo = staDesc.getCrnStn();
-
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-// if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
-// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
-// }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
- throw new CoolException(wrkMast.getWrkNo() + "淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
- }
-
- String sourceLocNo = wrkMast.getSourceLocNo().trim();
-
- // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
- wrkMast.setIoPri(13D);
- wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯
- wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
- wrkMast.setCrnNo(dto.getCrnNo());
- wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
- wrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
- }
- if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
- throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
- }
-
- LocMast locMast = null;
- // 淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
- locMast = locMastService.selectById(wrkMast.getLocNo());
- locMast.setLocSts("Q");
- locMast.setModiTime(new Date());
- if (!locMastService.updateById(locMast)) {
- throw new CoolException(wrkMast.getWrkNo() + "淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�");
- }
- // 婧愬簱浣嶅簱瀛樻槑缁嗚浆绉诲埌鐩爣搴撲綅
- if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
- throw new CoolException(wrkMast.getLocNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�");
- }
-
- // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
- LocMast sourceLocMast = locMastService.selectById(sourceLocNo);
- if (sourceLocMast.getLocSts().equals("P")) {
- sourceLocMast.setLocSts("O");
- sourceLocMast.setBarcode("");
- sourceLocMast.setModiTime(new Date());
- if (!locMastService.updateById(sourceLocMast)) {
- throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
- }
- locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
- }
-
- // 鏉$爜璁惧澶勭悊
- barcodeThread.setBarcode("");
-
- ledThread.errorReset();
-
- if(wrkMast.getIoType()>100){
- throw new CoolException("鍐嶅叆搴撴洿鏂板伐浣滄。澶辫触锛屼笉鑳界粰PLC涓嬪彂浠诲姟===>>" + wrkMast.getWrkNo());
- }
- // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result) {
- News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
-
- } else if (code == 500){
- if (ledThread != null) {
- String errorMsg = jsonObject.getString("msg");
- if (!Cools.isEmpty(errorMsg)) {
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
- }
- }
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
- } else {
- staProtocol.setWorkNo((short) 9995);
- staProtocol.setStaNo(pickSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-
- // led 寮傚父鏄剧ず
- if (ledThread != null) {
- String errorMsg = jsonObject.getString("msg");
-// String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒";
- MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-// continue;
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", wrkMast.getIoType() - 50)
+ .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+ .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ News.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+ continue;
}
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getCrnStn();
+
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException(wrkMast.getWrkNo() + "淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+
+ String sourceLocNo = wrkMast.getSourceLocNo().trim();
+
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setIoPri(13D);
+ wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(staNo); // 鐩爣绔�
+ wrkMast.setCrnNo(wrkMast.getCrnNo());
+ wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
+ throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+
+ LocMast locMast = null;
+ // 淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ locMast = locMastService.selectById(wrkMast.getLocNo());
+ locMast.setLocSts("Q");
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException(wrkMast.getWrkNo() + "淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�");
+ }
+ // 婧愬簱浣嶅簱瀛樻槑缁嗚浆绉诲埌鐩爣搴撲綅
+ if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
+ throw new CoolException(wrkMast.getLocNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�");
+ }
+
+ // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
+ LocMast sourceLocMast = locMastService.selectById(sourceLocNo);
+ if (sourceLocMast.getLocSts().equals("P")) {
+ sourceLocMast.setLocSts("O");
+ sourceLocMast.setBarcode("");
+ sourceLocMast.setModiTime(new Date());
+ if (!locMastService.updateById(sourceLocMast)) {
+ throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
+ }
+ locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+ }
+
+ // 鏉$爜璁惧澶勭悊
+ barcodeThread.setBarcode("");
+
+ if(wrkMast.getIoType()>100){
+ throw new CoolException("鍐嶅叆搴撴洿鏂板伐浣滄。澶辫触锛屼笉鑳界粰PLC涓嬪彂浠诲姟===>>" + wrkMast.getWrkNo());
+ }
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+ staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+ }
+
+// try {
+// // 璁块棶 WMS 鑾峰彇鍏ュ簱搴撲綅
+// LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+// SearchLocParam param = new SearchLocParam();
+// param.setWrkNo(wrkMast.getWrkNo());
+// param.setIoType(wrkMast.getIoType());
+// param.setSourceStaNo(pickSta.getStaNo());
+// param.setLocType1(locTypeDto.getLocType1());
+// String response = new HttpHandler.Builder()
+// .setUri(wmsUrl)
+// .setPath("/rpc/pakin/loc/v1")
+// .setJson(JSON.toJSONString(param))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+// Integer code = jsonObject.getInteger("code");
+// if (code.equals(200)) {
+// StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+// News.info("鍐嶅叆搴撹幏鍙栨柊搴撲綅鎴愬姛锛岃繑鍥炴暟鎹�===>>", JSON.toJSON(dto));
+//// // 鑾峰彇鐩爣绔�
+//// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//// .eq("type_no", wrkMast.getIoType() - 50)
+//// .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+//// .eq("crn_no", dto.getCrnNo()); // 鍫嗗灈鏈哄彿
+//// StaDesc staDesc = staDescService.selectOne(wrapper);
+//// if (Cools.isEmpty(staDesc)) {
+//// News.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+//// continue;
+//// }
+//// // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+//// Integer staNo = staDesc.getCrnStn();
+//
+// // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+//// if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+//// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+//// }
+// // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+// if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+// throw new CoolException(wrkMast.getWrkNo() + "淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+// }
+//
+// String sourceLocNo = wrkMast.getSourceLocNo().trim();
+//
+// // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+// wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+// wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+// wrkMast.setIoPri(13D);
+// wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯
+// wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔�
+// wrkMast.setCrnNo(dto.getCrnNo());
+// wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+// wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+// wrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+// }
+// if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) {
+// throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+// }
+//
+// LocMast locMast = null;
+// // 淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+// locMast = locMastService.selectById(wrkMast.getLocNo());
+// locMast.setLocSts("Q");
+// locMast.setModiTime(new Date());
+// if (!locMastService.updateById(locMast)) {
+// throw new CoolException(wrkMast.getWrkNo() + "淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�");
+// }
+// // 婧愬簱浣嶅簱瀛樻槑缁嗚浆绉诲埌鐩爣搴撲綅
+// if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) {
+// throw new CoolException(wrkMast.getLocNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�");
+// }
+//
+// // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�
+// LocMast sourceLocMast = locMastService.selectById(sourceLocNo);
+// if (sourceLocMast.getLocSts().equals("P")) {
+// sourceLocMast.setLocSts("O");
+// sourceLocMast.setBarcode("");
+// sourceLocMast.setModiTime(new Date());
+// if (!locMastService.updateById(sourceLocMast)) {
+// throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�");
+// }
+// locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+// }
+//
+// // 鏉$爜璁惧澶勭悊
+// barcodeThread.setBarcode("");
+//
+// ledThread.errorReset();
+//
+// if(wrkMast.getIoType()>100){
+// throw new CoolException("鍐嶅叆搴撴洿鏂板伐浣滄。澶辫触锛屼笉鑳界粰PLC涓嬪彂浠诲姟===>>" + wrkMast.getWrkNo());
+// }
+// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+// staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+// staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// if (!result) {
+// News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+// }
+//
+// } else if (code == 500){
+// if (ledThread != null) {
+// String errorMsg = jsonObject.getString("msg");
+// if (!Cools.isEmpty(errorMsg)) {
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
+// }
+// }
+// News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+// } else {
+// staProtocol.setWorkNo((short) 9995);
+// staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//
+// // led 寮傚父鏄剧ず
+// if (ledThread != null) {
+// String errorMsg = jsonObject.getString("msg");
+//// String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒";
+// MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
+// }
+// }
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//// continue;
+// }
}
}
--
Gitblit v1.9.1