|
@@ -1,106 +1,136 @@
|
|
--- 创建数据库
|
|
|
|
-CREATE DATABASE iwb_railway_costing_v1;
|
|
|
|
|
|
+IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'iwb_railway_costing_v1')
|
|
|
|
+BEGIN
|
|
|
|
+ CREATE DATABASE iwb_railway_costing_v1
|
|
|
|
+END
|
|
GO
|
|
GO
|
|
|
|
|
|
-USE iwb_railway_costing_v1;
|
|
|
|
|
|
+USE iwb_railway_costing_v1
|
|
GO
|
|
GO
|
|
|
|
|
|
--- 创建项目任务表
|
|
|
|
-CREATE TABLE project_task (
|
|
|
|
- id INT IDENTITY(1,1) PRIMARY KEY,
|
|
|
|
- task_name NVARCHAR(255) NOT NULL, -- 任务名称
|
|
|
|
- task_desc NVARCHAR(1000), -- 任务描述
|
|
|
|
- project_id NVARCHAR(50) NOT NULL, -- 项目编号
|
|
|
|
- budget_id INT NOT NULL DEFAULT 0, -- 概算序号
|
|
|
|
- item_id INT NOT NULL, -- 条目序号
|
|
|
|
- item_code NVARCHAR(255) NOT NULL, -- 条目编号
|
|
|
|
- file_path TEXT, -- 文件路径
|
|
|
|
- collect_status TINYINT NOT NULL DEFAULT 0, -- 采集状态(0:未开始, 1:进行中, 2:已完成, 3:采集失败)
|
|
|
|
- collect_time DATETIME, -- 采集时间
|
|
|
|
- collect_error TEXT, -- 采集错误信息
|
|
|
|
- process_status TINYINT NOT NULL DEFAULT 0, -- 处理状态(0:未处理,1:处理中, 2:已处理, 3:处理失败)
|
|
|
|
- process_time DATETIME, -- 处理时间
|
|
|
|
- process_error TEXT, -- 处理错误信息
|
|
|
|
- send_status TINYINT NOT NULL DEFAULT 0, -- 发送状态(0:未发送,1:发送中 ,2:已发送, 3:发送失败)
|
|
|
|
- send_time DATETIME, -- 发送时间
|
|
|
|
- send_error TEXT, -- 发送错误信息
|
|
|
|
- is_del TINYINT NOT NULL DEFAULT 0, -- 是否删除(0:否, 1:是)
|
|
|
|
- deleted_by NVARCHAR(50), -- 删除人
|
|
|
|
- deleted_at DATETIME, -- 删除时间
|
|
|
|
- created_by NVARCHAR(50), -- 创建人
|
|
|
|
- created_at DATETIME , -- 创建时间
|
|
|
|
- updated_by NVARCHAR(50), -- 更新人
|
|
|
|
- updated_at DATETIME -- 更新时间
|
|
|
|
-);
|
|
|
|
|
|
+USE iwb_railway_costing_v1
|
|
GO
|
|
GO
|
|
|
|
|
|
--- 创建索引
|
|
|
|
-CREATE INDEX idx_project_id ON project_task (project_id);
|
|
|
|
-CREATE INDEX idx_budget_id ON project_task (budget_id);
|
|
|
|
-CREATE INDEX idx_item_id ON project_task (item_id);
|
|
|
|
-CREATE INDEX idx_item_code ON project_task (item_code);
|
|
|
|
-CREATE INDEX idx_created_at ON project_task (created_at);
|
|
|
|
|
|
+-- -- 删除项目任务表
|
|
|
|
+-- IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_task]') AND type in (N'U'))
|
|
|
|
+-- BEGIN
|
|
|
|
+-- DROP TABLE [dbo].[project_task]
|
|
|
|
+-- END
|
|
|
|
+-- GO
|
|
|
|
+
|
|
|
|
+-- -- 删除项目定额表
|
|
|
|
+-- IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_quota]') AND type in (N'U'))
|
|
|
|
+-- BEGIN
|
|
|
|
+-- DROP TABLE [dbo].[project_quota]
|
|
|
|
+-- END
|
|
|
|
+-- GO
|
|
|
|
+
|
|
|
|
+-- -- 删除日志表
|
|
|
|
+-- IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_log]') AND type in (N'U'))
|
|
|
|
+-- BEGIN
|
|
|
|
+-- DROP TABLE [dbo].[sys_log]
|
|
|
|
+-- END
|
|
|
|
+-- GO
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+-- 创建项目任务表
|
|
|
|
+IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_task]') AND type in (N'U'))
|
|
|
|
+BEGIN
|
|
|
|
+CREATE TABLE [dbo].[project_task] (
|
|
|
|
+ [id] INT IDENTITY(1,1) PRIMARY KEY,
|
|
|
|
+ [task_name] NVARCHAR(255) NOT NULL,
|
|
|
|
+ [task_desc] NVARCHAR(1000) NULL,
|
|
|
|
+ [project_id] NVARCHAR(50) NOT NULL,
|
|
|
|
+ [budget_id] INT DEFAULT 0,
|
|
|
|
+ [item_id] INT NOT NULL,
|
|
|
|
+ [item_code] NVARCHAR(255) NOT NULL,
|
|
|
|
+ [file_path] NVARCHAR(MAX) NULL,
|
|
|
|
+ [collect_status] INT NOT NULL DEFAULT 0,
|
|
|
|
+ [collect_time] DATETIME NULL,
|
|
|
|
+ [collect_error] NVARCHAR(1000) NULL,
|
|
|
|
+ [process_status] INT NOT NULL DEFAULT 0,
|
|
|
|
+ [process_time] DATETIME NULL,
|
|
|
|
+ [process_error] NVARCHAR(1000) NULL,
|
|
|
|
+ [send_status] INT NOT NULL DEFAULT 0,
|
|
|
|
+ [send_time] DATETIME NULL,
|
|
|
|
+ [send_error] NVARCHAR(1000) NULL,
|
|
|
|
+ [is_del] INT NOT NULL DEFAULT 0,
|
|
|
|
+ [deleted_by] NVARCHAR(50) NULL,
|
|
|
|
+ [deleted_at] DATETIME NULL,
|
|
|
|
+ [created_by] NVARCHAR(50) NULL,
|
|
|
|
+ [created_at] DATETIME NOT NULL DEFAULT GETDATE(),
|
|
|
|
+ [updated_by] NVARCHAR(50) NULL,
|
|
|
|
+ [updated_at] DATETIME NOT NULL DEFAULT GETDATE()
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+CREATE INDEX [idx_project_id] ON [dbo].[project_task] ([project_id])
|
|
|
|
+CREATE INDEX [idx_budget_id] ON [dbo].[project_task] ([budget_id])
|
|
|
|
+CREATE INDEX [idx_item_id] ON [dbo].[project_task] ([item_id])
|
|
|
|
+CREATE INDEX [idx_item_code] ON [dbo].[project_task] ([item_code])
|
|
|
|
+CREATE INDEX [idx_created_at] ON [dbo].[project_task] ([created_at])
|
|
|
|
+END
|
|
GO
|
|
GO
|
|
|
|
|
|
-- 创建项目定额表
|
|
-- 创建项目定额表
|
|
-CREATE TABLE project_quota (
|
|
|
|
- id INT IDENTITY(1,1) PRIMARY KEY,
|
|
|
|
- task_id INT NOT NULL, -- 任务编号
|
|
|
|
- project_id NVARCHAR(50) NOT NULL, -- 项目编号
|
|
|
|
- budget_id INT NOT NULL, -- 概算序号
|
|
|
|
- item_id INT NOT NULL, -- 条目序号
|
|
|
|
- item_code NVARCHAR(255) NOT NULL, -- 条目编号
|
|
|
|
- quota_code NVARCHAR(50), -- 定额编号
|
|
|
|
- project_name NVARCHAR(255), -- 工程或费用项目名称
|
|
|
|
- unit NVARCHAR(20), -- 单位
|
|
|
|
- project_quantity FLOAT, -- 工程数量
|
|
|
|
- project_quantity_input NVARCHAR(1000), -- 工程数量输入
|
|
|
|
- quota_adjustment NVARCHAR(1000), -- 定额调整
|
|
|
|
- unit_price FLOAT, -- 单价
|
|
|
|
- total_price FLOAT, -- 合价
|
|
|
|
- unit_weight FLOAT, -- 单重
|
|
|
|
- total_weight FLOAT, -- 合重
|
|
|
|
- labor_cost FLOAT, -- 人工费
|
|
|
|
- process_status TINYINT NOT NULL DEFAULT 0, -- 处理状态(0:未处理,1:处理中, 2:已处理, 3:处理失败)
|
|
|
|
- process_time DATETIME, -- 处理时间
|
|
|
|
- process_error TEXT, -- 处理错误信息
|
|
|
|
- send_status TINYINT NOT NULL DEFAULT 0, -- 发送状态(0:未发送,1:发送中 ,2:已发送, 3:发送失败)
|
|
|
|
- send_time DATETIME, -- 发送时间
|
|
|
|
- send_error TEXT, -- 发送错误信息
|
|
|
|
- is_del TINYINT NOT NULL DEFAULT 0, -- 是否删除(0:否, 1:是)
|
|
|
|
- deleted_by NVARCHAR(50), -- 删除人
|
|
|
|
- deleted_at DATETIME, -- 删除时间
|
|
|
|
- created_by NVARCHAR(50), -- 创建人
|
|
|
|
- created_at DATETIME , -- 创建时间
|
|
|
|
- updated_by NVARCHAR(50), -- 更新人
|
|
|
|
- updated_at DATETIME -- 更新时间
|
|
|
|
-);
|
|
|
|
-GO
|
|
|
|
|
|
+IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_quota]') AND type in (N'U'))
|
|
|
|
+BEGIN
|
|
|
|
+CREATE TABLE [dbo].[project_quota] (
|
|
|
|
+ [id] INT IDENTITY(1,1) PRIMARY KEY,
|
|
|
|
+ [task_id] INT NOT NULL,
|
|
|
|
+ [project_id] NVARCHAR(50) NOT NULL,
|
|
|
|
+ [budget_id] INT NOT NULL,
|
|
|
|
+ [item_id] INT NOT NULL,
|
|
|
|
+ [item_code] NVARCHAR(255) NOT NULL,
|
|
|
|
+ [quota_code] NVARCHAR(50) NULL,
|
|
|
|
+ [project_name] NVARCHAR(255) NULL,
|
|
|
|
+ [unit] NVARCHAR(20) NULL,
|
|
|
|
+ [project_quantity] FLOAT NULL,
|
|
|
|
+ [project_quantity_input] NVARCHAR(1000) NULL,
|
|
|
|
+ [quota_adjustment] NVARCHAR(1000) NULL,
|
|
|
|
+ [unit_price] FLOAT NULL,
|
|
|
|
+ [total_price] FLOAT NULL,
|
|
|
|
+ [unit_weight] FLOAT NULL,
|
|
|
|
+ [total_weight] FLOAT NULL,
|
|
|
|
+ [labor_cost] FLOAT NULL,
|
|
|
|
+ [process_status] INT NOT NULL DEFAULT 0,
|
|
|
|
+ [process_time] DATETIME NULL,
|
|
|
|
+ [process_error] NVARCHAR(1000) NULL,
|
|
|
|
+ [send_status] INT NOT NULL DEFAULT 0,
|
|
|
|
+ [send_time] DATETIME NULL,
|
|
|
|
+ [send_error] NVARCHAR(1000) NULL,
|
|
|
|
+ [is_del] INT NOT NULL DEFAULT 0,
|
|
|
|
+ [deleted_by] NVARCHAR(50) NULL,
|
|
|
|
+ [deleted_at] DATETIME NULL,
|
|
|
|
+ [created_by] NVARCHAR(50) NULL,
|
|
|
|
+ [created_at] DATETIME NOT NULL DEFAULT GETDATE(),
|
|
|
|
+ [updated_by] NVARCHAR(50) NULL,
|
|
|
|
+ [updated_at] DATETIME NOT NULL DEFAULT GETDATE()
|
|
|
|
+)
|
|
|
|
|
|
--- 创建索引
|
|
|
|
-CREATE INDEX idx_project_id ON project_quota (project_id);
|
|
|
|
-CREATE INDEX idx_budget_id ON project_quota (budget_id);
|
|
|
|
-CREATE INDEX idx_item_id ON project_quota (item_id);
|
|
|
|
-CREATE INDEX idx_item_code ON project_quota (item_code);
|
|
|
|
-CREATE INDEX idx_created_at ON project_quota (created_at);
|
|
|
|
|
|
+CREATE INDEX [idx_project_id] ON [dbo].[project_quota] ([project_id])
|
|
|
|
+CREATE INDEX [idx_budget_id] ON [dbo].[project_quota] ([budget_id])
|
|
|
|
+CREATE INDEX [idx_item_id] ON [dbo].[project_quota] ([item_id])
|
|
|
|
+CREATE INDEX [idx_item_code] ON [dbo].[project_quota] ([item_code])
|
|
|
|
+CREATE INDEX [idx_created_at] ON [dbo].[project_quota] ([created_at])
|
|
|
|
+END
|
|
GO
|
|
GO
|
|
|
|
|
|
-- 创建日志表
|
|
-- 创建日志表
|
|
-CREATE TABLE sys_log (
|
|
|
|
- id INT IDENTITY(1,1) PRIMARY KEY,
|
|
|
|
- username NVARCHAR(255) NOT NULL, -- 用户名
|
|
|
|
- operation_type NVARCHAR(50) NOT NULL, -- 操作类型
|
|
|
|
- operation_desc NVARCHAR(1000), -- 操作描述
|
|
|
|
- operation_result TINYINT, -- 操作结果(0:失败, 1:成功)
|
|
|
|
- operation_module NVARCHAR(100), -- 操作模块
|
|
|
|
- operation_data NVARCHAR(MAX), -- 操作数据
|
|
|
|
- data_changes NVARCHAR(MAX), -- 数据变更记录
|
|
|
|
- operation_ip NVARCHAR(50), -- 操作IP
|
|
|
|
- created_at DATETIME NOT NULL DEFAULT GETDATE() -- 创建时间
|
|
|
|
-);
|
|
|
|
-GO
|
|
|
|
|
|
+IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_log]') AND type in (N'U'))
|
|
|
|
+BEGIN
|
|
|
|
+CREATE TABLE [dbo].[sys_log] (
|
|
|
|
+ [id] INT IDENTITY(1,1) PRIMARY KEY,
|
|
|
|
+ [username] NVARCHAR(255) NOT NULL,
|
|
|
|
+ [operation_type] NVARCHAR(50) NOT NULL,
|
|
|
|
+ [operation_desc] NVARCHAR(1000) NULL,
|
|
|
|
+ [operation_result] INT NULL,
|
|
|
|
+ [operation_module] NVARCHAR(100) NULL,
|
|
|
|
+ [operation_data] NVARCHAR(MAX) NULL,
|
|
|
|
+ [data_changes] NVARCHAR(MAX) NULL,
|
|
|
|
+ [operation_ip] NVARCHAR(50) NULL,
|
|
|
|
+ [created_at] DATETIME NOT NULL DEFAULT GETDATE()
|
|
|
|
+)
|
|
|
|
|
|
--- 创建索引
|
|
|
|
-CREATE INDEX idx_username ON sys_log (username);
|
|
|
|
-CREATE INDEX idx_created_at ON sys_log (created_at);
|
|
|
|
|
|
+CREATE INDEX [idx_username] ON [dbo].[sys_log] ([username])
|
|
|
|
+CREATE INDEX [idx_created_at] ON [dbo].[sys_log] ([created_at])
|
|
|
|
+END
|
|
GO
|
|
GO
|