-- 待分配诊单「自动指派」执行日志表
-- 由定时命令 tcm:auto-assign-pending 写入：每条待指派诊单一行，记录分配结果与原因（为什么分配 / 为什么不分配）
-- 分档依据：上个自然月「二诊复诊接诊率」（RevisitRateLogic 口径，visit2_rate）
--   >70%     日上限 3 条
--   60%-70%  日上限 2 条
--   50%-60%  日上限 1 条
--   <50% 或无数据 不参与分配
CREATE TABLE IF NOT EXISTS `zyt_tcm_diagnosis_auto_assign_log` (
    `id`             int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `batch_no`       varchar(32)  NOT NULL DEFAULT '' COMMENT '本次执行批次号（同一次命令执行相同）',
    `run_date`       varchar(10)  NOT NULL DEFAULT '' COMMENT '执行日期 Y-m-d（当日额度按此汇总）',
    `stat_month`     varchar(7)   NOT NULL DEFAULT '' COMMENT '接诊率统计月份 Y-m（上个自然月）',
    `diagnosis_id`   int unsigned NOT NULL DEFAULT 0 COMMENT '诊单ID',
    `patient_name`   varchar(64)  NOT NULL DEFAULT '' COMMENT '患者姓名（快照）',
    `patient_phone`  varchar(32)  NOT NULL DEFAULT '' COMMENT '患者手机号（快照）',
    `action`         tinyint unsigned NOT NULL DEFAULT 0 COMMENT '结果：1=已分配 0=未分配',
    `assistant_id`   int unsigned NOT NULL DEFAULT 0 COMMENT '分得的医助管理员ID（未分配为0）',
    `assistant_name` varchar(64)  NOT NULL DEFAULT '' COMMENT '分得的医助姓名（快照）',
    `tier`           varchar(16)  NOT NULL DEFAULT '' COMMENT '接诊率档位：gt70 / 60_70 / 50_60（未分配为空）',
    `visit2_rate`    decimal(8,2) NULL DEFAULT NULL COMMENT '该医助上月二诊复诊接诊率（%），未分配为NULL',
    `round_no`       tinyint unsigned NOT NULL DEFAULT 0 COMMENT '第几轮分得（1起；未分配为0）',
    `reason`         varchar(500) NOT NULL DEFAULT '' COMMENT '分配 / 不分配原因说明',
    `create_time`    int unsigned NOT NULL DEFAULT 0 COMMENT '记录时间',
    PRIMARY KEY (`id`),
    KEY `idx_run_date` (`run_date`),
    KEY `idx_diagnosis_id` (`diagnosis_id`),
    KEY `idx_assistant_run` (`assistant_id`, `run_date`),
    KEY `idx_batch_no` (`batch_no`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '待分配诊单自动指派日志';
