fundplatform/doc/sql/fund_proj_init.sql
zhangjf bd5f8ab468 fix: 数据库脚本与实体类一致性修复 + fund-admin Nginx子路径部署支持
1. 数据库脚本修复:
   - fund_sys_init.sql: sys_config表添加group_code/group_name/sort_order/remark字段
   - fund_proj_init.sql: 添加requirement表(需求工单)
   - fund_exp_init.sql: 添加fund_expense表缺失字段
   - 删除重复的doc/requirement.sql

2. fund-admin Nginx子路径部署支持:
   - 新增.env.development/.env.production环境配置
   - vite.config.ts支持VITE_BASE动态base路径
   - router使用import.meta.env.BASE_URL
   - API baseURL使用环境变量
   - deploy-frontend-nginx.sh支持/fadmin部署前缀

3. 架构文档更新:
   - 数据库设计文档新增4.4实体类与SQL脚本同步规范
   - 新增4.5自动化检查机制
2026-02-23 00:12:39 +08:00

89 lines
4.5 KiB
SQL
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.

-- =============================================
-- 资金服务平台 - 项目管理数据库初始化脚本
-- Database: fund_proj
-- Version: 1.1
-- Created: 2026-02-17
-- Updated: 2026-02-22 (添加requirement表)
-- =============================================
CREATE DATABASE IF NOT EXISTS fund_proj DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE fund_proj;
-- =============================================
-- 1. 项目表 (project)
-- =============================================
CREATE TABLE IF NOT EXISTS project (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '项目ID',
tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
project_code VARCHAR(64) NOT NULL COMMENT '项目编码',
project_name VARCHAR(128) NOT NULL COMMENT '项目名称',
customer_id BIGINT NOT NULL COMMENT '客户ID',
project_type VARCHAR(32) NOT NULL COMMENT '项目类型',
budget_amount DECIMAL(18,2) COMMENT '预算金额',
start_date DATE COMMENT '开始日期',
end_date DATE COMMENT '结束日期',
project_manager VARCHAR(64) COMMENT '项目经理',
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态: 0-已关闭, 1-进行中, 2-已完成',
remark VARCHAR(500) COMMENT '备注',
created_by BIGINT COMMENT '创建人',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_by BIGINT COMMENT '更新人',
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记: 0-未删除, 1-已删除',
PRIMARY KEY (id),
UNIQUE KEY uk_tenant_code (tenant_id, project_code, deleted),
KEY idx_tenant_id (tenant_id),
KEY idx_customer_id (customer_id),
KEY idx_project_name (project_name),
KEY idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目表';
-- =============================================
-- 2. 需求工单表 (requirement)
-- =============================================
CREATE TABLE IF NOT EXISTS requirement (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键需求ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
requirement_code VARCHAR(50) NOT NULL COMMENT '需求编号',
requirement_name VARCHAR(200) NOT NULL COMMENT '需求名称',
description TEXT COMMENT '需求描述',
project_id BIGINT NOT NULL COMMENT '项目ID',
customer_id BIGINT NOT NULL COMMENT '客户ID',
priority VARCHAR(20) DEFAULT 'normal' COMMENT '优先级high-高normal-中low-低',
estimated_hours DECIMAL(8,2) DEFAULT 0.00 COMMENT '预估开发工时(小时)',
actual_hours DECIMAL(8,2) DEFAULT 0.00 COMMENT '实际开发工时(小时)',
planned_start DATE COMMENT '计划开始日期',
planned_end DATE COMMENT '计划结束日期',
actual_start DATE COMMENT '实际开始日期',
actual_end DATE COMMENT '实际结束日期',
delivery_date DATE COMMENT '交付日期',
receivable_amount DECIMAL(15,2) DEFAULT 0.00 COMMENT '应收款金额',
receivable_date DATE COMMENT '应收款日期',
status VARCHAR(20) DEFAULT 'pending' COMMENT '状态pending-待开发developing-开发中delivered-已交付completed-已完成',
progress INT DEFAULT 0 COMMENT '开发进度0-100',
attachment_url VARCHAR(500) COMMENT '附件URL',
created_by BIGINT COMMENT '创建人ID',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_by BIGINT COMMENT '更新人ID',
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT DEFAULT 0 COMMENT '逻辑删除0-未删除1-已删除',
PRIMARY KEY (id),
UNIQUE KEY uk_tenant_code (tenant_id, requirement_code),
KEY idx_tenant (tenant_id),
KEY idx_project (project_id),
KEY idx_customer (customer_id),
KEY idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='需求工单表';
-- =============================================
-- 初始化测试数据(租户ID=1)
-- =============================================
INSERT INTO project (id, tenant_id, project_code, project_name, customer_id, project_type, budget_amount, start_date, status, created_by, created_time)
VALUES (1, 1, 'PROJ001', '测试项目A', 1, '开发项目', 1000000.00, '2026-01-01', 1, 1, NOW())
ON DUPLICATE KEY UPDATE project_code=project_code;
-- =============================================
-- 脚本执行完成
-- =============================================