From 53b9d013999191fed16dd53c96d3dd6a2c1d130c Mon Sep 17 00:00:00 2001 From: Flow <958079825@qq.com> Date: Fri, 29 Aug 2025 16:43:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/device/DeviceController.java | 6 +-- .../admin/device/vo/DevicePageReqVO.java | 2 +- .../admin/device/vo/DeviceRespVO.java | 2 +- .../admin/device/vo/DeviceSaveReqVO.java | 2 +- .../deviceuser/DeviceuserController.java | 4 +- .../deviceuser/vo/DeviceuserPageReqVO.java | 2 +- .../admin/deviceuser/vo/DeviceuserRespVO.java | 2 +- .../deviceuser/vo/DeviceuserSaveReqVO.java | 2 +- .../vo/DoctornoticePageReqVO.java | 2 +- .../doctornotice/vo/DoctornoticeRespVO.java | 2 +- .../vo/DoctornoticeSaveReqVO.java | 2 +- .../admin/ecgdata/EcgdataController.java | 45 ++++++++++++++++--- .../admin/ecgdata/vo/EcgdataPageReqVO.java | 2 +- .../admin/ecgdata/vo/EcgdataRespVO.java | 2 +- .../admin/ecgdata/vo/EcgdataSaveReqVO.java | 2 +- .../ecgdata/vo/EcgdataTimeImageRespVO.java | 2 +- .../dal/dataobject/device/DeviceDO.java | 2 +- .../dataobject/deviceuser/DeviceuserDO.java | 2 +- .../doctornotice/DoctornoticeDO.java | 2 +- .../dal/dataobject/ecgdata/EcgdataDO.java | 2 +- .../dal/mysql/ecgdata/EcgdataMapper.java | 11 +++++ .../system/service/device/DeviceService.java | 6 +-- .../service/device/DeviceServiceImpl.java | 6 +-- .../service/deviceuser/DeviceuserService.java | 4 +- .../deviceuser/DeviceuserServiceImpl.java | 4 +- .../service/ecgdata/EcgdataService.java | 18 ++++++++ .../service/ecgdata/EcgdataServiceImpl.java | 14 ++++++ 27 files changed, 113 insertions(+), 39 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/DeviceController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/DeviceController.java index bf52c66664..704e663d18 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/DeviceController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/DeviceController.java @@ -73,7 +73,7 @@ public class DeviceController { } @GetMapping("/getDeviceId") @Operation(summary = "根据设备编号获得设备详情") - public CommonResult getDeviceId(@RequestParam("devicecode") Integer devicecode) { + public CommonResult getDeviceId(@RequestParam("devicecode") String devicecode) { DeviceDO device = deviceService.getDeviceId(devicecode); return success(BeanUtils.toBean(device, DeviceRespVO.class)); } @@ -130,7 +130,7 @@ public class DeviceController { @Operation(summary = "锁定/解锁设备") @Parameter(name = "devicecode", description = "设备编号", required = true) @Parameter(name = "devicestatus", description = "设备状态", required = true) - public CommonResult lockDevice(@RequestParam("devicecode") Integer devicecode, + public CommonResult lockDevice(@RequestParam("devicecode") String devicecode, @RequestParam("devicestatus") Integer devicestatus) { deviceService.lockDevice(devicecode, devicestatus); return success(true); @@ -139,7 +139,7 @@ public class DeviceController { @PutMapping("/restartDevice") @Operation(summary = "重启设备") @Parameter(name = "devicecode", description = "设备编号", required = true) - public CommonResult restartDevice(@RequestParam("devicecode") Integer devicecode) { + public CommonResult restartDevice(@RequestParam("devicecode") String devicecode) { deviceService.restartDevice(devicecode); return success(true); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DevicePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DevicePageReqVO.java index 37beb7f86a..7a39c59d88 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DevicePageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DevicePageReqVO.java @@ -19,7 +19,7 @@ public class DevicePageReqVO extends PageParam { private String devicename; @Schema(description = "设备ID/编号") - private Integer devicecode; + private String devicecode; @Schema(description = "设备类型", example = "1") private String devicetype; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceRespVO.java index 310b7efef1..e59c6de053 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceRespVO.java @@ -22,7 +22,7 @@ public class DeviceRespVO { @Schema(description = "设备ID/编号", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("设备ID/编号") - private Integer devicecode; + private String devicecode; @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty("设备类型") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceSaveReqVO.java index a988072d48..0faeb4169c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/device/vo/DeviceSaveReqVO.java @@ -19,7 +19,7 @@ public class DeviceSaveReqVO { private String devicename; @Schema(description = "设备ID/编号", requiredMode = Schema.RequiredMode.REQUIRED) - private Integer devicecode; + private String devicecode; @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotEmpty(message = "设备类型不能为空") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/DeviceuserController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/DeviceuserController.java index 9494b9fcbc..90e3dbfd45 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/DeviceuserController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/DeviceuserController.java @@ -60,7 +60,7 @@ public class DeviceuserController { } @GetMapping("/getDevCount") @Operation(summary = "获得关联设备人员数量") - public CommonResult getDeviceusercount(@RequestParam("devicecode") Integer devicecode) { + public CommonResult getDeviceusercount(@RequestParam("devicecode") String devicecode) { return success(deviceuserService.getDeviceusercount(devicecode)); } @GetMapping("/get") @@ -93,7 +93,7 @@ public class DeviceuserController { @GetMapping("/getDeviceuserByDeviceId") @Operation(summary = "根据设备ID获得设备人员关联") @Parameter(name = "deviceid", description = "设备编号", required = true) - public CommonResult> getDeviceuserByDeviceId(@RequestParam("deviceid") Integer deviceid) { + public CommonResult> getDeviceuserByDeviceId(@RequestParam("deviceid") String deviceid) { List deviceusers = deviceuserService.getDeviceuserByDeviceId(deviceid); return success(BeanUtils.toBean(deviceusers, DeviceuserRespVO.class)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserPageReqVO.java index 240cb043b3..61e29089b7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserPageReqVO.java @@ -16,7 +16,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ public class DeviceuserPageReqVO extends PageParam { @Schema(description = "设备ID", example = "16280") - private Integer deviceid; + private String deviceid; @Schema(description = "设备类型", example = "ECU") private String devicetype; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserRespVO.java index b4b3f513b8..841123e3ef 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserRespVO.java @@ -18,7 +18,7 @@ public class DeviceuserRespVO { @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16280") @ExcelProperty("设备ID") - private Integer deviceid; + private String deviceid; @Schema(description = "设备类型",requiredMode = Schema.RequiredMode.REQUIRED,example = "ECU") @ExcelProperty("设备类型") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserSaveReqVO.java index c77e70c732..4150ea05da 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/deviceuser/vo/DeviceuserSaveReqVO.java @@ -16,7 +16,7 @@ public class DeviceuserSaveReqVO { @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16280") @NotNull(message = "设备ID不能为空") - private Integer deviceid; + private String deviceid; @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "ECU") @NotNull(message = "设备类型不能为空") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java index ecc423bf38..8dbbb0e04e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticePageReqVO.java @@ -16,7 +16,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ public class DoctornoticePageReqVO extends PageParam { @Schema(description = "设备ID", example = "29419") - private Integer deviceid; + private String deviceid; @Schema(description = "接收通知的用户ID", example = "2690") private Integer userid; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeRespVO.java index af932795e3..72502747ef 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeRespVO.java @@ -18,7 +18,7 @@ public class DoctornoticeRespVO { @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29419") @ExcelProperty("设备ID") - private Integer deviceid; + private String deviceid; @Schema(description = "接收通知的用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2690") @ExcelProperty("接收通知的用户ID") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeSaveReqVO.java index edc00b8ed9..442a534ca3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/doctornotice/vo/DoctornoticeSaveReqVO.java @@ -16,7 +16,7 @@ public class DoctornoticeSaveReqVO { @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29419") @NotNull(message = "设备ID不能为空") - private Integer deviceid; + private String deviceid; @Schema(description = "接收通知的用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2690") @NotNull(message = "接收通知的用户ID不能为空") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/EcgdataController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/EcgdataController.java index 978b77cc95..9c333aaaf2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/EcgdataController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/EcgdataController.java @@ -12,6 +12,8 @@ import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; import java.util.*; +import java.time.LocalDateTime; +import java.util.stream.Collectors; import java.io.IOException; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -90,18 +92,47 @@ public class EcgdataController { @Operation(summary = "根据用户ID获得心电采集时间列表") @Parameter(name = "userId", description = "用户编号", required = true, example = "1024") public CommonResult> getEcgdataByUserId(@RequestParam("userId") Integer userId) { - List ecgdataList = ecgdataService.getEcgdataByUserId(userId); - return success(BeanUtils.toBean(ecgdataList, EcgdataTimeRespVO.class)); + // 使用优化后的Service方法,直接在数据库层面去重 + List distinctTimeList = ecgdataService.getDistinctCollectTimeByUserId(userId); + + // 转换为响应对象 + List result = distinctTimeList.stream() + .map(time -> { + EcgdataTimeRespVO vo = new EcgdataTimeRespVO(); + vo.setCollecttime(time); + return vo; + }) + .collect(Collectors.toList()); + + return success(result); } @GetMapping("/getByTime") - @Operation(summary = "根据时间戳和用户ID获得心电数据") + @Operation(summary = "根据时间戳和用户ID获得心电数据(聚合图片URL)") @Parameter(name = "collecttime", description = "采集时间戳", required = true) @Parameter(name = "userId", description = "用户编号", required = true) - public CommonResult getEcgdataByTime(@RequestParam("collecttime") Long collecttime, - @RequestParam("userId") Integer userId) { - EcgdataDO ecgdata = ecgdataService.getEcgdataByTime(collecttime, userId); - return success(BeanUtils.toBean(ecgdata, EcgdataRespVO.class)); + public CommonResult getEcgdataByTime(@RequestParam("collecttime") Long collecttime, + @RequestParam("userId") Integer userId) { + List ecgdataList = ecgdataService.getEcgdataListByTime(collecttime, userId); + + if (ecgdataList == null || ecgdataList.isEmpty()) { + return success(null); + } + + // 取第一条记录作为基础数据 + EcgdataDO firstEcgdata = ecgdataList.get(0); + EcgdataTimeImageRespVO result = BeanUtils.toBean(firstEcgdata, EcgdataTimeImageRespVO.class); + + // 聚合所有的图片URL + List imageUrls = new ArrayList<>(); + for (EcgdataDO ecgdata : ecgdataList) { + if (ecgdata.getEcgimageurl() != null && !ecgdata.getEcgimageurl().trim().isEmpty()) { + imageUrls.add(ecgdata.getEcgimageurl()); + } + } + result.setEcgimageurls(imageUrls); + + return success(result); } } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataPageReqVO.java index 16c7a4c4e4..ba315ea82f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataPageReqVO.java @@ -17,7 +17,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ public class EcgdataPageReqVO extends PageParam { @Schema(description = "设备ID", example = "2207") - private Integer deviceid; + private String deviceid; @Schema(description = "设备名称", example = "芋艿") private String devicename; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataRespVO.java index 35f0b7f37a..86189c073d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataRespVO.java @@ -19,7 +19,7 @@ public class EcgdataRespVO { @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2207") @ExcelProperty("设备ID") - private Integer deviceid; + private String deviceid; @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @ExcelProperty("设备名称") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataSaveReqVO.java index a0dedfbc01..4f802644f6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataSaveReqVO.java @@ -17,7 +17,7 @@ public class EcgdataSaveReqVO { @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2207") @NotNull(message = "设备ID不能为空") - private Integer deviceid; + private String deviceid; @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotEmpty(message = "设备名称不能为空") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataTimeImageRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataTimeImageRespVO.java index 0348012c2b..5239d963b0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataTimeImageRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ecgdata/vo/EcgdataTimeImageRespVO.java @@ -18,7 +18,7 @@ public class EcgdataTimeImageRespVO { @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2207") @ExcelProperty("设备ID") - private Integer deviceid; + private String deviceid; @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @ExcelProperty("设备名称") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/device/DeviceDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/device/DeviceDO.java index 7c19f066a7..de65e0596f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/device/DeviceDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/device/DeviceDO.java @@ -35,7 +35,7 @@ public class DeviceDO { * 设备ID/编号 */ @TableField("devicecode") - private Integer devicecode; + private String devicecode; /** * 设备类型 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/deviceuser/DeviceuserDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/deviceuser/DeviceuserDO.java index 1227165340..e7b93e165c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/deviceuser/DeviceuserDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/deviceuser/DeviceuserDO.java @@ -30,7 +30,7 @@ public class DeviceuserDO { * 设备ID */ @TableField("deviceid") - private Integer deviceid; + private String deviceid; /** * 设备类型 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/doctornotice/DoctornoticeDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/doctornotice/DoctornoticeDO.java index 9f494dadde..544df0871a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/doctornotice/DoctornoticeDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/doctornotice/DoctornoticeDO.java @@ -32,7 +32,7 @@ public class DoctornoticeDO { * 设备ID */ @TableField("deviceid") - private Integer deviceid; + private String deviceid; /** * 接收通知的用户ID */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/ecgdata/EcgdataDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/ecgdata/EcgdataDO.java index f64aeb1e92..ff2d051f0a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/ecgdata/EcgdataDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/ecgdata/EcgdataDO.java @@ -32,7 +32,7 @@ public class EcgdataDO { * 设备ID */ @TableField("deviceid") - private Integer deviceid; + private String deviceid; /** * 设备名称 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgdata/EcgdataMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgdata/EcgdataMapper.java index 303331e417..47606630a5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgdata/EcgdataMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/ecgdata/EcgdataMapper.java @@ -1,12 +1,14 @@ package cn.iocoder.yudao.module.system.dal.mysql.ecgdata; import java.util.*; +import java.time.LocalDateTime; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.system.dal.dataobject.ecgdata.EcgdataDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; import cn.iocoder.yudao.module.system.controller.admin.ecgdata.vo.*; /** @@ -48,4 +50,13 @@ public interface EcgdataMapper extends BaseMapperX { .orderByDesc(EcgdataDO::getId)); } + /** + * 根据用户ID获取去重的采集时间列表 + * + * @param userId 用户ID + * @return 去重的采集时间列表,按时间倒序排列 + */ + @Select("SELECT DISTINCT collecttime FROM tb_ecgdata WHERE userid = #{userId} ORDER BY collecttime DESC") + List selectDistinctCollectTimeByUserId(Integer userId); + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceService.java index a2d6fa51d4..6adb43a3c4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceService.java @@ -50,7 +50,7 @@ public interface DeviceService { /* * 根据设备编号查询设备 * */ - DeviceDO getDeviceId(Integer devicecode); + DeviceDO getDeviceId(String devicecode); /** * 获得设备分页 @@ -92,12 +92,12 @@ public interface DeviceService { * @param devicecode 设备编号 * @param devicestatus 设备状态 */ - void lockDevice(Integer devicecode, Integer devicestatus); + void lockDevice(String devicecode, Integer devicestatus); /** * 重启设备 * * @param devicecode 设备编号 */ - void restartDevice(Integer devicecode); + void restartDevice(String devicecode); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceServiceImpl.java index 4a96e5922e..25deecd23b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/device/DeviceServiceImpl.java @@ -75,7 +75,7 @@ public class DeviceServiceImpl implements DeviceService { return deviceMapper.selectById(id); } @Override - public DeviceDO getDeviceId(Integer devicecode) { + public DeviceDO getDeviceId(String devicecode) { return deviceMapper.selectOne(DeviceDO::getDevicecode, devicecode); } @@ -149,7 +149,7 @@ public class DeviceServiceImpl implements DeviceService { } @Override - public void lockDevice(Integer devicecode, Integer devicestatus) { + public void lockDevice(String devicecode, Integer devicestatus) { // 校验设备是否存在 DeviceDO device = deviceMapper.selectOne(DeviceDO::getDevicecode, devicecode); if (device == null) { @@ -165,7 +165,7 @@ public class DeviceServiceImpl implements DeviceService { } @Override - public void restartDevice(Integer devicecode) { + public void restartDevice(String devicecode) { // 校验设备是否存在 DeviceDO device = deviceMapper.selectOne(DeviceDO::getDevicecode, devicecode); if (device == null) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserService.java index 1c9c8f830b..daeda55f2b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserService.java @@ -46,7 +46,7 @@ public interface DeviceuserService { /* * 设备ID 查询设备人员数量 * */ - Integer getDeviceusercount(Integer devicecode); + Integer getDeviceusercount(String devicecode); /** * 获得设备人员关联分页 @@ -62,7 +62,7 @@ public interface DeviceuserService { * @param deviceid 设备编号 * @return 设备人员关联列表 */ - List getDeviceuserByDeviceId(Integer deviceid); + List getDeviceuserByDeviceId(String deviceid); /** * 根据用户ID获得设备人员关联列表 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserServiceImpl.java index eb0d065d5c..1a4fa81871 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceuser/DeviceuserServiceImpl.java @@ -66,7 +66,7 @@ public class DeviceuserServiceImpl implements DeviceuserService { return deviceuserMapper.selectById(id); } @Override - public Integer getDeviceusercount(Integer devicecode) { + public Integer getDeviceusercount(String devicecode) { return deviceuserMapper.selectCount(DeviceuserDO::getDeviceid, devicecode).intValue(); } @Override @@ -75,7 +75,7 @@ public class DeviceuserServiceImpl implements DeviceuserService { } @Override - public List getDeviceuserByDeviceId(Integer deviceid) { + public List getDeviceuserByDeviceId(String deviceid) { return deviceuserMapper.selectList(new LambdaQueryWrapper() .eq(DeviceuserDO::getDeviceid, deviceid)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataService.java index b7597a4543..4b92571c29 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataService.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.service.ecgdata; import java.util.*; +import java.time.LocalDateTime; import javax.validation.*; import cn.iocoder.yudao.module.system.controller.admin.ecgdata.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.ecgdata.EcgdataDO; @@ -69,4 +70,21 @@ public interface EcgdataService { */ EcgdataDO getEcgdataByTime(Long collecttime, Integer userId); + /** + * 根据时间戳和用户ID获得心电数据采集列表(聚合图片URL) + * + * @param collecttime 采集时间戳 + * @param userId 用户编号 + * @return 聚合后的心电数据采集 + */ + List getEcgdataListByTime(Long collecttime, Integer userId); + + /** + * 根据用户ID获得去重的心电采集时间列表 + * + * @param userId 用户编号 + * @return 去重的采集时间列表 + */ + List getDistinctCollectTimeByUserId(Integer userId); + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataServiceImpl.java index 3b412d1913..dc23da3e02 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/ecgdata/EcgdataServiceImpl.java @@ -7,6 +7,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.time.LocalDateTime; import cn.iocoder.yudao.module.system.controller.admin.ecgdata.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.ecgdata.EcgdataDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -87,4 +88,17 @@ public class EcgdataServiceImpl implements EcgdataService { .orderByDesc(EcgdataDO::getId)); } + @Override + public List getEcgdataListByTime(Long collecttime, Integer userId) { + return ecgdataMapper.selectList(new LambdaQueryWrapperX() + .eq(EcgdataDO::getUserid, userId) + .eq(EcgdataDO::getCollecttime, new Date(collecttime)) + .orderByDesc(EcgdataDO::getId)); + } + + @Override + public List getDistinctCollectTimeByUserId(Integer userId) { + return ecgdataMapper.selectDistinctCollectTimeByUserId(userId); + } + } \ No newline at end of file