zc
19 小时以前 5213d5c3bf7c4b60fbb308fdadfb84f6d999c38b
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
@@ -291,14 +291,15 @@
            if (!Objects.isNull(user)) {
                nickName = user.getNickname();
            }
            //获取入库库位信息
                 //获取库存库位信息
            if (order.getType().equals(OrderType.ORDER_IN.type)) {
                //获取入库库位信息
                //筛选当前唯一字段所有出入库信息
                List<StockItem> stockItems = stockItemService.list(new LambdaQueryWrapper<StockItem>()
                        .eq(StockItem::getFieldsIndex, orderItem.getFieldsIndex()));
                //获取库存中订单库位
                Set<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
                //获取库存库位信息
                Stock stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
                        .in(Stock::getId, longSet)
                        .eq(Stock::getType, OrderType.ORDER_IN.type)
@@ -306,82 +307,173 @@
                if (!Objects.isNull(stocks)) {
                    param.setZone(stocks.getLocCode());
                }
            }
            //获取索引内容
            Map<String, String> fields = FieldsUtils.getFields(orderItem.getFieldsIndex());
                //获取索引内容
                Map<String, String> fields = FieldsUtils.getFields(orderItem.getFieldsIndex());
                //设置通用参数
                param.setWMSNO(order.getCode())
                        .setPONO(order.getPoCode())
                        .setOrderNO(order.getPoCode())
                        .setOrderDate(order.getCreateTime())
                        .setItemCode(orderItem.getMatnrCode())
                        .setEditUser(nickName)
                        .setEditDate(order.getUpdateTime())
                        .setGoodsNO(fields.get("crushNo"))
                        .setMemoDtl(order.getMemo());
            //设置通用参数
            param.setWMSNO(order.getCode())
                    .setPONO(order.getPoCode())
                    .setOrderNO(order.getPoCode())
                    .setOrderDate(order.getCreateTime())
                    .setItemCode(orderItem.getMatnrCode())
                    .setEditUser(nickName)
                    .setEditDate(order.getUpdateTime())
                    .setGoodsNO(fields.get("crushNo"))
                    .setMemoDtl(order.getMemo());
                if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
                    //采购入库单
                    params.setOrderType("PO_Instock").setAction("Update");
                    //获取指定查询字段CrushNo 票号
                    param.setInQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) {
                    //采购退货
                    params.setOrderType("PR_Outstock").setAction("Update");
                    param.setOutQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER_IN.type)) {
                    //调拔入库单
                    params.setOrderType("Mv_Instock").setAction("Update");
            if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
                //采购入库单
                params.setOrderType("PO_Instock").setAction("Update");
                //获取指定查询字段CrushNo 票号
                param.setInQty(orderItem.getQty());
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) {
                //采购退货
                params.setOrderType("PR_Outstock").setAction("Update");
                param.setOutQty(orderItem.getQty());
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER_IN.type)) {
                //调拔入库单
                params.setOrderType("Mv_Instock").setAction("Update");
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
                //生产入库单
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
                    //生产入库单
//                params.setOrderType("WO_Outstock").setAction("Update");
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
                //生产退料
                params.setOrderType("WR_Instock").setAction("Update");
                param.setInQty(orderItem.getQty());
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
                //生产领料
                params.setOrderType("WO_Outstock").setAction("Update");
                param.setOutQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
                    //生产退料
                    params.setOrderType("WR_Instock").setAction("Update");
                    param.setInQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
                    //生产领料
                    params.setOrderType("WO_Outstock").setAction("Update");
                    param.setOutQty(orderItem.getQty());
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
                //生产补料
                params.setOrderType("WR_Instock_BL").setAction("Update");
                param.setOutQty(orderItem.getQty());
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
                params.setOrderType("WO_Outstock_WR").setAction("Update");
                param.setOutQty(orderItem.getQty());
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)) {
                //其它入库单/手动入库单
                params.setOrderType("In_Instock").setAction("Update");
                param.setInQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
                    //生产补料
                    params.setOrderType("WR_Instock_BL").setAction("Update");
                    param.setOutQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
                    params.setOrderType("WO_Outstock_WR").setAction("Update");
                    param.setOutQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)) {
                    //其它入库单/手动入库单
                    params.setOrderType("In_Instock").setAction("Update");
                    param.setInQty(orderItem.getQty());
            } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
                //其它出库单/手动出库单
                params.setOrderType("Io_Outstock").setAction("Update");
                param.setOutQty(orderItem.getQty());
                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
                    //其它出库单/手动出库单
                    params.setOrderType("Io_Outstock").setAction("Update");
                    param.setOutQty(orderItem.getQty());
                }
                reportData.add(param);
                params.setData(reportData);
                try {
                    R reported = uploadReportOrders(params);
                    if (Integer.valueOf(reported.get("code").toString()) == 200) {
                        order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val);
                        asnOrderService.updateById(order);
                    }
                } catch (Exception e) {
                    log.error("<UNK>", e);
                }
                try {
                    //休眠3秒
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            } else if (order.getType().equals(OrderType.ORDER_OUT.type)){
                List<Stock> stocks = stockService.list(new LambdaQueryWrapper<Stock>().eq(Stock::getSourceCode, order.getCode()));
                if (stocks.isEmpty()) {
                    throw new CoolException("出庫歷史不存在!!");
                }
                String finalNickName = nickName;
                stocks.forEach(stock -> {
                    //筛选当前唯一字段所有出入库信息
                    List<StockItem> stockItems = stockItemService.list(new LambdaQueryWrapper<StockItem>()
                            .eq(StockItem::getStockId, stock.getId()));
                    if (stockItems.isEmpty()) {
                        throw new CoolException("出庫單明細不存在!!");
                    }
                    //获取库存中订单库位
//                Set<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
                    stockItems.forEach(items -> {
                        List<ReportDataParam> dataParams = new ArrayList<>();
                        //获取索引内容
                        Map<String, String> fields = FieldsUtils.getFields(items.getFieldsIndex());
                        //设置通用参数
                        param.setWMSNO(order.getCode())
                                .setPONO(order.getPoCode())
                                .setOrderNO(order.getPoCode())
                                .setOrderDate(order.getCreateTime())
                                .setItemCode(items.getMatnrCode())
                                .setEditUser(finalNickName)
                                .setEditDate(order.getUpdateTime())
                                .setGoodsNO(fields.get("crushNo"))
                                .setMemoDtl(order.getMemo());
                        if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
                            //采购入库单
                            params.setOrderType("PO_Instock").setAction("Update");
                            //获取指定查询字段CrushNo 票号
                            param.setInQty(orderItem.getQty());
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) {
                            //采购退货
                            params.setOrderType("PR_Outstock").setAction("Update");
                            param.setOutQty(orderItem.getQty());
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER_IN.type)) {
                            //调拔入库单
                            params.setOrderType("Mv_Instock").setAction("Update");
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
                            //生产入库单
//                      params.setOrderType("WO_Outstock").setAction("Update");
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
                            //生产退料
                            params.setOrderType("WR_Instock").setAction("Update");
                            param.setInQty(orderItem.getQty());
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
                            //生产领料
                            params.setOrderType("WO_Outstock").setAction("Update");
                            param.setOutQty(orderItem.getQty());
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
                            //生产补料
                            params.setOrderType("WR_Instock_BL").setAction("Update");
                            param.setOutQty(orderItem.getQty());
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
                            params.setOrderType("WO_Outstock_WR").setAction("Update");
                            param.setOutQty(orderItem.getQty());
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)) {
                            //其它入库单/手动入库单
                            params.setOrderType("In_Instock").setAction("Update");
                            param.setInQty(orderItem.getQty());
                        } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
                            //其它出库单/手动出库单
                            params.setOrderType("Io_Outstock").setAction("Update");
                            param.setOutQty(orderItem.getQty());
                        }
                        dataParams.add(param);
                        params.setData(dataParams);
                        try {
                            R reported = uploadReportOrders(params);
                            if (Integer.valueOf(reported.get("code").toString()) == 200) {
                                order.setReportOnce(5);
                                asnOrderService.updateById(order);
                            }
                        } catch (Exception e) {
                            log.error("<UNK>", e);
                        }
                        try {
                            //休眠3秒
                            Thread.sleep(3000);
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                    });
                });
            }
            reportData.add(param);
        });
        params.setData(reportData);
        try {
            R reported = uploadReportOrders(params);
            if (Integer.valueOf(reported.get("code").toString()) == 200) {
                order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val);
                asnOrderService.updateById(order);
            }
        } catch (Exception e) {
            log.error("<UNK>", e);
        }
        try {
            //休眠3秒
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
    /**