疫苗接种数据填报 — 技术方案
1. 概述
对齐牦牛出栏数据填报骨架:村 × 年月唯一键、导入 upsert、导出按官方模板填充。
| 项 |
值 |
| 表 |
biz_vaccination_data(DDL:sql/biz_vaccination_data.sql) |
| Base URL |
/dataModel/vaccinationData |
| 模板 classpath |
templates/vaccination_data_import_template.xlsx |
| 唯一键 |
(stat_year, stat_month, village_dept_id) |
2. 数据模型
| 字段 |
说明 |
| should_vaccinate_count |
应免数(头) |
| actual_vaccinate_count |
实免数(头) |
| immunity_rate |
派生:(实免/应免)×100,保留 2 位小数,decimal(8,2) |
Excel 列:0 序号、1 乡镇、2 村、3 应免数、4 实免数、5 免疫率(导入跳过)。
3. 后端结构
| 类 |
职责 |
BizVaccinationDataController |
REST |
BizVaccinationDataServiceImpl |
CRUD、导入 upsert、导出 |
VaccinationDataExcelParser |
识别主表头,跳过子表头/空白/合计 |
VaccinationDataExcelExporter |
基于模板写数据 |
VaccinationDataDerivedSupport |
免疫率计算与百分比格式化 |
VaccinationDataValidation |
年月/村校验、非负整数、实免≤应免硬校验 |
4. 接口一览
| 方法 |
路径 |
权限 |
| GET |
/list |
list |
| GET |
/{id} |
query |
| POST |
/ |
add |
| PUT |
/ |
edit |
| DELETE |
/{ids} |
remove |
| GET |
/yearOptions /monthOptions /townOptions /villageTree |
list |
| POST |
/importData |
import |
| GET |
/importTemplate |
import |
| GET |
/export |
export |
5. 前端
- 页面:
ruoyi-ui/src/views/dataModel/vaccinationData/index.vue
- API:
ruoyi-ui/src/api/dataModel/vaccinationData.js
- i18n:
dataModel.vaccinationData(zh/bo)