DELETE FROM sys_dict_data WHERE dict_code = 'voyage_callPurpose'; INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Bunker Operations', '加油', 'Bunker Operations', NULL, 1, 0, '', '2025-10-10 14:15:12', '2026-07-17 15:21:12'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Canal Transit', '运河运输', 'Canal Transit', NULL, 1, 0, '', '2025-10-10 15:50:18', '2025-11-11 17:39:16'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Crew Charge', '船员费用', 'Crew Charge', NULL, 1, 0, '', '2025-10-10 15:50:39', '2025-11-11 17:39:04'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Crew Sign on/Sign Off', '船员上船/下船', 'Crew Sign on/Sign Off', NULL, 1, 0, '', '2025-10-10 15:47:13', '2026-07-17 15:18:06'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Discharge', '卸货', 'Discharge', NULL, 1, 0, '', '2025-10-10 14:29:02', '2026-07-17 15:20:50'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Docking/Shipyard', '进坞/船厂', 'Docking/Shipyard', NULL, 1, 0, '', '2025-10-10 15:50:57', '2026-07-17 15:18:39'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ('voyage_callPurpose', 'Emergency/Repair', '应急/维修', 'Emergency/Repair', NULL, 1, 0, '', '2025-10-10 15:49:28', '2026-07-17 15:19:57'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Idle', '闲置停泊', 'Idle', NULL, 1, 0, '', '2025-10-10 15:50:25', '2026-07-17 15:20:09'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Loading', '装货', 'Loading', NULL, 1, 0, '', '2025-10-10 14:14:44', '2026-07-17 15:21:42'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Loading & Discharge', '装货 & 卸货', 'Loading & Discharge', NULL, 1, 0, '', '2025-10-10 14:14:58', '2026-07-17 15:21:33'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Medical Purpose', '医疗用途', 'Medical Purpose', NULL, 1, 0, '', '2025-10-10 15:47:38', '2025-11-11 17:39:37'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Other', '其他', 'Other', NULL, 1, 0, '', '2025-10-10 15:51:04', '2025-11-11 17:38:39'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Other Matters', '其它事项', 'Other Matters', NULL, 1, 0, '', '2025-10-10 14:28:49', '2026-07-17 15:21:01'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'voyage_callPurpose', 'Spares and Stores Apply', '备件和物料供船', 'Spares and Stores Apply', NULL, 1, 0, '', '2025-10-10 15:48:58', '2026-07-17 15:20:32'); ALTER TABLE `sys_sms_file` ADD COLUMN `current_role` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '当前审批角色' AFTER `current_approver`; ALTER TABLE hsqe_inspection_deficiency_photo ADD COLUMN file_name VARCHAR(500) COMMENT '文件名称'; ALTER TABLE hsqe_inspection_deficiency_basic ADD COLUMN current_approve_role VARCHAR(200) COMMENT '当前审批人角色编码'; ALTER TABLE hsqe_inspection_deficiency_basic ADD COLUMN create_role VARCHAR(200) COMMENT '创建人角色编码'; ALTER TABLE hsqe_inspection_deficiency_photo ADD COLUMN photo_code VARCHAR(1000) COMMENT '附件路径' AFTER photo_url; UPDATE hsqe_inspection_deficiency_photo SET photo_code = photo_url WHERE photo_code is NULL; INSERT INTO sys_dict_data(dict_code, `value`, label, label_en, tag_type, status, sort, remark, create_time, update_time)VALUES('purchase_spare_quality', '8', '进口件', 'IMPORTED', NULL, 1, 8, NULL, NOW(), NOW()); INSERT INTO sys_dict_data (dict_code, `value`, label, label_en, tag_type, status, sort, remark, create_time, update_time) VALUES ('purchase_req_state', '16', '待比价', 'Pending Comparison', NULL, 1, 16, NULL, NOW(), NOW()), ('purchase_req_state', '17', '比价中', 'In Comparison', NULL, 1, 17, NULL, NOW(), NOW()), ('purchase_req_state', '18', '部分签收', 'Partially Delivered', NULL, 1, 18, NULL, NOW(), NOW()), ('purchase_req_state', '19', '已签收', 'Delivered', NULL, 1, 19, NULL, NOW(), NOW()); UPDATE sys_dict_data SET label = '运输中', label_en = 'In Transit', update_time = NOW() WHERE dict_code = 'purchase_req_state' AND `value` = '10'; UPDATE sys_dict_data SET label = '取消采购', label_en = 'Cancel Procurement', update_time = NOW() WHERE dict_code = 'purchase_req_state' AND `value` = '12'; ALTER TABLE `sys_ship_upgrade_sql` MODIFY COLUMN `sql_statement` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'sql语句,多条分号分割' AFTER `create_date`; ALTER TABLE sys_user add COLUMN office_email VARCHAR(200) COMMENT '办公邮箱'; ALTER TABLE sys_user add COLUMN email_signature VARCHAR(500) COMMENT '邮箱签名'; ALTER TABLE pms_purchase_order_receipt_item ADD COLUMN discount_unit_price DECIMAL(16,4) NOT NULL DEFAULT 0.0000 COMMENT '折后单价' AFTER unit_price; ALTER TABLE sys_ship_manage_info ADD COLUMN vessel_owner_purchase_money_deduct TINYINT(1) COMMENT '船东按已付采购款扣备用金 ,无默认,是:0,否:1'; ALTER TABLE hsqe_inspection_nc_deficiency_basic MODIFY COLUMN basic_description VARCHAR(3000) DEFAULT NULL COMMENT '内容描述'; INSERT INTO `sys_role_menu` ( `role_id`, `menu_id`) VALUES (58, 950); ALTER TABLE hsqe_inspection_deficiency_basic MODIFY COLUMN finding_section_code VARCHAR(500) DEFAULT NULL COMMENT '缺陷编号'; ALTER TABLE hsqe_inspection_nc_deficiency_basic MODIFY COLUMN verification VARCHAR(500) DEFAULT NULL COMMENT '确认意见'; INSERT INTO `sys_dict_data` (`dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ('sms_report_status', '3', '已取消', 'Cancelled', NULL, 1, 0, '', '2026-08-24 15:51:53', '2026-08-24 15:51:53'); ALTER TABLE hsqe_accident ADD COLUMN detained_days TINYINT(4) COMMENT '滞留天数'; ALTER TABLE oper_voyage_port_call ADD COLUMN ship_id BIGINT(20) NULL COMMENT '船舶id' AFTER voyage_plan_id; ALTER TABLE oper_voyage_port_call ADD COLUMN port_id BIGINT(20) NULL COMMENT '港口id' AFTER ship_id; -- 航次号(legId 生成依赖:legId = voyage_no-两位流水号) ALTER TABLE oper_voyage_port_call ADD COLUMN voyage_no VARCHAR(255) NULL COMMENT '航次号' AFTER ship_id; -- 安全等级(字典 itinerary_security_level,取值如 I/II/III/IV) ALTER TABLE oper_voyage_port_call ADD COLUMN security_level VARCHAR(20) NULL COMMENT '安全等级 字典itinerary_security_level' AFTER arrival_condition; ALTER TABLE oper_voyage_port_call MODIFY COLUMN voyage_plan_id BIGINT NULL COMMENT '关联计划主键(主表已废弃,历史兼容字段)'; CREATE INDEX idx_port_call_ship_voyage ON oper_voyage_port_call (ship_id, voyage_no); INSERT INTO `sys_dict` ( `dict_code`, `name`, `status`, `remark`, `create_time`, `update_time`, `is_deleted`) VALUES ( 'itinerary_security_level', '靠港计划安全等级', 1, NULL, '2026-08-25 15:34:39', '2026-08-25 15:34:39', 0); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'itinerary_security_level', '1', 'I', 'I', NULL, 1, 0, '', '2025-09-29 13:59:21', '2025-09-29 13:59:21'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'itinerary_security_level', '2', 'II', 'II', NULL, 1, 0, '', '2025-09-29 14:00:12', '2025-09-29 14:00:12'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'itinerary_security_level', '3', 'III', 'III', NULL, 1, 0, '', '2025-09-29 14:00:38', '2025-09-29 14:00:38'); INSERT INTO `sys_dict_data` ( `dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ( 'itinerary_security_level', '4', 'IV', 'IV', NULL, 1, 0, '', '2025-09-29 14:01:24', '2025-09-29 14:01:24'); ALTER TABLE ship_base_info ADD COLUMN create_source VARCHAR(20) COMMENT '数据来源:OA,SMP'; UPDATE `sys_menu` SET `menu_code` = '', `menu_name` = '新增采购申请', `permission_code` = 'pms:requisitionListPage:add', `permission_name` = '新增采购申请', `required_permission` = 2, `menu_type` = 2, `open_type` = 1, `url` = NULL, `create_by` = '1', `update_by` = '1', `create_time` = '2026-01-26 17:10:12', `update_time` = '2026-08-22 17:03:52', `level` = 3, `parent_id` = 1076, `route_url` = NULL, `icon` = NULL, `is_visible` = '0', `status` = '0', `order_num` = 0, `is_cache` = 1, `is_frame` = 1, `component` = NULL, `query` = NULL, `always_show` = b'0', `active_menu` = NULL, `affix` = b'0', `route_name` = NULL, `frame_src` = NULL, `is_root` = b'1', `redirect` = NULL, `belong_ship_type` = 0, `is_deleted` = 0 WHERE `id` = 1209; UPDATE `sys_menu` SET `menu_code` = '', `menu_name` = '导出', `permission_code` = 'pms:requisitionListPage:export', `permission_name` = '导出', `required_permission` = 2, `menu_type` = 2, `open_type` = 1, `url` = NULL, `create_by` = '1', `update_by` = '1', `create_time` = '2026-05-12 11:42:39', `update_time` = '2026-09-05 11:21:10', `level` = 3, `parent_id` = 1076, `route_url` = NULL, `icon` = NULL, `is_visible` = '0', `status` = '0', `order_num` = 3, `is_cache` = 1, `is_frame` = 1, `component` = NULL, `query` = NULL, `always_show` = b'0', `active_menu` = NULL, `affix` = b'0', `route_name` = NULL, `frame_src` = NULL, `is_root` = b'1', `redirect` = NULL, `belong_ship_type` = 0, `is_deleted` = 0 WHERE `id` = 1218; INSERT INTO `sys_menu` (`id`, `menu_code`, `menu_name`, `permission_code`, `permission_name`, `required_permission`, `menu_type`, `open_type`, `url`, `create_by`, `update_by`, `create_time`, `update_time`, `level`, `parent_id`, `route_url`, `icon`, `is_visible`, `status`, `order_num`, `is_cache`, `is_frame`, `component`, `query`, `always_show`, `active_menu`, `affix`, `route_name`, `frame_src`, `is_root`, `redirect`, `belong_ship_type`, `is_deleted`) VALUES (1223, '', '编辑', 'pms:requisitionListPage:edit', '编辑', 2, 2, 1, NULL, '1', '1', '2026-08-11 17:37:45', '2026-08-22 17:03:57', 3, 1076, NULL, NULL, '0', '0', 1, 1, 1, NULL, NULL, b'0', NULL, b'0', NULL, NULL, b'1', NULL, 0, 0); INSERT INTO `sys_menu` (`id`, `menu_code`, `menu_name`, `permission_code`, `permission_name`, `required_permission`, `menu_type`, `open_type`, `url`, `create_by`, `update_by`, `create_time`, `update_time`, `level`, `parent_id`, `route_url`, `icon`, `is_visible`, `status`, `order_num`, `is_cache`, `is_frame`, `component`, `query`, `always_show`, `active_menu`, `affix`, `route_name`, `frame_src`, `is_root`, `redirect`, `belong_ship_type`, `is_deleted`) VALUES (1224, '', '删除', 'pms:requisitionListPage:delete', '删除', 2, 2, 1, NULL, '1', '1', '2026-08-11 17:40:18', '2026-09-08 11:02:37', 3, 1076, NULL, NULL, '0', '0', 2, 1, 1, NULL, NULL, b'0', NULL, b'0', NULL, NULL, b'1', NULL, 0, 0); INSERT INTO `sys_menu` (`id`, `menu_code`, `menu_name`, `permission_code`, `permission_name`, `required_permission`, `menu_type`, `open_type`, `url`, `create_by`, `update_by`, `create_time`, `update_time`, `level`, `parent_id`, `route_url`, `icon`, `is_visible`, `status`, `order_num`, `is_cache`, `is_frame`, `component`, `query`, `always_show`, `active_menu`, `affix`, `route_name`, `frame_src`, `is_root`, `redirect`, `belong_ship_type`, `is_deleted`) VALUES (1225, '', '审批', 'pms:requisitionListPage:approve', '审批', 2, 2, 1, NULL, '1', '1', '2026-09-02 18:18:24', '2026-09-05 11:21:13', 3, 1076, NULL, NULL, '0', '0', 4, 1, 1, NULL, NULL, b'0', NULL, b'0', NULL, NULL, b'1', NULL, 0, 0); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (16, 1223); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (17, 1223); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (18, 1223); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (19, 1223); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (20, 1223); INSERT INTO `sys_role_menu` ( `role_id`, `menu_id`) VALUES (21, 1223); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (22, 1223); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (23, 1223); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (16, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (17, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (18, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (19, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (20, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (21, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (22, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (23, 1224); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (16, 1225); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (17, 1225); INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (20, 1225); INSERT INTO `sys_dict_data` (`dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ('material_sub_category', '92', '其他', 'Other', NULL, 1, 0, '', '2026-09-08 10:11:34', '2026-09-08 10:11:34'); INSERT INTO `sys_dict_data` (`dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ('material_items', '507', '检测盒', 'Test Kit', NULL, 1, 0, '', '2026-09-08 10:12:18', '2026-09-08 10:12:18'); INSERT INTO `sys_dict_data` (`dict_code`, `value`, `label`, `label_en`, `tag_type`, `status`, `sort`, `remark`, `create_time`, `update_time`) VALUES ('material_items', '508', '取样瓶', 'Sampling Bottle', NULL, 1, 0, '', '2026-09-08 10:12:32', '2026-09-08 10:12:32'); INSERT INTO `sys_tree` (`id`, `parent_id`, `name`, `name_en`, `type`, `order_num`, `business_key`, `is_parent`, `status`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `is_deleted`, `level`) VALUES (1857, 795, '其他', NULL, 'material_item', 0, '92', 0, 1, NULL, NULL, NULL, NULL, NULL, 0, NULL); INSERT INTO `sys_tree` (`id`, `parent_id`, `name`, `name_en`, `type`, `order_num`, `business_key`, `is_parent`, `status`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `is_deleted`, `level`) VALUES (1858, 1857, '检测盒', NULL, 'material_item', 0, '507', 0, 1, NULL, NULL, NULL, NULL, NULL, 0, NULL); INSERT INTO `sys_tree` (`id`, `parent_id`, `name`, `name_en`, `type`, `order_num`, `business_key`, `is_parent`, `status`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `is_deleted`, `level`) VALUES (1859, 1857, '取样瓶', NULL, 'material_item', 0, '508', 0, 1, NULL, NULL, NULL, NULL, NULL, 0, NULL); ALTER TABLE `pms_purchase_request` ADD COLUMN `equipment_classification` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '设备分类(备件类专用),字典 spare_parts_classification' AFTER `current_role`; ALTER TABLE `pms_purchase_request` ADD COLUMN `cancel_reason` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '取消采购原因' AFTER `expected_place_id`; ALTER TABLE `pms_purchase_request` ADD COLUMN `cancel_by` bigint(20) NULL DEFAULT NULL COMMENT '取消采购人ID' AFTER `cancel_reason`; ALTER TABLE `pms_purchase_request` ADD COLUMN `cancel_date` datetime NULL DEFAULT NULL COMMENT '取消采购时间' AFTER `cancel_by`; ALTER TABLE `pms_purchase_request` ADD COLUMN `delay_flag` tinyint(4) NULL DEFAULT 0 COMMENT '延期采购标志 0否 1是' AFTER `cancel_date`; ALTER TABLE `pms_purchase_request` ADD COLUMN `delay_remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '延期采购原因' AFTER `delay_flag`; ALTER TABLE `pms_purchase_request` ADD COLUMN `delay_by` bigint(20) NULL DEFAULT NULL COMMENT '延期采购操作人ID' AFTER `delay_remark`; ALTER TABLE `pms_purchase_request` ADD COLUMN `delay_date` datetime NULL DEFAULT NULL COMMENT '延期采购操作时间' AFTER `delay_by`; ALTER TABLE `pms_purchase_request` ADD COLUMN `cancel_node` tinyint(4) NULL DEFAULT NULL COMMENT '取消节点(流程步序号 3询价/4比价/5采购)' AFTER `delay_date`; ALTER TABLE `pms_purchase_request` ADD COLUMN `create_role_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时角色code(职务快照,数据权限与申请人显示依据)' AFTER `cancel_node`; ALTER TABLE `pms_purchase_request` MODIFY COLUMN `req_no` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '申请单号(新格式 PR-{shipCode}-{E|D}-{yyMM}-{seq},存量旧格式 O-Deck-REQ2026001 保留)' AFTER `category`; ALTER TABLE `pms_purchase_request` ADD INDEX `idx_create_role_code`(`create_role_code`) USING BTREE; ALTER TABLE `pms_purchase_detail` ADD COLUMN `serial_number` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '设备序列号' AFTER `umo`; ALTER TABLE `pms_purchase_detail` ADD COLUMN `append_type` tinyint(4) NULL DEFAULT 0 COMMENT '明细追加类型 0船端原始 1岸基主管审批追加' AFTER `section`; ALTER TABLE `pms_purchase_order_receipt_item` MODIFY COLUMN `discount_unit_price` decimal(16, 4) NULL DEFAULT 0.0000 COMMENT '折后单价' AFTER `unit_price`; ALTER TABLE `ship_base_info` ADD COLUMN `ship_code` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '船舶唯一代码,录入时自动分配,不可修改(船舶唯一代码生成规则.md)' AFTER `smp_install_date`; ALTER TABLE `ship_base_info` ADD UNIQUE INDEX `uk_ship_code`(`ship_code`) USING BTREE; ALTER TABLE pms_purchase_request ADD COLUMN cancel_from_status int NULL COMMENT '取消采购前申请单状态码(重新采购恢复用)' AFTER cancel_node;