From 2d81e5e2ff8de4e97633e86b5605b6c787660cd5 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 20 六月 2025 12:58:22 +0800
Subject: [PATCH] #工作档手动完成
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 103 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 75 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 29658dd..7322481 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -35,6 +35,7 @@
import javax.annotation.Resource;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -2005,6 +2006,15 @@
materialDetail.setRollNo(wrkDetl.getModel());
materialDetail.setBoxNo(wrkDetl.getUnit());
materialDetail.setSpecs(wrkDetl.getMatnr());
+ materialDetail.setBoxType(wrkDetl.getColor());
+ materialDetail.setCoreType(wrkDetl.getManu());
+ materialDetail.setWidth(wrkDetl.getSku());
+ materialDetail.setThickness(wrkDetl.getItemNum());
+ materialDetail.setWeight(wrkDetl.getWeight());
+ materialDetail.setLength(wrkDetl.getLength());
+ materialDetail.setVolume(wrkDetl.getVolume());
+ materialDetail.setCustomerName(wrkDetl.getSupp());
+ materialDetail.setMemo(wrkDetl.getMemo());
material.setBoxPos(wrkDetl.getOrigin()); // 鎵樼洏涓婃湪绠变綅缃�
materialDetailList.add(materialDetail);
}
@@ -2014,14 +2024,15 @@
Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()));
if (order != null) {
material.setOrderNo(order.getOrderNo());
- material.setMemo(order.getMemo());
- material.setCustomerName(order.getCstmrName());
+// material.setMemo(order.getMemo());
+// material.setCustomerName(order.getCstmrName());
List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(order.getOrderNo());
if (unfulfilledOrders.size() == 1) {
OrderStatisticsDto orderStatisticsDto = unfulfilledOrders.get(0);
material.setSum(orderStatisticsDto.getSum());
material.setToShipQuantity(orderStatisticsDto.getToShipQuantity());
material.setWorkQuantity(orderStatisticsDto.getWorkQuantity());
+ material.setCompleteQuantity(orderStatisticsDto.getCompletedQuantity());
}
}
}
@@ -2085,39 +2096,60 @@
return wrkDetls.size() > 1 ? 1 : 4; // 涓�鏉¤褰曞氨鏄竴鍗�
}
- public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode,String message) {
- boolean success = false;
- // 鑾峰彇璇锋眰澶�
- Map<String, Object> headers = getHeaders();
+ public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo, String barcode, String message) {
+ int maxRetry = 3; // 鏈�澶氶噸璇� 3 娆�
+ long retryDelay = 10000; // 閲嶈瘯闂撮殧 10 绉�
+ boolean finalSuccess = false;
- // 鏋勯�犺姹備綋
+ Map<String, Object> headers = getHeaders();
JSONObject jsonObject = new JSONObject();
jsonObject.put("workNo", workNo);
jsonObject.put("staNo", staNo);
jsonObject.put("sourceStaNo", palletizingNo);
jsonObject.put("barcode", barcode);
String body = jsonObject.toJSONString();
- String response = "";
- try {
- response = new HttpHandler.Builder()
- .setUri(MesConstant.GWCS_IP_PORT)
- .setPath(MesConstant.GWCS_FPKW_URL)
- .setHeaders(headers)
- .setJson(body)
- .build()
- .doPost();
- if (!Cools.isEmpty(response)) {
- success = true;
- } else {
- log.error(message + "澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL, body, response);
- }
- } catch (Exception e) {
- log.error(message + "寮傚父锛歿}", e);
- } finally {
+
+ for (int attempt = 1; attempt <= maxRetry; attempt++) {
+ String response = "";
+ boolean success = false;
+ String attemptMsg = message + "锛堢 " + attempt + " 娆″皾璇曪級";
+
try {
- // 淇濆瓨鎺ュ彛鏃ュ織
+ response = new HttpHandler.Builder()
+ .setUri(MesConstant.GWCS_IP_PORT)
+ .setPath(MesConstant.GWCS_FPKW_URL)
+ .setHeaders(headers)
+ .setJson(body)
+ .setTimeout(30, TimeUnit.SECONDS) // 璁剧疆杩炴帴 + 璇诲彇瓒呮椂涓�30绉�
+ .build()
+ .doPost();
+
+
+ if (!Cools.isEmpty(response)) {
+ try {
+ JSONObject resJson = JSON.parseObject(response);
+ int code = resJson.getIntValue("code"); // 瑙嗗叿浣撴帴鍙h�屽畾
+ if (code == 200) {
+ success = true;
+ finalSuccess = true;
+ log.info("{} 鎴愬姛锛屽搷搴旓細{}", attemptMsg, response);
+ } else {
+ log.warn("{} 鍝嶅簲澶辫触锛岃繑鍥瀋ode={}锛屽畬鏁村搷搴旓細{}", attemptMsg, code, response);
+ }
+ } catch (Exception parseEx) {
+ log.warn("{} 鍝嶅簲瑙f瀽澶辫触锛屽唴瀹癸細{}", attemptMsg, response);
+ }
+ } else {
+ log.warn("{} 澶辫触锛屽搷搴斾负绌�", attemptMsg);
+ }
+ } catch (Exception e) {
+ log.error("{} 寮傚父锛歿}", attemptMsg, e.getMessage(), e);
+ }
+
+ // 姣忔閮借褰曟棩蹇楋紝涓嶈鎴愬姛鎴栧け璐�
+ try {
apiLogService.save(
- message,
+ attemptMsg,
MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL,
null,
"127.0.0.1",
@@ -2126,12 +2158,27 @@
success
);
} catch (Exception e) {
- log.error("", e);
+ log.error("淇濆瓨鎺ュ彛鏃ュ織寮傚父锛歿}", e.getMessage(), e);
+ }
+
+ if (success) break; // 鎴愬姛灏变笉鍐嶉噸璇�
+
+ // 濡傛灉杩樻湁涓嬩竴娆¢噸璇曪紝鍒欑瓑寰�
+ if (attempt < maxRetry) {
+ try {
+ Thread.sleep(retryDelay);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ break;
+ }
}
}
- return success;
+
+ return finalSuccess;
}
+
+
Map<String, Object> getHeaders(){
Map<String,Object> headers = new HashMap<>();
headers.put("digi-type","sync ");
--
Gitblit v1.9.1