From b6be889d5ac2b9e766e3a06932a4c0b238c3f02b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Mon, 22 Sep 2025 10:11:53 +0800 Subject: [PATCH] =?UTF-8?q?fix=20(farm):=20=E8=AE=BE=E5=A4=87=E4=B8=AD?= =?UTF-8?q?=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 基地与地块列表 --- .../admin/baseinfo/BaseInfoController.java | 4 +- .../baseinfo/vo/BaseAndPlotNamesRespVO.java | 39 +++++++++++++++++++ .../module/farm/enums/ErrorCodeConstants.java | 1 + .../service/baseinfo/BaseInfoService.java | 6 +++ .../service/baseinfo/BaseInfoServiceImpl.java | 24 ++++++++++++ .../deviceinfo/DeviceInfoServiceImpl.java | 22 +++++------ 6 files changed, 83 insertions(+), 13 deletions(-) create mode 100644 yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseAndPlotNamesRespVO.java diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/BaseInfoController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/BaseInfoController.java index 225997c9..e73fc344 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/BaseInfoController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/BaseInfoController.java @@ -111,8 +111,8 @@ public class BaseInfoController { @GetMapping("/base/plot/list") @Operation(summary = "基地-地块列表") - public CommonResult> getBasePlotList() { - List res = baseInfoService.getBaseListForWx(); + public CommonResult> getBasePlotList() { + List res = baseInfoService.getBasePlotList(); return success(res); } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseAndPlotNamesRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseAndPlotNamesRespVO.java new file mode 100644 index 00000000..c3da3eda --- /dev/null +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/baseinfo/vo/BaseAndPlotNamesRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.farm.controller.admin.baseinfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @description: + * @author: binda + * @date: 2025/9/22 10:02 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BaseAndPlotNamesRespVO { + private String baseId; + private String baseName; + private String basePoint; + private BigDecimal baseArea; + private List pLotInfos; + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class PLotInfo{ + @Schema(description = "地块ID") + private String plotId; + @Schema(description = "地块名称") + private String plotName; + @Schema(description = "地块面积") + private BigDecimal plotArea; + @Schema(description = "地块坐标") + private String plotPoint; + } +} diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java index 2bbc54ca..ba8b4da8 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java @@ -32,6 +32,7 @@ public interface ErrorCodeConstants { ErrorCode DEVICE_INFO_NOT_EXISTS_FOR_ALARM_NOTICE_RECORD= new ErrorCode(1_050_004_004, "获取设备报警通知记录失败"); ErrorCode DEVICE_INFO_NOT_EXISTS_FOR_WF_LOGIN= new ErrorCode(1_050_004_005, "水肥机登录失败"); ErrorCode DEVICE_TYPE_ERROR= new ErrorCode(1_050_004_006, "未找到对应的设备类型"); + ErrorCode DEVICE_CLASS_TYPE_ERROR= new ErrorCode(1_050_004_007, "设备分类不存在"); // ========== 设备地块关系 1-050-005-000 ========== ErrorCode DEVICE_PLOT_RELATION_NOT_EXISTS = new ErrorCode(1_050_005_000, "设备地块关系不存在"); diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoService.java index a0b04bc2..bdae6cd5 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoService.java @@ -107,4 +107,10 @@ public interface BaseInfoService { * @return */ List getBaseListForWx(); + + /** + * 基地 and 地块 坐标 + * @return + */ + List getBasePlotList(); } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java index 18ccd382..5a916140 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/baseinfo/BaseInfoServiceImpl.java @@ -405,4 +405,28 @@ public class BaseInfoServiceImpl implements BaseInfoService { }).toList(); } + + @Override + public List getBasePlotList() { + + long tenantId = getLoginUser().getTenantId(); + LambdaQueryWrapperX wrapperX = new LambdaQueryWrapperX<>(); + wrapperX.eq(BaseInfoDO::getTenantId, tenantId); + wrapperX.eq(BaseInfoDO::getDeleted, CommonConstants.NO_CODE); + List list = baseInfoMapper.selectList(wrapperX); + + return list.stream().map(e -> { + String baseId = e.getId(); + List plotInfos = plotInfoService.getPlotInfos(baseId); + List pLotInfos = plotInfos.stream().map(p -> new BaseAndPlotNamesRespVO.PLotInfo(p.getId(), p.getPlotName(), p.getPlotArea(),p.getPoint())).toList(); + + BaseAndPlotNamesRespVO b = new BaseAndPlotNamesRespVO(); + b.setBaseId(e.getId()); + b.setBaseName(e.getName()); + b.setBaseArea(e.getArea()); + b.setBasePoint(e.getPoint()); + b.setPLotInfos(pLotInfos); + return b; + }).toList(); + } } \ No newline at end of file diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java index 157741a5..1e89f16d 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/service/deviceinfo/DeviceInfoServiceImpl.java @@ -18,7 +18,6 @@ import org.springframework.transaction.annotation.Transactional; import cn.iocoder.yudao.module.farm.dal.dataobject.deviceinfo.DeviceInfoDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.LoginUser; @@ -27,9 +26,8 @@ import cn.iocoder.yudao.module.farm.dal.mysql.deviceinfo.DeviceInfoMapper; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; +import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DEVICE_CLASS_TYPE_ERROR; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DEVICE_INFO_NOT_EXISTS; /** @@ -101,15 +99,17 @@ private void validateDeviceInfoExists(String id) { @Override public DeviceInfoDO getDeviceInfo(String id) { DeviceInfoDO deviceInfo = deviceInfoMapper.selectById(id); - if (deviceInfo != null) { - // 触发图片集合转换,确保返回的DO对象包含转换后的图片集合 -// deviceInfo.getImageList(); -// deviceInfo.getAlarmImageList(); -// deviceInfo.getOfflineImageList(); - DeviceClassifyDO dc = deviceClassifyMapper.selectOne(DeviceClassifyDO::getId, deviceInfo.getDeviceType()); - deviceInfo.setImage(dc.getImage()); - deviceInfo.setImageList(dc.getImageList()); + if (deviceInfo == null) { + throw exception(DEVICE_INFO_NOT_EXISTS); } + DeviceClassifyDO dc = deviceClassifyMapper.selectOne(DeviceClassifyDO::getId, deviceInfo.getDeviceType()); + if (dc == null) { + throw exception(DEVICE_CLASS_TYPE_ERROR); + } + deviceInfo.setImage(dc.getImage()); + deviceInfo.setImageList(dc.getImageList()); + + // TODO: 2025/9/21 获取设备的实时/历史数据 return deviceInfo; }