From 05f214a9c98aa7ad5e6fd0374c19b4d34fb05f6a Mon Sep 17 00:00:00 2001 From: Flow <958079825@qq.com> Date: Thu, 21 Aug 2025 10:38:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A7=A3=E9=94=81=E9=94=81?= =?UTF-8?q?=E5=AE=9A=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/device/DeviceController.java | 18 +++++++++++ .../admin/device/vo/DevicePageReqVO.java | 8 +++++ .../admin/device/vo/DeviceRespVO.java | 9 ++++++ .../admin/device/vo/DeviceSaveReqVO.java | 7 ++++ .../dal/dataobject/device/DeviceDO.java | 10 ++++++ .../system/dal/mysql/device/DeviceMapper.java | 4 +++ .../system/service/device/DeviceService.java | 15 +++++++++ .../service/device/DeviceServiceImpl.java | 32 +++++++++++++++++++ 8 files changed, 103 insertions(+) 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 4244fdbef0..bf52c66664 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 @@ -126,4 +126,22 @@ public class DeviceController { return success(data); } + @PutMapping("/lockDevice") + @Operation(summary = "锁定/解锁设备") + @Parameter(name = "devicecode", description = "设备编号", required = true) + @Parameter(name = "devicestatus", description = "设备状态", required = true) + public CommonResult lockDevice(@RequestParam("devicecode") Integer devicecode, + @RequestParam("devicestatus") Integer devicestatus) { + deviceService.lockDevice(devicecode, devicestatus); + return success(true); + } + + @PutMapping("/restartDevice") + @Operation(summary = "重启设备") + @Parameter(name = "devicecode", description = "设备编号", required = true) + public CommonResult restartDevice(@RequestParam("devicecode") Integer devicecode) { + deviceService.restartDevice(devicecode); + return success(true); + } + } \ 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/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 922a0d579a..37beb7f86a 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 @@ -53,4 +53,12 @@ public class DevicePageReqVO extends PageParam { @Schema(description = "更新人") private String updateby; + @Schema(description = "最近在线时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] onlinetime; + + @Schema(description = "是否重启") + private Integer restart; + + } \ 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/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 81e88f8b48..310b7efef1 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 @@ -64,4 +64,13 @@ public class DeviceRespVO { @ExcelProperty("更新人") private String updateby; + @Schema(description = "最近在线时间") + @ExcelProperty("最近在线时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime onlinetime; + + @Schema(description = "是否重启") + @ExcelProperty("是否重启") + private Integer restart; + } \ 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/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 5700d710e8..a988072d48 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 @@ -52,4 +52,11 @@ public class DeviceSaveReqVO { @Schema(description = "更新人") private String updateby; + @Schema(description = "最近在线时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime onlinetime; + + @Schema(description = "是否重启") + private Integer restart; + } \ No newline at end of file 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 d999bf8a15..7c19f066a7 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 @@ -86,5 +86,15 @@ public class DeviceDO { */ @TableField("updateby") private String updateby; + /** + * 最近在线时间 + */ + @TableField("onlinetime") + private LocalDateTime onlinetime; + /** + * 是否重启 + */ + @TableField("restart") + private Integer restart; } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/device/DeviceMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/device/DeviceMapper.java index 0df266153a..5857e3d615 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/device/DeviceMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/device/DeviceMapper.java @@ -42,6 +42,8 @@ public interface DeviceMapper extends BaseMapperX { wrapper.betweenIfPresent(DeviceDO::getUpdatetime, reqVO.getUpdatetime()); wrapper.eqIfPresent(DeviceDO::getCreateby, reqVO.getCreateby()); wrapper.eqIfPresent(DeviceDO::getUpdateby, reqVO.getUpdateby()); + wrapper.eqIfPresent(DeviceDO::getOnlinetime, reqVO.getOnlinetime()); + wrapper.eqIfPresent(DeviceDO::getRestart, reqVO.getRestart()); wrapper.orderByDesc(DeviceDO::getId); return selectPage(reqVO, wrapper); @@ -62,6 +64,8 @@ public interface DeviceMapper extends BaseMapperX { wrapper.betweenIfPresent(DeviceDO::getUpdatetime, reqVO.getUpdatetime()); wrapper.eqIfPresent(DeviceDO::getCreateby, reqVO.getCreateby()); wrapper.eqIfPresent(DeviceDO::getUpdateby, reqVO.getUpdateby()); + wrapper.eqIfPresent(DeviceDO::getOnlinetime, reqVO.getOnlinetime()); + wrapper.eqIfPresent(DeviceDO::getRestart, reqVO.getRestart()); wrapper.orderByDesc(DeviceDO::getId); return selectPage(reqVO, wrapper); } 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 dcd27f48fb..a2d6fa51d4 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 @@ -85,4 +85,19 @@ public interface DeviceService { * 首页查询设备地图分布接口 * */ DeviceMapVO getDeviceMapData(Integer orgid); + + /** + * 锁定/解锁设备 + * + * @param devicecode 设备编号 + * @param devicestatus 设备状态 + */ + void lockDevice(Integer devicecode, Integer devicestatus); + + /** + * 重启设备 + * + * @param devicecode 设备编号 + */ + void restartDevice(Integer 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 7c8337e511..4a96e5922e 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 @@ -148,4 +148,36 @@ public class DeviceServiceImpl implements DeviceService { return result; } + @Override + public void lockDevice(Integer devicecode, Integer devicestatus) { + // 校验设备是否存在 + DeviceDO device = deviceMapper.selectOne(DeviceDO::getDevicecode, devicecode); + if (device == null) { + throw exception(DEVICE_NOT_EXISTS); + } + // 更新设备状态(锁定/解锁) + DeviceDO updateObj = new DeviceDO(); + updateObj.setDevicestatus(devicestatus); + // 使用QueryWrapper构建更新条件 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("devicecode", devicecode); + deviceMapper.update(updateObj, wrapper); + } + + @Override + public void restartDevice(Integer devicecode) { + // 校验设备是否存在 + DeviceDO device = deviceMapper.selectOne(DeviceDO::getDevicecode, devicecode); + if (device == null) { + throw exception(DEVICE_NOT_EXISTS); + } + // 设置重启字段为1 + DeviceDO updateObj = new DeviceDO(); + updateObj.setRestart(1); + // 使用QueryWrapper构建更新条件 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("devicecode", devicecode); + deviceMapper.update(updateObj, wrapper); + } + } \ No newline at end of file