西藏巴青项目

检疫站管理技术方案.md 7.9KB

检疫站管理 — 技术方案

依据:同目录 检疫站管理功能需求.md。检疫站 CRUD + 单图照片 + 逻辑删除;列表名称模糊运营状态精确筛选;不含地图标点。


1. 技术架构

说明
后端 RuoYi v3.9.2springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid
数据库 MySQL 5.7.39,InnoDB,utf8mb4
前端 若依 Vue2;照片上传复用 POST /common/upload(本方案不展开页面)

分层ControllerServiceQuarantineStationValidation、删旧照片)→ 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

2. 数据库设计

2.1 表 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_namedel_flag=0 范围内由 Service 校验唯一(不设库级唯一索引,避免逻辑删除后无法复用名称;若产品要求物理唯一可另议)。

2.2 DDL(MySQL 5.7)

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='检疫站';

2.3 枚举

运营状态 operate_status

标签
1 正常
2 停业
3 注销

删除标记 del_flag

含义
0 正常
2 已逻辑删除

3. 接口设计

统一响应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

3.1.1 列表 Query

参数 类型 必填 说明
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

3.2.1 详情 data

idstationNamedetailAddresspersonInChargecontactPhoneoperateStatusoperateStatusNamephotoFileUrlphotoFilePath、审计字段。

3.3.1 新增 / 修改 Body(驼峰)

字段 新增 修改 说明
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 成对;可空表示无图

3.4 照片约定

  1. 前端先调 POST /common/upload,将返回的 urlfileName 写入 photoFileUrlphotoFilePath
  2. 修改替换或逻辑删除时,Service 删除旧 photo_file_path 物理文件(路径校验与项目一致)。

3.5 服务端校验(QuarantineStationValidation

规则
名称 trim 后 1~10 字;未删除记录内名称唯一
详细地址 trim 后 1~200 字
负责人 trim 后 1~10 字
手机 项目统一手机号规则
运营状态 ∈ {1, 2, 3}
照片 可空;后缀 jpg/jpeg/png;≤10MB;url/path 成对
删除 未删;QuarantineStationReferenceChecker.hasReference(id) 为 false(本期可占位 false

3.6 Mapper 约定

  • 条件均带 del_flag='0'
  • 模糊:AND station_name LIKE CONCAT('%', #{stationName}, '%')
  • 精确:AND operate_status = #{operateStatus}(非空时)
  • 逻辑删除:UPDATE … SET del_flag='2' WHERE id=? AND del_flag='0'

4. 菜单与权限(示例)

类型 名称 权限标识
菜单 检疫站管理 livestock:quarantineStation:list
按钮 查询 livestock:quarantineStation:query
按钮 新增 livestock:quarantineStation:add
按钮 修改 livestock:quarantineStation:edit
按钮 删除 livestock:quarantineStation:remove

组件路径:livestock/quarantineStation/index(「畜牧流通资源管理」目录下)。


5. 与牧场管理对照

牧场 biz_pasture 检疫站 biz_quarantine_station
Base Path /dataModel/pasture /livestock/quarantineStation
状态字段 biz_status operate_status
列表筛选 名称模糊 + 性质/状态 名称模糊 + 运营状态
区划/证件
地图 本期无 本期无

6. 交付清单

  • sql/biz_quarantine_station.sql、菜单权限 SQL
  • BizQuarantineStation、Mapper/XML、Service、Controller
  • QuarantineStationValidation、照片文件清理
  • 单元测试(校验、名称唯一、模糊 SQL)
  • MockMvc(list、CRUD、删除有关联)

7. 修订记录

版本 说明
1.0 初稿:biz_quarantine_station;CRUD+逻辑删除+单图;/livestock/quarantineStation;名称模糊+运营状态精确