自动化立体仓库 - WMS系统
lty
2025-06-20 2d81e5e2ff8de4e97633e86b5605b6c787660cd5
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());
                    }
                }
            }
@@ -2087,7 +2098,7 @@
    public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo, String barcode, String message) {
        int maxRetry = 3;       // 最多重试 3 次
        long retryDelay = 3000; // 重试间隔 3 秒
        long retryDelay = 10000; // 重试间隔 10 秒
        boolean finalSuccess = false;
        Map<String, Object> headers = getHeaders();
@@ -2109,13 +2120,25 @@
                        .setPath(MesConstant.GWCS_FPKW_URL)
                        .setHeaders(headers)
                        .setJson(body)
                        .setTimeout(30, TimeUnit.SECONDS) // 设置连接 + 读取超时为30秒
                        .build()
                        .doPost();
                if (!Cools.isEmpty(response)) {
                    success = true;
                    finalSuccess = true;
                    log.info("{} 成功,响应:{}", attemptMsg, response);
                    try {
                        JSONObject resJson = JSON.parseObject(response);
                        int code = resJson.getIntValue("code"); // 视具体接口而定
                        if (code == 200) {
                            success = true;
                            finalSuccess = true;
                            log.info("{} 成功,响应:{}", attemptMsg, response);
                        } else {
                            log.warn("{} 响应失败,返回code={},完整响应:{}", attemptMsg, code, response);
                        }
                    } catch (Exception parseEx) {
                        log.warn("{} 响应解析失败,内容:{}", attemptMsg, response);
                    }
                } else {
                    log.warn("{} 失败,响应为空", attemptMsg);
                }
@@ -2155,6 +2178,7 @@
    }
    Map<String, Object> getHeaders(){
        Map<String,Object> headers = new HashMap<>();
        headers.put("digi-type","sync ");