依据:同目录
疫情上报功能需求.md。本模块为疫情台账 CRUD + 解除;处置状态由release_date是否为空推导。
| 项 | 说明 |
|---|---|
| 后端 | RuoYi v3.9.2(springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid |
| 数据库 | MySQL 5.7.39,InnoDB,utf8mb4 |
| 前端 | 若依 Vue2;日期 YYYY-MM-DD;枚举用字典或固定选项(与需求 §2 一致) |
| 代码包 | com.ruoyi.web.modules.diseasedetection(建议) |
分层:Controller(权限、AjaxResult / TableDataInfo)→ Service(枚举/日期校验、未解除才可改/解除)→ Mapper/XML → domain。
业务特征(摘要)
release_date 为空 → 未解除:可改、可解除、可删。release_date 非空 → 已解除:禁止改、禁止再次解除;可删。report_date DESC, create_time DESC, id DESC。transmission_route、risk_level 精确匹配(可空)。biz_epidemic_report(疫情上报)| 字段 | 类型 | 非空 | 说明 |
|---|---|---|---|
id |
bigint(20) |
Y | 主键 |
report_date |
date |
Y | 上报日期 |
transmission_route |
tinyint(2) |
Y | 传播途径,见 §2.3 |
affected_location_track |
varchar(500) |
Y | 涉疫点位/轨迹 |
epidemic_type |
tinyint(2) |
Y | 疫病类型,见 §2.3 |
epidemic_name |
varchar(50) |
Y | 疫病名称 |
risk_level |
tinyint(2) |
Y | 风险等级,见 §2.3 |
release_date |
date |
N | 解除日期;NULL=未解除 |
create_by / create_time / update_by / update_time |
若依惯例 | — | 审计 |
remark |
varchar(500) |
N | 备注(选填,扩展用) |
索引:PRIMARY KEY (id);KEY idx_report_date (report_date);KEY idx_transmission_route (transmission_route);KEY idx_risk_level (risk_level);KEY idx_release_date (release_date)。
处置状态(不落库):release_date IS NULL → 未解除;否则已解除。列表/详情可冗余返回 relieveStatus:0 未解除 / 1 已解除。
CREATE TABLE `biz_epidemic_report` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`report_date` date NOT NULL COMMENT '上报日期',
`transmission_route` tinyint(2) NOT NULL COMMENT '传播途径1调运2本地3环境4其他',
`affected_location_track` varchar(500) NOT NULL COMMENT '涉疫点位轨迹',
`epidemic_type` tinyint(2) NOT NULL COMMENT '疫病类型1病毒2细菌3寄生虫4其他',
`epidemic_name` varchar(50) NOT NULL COMMENT '疫病名称',
`risk_level` tinyint(2) NOT NULL COMMENT '风险等级1高2中3低',
`release_date` date DEFAULT NULL COMMENT '解除日期NULL未解除',
`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`),
KEY `idx_report_date` (`report_date`),
KEY `idx_transmission_route` (`transmission_route`),
KEY `idx_risk_level` (`risk_level`),
KEY `idx_release_date` (`release_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='疫情上报';
传播途径 transmission_route
| 值 | 标签 |
|---|---|
| 1 | 调运传入 |
| 2 | 本地扩散 |
| 3 | 环境感染 |
| 4 | 其他未知 |
疫病类型 epidemic_type
| 值 | 标签 |
|---|---|
| 1 | 病毒性疫病 |
| 2 | 细菌性疫病 |
| 3 | 寄生虫疫病 |
| 4 | 其他类疫病 |
风险等级 risk_level
| 值 | 标签 |
|---|---|
| 1 | 高危 |
| 2 | 中危 |
| 3 | 低危 |
前后端展示走数据字典(
sys_dict)或前端 i18n 均可;入库必须为上表编码,非法值拒绝。
| 需求名称 | 库字段 | API 驼峰 |
|---|---|---|
| 上报日期 | report_date |
reportDate |
| 传播途径 | transmission_route |
transmissionRoute |
| 涉疫点位/轨迹 | affected_location_track |
affectedLocationTrack |
| 疫病类型 | epidemic_type |
epidemicType |
| 疫病名称 | epidemic_name |
epidemicName |
| 风险等级 | risk_level |
riskLevel |
| 解除日期 | release_date |
releaseDate |
| 处置状态(派生) | — | relieveStatus(0 未解除 / 1 已解除) |
统一响应:AjaxResult 或分页 TableDataInfo(rows、total)。
权限标识(示例):diseaseDetection:epidemicReport:list|query|add|edit|remove|relieve
Base Path(示例):/diseaseDetection/epidemicReport
| # | 说明 | Method | URI | 权限 | 要点 |
|---|---|---|---|---|---|
| 3.1 | 分页列表 | GET | /diseaseDetection/epidemicReport/list |
...:list |
Query §3.1.1;排序见 §1 |
| 3.2 | 详情 | GET | /diseaseDetection/epidemicReport/{id} |
...:query |
含 relieveStatus |
| 3.3 | 新增 | POST | /diseaseDetection/epidemicReport |
...:add |
Body §3.3.1;releaseDate 忽略 |
| 3.4 | 修改 | PUT | /diseaseDetection/epidemicReport |
...:edit |
Body 含 id;仅 release_date IS NULL |
| 3.5 | 删除 | DELETE | /diseaseDetection/epidemicReport/{ids} |
...:remove |
逗号分隔;已/未解除均可 |
| 3.6 | 解除 | PUT | /diseaseDetection/epidemicReport/relieve |
...:relieve |
Body:§3.6.1;仅未解除 |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pageNum / pageSize |
int | N | 默认 1 / 20 |
transmissionRoute |
int | N | 传播途径编码,精确匹配 |
riskLevel |
int | N | 风险等级编码,精确匹配 |
relieveStatus |
int | N | 可选:0 未解除(release_date IS NULL),1 已解除 |
列表行(示例):id、reportDate、transmissionRoute、epidemicType、epidemicName、riskLevel、affectedLocationTrack(可截断)、relieveStatus、releaseDate、createTime。
| 字段 | 新增 | 修改 | 说明 |
|---|---|---|---|
id |
— | Y | 主键 |
reportDate |
Y | Y | YYYY-MM-DD |
transmissionRoute |
Y | Y | 1~4 |
affectedLocationTrack |
Y | Y | 1~500 字 |
epidemicType |
Y | Y | 1~4 |
epidemicName |
Y | Y | 1~50 字 |
riskLevel |
Y | Y | 1~3 |
releaseDate |
— | — | 不得经新增/修改写入;仅 §3.6 |
| 字段 | 必填 | 说明 |
|---|---|---|
id |
Y | 疫情上报主键 |
releaseDate |
Y | YYYY-MM-DD;≥ report_date;默认不允许未来日期(与需求一致) |
解除逻辑:校验未解除 → 更新 release_date、update_by/time → 返回成功。
| 项 | 规则 |
|---|---|
| 枚举 | transmissionRoute、epidemicType、riskLevel 须在 §2.3 范围内 |
| 日期 | reportDate 合法;解除时 releaseDate >= reportDate |
| 修改 | 若 release_date 非空 → 业务失败(已解除不可修改) |
| 解除 | 若 release_date 非空 → 业务失败(不可重复解除) |
| 删除 | 无状态限制 |
| 类型 | 名称 | 权限标识 |
|---|---|---|
| 目录/菜单 | 疫情上报 | diseaseDetection:epidemicReport:list |
| 按钮 | 查询 | diseaseDetection:epidemicReport:query |
| 按钮 | 新增 | diseaseDetection:epidemicReport:add |
| 按钮 | 修改 | diseaseDetection:epidemicReport:edit |
| 按钮 | 删除 | diseaseDetection:epidemicReport:remove |
| 按钮 | 解除 | diseaseDetection:epidemicReport:relieve |
组件路径建议:diseaseDetection/epidemicReport/index;API 文件 ruoyi-ui/src/api/diseaseDetection/epidemicReport.js。
sql/biz_epidemic_report.sql、字典数据(三类枚举)、菜单权限 SQLBizEpidemicReport Domain / Mapper / Service / Controller| 版本 | 说明 |
|---|---|
| 1.0 | 初稿:单表;release_date 驱动处置状态;CRUD + relieve 接口 |