-- 疫苗接种数据填报（物理删除；全量覆盖建表）
-- 唯一键：uk_year_month_village (stat_year, stat_month, village_dept_id)
-- 派生落库：immunity_rate = (实免数/应免数)*100，保留2位小数（如 98.33）
DROP TABLE IF EXISTS `biz_vaccination_data`;
CREATE TABLE `biz_vaccination_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `stat_year` int(11) NOT NULL COMMENT '所属年份',
  `stat_month` int(11) NOT NULL COMMENT '所属月份(1-12)',
  `town_dept_id` bigint(20) NOT NULL COMMENT '所属乡镇dept_id',
  `town_name` varchar(64) NOT NULL COMMENT '乡镇名称',
  `village_dept_id` bigint(20) NOT NULL COMMENT '所属村dept_id',
  `village_name` varchar(128) NOT NULL COMMENT '所属村名称',
  `should_vaccinate_count` int(11) DEFAULT NULL COMMENT '应免数(头)',
  `actual_vaccinate_count` int(11) DEFAULT NULL COMMENT '实免数(头)',
  `immunity_rate` decimal(8,2) DEFAULT NULL COMMENT '免疫率=(实免数/应免数)*100，保留2位小数',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_year_month_village` (`stat_year`, `stat_month`, `village_dept_id`),
  KEY `idx_stat_year_month` (`stat_year`, `stat_month`),
  KEY `idx_town_dept_id` (`town_dept_id`),
  KEY `idx_village_dept_id` (`village_dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='疫苗接种数据填报';
