fundplatform/doc/资金服务平台 FundPlatform 需求文档.md

930 lines
64 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 资金服务平台 (FundPlatform) - 需求文档(修订版)
> **文档版本**: v1.1
> **创建日期**: 2026-02-11
> **修订日期**: 2026-02-11
> **项目名称**: 资金服务平台
> **项目代号**: fundplatform
---
## 一、项目概述
### 1.1 项目背景
资金服务平台旨在建立一套完整的公司项目资金管理解决方案,实现对应收账款和项目支出的全流程跟踪与管理,提升财务管理效率和资金周转率。
### 1.2 整体目标
| 目标类别 | 具体描述 |
| ---------------- | ------------------------------------------------------ |
| **应收账款管理** | 对公司项目的应收账款进行跟踪、确认、收款记录和账期管理 |
| **项目支出管理** | 对公司项目支出进行申请、审批、执行和核销的全流程管理 |
| **数据可视化** | 提供多维度的财务报表和统计分析,辅助决策 |
| **移动办公** | 支持管理后台和手机端UniApp双端访问提升办公效率 |
---
## 二、业务需求完善
### 2.1 核心业务流程
#### 2.1.1 应收账款管理流程
```mermaid
flowchart TD
A[需求创建] --> B[交付跟踪]
B --> C[应收款确认]
C --> D[收款记录]
D --> E[账期管理]
E --> F[回款统计]
```
#### 2.1.2 支出管理流程
```mermaid
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% |
| **兼容性** | 支持主流浏览器ChromeFirefoxSafariEdge |
---
## 三、核心数据模型与属性定义
### 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 | 父部门ID0表示顶级部门 |
| 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 | 父类型ID0表示一级类型 |
| 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 |
---
**文档结束**