46 KiB
46 KiB
资金服务平台 (FundPlatform) - 需求文档
文档版本: v1.0
创建日期: 2026-02-13
项目名称: 资金服务平台
项目代号: fundplatform
一、项目概述
1.1 项目背景
资金服务平台旨在建立一套完整的公司项目资金管理解决方案,实现对应收账款和项目支出的全流程跟踪与管理,提升财务管理效率和资金周转率。
1.2 整体目标
| 目标类别 | 具体描述 |
|---|---|
| 应收账款管理 | 对公司项目的应收账款进行跟踪、确认、收款记录和账期管理 |
| 项目支出管理 | 对公司项目支出进行申请、审批、执行和核销的全流程管理 |
| 数据可视化 | 提供多维度的财务报表和统计分析,辅助决策 |
| 移动办公 | 支持管理后台和移动端H5双端访问,提升办公效率 |
二、业务需求
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[标记完成/作废]
2.2 功能需求
| 功能类别 | 功能描述 |
|---|---|
| 状态管理 | 应收款状态(待收款、部分收款、已收款、逾期) |
| 收款记录 | 实际收款金额、收款日期、收款方式、收款凭证 |
| 付款管理 | 付款操作、付款凭证、付款状态跟踪 |
| 财务报表 | 收支汇总、现金流量、支出趋势分析 |
| 数据导出 | Excel导出、自定义报表 |
| 审计追踪 | 操作日志、数据变更记录 |
2.3 非功能性需求
| 需求类别 | 具体要求 |
|---|---|
| 安全性 | 用户权限控制、数据加密传输、操作审计日志 |
| 性能 | 支持≥100人并发访问、列表加载<2秒、查询响应<3秒 |
| 可用性 | 响应式设计、移动端适配、操作流程简化 |
| 可靠性 | 数据每日备份、故障恢复时间<30分钟、系统可用性≥99.5% |
| 兼容性 | 支持主流浏览器(Chrome、Firefox、Safari、Edge) |
三、功能模块详细需求
3.1 系统管理模块
3.1.1 用户管理
-
用户注册/登录/注销
- 支持用户名密码登录
- 支持登录状态保持
- 支持安全退出
-
用户信息维护
- 姓名、手机号、邮箱、部门等信息维护
- 头像上传
- 密码修改
-
角色权限管理
- 管理员:系统所有权限
- 财务:支出审批、收款管理、财务报表
- 项目经理:项目相关操作、支出申请
- 普通员工:支出申请、个人数据查看
-
操作日志记录与查询
- 记录用户操作行为
- 支持按时间、用户、操作类型查询
3.1.2 组织架构管理
-
部门管理
- 部门创建、编辑、删除
- 部门层级关系维护
- 部门负责人设置
-
岗位管理
- 岗位定义
- 岗位职责描述
-
人员分配
- 部门人员配置
- 人员调动记录
3.1.3 系统配置
- 基础参数设置
- 公司信息配置
- 币种设置
- 日期格式设置
3.2 客户管理模块
3.2.1 客户信息管理
-
客户档案管理
- 客户创建、编辑、删除、禁用
- 客户编码自动生成
- 客户名称、简称、类型(企业/个人)
-
客户分类管理
- 按行业分类
- 按规模分类(小型、中型、大型)
- 按等级分类(A/B/C/D/normal)
-
客户联系人管理
- 联系人信息维护(姓名、职位、电话、邮箱等)
- 主要联系人标记
- 联系人排序
3.3 项目管理模块
3.3.1 项目信息管理
-
项目基础管理
- 项目创建、编辑、归档、删除
- 项目编号自动生成
- 项目名称、简称维护
-
项目基本信息
- 项目负责人设置
- 项目开始/结束日期
- 项目预算金额
- 合同金额
-
项目状态管理
- 筹备中
- 进行中
- 已完成
- 已归档
- 已取消
3.3.2 项目关联管理
-
客户关联
- 项目所属客户绑定
- 客户项目列表
-
团队成员分配
- 项目经理分配
- 开发人员分配
- 财务人员分配
- 工作量占比设置
3.4 需求清单管理模块
3.4.1 需求工单信息管理
-
需求工单基础管理
- 需求工单创建、编辑、删除
- 需求工单编号自动生成
-
需求工单详情
- 需求工单名称
- 需求描述
- 所属客户(关联客户管理)
- 所属项目(关联项目管理)
- 开发工时(预估/实际)
- 交付日期
- 应收款金额
- 应收款日期
-
需求状态管理
- 待开发
- 开发中
- 待交付
- 已完成
3.4.2 应收款管理
-
应收款设置
- 应收款金额设置
- 应收款日期管理
- 付款条款设置
-
交付日期跟踪
- 交付日期提醒
- 逾期预警
3.5 支出类型管理模块
3.5.1 支出分类管理
-
支出类型基础管理
- 支出类型创建、编辑、删除
- 支出类型编码设置
-
支出类型层级
- 一级分类
- 二级分类
- 层级关系维护
-
常见支出类型
- 人力成本(工资、奖金、社保)
- 办公费用(房租、水电、办公用品)
- 差旅费用(交通、住宿、餐饮)
- 采购费用(设备、软件、服务)
- 其他费用
3.6 支出管理模块
3.6.1 支出申请
- 支出录入
- 支出金额
- 支出类型(关联支出类型管理)
- 支出事由
- 支出日期
- 所属项目(关联项目管理)
- 申请人(自动填充当前用户)
- 附件上传(发票、合同等)
3.6.2 支出执行
-
付款操作
- 确认付款
- 付款日期记录
- 付款账户选择
-
付款凭证管理
- 付款截图上传
- 银行回单上传
- 凭证查看、下载
-
付款状态更新
- 待付款
- 已付款
- 已核销
3.6.3 支出状态管理
-
标记完成
- 确认支出已完成
- 完成时间记录
-
作废处理
- 支出作废申请
- 作废原因记录
- 作废审批(可选)
-
退款管理
- 退款申请
- 退款金额记录
- 退款凭证管理
3.6.4 支出统计分析
-
支出明细查询
- 多条件筛选(时间、类型、项目、申请人等)
- 分页展示
- 排序功能
-
支出趋势分析
- 月度支出趋势
- 季度支出统计
- 年度支出汇总
- 图表展示(柱状图、折线图)
3.7 应收款管理模块
3.7.1 应收款确认
-
应收款生成
- 从需求清单自动生成应收款
- 应收款编号自动生成
-
应收款确认
- 应收金额确认
- 应收日期确认
- 付款截止日期设置
3.7.2 收款管理
-
收款记录录入
- 实际收款金额
- 收款日期
- 收款方式(银行转账、现金、支票、其他)
- 收款凭证上传(银行回单等)
- 付款方信息
-
收款方式管理
- 常用收款方式维护
- 收款账户管理
-
收款凭证管理
- 凭证归档
- 凭证查询
- 凭证下载
-
应收款状态更新
- 待收款
- 部分收款
- 已收款
- 逾期
3.8 移动端模块 (H5)
3.8.1 移动端首页
-
数据概览
- 今日收支
- 待收款金额
- 待付款金额
-
快捷入口
- 快速录入支出
- 快速录入收款
3.8.2 移动查询
-
收支查询
- 个人收支查询
- 项目收支查询
- 时间范围筛选
-
项目查询
- 项目列表
- 项目进度查看
- 项目收支详情
-
客户查询
- 客户信息查看
- 客户往来记录
3.8.3 移动录入
-
支出录入
- 快速录入支出申请
- 拍照上传发票
- 选择支出类型
-
收款录入
- 现场收款记录
- 收款凭证拍照
- 选择收款方式
四、核心数据模型
4.1 系统管理模块
4.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 | ❌ | - | 手机号码 |
| 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-已删除) |
4.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-已删除) |
4.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 | - | ❌ | - | 错误信息 |
4.2 客户管理模块
4.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) |
| tax_no | VARCHAR | 50 | ❌ | - | 纳税人识别号 |
| legal_person | VARCHAR | 50 | ❌ | - | 法定代表人 |
| address | VARCHAR | 500 | ❌ | - | 公司地址 |
| phone | VARCHAR | 20 | ❌ | - | 联系电话 |
| VARCHAR | 100 | ❌ | - | 邮箱地址 | |
| 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-已删除) |
4.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 | ❌ | - | 手机号码 |
| VARCHAR | 100 | ❌ | - | 邮箱地址 | |
| is_primary | TINYINT | 1 | ✅ | 0 | 是否主要联系人(0-否,1-是) |
| 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-已删除) |
4.3 项目管理模块
4.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 | - | ❌ | - | 项目结束日期 |
| 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 | ❌ | - | 备注说明 |
| created_by | BIGINT | - | ✅ | - | 创建人ID |
| created_time | DATETIME | - | ✅ | CURRENT_TIMESTAMP | 创建时间 |
| updated_by | BIGINT | - | ✅ | - | 更新人ID |
| updated_time | DATETIME | - | ✅ | CURRENT_TIMESTAMP | 更新时间 |
| deleted | TINYINT | 1 | ✅ | 0 | 逻辑删除(0-未删除,1-已删除) |
4.3.2 项目成员表 (project_member)
| 字段名 | 类型 | 长度/精度 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| member_id | BIGINT | - | ✅ | 自增 | 成员关系ID(主键) |
| project_id | BIGINT | - | ✅ | - | 项目ID(外键) |
| user_id | BIGINT | - | ✅ | - | 用户ID(外键) |
| role | VARCHAR | 50 | ✅ | member | 项目角色(pm-项目经理,dev-开发,finance-财务,member-普通成员) |
| join_date | DATE | - | ✅ | - | 加入日期 |
| leave_date | DATE | - | ❌ | - | 离开日期 |
| workload | DECIMAL | 5,2 | ❌ | 0.00 | 工作量占比(0-100) |
| 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-已删除) |
4.4 需求清单管理模块
4.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 | - | ✅ | - | 应收款日期 |
| status | VARCHAR | 20 | ✅ | pending | 状态(pending-待开发,developing-开发中,delivered-已交付,completed-已完成) |
| progress | INT | - | ✅ | 0 | 开发进度(0-100) |
| 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-已删除) |
4.5 支出类型管理模块
4.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 | ❌ | - | 类型描述 |
| 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-已删除) |
4.6 支出管理模块
4.6.1 支出表 (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(外键,可为空) |
| applicant_id | BIGINT | - | ✅ | - | 申请人ID |
| department_id | BIGINT | - | ✅ | - | 申请部门ID |
| payment_method | VARCHAR | 20 | ✅ | transfer | 付款方式(transfer-转账,cash-现金,check-支票,other-其他) |
| payment_account | VARCHAR | 100 | ❌ | - | 付款账户 |
| attachment_url | VARCHAR | 500 | ❌ | - | 附件URL(发票、合同等) |
| status | VARCHAR | 20 | ✅ | pending | 状态(pending-待付款,paid-已付款,completed-已完成,cancelled-已作废) |
| 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-已删除) |
4.7 应收款管理模块
4.7.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_due_date | DATE | - | ✅ | - | 付款截止日期 |
| payment_method | VARCHAR | 20 | ❌ | - | 付款方式(transfer-转账,cash-现金,check-支票,other-其他) |
| bank_account | VARCHAR | 100 | ❌ | - | 收款账户 |
| status | VARCHAR | 20 | ✅ | pending | 状态(pending-待收款,partial-部分收款,received-已收款,overdue-逾期) |
| received_amount | DECIMAL | 15,2 | ✅ | 0.00 | 已收款金额 |
| unpaid_amount | DECIMAL | 15,2 | ✅ | 0.00 | 未收款金额 |
| overdue_days | INT | - | ✅ | 0 | 逾期天数 |
| 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-已删除) |
4.7.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 | ❌ | - | 付款方名称 |
| receipt_voucher | VARCHAR | 255 | ❌ | - | 收款凭证URL(银行回单等) |
| operator_id | BIGINT | - | ✅ | - | 操作人ID |
| remark | VARCHAR | 200 | ❌ | - | 备注说明 |
| created_time | DATETIME | - | ✅ | CURRENT_TIMESTAMP | 创建时间 |
五、技术架构
5.1 后端架构
| 组件 | 技术选型 | 说明 |
|---|---|---|
| 应用框架 | Spring Cloud Alibaba + Nacos | Java生态,成熟稳定,适合企业级应用 |
| 数据库 | MySQL 8.0 | 支持事务、ACID,数据持久化 |
| 缓存 | Redis 7.x | 会话管理、热点数据缓存 |
| 文件存储 | 腾讯COS | 文件上传、附件存储 |
| 定时任务 | XXL-JOB | 定时提醒、数据统计 |
| API文档 | Swagger / Knife4j | 接口文档自动生成 |
5.2 前端架构
| 端 | 技术栈 | 说明 |
|---|---|---|
| 管理后台 | Vue 3 + TypeScript + Element Plus | 响应式设计,组件丰富 |
| 移动端 | Vue 3 + Vite 5 + Vant 4 | 移动端H5响应式应用 |
| 图表库 | ECharts 5.x | 数据可视化、报表展示 |
| 构建工具 | Vite 4.x | 快速构建、热更新 |
5.3 部署架构
┌─────────────────────────────────────────────────────────┐
│ 负载均衡层 │
│ Nginx + Keepalived │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ 应用服务层 │
│ Docker + Docker Compose / Kubernetes │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 应用实例1 │ │ 应用实例2 │ │ 应用实例3 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ 数据服务层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL │ │ Redis │ │ Nacos │ │
│ │ 主从复制 │ │ 缓存集群 │ │ 服务注册 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ 存储服务层 │
│ 腾讯COS │
└─────────────────────────────────────────────────────────┘
六、项目实施规划
6.1 版本规划
第一阶段:MVP版本(预计6-8周)
核心功能:
- 基础用户管理和权限控制
- 客户、项目管理
- 需求工单管理
- 支出类型和支出管理
- 应收款基础跟踪
- 简单报表统计
交付物:
- 管理后台基础功能
- 数据库设计与实现
- 基础API接口
第二阶段:功能完善(预计4-6周)
新增功能:
- 收款管理功能(收款记录、收款凭证)
- 账期管理与逾期提醒
- 移动端开发(Vue3 + Vant)
- 提醒预警机制
交付物:
- 完整的收款管理
- 移动端H5应用
- 消息提醒功能
第三阶段:高级功能(预计4-6周)
新增功能:
- 高级统计分析(多维度报表)
- 数据可视化(图表展示)
- 数据导出功能(Excel/PDF)
- 操作日志与审计追踪
- 系统配置与参数管理
交付物:
- 完整的报表系统
- 数据导出功能
- 系统管理后台
6.2 人员配置建议
| 角色 | 人数 | 职责 |
|---|---|---|
| 项目经理 | 1 | 项目管理、需求沟通、进度控制 |
| 后端开发 | 2 | 后端API开发、数据库设计 |
| 前端开发 | 2 | 管理后台开发、移动端开发 |
| 测试工程师 | 1 | 功能测试、性能测试、Bug修复 |
| 运维工程师 | 1(兼职) | 环境部署、服务器维护 |
七、附录
7.1 术语表
| 术语 | 说明 |
|---|---|
| 应收款 | 公司因销售商品、提供服务等应向客户收取的款项 |
| 支出 | 公司为开展业务活动所发生的各项费用 |
| 账期 | 从交易发生到付款/收款的时间期限 |
| 回款率 | 实际收款金额与应收金额的比率 |
| 预算 | 对未来一定时期内的收支计划 |
7.2 参考资料
- 《企业会计准则》
- 《软件需求规格说明书编写指南》
- 《RESTful API设计规范》
八、文档修订记录
| 版本 | 修订日期 | 修订内容 | 修订人 |
|---|---|---|---|
| v1.0 | 2026-02-13 | 根据功能清单生成需求文档 | zhangjf |
文档结束