-- ============================================================
|
-- 售后工单模块 DDL
|
-- ============================================================
|
|
-- 1. 售后工单主表
|
DROP TABLE IF EXISTS `after_sale_ticket`;
|
CREATE TABLE `after_sale_ticket` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '工单编号',
|
`no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '工单单号',
|
`name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '工单主题/标题',
|
`customer_id` bigint NOT NULL COMMENT '客户编号,关联 crm_customer.id',
|
`contact_id` bigint DEFAULT NULL COMMENT '联系人编号,关联 crm_contact.id',
|
`sale_order_id` bigint DEFAULT NULL COMMENT '销售订单编号,关联 erp_sale_order.id',
|
`sale_order_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '销售订单号(冗余)',
|
`contract_id` bigint DEFAULT NULL COMMENT '合同编号,关联 crm_contract.id',
|
`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 '问题描述',
|
`severity_level` tinyint DEFAULT 0 COMMENT '严重程度: 0-轻微 1-一般 2-严重 3-致命',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态: 0-草稿 10-处理中 30-待退货 40-待退款/换货 50-已完结 60-已关闭 99-已取消',
|
`owner_user_id` bigint NOT NULL COMMENT '负责人用户编号',
|
`handler_user_id` bigint DEFAULT NULL COMMENT '处理人用户编号',
|
`process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'BPM工作流实例编号',
|
`return_id` bigint DEFAULT NULL COMMENT '关联退货申请编号',
|
`repair_id` bigint DEFAULT NULL COMMENT '关联维修记录编号',
|
`resolved_time` datetime DEFAULT NULL COMMENT '解决时间',
|
`closed_time` datetime DEFAULT NULL COMMENT '关闭时间',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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_no` (`no`),
|
KEY `idx_customer_id` (`customer_id`),
|
KEY `idx_sale_order_id` (`sale_order_id`),
|
KEY `idx_owner_user_id` (`owner_user_id`),
|
KEY `idx_status` (`status`),
|
KEY `idx_create_time` (`create_time`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='售后工单主表';
|
|
-- 2. 售后工单明细行表
|
DROP TABLE IF EXISTS `after_sale_ticket_item`;
|
CREATE TABLE `after_sale_ticket_item` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
|
`ticket_id` bigint NOT NULL COMMENT '工单编号,关联 after_sale_ticket.id',
|
`sale_order_item_id` bigint DEFAULT NULL COMMENT '销售订单行编号',
|
`item_id` bigint NOT NULL COMMENT 'MDM物料编号',
|
`item_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '物料编码(冗余)',
|
`item_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '物料名称(冗余)',
|
`batch_id` bigint DEFAULT NULL COMMENT '生产批次编号',
|
`batch_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '生产批次号',
|
`sale_quantity` decimal(10,3) NOT NULL DEFAULT 0.000 COMMENT '销售数量',
|
`return_quantity` decimal(10,3) DEFAULT 0.000 COMMENT '退货数量',
|
`need_repair` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否需要维修',
|
`need_return` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否需要退货',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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`),
|
KEY `idx_item_id` (`item_id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='售后工单明细行表';
|
|
-- 3. 退货申请表
|
DROP TABLE IF EXISTS `after_sale_return`;
|
CREATE TABLE `after_sale_return` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '退货申请编号',
|
`no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退货单号',
|
`ticket_id` bigint NOT NULL COMMENT '关联工单编号,关联 after_sale_ticket.id',
|
`customer_id` bigint NOT NULL COMMENT '客户编号',
|
`sale_order_id` bigint DEFAULT NULL COMMENT '关联销售订单编号',
|
`return_type` tinyint NOT NULL COMMENT '退货类型: 1-退款退货 2-换货 3-仅退款',
|
`return_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退货原因',
|
`defect_category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '缺陷分类',
|
`total_return_price` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '应退总金额',
|
`actual_refund_price` decimal(12,2) DEFAULT 0.00 COMMENT '实退金额',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态: 0-草稿 10-销售审核中 20-审核通过已同步MES 30-检验中 40-检验完成 50-已入库 60-退款/换货完成 70-已关闭 99-已取消',
|
`audit_user_id` bigint DEFAULT NULL COMMENT '审核人',
|
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
`mes_return_id` bigint DEFAULT NULL COMMENT 'MES退货单编号,关联 mes_wm_return_sales.id',
|
`mes_return_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'MES退货单号(冗余)',
|
`quality_result` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '质检结论: 合格/特采/退货/报废',
|
`quality_report_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '质检报告附件URL',
|
`return_inbound_time` datetime DEFAULT NULL COMMENT '退货入库完成时间',
|
`refund_time` datetime DEFAULT NULL COMMENT '退款/换货完成时间',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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_no` (`no`),
|
KEY `idx_ticket_id` (`ticket_id`),
|
KEY `idx_mes_return_id` (`mes_return_id`),
|
KEY `idx_status` (`status`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='售后退货申请表';
|
|
-- 4. 退货明细行表
|
DROP TABLE IF EXISTS `after_sale_return_item`;
|
CREATE TABLE `after_sale_return_item` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
|
`return_id` bigint NOT NULL COMMENT '退货申请编号,关联 after_sale_return.id',
|
`ticket_item_id` bigint NOT NULL COMMENT '工单明细行编号,关联 after_sale_ticket_item.id',
|
`item_id` bigint NOT NULL COMMENT 'MDM物料编号',
|
`item_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '物料编码(冗余)',
|
`item_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '物料名称(冗余)',
|
`batch_id` bigint DEFAULT NULL COMMENT '批次编号',
|
`batch_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '批次号',
|
`return_quantity` decimal(10,3) NOT NULL COMMENT '退货数量',
|
`unit_price` decimal(12,2) NOT NULL COMMENT '销售单价',
|
`return_price` decimal(12,2) NOT NULL COMMENT '退货金额',
|
`mes_return_line_id` bigint DEFAULT NULL COMMENT 'MES退货单行编号',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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_return_id` (`return_id`),
|
KEY `idx_ticket_item_id` (`ticket_item_id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='售后退货明细行表';
|
|
-- 5. 维修记录表
|
DROP TABLE IF EXISTS `after_sale_repair`;
|
CREATE TABLE `after_sale_repair` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '维修记录编号',
|
`ticket_id` bigint NOT NULL COMMENT '关联工单编号,关联 after_sale_ticket.id',
|
`repair_type` tinyint NOT NULL COMMENT '维修类型: 1-现场维修 2-返厂维修 3-远程指导',
|
`fault_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '故障描述',
|
`repair_action` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '维修措施',
|
`repair_result` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '维修结果: 已修复/无法修复/部分修复',
|
`repair_cost` decimal(10,2) DEFAULT 0.00 COMMENT '维修费用',
|
`repair_user_id` bigint DEFAULT NULL COMMENT '维修人',
|
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态: 0-待处理 10-维修中 20-已完成 30-已关闭',
|
`start_time` datetime DEFAULT NULL COMMENT '开始维修时间',
|
`finish_time` datetime DEFAULT NULL COMMENT '完成维修时间',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='售后维修记录表';
|
|
-- 6. 售后数据权限表
|
DROP TABLE IF EXISTS `after_sale_permission`;
|
CREATE TABLE `after_sale_permission` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
|
`biz_type` tinyint NOT NULL COMMENT '数据类型: 1-售后工单 2-退货申请 3-维修记录',
|
`biz_id` bigint NOT NULL COMMENT '数据编号',
|
`user_id` bigint NOT NULL COMMENT '用户编号',
|
`level` tinyint NOT NULL COMMENT '权限级别: 1-负责人 2-只读 3-读写',
|
`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_biz` (`biz_type`, `biz_id`),
|
KEY `idx_user` (`user_id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='售后数据权限表';
|