forked from erp-dev/erp
62 lines
1.5 KiB
Plaintext
62 lines
1.5 KiB
Plaintext
@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
|