|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+# 家庭牧场数据填报 — 技术方案
|
|
|
2
|
+
|
|
|
3
|
+## 1. 接口
|
|
|
4
|
+
|
|
|
5
|
+Base Path:`/dataModel/familyRanch`
|
|
|
6
|
+
|
|
|
7
|
+| 方法 | 路径 | 权限 |
|
|
|
8
|
+| --- | --- | --- |
|
|
|
9
|
+| GET | `/list` | list |
|
|
|
10
|
+| GET | `/{id}` | query |
|
|
|
11
|
+| POST | `/` | add |
|
|
|
12
|
+| PUT | `/` | edit |
|
|
|
13
|
+| DELETE | `/{ids}` | remove |
|
|
|
14
|
+| GET | `/yearOptions` `/monthOptions` `/townOptions` `/villageTree` | list |
|
|
|
15
|
+| POST | `/importData` | import |
|
|
|
16
|
+| GET | `/importTemplate` | import |
|
|
|
17
|
+| GET | `/export?statYear=&statMonth=&townDeptId=` | export |
|
|
|
18
|
+
|
|
|
19
|
+## 2. 表结构
|
|
|
20
|
+
|
|
|
21
|
+见 `sql/biz_family_ranch.sql`:
|
|
|
22
|
+
|
|
|
23
|
+- `biz_family_ranch`:业务主表;唯一键 `(stat_year, stat_month, village_dept_id, enterprise_name)`
|
|
|
24
|
+- 草畜失衡预警:**复用** `biz_yak_disease_warning`
|
|
|
25
|
+ - `warning_type = 6`(草畜失衡)
|
|
|
26
|
+ - `data_source = family_ranch`
|
|
|
27
|
+ - `device_no = FR-{ranchId}`(定位/去重)
|
|
|
28
|
+ - `pasture_name` = 企业名称;`measured_value` = 存栏绵羊单位;`reference_range` = 核定载畜量
|
|
|
29
|
+ - 失衡 upsert;平衡或删除牧场记录时按 `data_source + device_no` 删除
|
|
|
30
|
+
|
|
|
31
|
+## 3. Excel
|
|
|
32
|
+
|
|
|
33
|
+| 项 | 说明 |
|
|
|
34
|
+| --- | --- |
|
|
|
35
|
+| 模板 | `templates/family_ranch_import_template.xlsx` |
|
|
|
36
|
+| 表头识别 | 含「乡镇名称」「村居名称」;`HEADER_SPAN=3` |
|
|
|
37
|
+| 列序 | 乡镇在前、村在后;企业名称第 4 列(0-based index 3) |
|
|
|
38
|
+| 导入跳过 | 存栏小计、草场面积小计、是否草畜平衡、利润(由系统计算后导出回写) |
|
|
|
39
|
+| 导出 | 无合计行;填表人替换模板「登录用户名称」 |
|
|
|
40
|
+
|
|
|
41
|
+## 4. 前端
|
|
|
42
|
+
|
|
|
43
|
+- 页面:`ruoyi-ui/src/views/dataModel/familyRanch/index.vue`
|
|
|
44
|
+- API:`ruoyi-ui/src/api/dataModel/familyRanch.js`
|
|
|
45
|
+- 菜单组件:`dataModel/familyRanch/index`
|
|
|
46
|
+- 村选择:级联树(县→乡镇→村),仅选叶子村
|
|
|
47
|
+- **导出弹窗所属乡镇**:
|
|
|
48
|
+ - 与列表共用 `townOptions`、文案「所属乡镇」、占位「请选择」
|
|
|
49
|
+ - 打开导出时带入列表当前 `queryParams.townDeptId`;清空则不传 `townDeptId`(导出全部乡镇)
|
|
|
50
|
+ - 请求:`GET /export?statYear=&statMonth=&townDeptId=`(`townDeptId` 可选)
|
|
|
51
|
+
|
|
|
52
|
+## 5. 主要类
|
|
|
53
|
+
|
|
|
54
|
+`BizFamilyRanch*`、`FamilyRanchExcelParser/Exporter/Validation/DerivedSupport`
|