From b213592e55bf42dddd95c97d4dc49a69304ac359 Mon Sep 17 00:00:00 2001 From: zhangjf Date: Fri, 13 Feb 2026 23:54:47 +0800 Subject: [PATCH] =?UTF-8?q?Initial=20commit:=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E8=B5=84=E9=87=91=E6=9C=8D=E5=8A=A1=E5=B9=B3=E5=8F=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/资金服务平台 FundPlatform 需求文档.md | 929 ++++++++++++++++++++++ 1 file changed, 929 insertions(+) create mode 100644 doc/资金服务平台 FundPlatform 需求文档.md diff --git a/doc/资金服务平台 FundPlatform 需求文档.md b/doc/资金服务平台 FundPlatform 需求文档.md new file mode 100644 index 0000000..33568c2 --- /dev/null +++ b/doc/资金服务平台 FundPlatform 需求文档.md @@ -0,0 +1,929 @@ +# 资金服务平台 (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% | +| **兼容性** | 支持主流浏览器(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 | + +--- + +**文档结束**