更新物料大类和小类的字典表引用,优化前端表单组件,改用API选择器加载分类数据,增强用户体验。调整物料信息模态框,支持动态加载大类和小类选项。
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
-- MES 物料分类:新增分类字典(sys_category)根节点与子节点
|
||||
-- 根编码:XSLMES_MATERIAL
|
||||
-- 子类:物料大类、物料小类
|
||||
|
||||
-- 根节点:物料分类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000001', '0', '物料分类', 'XSLMES_MATERIAL', '1', 'admin', NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL');
|
||||
|
||||
-- 子节点:物料大类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000002', p.`id`, '物料大类', 'XSLMES_MATERIAL_MAJOR', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_MAJOR');
|
||||
|
||||
-- 子节点:物料小类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000003', p.`id`, '物料小类', 'XSLMES_MATERIAL_MINOR', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_MINOR');
|
||||
|
||||
-- 确保根节点有子节点标记
|
||||
UPDATE `sys_category`
|
||||
SET `has_child` = '1'
|
||||
WHERE `code` = 'XSLMES_MATERIAL';
|
||||
@@ -0,0 +1,169 @@
|
||||
-- MES 物料分类树:根节点 -> 物料大类 -> 物料小类
|
||||
-- 兼容处理:清理上一版占位节点(物料大类/物料小类),避免出现在下拉中
|
||||
|
||||
-- 清理占位节点(若存在)
|
||||
DELETE FROM `sys_category` WHERE `code` IN ('XSLMES_MATERIAL_MAJOR', 'XSLMES_MATERIAL_MINOR');
|
||||
|
||||
-- 确保根节点存在
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000001', '0', '物料分类', 'XSLMES_MATERIAL', '1', 'admin', NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL');
|
||||
|
||||
-- 物料大类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000101', root.`id`, '原辅材料', 'XSLMES_MATERIAL_RAW_AUX', '1', 'admin', NOW()
|
||||
FROM `sys_category` root
|
||||
WHERE root.`code` = 'XSLMES_MATERIAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000102', root.`id`, '小料', 'XSLMES_MATERIAL_SMALL', '1', 'admin', NOW()
|
||||
FROM `sys_category` root
|
||||
WHERE root.`code` = 'XSLMES_MATERIAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_SMALL');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000103', root.`id`, '塑炼胶', 'XSLMES_MATERIAL_PLASTIC', '1', 'admin', NOW()
|
||||
FROM `sys_category` root
|
||||
WHERE root.`code` = 'XSLMES_MATERIAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_PLASTIC');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000104', root.`id`, '母炼胶', 'XSLMES_MATERIAL_MASTER', '1', 'admin', NOW()
|
||||
FROM `sys_category` root
|
||||
WHERE root.`code` = 'XSLMES_MATERIAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_MASTER');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000105', root.`id`, '终炼胶', 'XSLMES_MATERIAL_FINAL', '1', 'admin', NOW()
|
||||
FROM `sys_category` root
|
||||
WHERE root.`code` = 'XSLMES_MATERIAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_FINAL');
|
||||
|
||||
-- 原辅材料 -> 小类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000201', p.`id`, '炭黑', 'XSLMES_MATERIAL_RAW_AUX_TH', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_TH');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000202', p.`id`, '油料', 'XSLMES_MATERIAL_RAW_AUX_YL', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_YL');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000203', p.`id`, '粉料', 'XSLMES_MATERIAL_RAW_AUX_FL', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_FL');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000204', p.`id`, '钢丝', 'XSLMES_MATERIAL_RAW_AUX_GS', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_GS');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000205', p.`id`, '帘线', 'XSLMES_MATERIAL_RAW_AUX_LX', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_LX');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000206', p.`id`, '天然胶', 'XSLMES_MATERIAL_RAW_AUX_TRJ', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_TRJ');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000207', p.`id`, '合成胶', 'XSLMES_MATERIAL_RAW_AUX_HCJ', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_HCJ');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000208', p.`id`, '再生胶', 'XSLMES_MATERIAL_RAW_AUX_ZSJ', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_ZSJ');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000209', p.`id`, '硅烷', 'XSLMES_MATERIAL_RAW_AUX_GW', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_GW');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000210', p.`id`, '大粉料', 'XSLMES_MATERIAL_RAW_AUX_DFL', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_DFL');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000211', p.`id`, '白炭黑', 'XSLMES_MATERIAL_RAW_AUX_BTH', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_RAW_AUX'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_BTH');
|
||||
|
||||
-- 小料 -> 小类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000301', p.`id`, '人工', 'XSLMES_MATERIAL_SMALL_RG', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_SMALL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_SMALL_RG');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000302', p.`id`, '自动', 'XSLMES_MATERIAL_SMALL_ZD', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_SMALL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_SMALL_ZD');
|
||||
|
||||
-- 塑炼胶 -> 小类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000401', p.`id`, 'J0段胶', 'XSLMES_MATERIAL_PLASTIC_J0', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_PLASTIC'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_PLASTIC_J0');
|
||||
|
||||
-- 母炼胶 -> 小类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000501', p.`id`, 'A胶', 'XSLMES_MATERIAL_MASTER_A', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_MASTER'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_MASTER_A');
|
||||
|
||||
-- 终炼胶 -> 小类
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000601', p.`id`, 'Q胶', 'XSLMES_MATERIAL_FINAL_Q', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_FINAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_FINAL_Q');
|
||||
|
||||
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `has_child`, `create_by`, `create_time`)
|
||||
SELECT '1993000000000000602', p.`id`, '返回胶', 'XSLMES_MATERIAL_FINAL_FHJ', '0', 'admin', NOW()
|
||||
FROM `sys_category` p
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL_FINAL'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_FINAL_FHJ');
|
||||
|
||||
-- 统一修正 has_child 标记(仅针对物料分类树,避免 MySQL 1093)
|
||||
-- 先将物料分类树节点全部置 0
|
||||
UPDATE `sys_category`
|
||||
SET `has_child` = '0'
|
||||
WHERE `code` = 'XSLMES_MATERIAL'
|
||||
OR `code` LIKE 'XSLMES_MATERIAL_%';
|
||||
|
||||
-- 再把有子节点的节点置 1(通过派生表规避同表更新限制)
|
||||
UPDATE `sys_category` p
|
||||
JOIN (
|
||||
SELECT DISTINCT c.`pid` AS parent_id
|
||||
FROM `sys_category` c
|
||||
WHERE c.`code` LIKE 'XSLMES_MATERIAL_%'
|
||||
AND c.`pid` IS NOT NULL
|
||||
AND c.`pid` <> '0'
|
||||
) t ON t.parent_id = p.`id`
|
||||
SET p.`has_child` = '1'
|
||||
WHERE p.`code` = 'XSLMES_MATERIAL'
|
||||
OR p.`code` LIKE 'XSLMES_MATERIAL_%';
|
||||
Reference in New Issue
Block a user