自动化立体仓库 - WMS系统
pang.jiabao
2 天以前 65e54b6d197856b889481098caecceaa04d26691
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1969,7 +1969,7 @@
    @Override
    public R getUnfulfilledOrders() {
        // 获取未完成订单统计信息
        List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders();
        List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders("");
        return R.ok(unfulfilledOrders);
    }
@@ -1979,6 +1979,60 @@
        return R.ok(crnLaneWayInfo);
    }
    @Override
    public R getOutLocInfoByBarcode(String barcode) {
        // 根据托盘码获取任务主档
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
        // 根据任务主档获取工作档明细
        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
        // 提取包装组号
        List<String> brandList = wrkDetls.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList());
        OutLocInfoDto outLocInfoDto = new OutLocInfoDto();
        outLocInfoDto.setWrkNo(wrkMast.getWrkNo());
        List<OutLocInfoDto.Material> materialList = new ArrayList<>();
        for (String brand : brandList) {
            // 一个木箱
            OutLocInfoDto.Material material = new OutLocInfoDto.Material();
            material.setPackageGroupNo(brand); // 包装组号
            // 按包装组号过滤
            List<WrkDetl> wrkDetls1 = wrkDetls.stream().filter(wrkDetl -> Objects.equals(wrkDetl.getBrand(), brand)).collect(Collectors.toList());
            // 卷信息
            List<OutLocInfoDto.Material.MaterialDetail> materialDetailList = new ArrayList<>();
            for (WrkDetl wrkDetl : wrkDetls1) {
                OutLocInfoDto.Material.MaterialDetail materialDetail = new OutLocInfoDto.Material.MaterialDetail();
                materialDetail.setRollNo(wrkDetl.getModel());
                materialDetail.setBoxNo(wrkDetl.getUnit());
                materialDetail.setSpecs(wrkDetl.getMatnr());
                material.setBoxPos(wrkDetl.getOrigin()); // 托盘上木箱位置
                materialDetailList.add(materialDetail);
            }
            // 订单信息
            WrkDetl wrkDetl = wrkDetls1.get(0);
            if (wrkDetl != null && wrkDetl.getOrderNo() != null) {
                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());
                    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.setMaterialDetailList(materialDetailList);
            materialList.add(material);
        }
        outLocInfoDto.setMaterialList(materialList);
        return R.ok(outLocInfoDto);
    }
    /**
     * 创建桁架理货出库的工作档
     */