From fc0f0e3ea3cc2df087ed86dd57260914c305297c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Tue, 30 Sep 2025 17:46:24 +0800 Subject: [PATCH] =?UTF-8?q?feat=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 - 修复因设备类型id导致的数据紊乱问题 --- .../deviceinfo/DeviceInfoController.java | 34 +++--- .../vo/v2/DeviceInfoDetailV2RespVO.java | 4 +- .../vo/v2/DeviceInfoPageV2RespVO.java | 3 +- .../deviceclassify/DeviceClassifyDO.java | 4 + .../TraceabilityCodeMapper.java | 4 +- .../module/farm/enums/CommonConstants.java | 2 + .../history/HistoryDataListPageReqVO.java | 45 ++++++-- .../history/HistoryDataListPageRespVO.java | 2 +- .../deviceclassify/DeviceClassifyService.java | 3 + .../DeviceClassifyServiceImpl.java | 19 ++++ .../service/deviceinfo/DeviceInfoService.java | 2 +- .../deviceinfo/DeviceInfoServiceImpl.java | 100 ++++++++---------- .../mapper/baseinfo/BaseInfoMapper.xml | 2 +- yudao-server/src/main/resources/db.properties | 2 +- 14 files changed, 139 insertions(+), 87 deletions(-) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/DeviceInfoController.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/DeviceInfoController.java index ed2fc02d..1683e9a4 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/DeviceInfoController.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/DeviceInfoController.java @@ -16,13 +16,13 @@ import cn.iocoder.yudao.module.farm.dal.dataobject.mqtt.MqttConnectionDO; import cn.iocoder.yudao.module.farm.dal.dataobject.plotinfo.PlotInfoDO; import cn.iocoder.yudao.module.farm.enums.CommonConstants; import cn.iocoder.yudao.module.farm.service.baseinfo.BaseInfoService; +import cn.iocoder.yudao.module.farm.service.deviceclassify.DeviceClassifyService; import cn.iocoder.yudao.module.farm.service.deviceinfo.DeviceInfoService; import cn.iocoder.yudao.module.farm.service.mqtt.DeviceMqttService; import cn.iocoder.yudao.module.farm.service.plotinfo.PlotInfoService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.apache.commons.lang3.StringUtils; @@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; +import java.util.Map; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error; @@ -45,14 +46,19 @@ import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DEVICE_STATE_MA @Validated public class DeviceInfoController { - @Resource - private DeviceInfoService deviceInfoService; - @Resource - private DeviceMqttService deviceMqttService; - @Resource - private BaseInfoService baseInfoService; - @Resource - private PlotInfoService plotInfoService; + private final DeviceInfoService deviceInfoService; + private final DeviceClassifyService deviceClassifyService; + private final DeviceMqttService deviceMqttService; + private final BaseInfoService baseInfoService; + private final PlotInfoService plotInfoService; + + public DeviceInfoController(DeviceInfoService deviceInfoService, DeviceClassifyService deviceClassifyService, DeviceMqttService deviceMqttService, BaseInfoService baseInfoService, PlotInfoService plotInfoService) { + this.deviceInfoService = deviceInfoService; + this.deviceClassifyService = deviceClassifyService; + this.deviceMqttService = deviceMqttService; + this.baseInfoService = baseInfoService; + this.plotInfoService = plotInfoService; + } @PostMapping("/create") @Operation(summary = "创建设备信息") @@ -115,9 +121,9 @@ public class DeviceInfoController { @GetMapping("/get") @Operation(summary = "获得设备信息") @Parameter(name = "id", description = "编号", required = true) -// @Parameter(name = "dateType", description = "日期类型", required = false) - public CommonResult getDeviceInfo(@RequestParam("id") String id) { - DeviceInfoDetailV2RespVO res = deviceInfoService.getDeviceRealTimeInfo(id,"dateType"); + @Parameter(name = "dateType", description = "日期类型", required = false) + public CommonResult getDeviceInfo(@RequestParam("id") String id,@RequestParam("dateType") String dateType) { + DeviceInfoDetailV2RespVO res = deviceInfoService.getDeviceRealTimeInfo(id,dateType); return success(res); } @@ -144,6 +150,10 @@ public class DeviceInfoController { d.setPlotPoint(p.getPoint()); } + Map typeNameMap = deviceClassifyService.getTypeNameMap(); + Map typeCodeMap = deviceClassifyService.getTypeCodeMap(); + d.setDeviceTypeName(typeNameMap.get(d.getDeviceType())); + d.setDeviceTypeCode(typeCodeMap.get(d.getDeviceType())); d.setDeviceStateName(DEVICE_STATE_MAP.get(d.getDeviceState())); d.setBindingStateName(BINDING_STATE_MAP.get(d.getBindingState())); } diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoDetailV2RespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoDetailV2RespVO.java index 329b4cac..07254bac 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoDetailV2RespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoDetailV2RespVO.java @@ -2,8 +2,6 @@ package cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2; import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.HistoryDataResponse; import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.RealTimeDataResponse; -import cn.iocoder.yudao.module.farm.manager.equipmentproducer.dto.soil.realtime.RealTimeDataRespVO; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; @@ -31,6 +29,8 @@ public class DeviceInfoDetailV2RespVO { private String deviceType; @Schema(description = "设备类型 (设备类型-名称)") private String deviceTypeName; + @Schema(description = "设备类型 (设备类型-唯一编码)") + private String deviceTypeCode; @Schema(description = "设备分类名称 (设备型号,字符拼接)") private String deviceCategoryName; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoPageV2RespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoPageV2RespVO.java index e4428639..8e934fbb 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoPageV2RespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/deviceinfo/vo/v2/DeviceInfoPageV2RespVO.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.farm.controller.admin.deviceinfo.vo.v2; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -21,6 +20,8 @@ public class DeviceInfoPageV2RespVO { @Schema(description = "设备类型 (设备类型ID)") private String deviceType; + private String deviceTypeCode; + private String deviceTypeName; @Schema(description = "设备分类名称 (设备型号,字符拼接)") private String deviceCategoryName; diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/deviceclassify/DeviceClassifyDO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/deviceclassify/DeviceClassifyDO.java index 81d8f007..905e219c 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/deviceclassify/DeviceClassifyDO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/deviceclassify/DeviceClassifyDO.java @@ -38,6 +38,10 @@ public class DeviceClassifyDO extends BaseDO { * 名称 */ private String name; + /** + * 类型编号 + */ + private String typeCode; /** * 图片 */ diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/traceabilitycode/TraceabilityCodeMapper.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/traceabilitycode/TraceabilityCodeMapper.java index 1163457a..49119416 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/traceabilitycode/TraceabilityCodeMapper.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/traceabilitycode/TraceabilityCodeMapper.java @@ -93,8 +93,8 @@ public interface TraceabilityCodeMapper extends BaseMapperX @Select("