1.0.443.sql 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- S6 Phase 1A · 生产指令中台消费层:mdp_std_work_order_schedule 扩列 + 生产指令单列表菜单重指(幂等)
  2. -- 说明:S2 转换服务用 CREATE TABLE IF NOT EXISTS 建表,不会 ALTER 既有表;此脚本为存量库补列。
  3. -- 新列全 nullable,兼容历史行;重新跑 S2_MDP_SYNC_TRANSFORM 后由转换 SQL 回填。
  4. -- ① mdp_std_work_order_schedule 增列(逐列 information_schema 守卫,幂等)
  5. SET @tbl := 'mdp_std_work_order_schedule';
  6. SET @col := 'specification';
  7. SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=@tbl AND COLUMN_NAME=@col);
  8. SET @sql := IF(@exist=0, 'ALTER TABLE mdp_std_work_order_schedule ADD COLUMN specification VARCHAR(200) NULL AFTER prod_line', 'SELECT 1');
  9. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  10. SET @col := 'lot_serial';
  11. SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=@tbl AND COLUMN_NAME=@col);
  12. SET @sql := IF(@exist=0, 'ALTER TABLE mdp_std_work_order_schedule ADD COLUMN lot_serial VARCHAR(100) NULL AFTER specification', 'SELECT 1');
  13. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  14. SET @col := 'drawing_no';
  15. SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=@tbl AND COLUMN_NAME=@col);
  16. SET @sql := IF(@exist=0, 'ALTER TABLE mdp_std_work_order_schedule ADD COLUMN drawing_no VARCHAR(100) NULL AFTER lot_serial', 'SELECT 1');
  17. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  18. SET @col := 'project';
  19. SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=@tbl AND COLUMN_NAME=@col);
  20. SET @sql := IF(@exist=0, 'ALTER TABLE mdp_std_work_order_schedule ADD COLUMN project VARCHAR(200) NULL AFTER drawing_no', 'SELECT 1');
  21. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  22. SET @col := 'work_order_type';
  23. SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=@tbl AND COLUMN_NAME=@col);
  24. SET @sql := IF(@exist=0, 'ALTER TABLE mdp_std_work_order_schedule ADD COLUMN work_order_type VARCHAR(50) NULL AFTER project', 'SELECT 1');
  25. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  26. SET @col := 'labor_variance';
  27. SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME=@tbl AND COLUMN_NAME=@col);
  28. SET @sql := IF(@exist=0, 'ALTER TABLE mdp_std_work_order_schedule ADD COLUMN labor_variance DECIMAL(18,6) NULL AFTER work_order_type', 'SELECT 1');
  29. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  30. -- ② 生产指令单列表菜单:占位组件改真实页(存量库既有菜单行的 Component 更新;种子仅 INSERT 不 UPDATE 既有行)
  31. -- 注意:Admin.NET 框架表 EnableUnderLine=false → 表名 PascalCase 为 SysMenu(非 sys_menu)。
  32. UPDATE SysMenu
  33. SET Component = '/aidop/s6/production-record/productionInstructionList',
  34. Remark = 'S6 生产指令单列表(数据中台标准层只读)'
  35. WHERE Id = 1329016010001
  36. AND Component = '/aidop/planning/index';