西藏巴青项目

牧场管理技术方案.md 5.2KB

牧场管理 — 技术方案

依据:同目录 牧场管理功能需求.md。第三方同步 + 分页列表 + 只读详情;不含手工 CRUD、地图标点。


1. 技术架构

说明
后端 RuoYi v3.9.2springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid
数据库 MySQL 5.7.39,InnoDB,utf8mb4
前端 若依 Vue2
第三方 生产管理系统开放接口 GET /open-api/v1/farming/farms(Apifox 文档见需求草稿)

分层ControllerService(列表/详情)→ PastureSyncService(同步编排)→ PastureSyncTxService(单条事务)→ ThirdPartyFarmClientMapper/XML。

代码位置baqing-admincom.ruoyi.web.modules.industryserviceBizPasture*PastureSync*ThirdPartyFarm*)。

业务摘要

场景 行为
同步 分页拉取第三方养殖场;按 external_id upsert;data_source=third_party
列表/详情 del_flag=0;排序 create_time DESC, id DESC;可按角色脱敏手机
并发 AtomicBoolean 防重入;重复同步抛「正在同步,请稍候」

配置application.ymlthird-party.farming,与牦牛资产等同源)

说明
enabled 是否启用同步
mode stub:classpath thirdparty/stub-farms.jsonhttp:远程接口
base-url 第三方根地址(http 模式)
app-key / app-secret 请求头 X-App-Key / X-App-Secret
page-size 分页大小,最大 200

2. 数据库设计

2.1 表 biz_pasture(类型对齐 OpenFarmVo)

接口字段 OpenAPI 类型 库字段 MySQL 类型
id integer / int64 external_id bigint(20)
farmName string pasture_name varchar(128)
farmType string farm_type varchar(64)
introduction string introduction text
latitude number latitude double
longitude number longitude double
address string detail_address varchar(512)
person string person_in_charge varchar(64)
contactPhone string contact_phone varchar(32)
county string county varchar(128)
town string town varchar(128)
floorArea string floor_area varchar(128)
scaleBreeding string scale_breeding varchar(128)
breedSpecies string breed_species varchar(256)
createTime string create_time datetime
remarks string remark varchar(1000)

本地字段:id(自增主键)、data_sourcelast_sync_timedel_flag、审计字段。

DDLsql/biz_pasture.sql(新库);已有旧表先 sql/biz_pasture_sync_alter.sql 加列,再 sql/biz_pasture_drop_legacy_columns.sql 删历史列;刷新注释用 sql/biz_pasture_comment_alter.sql

索引uk_external_ididx_pasture_nameidx_farm_typeidx_create_time


3. 接口设计

统一响应AjaxResultcode / msg / data)或分页 TableDataInforowstotal)。

权限标识dataModel:pasture:list|query|sync

Base Path/dataModel/pasture

# 说明 Method URI 权限 要点
3.1 分页列表 GET /list dataModel:pasture:list Query 3.1.1
3.2 详情 GET /{id} dataModel:pasture:query 全字段
3.3 同步 POST /sync dataModel:pasture:sync 返回 YakAssetSyncResultVo 结构

3.1.1 列表 Query

参数 类型 必填 说明
pageNum / pageSize int N 默认 1 / 20
keyword string N 牧场名称模糊
farmType string N 1 / 2 精确(对应 OpenFarmVo.farmType)

3.3.1 同步响应 data

字段 说明
insertCount 新增条数
updateCount 更新条数
failCount 失败条数
failMessages 失败明细
syncTime 同步完成时间

3.4 第三方开放接口(对接)

Method GET
Path /open-api/v1/farming/farms
Query pageNumpageSize(≤200)、可选 updatedAfterfarmNamefarmType
Header X-App-KeyX-App-Secret
响应 code=0 成功;data.recordsOpenFarmVo 列表

4. 菜单与权限(示例)

类型 名称 权限标识
菜单 牧场管理 dataModel:pasture:list
按钮 查询 dataModel:pasture:query
按钮 同步 dataModel:pasture:sync

组件路径:dataModel/pasture/index


5. 交付清单

  • sql/biz_pasture.sqlsql/biz_pasture_sync_alter.sql
  • BizPasture Domain / Mapper / Service / Controller
  • ThirdPartyFarmClientPastureSyncServicePastureSyncTxService
  • thirdparty/stub-farms.jsonthird-party.farming 配置
  • 单元测试 / MockMvc(列表、详情、同步)

6. 修订记录

版本 说明
1.0 初稿:本地 CRUD + 逻辑删除
2.0 对齐草稿:第三方同步;扩展表字段;移除 add/edit/remove 接口