# 资金服务平台 (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 | --- **文档结束**