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 | 154 +++++++++++++++++++++++++++++++--------------------
1 files changed, 94 insertions(+), 60 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 05e33d0..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;
@@ -26,7 +24,6 @@
import java.io.IOException;
import java.util.*;
-import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Slf4j
@@ -46,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);
@@ -115,6 +112,10 @@
@Autowired
private FlowLogService flowLogService;
+ @Autowired
+ private ReportDataService reportDataService;
+
+
@Transactional
public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
//鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
@@ -134,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);
@@ -208,7 +229,7 @@
// if (!flowLogService.insert(flowLog)) {
// throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
// }
- log.info("53娣诲姞搴撳瓨鏃ュ織:{},{}", updateAnfme,JSON.toJSON(agvLocDetl));
+ 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());
@@ -226,7 +247,7 @@
agvLocDetl.sync(agvWrkDetl);
agvLocDetl.setModiTime(now);
agvLocDetl.setAppeTime(now);
- log.info("57娣诲姞搴撳瓨鏃ュ織:{}",JSON.toJSON(agvLocDetl));
+ log.info("57娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(agvLocDetl));
if (!agvLocDetlService.insert(agvLocDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
@@ -292,7 +313,7 @@
locDetl.setLocNo(agvWrkMast.getLocNo());
locDetl.sync(agvWrkDetl);
locDetl.setModiTime(new Date());
- log.info("112娣诲姞搴撳瓨鏃ュ織:{}",JSON.toJSON(locDetl));
+ log.info("112娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(locDetl));
agvLocDetlService.insert(locDetl);
}
// 鎺ラ┏浣� -- 搴撲綅
@@ -338,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);
});
}
@@ -701,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) {
@@ -747,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);
@@ -842,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;
}
//鏍规嵁妤煎眰榛樿鍑哄簱浠撲綅
@@ -873,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).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;
- 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