已采购未入库环节的业务定位
发布时间: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,明确各环节职责
跨部门协同:建立采购、仓储、销售、财务等部门的沟通机制
持续改进:定期分析在途库存数据,优化采购和库存策略
- 上一篇:PyTorch:自动求导模块
- 下一篇:先插入采购明细,再创建采购主单