-- 生产订单菜单与权限（挂到「MES密炼工程」目录）
SET NAMES utf8mb4;

SET @mixer_parent_id = (
  SELECT id
  FROM sys_permission
  WHERE name = 'MES密炼工程' AND menu_type = 0 AND del_flag = 0
  ORDER BY create_time ASC
  LIMIT 1
);
SET @mixer_parent_id = IFNULL(@mixer_parent_id, (
  SELECT id
  FROM sys_permission
  WHERE url = '/mes' AND menu_type = 0 AND del_flag = 0
  ORDER BY create_time ASC
  LIMIT 1
));
SET @mixer_parent_id = IFNULL(@mixer_parent_id, '1860000000000000001');

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
)
VALUES (
  '1860000000000099511', @mixer_parent_id, '生产订单',
  '/mes/productionorderinfo',
  'mes/productionorderinfo/index',
  'MesXslProductionOrderList', 1, NULL, '1', 33,
  1, 1, 0, '1', 0, 1, 0, 'admin', NOW()
)
ON DUPLICATE KEY UPDATE
  parent_id = VALUES(parent_id),
  name = VALUES(name),
  url = VALUES(url),
  component = VALUES(component),
  component_name = VALUES(component_name),
  menu_type = VALUES(menu_type),
  perms = VALUES(perms),
  perms_type = VALUES(perms_type),
  sort_no = VALUES(sort_no),
  is_route = VALUES(is_route),
  is_leaf = VALUES(is_leaf),
  hidden = VALUES(hidden),
  status = VALUES(status),
  del_flag = VALUES(del_flag),
  keep_alive = VALUES(keep_alive),
  internal_or_external = VALUES(internal_or_external);

INSERT INTO sys_permission(id, parent_id, name, menu_type, perms, perms_type, status, del_flag, create_by, create_time) VALUES
('1860000000000099512', '1860000000000099511', '新增', 2, 'xslmes:mes_xsl_production_order:add', '1', '1', 0, 'admin', NOW()),
('1860000000000099513', '1860000000000099511', '编辑', 2, 'xslmes:mes_xsl_production_order:edit', '1', '1', 0, 'admin', NOW()),
('1860000000000099514', '1860000000000099511', '删除', 2, 'xslmes:mes_xsl_production_order:delete', '1', '1', 0, 'admin', NOW()),
('1860000000000099515', '1860000000000099511', '批量删除', 2, 'xslmes:mes_xsl_production_order:deleteBatch', '1', '1', 0, 'admin', NOW()),
('1860000000000099516', '1860000000000099511', '导出', 2, 'xslmes:mes_xsl_production_order:exportXls', '1', '1', 0, 'admin', NOW()),
('1860000000000099517', '1860000000000099511', '拆分', 2, 'xslmes:mes_xsl_production_order:split', '1', '1', 0, 'admin', NOW())
ON DUPLICATE KEY UPDATE
  parent_id = VALUES(parent_id),
  name = VALUES(name),
  menu_type = VALUES(menu_type),
  perms = VALUES(perms),
  perms_type = VALUES(perms_type),
  status = VALUES(status),
  del_flag = VALUES(del_flag);

-- admin 角色授权
INSERT INTO sys_role_permission(id, role_id, permission_id, operate_date, operate_ip)
SELECT REPLACE(UUID(), '-', ''), 'f6817f48af4fb3af11b9e8bf182f618b', p.id, NOW(), '127.0.0.1'
FROM sys_permission p
WHERE p.id IN (
  '1860000000000099511',
  '1860000000000099512', '1860000000000099513', '1860000000000099514', '1860000000000099515', '1860000000000099516', '1860000000000099517'
)
  AND NOT EXISTS (
    SELECT 1
    FROM sys_role_permission rp
    WHERE rp.role_id = 'f6817f48af4fb3af11b9e8bf182f618b'
      AND rp.permission_id = p.id
  );

-- 强制修复：确保菜单路由与组件路径正确
UPDATE sys_permission
SET
  parent_id = @mixer_parent_id,
  url = '/mes/productionorderinfo',
  component = 'mes/productionorderinfo/index',
  component_name = 'MesXslProductionOrderList',
  menu_type = 1,
  is_route = 1,
  is_leaf = 1,
  hidden = 0,
  status = '1',
  del_flag = 0
WHERE id = '1860000000000099511';
