From 5f0a9c30e3a7db095b0901257214122dde912f12 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 17 六月 2025 16:19:22 +0800
Subject: [PATCH] #推送Gwcs时失败后重试3次

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   82 +++++++++++++++++++++++++++--------------
 1 files changed, 54 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 df5f418..af0164b 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1393,7 +1393,7 @@
                 null,    // 鍒濆绁ㄦ嵁鍙�
                 null,    // 绁ㄦ嵁鍙�
                 null,    // 瀹㈡埛缂栧彿
-                null,    // 瀹㈡埛
+                param.getCustomerName(),    // 瀹㈡埛
                 null,    // 鑱旂郴鏂瑰紡
                 null,    // 鎿嶄綔浜哄憳
                 null,    // 鍚堣閲戦
@@ -1416,7 +1416,7 @@
                 now,    // 娣诲姞鏃堕棿
                 9527L,    // 淇敼浜哄憳
                 now,    // 淇敼鏃堕棿
-                null    // 澶囨敞
+                param.getMemo()    // 澶囨敞
         );
 
         if (!orderService.insert(order)) {
@@ -1982,6 +1982,9 @@
 
         // 鏍规嵁鎵樼洏鐮佽幏鍙栦换鍔′富妗�
         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
+        if (wrkMast == null) {
+            return R.parse("璇ユ潯鐮佹棤姝e湪鎵ц浠诲姟锛�" + barcode);
+        }
         // 鏍规嵁浠诲姟涓绘。鑾峰彇宸ヤ綔妗f槑缁�
         List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
         // 鎻愬彇鍖呰缁勫彿
@@ -2082,39 +2085,48 @@
         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 = 3000; // 閲嶈瘯闂撮殧 3 绉�
+        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)
+                        .build()
+                        .doPost();
+
+                if (!Cools.isEmpty(response)) {
+                    success = true;
+                    finalSuccess = true;
+                    log.info("{} 鎴愬姛锛屽搷搴旓細{}", 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",
@@ -2123,12 +2135,26 @@
                         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