1
0
forked from erp-dev/erp
Files
erpnew/docs/plant/printing-job-completion-flow.puml

62 lines
1.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@startuml
title 滚筒完成后驱动生产子单完成的流程
skinparam shadowing false
skinparam activity {
BackgroundColor #F8FBFF
BorderColor #4C6A92
DiamondBackgroundColor #FFF7E6
DiamondBorderColor #B7791F
StartColor #3B82F6
EndColor #64748B
BarColor #94A3B8
FontName Noto Sans CJK SC
}
start
:场景开始\n当前节点为“滚筒进行中”;
if (是否发生“滚筒完成”动作?) then (是)
:系统创建销售品\nshipment.SalesItem;
note right
当前实现中SalesItem 通过
printing_job_id 字段关联 PrintingJob
不是数据库级 ForeignKey。
end note
:写入销售品关联信息\nprinting_job_id + sales_item_id;
:发送“销售品已被创建”信号;
note right
该信号计划携带:
- printing_job_id
- sales_item_id
当前信号未实现,
但销售品创建 API 已存在:
POST /shipment/sales-items/
end note
:信号处理器接收事件;
:读取对应 printing.PrintingJob;
:统计该 job 关联销售品数量之和;
:计算完成比例\nsum(sales_items.quantity) / printing_job.quantity;
if (完成比例 >= 90% ?) then (是)
:发送“生产子单(printing_job)已完成”信号;
note right
完成判定规则:
关联销售品数量之和
大于或约等于 job.quantity 的 90%
end note
else (否)
:不发送完成信号\n等待后续销售品继续创建;
endif
else (否)
:保持“滚筒进行中”;
endif
stop
@enduml