设备对应部位功能新增

This commit is contained in:
2026-06-03 16:28:57 +08:00
parent 1c5cede957
commit 457089e271
24 changed files with 747 additions and 7 deletions

View File

@@ -0,0 +1,49 @@
-- MES 设备台账新增系统编号 ledger_no001自增+ 历史数据回填equipment_code 语义改为自定义编号
SET NAMES utf8mb4;
SET @ledger_no_exists := (
SELECT COUNT(1)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'mes_xsl_equipment_ledger'
AND COLUMN_NAME = 'ledger_no'
);
SET @ddl_ledger_no := IF(
@ledger_no_exists = 0,
'ALTER TABLE `mes_xsl_equipment_ledger` ADD COLUMN `ledger_no` varchar(16) DEFAULT NULL COMMENT ''编号租户内从001递增自动生成只读'' AFTER `equipment_name`',
'SELECT 1'
);
PREPARE stmt_ledger_no FROM @ddl_ledger_no;
EXECUTE stmt_ledger_no;
DEALLOCATE PREPARE stmt_ledger_no;
UPDATE `mes_xsl_equipment_ledger` t
INNER JOIN (
SELECT
id,
LPAD(
ROW_NUMBER() OVER (PARTITION BY IFNULL(tenant_id, 0) ORDER BY IFNULL(create_time, '1970-01-01'), id),
3,
'0'
) AS new_no
FROM `mes_xsl_equipment_ledger`
WHERE del_flag = 0
) s ON t.id = s.id
SET t.ledger_no = s.new_no
WHERE t.del_flag = 0 AND (t.ledger_no IS NULL OR TRIM(t.ledger_no) = '');
SET @idx_ledger_no_exists := (
SELECT COUNT(1)
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'mes_xsl_equipment_ledger'
AND INDEX_NAME = 'idx_mel_tenant_ledger_no'
);
SET @ddl_idx_ledger_no := IF(
@idx_ledger_no_exists = 0,
'ALTER TABLE `mes_xsl_equipment_ledger` ADD KEY `idx_mel_tenant_ledger_no` (`tenant_id`, `ledger_no`)',
'SELECT 1'
);
PREPARE stmt_idx_ledger_no FROM @ddl_idx_ledger_no;
EXECUTE stmt_idx_ledger_no;
DEALLOCATE PREPARE stmt_idx_ledger_no;

View File

@@ -0,0 +1,48 @@
-- MES 设备对应部位由设备点检配置保存后自动生成
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS `mes_xsl_equip_part_mapping` (
`id` varchar(32) NOT NULL COMMENT '主键',
`equipment_ledger_id` varchar(32) NOT NULL COMMENT '设备台账主键 mes_xsl_equipment_ledger.id',
`equipment_name` varchar(500) NOT NULL COMMENT '设备名称',
`machine_code` varchar(500) DEFAULT NULL COMMENT '机台代号设备编号冗余',
`equipment_part_id` varchar(32) NOT NULL COMMENT '设备大部位主键 mes_xsl_equipment_part.id',
`equipment_part_name` varchar(500) DEFAULT NULL COMMENT '设备大部位名称',
`part_code` varchar(500) DEFAULT NULL COMMENT '大部位代码',
`equipment_sub_part_id` varchar(32) NOT NULL COMMENT '设备小部位主键 mes_xsl_equipment_sub_part.id',
`equipment_sub_part_name` varchar(500) DEFAULT NULL COMMENT '设备小部位名称',
`sub_part_code` varchar(500) DEFAULT NULL COMMENT '小部位代码',
`tenant_id` int DEFAULT NULL COMMENT '租户',
`sys_org_code` varchar(64) DEFAULT NULL COMMENT '部门',
`create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` int DEFAULT '0' COMMENT '删除标记0正常1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_mepm_ledger_part_sub` (`equipment_ledger_id`, `equipment_part_id`, `equipment_sub_part_id`),
KEY `idx_mepm_tenant_equip_name` (`tenant_id`, `equipment_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='MES设备对应部位';
SET @mes_equip_pid = (
SELECT `id` FROM `sys_permission`
WHERE `del_flag` = 0 AND `menu_type` = 0 AND `name` = '设备管理'
LIMIT 1
);
SET @mes_equip_pid = IFNULL(@mes_equip_pid, '1860000000000000133');
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `keep_alive`, `internal_or_external`, `create_by`, `create_time`)
SELECT '1860000000000000215', @mes_equip_pid, '设备对应部位', '/xslmes/mesXslEquipPartMapping', 'xslmes/mesXslEquipPartMapping/MesXslEquipPartMappingList', 'MesXslEquipPartMappingList', 1, NULL, '1', 14, 1, 0, 0, '1', 0, 1, 0, 'admin', NOW()
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1860000000000000215');
UPDATE `sys_permission` SET
`parent_id` = @mes_equip_pid, `name` = '设备对应部位', `url` = '/xslmes/mesXslEquipPartMapping',
`component` = 'xslmes/mesXslEquipPartMapping/MesXslEquipPartMappingList', `component_name` = 'MesXslEquipPartMappingList',
`menu_type` = 1, `sort_no` = 14, `is_route` = 1, `is_leaf` = 0, `icon` = 'ant-design:apartment-outlined', `del_flag` = 0
WHERE `id` = '1860000000000000215';
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `status`, `del_flag`, `create_by`, `create_time`)
SELECT '1860000000000000216', '1860000000000000215', '导出', 2, 'mes:mes_xsl_equip_part_mapping:exportXls', '1', '1', 0, 'admin', NOW()
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1860000000000000216');