procuremen_workflow_patch.sql 2.3 KB

12345678910111213141516171819202122232425262728
  1. -- 外发流程字段补丁(可重复执行思路:逐条执行,若报 Duplicate column 说明该列已有,跳过即可)
  2. -- 先查看已有列:SHOW COLUMNS FROM `purchase_order` LIKE 'wflow%';
  3. -- SHOW COLUMNS FROM `purchase_order` LIKE 'pick%';
  4. -- SHOW COLUMNS FROM `purchase_order` LIKE 'audit%';
  5. -- 以下每条单独选中执行;1060 Duplicate column = 已存在,换下一行
  6. -- ALTER TABLE `purchase_order` ADD COLUMN `wflow_status` tinyint(3) unsigned NOT NULL DEFAULT 0 COMMENT '0待初选1待审核2已下发' AFTER `status`;
  7. -- ALTER TABLE `purchase_order` ADD COLUMN `pick_company_name` varchar(200) DEFAULT '' COMMENT '初选供应商' AFTER `wflow_status`;
  8. ALTER TABLE `purchase_order` ADD COLUMN `pick_contact_name` varchar(64) DEFAULT '' COMMENT '初选联系人' AFTER `pick_company_name`;
  9. ALTER TABLE `purchase_order` ADD COLUMN `pick_email` varchar(128) DEFAULT '' AFTER `pick_contact_name`;
  10. ALTER TABLE `purchase_order` ADD COLUMN `pick_phone` varchar(32) DEFAULT '' AFTER `pick_email`;
  11. ALTER TABLE `purchase_order` ADD COLUMN `pick_admin_id` int(10) unsigned NOT NULL DEFAULT 0 AFTER `pick_phone`;
  12. ALTER TABLE `purchase_order` ADD COLUMN `pick_admin_name` varchar(64) DEFAULT '' AFTER `pick_admin_id`;
  13. ALTER TABLE `purchase_order` ADD COLUMN `pick_time` datetime DEFAULT NULL AFTER `pick_admin_name`;
  14. ALTER TABLE `purchase_order` ADD COLUMN `audit_admin_id` int(10) unsigned NOT NULL DEFAULT 0 AFTER `pick_time`;
  15. ALTER TABLE `purchase_order` ADD COLUMN `audit_admin_name` varchar(64) DEFAULT '' AFTER `audit_admin_id`;
  16. ALTER TABLE `purchase_order` ADD COLUMN `audit_time` datetime DEFAULT NULL AFTER `audit_admin_name`;
  17. ALTER TABLE `purchase_order` ADD COLUMN `pick_companies_json` mediumtext COMMENT '初选候选供应商JSON' AFTER `pick_time`;
  18. -- 已存在该列但类型过小(报 Data too long for column pick_companies_json)时执行:
  19. ALTER TABLE `purchase_order` MODIFY COLUMN `pick_companies_json` MEDIUMTEXT COMMENT '初选候选供应商JSON';
  20. -- 历史数据迁移(只需执行一次;若已跑过可跳过)
  21. -- UPDATE `purchase_order` po SET po.`wflow_status` = 2
  22. -- WHERE po.`status` = 0 AND po.`wflow_status` = 0
  23. -- AND EXISTS (SELECT 1 FROM `purchase_order_detail` d WHERE d.`scydgy_id` = po.`scydgy_id` LIMIT 1);
  24. -- UPDATE `purchase_order` SET `wflow_status` = 2 WHERE `status` = 1 AND `wflow_status` = 0;