diff --git a/api_document_tree_inspection.md b/api_document_tree_inspection.md index 5e2daab..79dfc53 100644 --- a/api_document_tree_inspection.md +++ b/api_document_tree_inspection.md @@ -103,6 +103,19 @@ GET /garden/tree/page?pageNo=1&pageSize=20&treeSpeciesType=1 > 列表中在"胸径"后面新增"树种类别"展示列,值通过字典翻译。 +### 2.4 一树一档案修改记录 + +**接口**:`GET /garden/tree-change-log/page?treeid={treeid}` + +返回数据或请求参数已支持新字段: + +- 请求参数新增:`plantingDate` (栽种年月), `treeSpeciesType` (树种类型字典值) 用于过滤检索。 +- 响应对象(`TreeChangeLogRespVO`)已补齐: + - `plantingDate`: 栽种年月,格式 `yyyy-MM` + - `treeSpeciesType`: 树种类型字典值 + +> 💡 **业务说明**:当行道树通过“新增/编辑”以及“巡检记录自动回写”时,系统均会自动向修改记录表中插入一条变更快照。 + --- ## 三、巡检记录相关接口变更 diff --git a/sql/tree_inspection_planting_date.sql b/sql/tree_inspection_planting_date.sql index df6cbc7..ee54c7c 100644 --- a/sql/tree_inspection_planting_date.sql +++ b/sql/tree_inspection_planting_date.sql @@ -6,14 +6,18 @@ ALTER TABLE garden_tree ADD COLUMN planting_date VARCHAR(10) COMMENT '栽种年月(格式yyyy-MM)'; ALTER TABLE garden_tree ADD COLUMN tree_species_type VARCHAR(20) COMMENT '树种类型(字典类型:tree_species_type)'; --- 2. garden_tree_inspection 表新增字段 +-- 2. garden_tree_change_log 表新增字段(修改记录表与主表保持一致) +ALTER TABLE garden_tree_change_log ADD COLUMN planting_date VARCHAR(10) COMMENT '栽种年月(格式yyyy-MM)'; +ALTER TABLE garden_tree_change_log ADD COLUMN tree_species_type VARCHAR(20) COMMENT '树种类型(字典类型:tree_species_type)'; + +-- 3. garden_tree_inspection 表新增字段 ALTER TABLE garden_tree_inspection ADD COLUMN planting_date VARCHAR(10) COMMENT '栽植年月(格式yyyy-MM)'; --- 3. 插入字典类型 +-- 4. 插入字典类型 INSERT INTO system_dict_type (name, type, status, remark, creator, create_time, updater, update_time, deleted, deleted_time) VALUES ('树种类型', 'tree_species_type', 0, '行道树树种类型(深根性/浅根性)', '1', NOW(), '1', NOW(), 0, NULL); --- 4. 插入字典数据(注意:dict_type 对应上面的 type 值) +-- 5. 插入字典数据(注意:dict_type 对应上面的 type 值) INSERT INTO system_dict_data (sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted, deleted_time) VALUES (1, '深根性树种', '1', 'tree_species_type', 0, 'default', '', '深根性树种', '1', NOW(), '1', NOW(), 0, NULL); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogPageReqVO.java index ac61a04..aa490b6 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogPageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogPageReqVO.java @@ -70,6 +70,12 @@ public class TreeChangeLogPageReqVO extends PageParam { @Schema(description = "估测树龄") private String estimationtreeage; + @Schema(description = "栽种年月(格式yyyy-MM)") + private String plantingDate; + + @Schema(description = "树种类型(字典类型:tree_species_type)") + private String treeSpeciesType; + @Schema(description = "冠幅东西") private String canopyeastwest; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogRespVO.java index c99ef3a..1a599bf 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogRespVO.java @@ -106,6 +106,14 @@ public class TreeChangeLogRespVO implements VO { @ExcelProperty("估测树龄") private String estimationtreeage; + @Schema(description = "栽种年月(格式yyyy-MM)", example = "2015-06") + @ExcelProperty("栽种年月") + private String plantingDate; + + @Schema(description = "树种类型(字典类型:tree_species_type)", example = "1") + @ExcelProperty("树种类别") + private String treeSpeciesType; + @Schema(description = "冠幅东西") @ExcelProperty("冠幅东西") private String canopyeastwest; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogSaveReqVO.java index 5f659ef..5982fac 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/treechangelog/vo/TreeChangeLogSaveReqVO.java @@ -72,6 +72,12 @@ public class TreeChangeLogSaveReqVO { @Schema(description = "估测树龄") private String estimationtreeage; + @Schema(description = "栽种年月(格式yyyy-MM)", example = "2015-06") + private String plantingDate; + + @Schema(description = "树种类型(字典类型:tree_species_type)", example = "1") + private String treeSpeciesType; + @Schema(description = "冠幅东西") private String canopyeastwest; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/treechangelog/TreeChangeLogDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/treechangelog/TreeChangeLogDO.java index 4869d78..3f4d813 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/treechangelog/TreeChangeLogDO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/treechangelog/TreeChangeLogDO.java @@ -108,6 +108,14 @@ public class TreeChangeLogDO { */ private String estimationtreeage; /** + * 栽种年月(格式 yyyy-MM) + */ + private String plantingDate; + /** + * 树种类型(字典类型:tree_species_type) + */ + private String treeSpeciesType; + /** * 冠幅东西 */ private String canopyeastwest; 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 f23638d..f1fd1d7 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 @@ -17,12 +17,16 @@ import com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil; import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; import com.zteits.urbanops.module.garden.dal.dataobject.treeinspection.TreeInspectionDO; import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO; +import com.zteits.urbanops.module.garden.dal.dataobject.treechangelog.TreeChangeLogDO; import com.zteits.urbanops.module.garden.dal.mysql.treeinspection.TreeInspectionMapper; import com.zteits.urbanops.module.garden.dal.mysql.tree.TreeMapper; +import com.zteits.urbanops.module.garden.dal.mysql.treechangelog.TreeChangeLogMapper; import com.zteits.urbanops.module.garden.enums.ErrorCodeConstants; import com.zteits.urbanops.module.garden.controller.app.treeinspection.vo.*; import com.zteits.urbanops.module.garden.convert.treeinspection.TreeInspectionConvert; +import java.time.LocalDateTime; + /** * 行道树巡检与安全风险评估业务 Service 实现类 * @@ -39,6 +43,9 @@ public class TreeInspectionServiceImpl implements TreeInspectionService { @Resource private TreeMapper treeMapper; + @Resource + private TreeChangeLogMapper treeChangeLogMapper; + @Override @Transactional(rollbackFor = Exception.class) public Long createTreeInspection(TreeInspectionSaveReqVO createReqVO) { @@ -162,6 +169,17 @@ public class TreeInspectionServiceImpl implements TreeInspectionService { } if (needUpdateTree) { treeMapper.updateById(tree); + + // 8.1 插入一树一档案修改记录(巡检回写引起的变更) + TreeChangeLogDO changeLog = new TreeChangeLogDO(); + org.springframework.beans.BeanUtils.copyProperties(tree, changeLog); + changeLog.setId(null); + changeLog.setTreeid(tree.getId()); + changeLog.setCreateby(loginUserId != null ? String.valueOf(loginUserId) : null); + changeLog.setCreatetime(LocalDateTime.now()); + changeLog.setUpdateby(loginUserId != null ? String.valueOf(loginUserId) : null); + changeLog.setUpdatetime(LocalDateTime.now()); + treeChangeLogMapper.insert(changeLog); } return entity.getId(); 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 759ad9f..f4c9848 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 @@ -12,6 +12,7 @@ import com.zteits.urbanops.module.garden.dal.dataobject.treeinspection.TreeInspe import com.zteits.urbanops.module.garden.dal.dataobject.tree.TreeDO; import com.zteits.urbanops.module.garden.dal.mysql.treeinspection.TreeInspectionMapper; import com.zteits.urbanops.module.garden.dal.mysql.tree.TreeMapper; +import com.zteits.urbanops.module.garden.dal.mysql.treechangelog.TreeChangeLogMapper; import com.zteits.urbanops.module.garden.controller.app.treeinspection.vo.*; import com.zteits.urbanops.module.garden.enums.ErrorCodeConstants; @@ -32,6 +33,9 @@ public class TreeInspectionServiceImplTest extends BaseMockitoUnitTest { @Mock private TreeMapper treeMapper; + @Mock + private TreeChangeLogMapper treeChangeLogMapper; + private TreeInspectionSaveReqVO createReqVOBase() { TreeInspectionSaveReqVO req = new TreeInspectionSaveReqVO(); req.setTreeId(1024L);