-- 导入 14 项默认点检清单（可重复执行，已存在则跳过）
-- 在 SQL Server Management Studio 中执行本脚本

-- 扩展列（与 inspectionChecklist.js 一致）
IF COL_LENGTH('dbo.maintenance_item', 'work_order_category') IS NULL
  ALTER TABLE dbo.maintenance_item ADD work_order_category NVARCHAR(20) NULL;
IF COL_LENGTH('dbo.maintenance_item', 'bind_type_name') IS NULL
  ALTER TABLE dbo.maintenance_item ADD bind_type_name NVARCHAR(100) NULL;
IF COL_LENGTH('dbo.maintenance_item', 'bind_item_name') IS NULL
  ALTER TABLE dbo.maintenance_item ADD bind_item_name NVARCHAR(200) NULL;
GO

DECLARE @typeId INT;
DECLARE @typeName NVARCHAR(50) = N'日点检';
DECLARE @category NVARCHAR(50) = N'点检项目';

SELECT @typeId = id
FROM dbo.maintenance_type
WHERE category = @category AND type_name = @typeName;

IF @typeId IS NULL
BEGIN
  INSERT INTO dbo.maintenance_type (type_name, category, sort, is_enabled)
  VALUES (@typeName, @category, 1, 1);
  SET @typeId = SCOPE_IDENTITY();
END;

-- 逐项插入（按名称去重）
DECLARE @items TABLE (
  sort INT,
  item_name NVARCHAR(200),
  work_order_category NVARCHAR(20),
  bind_type_name NVARCHAR(100),
  bind_item_name NVARCHAR(200)
);

INSERT INTO @items (sort, item_name, work_order_category, bind_type_name, bind_item_name) VALUES
(1,  N'润滑油液位', N'维修类型', N'液压系统维修', N''),
(2,  N'散热片清洁情况', N'维保类型', N'发动机保养', N'清理散热片'),
(3,  N'空滤清洁情况', N'维保类型', N'发动机保养', N'更换或清理空滤'),
(4,  N'蓄电池卡子松动检查', N'维修类型', N'其他', N''),
(5,  N'车筐构件、钢丝绳', N'维修类型', N'其他', N''),
(6,  N'发动机异响检查', N'维修类型', N'其他', N''),
(7,  N'手柄、开关灵敏度', N'维修类型', N'其他', N''),
(8,  N'开关防尘套缺损检查', N'维修类型', N'其他', N''),
(9,  N'钥匙、STOP停车装置', N'维修类型', N'其他', N''),
(10, N'油路、油缸泄漏检查', N'维修类型', N'其他', N''),
(11, N'行走、伸缩、起伏动作', N'维修类型', N'其他', N''),
(12, N'旋转动作异常检查', N'维修类型', N'其他', N''),
(13, N'检查天线有无破损', N'维修类型', N'其他', N''),
(14, N'钢闸开关至电瓶连接线根部有无松动', N'维修类型', N'其他', N'');

INSERT INTO dbo.maintenance_item (
  type_id, item_name, sort, is_checked, is_disabled,
  work_order_category, bind_type_name, bind_item_name
)
SELECT
  @typeId,
  i.item_name,
  i.sort,
  0,
  0,
  i.work_order_category,
  i.bind_type_name,
  i.bind_item_name
FROM @items i
WHERE NOT EXISTS (
  SELECT 1
  FROM dbo.maintenance_item m
  WHERE m.type_id = @typeId
    AND LTRIM(RTRIM(m.item_name)) = i.item_name
);

-- 已导入项：按名称同步绑定（修改默认配置后执行本段可更新库内数据）
UPDATE m
SET
  m.work_order_category = i.work_order_category,
  m.bind_type_name = i.bind_type_name,
  m.bind_item_name = i.bind_item_name
FROM dbo.maintenance_item m
INNER JOIN @items i ON LTRIM(RTRIM(m.item_name)) = i.item_name
WHERE m.type_id = @typeId;

SELECT
  @typeId AS type_id,
  (SELECT COUNT(*) FROM dbo.maintenance_item WHERE type_id = @typeId) AS item_count;
