资金服务平台 (FundPlatform) - 需求文档(修订版)
文档版本: v1.1
创建日期: 2026-02-11
修订日期: 2026-02-11
项目名称: 资金服务平台
项目代号: fundplatform
一、项目概述
1.1 项目背景
资金服务平台旨在建立一套完整的公司项目资金管理解决方案,实现对应收账款和项目支出的全流程跟踪与管理,提升财务管理效率和资金周转率。
1.2 整体目标
| 目标类别 |
具体描述 |
| 应收账款管理 |
对公司项目的应收账款进行跟踪、确认、收款记录和账期管理 |
| 项目支出管理 |
对公司项目支出进行申请、审批、执行和核销的全流程管理 |
| 数据可视化 |
提供多维度的财务报表和统计分析,辅助决策 |
| 移动办公 |
支持管理后台和手机端(UniApp)双端访问,提升办公效率 |
二、业务需求完善
2.1 核心业务流程
2.1.1 应收账款管理流程
flowchart TD
A[需求创建] --> B[交付跟踪]
B --> C[应收款确认]
C --> D[收款记录]
D --> E[账期管理]
E --> F[回款统计]
2.1.2 支出管理流程
flowchart TD
A[支出申请] --> B[审核审批]
B --> C{审批通过?}
C -->|是| D[付款执行]
C -->|否| E[驳回修改]
D --> F[账期管理]
F --> G[报销核销]
2.2 补充功能需求
| 功能类别 |
补充内容 |
| 状态管理 |
应收款状态(待收款、部分收款、已收款、逾期) |
| 收款记录 |
实际收款金额、收款日期、收款方式、收款凭证 |
| 审批流程 |
多级审批、审批记录、审批超时提醒 |
| 财务报表 |
收支汇总、现金流量、利润分析、项目收益 |
| 预警机制 |
逾期提醒、预算超支预警、异常交易预警 |
| 数据导出 |
Excel/PDF导出、自定义报表 |
| 审计追踪 |
操作日志、数据变更记录 |
2.3 非功能性需求
| 需求类别 |
具体要求 |
| 安全性 |
用户权限控制、数据加密传输、操作审计日志 |
| 性能 |
支持≥100人并发访问、列表加载<2秒、查询响应<3秒 |
| 可用性 |
响应式设计、移动端适配、操作流程简化 |
| 可靠性 |
数据每日备份、故障恢复时间<30分钟、系统可用性≥99.5% |
| 兼容性 |
支持主流浏览器(Chrome、Firefox、Safari、Edge) |
三、核心数据模型与属性定义
3.1 系统管理模块数据模型
3.1.1 用户表 (sys_user)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| user_id |
BIGINT |
- |
✅ |
自增 |
用户ID(主键) |
| username |
VARCHAR |
50 |
✅ |
- |
用户名(登录账号) |
| password |
VARCHAR |
100 |
✅ |
- |
密码(加密存储) |
| real_name |
VARCHAR |
50 |
✅ |
- |
真实姓名 |
| gender |
TINYINT |
1 |
❌ |
0 |
性别(0-未知,1-男,2-女) |
| phone |
VARCHAR |
20 |
❌ |
- |
手机号码 |
| email |
VARCHAR |
100 |
❌ |
- |
邮箱地址 |
| dept_id |
BIGINT |
- |
✅ |
- |
所属部门ID |
| position |
VARCHAR |
50 |
❌ |
- |
岗位/职位 |
| role |
VARCHAR |
20 |
✅ |
user |
角色(admin-管理员,finance-财务,pm-项目经理,user-普通用户) |
| avatar |
VARCHAR |
255 |
❌ |
- |
头像URL |
| status |
TINYINT |
1 |
✅ |
1 |
状态(0-禁用,1-启用) |
| last_login_time |
DATETIME |
- |
❌ |
- |
最后登录时间 |
| last_login_ip |
VARCHAR |
50 |
❌ |
- |
最后登录IP |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.1.2 部门表 (sys_dept)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| dept_id |
BIGINT |
- |
✅ |
自增 |
部门ID(主键) |
| dept_name |
VARCHAR |
100 |
✅ |
- |
部门名称 |
| parent_id |
BIGINT |
- |
❌ |
0 |
父部门ID(0表示顶级部门) |
| dept_code |
VARCHAR |
50 |
❌ |
- |
部门编码 |
| dept_level |
INT |
- |
✅ |
1 |
部门层级 |
| sort_order |
INT |
- |
✅ |
0 |
排序顺序 |
| leader |
VARCHAR |
50 |
❌ |
- |
部门负责人 |
| leader_phone |
VARCHAR |
20 |
❌ |
- |
负责人电话 |
| status |
TINYINT |
1 |
✅ |
1 |
状态(0-禁用,1-启用) |
| remark |
VARCHAR |
500 |
❌ |
- |
备注说明 |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.1.3 操作日志表 (sys_operation_log)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| log_id |
BIGINT |
- |
✅ |
自增 |
日志ID(主键) |
| user_id |
BIGINT |
- |
✅ |
- |
操作人ID |
| username |
VARCHAR |
50 |
✅ |
- |
操作人用户名 |
| operation |
VARCHAR |
100 |
✅ |
- |
操作描述 |
| method |
VARCHAR |
200 |
✅ |
- |
操作方法 |
| params |
TEXT |
- |
❌ |
- |
操作参数(JSON格式) |
| ip |
VARCHAR |
50 |
✅ |
- |
操作IP |
| user_agent |
VARCHAR |
500 |
❌ |
- |
用户代理 |
| operation_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
操作时间 |
| cost_time |
BIGINT |
- |
✅ |
0 |
耗时(毫秒) |
| result |
VARCHAR |
20 |
✅ |
success |
操作结果(success-成功,fail-失败) |
| error_msg |
TEXT |
- |
❌ |
- |
错误信息 |
3.2 客户管理模块数据模型
3.2.1 客户表 (customer)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| customer_id |
BIGINT |
- |
✅ |
自增 |
客户ID(主键) |
| customer_code |
VARCHAR |
50 |
✅ |
- |
客户编码(唯一) |
| customer_name |
VARCHAR |
200 |
✅ |
- |
客户名称 |
| customer_short |
VARCHAR |
100 |
❌ |
- |
客户简称 |
| customer_type |
VARCHAR |
20 |
✅ |
enterprise |
客户类型(enterprise-企业,individual-个人) |
| industry |
VARCHAR |
50 |
❌ |
- |
所属行业 |
| scale |
VARCHAR |
20 |
❌ |
- |
企业规模(small-小型,medium-中型,large-大型) |
| level |
VARCHAR |
20 |
✅ |
normal |
客户等级(A/B/C/D/normal) |
| credit_limit |
DECIMAL |
15,2 |
❌ |
0.00 |
信用额度 |
| credit_rating |
VARCHAR |
20 |
❌ |
- |
信用评级(AAA/AA/A/BBB/BB/B) |
| tax_no |
VARCHAR |
50 |
❌ |
- |
纳税人识别号 |
| registered_capital |
DECIMAL |
15,2 |
❌ |
0.00 |
注册资本(万元) |
| legal_person |
VARCHAR |
50 |
❌ |
- |
法定代表人 |
| establish_date |
DATE |
- |
❌ |
- |
成立日期 |
| business_scope |
TEXT |
- |
❌ |
- |
经营范围 |
| address |
VARCHAR |
500 |
❌ |
- |
公司地址 |
| website |
VARCHAR |
200 |
❌ |
- |
公司网站 |
| status |
TINYINT |
1 |
✅ |
1 |
状态(0-禁用,1-启用) |
| remark |
VARCHAR |
500 |
❌ |
- |
备注说明 |
| cooperation_start |
DATE |
- |
❌ |
- |
合作开始日期 |
| cooperation_end |
DATE |
- |
❌ |
- |
合作结束日期 |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.2.2 客户联系人表 (customer_contact)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| contact_id |
BIGINT |
- |
✅ |
自增 |
联系人ID(主键) |
| customer_id |
BIGINT |
- |
✅ |
- |
客户ID(外键) |
| contact_name |
VARCHAR |
50 |
✅ |
- |
联系人姓名 |
| position |
VARCHAR |
50 |
❌ |
- |
职位/职务 |
| department |
VARCHAR |
100 |
❌ |
- |
所属部门 |
| phone |
VARCHAR |
20 |
❌ |
- |
联系电话 |
| mobile |
VARCHAR |
20 |
❌ |
- |
手机号码 |
| email |
VARCHAR |
100 |
❌ |
- |
邮箱地址 |
| wechat |
VARCHAR |
50 |
❌ |
- |
微信号 |
| qq |
VARCHAR |
20 |
❌ |
- |
QQ号 |
| is_primary |
TINYINT |
1 |
✅ |
0 |
是否主要联系人(0-否,1-是) |
| birthday |
DATE |
- |
❌ |
- |
生日 |
| remark |
VARCHAR |
200 |
❌ |
- |
备注说明 |
| sort_order |
INT |
- |
✅ |
0 |
排序顺序 |
| status |
TINYINT |
1 |
✅ |
1 |
状态(0-禁用,1-启用) |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.3 项目管理模块数据模型
3.3.1 项目表 (project)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| project_id |
BIGINT |
- |
✅ |
自增 |
项目ID(主键) |
| project_code |
VARCHAR |
50 |
✅ |
- |
项目编号(唯一) |
| project_name |
VARCHAR |
200 |
✅ |
- |
项目名称 |
| project_short |
VARCHAR |
100 |
❌ |
- |
项目简称 |
| customer_id |
BIGINT |
- |
✅ |
- |
客户ID(外键) |
| project_type |
VARCHAR |
20 |
✅ |
development |
项目类型(development-开发,maintenance-维护,consulting-咨询) |
| project_manager_id |
BIGINT |
- |
✅ |
- |
项目经理ID |
| start_date |
DATE |
- |
✅ |
- |
项目开始日期 |
| end_date |
DATE |
- |
❌ |
- |
项目结束日期 |
| planned_duration |
INT |
- |
❌ |
0 |
计划工期(天) |
| actual_duration |
INT |
- |
❌ |
0 |
实际工期(天) |
| budget_amount |
DECIMAL |
15,2 |
❌ |
0.00 |
项目预算金额 |
| contract_amount |
DECIMAL |
15,2 |
❌ |
0.00 |
合同金额 |
| status |
VARCHAR |
20 |
✅ |
preparing |
项目状态(preparing-筹备中,ongoing-进行中,completed-已完成,archived-已归档,cancelled-已取消) |
| progress |
INT |
- |
✅ |
0 |
项目进度(0-100) |
| description |
TEXT |
- |
❌ |
- |
项目描述 |
| remark |
VARCHAR |
500 |
❌ |
- |
备注说明 |
| attachment_url |
VARCHAR |
500 |
❌ |
- |
附件URL(合同等) |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.3.2 项目成员表 (project_member)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| member_id |
BIGINT |
- |
✅ |
自增 |
成员关系ID(主键) |
| project_id |
BIGINT |
- |
✅ |
- |
项目ID(外键) |
| user_id |
BIGINT |
- |
✅ |
- |
用户ID(外键) |
| role |
VARCHAR |
50 |
✅ |
member |
项目角色(pm-项目经理,dev-开发,test-测试,finance-财务,member-普通成员) |
| join_date |
DATE |
- |
✅ |
- |
加入日期 |
| leave_date |
DATE |
- |
❌ |
- |
离开日期 |
| workload |
DECIMAL |
5,2 |
❌ |
0.00 |
工作量占比(0-100) |
| status |
TINYINT |
1 |
✅ |
1 |
状态(0-已离开,1-在职) |
| remark |
VARCHAR |
200 |
❌ |
- |
备注说明 |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.3.3 项目里程碑表 (project_milestone)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| milestone_id |
BIGINT |
- |
✅ |
自增 |
里程碑ID(主键) |
| project_id |
BIGINT |
- |
✅ |
- |
项目ID(外键) |
| milestone_name |
VARCHAR |
200 |
✅ |
- |
里程碑名称 |
| milestone_code |
VARCHAR |
50 |
❌ |
- |
里程碑编码 |
| planned_date |
DATE |
- |
✅ |
- |
计划完成日期 |
| actual_date |
DATE |
- |
❌ |
- |
实际完成日期 |
| description |
TEXT |
- |
❌ |
- |
里程碑描述 |
| deliverables |
TEXT |
- |
❌ |
- |
交付物说明 |
| status |
VARCHAR |
20 |
✅ |
pending |
状态(pending-待完成,completed-已完成,delayed-已延期) |
| sort_order |
INT |
- |
✅ |
0 |
排序顺序 |
| remark |
VARCHAR |
200 |
❌ |
- |
备注说明 |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.4 需求清单管理模块数据模型
3.4.1 需求清单表 (requirement)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| requirement_id |
BIGINT |
- |
✅ |
自增 |
需求ID(主键) |
| requirement_code |
VARCHAR |
50 |
✅ |
- |
需求编号(唯一) |
| requirement_name |
VARCHAR |
200 |
✅ |
- |
需求名称 |
| description |
TEXT |
- |
❌ |
- |
需求描述 |
| project_id |
BIGINT |
- |
✅ |
- |
项目ID(外键) |
| customer_id |
BIGINT |
- |
✅ |
- |
客户ID(外键) |
| priority |
VARCHAR |
20 |
✅ |
normal |
优先级(high-高,normal-中,low-低) |
| estimated_hours |
DECIMAL |
8,2 |
❌ |
0.00 |
预估开发工时(小时) |
| actual_hours |
DECIMAL |
8,2 |
❌ |
0.00 |
实际开发工时(小时) |
| planned_start |
DATE |
- |
❌ |
- |
计划开始日期 |
| planned_end |
DATE |
- |
❌ |
- |
计划结束日期 |
| actual_start |
DATE |
- |
❌ |
- |
实际开始日期 |
| actual_end |
DATE |
- |
❌ |
- |
实际结束日期 |
| delivery_date |
DATE |
- |
✅ |
- |
交付日期 |
| receivable_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
应收款金额 |
| receivable_date |
DATE |
- |
✅ |
- |
应收款日期 |
| payment_terms |
VARCHAR |
100 |
❌ |
- |
付款条款 |
| status |
VARCHAR |
20 |
✅ |
pending |
状态(pending-待开发,developing-开发中,testing-测试中,delivered-已交付,accepted-已验收,completed-已完成) |
| progress |
INT |
- |
✅ |
0 |
开发进度(0-100) |
| acceptance_date |
DATE |
- |
❌ |
- |
验收日期 |
| acceptance_by |
VARCHAR |
50 |
❌ |
- |
验收人 |
| remark |
VARCHAR |
500 |
❌ |
- |
备注说明 |
| attachment_url |
VARCHAR |
500 |
❌ |
- |
附件URL(需求文档等) |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.4.2 需求进度日志表 (requirement_progress_log)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| log_id |
BIGINT |
- |
✅ |
自增 |
日志ID(主键) |
| requirement_id |
BIGINT |
- |
✅ |
- |
需求ID(外键) |
| progress |
INT |
- |
✅ |
0 |
进度百分比(0-100) |
| work_content |
TEXT |
- |
✅ |
- |
工作内容描述 |
| work_hours |
DECIMAL |
5,2 |
❌ |
0.00 |
本次工作工时 |
| next_plan |
TEXT |
- |
❌ |
- |
下一步计划 |
| operator_id |
BIGINT |
- |
✅ |
- |
操作人ID |
| operation_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
操作时间 |
| remark |
VARCHAR |
200 |
❌ |
- |
备注说明 |
3.5 支出管理模块数据模型
3.5.1 支出类型表 (expense_type)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| type_id |
BIGINT |
- |
✅ |
自增 |
支出类型ID(主键) |
| type_code |
VARCHAR |
50 |
❌ |
- |
支出类型编码 |
| type_name |
VARCHAR |
100 |
✅ |
- |
支出类型名称 |
| parent_id |
BIGINT |
- |
❌ |
0 |
父类型ID(0表示一级类型) |
| type_level |
INT |
- |
✅ |
1 |
类型层级 |
| sort_order |
INT |
- |
✅ |
0 |
排序顺序 |
| description |
VARCHAR |
200 |
❌ |
- |
类型描述 |
| budget_control |
TINYINT |
1 |
✅ |
0 |
是否预算控制(0-否,1-是) |
| expense_standard |
DECIMAL |
10,2 |
❌ |
0.00 |
费用标准(单次上限) |
| status |
TINYINT |
1 |
✅ |
1 |
状态(0-禁用,1-启用) |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.5.2 支出表 (expense)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| expense_id |
BIGINT |
- |
✅ |
自增 |
支出ID(主键) |
| expense_code |
VARCHAR |
50 |
✅ |
- |
支出编号(唯一) |
| expense_type_id |
BIGINT |
- |
✅ |
- |
支出类型ID(外键) |
| expense_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
支出金额 |
| expense_date |
DATE |
- |
✅ |
- |
支出日期 |
| expense_reason |
TEXT |
- |
✅ |
- |
支出事由 |
| project_id |
BIGINT |
- |
❌ |
- |
所属项目ID(外键,可为空) |
| customer_id |
BIGINT |
- |
❌ |
- |
相关客户ID(外键,可为空) |
| applicant_id |
BIGINT |
- |
✅ |
- |
申请人ID |
| department_id |
BIGINT |
- |
✅ |
- |
申请部门ID |
| payment_method |
VARCHAR |
20 |
✅ |
transfer |
付款方式(transfer-转账,cash-现金,check-支票,other-其他) |
| payment_account |
VARCHAR |
100 |
❌ |
- |
付款账户 |
| budget_code |
VARCHAR |
50 |
❌ |
- |
预算编码 |
| budget_amount |
DECIMAL |
15,2 |
❌ |
0.00 |
预算金额 |
| budget_balance |
DECIMAL |
15,2 |
❌ |
0.00 |
预算余额 |
| attachment_url |
VARCHAR |
500 |
❌ |
- |
附件URL(发票、合同等) |
| status |
VARCHAR |
20 |
✅ |
pending |
状态(pending-待审批,approving-审批中,approved-已通过,rejected-已驳回,paid-已付款,completed-已完成,cancelled-已作废) |
| approval_level |
INT |
- |
✅ |
0 |
当前审批层级 |
| approval_status |
VARCHAR |
20 |
✅ |
pending |
审批状态(pending-待审批,approved-已通过,rejected-已驳回) |
| payment_date |
DATE |
- |
❌ |
- |
付款日期 |
| payment_voucher |
VARCHAR |
255 |
❌ |
- |
付款凭证(银行回单等) |
| remark |
VARCHAR |
500 |
❌ |
- |
备注说明 |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.5.3 支出审批表 (expense_approval)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| approval_id |
BIGINT |
- |
✅ |
自增 |
审批ID(主键) |
| expense_id |
BIGINT |
- |
✅ |
- |
支出ID(外键) |
| approval_level |
INT |
- |
✅ |
1 |
审批层级 |
| approver_id |
BIGINT |
- |
✅ |
- |
审批人ID |
| approver_role |
VARCHAR |
50 |
✅ |
- |
审批人角色 |
| approval_order |
INT |
- |
✅ |
1 |
审批顺序 |
| approval_status |
VARCHAR |
20 |
✅ |
pending |
审批状态(pending-待审批,approved-已通过,rejected-已驳回) |
| approval_opinion |
TEXT |
- |
❌ |
- |
审批意见 |
| approval_time |
DATETIME |
- |
❌ |
- |
审批时间 |
| remind_count |
INT |
- |
✅ |
0 |
提醒次数 |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
3.5.4 支出付款记录表 (expense_payment)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| payment_id |
BIGINT |
- |
✅ |
自增 |
付款记录ID(主键) |
| expense_id |
BIGINT |
- |
✅ |
- |
支出ID(外键) |
| payment_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
付款金额 |
| payment_date |
DATE |
- |
✅ |
- |
付款日期 |
| payment_method |
VARCHAR |
20 |
✅ |
transfer |
付款方式(transfer-转账,cash-现金,check-支票,other-其他) |
| payment_account |
VARCHAR |
100 |
❌ |
- |
付款账户 |
| payment_voucher |
VARCHAR |
255 |
❌ |
- |
付款凭证URL |
| operator_id |
BIGINT |
- |
✅ |
- |
操作人ID |
| remark |
VARCHAR |
200 |
❌ |
- |
备注说明 |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
3.6 应收款管理模块数据模型
3.6.1 应收款表 (receivable)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| receivable_id |
BIGINT |
- |
✅ |
自增 |
应收款ID(主键) |
| receivable_code |
VARCHAR |
50 |
✅ |
- |
应收款编号(唯一) |
| requirement_id |
BIGINT |
- |
✅ |
- |
需求ID(外键) |
| project_id |
BIGINT |
- |
✅ |
- |
项目ID(外键) |
| customer_id |
BIGINT |
- |
✅ |
- |
客户ID(外键) |
| receivable_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
应收款金额 |
| receivable_date |
DATE |
- |
✅ |
- |
应收款日期 |
| payment_terms |
VARCHAR |
100 |
❌ |
- |
付款条款 |
| payment_due_date |
DATE |
- |
✅ |
- |
付款截止日期 |
| payment_method |
VARCHAR |
20 |
❌ |
- |
付款方式(transfer-转账,cash-现金,check-支票,other-其他) |
| bank_account |
VARCHAR |
100 |
❌ |
- |
收款账户 |
| invoice_required |
TINYINT |
1 |
✅ |
0 |
是否需要开票(0-否,1-是) |
| invoice_status |
VARCHAR |
20 |
❌ |
not_required |
开票状态(not_required-无需开票,pending-待开票,issued-已开票) |
| invoice_number |
VARCHAR |
50 |
❌ |
- |
发票号码 |
| invoice_date |
DATE |
- |
❌ |
- |
开票日期 |
| invoice_amount |
DECIMAL |
15,2 |
❌ |
0.00 |
开票金额 |
| status |
VARCHAR |
20 |
✅ |
pending |
状态(pending-待收款,partial-部分收款,received-已收款,overdue-逾期,cancelled-已取消) |
| received_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
已收款金额 |
| unpaid_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
未收款金额 |
| overdue_days |
INT |
- |
✅ |
0 |
逾期天数 |
| collection_priority |
VARCHAR |
20 |
✅ |
normal |
催收优先级(high-高,normal-中,low-低) |
| remark |
VARCHAR |
500 |
❌ |
- |
备注说明 |
| created_by |
BIGINT |
- |
✅ |
- |
创建人ID |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
| updated_by |
BIGINT |
- |
✅ |
- |
更新人ID |
| updated_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
更新时间 |
| deleted |
TINYINT |
1 |
✅ |
0 |
逻辑删除(0-未删除,1-已删除) |
3.6.2 收款记录表 (receipt)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| receipt_id |
BIGINT |
- |
✅ |
自增 |
收款记录ID(主键) |
| receipt_code |
VARCHAR |
50 |
✅ |
- |
收款编号(唯一) |
| receivable_id |
BIGINT |
- |
✅ |
- |
应收款ID(外键) |
| receipt_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
收款金额 |
| receipt_date |
DATE |
- |
✅ |
- |
收款日期 |
| receipt_method |
VARCHAR |
20 |
✅ |
transfer |
收款方式(transfer-转账,cash-现金,check-支票,other-其他) |
| receipt_account |
VARCHAR |
100 |
❌ |
- |
收款账户 |
| payer_name |
VARCHAR |
100 |
❌ |
- |
付款方名称 |
| payer_account |
VARCHAR |
100 |
❌ |
- |
付款方账户 |
| receipt_voucher |
VARCHAR |
255 |
❌ |
- |
收款凭证URL(银行回单等) |
| is_advance |
TINYINT |
1 |
✅ |
0 |
是否预收款(0-否,1-是) |
| offset_receivable |
TINYINT |
1 |
✅ |
1 |
是否冲抵应收款(0-否,1-是) |
| operator_id |
BIGINT |
- |
✅ |
- |
操作人ID |
| remark |
VARCHAR |
200 |
❌ |
- |
备注说明 |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
3.6.3 催收记录表 (collection_record)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| collection_id |
BIGINT |
- |
✅ |
自增 |
催收记录ID(主键) |
| receivable_id |
BIGINT |
- |
✅ |
- |
应收款ID(外键) |
| collection_date |
DATE |
- |
✅ |
- |
催收日期 |
| collector_id |
BIGINT |
- |
✅ |
- |
催收人ID |
| collection_method |
VARCHAR |
20 |
✅ |
phone |
催收方式(phone-电话,email-邮件,visit-上门,wechat-微信,other-其他) |
| collection_content |
TEXT |
- |
✅ |
- |
催收内容 |
| customer_response |
TEXT |
- |
❌ |
- |
客户反馈 |
| promised_payment_date |
DATE |
- |
❌ |
- |
承诺付款日期 |
| promised_amount |
DECIMAL |
15,2 |
❌ |
0.00 |
承诺付款金额 |
| collection_result |
VARCHAR |
20 |
✅ |
pending |
催收结果(pending-待跟进,promised-已承诺,paid-已付款,refused-拒绝付款) |
| next_followup_date |
DATE |
- |
❌ |
- |
下次跟进日期 |
| remark |
VARCHAR |
200 |
❌ |
- |
备注说明 |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
3.7 报表与统计模块数据模型
3.7.1 财务统计快照表 (financial_snapshot)
| 字段名 |
类型 |
长度/精度 |
必填 |
默认值 |
说明 |
| snapshot_id |
BIGINT |
- |
✅ |
自增 |
快照ID(主键) |
| snapshot_date |
DATE |
- |
✅ |
- |
快照日期 |
| snapshot_type |
VARCHAR |
20 |
✅ |
daily |
快照类型(daily-日,weekly-周,monthly-月,quarterly-季度,yearly-年) |
| total_receivable |
DECIMAL |
15,2 |
✅ |
0.00 |
应收账款总额 |
| received_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
已收款总额 |
| unpaid_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
未收款总额 |
| overdue_amount |
DECIMAL |
15,2 |
✅ |
0.00 |
逾期金额 |
| total_expense |
DECIMAL |
15,2 |
✅ |
0.00 |
支出总额 |
| net_income |
DECIMAL |
15,2 |
✅ |
0.00 |
净收入 |
| receivable_count |
INT |
- |
✅ |
0 |
应收款笔数 |
| expense_count |
INT |
- |
✅ |
0 |
支出笔数 |
| overdue_count |
INT |
- |
✅ |
0 |
逾期笔数 |
| created_time |
DATETIME |
- |
✅ |
CURRENT_TIMESTAMP |
创建时间 |
四、功能模块分解
4.1 系统管理模块
4.1.1 用户管理
- 用户注册/登录/注销
- 用户信息维护(姓名、手机号、邮箱、部门等)
- 角色权限管理(管理员、财务、项目经理、普通员工)
- 操作日志记录与查询
4.1.2 组织架构管理
- 部门管理(增删改查、层级关系)
- 岗位管理(岗位定义、职责描述)
- 人员分配(部门人员配置)
4.1.3 系统配置
- 基础参数设置(公司信息、币种、日期格式等)
- 审批流程配置(审批节点、审批人规则)
- 通知提醒设置(邮件、短信、站内信)
4.2 客户管理模块
4.2.1 客户信息管理
- 客户档案创建/编辑/删除/禁用
- 客户分类管理(按行业、规模、等级等)
- 客户联系人管理(联系人信息、联系方式)
4.2.2 客户关系维护
- 客户等级评定(根据合作金额、回款情况等)
- 客户信用管理(信用额度、信用评级)
4.2.3 客户统计分析
- 客户贡献度分析(收入排名、利润贡献)
- 客户活跃度统计(合作频次、最近交易时间)
4.3 项目管理模块
4.3.1 项目信息管理
- 项目创建/编辑/归档/删除
- 项目基本信息维护(项目名称、编号、负责人、开始/结束日期)
- 项目状态管理(筹备中、进行中、已完成、已归档)
4.3.2 项目关联管理
- 客户关联(项目所属客户)
- 团队成员分配(项目经理、开发人员、财务等)
- 项目里程碑设置(关键节点、交付物)
4.3.3 项目统计分析
- 项目进度跟踪(完成率、延期情况)
- 项目收益分析(收入、支出、利润率)
4.4 需求清单管理模块
4.4.1 需求信息管理
- 需求创建/编辑/删除
- 需求详情维护:
- 需求名称
- 需求描述
- 所属客户
- 所属项目
- 开发工时
- 交付日期
- 应收款金额
- 应收款日期
- 需求状态管理(待开发、开发中、待交付、已完成)
4.4.2 应收款管理
- 应收款金额设置
- 应收款日期管理
- 收款计划制定(分期收款计划)
- 交付日期跟踪与提醒
4.4.3 需求进度跟踪
- 开发进度更新(完成百分比)
- 交付状态管理(已交付、待验收、已验收)
- 验收确认(客户确认、验收日期)
4.4.4 需求统计分析
- 需求完成率统计
- 应收款汇总分析(按客户、项目、时间维度)
4.5 支出类型管理模块
4.5.1 支出分类管理
- 支出类型创建/编辑/删除
- 支出类型层级管理(一级分类、二级分类)
- 常见支出类型示例:
- 人力成本(工资、奖金、社保)
- 办公费用(房租、水电、办公用品)
- 差旅费用(交通、住宿、餐饮)
- 采购费用(设备、软件、服务)
- 其他费用
4.5.2 支出标准管理
- 费用标准设置(差旅标准、招待标准等)
- 预算控制规则(超预算审批、预算预警)
4.5.3 支出类型统计
- 支出类型使用分析(各类支出占比)
- 支出趋势分析(按时间维度)
4.6 支出管理模块
4.6.1 支出申请
- 支出录入字段:
- 支出金额
- 支出类型
- 支出事由
- 支出日期
- 所属项目
- 申请人
- 附件上传(发票、合同等)
- 预算关联(关联项目预算、预算余额校验)
4.6.2 支出审批
- 多级审批流程(根据金额、类型设置不同审批层级)
- 审批意见记录(审批人、审批时间、审批意见)
- 审批状态跟踪(待审批、审批中、已通过、已驳回)
4.6.3 支出执行
- 付款操作(确认付款、付款日期)
- 付款凭证管理(付款截图、银行回单)
- 付款状态更新(待付款、已付款、已核销)
4.6.4 支出状态管理
- 标记完成(确认支出已完成)
- 作废处理(支出作废、原因记录)
- 退款管理(退款申请、退款记录)
4.6.5 支出统计分析
- 支出明细查询(多条件筛选)
- 支出趋势分析(月度、季度、年度)
- 预算执行分析(预算使用率、超支情况)
4.7 应收款管理模块
4.7.1 应收款确认
- 应收款生成(从需求清单自动生成)
- 应收款金额确认(确认应收金额)
- 应收款日期确认(确认应收日期)
4.7.2 收款管理
- 收款记录录入:
- 实际收款金额
- 收款日期
- 收款方式(银行转账、现金、支票等)
- 收款凭证(上传凭证照片)
- 收款方式管理(维护常用收款方式)
- 收款凭证管理(凭证归档、查询)
4.7.3 账期管理
- 账期设置(标准账期、特殊账期)
- 逾期提醒(逾期天数、提醒频率)
- 催收记录(催收时间、催收人员、催收结果)
4.7.4 应收款统计分析
- 应收款汇总(总应收、已收、未收)
- 回款率分析(回款率、平均回款周期)
- 逾期账款分析(逾期金额、逾期客户排名)
4.8 报表统计模块
4.8.1 财务报表
- 收支汇总报表(收入、支出、净收益)
- 现金流量表(经营、投资、筹资活动现金流)
- 利润分析表(毛利润、净利润、利润率)
4.8.2 项目报表
- 项目收支明细(项目维度收支明细)
- 项目利润率分析(各项目利润对比)
- 项目回款情况(项目回款进度)
4.8.3 客户报表
- 客户贡献度分析(客户收入排名)
- 客户回款统计(客户回款率、回款周期)
- 客户信用分析(逾期情况、信用评级)
4.8.4 数据导出
- Excel导出(支持多表导出、格式自定义)
- PDF导出(报表转PDF、支持打印)
- 自定义报表(拖拽式报表设计器)
4.9 提醒预警模块
4.9.1 逾期提醒
- 应收款逾期提醒(逾期天数、金额、客户)
- 支出审批超时提醒(超时审批、催办通知)
4.9.2 待办提醒
- 待审批事项(支出审批、特殊申请)
- 待处理事项(逾期账款、待收款)
4.9.3 预警通知
- 预算超支预警(预算使用率超过阈值)
- 异常交易预警(大额支出、异常收款)
4.10 移动端模块 (UniApp)
4.10.1 移动端首页
- 待办事项展示(审批、催收等)
- 数据概览(今日收支、待收款、待审批)
- 快捷入口(快速录入、快速审批)
4.10.2 移动审批
- 支出审批(审批列表、审批操作)
- 审批历史(已审批记录查询)
4.10.3 移动查询
- 收支查询(个人收支、项目收支)
- 项目查询(项目进度、项目收支)
- 客户查询(客户信息、客户往来)
4.10.4 移动录入
- 支出录入(快速录入支出申请)
- 收款录入(现场收款记录)
五、技术架构建议
5.1 后端架构
| 组件 |
技术选型 |
说明 |
| 应用框架 |
Spring Boot 3.x |
Java生态,成熟稳定,适合企业级应用 |
| 数据库 |
MySQL 8.0 / PostgreSQL 14 |
支持事务、ACID,数据持久化 |
| 缓存 |
Redis 7.x |
会话管理、热点数据缓存 |
| 文件存储 |
阿里云OSS / MinIO |
文件上传、附件存储 |
| 消息队列 |
RabbitMQ / Kafka |
异步处理、消息通知 |
| 定时任务 |
XXL-JOB / Quartz |
定时提醒、数据统计 |
| API文档 |
Swagger / Knife4j |
接口文档自动生成 |
5.2 前端架构
| 端 |
技术栈 |
说明 |
| 管理后台 |
Vue 3 + TypeScript + Element Plus |
响应式设计,组件丰富 |
| 移动端 |
UniApp + Vue 3 + uView UI |
一套代码多端发布(H5、小程序、App) |
| 图表库 |
ECharts 5.x |
数据可视化、报表展示 |
| 构建工具 |
Vite 4.x |
快速构建、热更新 |
5.3 部署架构
┌─────────────────────────────────────────────────────────┐
│ 负载均衡层 │
│ Nginx + Keepalived │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ 应用服务层 │
│ Docker + Docker Compose / Kubernetes │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 应用实例1 │ │ 应用实例2 │ │ 应用实例3 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ 数据服务层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL │ │ Redis │ │ RabbitMQ │ │
│ │ 主从复制 │ │ 缓存集群 │ │ 消息队列 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ 存储服务层 │
│ 阿里云OSS / MinIO │
└─────────────────────────────────────────────────────────┘
六、项目实施规划
6.1 版本规划
第一阶段:MVP版本(预计6-8周)
核心功能:
- ✅ 基础用户管理和权限控制
- ✅ 客户、项目、需求清单管理
- ✅ 支出类型和支出管理(基础录入、审核、标记完成、作废)
- ✅ 应收款基础跟踪
- ✅ 简单报表统计(收支汇总、项目收支)
交付物:
- 管理后台基础功能
- 数据库设计与实现
- 基础API接口
第二阶段:功能完善(预计4-6周)
新增功能:
- ✅ 完善审批流程(多级审批、审批记录)
- ✅ 收款管理功能(收款记录、收款凭证)
- ✅ 账期管理与逾期提醒
- ✅ 移动端开发(UniApp)
- ✅ 提醒预警机制
交付物:
- 完整的审批流程
- 移动端应用(H5/小程序)
- 消息提醒功能
第三阶段:高级功能(预计4-6周)
新增功能:
- ✅ 高级统计分析(多维度报表)
- ✅ 数据可视化(图表展示)
- ✅ 数据导出功能(Excel/PDF)
- ✅ 操作日志与审计追踪
- ✅ 系统配置与参数管理
交付物:
6.2 人员配置建议
| 角色 |
人数 |
职责 |
| 项目经理 |
1 |
项目管理、需求沟通、进度控制 |
| 后端开发 |
2 |
后端API开发、数据库设计 |
| 前端开发 |
2 |
管理后台开发、移动端开发 |
| 测试工程师 |
1 |
功能测试、性能测试、Bug修复 |
| 运维工程师 |
1(兼职) |
环境部署、服务器维护 |
6.3 风险评估与应对
| 风险项 |
风险等级 |
应对措施 |
| 需求变更频繁 |
中 |
建立需求变更流程,采用敏捷开发 |
| 数据安全风险 |
高 |
数据加密、权限控制、操作审计 |
| 性能瓶颈 |
中 |
数据库优化、缓存策略、负载均衡 |
| 移动端兼容性 |
低 |
多端测试、持续集成 |
七、附录
7.1 术语表
| 术语 |
说明 |
| 应收款 |
公司因销售商品、提供服务等应向客户收取的款项 |
| 支出 |
公司为开展业务活动所发生的各项费用 |
| 账期 |
从交易发生到付款/收款的时间期限 |
| 回款率 |
实际收款金额与应收金额的比率 |
| 预算 |
对未来一定时期内的收支计划 |
7.2 参考资料
- 《企业会计准则》
- 《软件需求规格说明书编写指南》
- 《RESTful API设计规范》
八、文档修订记录
| 版本 |
修订日期 |
修订内容 |
修订人 |
| v1.0 |
2026-02-11 |
初稿创建 |
AI Assistant |
| v1.1 |
2026-02-11 |
补充核心数据模型与属性定义 |
AI Assistant |
文档结束