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 | 110 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 80 insertions(+), 30 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..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; /** @@ -1393,7 +1394,7 @@ null, // 鍒濆绁ㄦ嵁鍙� null, // 绁ㄦ嵁鍙� null, // 瀹㈡埛缂栧彿 - null, // 瀹㈡埛 + param.getCustomerName(), // 瀹㈡埛 null, // 鑱旂郴鏂瑰紡 null, // 鎿嶄綔浜哄憳 null, // 鍚堣閲戦 @@ -1416,7 +1417,7 @@ now, // 娣诲姞鏃堕棿 9527L, // 淇敼浜哄憳 now, // 淇敼鏃堕棿 - null // 澶囨敞 + param.getMemo() // 澶囨敞 ); if (!orderService.insert(order)) { @@ -1982,6 +1983,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())); // 鎻愬彇鍖呰缁勫彿 @@ -2002,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); } @@ -2011,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()); } } } @@ -2082,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", @@ -2123,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