From 4749d93d0e4b12dbfe772d9fa97b3c3ce442b061 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 1 Jul 2025 09:42:59 +0800 Subject: [PATCH] =?UTF-8?q?reactor=EF=BC=9A=E3=80=90IoT=20=E7=89=A9?= =?UTF-8?q?=E8=81=94=E7=BD=91=E3=80=91=E8=B0=83=E6=95=B4=20ota=20=E7=9A=84?= =?UTF-8?q?=20task=20=E5=AE=9E=E4=BD=93=E5=AE=9A=E4=B9=89=EF=BC=88?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=9C=AA=E5=A4=84=E7=90=86=20controller?= =?UTF-8?q?=EF=BC=89x2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/ota/IotOtaTaskController.java | 64 ++++++++++ .../admin/ota/IotOtaTaskRecordController.java | 65 +++++++++++ .../ota/IotOtaUpgradeRecordController.java | 66 ----------- .../ota/IotOtaUpgradeTaskController.java | 64 ---------- .../IotOtaTaskCreateReqVO.java} | 8 +- .../IotOtaTaskPageReqVO.java} | 14 +-- .../IotOtaTaskRespVO.java} | 24 ++-- .../record/IotOtaTaskRecordPageReqVO.java} | 18 +-- .../task/record/IotOtaTaskRecordRespVO.java | 56 +++++++++ .../record/IotOtaUpgradeRecordRespVO.java | 109 ------------------ .../iot/dal/mysql/ota/IotOtaTaskMapper.java | 32 +++++ .../mysql/ota/IotOtaUpgradeRecordMapper.java | 6 +- .../mysql/ota/IotOtaUpgradeTaskMapper.java | 57 --------- ...vice.java => IotOtaTaskRecordService.java} | 24 ++-- ....java => IotOtaTaskRecordServiceImpl.java} | 41 ++++--- .../iot/service/ota/IotOtaTaskService.java | 47 ++++++++ ...ceImpl.java => IotOtaTaskServiceImpl.java} | 82 +++++-------- .../service/ota/IotOtaUpgradeTaskService.java | 68 ----------- 18 files changed, 351 insertions(+), 494 deletions(-) create mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskController.java create mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskRecordController.java delete mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeRecordController.java delete mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeTaskController.java rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/{upgrade/task/IotOtaUpgradeTaskSaveReqVO.java => task/IotOtaTaskCreateReqVO.java} (88%) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/{upgrade/task/IotOtaUpgradeTaskPageReqVO.java => task/IotOtaTaskPageReqVO.java} (50%) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/{upgrade/task/IotOtaUpgradeTaskRespVO.java => task/IotOtaTaskRespVO.java} (63%) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/{upgrade/record/IotOtaUpgradeRecordPageReqVO.java => task/record/IotOtaTaskRecordPageReqVO.java} (56%) create mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordRespVO.java delete mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordRespVO.java create mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaTaskMapper.java delete mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeTaskMapper.java rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/{IotOtaUpgradeRecordService.java => IotOtaTaskRecordService.java} (72%) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/{IotOtaUpgradeRecordServiceImpl.java => IotOtaTaskRecordServiceImpl.java} (81%) create mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskService.java rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/{IotOtaUpgradeTaskServiceImpl.java => IotOtaTaskServiceImpl.java} (59%) delete mode 100644 yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskService.java diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskController.java new file mode 100644 index 0000000000..807f96993b --- /dev/null +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskController.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.iot.controller.admin.ota; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskRespVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskCreateReqVO; +import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; +import cn.iocoder.yudao.module.iot.service.ota.IotOtaTaskService; +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.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - IoT OTA 升级任务") +@RestController +@RequestMapping("/iot/ota/task") +@Validated +public class IotOtaTaskController { + + @Resource + private IotOtaTaskService otaTaskService; + + @PostMapping("/create") + @Operation(summary = "创建 OTA 升级任务") + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:create')") + public CommonResult createOtaTask(@Valid @RequestBody IotOtaTaskCreateReqVO createReqVO) { + return success(otaTaskService.createOtaTask(createReqVO)); + } + + @PostMapping("/cancel") + @Operation(summary = "取消 OTA 升级任务") + @Parameter(name = "id", description = "升级任务编号", required = true) + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:cancel')") + public CommonResult cancelOtaTask(@RequestParam("id") Long id) { + otaTaskService.cancelOtaTask(id); + return success(true); + } + + @GetMapping("/page") + @Operation(summary = "获得 OTA 升级任务分页") + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:query')") + public CommonResult> getOtaTaskPage(@Valid IotOtaTaskPageReqVO pageReqVO) { + PageResult pageResult = otaTaskService.getOtaTaskPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, IotOtaTaskRespVO.class)); + } + + @GetMapping("/get") + @Operation(summary = "获得 OTA 升级任务") + @Parameter(name = "id", description = "升级任务编号", required = true, example = "1024") + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:query')") + public CommonResult getOtaTask(@RequestParam("id") Long id) { + IotOtaTaskDO upgradeTask = otaTaskService.getOtaTask(id); + return success(BeanUtils.toBean(upgradeTask, IotOtaTaskRespVO.class)); + } + +} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskRecordController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskRecordController.java new file mode 100644 index 0000000000..e2b8d0aa48 --- /dev/null +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskRecordController.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.iot.controller.admin.ota; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordRespVO; +import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; +import cn.iocoder.yudao.module.iot.service.ota.IotOtaTaskRecordService; +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.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - IoT OTA 升级任务记录") +@RestController +@RequestMapping("/iot/ota/task-record") +@Validated +public class IotOtaTaskRecordController { + + @Resource + private IotOtaTaskRecordService otaTaskRecordService; + + @GetMapping("/get-statistics") + @Operation(summary = "固件升级设备统计") + @PreAuthorize("@ss.hasPermission('iot:ota-task-record:query')") + @Parameter(name = "firmwareId", description = "固件编号", required = true, example = "1024") + public CommonResult> getOtaTaskRecordStatistics(@RequestParam(value = "firmwareId") Long firmwareId) { + return success(otaTaskRecordService.getOtaTaskRecordStatistics(firmwareId)); + } + + @GetMapping("/get-count") + @Operation(summary = "获得升级记录分页 tab 数量") + @PreAuthorize("@ss.hasPermission('iot:ota-task-record:query')") + public CommonResult> getOtaTaskRecordCount(@Valid IotOtaTaskRecordPageReqVO pageReqVO) { + return success(otaTaskRecordService.getOtaTaskRecordCount(pageReqVO)); + } + + @GetMapping("/page") + @Operation(summary = "获得升级记录分页") + @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") + public CommonResult> getOtaTaskRecordPage( + @Valid IotOtaTaskRecordPageReqVO pageReqVO) { + PageResult pageResult = otaTaskRecordService.getOtaTaskRecordPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, IotOtaTaskRecordRespVO.class)); + } + + @GetMapping("/get") + @Operation(summary = "获得升级记录") + @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") + @Parameter(name = "id", description = "升级记录编号", required = true, example = "1024") + public CommonResult getOtaTaskRecord(@RequestParam("id") Long id) { + IotOtaTaskRecordDO upgradeRecord = otaTaskRecordService.getOtaTaskRecord(id); + return success(BeanUtils.toBean(upgradeRecord, IotOtaTaskRecordRespVO.class)); + } + +} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeRecordController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeRecordController.java deleted file mode 100644 index 855391b28a..0000000000 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeRecordController.java +++ /dev/null @@ -1,66 +0,0 @@ -package cn.iocoder.yudao.module.iot.controller.admin.ota; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordRespVO; -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; -import cn.iocoder.yudao.module.iot.service.ota.IotOtaUpgradeRecordService; -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.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -@Tag(name = "管理后台 - IoT OTA 升级记录") -@RestController -@RequestMapping("/iot/ota-upgrade-record") -@Validated -public class IotOtaUpgradeRecordController { - - @Resource - private IotOtaUpgradeRecordService upgradeRecordService; - - @GetMapping("/get-statistics") - @Operation(summary = "固件升级设备统计") - @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") - @Parameter(name = "firmwareId", description = "固件编号", required = true, example = "1024") - public CommonResult> getOtaUpgradeRecordStatistics(@RequestParam(value = "firmwareId") Long firmwareId) { - return success(upgradeRecordService.getOtaUpgradeRecordStatistics(firmwareId)); - } - - @GetMapping("/get-count") - @Operation(summary = "获得升级记录分页 tab 数量") - @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") - public CommonResult> getOtaUpgradeRecordCount( - @Valid IotOtaUpgradeRecordPageReqVO pageReqVO) { - return success(upgradeRecordService.getOtaUpgradeRecordCount(pageReqVO)); - } - - @GetMapping("/page") - @Operation(summary = "获得升级记录分页") - @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") - public CommonResult> getUpgradeRecordPage( - @Valid IotOtaUpgradeRecordPageReqVO pageReqVO) { - PageResult pageResult = upgradeRecordService.getUpgradeRecordPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, IotOtaUpgradeRecordRespVO.class)); - } - - @GetMapping("/get") - @Operation(summary = "获得升级记录") - @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") - @Parameter(name = "id", description = "升级记录编号", required = true, example = "1024") - public CommonResult getUpgradeRecord(@RequestParam("id") Long id) { - IotOtaTaskRecordDO upgradeRecord = upgradeRecordService.getUpgradeRecord(id); - return success(BeanUtils.toBean(upgradeRecord, IotOtaUpgradeRecordRespVO.class)); - } - -} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeTaskController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeTaskController.java deleted file mode 100644 index 834723700b..0000000000 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeTaskController.java +++ /dev/null @@ -1,64 +0,0 @@ -package cn.iocoder.yudao.module.iot.controller.admin.ota; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskRespVO; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskSaveReqVO; -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; -import cn.iocoder.yudao.module.iot.service.ota.IotOtaUpgradeTaskService; -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.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -@Tag(name = "管理后台 - IoT OTA 升级任务") -@RestController -@RequestMapping("/iot/ota-upgrade-task") -@Validated -public class IotOtaUpgradeTaskController { - - @Resource - private IotOtaUpgradeTaskService upgradeTaskService; - - @PostMapping("/create") - @Operation(summary = "创建升级任务") - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:create')") - public CommonResult createUpgradeTask(@Valid @RequestBody IotOtaUpgradeTaskSaveReqVO createReqVO) { - return success(upgradeTaskService.createUpgradeTask(createReqVO)); - } - - @PostMapping("/cancel") - @Operation(summary = "取消升级任务") - @Parameter(name = "id", description = "升级任务编号", required = true) - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:cancel')") - public CommonResult cancelUpgradeTask(@RequestParam("id") Long id) { - upgradeTaskService.cancelUpgradeTask(id); - return success(true); - } - - @GetMapping("/page") - @Operation(summary = "获得升级任务分页") - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:query')") - public CommonResult> getUpgradeTaskPage(@Valid IotOtaUpgradeTaskPageReqVO pageReqVO) { - PageResult pageResult = upgradeTaskService.getUpgradeTaskPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, IotOtaUpgradeTaskRespVO.class)); - } - - @GetMapping("/get") - @Operation(summary = "获得升级任务") - @Parameter(name = "id", description = "升级任务编号", required = true, example = "1024") - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:query')") - public CommonResult getUpgradeTask(@RequestParam("id") Long id) { - IotOtaTaskDO upgradeTask = upgradeTaskService.getUpgradeTask(id); - return success(BeanUtils.toBean(upgradeTask, IotOtaUpgradeTaskRespVO.class)); - } - -} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskCreateReqVO.java similarity index 88% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskCreateReqVO.java index ebf49cbe92..853e10c548 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskCreateReqVO.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task; +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task; import cn.iocoder.yudao.framework.common.validation.InEnum; import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskDeviceScopeEnum; @@ -9,9 +9,9 @@ import lombok.Data; import java.util.List; -@Schema(description = "管理后台 - IoT OTA 升级任务创建/修改 Request VO") +@Schema(description = "管理后台 - IoT OTA 升级任务创建 Request VO") @Data -public class IotOtaUpgradeTaskSaveReqVO { +public class IotOtaTaskCreateReqVO { @NotEmpty(message = "任务名称不能为空") @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "升级任务") @@ -27,7 +27,7 @@ public class IotOtaUpgradeTaskSaveReqVO { @Schema(description = "升级范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "升级范围不能为空") @InEnum(value = IotOtaTaskDeviceScopeEnum.class) - private Integer scope; + private Integer deviceScope; @Schema(description = "选中的设备编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") private List deviceIds; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskPageReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskPageReqVO.java similarity index 50% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskPageReqVO.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskPageReqVO.java index 9ce36b27e3..4638f1a401 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskPageReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskPageReqVO.java @@ -1,19 +1,17 @@ -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task; +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task; import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; import lombok.Data; -@Data @Schema(description = "管理后台 - IoT OTA 升级任务分页 Request VO") -public class IotOtaUpgradeTaskPageReqVO extends PageParam { - - @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @NotNull(message = "固件编号不能为空") - private Long firmwareId; +@Data +public class IotOtaTaskPageReqVO extends PageParam { @Schema(description = "任务名称", example = "升级任务") private String name; + @Schema(description = "固件编号", example = "1024") + private Long firmwareId; + } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskRespVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskRespVO.java similarity index 63% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskRespVO.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskRespVO.java index 666e17cb39..247f7c658f 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskRespVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskRespVO.java @@ -1,15 +1,14 @@ -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task; +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task; import com.fhs.core.trans.vo.VO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; -import java.util.List; -@Data @Schema(description = "管理后台 - IoT OTA 升级任务 Response VO") -public class IotOtaUpgradeTaskRespVO implements VO { +@Data +public class IotOtaTaskRespVO implements VO { @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @@ -23,20 +22,17 @@ public class IotOtaUpgradeTaskRespVO implements VO { @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long firmwareId; - @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") private Integer status; - @Schema(description = "升级范围", requiredMode = Schema.RequiredMode.REQUIRED, allowableValues = {"1", "2"}) - private Integer scope; + @Schema(description = "升级范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer deviceScope; - @Schema(description = "设备数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - private Long deviceCount; + @Schema(description = "设备总共数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer deviceTotalCount; - @Schema(description = "选中的设备编号数组", example = "1024") - private List deviceIds; - - @Schema(description = "选中的设备名字数组", example = "1024") - private List deviceNames; + @Schema(description = "设备成功数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "66") + private Integer deviceSuccessCount; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022-07-08 07:30:00") private LocalDateTime createTime; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordPageReqVO.java similarity index 56% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordPageReqVO.java index cf74cbb8c2..f6d1cf18be 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordPageReqVO.java @@ -1,29 +1,19 @@ -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record; +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record; import cn.iocoder.yudao.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Data; -@Data @Schema(description = "管理后台 - IoT OTA 升级记录分页 Request VO") -public class IotOtaUpgradeRecordPageReqVO extends PageParam { +@Data +public class IotOtaTaskRecordPageReqVO extends PageParam { - // TODO @li:已经有注解,不用重复注释 - /** - * 升级任务编号字段。 - *

- * 该字段用于标识升级任务的唯一编号,不能为空。 - */ + // TODO @芋艿:分页条件字段梳理; @Schema(description = "升级任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "升级任务编号不能为空") private Long taskId; - /** - * 设备标识字段。 - *

- * 该字段用于标识设备的名称,通常用于区分不同的设备。 - */ @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "摄像头A1-1") private String deviceName; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordRespVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordRespVO.java new file mode 100644 index 0000000000..ff28c68e7a --- /dev/null +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordRespVO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - IoT OTA 升级记录 Response VO") +@Data +public class IotOtaTaskRecordRespVO { + + // TODO @芋艿:梳理字段 + + @Schema(description = "升级记录编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long firmwareId; + + @Schema(description = "固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0") + private String firmwareVersion; + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long taskId; + + @Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot") + private String productKey; + + @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot") + private String deviceName; + + @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String deviceId; + + @Schema(description = "来源的固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long fromFirmwareId; + + @Schema(description = "来源的固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0") + private String fromFirmwareVersion; + + @Schema(description = "升级状态", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer status; + + @Schema(description = "升级进度,百分比", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer progress; + + @Schema(description = "升级进度描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private String description; + + @Schema(description = "升级开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime startTime; + + @Schema(description = "升级结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime endTime; + +} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordRespVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordRespVO.java deleted file mode 100644 index 0f7ddc75f6..0000000000 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordRespVO.java +++ /dev/null @@ -1,109 +0,0 @@ -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record; - -import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; -import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceMessageDO; -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO; -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; -import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskRecordStatusEnum; -import com.fhs.core.trans.anno.Trans; -import com.fhs.core.trans.constant.TransType; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.time.LocalDateTime; - -@Data -@Schema(description = "管理后台 - IoT OTA 升级记录 Response VO") -public class IotOtaUpgradeRecordRespVO { - - /** - * 升级记录编号 - */ - @Schema(description = "升级记录编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - private Long id; - /** - * 固件编号 - *

- * 关联 {@link IotOtaFirmwareDO#getId()} - */ - @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @Trans(type = TransType.SIMPLE, target = IotOtaFirmwareDO.class, fields = {"version"}, refs = {"firmwareVersion"}) - private Long firmwareId; - /** - * 固件版本 - */ - @Schema(description = "固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0") - private String firmwareVersion; - /** - * 任务编号 - *

- * 关联 {@link IotOtaTaskDO#getId()} - */ - @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - private Long taskId; - /** - * 产品标识 - *

- * 关联 {@link cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO#getId()} - */ - @Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot") - private String productKey; - /** - * 设备名称 - *

- * 关联 {@link cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO#getId()} - */ - @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot") - private String deviceName; - /** - * 设备编号 - *

- * 关联 {@link cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO#getId()} - */ - @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - private String deviceId; - /** - * 来源的固件编号 - *

- * 关联 {@link IotDeviceDO#getFirmwareId()} - */ - @Schema(description = "来源的固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @Trans(type = TransType.SIMPLE, target = IotOtaFirmwareDO.class, fields = {"version"}, refs = {"fromFirmwareVersion"}) - private Long fromFirmwareId; - /** - * 来源的固件版本 - */ - @Schema(description = "来源的固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0") - private String fromFirmwareVersion; - /** - * 升级状态 - *

- * 关联 {@link IotOtaTaskRecordStatusEnum} - */ - @Schema(description = "升级状态", requiredMode = Schema.RequiredMode.REQUIRED, allowableValues = {"0", "10", "20", "30", "40", "50"}) - private Integer status; - /** - * 升级进度,百分比 - */ - @Schema(description = "升级进度,百分比", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") - private Integer progress; - /** - * 升级进度描述 - *

- * 注意,只记录设备最后一次的升级进度描述 - * 如果想看历史记录,可以查看 {@link IotDeviceMessageDO} 设备日志 - */ - @Schema(description = "升级进度描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") - private String description; - /** - * 升级开始时间 - */ - @Schema(description = "升级开始时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022-07-08 07:30:00") - private LocalDateTime startTime; - /** - * 升级结束时间 - */ - @Schema(description = "升级结束时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022-07-08 07:30:00") - private LocalDateTime endTime; - -} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaTaskMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaTaskMapper.java new file mode 100644 index 0000000000..f89fdf79e2 --- /dev/null +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaTaskMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.iot.dal.mysql.ota; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO; +import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * OTA 升级任务 Mapper + * + * @author Shelly + */ +@Mapper +public interface IotOtaTaskMapper extends BaseMapperX { + + default List selectByFirmwareIdAndName(Long firmwareId, String name) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(IotOtaTaskDO::getFirmwareId, firmwareId) + .eqIfPresent(IotOtaTaskDO::getName, name)); + } + + default PageResult selectUpgradeTaskPage(IotOtaTaskPageReqVO pageReqVO) { + return selectPage(pageReqVO, new LambdaQueryWrapperX() + .eqIfPresent(IotOtaTaskDO::getFirmwareId, pageReqVO.getFirmwareId()) + .likeIfPresent(IotOtaTaskDO::getName, pageReqVO.getName())); + } + +} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeRecordMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeRecordMapper.java index 81bb604c6d..53620780bf 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeRecordMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeRecordMapper.java @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.iot.dal.mysql.ota; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO; import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; @@ -80,11 +80,11 @@ public interface IotOtaUpgradeRecordMapper extends BaseMapperX selectUpgradeRecordPage(IotOtaUpgradeRecordPageReqVO pageReqVO) { + default PageResult selectUpgradeRecordPage(IotOtaTaskRecordPageReqVO pageReqVO) { // TODO @li:这里的注释,可以去掉哈;然后下面的“如果”。。。也没必要注释 // 使用LambdaQueryWrapperX构建查询条件,并根据请求参数动态添加查询条件 return selectPage(pageReqVO, new LambdaQueryWrapperX() - .likeIfPresent(IotOtaTaskRecordDO::getDeviceName, pageReqVO.getDeviceName()) // 如果设备名称存在,则添加模糊查询条件 +// .likeIfPresent(IotOtaTaskRecordDO::getDeviceName, pageReqVO.getDeviceName()) // 如果设备名称存在,则添加模糊查询条件 .eqIfPresent(IotOtaTaskRecordDO::getTaskId, pageReqVO.getTaskId())); // 如果任务ID存在,则添加等值查询条件 } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeTaskMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeTaskMapper.java deleted file mode 100644 index db778b2773..0000000000 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeTaskMapper.java +++ /dev/null @@ -1,57 +0,0 @@ -package cn.iocoder.yudao.module.iot.dal.mysql.ota; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO; -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -/** - * OTA 升级任务Mapper - * - * @author Shelly - */ -@Mapper -public interface IotOtaUpgradeTaskMapper extends BaseMapperX { - - /** - * 根据固件ID和任务名称查询升级任务列表。 - * - * @param firmwareId 固件ID,用于筛选升级任务 - * @param name 任务名称,用于筛选升级任务 - * @return 符合条件的升级任务列表 - */ - default List selectByFirmwareIdAndName(Long firmwareId, String name) { - return selectList(new LambdaQueryWrapperX() - .eqIfPresent(IotOtaTaskDO::getFirmwareId, firmwareId) - .eqIfPresent(IotOtaTaskDO::getName, name)); - } - - /** - * 分页查询升级任务列表,支持根据固件ID和任务名称进行筛选。 - * - * @param pageReqVO 分页查询请求对象,包含分页参数和筛选条件 - * @return 分页结果,包含符合条件的升级任务列表 - */ - default PageResult selectUpgradeTaskPage(IotOtaUpgradeTaskPageReqVO pageReqVO) { - return selectPage(pageReqVO, new LambdaQueryWrapperX() - .eqIfPresent(IotOtaTaskDO::getFirmwareId, pageReqVO.getFirmwareId()) - .likeIfPresent(IotOtaTaskDO::getName, pageReqVO.getName())); - } - - /** - * 根据任务状态查询升级任务列表 - *

- * 该函数通过传入的任务状态,查询数据库中符合条件的升级任务列表。 - * - * @param status 任务状态,用于筛选升级任务的状态值 - * @return 返回符合条件的升级任务列表,列表中的每个元素为 IotOtaUpgradeTaskDO 对象 - */ - default List selectUpgradeTaskByState(Integer status) { - return selectList(IotOtaTaskDO::getStatus, status); - } - -} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskRecordService.java similarity index 72% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskRecordService.java index c27380d0ab..4a8367017a 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskRecordService.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.iot.service.ota; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO; import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; import jakarta.validation.Valid; @@ -13,7 +13,7 @@ import java.util.Map; * IotOtaUpgradeRecordService 接口定义了与物联网设备OTA升级记录相关的操作。 * 该接口提供了创建、更新、查询、统计和重试升级记录的功能。 */ -public interface IotOtaUpgradeRecordService { +public interface IotOtaTaskRecordService { /** * 批量创建 OTA 升级记录 @@ -23,37 +23,37 @@ public interface IotOtaUpgradeRecordService { * @param firmwareId 固件ID,表示要升级到的固件版本。 * @param upgradeTaskId 升级任务ID,表示此次升级任务的唯一标识。 */ - void createOtaUpgradeRecordBatch(List deviceIds, Long firmwareId, Long upgradeTaskId); + void createOtaTaskRecordBatch(List deviceIds, Long firmwareId, Long upgradeTaskId); /** * 获取 OTA 升级记录的数量统计 * * @return 返回一个 Map,其中键为状态码,值为对应状态的升级记录数量 */ - Map getOtaUpgradeRecordCount(@Valid IotOtaUpgradeRecordPageReqVO pageReqVO); + Map getOtaTaskRecordCount(@Valid IotOtaTaskRecordPageReqVO pageReqVO); /** - * 获取 OTA 升级记录的统计信息。 + * 获取 OTA 升级记录的统计信息 * * @return 返回一个 Map,其中键为状态码,值为对应状态的升级记录统计信息 */ - Map getOtaUpgradeRecordStatistics(Long firmwareId); + Map getOtaTaskRecordStatistics(Long firmwareId); /** - * 获取指定 ID 的 OTA 升级记录的详细信息。 + * 获取指定 ID 的 OTA 升级记录的详细信息 * - * @param id 需要查询的升级记录的ID。 - * @return 返回包含升级记录详细信息的响应对象。 + * @param id 需要查询的升级记录的 ID + * @return 返回包含升级记录详细信息的响应对象 */ - IotOtaTaskRecordDO getUpgradeRecord(Long id); + IotOtaTaskRecordDO getOtaTaskRecord(Long id); /** - * 分页查询 OTA 升级记录。 + * 分页查询 OTA 升级记录 * * @param pageReqVO 包含分页查询条件的请求对象,必须经过验证。 * @return 返回包含分页查询结果的响应对象。 */ - PageResult getUpgradeRecordPage(@Valid IotOtaUpgradeRecordPageReqVO pageReqVO); + PageResult getOtaTaskRecordPage(@Valid IotOtaTaskRecordPageReqVO pageReqVO); /** * 根据任务 ID 取消升级记录 diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskRecordServiceImpl.java similarity index 81% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskRecordServiceImpl.java index 0e6d431e27..4f9cb7e1d8 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskRecordServiceImpl.java @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.iot.service.ota; import cn.hutool.core.convert.Convert; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO; import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; @@ -29,40 +29,39 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*; @Slf4j @Service @Validated -public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordService { +public class IotOtaTaskRecordServiceImpl implements IotOtaTaskRecordService { @Resource - private IotOtaUpgradeRecordMapper upgradeRecordMapper; + private IotOtaUpgradeRecordMapper iotOtaUpgradeRecordMapper; + @Resource private IotDeviceService deviceService; @Resource private IotOtaFirmwareService firmwareService; @Resource - private IotOtaUpgradeTaskService upgradeTaskService; + private IotOtaTaskService upgradeTaskService; @Override - public void createOtaUpgradeRecordBatch(List deviceIds, Long firmwareId, Long upgradeTaskId) { + public void createOtaTaskRecordBatch(List deviceIds, Long firmwareId, Long upgradeTaskId) { // 1. 校验升级记录信息是否存在,并且已经取消的任务可以重新开始 deviceIds.forEach(deviceId -> validateUpgradeRecordDuplicate(firmwareId, upgradeTaskId, String.valueOf(deviceId))); // 2. 初始化OTA升级记录列表信息 - IotOtaTaskDO upgradeTask = upgradeTaskService.getUpgradeTask(upgradeTaskId); + IotOtaTaskDO upgradeTask = upgradeTaskService.getOtaTask(upgradeTaskId); IotOtaFirmwareDO firmware = firmwareService.getOtaFirmware(firmwareId); List deviceList = deviceService.getDeviceListByIdList(deviceIds); List upgradeRecordList = deviceList.stream().map(device -> { IotOtaTaskRecordDO upgradeRecord = new IotOtaTaskRecordDO(); upgradeRecord.setFirmwareId(firmware.getId()); upgradeRecord.setTaskId(upgradeTask.getId()); - upgradeRecord.setProductKey(device.getProductKey()); - upgradeRecord.setDeviceName(device.getDeviceName()); - upgradeRecord.setDeviceId(Convert.toStr(device.getId())); + upgradeRecord.setDeviceId(device.getId()); upgradeRecord.setFromFirmwareId(Convert.toLong(device.getFirmwareId())); upgradeRecord.setStatus(IotOtaTaskRecordStatusEnum.PENDING.getStatus()); upgradeRecord.setProgress(0); return upgradeRecord; }).toList(); // 3. 保存数据 - upgradeRecordMapper.insertBatch(upgradeRecordList); + iotOtaUpgradeRecordMapper.insertBatch(upgradeRecordList); // TODO @芋艿:在这里需要处理推送升级任务的逻辑 } @@ -76,9 +75,9 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic */ @Override @Transactional - public Map getOtaUpgradeRecordCount(IotOtaUpgradeRecordPageReqVO pageReqVO) { + public Map getOtaTaskRecordCount(IotOtaTaskRecordPageReqVO pageReqVO) { // 分别查询不同状态的OTA升级记录数量 - List> upgradeRecordCountList = upgradeRecordMapper.selectOtaUpgradeRecordCount( + List> upgradeRecordCountList = iotOtaUpgradeRecordMapper.selectOtaUpgradeRecordCount( pageReqVO.getTaskId(), pageReqVO.getDeviceName()); Map upgradeRecordCountMap = ObjectUtils.defaultIfNull(upgradeRecordCountList.get(0)); Objects.requireNonNull(upgradeRecordCountMap); @@ -89,9 +88,9 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic @Override @Transactional - public Map getOtaUpgradeRecordStatistics(Long firmwareId) { + public Map getOtaTaskRecordStatistics(Long firmwareId) { // 查询并统计不同状态的OTA升级记录数量 - List> upgradeRecordStatisticsList = upgradeRecordMapper.selectOtaUpgradeRecordStatistics(firmwareId); + List> upgradeRecordStatisticsList = iotOtaUpgradeRecordMapper.selectOtaUpgradeRecordStatistics(firmwareId); Map upgradeRecordStatisticsMap = ObjectUtils.defaultIfNull(upgradeRecordStatisticsList.get(0)); Objects.requireNonNull(upgradeRecordStatisticsMap); return upgradeRecordStatisticsMap.entrySet().stream().collect(Collectors.toMap( @@ -100,19 +99,19 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic } @Override - public IotOtaTaskRecordDO getUpgradeRecord(Long id) { - return upgradeRecordMapper.selectById(id); + public IotOtaTaskRecordDO getOtaTaskRecord(Long id) { + return iotOtaUpgradeRecordMapper.selectById(id); } @Override - public PageResult getUpgradeRecordPage(IotOtaUpgradeRecordPageReqVO pageReqVO) { - return upgradeRecordMapper.selectUpgradeRecordPage(pageReqVO); + public PageResult getOtaTaskRecordPage(IotOtaTaskRecordPageReqVO pageReqVO) { + return iotOtaUpgradeRecordMapper.selectUpgradeRecordPage(pageReqVO); } @Override public void cancelUpgradeRecordByTaskId(Long taskId) { // 暂定只有待推送的升级记录可以取消 TODO @芋艿:可以看看阿里云,哪些可以取消 - upgradeRecordMapper.updateUpgradeRecordStatusByTaskIdAndStatus( + iotOtaUpgradeRecordMapper.updateUpgradeRecordStatusByTaskIdAndStatus( IotOtaTaskRecordStatusEnum.CANCELED.getStatus(), taskId, IotOtaTaskRecordStatusEnum.PENDING.getStatus()); } @@ -127,7 +126,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic */ private IotOtaTaskRecordDO validateUpgradeRecordExists(Long id) { // 根据ID查询升级记录 - IotOtaTaskRecordDO upgradeRecord = upgradeRecordMapper.selectById(id); + IotOtaTaskRecordDO upgradeRecord = iotOtaUpgradeRecordMapper.selectById(id); // 如果查询结果为空,抛出异常 if (upgradeRecord == null) { throw exception(OTA_UPGRADE_RECORD_NOT_EXISTS); @@ -147,7 +146,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic * @param deviceId 设备ID,用于标识特定的设备 */ private void validateUpgradeRecordDuplicate(Long firmwareId, Long taskId, String deviceId) { - IotOtaTaskRecordDO upgradeRecord = upgradeRecordMapper.selectByConditions(firmwareId, taskId, deviceId); + IotOtaTaskRecordDO upgradeRecord = iotOtaUpgradeRecordMapper.selectByConditions(firmwareId, taskId, deviceId); if (upgradeRecord == null) { return; } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskService.java new file mode 100644 index 0000000000..f3b5374697 --- /dev/null +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskService.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.iot.service.ota; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskCreateReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO; +import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; +import jakarta.validation.Valid; + +/** + * IoT OTA 升级任务 Service 接口 + * + * @author Shelly Chan + */ +public interface IotOtaTaskService { + + /** + * 创建 OTA升 级任务 + * + * @param createReqVO 创建请求对象 + * @return 升级任务编号 + */ + Long createOtaTask(@Valid IotOtaTaskCreateReqVO createReqVO); + + /** + * 取消 OTA 升级任务 + * + * @param id 升级任务编号 + */ + void cancelOtaTask(Long id); + + /** + * 获取 OTA 升级任务 + * + * @param id 升级任务编号 + * @return 升级任务 + */ + IotOtaTaskDO getOtaTask(Long id); + + /** + * 分页查询 OTA 升级任务 + * + * @param pageReqVO 分页查询请求 + * @return 升级任务分页结果 + */ + PageResult getOtaTaskPage(@Valid IotOtaTaskPageReqVO pageReqVO); + +} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskServiceImpl.java similarity index 59% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskServiceImpl.java index a61181d49a..13773a090b 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskServiceImpl.java @@ -4,12 +4,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskSaveReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskCreateReqVO; +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO; import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; -import cn.iocoder.yudao.module.iot.dal.mysql.ota.IotOtaUpgradeTaskMapper; +import cn.iocoder.yudao.module.iot.dal.mysql.ota.IotOtaTaskMapper; import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskDeviceScopeEnum; import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskStatusEnum; import cn.iocoder.yudao.module.iot.service.device.IotDeviceService; @@ -22,56 +22,54 @@ import org.springframework.validation.annotation.Validated; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*; /** - * IoT OTA升级任务 Service 实现类 + * IoT OTA 升级任务 Service 实现类 * * @author Shelly Chan */ @Service @Validated @Slf4j -public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService { +public class IotOtaTaskServiceImpl implements IotOtaTaskService { @Resource - private IotOtaUpgradeTaskMapper upgradeTaskMapper; + private IotOtaTaskMapper otaTaskMapper; @Resource - @Lazy private IotDeviceService deviceService; @Resource - @Lazy - private IotOtaFirmwareService firmwareService; + private IotOtaFirmwareService otaFirmwareService; @Resource - @Lazy - private IotOtaUpgradeRecordService upgradeRecordService; + @Lazy // 延迟,避免循环依赖报错 + private IotOtaTaskRecordService otaUpgradeRecordService; @Override @Transactional(rollbackFor = Exception.class) - public Long createUpgradeTask(IotOtaUpgradeTaskSaveReqVO createReqVO) { + public Long createOtaTask(IotOtaTaskCreateReqVO createReqVO) { // 1.1 校验同一固件的升级任务名称不重复 validateFirmwareTaskDuplicate(createReqVO.getFirmwareId(), createReqVO.getName()); // 1.2 校验固件信息是否存在 - IotOtaFirmwareDO firmware = firmwareService.validateFirmwareExists(createReqVO.getFirmwareId()); + IotOtaFirmwareDO firmware = otaFirmwareService.validateFirmwareExists(createReqVO.getFirmwareId()); // 1.3 补全设备范围信息,并且校验是否又设备可以升级,如果没有设备可以升级,则报错 - validateScopeAndDevice(createReqVO.getScope(), createReqVO.getDeviceIds(), firmware.getProductId()); + validateScopeAndDevice(createReqVO.getDeviceScope(), createReqVO.getDeviceIds(), firmware.getProductId()); // 2. 保存 OTA 升级任务信息到数据库 IotOtaTaskDO upgradeTask = initOtaUpgradeTask(createReqVO, firmware.getProductId()); - upgradeTaskMapper.insert(upgradeTask); + otaTaskMapper.insert(upgradeTask); // 3. 生成设备升级记录信息并存储,等待定时任务轮询 - upgradeRecordService.createOtaUpgradeRecordBatch(upgradeTask.getDeviceIds(), firmware.getId(), upgradeTask.getId()); + // TODO @芋艿:在处理; +// otaUpgradeRecordService.createOtaUpgradeRecordBatch(upgradeTask.getDeviceIds(), firmware.getId(), upgradeTask.getId()); return upgradeTask.getId(); } @Override @Transactional(rollbackFor = Exception.class) - public void cancelUpgradeTask(Long id) { + public void cancelOtaTask(Long id) { // 1.1 校验升级任务是否存在 IotOtaTaskDO upgradeTask = validateUpgradeTaskExists(id); // 1.2 校验升级任务是否可以取消 @@ -81,52 +79,34 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService { } // 2. 更新 OTA 升级任务状态为已取消 - upgradeTaskMapper.updateById(IotOtaTaskDO.builder() + otaTaskMapper.updateById(IotOtaTaskDO.builder() .id(id).status(IotOtaTaskStatusEnum.CANCELED.getStatus()) .build()); // 3. 更新 OTA 升级记录状态为已取消 - upgradeRecordService.cancelUpgradeRecordByTaskId(id); + otaUpgradeRecordService.cancelUpgradeRecordByTaskId(id); } @Override - public IotOtaTaskDO getUpgradeTask(Long id) { - return upgradeTaskMapper.selectById(id); + public IotOtaTaskDO getOtaTask(Long id) { + return otaTaskMapper.selectById(id); } @Override - public PageResult getUpgradeTaskPage(IotOtaUpgradeTaskPageReqVO pageReqVO) { - return upgradeTaskMapper.selectUpgradeTaskPage(pageReqVO); - } - - @Override - public List getUpgradeTaskByState(Integer state) { - return upgradeTaskMapper.selectUpgradeTaskByState(state); - } - - @Override - public void updateUpgradeTaskStatus(Long id, Integer status) { - upgradeTaskMapper.updateById(IotOtaTaskDO.builder().id(id).status(status).build()); + public PageResult getOtaTaskPage(IotOtaTaskPageReqVO pageReqVO) { + return otaTaskMapper.selectUpgradeTaskPage(pageReqVO); } /** * 校验固件升级任务是否重复 */ private void validateFirmwareTaskDuplicate(Long firmwareId, String taskName) { - List upgradeTaskList = upgradeTaskMapper.selectByFirmwareIdAndName(firmwareId, taskName); + List upgradeTaskList = otaTaskMapper.selectByFirmwareIdAndName(firmwareId, taskName); if (CollUtil.isNotEmpty(upgradeTaskList)) { throw exception(OTA_UPGRADE_TASK_NAME_DUPLICATE); } } - /** - * 验证升级任务的范围和设备列表的有效性。 - * - * @param scope 升级任务的范围,参考 IotOtaUpgradeTaskScopeEnum 枚举值 - * @param deviceIds 设备ID列表,当范围为"选择设备"时,该列表不能为空 - * @param productId 产品ID,当范围为"所有设备"时,用于获取设备列表 - * @throws cn.iocoder.yudao.framework.common.exception.ServiceException,抛出相应的异常 - */ private void validateScopeAndDevice(Integer scope, List deviceIds, Long productId) { if (Objects.equals(scope, IotOtaTaskDeviceScopeEnum.SELECT.getScope())) { if (CollUtil.isEmpty(deviceIds)) { @@ -143,30 +123,24 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService { } } - /** - * 验证升级任务是否存在 - */ private IotOtaTaskDO validateUpgradeTaskExists(Long id) { - IotOtaTaskDO upgradeTask = upgradeTaskMapper.selectById(id); + IotOtaTaskDO upgradeTask = otaTaskMapper.selectById(id); if (Objects.isNull(upgradeTask)) { throw exception(OTA_UPGRADE_TASK_NOT_EXISTS); } return upgradeTask; } - /** - * 初始化升级任务 - */ - private IotOtaTaskDO initOtaUpgradeTask(IotOtaUpgradeTaskSaveReqVO createReqVO, Long productId) { + private IotOtaTaskDO initOtaUpgradeTask(IotOtaTaskCreateReqVO createReqVO, Long productId) { IotOtaTaskDO upgradeTask = BeanUtils.toBean(createReqVO, IotOtaTaskDO.class); upgradeTask.setDeviceTotalCount(Convert.toLong(CollUtil.size(createReqVO.getDeviceIds()))) .setStatus(IotOtaTaskStatusEnum.IN_PROGRESS.getStatus()); - if (Objects.equals(createReqVO.getScope(), IotOtaTaskDeviceScopeEnum.ALL.getScope())) { + if (Objects.equals(createReqVO.getDeviceScope(), IotOtaTaskDeviceScopeEnum.ALL.getScope())) { List deviceList = deviceService.getDeviceListByProductId(productId); upgradeTask.setDeviceTotalCount((long) deviceList.size()); - upgradeTask.setDeviceIds( - deviceList.stream().map(IotDeviceDO::getId).collect(Collectors.toList())); +// upgradeTask.setDeviceIds( +// deviceList.stream().map(IotDeviceDO::getId).collect(Collectors.toList())); } return upgradeTask; } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskService.java deleted file mode 100644 index 9611d151f3..0000000000 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskService.java +++ /dev/null @@ -1,68 +0,0 @@ -package cn.iocoder.yudao.module.iot.service.ota; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO; -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskSaveReqVO; -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; -import jakarta.validation.Valid; - -import java.util.List; - -/** - * IoT OTA升级任务 Service 接口 - * - * @author Shelly Chan - */ -public interface IotOtaUpgradeTaskService { - - /** - * 创建OTA升级任务 - * - * @param createReqVO OTA升级任务的创建请求对象,包含创建任务所需的信息 - * @return 创建成功的OTA升级任务的ID - */ - Long createUpgradeTask(@Valid IotOtaUpgradeTaskSaveReqVO createReqVO); - - /** - * 取消OTA升级任务 - * - * @param id 要取消的OTA升级任务的ID - */ - void cancelUpgradeTask(Long id); - - /** - * 根据ID获取OTA升级任务的详细信息 - * - * @param id OTA升级任务的ID - * @return OTA升级任务的详细信息对象 - */ - IotOtaTaskDO getUpgradeTask(Long id); - - /** - * 分页查询OTA升级任务 - * - * @param pageReqVO OTA升级任务的分页查询请求对象,包含查询条件和分页信息 - * @return 分页查询结果,包含OTA升级任务列表和总记录数 - */ - PageResult getUpgradeTaskPage(@Valid IotOtaUpgradeTaskPageReqVO pageReqVO); - - /** - * 根据任务状态获取升级任务列表 - * - * @param state 任务状态,用于筛选符合条件的升级任务 - * @return 返回符合指定状态的升级任务列表,列表中的元素为 IotOtaUpgradeTaskDO 对象 - */ - List getUpgradeTaskByState(Integer state); - - /** - * 更新升级任务的状态。 - *

- * 该函数用于根据任务ID更新指定升级任务的状态。通常用于在任务执行过程中 - * 更新任务的状态,例如从“进行中”变为“已完成”或“失败”。 - * - * @param id 升级任务的唯一标识符,类型为Long。不能为null。 - * @param status 要更新的任务状态,类型为Integer。通常表示任务的状态码,如0表示未开始,1表示进行中,2表示已完成等。 - */ - void updateUpgradeTaskStatus(Long id, Integer status); - -}