skyouc
昨天 3e9d3cf02c66e26587e5d5e16a1a2905e565af98
入库上报明细库位不完全修改
3个文件已修改
135 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReportMsgService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReportMsgService.java
@@ -4,6 +4,7 @@
import com.vincent.rsf.server.api.controller.erp.params.ReportParams;
import com.vincent.rsf.server.api.entity.dto.PoItemsDto;
import com.vincent.rsf.server.manager.entity.WkOrder;
import com.vincent.rsf.server.manager.entity.WkOrderItem;
import java.util.List;
@@ -23,4 +24,6 @@
    R uploadCheckOrder(ReportParams params);
    void reportOrders(WkOrder order);
    void reportOrderItem(WkOrderItem orederItem);
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
@@ -384,4 +384,120 @@
        }
    }
    /**
     * @author Ryan
     * @date 2025/11/10
     * @description: 入库任务明细上报
     * @version 1.0
     */
    @Override
    public void reportOrderItem(WkOrderItem orderItem) {
        ReportParams params = new ReportParams();
        WkOrder order = asnOrderService.getById(orderItem.getOrderId());
        if (Objects.isNull(order)) {
            throw new RuntimeException("单据不存在或已完成!!");
        }
        List<ReportDataParam> reportData = new ArrayList<>();
        ReportDataParam param = new ReportDataParam();
        User user = userService.getById(orderItem.getUpdateBy());
        String nickName = null;
        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)
                    .eq(Stock::getSourceCode, order.getCode()));
            if (!Objects.isNull(stocks)) {
                param.setZone(stocks.getLocCode());
            }
        }
        //获取索引内容
        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());
        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());
        }
        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);
        }
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -562,16 +562,16 @@
            taskItems.forEach(taskItem -> {
                WkOrder order = asnOrderService.getById(taskItem.getOrderId());
                if (Objects.isNull(order)) {
                    throw new CoolException("数拓错误,单据不存在!!");
                    throw new CoolException("数据错误,单据不存在!!");
                }
                if (order.getType().equals(OrderType.ORDER_IN.type)) {
//                    try {
//                        //上报已完成订单至ERP、MES等三方系统
//
//                    } catch (Exception e) {
//                        log.error(e.getMessage());
//                    }
                    reportMsgService.reportOrders(order);
                    WkOrderItem wkOrderItem = asnOrderItemService.getOne(new LambdaQueryWrapper<WkOrderItem>()
                            .eq(WkOrderItem::getOrderId, order.getId())
                            .eq(WkOrderItem::getFieldsIndex, taskItem.getFieldsIndex()));
                    if (Objects.isNull(wkOrderItem)) {
                        throw new CoolException("数据错误,单据明细不存在或已完成!!");
                    }
                    reportMsgService.reportOrderItem(wkOrderItem);
                    order.setReportOnce(order.getReportOnce() + 1);
                    if (!asnOrderService.updateById(order)) {
                        log.error(order.getCode() + ",单据上传次数修改失败!!");