依据:同目录
检疫站管理功能需求.md。检疫站 CRUD + 单图照片 + 逻辑删除;列表名称模糊、运营状态精确筛选;不含地图标点。
| 项 | 说明 |
|---|---|
| 后端 | RuoYi v3.9.2(springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid |
| 数据库 | MySQL 5.7.39,InnoDB,utf8mb4 |
| 前端 | 若依 Vue2;照片上传复用 POST /common/upload(本方案不展开页面) |
分层:Controller → Service(QuarantineStationValidation、删旧照片)→ Mapper/XML → domain。
代码包(建议):com.ruoyi.web.modules.livestock
业务摘要
| 场景 | 行为 |
|---|---|
| 新增 | 校验必填;operate_status 缺省 1(正常);del_flag=0 |
| 修改 | 全字段可改;换照片删旧 photo_file_path |
| 列表/详情 | 仅 del_flag=0;排序 create_time DESC, id DESC |
| 列表筛选 | station_name 模糊;operate_status 精确 |
| 删除 | del_flag=2;删照片文件;有关联时 ServiceException |
biz_quarantine_station(检疫站)| 字段 | 类型 | 非空 | 默认值 | 说明 |
|---|---|---|---|---|
id |
bigint(20) |
Y | 自增 | 主键 |
station_name |
varchar(32) |
Y | — | 检疫站名称(1~10 字) |
detail_address |
varchar(200) |
Y | — | 详细地址(1~200 字) |
person_in_charge |
varchar(32) |
Y | — | 负责人(1~10 字) |
contact_phone |
varchar(20) |
Y | — | 联系方式(手机号) |
operate_status |
tinyint(4) |
Y | 1 |
1 正常 2 停业 3 注销 |
photo_file_url |
varchar(512) |
N | NULL | 照片访问 URL |
photo_file_path |
varchar(512) |
N | NULL | 照片存储路径(/profile/...) |
del_flag |
char(1) |
Y | '0' |
0 存在 2 删除 |
create_by / create_time / update_by / update_time |
若依惯例 | — | — | 审计 |
索引:PRIMARY KEY (id);KEY idx_station_name (station_name);KEY idx_operate_status (operate_status);KEY idx_create_time (create_time);KEY idx_del_flag (del_flag)。
名称唯一:
station_name在del_flag=0范围内由 Service 校验唯一(不设库级唯一索引,避免逻辑删除后无法复用名称;若产品要求物理唯一可另议)。
CREATE TABLE `biz_quarantine_station` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`station_name` varchar(32) NOT NULL COMMENT '检疫站名称',
`detail_address` varchar(200) NOT NULL COMMENT '详细地址',
`person_in_charge` varchar(32) NOT NULL COMMENT '负责人',
`contact_phone` varchar(20) NOT NULL COMMENT '联系方式',
`operate_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1正常 2停业 3注销',
`photo_file_url` varchar(512) DEFAULT NULL COMMENT '照片URL',
`photo_file_path` varchar(512) DEFAULT NULL COMMENT '照片存储路径',
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '0存在 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 '更新时间',
PRIMARY KEY (`id`),
KEY `idx_station_name` (`station_name`),
KEY `idx_operate_status` (`operate_status`),
KEY `idx_create_time` (`create_time`),
KEY `idx_del_flag` (`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='检疫站';
运营状态 operate_status
| 值 | 标签 |
|---|---|
| 1 | 正常 |
| 2 | 停业 |
| 3 | 注销 |
删除标记 del_flag
| 值 | 含义 |
|---|---|
| 0 | 正常 |
| 2 | 已逻辑删除 |
统一响应:AjaxResult / TableDataInfo。
权限标识:livestock:quarantineStation:list|query|add|edit|remove
Base Path:/livestock/quarantineStation
| # | 说明 | Method | URI | 权限 |
|---|---|---|---|---|
| 3.1 | 分页列表 | GET | /livestock/quarantineStation/list |
list |
| 3.2 | 详情 | GET | /livestock/quarantineStation/{id} |
query |
| 3.3 | 新增 | POST | /livestock/quarantineStation |
add |
| 3.4 | 修改 | PUT | /livestock/quarantineStation |
edit |
| 3.5 | 删除 | DELETE | /livestock/quarantineStation/{ids} |
remove |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pageNum / pageSize |
int | N | 默认 1 / 20 |
stationName |
string | N | 名称模糊:station_name LIKE %value% |
operateStatus |
int | N | 精确:1 / 2 / 3 |
列表行扩展(驼峰):operateStatusName(字典或 Service 填充)。
排序:create_time DESC, id DESC。
dataid、stationName、detailAddress、personInCharge、contactPhone、operateStatus、operateStatusName、photoFileUrl、photoFilePath、审计字段。
| 字段 | 新增 | 修改 | 说明 |
|---|---|---|---|
id |
— | Y | 主键 |
stationName |
Y | Y | 1~10 字,trim |
detailAddress |
Y | Y | 1~200 字 |
personInCharge |
Y | Y | 1~10 字 |
contactPhone |
Y | Y | 大陆手机号 |
operateStatus |
Y | Y | 1 / 2 / 3;新增缺省 1 |
photoFileUrl / photoFilePath |
N | N | 成对;可空表示无图 |
POST /common/upload,将返回的 url、fileName 写入 photoFileUrl、photoFilePath。photo_file_path 物理文件(路径校验与项目一致)。QuarantineStationValidation)| 项 | 规则 |
|---|---|
| 名称 | trim 后 1~10 字;未删除记录内名称唯一 |
| 详细地址 | trim 后 1~200 字 |
| 负责人 | trim 后 1~10 字 |
| 手机 | 项目统一手机号规则 |
| 运营状态 | ∈ {1, 2, 3} |
| 照片 | 可空;后缀 jpg/jpeg/png;≤10MB;url/path 成对 |
| 删除 | 未删;QuarantineStationReferenceChecker.hasReference(id) 为 false(本期可占位 false) |
del_flag='0'。AND station_name LIKE CONCAT('%', #{stationName}, '%')AND operate_status = #{operateStatus}(非空时)UPDATE … SET del_flag='2' WHERE id=? AND del_flag='0'。| 类型 | 名称 | 权限标识 |
|---|---|---|
| 菜单 | 检疫站管理 | livestock:quarantineStation:list |
| 按钮 | 查询 | livestock:quarantineStation:query |
| 按钮 | 新增 | livestock:quarantineStation:add |
| 按钮 | 修改 | livestock:quarantineStation:edit |
| 按钮 | 删除 | livestock:quarantineStation:remove |
组件路径:livestock/quarantineStation/index(「畜牧流通资源管理」目录下)。
| 项 | 牧场 biz_pasture |
检疫站 biz_quarantine_station |
|---|---|---|
| Base Path | /dataModel/pasture |
/livestock/quarantineStation |
| 状态字段 | biz_status |
operate_status |
| 列表筛选 | 名称模糊 + 性质/状态 | 名称模糊 + 运营状态 |
| 区划/证件 | 有 | 无 |
| 地图 | 本期无 | 本期无 |
sql/biz_quarantine_station.sql、菜单权限 SQLBizQuarantineStation、Mapper/XML、Service、ControllerQuarantineStationValidation、照片文件清理| 版本 | 说明 |
|---|---|
| 1.0 | 初稿:biz_quarantine_station;CRUD+逻辑删除+单图;/livestock/quarantineStation;名称模糊+运营状态精确 |