graph TD
Start((开始)) --> A[用户进入订舱登记界面]
A --> B[填写订舱信息: 日期、订舱单号、客户名称、联系人、联系电话、提单号]
B --> C{校验必填字段是否完整?}
C -->|是| D[系统自动计算应收款 = 海运费 + 本地运费 + 目的港运费]
C -->|否| E[提示“请填写完整信息”]
E --> B
D --> F{校验提单号是否唯一?}
F -->|是| G{校验客户名称是否存在?}
F -->|否| H[提示“提单号已存在”]
H --> B
G -->|是| I{校验联系人电话格式?}
G -->|否| J[提示“客户名称不存在,请先维护客户”]
J --> B
I -->|是| K{校验海运费、本地运费、目的港运费均为正数?}
I -->|否| L[提示“联系电话格式错误”]
L --> B
K -->|是| M{校验应收款与各费用合计一致?}
K -->|否| N[提示“运费金额必须大于0”]
N --> B
M -->|是| O[保存订舱登记记录]
M -->|否| P[提示“应收款与费用合计不一致”]
P --> B
O --> Q{是否需要打印订舱单?}
Q -->|是| R[生成并打印订舱单]
Q -->|否| End((结束))
R --> End((结束))