From ab14726215678ac69adfeafbd845ebc5b0776ea2 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 14 一月 2025 14:56:41 +0800
Subject: [PATCH] 优化订单同步逻辑及库位查找
---
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 167 +++++++++++++++++++++++++++++++++++--------------------
1 files changed, 106 insertions(+), 61 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index 5f13e3c..22b7f22 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -5,7 +5,6 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
-import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
@@ -16,7 +15,6 @@
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
-import com.zy.common.utils.HttpHandler;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -45,9 +43,9 @@
//绉诲簱绫诲瀷鏁扮粍
private static final List<Integer> MOVE_TYPE_List = new ArrayList<Integer>() {{
add(11);
- add(101);
add(12);
add(53);
+ add(101);
add(103);
add(108);
add(111);
@@ -114,6 +112,10 @@
@Autowired
private FlowLogService flowLogService;
+ @Autowired
+ private ReportDataService reportDataService;
+
+
@Transactional
public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
//鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
@@ -133,6 +135,26 @@
}
+ Integer pltType = agvWrkMast.getPltType();
+ if (Cools.isEmpty(pltType)) {
+ AgvLocMast agvLocMast;
+ if (!Cools.isEmpty(agvWrkMast.getLocNo())) {
+ agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
+ if (agvLocMast != null) {
+ pltType = agvLocMast.getPltType();
+ }
+ }
+ if (!Cools.isEmpty(agvWrkMast.getSourceLocNo())) {
+ agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo());
+ if (agvLocMast != null) {
+ pltType = agvLocMast.getPltType();
+ }
+ }
+ if (pltType != null) {
+ agvWrkMast.setPltType(pltType);
+ }
+ log.info("宸ヤ綔鍙�--{},浠撳簱缂栫爜锛歿}", agvWrkMast.getWrkNo(), agvWrkMast.getPltType());
+ }
agvWrkMast.setModiTime(new Date());
//淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
agvWrkMast.setWrkSts(207L);
@@ -207,6 +229,7 @@
// if (!flowLogService.insert(flowLog)) {
// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
// }
+ log.info("53娣诲姞搴撳瓨鏃ュ織:{},{}", updateAnfme, JSON.toJSON(agvLocDetl));
agvLocDetlService.updateAnfme(updateAnfme, agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getBatch(), agvLocDetl.getThreeCode(), agvLocDetl.getDeadTime());
}
//AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
@@ -224,6 +247,7 @@
agvLocDetl.sync(agvWrkDetl);
agvLocDetl.setModiTime(now);
agvLocDetl.setAppeTime(now);
+ log.info("57娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(agvLocDetl));
if (!agvLocDetlService.insert(agvLocDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
@@ -289,6 +313,7 @@
locDetl.setLocNo(agvWrkMast.getLocNo());
locDetl.sync(agvWrkDetl);
locDetl.setModiTime(new Date());
+ log.info("112娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(locDetl));
agvLocDetlService.insert(locDetl);
}
// 鎺ラ┏浣� -- 搴撲綅
@@ -334,12 +359,13 @@
if (!isJSON(orderNo)) {
//妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
- orderService.checkComplete(orderNo, agvWrkMast.getPltType());
+ orderService.checkComplete(orderNo, pltType);
} else {
List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
+ Integer finalPltType = pltType;
maps.forEach(map -> {
String o = map.get("orderNo").toString();
- orderService.checkComplete(o, agvWrkMast.getPltType());
+ orderService.checkComplete(o, finalPltType);
});
}
@@ -530,9 +556,16 @@
throw new CoolException("浠诲姟涓嬪彂澶辫触");
}
- agvWrkMast.setWrkSts(202L);
- agvWrkMast.setModiTime(new Date());
- agvWrkMastService.updateById(agvWrkMast);
+ //agvWrkMast.setWrkSts(202L);
+ //agvWrkMast.setModiTime(new Date());
+ //boolean b = agvWrkMastService.updateById(agvWrkMast);
+ boolean b = agvWrkMastService.updateWrkStsByWrkNo(Math.abs(agvWrkMast.getWrkNo()), 202L);
+ if (!b) {
+ log.info("鏇存柊浠诲姟鐘舵�佸け璐�,{}", agvWrkMast.getWrkNo());
+ throw new CoolException("鏇存柊浠诲姟鐘舵�佸け璐�");
+ } else {
+ log.info("鏇存柊浠诲姟鐘舵�佹垚鍔�,{}", agvWrkMast.getWrkNo());
+ }
if (agvWrkMast.getIoType() == 1) {
//淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(), "Y");
@@ -540,7 +573,7 @@
return SUCCESS;
} catch (Exception e) {
//TODO
- log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y" + e.getMessage());
+ log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y,{}", e.getMessage());
}
return FAIL;
}
@@ -690,27 +723,31 @@
}
private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
- if (!flag) {
- return;
- }
+
if (Cools.isEmpty(agvWrkDetls)) {
return;
}
+ List<AgvWrkDetl> data = new ArrayList<>();
//鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮�
-
- if (IN_TYPE_LIST.contains(agvWrkMast.getIoType())) {
- String barcode = agvWrkMast.getBarcode();
- if (barcode.startsWith("20") || barcode.startsWith("21") || barcode.startsWith("40")) {
- reportMesPakinOrder(agvWrkMast, agvWrkDetls);
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+ if (agvWrkDetl.getMatnr().compareTo("39") <= 0) {
+ data.add(agvWrkDetl);
}
}
-// if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) {
-// reportMesPakoutOrder(agvWrkMast, agvWrkDetls);
-// }
-// if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) {
-// generateMesParam(agvWrkMast, agvWrkDetls);
-// }
+ if (!data.isEmpty()) {
+ if (IN_TYPE_LIST.contains(agvWrkMast.getIoType())) {
+ reportMesPakinOrder(agvWrkMast, data);
+ }
+ if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) {
+ reportMesPakoutOrder(agvWrkMast, data);
+ }
+ if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) {
+ generateMesParam(agvWrkMast, data);
+ }
+ }
+
}
+
private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
@@ -736,7 +773,7 @@
iteam.setLineNo(orderDetl.getItemNum());
iteam.setSupplierCode(order.getSalesman());
iteam.setUnit(agvWrkDetl.getUnit());
-
+ iteam.setRemark(agvWrkDetl.getThreeCode());
iteams.add(iteam);
mesBuyPakinReportParam.setCode(orderNo);
@@ -746,7 +783,7 @@
} else {
MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
- mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
+ //mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
mesPakinReportParam.setBizType("0");
mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(null, agvWrkDetl.getMatnr(), agvWrkMast.getLocNo()));
mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(), agvWrkDetl.getUnit(), null));
@@ -831,17 +868,17 @@
//鑾峰彇mes token淇℃伅
private Map<String, Object> getMesTokenInfo() {
- Map<String, String> param = new HashMap<>();
- param.put("appKey", appKey);
- param.put("appSecret", appSecret);
+// Map<String, String> param = new HashMap<>();
+// param.put("appKey", appKey);
+// param.put("appSecret", appSecret);
+//
+// JSONObject jsonObject = doHttpRequest(param, null, "鑾峰彇MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1");
+//
+// Map<String, Object> headParam = new HashMap<>();
+// headParam.put("X-AUTH", JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString());
- JSONObject jsonObject = doHttpRequest(param, null, "鑾峰彇MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1");
-
- Map<String, Object> headParam = new HashMap<>();
- headParam.put("X-AUTH", JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString());
-
- return headParam;
-
+ // return headParam;
+ return null;
}
//鏍规嵁妤煎眰榛樿鍑哄簱浠撲綅
@@ -862,37 +899,45 @@
return null;
}
- private JSONObject doHttpRequest(Object requestParam, Map<String, Object> headParam, String namespace, String url, String path, String appkey, String ip) {
+ private void doHttpRequest(Object requestParam, Map<String, Object> headParam, String namespace, String url, String path, String appkey, String ip) {
+ //淇濊瘉涓婃姤琛�
+ ReportData reportData = new ReportData();
+ reportData.setReportJson(JSONObject.toJSONString(requestParam));
+ reportData.setMemo(namespace);
+ reportData.setCreateTime(new Date());
+ reportData.setReportType("MES");
+ reportDataService.insert(reportData);
- String response = "";
- boolean success = false;
- try {
- response = new HttpHandler.Builder().setUri(url).setPath(path).setHeaders(headParam).setJson(JSONObject.toJSONString(requestParam)).setHttps(true).build().doPost();
- JSONObject jsonObject = JSON.parseObject(response);
-
- if (Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200) {
- log.info("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細" + jsonObject);
- //TODO 寮犺秴
- throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject);
- }
- success = true;
- return jsonObject;
-
-// String succeed = jsonObject.get("succeed").toString();
+// String response = "";
+// boolean success = false;
//
-// int code = Cools.eq("0",succeed) ? 0 : 1;
-// if(code != 200){
-// throw new CoolException(jsonObject.get("dsc").toString());
+// try {
+// response = new HttpHandler.Builder().setUri(url).setPath(path).setTimeout(30, TimeUnit.SECONDS).setHeaders(headParam).setJson(JSONObject.toJSONString(requestParam)).setHttps(true).build().doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+//
+// if (Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200) {
+// log.info("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細" + jsonObject);
+// //TODO 寮犺秴
+// throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject);
// }
// success = true;
-
- } catch (Exception e) {
- log.error(e.getMessage());
- throw new CoolException(e.getMessage());
- } finally {
- apiLogService.save(namespace, url + path, appkey, ip, JSON.toJSONString(JSONObject.toJSONString(requestParam)), response, success);
- }
+// return jsonObject;
+//
+//// String succeed = jsonObject.get("succeed").toString();
+////
+//// int code = Cools.eq("0",succeed) ? 0 : 1;
+//// if(code != 200){
+//// throw new CoolException(jsonObject.get("dsc").toString());
+//// }
+//// success = true;
+//
+// } catch (Exception e) {
+// log.error(e.getMessage());
+// throw new CoolException(e.getMessage());
+// } finally {
+// apiLogService.save(namespace, url + path, appkey, ip, JSON.toJSONString(JSONObject.toJSONString(requestParam)), response, success);
+// }
}
--
Gitblit v1.9.1