-- =====================================================
-- 台账管理模块 DDL
-- 创建时间：2026-04-23
-- =====================================================

-- 1. 部门监察问题记录表
CREATE TABLE IF NOT EXISTS `ledger_supervision_problem` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '记录日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `group_name`            VARCHAR(100)          COMMENT '小组',
    `inspector_name`        VARCHAR(100)          COMMENT '巡查人',
    `inspected_name`        VARCHAR(100)          COMMENT '被查人',
    `problem_type`          VARCHAR(100)          COMMENT '问题类型',
    `problem_desc`          VARCHAR(500)          COMMENT '问题描述',
    `location`              VARCHAR(200)          COMMENT '问题地点',
    `channel_no`            VARCHAR(50)           COMMENT '通道号',
    `result_handling`       VARCHAR(200)          COMMENT '处理结果',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `add_score`             DECIMAL(10,2)         COMMENT '加分',
    `score_dimension`       VARCHAR(50)           COMMENT '评分维度',
    `score_indicator`       VARCHAR(100)          COMMENT '评分指标',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门监察问题记录';

-- 2. 队室三级质控巡查记录表
CREATE TABLE IF NOT EXISTS `ledger_patrol_inspection` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '巡查日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `group_name`            VARCHAR(100)          COMMENT '小组',
    `inspector_name`        VARCHAR(100)          COMMENT '巡查人',
    `inspected_name`        VARCHAR(100)          COMMENT '被查人',
    `patrol_type`           VARCHAR(100)          COMMENT '巡查类型',
    `patrol_item`           VARCHAR(200)          COMMENT '巡查项目',
    `problem_desc`          VARCHAR(500)          COMMENT '问题描述',
    `location`              VARCHAR(200)          COMMENT '巡查地点',
    `channel_no`            VARCHAR(50)           COMMENT '通道号',
    `result_handling`       VARCHAR(200)          COMMENT '处理结果',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `score_dimension`       VARCHAR(50)           COMMENT '评分维度',
    `score_indicator`       VARCHAR(100)          COMMENT '评分指标',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='队室三级质控巡查记录';

-- 3. 部门实时质控拦截记录表
CREATE TABLE IF NOT EXISTS `ledger_realtime_interception` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '记录日期',
    `record_time`           TIME                  COMMENT '记录时间',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `group_name`            VARCHAR(100)          COMMENT '小组',
    `inspector_name`        VARCHAR(100)          COMMENT '查获人',
    `channel_no`            VARCHAR(50)           COMMENT '通道号',
    `passenger_name`        VARCHAR(100)          COMMENT '旅客姓名',
    `id_card_no`            VARCHAR(50)           COMMENT '证件号码',
    `flight_no`             VARCHAR(50)           COMMENT '航班号',
    `item_category`         VARCHAR(100)          COMMENT '物品类别',
    `item_name`             VARCHAR(200)          COMMENT '物品名称',
    `item_quantity`         INT                   COMMENT '数量',
    `item_weight`           DECIMAL(10,2)         COMMENT '重量(kg)',
    `handling_method`       VARCHAR(200)          COMMENT '处置方式',
    `result_handling`       VARCHAR(200)          COMMENT '处理结果',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `add_score`             DECIMAL(10,2)         COMMENT '加分',
    `score_dimension`       VARCHAR(50)           COMMENT '评分维度',
    `score_indicator`       VARCHAR(100)          COMMENT '评分指标',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门实时质控拦截记录';

-- 4. 服务巡查记录表
CREATE TABLE IF NOT EXISTS `ledger_service_patrol` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '巡查日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `group_name`            VARCHAR(100)          COMMENT '小组',
    `inspector_name`        VARCHAR(100)          COMMENT '巡查人',
    `inspected_name`        VARCHAR(100)          COMMENT '被查人',
    `service_type`          VARCHAR(100)          COMMENT '服务类型',
    `problem_desc`          VARCHAR(500)          COMMENT '问题描述',
    `location`              VARCHAR(200)          COMMENT '巡查地点',
    `result_handling`       VARCHAR(200)          COMMENT '处理结果',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `add_score`             DECIMAL(10,2)         COMMENT '加分',
    `score_dimension`       VARCHAR(50)           COMMENT '评分维度',
    `score_indicator`       VARCHAR(100)          COMMENT '评分指标',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='服务巡查记录';

-- 5. 投诉情况记录表
CREATE TABLE IF NOT EXISTS `ledger_complaint` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '记录日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `responsible_name`      VARCHAR(100)          COMMENT '责任人',
    `flight_no`             VARCHAR(50)           COMMENT '航班号',
    `passenger_name`        VARCHAR(100)          COMMENT '旅客姓名',
    `complaint_type`        VARCHAR(100)          COMMENT '投诉类型',
    `complaint_desc`        VARCHAR(500)          COMMENT '投诉内容',
    `result_handling`       VARCHAR(200)          COMMENT '处理结果',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='投诉情况记录';

-- 6. 安保测试记录表
CREATE TABLE IF NOT EXISTS `ledger_security_test` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '测试日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `group_name`            VARCHAR(100)          COMMENT '小组',
    `tester_name`           VARCHAR(100)          COMMENT '测试人',
    `tested_name`           VARCHAR(100)          COMMENT '被测人',
    `test_type`             VARCHAR(100)          COMMENT '测试类型',
    `test_item`             VARCHAR(200)          COMMENT '测试项目',
    `test_result`           VARCHAR(50)           COMMENT '测试结果(通过/不通过)',
    `problem_desc`          VARCHAR(500)          COMMENT '问题描述',
    `result_handling`       VARCHAR(200)          COMMENT '处理结果',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `add_score`             DECIMAL(10,2)         COMMENT '加分',
    `score_dimension`       VARCHAR(50)           COMMENT '评分维度',
    `score_indicator`       VARCHAR(100)          COMMENT '评分指标',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='安保测试记录';

-- 7. 通道过检率记录表
CREATE TABLE IF NOT EXISTS `ledger_channel_pass_rate` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '记录日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `channel_no`            VARCHAR(50)           COMMENT '通道号',
    `total_count`           INT                   COMMENT '总过检人数',
    `pass_count`            INT                   COMMENT '过检人数',
    `pass_rate`             DECIMAL(5,2)          COMMENT '过检率(%)',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通道过检率记录';

-- 8. 不安全事件记录表
CREATE TABLE IF NOT EXISTS `ledger_unsafe_event` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '事件日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `responsible_name`      VARCHAR(100)          COMMENT '责任人',
    `event_type`            VARCHAR(100)          COMMENT '事件类型',
    `event_desc`            VARCHAR(500)          COMMENT '事件描述',
    `result_handling`       VARCHAR(200)          COMMENT '处理结果',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='不安全事件记录';

-- 9. 查获违规品统计表
CREATE TABLE IF NOT EXISTS `ledger_seizure_stats` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '查获日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `group_name`            VARCHAR(100)          COMMENT '小组',
    `inspector_name`        VARCHAR(100)          COMMENT '查获人',
    `channel_no`            VARCHAR(50)           COMMENT '通道号',
    `passenger_name`        VARCHAR(100)          COMMENT '旅客姓名',
    `flight_no`             VARCHAR(50)           COMMENT '航班号',
    `item_category`         VARCHAR(100)          COMMENT '违规品类别',
    `item_name`             VARCHAR(200)          COMMENT '违规品名称',
    `item_quantity`         INT                   COMMENT '数量',
    `concealment_part`      VARCHAR(100)          COMMENT '藏匿部位',
    `check_method`          VARCHAR(100)          COMMENT '检查方式',
    `handling_method`       VARCHAR(200)          COMMENT '处置方式',
    `add_score`             DECIMAL(10,2)         COMMENT '加分',
    `stacked_score`         DECIMAL(10,2)         COMMENT '叠加分',
    `score_dimension`       VARCHAR(50)           COMMENT '评分维度',
    `score_indicator`       VARCHAR(100)          COMMENT '评分指标',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='查获违规品统计';

-- 10. 航站楼加分记录表
CREATE TABLE IF NOT EXISTS `ledger_terminal_bonus` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `approve_date`          DATE                  COMMENT '审核日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `person_name`           VARCHAR(100)          COMMENT '姓名',
    `bonus_type`            VARCHAR(100)          COMMENT '加分类型',
    `add_score`             DECIMAL(10,2)         COMMENT '加分',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='航站楼加分记录';

-- 11. 成绩收集表
CREATE TABLE IF NOT EXISTS `ledger_exam_score` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `exam_date`             DATE                  COMMENT '考试日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `group_name`            VARCHAR(100)          COMMENT '小组',
    `person_name`           VARCHAR(100)          COMMENT '用户名称',
    `exam_category`         VARCHAR(100)          COMMENT '类别',
    `exam_period`           VARCHAR(50)           COMMENT '期数',
    `score`                 DECIMAL(10,2)         COMMENT '成绩',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成绩收集';

-- 12. 小额奖励审批单表
CREATE TABLE IF NOT EXISTS `ledger_reward_approval` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `approve_date`          DATE                  COMMENT '审批日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `person_name`           VARCHAR(100)          COMMENT '姓名',
    `reward_type`           VARCHAR(100)          COMMENT '奖励类型',
    `reward_amount`         DECIMAL(10,2)         COMMENT '奖励金额',
    `approval_status`       VARCHAR(50)           COMMENT '审批状态',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `import_batch`          VARCHAR(50)           COMMENT '导入批次号',
    `source_type`           CHAR(1) DEFAULT '1'   COMMENT '数据来源(1=台账导入 2=手工录入)',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='小额奖励审批单';

-- 13. 部门奖惩记录表（页面录入）
CREATE TABLE IF NOT EXISTS `ledger_reward_penalty` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '记录日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `person_name`           VARCHAR(100)          COMMENT '姓名',
    `person_user_id`        BIGINT(20)            COMMENT '关联用户ID',
    `type`                  CHAR(1)               COMMENT '类型(1=奖励 2=惩处)',
    `event_desc`            VARCHAR(500)          COMMENT '事件描述',
    `score_change`          DECIMAL(10,2)         COMMENT '分值变动(正=加 负=减)',
    `score_dimension`       VARCHAR(50)           COMMENT '评分维度',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门奖惩记录（页面录入）';

-- 14. 请休假记录（特殊）表（页面录入）
CREATE TABLE IF NOT EXISTS `ledger_leave_special` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `person_name`           VARCHAR(100)          COMMENT '姓名',
    `person_user_id`        BIGINT(20)            COMMENT '关联用户ID',
    `leave_type`            VARCHAR(50)           COMMENT '假期类型',
    `start_date`            DATE                  COMMENT '开始日期',
    `end_date`              DATE                  COMMENT '结束日期',
    `days`                  DECIMAL(5,1)          COMMENT '天数',
    `deduct_score`          DECIMAL(10,2)         COMMENT '扣分',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='请休假记录特殊（页面录入）';

-- 15. 锦旗及感谢信记录表（页面录入）
CREATE TABLE IF NOT EXISTS `ledger_banner_letter` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `record_date`           DATE                  COMMENT '记录日期',
    `dept_name`             VARCHAR(100)          COMMENT '部门名称',
    `team_name`             VARCHAR(100)          COMMENT '队室/班组',
    `person_name`           VARCHAR(100)          COMMENT '姓名',
    `person_user_id`        BIGINT(20)            COMMENT '关联用户ID',
    `type`                  CHAR(1)               COMMENT '类型(1=锦旗 2=感谢信)',
    `giver`                 VARCHAR(100)          COMMENT '赠予方',
    `content_desc`          VARCHAR(500)          COMMENT '内容描述',
    `add_score`             DECIMAL(10,2)         COMMENT '加分',
    `evidence_file`         VARCHAR(500)          COMMENT '佐证附件URL',
    `remark`                VARCHAR(500)          COMMENT '备注',
    `create_by`             VARCHAR(64)           COMMENT '创建者',
    `create_time`           DATETIME              COMMENT '创建时间',
    `update_by`             VARCHAR(64)           COMMENT '更新者',
    `update_time`           DATETIME              COMMENT '更新时间',
    `del_flag`              CHAR(1) DEFAULT '0'   COMMENT '删除标志(0正常 2删除)',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='锦旗及感谢信记录（页面录入）';

-- 台账导入记录表（记录每次批量导入的元数据）
CREATE TABLE IF NOT EXISTS `ledger_import_log` (
    `id`                    BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '主键',
    `batch_no`              VARCHAR(50)  NOT NULL COMMENT '批次号',
    `ledger_type`           VARCHAR(50)           COMMENT '台账类型(supervision_problem/patrol_inspection/...)',
    `file_name`             VARCHAR(200)          COMMENT '原始文件名',
    `file_path`             VARCHAR(500)          COMMENT '文件存储路径',
    `total_rows`            INT DEFAULT 0         COMMENT '总行数',
    `success_rows`          INT DEFAULT 0         COMMENT '成功行数',
    `fail_rows`             INT DEFAULT 0         COMMENT '失败行数',
    `status`                CHAR(1) DEFAULT '0'   COMMENT '状态(0=处理中 1=成功 2=部分失败 3=失败)',
    `error_msg`             TEXT                  COMMENT '错误信息',
    `create_by`             VARCHAR(64)           COMMENT '导入人',
    `create_time`           DATETIME              COMMENT '导入时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_batch_no` (`batch_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='台账导入记录日志';
