Files
hzhub/hzhub-erp/docs/sql/erp_api_tables_sqlserver.sql
大壮 c2513849b4 feat: 添加ERP服务和系统服务,完善员工门户功能
## 新增服务模块

### 1. ERP服务 (hzhub-erp)
- 新增独立的ERP数据适配服务
- 支持SQL Server 2008 R2数据源
- 提供动态API配置管理系统
- 包含客户管理、销售数据等业务接口

### 2. 系统服务 (hzhub-system)
- 新增独立的系统管理服务
- 用户、角色、权限、部门、菜单管理
- 租户管理、操作日志、在线用户监控
- 工作流引擎(warm-flow)集成
- 企业微信审批同步功能

### 3. API网关 (hzhub-gateway)
- 新增Spring Cloud Gateway网关服务
- JWT认证、路由分发、限流熔断
- XSS防护、请求日志记录
- 统一入口端口8080

## 后台管理功能增强

### ERP动态API管理
- 新增动态API配置管理界面
- API测试、文档预览、统计监控
- 错误日志查看、缓存管理
- 从数据库表自动导入API配置

### 系统管理增强
- 企业微信配置管理
- 企业微信审批同步配置
- 部门和用户管理优化

## 员工门户功能完善

### 业务页面
- 审批中心:工作流审批、待办任务
- CRM管理:客户关系管理
- 经销商管理:经销商数据展示
- 供应链管理:采购、库存、销售
- BI报表:数据可视化分析
- ERP数据探索:SQL Server数据查询

### 个人中心
- 基本设置:个人信息管理
- 安全设置:密码修改、登录日志
- 锁屏功能:自动锁屏、手动锁屏

### 其他功能
- 标签页管理:多标签页导航
- 页面缓存:keepAlive缓存机制
- 会话超时:自动检测并提示

## 经销商门户

### 页面路由
- 新增经销商管理页面路由
- AI聊天界面完善

## 文档更新

- ERP API数据库初始化指南
- ERP API前端完整实现文档
- ERP API测试和验证指南
- Gateway路由迁移计划
- 项目配置文档更新

## 部署脚本

- 统一启动/停止/重启脚本
- Docker Compose配置优化
- Nginx配置文件更新

## 技术栈

- 后端: Spring Boot 3.5.8, Java 17
- 前端: Vue 3, TypeScript, Element Plus, Vben Admin
- 工作流: warm-flow 1.8.2
- 网关: Spring Cloud Gateway
- 数据库: MySQL 8.0, SQL Server 2008 R2
- 缓存: Redis 7
- 向量库: Weaviate 1.25.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 08:00:19 +00:00

158 lines
4.9 KiB
Transact-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.
-- ERP API 管理平台数据库表创建脚本 (SQL Server 版本)
-- 执行顺序:先创建 erp_api_config再创建 erp_api_param最后创建 erp_api_stats
-- 1. API 配置主表
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='erp_api_config' AND xtype='U')
BEGIN
CREATE TABLE erp_api_config (
api_id BIGINT IDENTITY(1,1) PRIMARY KEY,
api_name NVARCHAR(100) NOT NULL,
api_path NVARCHAR(200) NOT NULL,
api_method NVARCHAR(10) NOT NULL DEFAULT 'GET',
api_desc NVARCHAR(500),
api_version NVARCHAR(10) DEFAULT 'v1',
-- 数据源配置
data_source NVARCHAR(50) DEFAULT 'erp',
-- SQL配置
sql_template NVARCHAR(MAX) NOT NULL,
result_type NVARCHAR(20) NOT NULL DEFAULT 'LIST',
-- 分页配置
support_pagination TINYINT DEFAULT 0,
page_param_name NVARCHAR(50) DEFAULT 'pageNum',
size_param_name NVARCHAR(50) DEFAULT 'pageSize',
-- 权限配置
require_auth TINYINT DEFAULT 0,
permission_code NVARCHAR(100),
-- 缓存配置
enable_cache TINYINT DEFAULT 0,
cache_key_template NVARCHAR(200),
cache_ttl INT DEFAULT 300,
-- 来源表信息
source_table NVARCHAR(100),
source_table_comment NVARCHAR(500),
-- 状态
status TINYINT DEFAULT 1,
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE(),
create_by NVARCHAR(50),
update_by NVARCHAR(50),
remark NVARCHAR(500)
);
PRINT 'Table erp_api_config created successfully';
END
ELSE
BEGIN
PRINT 'Table erp_api_config already exists';
END
GO
-- 创建索引
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name='idx_api_path_method' AND object_id=OBJECT_ID('erp_api_config'))
CREATE INDEX idx_api_path_method ON erp_api_config(api_path, api_method, api_version);
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name='idx_status' AND object_id=OBJECT_ID('erp_api_config'))
CREATE INDEX idx_status ON erp_api_config(status);
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name='idx_source_table' AND object_id=OBJECT_ID('erp_api_config'))
CREATE INDEX idx_source_table ON erp_api_config(source_table);
GO
-- 2. API 参数配置表
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='erp_api_param' AND xtype='U')
BEGIN
CREATE TABLE erp_api_param (
param_id BIGINT IDENTITY(1,1) PRIMARY KEY,
api_id BIGINT NOT NULL,
-- 参数基本信息
param_name NVARCHAR(100) NOT NULL,
param_desc NVARCHAR(500),
param_type NVARCHAR(20) NOT NULL DEFAULT 'String',
-- 参数位置
param_position NVARCHAR(20) NOT NULL DEFAULT 'QUERY',
-- 参数验证
is_required TINYINT DEFAULT 0,
default_value NVARCHAR(200),
-- SQL映射
sql_param_name NVARCHAR(100),
-- 排序
sort INT DEFAULT 0,
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
);
PRINT 'Table erp_api_param created successfully';
END
ELSE
BEGIN
PRINT 'Table erp_api_param already exists';
END
GO
-- 创建索引和外键
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name='idx_api_id' AND object_id=OBJECT_ID('erp_api_param'))
CREATE INDEX idx_api_id ON erp_api_param(api_id);
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE name='fk_api_param_api')
BEGIN
ALTER TABLE erp_api_param ADD CONSTRAINT fk_api_param_api
FOREIGN KEY (api_id) REFERENCES erp_api_config(api_id) ON DELETE CASCADE;
END
GO
-- 3. API 调用统计表
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='erp_api_stats' AND xtype='U')
BEGIN
CREATE TABLE erp_api_stats (
stats_id BIGINT IDENTITY(1,1) PRIMARY KEY,
api_id BIGINT NOT NULL,
-- 调用信息
call_time DATETIME NOT NULL,
call_params NVARCHAR(MAX),
response_time INT,
call_status NVARCHAR(10),
-- 错误信息
error_message NVARCHAR(MAX),
error_stack NVARCHAR(MAX),
-- 客户端信息
client_ip NVARCHAR(50),
user_id NVARCHAR(50),
create_time DATETIME DEFAULT GETDATE()
);
PRINT 'Table erp_api_stats created successfully';
END
ELSE
BEGIN
PRINT 'Table erp_api_stats already exists';
END
GO
-- 创建索引
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name='idx_api_id_time' AND object_id=OBJECT_ID('erp_api_stats'))
CREATE INDEX idx_api_id_time ON erp_api_stats(api_id, call_time);
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name='idx_call_status' AND object_id=OBJECT_ID('erp_api_stats'))
CREATE INDEX idx_call_status ON erp_api_stats(call_status);
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name='idx_response_time' AND object_id=OBJECT_ID('erp_api_stats'))
CREATE INDEX idx_response_time ON erp_api_stats(response_time);
GO
PRINT 'All ERP API management tables created successfully';