diff --git a/2026年6月 危险树巡查新增需求.docx b/2026年6月 危险树巡查新增需求.docx new file mode 100644 index 0000000..62ce17b --- /dev/null +++ b/2026年6月 危险树巡查新增需求.docx diff --git a/api_document_tree_inspection.md b/api_document_tree_inspection.md index 79dfc53..a90b5df 100644 --- a/api_document_tree_inspection.md +++ b/api_document_tree_inspection.md @@ -135,7 +135,7 @@ GET /garden/tree/page?pageNo=1&pageSize=20&treeSpeciesType=1 "trunk": { "woodDamage": 0, "tilt": 0, "barkDamage": 0 }, "crown": { "looseBranch": 0, "collarAbnormal": 0, "ventilationBalance": 0 }, "weight": { - "treeSpeciesType": "深根性树种", + "treeSpeciesType": "1", "plantingDate": "2015-06", "isWindCorridor": false, "treePoolType": "联通树池", @@ -158,7 +158,7 @@ GET /garden/tree/page?pageNo=1&pageSize=20&treeSpeciesType=1 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| -| `treeSpeciesType` | String | **是** | 树种类型文本:`"深根性树种"` 或 `"浅根性树种"` | +| `treeSpeciesType` | String | **是** | 树种类型字典值:`"1"` (深根性树种) 或 `"2"` (浅根性树种) | | `plantingDate` | String | 否 | 栽植年月,格式 `yyyy-MM`。**填写后系统自动计算年限和权重** | | `plantingYears` | String | 否 | **已废弃**,无需传入。后端根据 `plantingDate` 自动计算 | | `isWindCorridor` | Boolean | **是** | 是否处于风口 | @@ -183,7 +183,7 @@ GET /garden/tree/page?pageNo=1&pageSize=20&treeSpeciesType=1 "treeId": 1024, "inspectionTime": "2026-06-05 14:30:00", "weight": { - "treeSpeciesType": "深根性树种", + "treeSpeciesType": "1", "treeSpeciesWeight": 1.0, "plantingYears": "栽植 10-30 年", "plantingYearsWeight": 1.1, @@ -234,7 +234,7 @@ GET /garden/tree/page?pageNo=1&pageSize=20&treeSpeciesType=1 "trunk": { "woodDamage": 0, "tilt": 0, "barkDamage": 0 }, "crown": { "looseBranch": 0, "collarAbnormal": 0, "ventilationBalance": 0 }, "weight": { - "treeSpeciesType": "深根性树种", + "treeSpeciesType": "1", "treeSpeciesWeight": 1.0, "plantingYears": "栽植 10-30 年", "plantingYearsWeight": 1.1, @@ -313,6 +313,6 @@ GET /garden/tree/page?pageNo=1&pageSize=20&treeSpeciesType=1 ## 五、注意事项 1. `estimationtreeage` 和 `plantingYears` 字段虽然废弃但**后端仍保留兼容**,前端可以分阶段迁移 -2. 巡检提交接口中 `weight.treeSpeciesType` 传的是**文本**("深根性树种"/"浅根性树种"),不是字典值;而一树一档案中 `treeSpeciesType` 存的也是相同文本 +2. 巡检提交接口、一树一档案以及历史变更记录中的 `treeSpeciesType` 均已统一使用**字典值**(`"1"`=深根性,`"2"`=浅根性),读取接口也同样输出该字典值。 3. `plantingDate` 格式必须严格为 `yyyy-MM`(如 `"2015-06"`),否则后端解析会失败并降级处理 4. `/latest` 接口返回 `data` 为 `null` 时表示无历史巡检记录,前端应展示空表单 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionRespVO.java index 97cf73b..4cdf848 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionRespVO.java @@ -111,7 +111,7 @@ public class TreeInspectionRespVO { @Data @Schema(description = "权重因子评估详情") public static class WeightRespDTO { - @Schema(description = "树种类型:深根性树种, 浅根性树种", example = "深根性树种") + @Schema(description = "树种类型(字典值:1=深根性树种, 2=浅根性树种)", example = "1") private String treeSpeciesType; @Schema(description = "树种类型权重常数", example = "1.0") diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionSaveReqVO.java index 497bdfe..028bccc 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/treeinspection/vo/TreeInspectionSaveReqVO.java @@ -129,7 +129,7 @@ public class TreeInspectionSaveReqVO { @Data @Schema(description = "权重因子评估 DTO") public static class WeightDTO { - @Schema(description = "树种类型:深根性树种, 浅根性树种", requiredMode = Schema.RequiredMode.REQUIRED, example = "深根性树种") + @Schema(description = "树种类型(字典值:1=深根性树种, 2=浅根性树种)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotBlank(message = "树种类型不能为空") private String treeSpeciesType; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImpl.java index f1fd1d7..238fa1d 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImpl.java @@ -71,7 +71,7 @@ public class TreeInspectionServiceImpl implements TreeInspectionService { } // 4. 补齐各因子的权重指标(即使由前端打分,后端依然补齐数据库里各个细节因子权重以支持底层的统计与分析) - double treeSpeciesWeight = "浅根性树种".equals(entity.getTreeSpeciesType()) ? 1.1 : 1.0; + double treeSpeciesWeight = "2".equals(entity.getTreeSpeciesType()) || "浅根性树种".equals(entity.getTreeSpeciesType()) ? 1.1 : 1.0; entity.setTreeSpeciesWeight(treeSpeciesWeight); // 4.1 如果传入了 plantingDate(栽植年月),自动计算 plantingYears 文本和权重 diff --git a/urbanops-module-garden/src/test/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImplTest.java b/urbanops-module-garden/src/test/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImplTest.java index f4c9848..e165060 100644 --- a/urbanops-module-garden/src/test/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImplTest.java +++ b/urbanops-module-garden/src/test/java/com/zteits/urbanops/module/garden/service/treeinspection/TreeInspectionServiceImplTest.java @@ -71,7 +71,7 @@ public class TreeInspectionServiceImplTest extends BaseMockitoUnitTest { // 权重 TreeInspectionSaveReqVO.WeightDTO weight = new TreeInspectionSaveReqVO.WeightDTO(); - weight.setTreeSpeciesType("深根性树种"); // 1.0 + weight.setTreeSpeciesType("1"); // 1.0 weight.setPlantingYears("栽植 10-30 年"); // 1.1 weight.setIsWindCorridor(false); // 1.0 weight.setTreePoolType("联通树池"); // 1.0 @@ -200,7 +200,7 @@ public class TreeInspectionServiceImplTest extends BaseMockitoUnitTest { entity.setCrownLooseBranch(0); entity.setCrownCollarAbnormal(0); entity.setCrownVentilationBalance(1); - entity.setTreeSpeciesType("深根性树种"); + entity.setTreeSpeciesType("1"); entity.setTreeSpeciesWeight(1.0); entity.setPlantingYears("栽植 10-30 年"); entity.setPlantingYearsWeight(1.1);