Files
inquiry_robot/deploy/sql/inquiry_admin_v1.sql
T

200 lines
10 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- 友通达新系统 · 询价后台业务表(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='分析看板日快照';