guoyujie
2025-08-25 8a63774671aef17807569d6fb631eca20d4696f0
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -862,7 +862,10 @@
                }
                Map<String, Object> itemmap = new HashMap<>();
                itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(finishedOperateLog.getOrder().getCustomerName(),finishedOperateLog.getOrder().getProject(),finishedOperateLog.getRemarks()));
                itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(
                        finishedOperateLog.getOrder().getCustomerId(),
                        finishedOperateLog.getOrder().getProject(),
                        finishedOperateLog.getRemarks()));
                List<Map<String, Object>> detailList = finishedOperateLogMapper.getDetailList2(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks());
@@ -921,6 +924,11 @@
            Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
            //获取已经出库的数量
            Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
            Integer finishedOperateLogQuantitySum = finishedGoodsInventoryMapper.findFinishedOperateLogQuantity(orderDetail.getDeliveryDetail().getOrderId());
            if(finishedOperateLogQuantitySum==null){
                finishedOperateLogQuantitySum=0;
            }
            if(deliverydetailsum==null){
                deliverydetailsum=0;
            }
@@ -951,7 +959,7 @@
                        //修改订单表发货状态
                        finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
                        //判断订单是否全部发货
                        if (orderNumberdsum==orderNumberdDeliverysum) {
                        if (ordersum==finishedOperateLogQuantitySum) {
                            //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
                            //修改订单表发货状态
                            finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
@@ -996,7 +1004,7 @@
                if(delivery!=null){
                    return "false1";
                }
                if(!Objects.equals(existFinishedGoodsInventory.getQuantityAvailable(), finishedOperateLog.getQuantity())){
                if(existFinishedGoodsInventory.getQuantityAvailable()<finishedOperateLog.getQuantity()){
                    return "false2";
                }
@@ -1164,4 +1172,61 @@
            }
        }
    }
    public Map<String, Object> getInventoryPrints(List<FinishedGoodsInventory> finishedGoodsInventories) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        if (!finishedGoodsInventories.isEmpty()) {
            Set<String> processedProcessIds = new HashSet<>();
            for (FinishedGoodsInventory finishedGoodsInventory : finishedGoodsInventories) {
                String orderId = finishedGoodsInventory.getOrderId();
                String boxNo = finishedGoodsInventory.getBoxNo();
                // 检查是否已经处理过该 OrderId,如果处理过则跳过
                if (processedProcessIds.contains(orderId) && processedProcessIds.contains(boxNo)) {
                    continue;
                }
                Map<String, Object> itemmap = new HashMap<>();
                List<Map<String, String>> detail = finishedGoodsInventoryMapper.getPrintTitleByBox(
                        finishedGoodsInventory.getOrder().getCustomerId(),
                        finishedGoodsInventory.getOrder().getProject(),
                        boxNo,
                        orderId
                );
                itemmap.put("detail",detail);
                //获取库存里面此订单此箱号的所有产品信息
                List<Map<String, Object>> detailList = finishedGoodsInventoryMapper
                        .getorderProductByBoxNo(orderId,boxNo);
                List<Map<String, Object>> detailsmaplist = new ArrayList<Map<String, Object>>();
                for(Map<String, Object> details:detailList){
                    Map<String, Object> detailsmap = new HashMap<>();
                    detailsmap.put("product_name",details.get("product_name").toString());
                    //获取明细数据
                    List<Map<String, Object>> orderDetailList = finishedGoodsInventoryMapper
                            .getPrintDetail(
                                    orderId,
                                    boxNo,
                                    Integer.valueOf(details.get("product_id").toString()),
                                    details.get("thickness").toString()
                            );
                    detailsmap.put("detailList",orderDetailList);
                    detailsmaplist.add(detailsmap);
                }
                itemmap.put("detailList", detailsmaplist);
                list.add(itemmap);
                processedProcessIds.add(orderId);
                processedProcessIds.add(boxNo);
            }
        }
        map.put("data", list);
        return map;
    }
}