gaoluyang
3 天以前 d39e4f7d839167c16425086dfa2f8747bccfdff9
docs/sql/config_export_all_20261104.sql
@@ -435,7 +435,7 @@
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=71 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='MES 编码规则';
INSERT INTO `mes_md_auto_code_rule` (`id`, `code`, `name`, `description`, `max_length`, `padded`, `padded_char`, `padded_method`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1,'MD_ITEM_TYPE_CODE','物料分类编码','物料分类自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(2,'MD_ITEM_CODE','物料编码','物料自动编码',16,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','103','2026-07-16 16:17:45',0x00),(3,'MD_VENDOR_CODE','供应商编码','供应商自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(4,'MD_CLIENT_CODE','客户编码','客户自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(5,'MD_WORKSTATION_CODE','工作站编码','工作站自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(6,'MD_WORKSHOP_CODE','车间编码','车间自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(7,'TM_TOOL_TYPE_CODE','工具类型编码','工具类型自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(10,'WM_WAREHOUSE_CODE','仓库编码','仓库自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(11,'WM_LOCATION_CODE','库区编码','库区自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(12,'WM_AREA_CODE','库位编码','库位自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(13,'WM_ARRIVAL_NOTICE_CODE','到货通知单编码','到货通知单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(14,'WM_ITEM_RECEIPT_CODE','采购入库单编码','采购入库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(15,'WM_RETURN_VENDOR_CODE','采购退货单编码','采购退货单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(16,'WM_RETURN_ISSUE_CODE','生产退料单编码','生产退料单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(17,'WM_SN_CODE','SN码','SN码自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(18,'WM_PACKAGE_CODE','装箱单编码','装箱单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(19,'WM_BATCH_CODE','批次编码','批次自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(20,'WM_PRODUCT_SALES_CODE','销售出库单编码','销售出库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(21,'WM_MISC_RECEIPT_CODE','杂项入库单编码','杂项入库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(22,'WM_MISC_ISSUE_CODE','杂项出库单编码','杂项出库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(23,'WM_STOCK_TAKING_PLAN_CODE','盘点方案编码','盘点方案自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(24,'WM_STOCK_TAKING_CODE','盘点任务编码','盘点任务自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(25,'TRANSFER_CODE','转移调拨单编码','转移调拨单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(26,'WM_OUTSOURCE_ISSUE_CODE','外协发料单编码','外协发料单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(27,'WM_OUTSOURCE_RECEIPT_CODE','外协入库单编码','外协入库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(28,'WM_SALES_NOTICE_CODE','发货通知单编码','发货通知单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(29,'WM_RETURN_SALES_CODE','销售退货单编码','销售退货单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(30,'PRO_WORK_ORDER_CODE','生产工单编码','生产工单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(31,'PRO_TASK_CODE','生产任务编码','生产任务自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(32,'PRO_ROUTE_CODE','工艺路线编码','工艺路线自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(33,'PRO_FEEDBACK_CODE','生产报工单编码','生产报工单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(40,'QC_IQC_CODE','来料检验单编码','来料检验单自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(41,'QC_IPQC_CODE','过程检验单编码','过程检验单自动编码',16,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(42,'QC_OQC_CODE','出货检验单编码','出货检验单自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(43,'QC_RQC_CODE','退货检验单编码','退货检验单自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(44,'QC_DEFECT_CODE','缺陷类型编码','缺陷类型自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(45,'QC_INDICATOR_RESULT_CODE','样品检验结果编码','样品检验结果自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(50,'DV_MACHINERY_CODE','设备编码','设备自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(51,'DV_MACHINERY_TYPE_CODE','设备类型编码','设备类型自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(52,'DV_SUBJECT_CODE','点检保养项目编码','点检保养项目自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(53,'DV_REPAIR_CODE','维修单编码','维修单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(60,'PD_DOCUMENT_AUDIT_CODE','资料审核单编码','资料审核单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(61,'PD_ARCHIVE_CODE','归档台账编码','归档台账自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(62,'PD_PROCESS_PARAM_CODE','工艺参数编码','工艺参数自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(63,'PD_PROCESS_PARAM_TEMPLATE_CODE','工艺参数模板编码','工艺参数模板自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 16:06:38',0x00),(64,'WM_PRODUCT_ISSUE_CODE','领料单',NULL,15,0x01,'0',1,0,NULL,'103','2026-07-16 16:58:14','103','2026-07-16 16:59:03',0x00),(65,'MPS','生产主计划编码','生产主计划自动编码',14,0x01,'0',1,0,'','1','2026-07-17 05:17:30','1','2026-07-17 05:17:30',0x00),(66,'QC_INDICATOR_CODE','质检指标编码',NULL,12,0x01,'0',1,0,NULL,'1','2026-07-17 14:31:46','1','2026-07-17 14:32:23',0x00),(67,'QC_TEMPLATE_CODE','质检方案编码',NULL,11,0x01,'0',1,0,NULL,'1','2026-07-17 14:36:35','1','2026-07-17 14:37:05',0x00),(68,'SALESNOTICE_CODE','销售通知编码','销售通知自动编码',20,0x01,'0',1,0,'','admin','2026-07-17 07:36:53','admin','2026-07-17 07:36:53',0x00),(69,'CAL_TEAM_CODE','班组编码规则','班组编码规则',10,0x01,'0',1,0,NULL,'1','2026-07-31 09:57:04','1','2026-07-31 09:57:36',0x00),(70,'CAL_PLAN_CODE','排班计划',NULL,14,0x01,'0',1,0,NULL,'1','2026-07-31 09:59:32','1','2026-07-31 10:00:17',0x00);
INSERT INTO `mes_md_auto_code_rule` (`id`, `code`, `name`, `description`, `max_length`, `padded`, `padded_char`, `padded_method`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1,'MD_ITEM_TYPE_CODE','物料分类编码','物料分类自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(2,'MD_ITEM_CODE','物料编码','物料自动编码',16,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','103','2026-07-16 16:17:45',0x00),(3,'MD_VENDOR_CODE','供应商编码','供应商自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(4,'MD_CLIENT_CODE','客户编码','客户自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(5,'MD_WORKSTATION_CODE','工作站编码','工作站自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(6,'MD_WORKSHOP_CODE','车间编码','车间自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(7,'TM_TOOL_TYPE_CODE','工具类型编码','工具类型自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(10,'WM_WAREHOUSE_CODE','仓库编码','仓库自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(11,'WM_LOCATION_CODE','库区编码','库区自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(12,'WM_AREA_CODE','库位编码','库位自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(13,'WM_ARRIVAL_NOTICE_CODE','到货通知单编码','到货通知单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(14,'WM_ITEM_RECEIPT_CODE','采购入库单编码','采购入库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(15,'WM_RETURN_VENDOR_CODE','采购退货单编码','采购退货单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(16,'WM_RETURN_ISSUE_CODE','生产退料单编码','生产退料单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(17,'WM_SN_CODE','SN码','SN码自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(18,'WM_PACKAGE_CODE','装箱单编码','装箱单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(19,'WM_BATCH_CODE','批次编码','批次自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(20,'WM_PRODUCT_SALES_CODE','销售出库单编码','销售出库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(21,'WM_MISC_RECEIPT_CODE','杂项入库单编码','杂项入库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(22,'WM_MISC_ISSUE_CODE','杂项出库单编码','杂项出库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(23,'WM_STOCK_TAKING_PLAN_CODE','盘点方案编码','盘点方案自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(24,'WM_STOCK_TAKING_CODE','盘点任务编码','盘点任务自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(25,'TRANSFER_CODE','转移调拨单编码','转移调拨单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(26,'WM_OUTSOURCE_ISSUE_CODE','外协发料单编码','外协发料单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(27,'WM_OUTSOURCE_RECEIPT_CODE','外协入库单编码','外协入库单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(28,'WM_SALES_NOTICE_CODE','发货通知单编码','发货通知单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(29,'WM_RETURN_SALES_CODE','销售退货单编码','销售退货单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(30,'PRO_WORK_ORDER_CODE','生产工单编码','生产工单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(31,'PRO_TASK_CODE','生产任务编码','生产任务自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(32,'PRO_ROUTE_CODE','工艺路线编码','工艺路线自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(33,'PRO_FEEDBACK_CODE','生产报工单编码','生产报工单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(40,'QC_IQC_CODE','来料检验单编码','来料检验单自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(41,'QC_IPQC_CODE','过程检验单编码','过程检验单自动编码',16,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(42,'QC_OQC_CODE','出货检验单编码','出货检验单自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(43,'QC_RQC_CODE','退货检验单编码','退货检验单自动编码',15,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(44,'QC_DEFECT_CODE','缺陷类型编码','缺陷类型自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(45,'QC_INDICATOR_RESULT_CODE','样品检验结果编码','样品检验结果自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(50,'DV_MACHINERY_CODE','设备编号','设备自动编号',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(51,'DV_MACHINERY_TYPE_CODE','设备类型编码','设备类型自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(52,'DV_SUBJECT_CODE','点检保养项目编码','点检保养项目自动编码',6,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:06:12',0x00),(53,'DV_REPAIR_CODE','维修单编码','维修单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(60,'PD_DOCUMENT_AUDIT_CODE','资料审核单编码','资料审核单自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(61,'PD_ARCHIVE_CODE','归档台账编码','归档台账自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(62,'PD_PROCESS_PARAM_CODE','工艺参数编码','工艺参数自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 08:15:29',0x00),(63,'PD_PROCESS_PARAM_TEMPLATE_CODE','工艺参数模板编码','工艺参数模板自动编码',14,0x01,'0',1,0,NULL,'1','2026-07-16 08:06:12','1','2026-07-16 16:06:38',0x00),(64,'WM_PRODUCT_ISSUE_CODE','领料单',NULL,15,0x01,'0',1,0,NULL,'103','2026-07-16 16:58:14','103','2026-07-16 16:59:03',0x00),(65,'MPS','生产主计划编码','生产主计划自动编码',14,0x01,'0',1,0,'','1','2026-07-17 05:17:30','1','2026-07-17 05:17:30',0x00),(66,'QC_INDICATOR_CODE','质检指标编码',NULL,12,0x01,'0',1,0,NULL,'1','2026-07-17 14:31:46','1','2026-07-17 14:32:23',0x00),(67,'QC_TEMPLATE_CODE','质检方案编码',NULL,11,0x01,'0',1,0,NULL,'1','2026-07-17 14:36:35','1','2026-07-17 14:37:05',0x00),(68,'SALESNOTICE_CODE','销售通知编码','销售通知自动编码',20,0x01,'0',1,0,'','admin','2026-07-17 07:36:53','admin','2026-07-17 07:36:53',0x00),(69,'CAL_TEAM_CODE','班组编码规则','班组编码规则',10,0x01,'0',1,0,NULL,'1','2026-07-31 09:57:04','1','2026-07-31 09:57:36',0x00),(70,'CAL_PLAN_CODE','排班计划',NULL,14,0x01,'0',1,0,NULL,'1','2026-07-31 09:59:32','1','2026-07-31 10:00:17',0x00);
-- ============ 表:mes_md_auto_code_part(导出 145 行) ============
DROP TABLE IF EXISTS `mes_md_auto_code_part`;
@@ -1797,6 +1797,8 @@
  `issue_type` tinyint NOT NULL DEFAULT '0' COMMENT '问题类型: 0-未判定 1-一般问题 2-维修问题 3-退货问题',
  `issue_category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '问题分类',
  `issue_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '问题描述',
  `feedback_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '客户诉求反馈描述',
  `result_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '处理结果描述',
  `severity_level` tinyint DEFAULT '0' COMMENT '严重程度: 0-轻微 1-一般 2-严重 3-致命',
  `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态: 0-草稿 10-处理中 30-待退货 40-待退款/换货 50-已完结 60-已关闭 99-已取消',
  `visit_status` tinyint NOT NULL DEFAULT '0' COMMENT '回访状态: 0-待回访 1-已回访通过',
@@ -1854,6 +1856,26 @@
  KEY `idx_ticket_id` (`ticket_id`) USING BTREE,
  KEY `idx_item_id` (`item_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='售后工单明细行表';
-- ============ 表:after_sale_ticket_flow(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `after_sale_ticket_flow`;
CREATE TABLE `after_sale_ticket_flow` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '流转记录编号',
  `ticket_id` bigint NOT NULL COMMENT '售后工单编号,关联 after_sale_ticket.id',
  `action` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作编码:CREATE/UPDATE/ASSIGN/CLASSIFY/RESOLVE/ARCHIVE/CANCEL/VISIT',
  `action_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作名称,如:创建工单、分配处理人',
  `from_status` int DEFAULT NULL COMMENT '变更前状态,关联 AfterSaleTicketStatusEnum',
  `to_status` int DEFAULT NULL COMMENT '变更后状态,关联 AfterSaleTicketStatusEnum',
  `content` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '流转内容/说明',
  `operator_id` bigint DEFAULT NULL COMMENT '操作人用户编号',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `idx_ticket_id` (`ticket_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='售后工单流转记录';
-- ============ 表:after_sale_visit(仅 DDL,无数据) ============
DROP TABLE IF EXISTS `after_sale_visit`;
@@ -4877,7 +4899,7 @@
DROP TABLE IF EXISTS `mes_dv_machinery`;
CREATE TABLE `mes_dv_machinery` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备编码',
  `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备编号',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备名称',
  `brand` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '品牌',
  `specification` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '规格型号',
@@ -6836,6 +6858,7 @@
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',
  `purchase_order_id` bigint DEFAULT NULL COMMENT '采购订单编号',
  `purchase_order_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '采购订单编码(冗余字段)',
  `contract_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '采购合同号(创建时从采购订单快照,换货到货沿用退货单合同号)',
  `vendor_id` bigint DEFAULT NULL COMMENT '供应商 ID',
  `arrival_date` datetime DEFAULT NULL COMMENT '预计到货日期',
  `status` int DEFAULT NULL COMMENT '状态',
@@ -10180,3 +10203,221 @@
       (1, 5393, '1', NOW(), '1', NOW(), b'0');
SET FOREIGN_KEY_CHECKS = 1;
-- ============================================================
-- 补充(2026-11-05):离职申请增强
-- 交接员工/用户与业务数据转移、离职审批分类、到期自动离职 Job
-- ============================================================
-- 可重复执行;不包含 tenant_id。
-- 1. 用户数据交接映射表(补齐员工ID维度)
CREATE TABLE IF NOT EXISTS `hrm_user_handover` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '映射ID',
    `from_employee_id` bigint DEFAULT NULL COMMENT '离职员工ID',
    `from_user_id` bigint NOT NULL COMMENT '离职用户ID',
    `to_employee_id` bigint DEFAULT NULL COMMENT '交接目标员工ID',
    `to_user_id` bigint NOT NULL COMMENT '交接目标用户ID',
    `resignation_id` bigint NOT NULL COMMENT '关联的离职申请ID',
    `handover_status` tinyint NOT NULL DEFAULT 0 COMMENT '交接状态:0-进行中,20-已完成',
    `handover_time` datetime DEFAULT NULL COMMENT '交接完成时间',
    `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE KEY `uk_from_to_resignation` (`from_user_id`, `to_user_id`, `resignation_id`),
    KEY `idx_from_user_id` (`from_user_id`),
    KEY `idx_to_user_id` (`to_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM用户数据交接映射表';
-- 1.1 已存在的旧表补齐员工ID列
SET @target_db = DATABASE();
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE hrm_user_handover ADD COLUMN from_employee_id BIGINT NULL COMMENT ''离职员工ID'' AFTER id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @target_db AND table_name = 'hrm_user_handover' AND column_name = 'from_employee_id');
PREPARE hrm_stmt FROM @ddl;
EXECUTE hrm_stmt;
DEALLOCATE PREPARE hrm_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE hrm_user_handover ADD COLUMN to_employee_id BIGINT NULL COMMENT ''交接目标员工ID'' AFTER from_user_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @target_db AND table_name = 'hrm_user_handover' AND column_name = 'to_employee_id');
PREPARE hrm_stmt FROM @ddl;
EXECUTE hrm_stmt;
DEALLOCATE PREPARE hrm_stmt;
-- 2. 离职审批分类(前端提交的 processDefinitionKey 历史值为该分类编码)
SET @category_id = (SELECT COALESCE(MAX(id), 0) + 1 FROM bpm_category);
INSERT INTO `bpm_category` (`id`, `name`, `code`, `description`, `status`, `sort`, `creator`, `updater`)
SELECT @category_id, '离职审批', 'hrm_resignation_approve', '离职申请审批流程', 0, 0, '1', '1'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM bpm_category WHERE code = 'hrm_resignation_approve' AND deleted = b'0');
-- 3. 到期自动离职 Job(每天 00:10 执行)
INSERT INTO `infra_job` (`name`, `status`, `handler_name`, `handler_param`, `cron_expression`,
                         `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `updater`)
SELECT '离职到期自动办理', 1, 'hrmResignationAutoLeaveJob', '', '0 10 0 * * ?', 0, 0, 0, '1', '1'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM infra_job WHERE handler_name = 'hrmResignationAutoLeaveJob' AND deleted = b'0');
-- 4. 离职申请交接字段(员工ID、用户数据交接状态)
SET @target_db = DATABASE();
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE hrm_resignation_application ADD COLUMN handover_employee_id BIGINT NULL COMMENT ''交接员工ID''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @target_db AND table_name = 'hrm_resignation_application' AND column_name = 'handover_employee_id');
PREPARE handover_stmt FROM @ddl;
EXECUTE handover_stmt;
DEALLOCATE PREPARE handover_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE hrm_resignation_application ADD COLUMN handover_data_status TINYINT NOT NULL DEFAULT 0 COMMENT ''用户数据交接状态:0未开始 10进行中 20已完成''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @target_db AND table_name = 'hrm_resignation_application' AND column_name = 'handover_data_status');
PREPARE handover_stmt FROM @ddl;
EXECUTE handover_stmt;
DEALLOCATE PREPARE handover_stmt;
-- ============================================================
-- 补充(2026-11-05):人力资源 - 人事统计菜单
-- 页面:/hrm/statistics(工龄、年龄、学历、性别、部门工龄、工龄排行)
-- ============================================================
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name,
                         status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
VALUES (1063300, '人事统计', '', 2, 0, 6001, 'statistics', 'ep:data-analysis',
        'hrm/statistics/index', 'HrmHumanStatistics', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE name = VALUES(name), parent_id = VALUES(parent_id), path = VALUES(path),
                        component = VALUES(component), component_name = VALUES(component_name),
                        status = VALUES(status), visible = VALUES(visible), deleted = b'0';
-- 可见角色与「员工管理」保持一致(幂等,重复执行不产生重复行)
INSERT INTO system_role_menu (role_id, menu_id, creator, create_time, updater, update_time, deleted)
SELECT rm.role_id, 1063300, '1', NOW(), '1', NOW(), b'0'
FROM system_role_menu rm
LEFT JOIN system_role_menu ex
       ON ex.role_id = rm.role_id AND ex.menu_id = 1063300 AND ex.deleted = b'0'
WHERE rm.menu_id = 6006 AND rm.deleted = b'0' AND ex.id IS NULL;
-- ============================================================
-- 补充(2026-11-05):财务 - 销售/采购闭环
-- 来票绑定采购订单+入库单;开票绑定销售订单+出库单;
-- 收款节点;回款核销明细;凭证来源单据。
-- ============================================================
-- 1. 来票:绑定 MES 采购入库单
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE erp_purchase_invoice ADD COLUMN item_receipt_id BIGINT NULL COMMENT ''关联 MES 采购入库单ID'' AFTER arrival_notice_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'erp_purchase_invoice' AND column_name = 'item_receipt_id');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE erp_purchase_invoice ADD COLUMN item_receipt_code VARCHAR(64) NULL COMMENT ''关联 MES 采购入库单号'' AFTER item_receipt_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'erp_purchase_invoice' AND column_name = 'item_receipt_code');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
-- 2. 开票:出库单号快照 + 发票录入状态(开票申请 -> 录入发票)
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN sale_out_code VARCHAR(64) NULL COMMENT ''销售出库单号快照'' AFTER sale_out_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_invoice' AND column_name = 'sale_out_code');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN entry_status TINYINT NOT NULL DEFAULT 0 COMMENT ''发票录入状态:0待录入 10已录入'' AFTER sale_out_code',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_invoice' AND column_name = 'entry_status');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN entry_user_id BIGINT NULL COMMENT ''发票录入人'' AFTER entry_status',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_invoice' AND column_name = 'entry_user_id');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN entry_time DATETIME NULL COMMENT ''发票录入时间'' AFTER entry_user_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_invoice' AND column_name = 'entry_time');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
-- 3. 回款计划:收款阶段/来源开票/来源订单/实际回款
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_receivable_plan ADD COLUMN stage TINYINT NULL COMMENT ''收款阶段:1合同款 2预付款 3到货款 4验收款 5质保金''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_receivable_plan' AND column_name = 'stage');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_receivable_plan ADD COLUMN invoice_id BIGINT NULL COMMENT ''来源开票单编号''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_receivable_plan' AND column_name = 'invoice_id');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_receivable_plan ADD COLUMN sale_order_id BIGINT NULL COMMENT ''来源销售订单编号''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_receivable_plan' AND column_name = 'sale_order_id');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_receivable_plan ADD COLUMN actual_time DATETIME NULL COMMENT ''实际回款时间''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_receivable_plan' AND column_name = 'actual_time');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_receivable_plan ADD COLUMN receipted_price DECIMAL(24,6) NOT NULL DEFAULT 0 COMMENT ''已回款金额''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_receivable_plan' AND column_name = 'receipted_price');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_receivable_plan ADD COLUMN status TINYINT NOT NULL DEFAULT 0 COMMENT ''状态:0未回款 10部分回款 20已回清''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'crm_receivable_plan' AND column_name = 'status');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
-- 4. 回款核销明细
CREATE TABLE IF NOT EXISTS `crm_receivable_item` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `receivable_id` bigint NOT NULL COMMENT '回款单ID',
  `biz_type` int NOT NULL COMMENT '核销单据类型:20销售订单 21销售出库 23开票',
  `biz_id` bigint NOT NULL COMMENT '核销单据ID',
  `biz_no` varchar(64) DEFAULT NULL COMMENT '核销单据号',
  `total_price` decimal(24,6) NOT NULL DEFAULT '0.000000' COMMENT '单据金额',
  `receipted_price` decimal(24,6) NOT NULL DEFAULT '0.000000' COMMENT '本次核销前已回款金额',
  `receipt_price` decimal(24,6) NOT NULL DEFAULT '0.000000' COMMENT '本次核销金额',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_receivable_id` (`receivable_id`),
  KEY `idx_biz` (`biz_type`,`biz_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='CRM 回款核销明细';
-- 5. 财务凭证:来源单据
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE fin_voucher ADD COLUMN source_type VARCHAR(32) NULL COMMENT ''来源单据类型:CRM_INVOICE/CRM_RECEIVABLE/ERP_PURCHASE_INVOICE/ERP_PAYMENT''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'fin_voucher' AND column_name = 'source_type');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE fin_voucher ADD COLUMN source_id BIGINT NULL COMMENT ''来源单据编号''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'fin_voucher' AND column_name = 'source_id');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE fin_voucher ADD COLUMN source_no VARCHAR(64) NULL COMMENT ''来源单据号''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'fin_voucher' AND column_name = 'source_no');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
-- 6. MES 出库/入库行金额快照(开票、对账金额口径)
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE mes_wm_product_sales_line ADD COLUMN price DECIMAL(24,6) NULL COMMENT ''单价(销售订单行快照)''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'mes_wm_product_sales_line' AND column_name = 'price');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE mes_wm_product_sales_line ADD COLUMN total_price DECIMAL(24,6) NULL COMMENT ''金额(数量×单价)''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'mes_wm_product_sales_line' AND column_name = 'total_price');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE mes_wm_item_receipt_line ADD COLUMN price DECIMAL(24,6) NULL COMMENT ''单价(采购订单行快照)''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'mes_wm_item_receipt_line' AND column_name = 'price');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
SET @ddl = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE mes_wm_item_receipt_line ADD COLUMN total_price DECIMAL(24,6) NULL COMMENT ''金额(数量×单价)''',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'mes_wm_item_receipt_line' AND column_name = 'total_price');
PREPARE fin_stmt FROM @ddl; EXECUTE fin_stmt; DEALLOCATE PREPARE fin_stmt;
-- 7. 字典:收款阶段
INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1065416, '回款阶段', 'crm_payment_stage', 0, '开票录入时按销售订单拆分合同款、预付款、到货款、验收款', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `status` = VALUES(`status`), `remark` = VALUES(`remark`), `deleted` = b'0';
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1065501, 1, '合同款', '1', 'crm_payment_stage', 0, 'primary', '', '', '1', NOW(), '1', NOW(), b'0'),
       (1065502, 2, '预付款', '2', 'crm_payment_stage', 0, 'success', '', '', '1', NOW(), '1', NOW(), b'0'),
       (1065503, 3, '到货款', '3', 'crm_payment_stage', 0, 'warning', '', '', '1', NOW(), '1', NOW(), b'0'),
       (1065504, 4, '验收款', '4', 'crm_payment_stage', 0, 'info', '', '', '1', NOW(), '1', NOW(), b'0'),
       (1065505, 5, '质保金', '5', 'crm_payment_stage', 0, 'danger', '', '', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE `sort` = VALUES(`sort`), `label` = VALUES(`label`), `value` = VALUES(`value`),
                        `status` = VALUES(`status`), `color_type` = VALUES(`color_type`), `deleted` = b'0';