销售与财务管理
核心定位
这是 ERP 系统的财务子模块,由 yudao-module-erp 的 finance 包实现。它不独立存在,而是紧密集成在 ERP 的采购和销售流程中,负责资金流的记录和管理。
一句话:采购了要付款,销售了要收款,退货了要退款——财务模块就是管这些「钱」的事情。
解决什么问题
| 痛点 |
财务模块如何解决 |
| 不知道哪个供应商欠了多少钱 |
结算账户余额清晰可见 |
| 付款后无法关联到具体采购单 |
付款单关联采购入库单 |
| 收款和销售订单脱节 |
收款单关联销售出库单 |
| 退款流程混乱 |
退货单自动触发退款流程 |
用户角色
graph LR
subgraph 角色
FINANCE2["财务人员
管理结算账户
处理付款/收款
处理退款
核对账目"]
end
核心 ER 图
erDiagram
ERP_ACCOUNT ||--o{ ERP_FINANCE_PAYMENT : "付款"
ERP_ACCOUNT ||--o{ ERP_FINANCE_RECEIPT : "收款"
ERP_PURCHASE_IN ||--o{ ERP_FINANCE_PAYMENT : "采购入库→付款"
ERP_PURCHASE_RETURN ||--o{ ERP_FINANCE_PAYMENT : "采购退货→退款"
ERP_SALE_OUT ||--o{ ERP_FINANCE_RECEIPT : "销售出库→收款"
ERP_SALE_RETURN ||--o{ ERP_FINANCE_RECEIPT : "销售退货→退款"
ERP_ACCOUNT {
bigint id PK
varchar name "账户名称"
decimal balance "当前余额"
tinyint status "状态"
}
ERP_FINANCE_PAYMENT {
bigint id PK
varchar no "付款单号"
bigint account_id FK "结算账户"
bigint in_id FK "采购入库单"
decimal price "付款金额"
datetime time "付款时间"
}
ERP_FINANCE_RECEIPT {
bigint id PK
varchar no "收款单号"
bigint account_id FK "结算账户"
bigint out_id FK "销售出库单"
decimal price "收款金额"
datetime time "收款时间"
}
业务场景
场景一:采购付款
sequenceDiagram
participant P2 as 采购员
participant F2 as 财务
participant ERP5 as ERP
participant ACC as 结算账户
P2->>ERP5: 完成采购入库
F2->>ERP5: 查看待付款的采购入库单
F2->>ERP5: 选择结算账户,创建付款单
ERP5->>ACC: 扣减账户余额
ERP5->>ERP5: 记录付款流水
场景二:销售收款
sequenceDiagram
participant S3 as 销售员
participant F3 as 财务
participant ERP6 as ERP
participant ACC2 as 结算账户
S3->>ERP6: 完成销售出库
F3->>ERP6: 查看待收款的销售出库单
F3->>ERP6: 选择结算账户,创建收款单
ERP6->>ACC2: 增加账户余额
ERP6->>ERP6: 记录收款流水
结算账户
结算账户代表公司与供应商/客户之间的资金账户关系,每笔收付款都会影响对应账户的余额。
| 属性 |
说明 |
| 账户名称 |
如「XX 供应商结算账户」 |
| 当前余额 |
实时更新,付款减、收款加 |
| 状态 |
启用/禁用 |
docs