已采购未入库环节的业务定位

发布时间:2026-06-02 02:28  浏览量:1

一、已采购未入库环节的业务定位

已采购未入库(通常称为在途库存/采购在途)是供应链管理中的关键中间环节,指:

状态定义:采购订单已确认、商品已发货,但尚未完成仓库入库验收的货物

管理目标:确保货物安全、及时入库,保证账实一致,支持生产/销售计划

业务价值:作为企业的隐性资产,需纳入库存管理体系,避免库存数据失真

二、标准化业务流程设计

1. 核心业务流转节点

mermaid

复制

graph TD

A[采购订单确认] --> B[供应商发货]

B --> C[在途库存跟踪]

C --> D[到货验收]

D -->|合格| E[入库上架]

D -->|不合格| F[退货/换货]

E --> G[库存更新]

F --> H[采购订单调整]

2. 分场景处理方案

场景 处理流程 关键控制点

正常到货 供应商发货→物流跟踪→到货验收→入库上架→系统确认 1. 到货时间预警;2. 验收标准明确;3. 系统实时更新

延期到货 物流异常提醒→采购跟进→生产/销售计划调整→到货验收→入库上架 1. 异常触发机制;2. 跨部门协同;3. 应急预案

到货不合格 质检报告→供应商沟通→退货/换货→采购订单调整→重新到货验收→入库上架 1. 质检流程规范;2. 责任界定清晰;3. 索赔机制完善

超量到货 需求确认→库存容量评估→采购订单调整→超额部分处理(入库/退货)→系统更新 1. 需求与实际匹配;2. 库存容量预警;3. 成本控制

三、系统功能实现建议

1. 库存管理系统优化

(1)新增在途库存跟踪模块

java

复制

// 在途库存实体类

@Entity

@Table(name = "wms_purchase_in_transit")

public class PurchaseInTransit {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

@Column(name = "purchase_order_id")

private Long purchaseOrderId; // 关联采购订单ID

@Column(name = "goods_id")

private String goodsId; // 商品ID

@Column(name = "transit_quantity")

private Integer transitQuantity; // 在途数量

@Column(name = "expected_arrival_time")

private Date expectedArrivalTime; // 预计到货时间

@Column(name = "actual_arrival_time")

private Date actualArrivalTime; // 实际到货时间

@Column(name = "logistics_info")

private String logisticsInfo; // 物流信息

@Column(name = "transit_status")

private Integer transitStatus; // 在途状态:0=在途,1=已到货,2=延期,3=异常

}

(2)在途库存跟踪SQL查询

sql

复制

-- 查询当前在途库存明细

SELECT

po.purchase_order_id,

pd.goods_id,

pd.goods_name,

pd.goods_spec,

pit.transit_quantity,

pit.expected_arrival_time,

pit.logistics_info,

pit.transit_status

FROM wms_purchase_in_transit pit

JOIN wms_purchase_detail pd ON pit.goods_id = pd.goods_id

JOIN wms_purchase_order po ON pd.purchase_id = po.purchase_id

WHERE pit.transit_status IN (0, 2, 3); -- 只显示未到货的在途库存

-- 延期到货预警查询

SELECT

pd.goods_id,

pd.goods_name,

DATEDIFF(NOW, pit.expected_arrival_time) AS delay_days

WHERE pit.transit_status = 0

AND pit.expected_arrival_time

(3)到货入库处理流程

java

复制

@Service

public class PurchaseInTransitService {

private final PurchaseInTransitRepository transitRepository;

private final StockRepository stockRepository;

private final WmsOrderDetailMapper orderDetailMapper;

public PurchaseInTransitService(PurchaseInTransitRepository transitRepository,

StockRepository stockRepository,

WmsOrderDetailMapper orderDetailMapper) {

this.transitRepository = transitRepository;

this.stockRepository = stockRepository;

this.orderDetailMapper = orderDetailMapper;

}

@Transactional(rollbackFor = Exception.class)

public void processArrival(Long transitId, Integer actualQuantity, String batchNo) {

// 1. 更新在途库存状态

PurchaseInTransit transit = transitRepository.findById(transitId)

.orElseThrow( -> new RuntimeException("在途库存不存在"));

transit.setTransitStatus(1); // 标记为已到货

transit.setActualArrivalTime(new Date);

transitRepository.save(transit);

// 2. 更新库存数量

Stock stock = stockRepository.findByGoodsId(transit.getGoodsId)

.orElse(new Stock(transit.getGoodsId, 0));

stock.setStockQuantity(stock.getStockQuantity + actualQuantity);

stockRepository.save(stock);

// 3. 更新订单商品采购状态

orderDetailMapper.updatePurchaseStatusByGoodsId(transit.getGoodsId, 2); // 标记为已入库

// 4. 生成入库记录

InboundRecord inboundRecord = new InboundRecord(

transit.getPurchaseOrderId,

transit.getGoodsId,

actualQuantity,

batchNo,

new Date

);

inboundRecordRepository.save(inboundRecord);

}

}

四、财务核算处理

1. 实际成本法核算

sql

复制

-- 在途物资账务处理

-- 1. 采购订单确认时

INSERT INTO accounting_in_transit (purchase_order_id, goods_id, amount, tax_amount)

SELECT

purchase_order_id,

goods_id,

purchase_quantity * unit_price,

purchase_quantity * unit_price * tax_rate

FROM wms_purchase_detail

WHERE purchase_id = ?;

-- 2. 到货入库时

INSERT INTO accounting_stock (goods_id, amount, tax_amount)

SELECT

goods_id,

amount,

tax_amount

FROM accounting_in_transit

WHERE purchase_order_id = ?;

DELETE FROM accounting_in_transit WHERE purchase_order_id = ?;

2. 计划成本法核算

sql

复制

-- 采购入库时的成本差异处理

INSERT INTO accounting_stock (goods_id, planned_amount, actual_amount, cost_variance)

SELECT

goods_id,

purchase_quantity * planned_price, -- 计划成本

purchase_quantity * actual_price, -- 实际成本

(actual_price - planned_price) * purchase_quantity -- 成本差异

五、风险控制与优化建议

1. 关键风险点及防控措施

风险点 防控措施

物流延迟 1. 建立供应商绩效评估体系;2. 选择优质物流服务商;3. 设置到货时间预警

质量不合格 1. 完善质检流程;2. 明确供应商质量责任;3. 建立退货/换货快速响应机制

账实不符 1. 系统自动同步数据;2. 定期盘点在途库存;3. 异常数据及时核实调整

库存积压 1. 精准需求预测;2. 控制采购批量;3. 建立库存容量预警机制

2. 管理优化建议

(1)技术赋能

物流可视化:引入物流跟踪系统,实时监控货物位置和状态

智能预警:基于大数据分析,预测到货时间和风险

自动化验收:使用RFID、条形码等技术实现快速到货验收

(2)流程优化

标准化操作:制定在途库存管理SOP,明确各环节职责

跨部门协同:建立采购、仓储、销售、财务等部门的沟通机制

持续改进:定期分析在途库存数据,优化采购和库存策略