依据:同目录
草场管理功能需求.md。草场台账 CRUD + 逻辑删除;不含地图标点、附件上传。
| 项 | 说明 |
|---|---|
| 后端 | RuoYi v3.9.2(springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid |
| 数据库 | MySQL 5.7.39,InnoDB,utf8mb4 |
| 前端 | 若依 Vue2(本方案不展开页面实现) |
分层:Controller(@PreAuthorize、AjaxResult / TableDataInfo)→ Service(GrasslandValidation 业务校验)→ Mapper/XML → domain。
代码位置(建议):baqing-admin → com.ruoyi.web.modules.industryservice(与「牧场管理」同模块:BizGrassland、Mapper、Service、Controller)。
业务摘要
| 场景 | 行为 |
|---|---|
| 新增 | 校验 §3.5;del_flag='0' |
| 修改 | 全字段可改;重新校验;update 带 del_flag='0' 条件 |
| 列表/详情 | 仅 del_flag='0';排序 create_time DESC, id DESC |
| 删除 | 逻辑删除:del_flag 置 '2'(若依惯例) |
biz_grassland(草场)| 字段 | 类型 | 非空 | 默认值 | 说明 |
|---|---|---|---|---|
id |
bigint(20) |
Y | 自增 | 主键 |
grassland_name |
varchar(32) |
Y | — | 草场名称(需求 1~10 字) |
area_mu |
decimal(12,2) |
Y | — | 面积(亩),> 0 |
grazing_ban_area |
decimal(12,2) |
N | NULL | 禁牧面积(亩),有值须 > 0 |
grass_balance_area |
decimal(12,2) |
N | NULL | 草畜平衡面积(亩),有值须 > 0 |
degradation_level |
tinyint(4) |
N | NULL | 退化等级 §2.2 |
utilization_type |
tinyint(4) |
N | NULL | 利用类型 §2.2 |
grass_yield_per_mu |
decimal(12,2) |
N | NULL | 亩产草量(kg/亩),有值须 > 0 |
utilization_rate |
decimal(5,4) |
N | NULL | 利用率 0~1(闭区间) |
grazing_ban_start_date |
date |
N | NULL | 禁牧开始日期(与结束成对) |
grazing_ban_end_date |
date |
N | NULL | 禁牧结束日期;有值时 ≥ 开始日 |
rotation_plot_count |
int(11) |
N | NULL | 轮牧小区数量(块),有值须 ≥ 1 |
rotation_grazing_days |
int(11) |
N | NULL | 小区放牧天数(天),有值须 ≥ 1 |
rotation_cycle_days |
int(11) |
N | NULL | 轮牧周期(天),有值须 ≥ 1 |
del_flag |
char(1) |
Y | '0' |
0 存在 2 删除 |
create_by / create_time / update_by / update_time |
若依惯例 | — | — | 审计 |
remark |
varchar(200) |
N | NULL | 备注(≤100 字) |
索引:PRIMARY KEY (id);KEY idx_grassland_name (grassland_name);KEY idx_utilization_type (utilization_type);KEY idx_degradation_level (degradation_level);KEY idx_create_time (create_time);KEY idx_del_flag (del_flag)。
DDL(MySQL 5.7):见 sql/biz_grassland.sql;已有库升级见 sql/biz_grassland_fields_alter.sql。
| 字段 | 值 | 含义 |
|---|---|---|
degradation_level |
1 |
未退化 |
2 |
轻度 | |
3 |
中度 | |
4 |
重度 | |
5 |
极重度 | |
utilization_type |
1 |
禁牧 |
2 |
轮牧 | |
3 |
全年放牧 | |
del_flag |
0 |
正常 |
2 |
已逻辑删除 |
统一响应:AjaxResult(code / msg / data)或分页 TableDataInfo(rows、total)。
权限标识:dataModel:grassland:list|query|add|edit|remove|export
Base Path:/dataModel/grassland
| # | 说明 | Method | URI | 权限 | 要点 |
|---|---|---|---|---|---|
| 3.1 | 分页列表 | GET | /dataModel/grassland/list |
dataModel:grassland:list |
Query 3.1.1;del_flag='0';create_time DESC, id DESC |
| 3.2 | 详情 | GET | /dataModel/grassland/{id} |
dataModel:grassland:query |
全字段;del_flag='0',否则无数据 |
| 3.3 | 新增 | POST | /dataModel/grassland |
dataModel:grassland:add |
Body 3.3.1;del_flag='0' |
| 3.4 | 修改 | PUT | /dataModel/grassland |
dataModel:grassland:edit |
Body 含 id;全量校验 |
| 3.5 | 删除 | DELETE | /dataModel/grassland/{ids} |
dataModel:grassland:remove |
逻辑删除;ids 逗号分隔批量 |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pageNum / pageSize |
int | N | 默认 1 / 20 |
keyword |
string | N | 草场名称模糊;空不过滤 |
utilizationType |
int | N | 1~3 精确;空不过滤 |
degradationLevel |
int | N | 1~5 精确(可选扩展筛选项);空不过滤 |
| 字段 | 必填 | 说明 |
|---|---|---|
id |
修改 Y | 主键 |
grasslandName |
Y | 1~10 字符 |
areaMu |
Y | 正数(亩) |
grazingBanArea |
N | 正数(亩);空不校验 |
grassBalanceArea |
N | 正数(亩);空不校验 |
degradationLevel |
N | 1~5;空不校验 |
utilizationType |
N | 1~3;空不校验 |
grassYieldPerMu |
N | 正数(kg/亩);空不校验 |
utilizationRate |
N | 0~1(含端点);空不校验 |
grazingBanStartDate |
N | yyyy-MM-dd;与结束成对 |
grazingBanEndDate |
N | yyyy-MM-dd;有值时 ≥ grazingBanStartDate |
rotationPlotCount |
N | 正整数(块);空不校验 |
rotationGrazingDays |
N | 正整数(天);空不校验 |
rotationCycleDays |
N | 正整数(天);空不校验 |
remark |
N | ≤100 字 |
列表行字段(示例):id、grasslandName、areaMu、grazingBanArea、grassBalanceArea、degradationLevel、utilizationType、grassYieldPerMu、utilizationRate、grazingBanStartDate、grazingBanEndDate、rotationPlotCount、rotationGrazingDays、rotationCycleDays、createTime。
日期序列化:JSON 使用 yyyy-MM-dd;与若依 JsonFormat / 全局 Jackson 配置一致。
and del_flag = '0'。update biz_grassland set del_flag='2', update_by=?, update_time=now() where del_flag='0' and id in (...)。selectByIdAny(不过滤 del_flag),用于审计或幂等。| 项 | 规则 |
|---|---|
| 草场名称 | 必填;1~10 字符 |
| 面积 | 必填;> 0 |
| 禁牧面积 / 草畜平衡面积 | 选填;有值须 > 0 |
| 退化等级 | 选填;有值 ∈ {1, 2, 3, 4, 5} |
| 利用类型 | 选填;有值 ∈ {1, 2, 3} |
| 亩产草量 | 选填;有值须 > 0 |
| 利用率 | 选填;有值 0 ≤ x ≤ 1 |
| 禁牧日期 | 选填;同时有值或同时为空;有值时 start ≤ end |
| 轮牧三项 | 选填;有值均为 ≥ 1 的整数 |
| 备注 | 可空;有值 ≤100 字 |
校验类建议:GrasslandRules(枚举常量)、GrasslandValidation(validateRowForSave)。
| 类型 | 名称 | 权限标识 |
|---|---|---|
| 菜单 | 草场管理 | dataModel:grassland:list |
| 按钮 | 查询 | dataModel:grassland:query |
| 按钮 | 新增 | dataModel:grassland:add |
| 按钮 | 修改 | dataModel:grassland:edit |
| 按钮 | 删除 | dataModel:grassland:remove |
| 按钮 | 导出 | dataModel:grassland:export |
组件路径建议:dataModel/grassland/index(菜单挂载在「产业数据模型及体系」下)。
sql/biz_grassland.sql、菜单与按钮权限 SQLBizGrassland Domain / Mapper / XML / Service / ControllerGrasslandRules、GrasslandValidation| 版本 | 说明 |
|---|---|
| 1.0 | 初稿:对齐功能需求;biz_grassland;逻辑删除 del_flag;无地图与附件接口 |
| 1.1 | 新增禁牧面积、草畜平衡面积;除名称与面积外字段改为可空/选填 |