From b67e67a182969b4dbfcd7eff423dca8c27f08683 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期三, 11 十二月 2024 16:22:53 +0800
Subject: [PATCH] 添加异常打印日志并优化处理逻辑
---
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 130 +++++++++++++++++++++++++++++--------------
1 files changed, 87 insertions(+), 43 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 4f5abc1..0723b72 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.MesBuyPakinReportParam;
@@ -24,6 +25,7 @@
import java.io.IOException;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Slf4j
@@ -46,7 +48,7 @@
add(101);
add(12);
add(53);
- add(101);
+ add(103);
add(108);
add(111);
add(112);
@@ -57,6 +59,8 @@
@Value("${agvBasDev.maxWorkNum}")
private int maxWrokNum;
+ @Value("${mes.report}")
+ private Boolean flag;
@Value("${mes.url}")
private String url;
@Value("${mes.getTokenUrl}")
@@ -105,12 +109,18 @@
private DocTypeService docTypeService;
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private FlowLogService flowLogService;
@Transactional
public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
//鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+ long flowId = snowflakeIdWorker.nextId();
+ Date now = new Date();
try {
int wrkNo = agvWrkMast.getWrkNo();
String barcode = agvWrkMast.getBarcode();
@@ -169,6 +179,35 @@
AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
if (!Cools.isEmpty(agvLocDetl)) {
double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
+// OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode());
+// FlowLog flowLog = new FlowLog();
+// flowLog.setFid(String.valueOf(flowId));
+// flowLog.setSpare2(String.valueOf(agvWrkMast.getWrkNo()));
+// flowLog.setLocNo(agvWrkMast.getLocNo());
+// flowLog.setSpare1(agvWrkDetl.getSuppCode());
+// flowLog.setOpType(53L);
+// flowLog.setOrderNo(agvWrkDetl.getOrderNo());
+// flowLog.setThreeCode(agvWrkDetl.getThreeCode());
+// flowLog.setMatnr(agvWrkDetl.getMatnr());
+// flowLog.setMaktx(agvWrkDetl.getMaktx());
+//
+// flowLog.setOrderPrevious(orderDetl.getAnfme());
+// flowLog.setOrderCurrent(orderDetl.getAnfme());
+// flowLog.setOrderChanged(0.0);
+//
+// flowLog.setQtyPrevious(orderDetl.getQty());
+// flowLog.setQtyCurrent(updateAnfme);
+// flowLog.setQtyChanged(agvWrkDetl.getAnfme());
+//
+// flowLog.setLocPrevious(agvLocDetl.getAnfme());
+// flowLog.setLocCurrent(updateAnfme);
+// flowLog.setLocChanged(agvWrkDetl.getAnfme());
+//
+// flowLog.setAppeTime(now);
+// 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());
@@ -178,7 +217,6 @@
agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue());
break;
case 57:
- Date now = new Date();
// 鏇存柊搴撳瓨鏄庣粏
List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
wrkDetlList.forEach(agvWrkDetl -> {
@@ -187,6 +225,7 @@
agvLocDetl.sync(agvWrkDetl);
agvLocDetl.setModiTime(now);
agvLocDetl.setAppeTime(now);
+ log.info("57娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(agvLocDetl));
if (!agvLocDetlService.insert(agvLocDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
@@ -252,6 +291,7 @@
locDetl.setLocNo(agvWrkMast.getLocNo());
locDetl.sync(agvWrkDetl);
locDetl.setModiTime(new Date());
+ log.info("112娣诲姞搴撳瓨鏃ュ織:{}", JSON.toJSON(locDetl));
agvLocDetlService.insert(locDetl);
}
// 鎺ラ┏浣� -- 搴撲綅
@@ -297,12 +337,12 @@
if (!isJSON(orderNo)) {
//妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
- orderService.checkComplete(orderNo, agvWrkMast.getLocNo());
+ orderService.checkComplete(orderNo, agvWrkMast.getPltType());
} else {
List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
maps.forEach(map -> {
String o = map.get("orderNo").toString();
- orderService.checkComplete(o, agvWrkMast.getLocNo());
+ orderService.checkComplete(o, agvWrkMast.getPltType());
});
}
@@ -318,11 +358,7 @@
}
//TODO
//鏆傛椂鍔犱笂trycatch
- try {
- reportMes(agvWrkMast, agvWrkDetlListOld);
- } catch (Exception e) {
- e.printStackTrace();
- }
+ reportMes(agvWrkMast, agvWrkDetlListOld);
return SUCCESS;
}
@@ -375,6 +411,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(9527L);
wrkMast.setModiTime(now);
+ wrkMast.setPltType(agvWrkMast.getPltType());
wrkMast.setLogErrMemo("completedCarryWrk");
if (!agvWrkMastService.insertByIncrease(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
@@ -404,12 +441,12 @@
agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo));
if (!isJSON(orderNo)) {
//妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
- orderService.checkComplete(orderNo, agvWrkMast.getLocNo());
+ orderService.checkComplete(orderNo, agvWrkMast.getPltType());
} else {
List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
maps.forEach(map -> {
String o = map.get("orderNo").toString();
- orderService.checkComplete(o, agvWrkMast.getLocNo());
+ orderService.checkComplete(o, agvWrkMast.getPltType());
});
}
@@ -425,6 +462,7 @@
reportMes(agvWrkMast, agvWrkDetlListOld);
return SUCCESS;
}
+
@Transactional
public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) {
@@ -461,12 +499,12 @@
agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo));
if (!isJSON(orderNo)) {
//妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
- orderService.checkComplete(orderNo, agvWrkMast.getLocNo());
+ orderService.checkComplete(orderNo, agvWrkMast.getPltType());
} else {
List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
maps.forEach(map -> {
String o = map.get("orderNo").toString();
- orderService.checkComplete(o, agvWrkMast.getLocNo());
+ orderService.checkComplete(o, agvWrkMast.getPltType());
});
}
//涓婃姤mes
@@ -479,6 +517,7 @@
} catch (Exception e) {
log.error("" + e.getMessage());
}
+ //TODO 寮犺秴
reportMes(agvWrkMast, agvWrkDetlListOld);
return SUCCESS;
}
@@ -494,9 +533,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");
@@ -504,7 +550,7 @@
return SUCCESS;
} catch (Exception e) {
//TODO
- //log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y" + e.getMessage());
+ log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y,{}", e.getMessage());
}
return FAIL;
}
@@ -654,20 +700,31 @@
}
private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
+ if (!flag) {
+ return;
+ }
if (Cools.isEmpty(agvWrkDetls)) {
return;
}
//鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮�
if (IN_TYPE_LIST.contains(agvWrkMast.getIoType())) {
- reportMesPakinOrder(agvWrkMast, agvWrkDetls);
+ String barcode = agvWrkMast.getBarcode();
+ if (barcode.startsWith("20") || barcode.startsWith("21") || barcode.startsWith("40")) {
+ reportMesPakinOrder(agvWrkMast, agvWrkDetls);
+ }
}
- if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) {
- reportMesPakoutOrder(agvWrkMast, agvWrkDetls);
+ try {
+ if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) {
+ reportMesPakoutOrder(agvWrkMast, agvWrkDetls);
+ }
+ if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) {
+ generateMesParam(agvWrkMast, agvWrkDetls);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
}
- if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) {
- generateMesParam(agvWrkMast, agvWrkDetls);
- }
+
}
private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
@@ -704,9 +761,9 @@
} else {
MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
- mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
+ //mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
mesPakinReportParam.setBizType("0");
- mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode().trim(), agvWrkDetl.getMatnr(), agvWrkMast.getLocNo()));
+ mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(null, agvWrkDetl.getMatnr(), agvWrkMast.getLocNo()));
mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(), agvWrkDetl.getUnit(), null));
doHttpRequest(mesPakinReportParam, getMesTokenInfo(), "涓婃姤mes鍏ュ簱淇℃伅", url, pakinReportPath, null, "127.0.0.1");
@@ -826,18 +883,13 @@
boolean success = false;
try {
- response = new HttpHandler.Builder()
- .setUri(url)
- .setPath(path)
- .setHeaders(headParam)
- .setJson(JSONObject.toJSONString(requestParam))
- .setHttps(true)
- .build()
- .doPost();
+ 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) {
- throw new CoolException(jsonObject.get("dsc").toString());
+ log.info("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細" + jsonObject);
+ //TODO 寮犺秴
+ throw new CoolException("mes鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭�:" + jsonObject);
}
success = true;
return jsonObject;
@@ -854,15 +906,7 @@
log.error(e.getMessage());
throw new CoolException(e.getMessage());
} finally {
- apiLogService.save(
- namespace,
- url + path,
- appkey,
- ip,
- JSON.toJSONString(JSONObject.toJSONString(requestParam)),
- response,
- success
- );
+ apiLogService.save(namespace, url + path, appkey, ip, JSON.toJSONString(JSONObject.toJSONString(requestParam)), response, success);
}
}
--
Gitblit v1.9.1