feat(HJGL): 新增材料仓库管理并优化管线划分页面
**新增功能:** - 添加材料仓库管理模块(增删改查) - 管线划分页面支持按流水段和管线划分筛选 - 管线划分页面支持批量设置仓库 **技术改进:** - 新增 Base_Warehouse 表和模型 - 扩展 HJGL_Pipeline 模型添加 WarehouseId 字段 - 优化管线查询支持多条件组合
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
-- =============================================
|
||||
-- 材料仓库管理与管线划分优化 - 数据库变更脚本
|
||||
-- 生成时间: 2026-03-05
|
||||
-- 说明: 请在执行前备份数据库
|
||||
-- =============================================
|
||||
|
||||
-- =============================================
|
||||
-- 第一部分: 创建材料仓库表
|
||||
-- =============================================
|
||||
|
||||
-- 检查表是否存在,如果存在则删除(仅用于开发环境)
|
||||
-- IF OBJECT_ID('dbo.Base_Warehouse', 'U') IS NOT NULL
|
||||
-- DROP TABLE dbo.Base_Warehouse;
|
||||
-- GO
|
||||
|
||||
-- 创建材料仓库表
|
||||
CREATE TABLE dbo.Base_Warehouse (
|
||||
WarehouseId NVARCHAR(50) NOT NULL,
|
||||
WarehouseName NVARCHAR(200) NOT NULL,
|
||||
Remark NVARCHAR(500) NULL,
|
||||
ProjectId NVARCHAR(50) NOT NULL,
|
||||
CreateUserId NVARCHAR(50) NULL,
|
||||
CreateTime DATETIME NULL,
|
||||
ModifyUserId NVARCHAR(50) NULL,
|
||||
ModifyTime DATETIME NULL,
|
||||
CONSTRAINT PK_Base_Warehouse PRIMARY KEY CLUSTERED (WarehouseId ASC),
|
||||
CONSTRAINT FK_Base_Warehouse_Project FOREIGN KEY (ProjectId)
|
||||
REFERENCES dbo.Project_Project (ProjectId)
|
||||
ON DELETE NO ACTION
|
||||
);
|
||||
GO
|
||||
|
||||
-- 创建索引以提升查询性能
|
||||
CREATE NONCLUSTERED INDEX IX_Base_Warehouse_ProjectId
|
||||
ON dbo.Base_Warehouse(ProjectId);
|
||||
GO
|
||||
|
||||
CREATE NONCLUSTERED INDEX IX_Base_Warehouse_WarehouseName
|
||||
ON dbo.Base_Warehouse(WarehouseName);
|
||||
GO
|
||||
|
||||
-- 添加表说明
|
||||
EXEC sys.sp_addextendedproperty
|
||||
@name=N'MS_Description',
|
||||
@value=N'材料仓库基础信息表' ,
|
||||
@level0type=N'SCHEMA',
|
||||
@level0name=N'dbo',
|
||||
@level1type=N'TABLE',
|
||||
@level1name=N'Base_Warehouse';
|
||||
GO
|
||||
|
||||
-- 添加字段说明
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库ID(主键)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'WarehouseId';
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'WarehouseName';
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'Remark';
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'项目ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'ProjectId';
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'CreateUserId';
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'CreateTime';
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'ModifyUserId';
|
||||
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'ModifyTime';
|
||||
GO
|
||||
|
||||
PRINT '材料仓库表创建完成';
|
||||
GO
|
||||
|
||||
-- =============================================
|
||||
-- 第二部分: 为管线表添加仓库字段
|
||||
-- =============================================
|
||||
|
||||
-- 检查字段是否已存在
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM sys.columns
|
||||
WHERE object_id = OBJECT_ID('dbo.HJGL_Pipeline')
|
||||
AND name = 'WarehouseId'
|
||||
)
|
||||
BEGIN
|
||||
-- 添加 WarehouseId 字段(允许NULL以兼容现有数据)
|
||||
ALTER TABLE dbo.HJGL_Pipeline
|
||||
ADD WarehouseId NVARCHAR(50) NULL;
|
||||
GO
|
||||
|
||||
-- 添加字段说明
|
||||
EXEC sys.sp_addextendedproperty
|
||||
@name=N'MS_Description',
|
||||
@value=N'仓库ID(关联Base_Warehouse表)' ,
|
||||
@level0type=N'SCHEMA',
|
||||
@level0name=N'dbo',
|
||||
@level1type=N'TABLE',
|
||||
@level1name=N'HJGL_Pipeline',
|
||||
@level2type=N'COLUMN',
|
||||
@level2name=N'WarehouseId';
|
||||
GO
|
||||
|
||||
-- 添加外键约束(可选,根据实际需求决定是否启用)
|
||||
-- ALTER TABLE dbo.HJGL_Pipeline
|
||||
-- ADD CONSTRAINT FK_HJGL_Pipeline_Warehouse
|
||||
-- FOREIGN KEY (WarehouseId)
|
||||
-- REFERENCES dbo.Base_Warehouse(WarehouseId)
|
||||
-- ON DELETE SET NULL;
|
||||
-- GO
|
||||
|
||||
PRINT '管线表WarehouseId字段添加完成';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '管线表WarehouseId字段已存在,跳过添加';
|
||||
END
|
||||
GO
|
||||
|
||||
-- =============================================
|
||||
-- 第三部分: 验证脚本
|
||||
-- =============================================
|
||||
|
||||
-- 验证表和字段创建成功
|
||||
SELECT
|
||||
'Base_Warehouse表' AS 对象类型,
|
||||
CASE WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Base_Warehouse')
|
||||
THEN '已创建 ✓'
|
||||
ELSE '未创建 ✗'
|
||||
END AS 状态;
|
||||
|
||||
SELECT
|
||||
'HJGL_Pipeline.WarehouseId字段' AS 对象类型,
|
||||
CASE WHEN EXISTS (
|
||||
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_NAME = 'HJGL_Pipeline'
|
||||
AND COLUMN_NAME = 'WarehouseId'
|
||||
)
|
||||
THEN '已添加 ✓'
|
||||
ELSE '未添加 ✗'
|
||||
END AS 状态;
|
||||
GO
|
||||
|
||||
PRINT '========================================';
|
||||
PRINT '数据库变更脚本执行完成!';
|
||||
PRINT '========================================';
|
||||
PRINT '';
|
||||
PRINT '重要提示:';
|
||||
PRINT '1. 请在生产环境执行前备份数据库';
|
||||
PRINT '2. 建议在维护窗口执行ALTER TABLE操作';
|
||||
PRINT '3. 现有管线数据的WarehouseId默认为NULL';
|
||||
PRINT '4. 可通过批量设置功能逐步完善数据';
|
||||
PRINT '========================================';
|
||||
GO
|
||||
Reference in New Issue
Block a user