200 lines
10 KiB
SQL
200 lines
10 KiB
SQL
-- =============================================================================
|
||
-- 友通达新系统 · 询价后台业务表(inquiry_robot)
|
||
-- 用途:分析看板 / 询价工单 / 员工岗位 / 机器人回复语
|
||
-- 排除:报价模板、识别任务、报价生成、存档死信
|
||
-- 说明:只对 inquiry_robot 执行;禁止对现网 jeecg-boot 执行。
|
||
-- =============================================================================
|
||
|
||
SET NAMES utf8mb4;
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 询价工单(六态 Owner)
|
||
-- 状态约定:询价中 / 已报价 / 协商中 / 已成交 / 未成交 / 已关闭
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_ticket` (
|
||
`id` varchar(32) NOT NULL COMMENT '主键',
|
||
`work_order_no` varchar(40) NOT NULL COMMENT '工单号',
|
||
`sales_wecom_id` varchar(128) DEFAULT NULL COMMENT '发起销售企微 userid(入站 sender_id)',
|
||
`sales_name` varchar(100) DEFAULT NULL COMMENT '销售展示名',
|
||
`customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称',
|
||
`business_line` varchar(16) NOT NULL COMMENT '业务线 SEA/AIR/LAND',
|
||
`biz_type_label` varchar(32) DEFAULT NULL COMMENT '展示用业务类型:海运/空运/陆运',
|
||
`origin` varchar(200) DEFAULT NULL COMMENT '起运地',
|
||
`destination` varchar(200) DEFAULT NULL COMMENT '目的地',
|
||
`demand_title` varchar(500) DEFAULT NULL COMMENT '需求标题(路线摘要)',
|
||
`demand_detail` text COMMENT '需求详情文本',
|
||
`goods_name` varchar(200) DEFAULT NULL COMMENT '品名',
|
||
`pieces` int DEFAULT NULL COMMENT '件数',
|
||
`weight_kg` decimal(18,3) DEFAULT NULL COMMENT '重量KG',
|
||
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '体积CBM',
|
||
`status` varchar(32) NOT NULL DEFAULT '询价中' COMMENT '六态',
|
||
`cost_price` varchar(64) DEFAULT NULL COMMENT '成本价展示串',
|
||
`sale_price` varchar(64) DEFAULT NULL COMMENT '售价展示串',
|
||
`profit_rate` varchar(32) DEFAULT NULL COMMENT '毛利率展示串',
|
||
`tms_hit` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否命中 TMS 标准价',
|
||
`manual_quote` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否含手工报价',
|
||
`event_exception` varchar(200) DEFAULT NULL COMMENT '事件异常摘要,无则空',
|
||
`system_exception` varchar(200) DEFAULT NULL COMMENT '系统异常摘要,无则空',
|
||
`system_exception_reason` varchar(500) DEFAULT NULL COMMENT '系统异常原因',
|
||
`close_reason` varchar(500) DEFAULT NULL COMMENT '关单原因',
|
||
`version` int NOT NULL DEFAULT 1 COMMENT '乐观锁/业务版本',
|
||
`create_by` varchar(50) DEFAULT NULL,
|
||
`create_time` datetime DEFAULT NULL,
|
||
`update_by` varchar(50) DEFAULT NULL,
|
||
`update_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inq_ticket_no` (`work_order_no`),
|
||
KEY `idx_inq_ticket_status_time` (`status`,`create_time`),
|
||
KEY `idx_inq_ticket_sales` (`sales_wecom_id`,`create_time`),
|
||
KEY `idx_inq_ticket_line` (`business_line`,`create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='询价工单';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 运输段(多段预留;本期列表可不展示)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_ticket_segment` (
|
||
`id` varchar(32) NOT NULL,
|
||
`ticket_id` varchar(32) NOT NULL COMMENT '工单 id',
|
||
`work_order_no` varchar(40) NOT NULL,
|
||
`seg_index` int NOT NULL DEFAULT 1 COMMENT '段序号从 1 起',
|
||
`origin` varchar(200) DEFAULT NULL,
|
||
`destination` varchar(200) DEFAULT NULL,
|
||
`business_line` varchar(16) DEFAULT NULL,
|
||
`payload_json` longtext COMMENT '段级字段快照 JSON',
|
||
`create_time` datetime DEFAULT NULL,
|
||
`update_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_inq_seg_ticket` (`ticket_id`),
|
||
KEY `idx_inq_seg_wo` (`work_order_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='询价工单运输段';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 六态流转日志(时间线)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_ticket_status_log` (
|
||
`id` varchar(32) NOT NULL,
|
||
`ticket_id` varchar(32) NOT NULL,
|
||
`work_order_no` varchar(40) NOT NULL,
|
||
`from_status` varchar(32) DEFAULT NULL,
|
||
`to_status` varchar(32) NOT NULL,
|
||
`action` varchar(64) NOT NULL COMMENT 'transition / close / retry / abnormal_handle',
|
||
`operator` varchar(100) DEFAULT NULL COMMENT '操作人登录名或系统',
|
||
`remark` varchar(1000) DEFAULT NULL,
|
||
`create_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_inq_status_log_wo` (`work_order_no`,`create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工单状态流转日志';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 报价快照(只读展示;不做模板管理)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_quote` (
|
||
`id` varchar(32) NOT NULL,
|
||
`ticket_id` varchar(32) NOT NULL,
|
||
`work_order_no` varchar(40) NOT NULL,
|
||
`quote_version` int NOT NULL DEFAULT 1 COMMENT '报价版本号',
|
||
`source` varchar(64) NOT NULL COMMENT 'TMS / MANUAL / CUSTOMER',
|
||
`source_label` varchar(200) DEFAULT NULL COMMENT '展示来源名',
|
||
`price_text` varchar(128) DEFAULT NULL COMMENT '价格展示串',
|
||
`highlighted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否高亮(采用候选)',
|
||
`payload_json` longtext COMMENT '费用明细等 JSON',
|
||
`create_time` datetime DEFAULT NULL,
|
||
`update_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_inq_quote_wo` (`work_order_no`,`quote_version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工单报价快照(只读)';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 附件元数据(只存指针,不存文件字节)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_attachment` (
|
||
`id` varchar(32) NOT NULL,
|
||
`ticket_id` varchar(32) NOT NULL,
|
||
`work_order_no` varchar(40) NOT NULL,
|
||
`file_name` varchar(255) NOT NULL,
|
||
`object_key` varchar(500) DEFAULT NULL COMMENT '对象存储键',
|
||
`content_type` varchar(128) DEFAULT NULL,
|
||
`file_size` bigint DEFAULT NULL,
|
||
`create_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_inq_attach_wo` (`work_order_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工单附件元数据';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 异常单(系统异常 handle / retry)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_exception_case` (
|
||
`id` varchar(32) NOT NULL,
|
||
`ticket_id` varchar(32) NOT NULL,
|
||
`work_order_no` varchar(40) NOT NULL,
|
||
`case_type` varchar(32) NOT NULL COMMENT 'EVENT / SYSTEM',
|
||
`title` varchar(200) NOT NULL,
|
||
`reason` varchar(1000) DEFAULT NULL,
|
||
`status` varchar(32) NOT NULL DEFAULT 'OPEN' COMMENT 'OPEN / HANDLED / RETRYING / CLOSED',
|
||
`retry_count` int NOT NULL DEFAULT 0,
|
||
`last_retry_at` datetime DEFAULT NULL,
|
||
`handled_by` varchar(100) DEFAULT NULL,
|
||
`handled_at` datetime DEFAULT NULL,
|
||
`create_time` datetime DEFAULT NULL,
|
||
`update_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_inq_exc_wo` (`work_order_no`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='询价异常单';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 员工岗位(业务角色,非 Jeecg 登录账号)
|
||
-- role: sales / air / sea / land
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_staff_role` (
|
||
`id` varchar(32) NOT NULL,
|
||
`name` varchar(100) NOT NULL COMMENT '姓名',
|
||
`wecom_id` varchar(128) NOT NULL COMMENT '企微 userid',
|
||
`mobile` varchar(32) DEFAULT NULL COMMENT '手机(可脱敏展示)',
|
||
`depart_name` varchar(128) DEFAULT NULL COMMENT '部门',
|
||
`role_code` varchar(32) NOT NULL COMMENT 'sales/air/sea/land',
|
||
`role_label` varchar(64) DEFAULT NULL COMMENT '展示角色名',
|
||
`routes` varchar(500) DEFAULT NULL COMMENT '负责线路,销售可为空',
|
||
`notify_event_exception` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否接收事件异常提醒',
|
||
`status` varchar(16) NOT NULL DEFAULT 'active' COMMENT 'active/disabled',
|
||
`create_by` varchar(50) DEFAULT NULL,
|
||
`create_time` datetime DEFAULT NULL,
|
||
`update_by` varchar(50) DEFAULT NULL,
|
||
`update_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inq_staff_wecom` (`wecom_id`),
|
||
KEY `idx_inq_staff_role` (`role_code`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='询价业务员工岗位';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 机器人回复语
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_bot_reply` (
|
||
`id` varchar(32) NOT NULL,
|
||
`category_code` varchar(64) NOT NULL COMMENT '分类:inquiring/quoted/deal/...',
|
||
`category_title` varchar(100) DEFAULT NULL COMMENT '分类中文名',
|
||
`trigger_scene` varchar(255) NOT NULL COMMENT '触发场景说明',
|
||
`reply_text` text NOT NULL COMMENT '回复正文,可含 {{变量}}',
|
||
`enabled` tinyint(1) NOT NULL DEFAULT 1,
|
||
`sort_no` int NOT NULL DEFAULT 0,
|
||
`remark` varchar(500) DEFAULT NULL,
|
||
`create_by` varchar(50) DEFAULT NULL,
|
||
`create_time` datetime DEFAULT NULL,
|
||
`update_by` varchar(50) DEFAULT NULL,
|
||
`update_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_inq_reply_cat` (`category_code`,`enabled`,`sort_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='机器人回复语';
|
||
|
||
-- ---------------------------------------------------------------------------
|
||
-- 看板日快照(可选;无行时 metrics 实时聚合 inq_ticket)
|
||
-- ---------------------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `inq_dashboard_snapshot` (
|
||
`id` varchar(32) NOT NULL,
|
||
`snap_date` date NOT NULL COMMENT '统计日',
|
||
`metrics_json` longtext NOT NULL COMMENT '指标 JSON',
|
||
`create_time` datetime DEFAULT NULL,
|
||
`update_time` datetime DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inq_dash_date` (`snap_date`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分析看板日快照';
|