-- 生产质检:初检审核、复检、复检审核后才放行或处置库存。 -- 先部署数据库变更,再部署对应后端与前端;历史合格记录已完成库存流转。 ALTER TABLE mes_qc_seed_quality ADD COLUMN workflow_status tinyint NOT NULL DEFAULT 40 COMMENT '10待复检 20待初检审核 25待初检不合格处理 30待复检审核 40已放行 50初检驳回待重检 60待复检不合格处理 70已报废', ADD COLUMN qualified_warehouse_id bigint DEFAULT NULL COMMENT '审批通过后的目标合格库', ADD COLUMN retest_result tinyint DEFAULT NULL COMMENT '复检结果 1合格 2不合格', ADD COLUMN retested_at datetime DEFAULT NULL COMMENT '复检时间', ADD COLUMN process_approved_at datetime DEFAULT NULL COMMENT '加工部审批时间', ADD COLUMN company_approved_at datetime DEFAULT NULL COMMENT '公司质检审批时间'; CREATE INDEX idx_mes_seed_quality_workflow ON mes_qc_seed_quality (workflow_status, inspected_at); -- 旧数据已经按旧流程放行或报废,不能重新审批或重复扣库存。 UPDATE mes_qc_seed_quality SET workflow_status = CASE WHEN result = 1 THEN 40 WHEN result = 2 THEN 70 ELSE 10 END; CREATE TABLE IF NOT EXISTS mes_qc_seed_quality_action ( id bigint NOT NULL AUTO_INCREMENT, quality_id bigint NOT NULL, action varchar(32) NOT NULL COMMENT 'INITIAL/RETEST/PROCESS_APPROVE/COMPANY_APPROVE/REJECT', result tinyint DEFAULT NULL, opinion varchar(500) DEFAULT NULL, indicators_json text DEFAULT NULL, operator_id bigint DEFAULT NULL, create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_quality_time (quality_id, create_time) ) ENGINE=InnoDB COMMENT='种子质检流程操作留痕'; INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) SELECT '复检', 'mes:qc-seed-quality:retest', 3, 3, id, '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' FROM system_menu WHERE parent_id = 5500 AND path = 'seed-quality' AND deleted = b'0' AND NOT EXISTS (SELECT 1 FROM system_menu m WHERE m.parent_id = system_menu.id AND m.permission = 'mes:qc-seed-quality:retest' AND m.deleted = b'0'); INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) SELECT '初检审核', 'mes:qc-seed-quality:process-approve', 3, 4, id, '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' FROM system_menu WHERE parent_id = 5500 AND path = 'seed-quality' AND deleted = b'0' AND NOT EXISTS (SELECT 1 FROM system_menu m WHERE m.parent_id = system_menu.id AND m.permission = 'mes:qc-seed-quality:process-approve' AND m.deleted = b'0'); INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) SELECT '复检审核', 'mes:qc-seed-quality:company-approve', 3, 5, id, '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' FROM system_menu WHERE parent_id = 5500 AND path = 'seed-quality' AND deleted = b'0' AND NOT EXISTS (SELECT 1 FROM system_menu m WHERE m.parent_id = system_menu.id AND m.permission = 'mes:qc-seed-quality:company-approve' AND m.deleted = b'0');