Commit 4749d93d0e4b12dbfe772d9fa97b3c3ce442b061

Authored by YunaiV
1 parent 5399e5bb

reactor:【IoT 物联网】调整 ota 的 task 实体定义(暂时未处理 controller)x2

Showing 14 changed files with 205 additions and 348 deletions
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeTaskController.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskController.java
@@ -3,11 +3,11 @@ package cn.iocoder.yudao.module.iot.controller.admin.ota; @@ -3,11 +3,11 @@ package cn.iocoder.yudao.module.iot.controller.admin.ota;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO;  
7 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskRespVO;  
8 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskSaveReqVO; 6 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO;
  7 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskRespVO;
  8 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskCreateReqVO;
9 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; 9 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO;
10 -import cn.iocoder.yudao.module.iot.service.ota.IotOtaUpgradeTaskService; 10 +import cn.iocoder.yudao.module.iot.service.ota.IotOtaTaskService;
11 import io.swagger.v3.oas.annotations.Operation; 11 import io.swagger.v3.oas.annotations.Operation;
12 import io.swagger.v3.oas.annotations.Parameter; 12 import io.swagger.v3.oas.annotations.Parameter;
13 import io.swagger.v3.oas.annotations.tags.Tag; 13 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -21,44 +21,44 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -21,44 +21,44 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
21 21
22 @Tag(name = "管理后台 - IoT OTA 升级任务") 22 @Tag(name = "管理后台 - IoT OTA 升级任务")
23 @RestController 23 @RestController
24 -@RequestMapping("/iot/ota-upgrade-task") 24 +@RequestMapping("/iot/ota/task")
25 @Validated 25 @Validated
26 -public class IotOtaUpgradeTaskController { 26 +public class IotOtaTaskController {
27 27
28 @Resource 28 @Resource
29 - private IotOtaUpgradeTaskService upgradeTaskService; 29 + private IotOtaTaskService otaTaskService;
30 30
31 @PostMapping("/create") 31 @PostMapping("/create")
32 - @Operation(summary = "创建升级任务")  
33 - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:create')")  
34 - public CommonResult<Long> createUpgradeTask(@Valid @RequestBody IotOtaUpgradeTaskSaveReqVO createReqVO) {  
35 - return success(upgradeTaskService.createUpgradeTask(createReqVO)); 32 + @Operation(summary = "创建 OTA 升级任务")
  33 + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:create')")
  34 + public CommonResult<Long> createOtaTask(@Valid @RequestBody IotOtaTaskCreateReqVO createReqVO) {
  35 + return success(otaTaskService.createOtaTask(createReqVO));
36 } 36 }
37 37
38 @PostMapping("/cancel") 38 @PostMapping("/cancel")
39 - @Operation(summary = "取消升级任务") 39 + @Operation(summary = "取消 OTA 升级任务")
40 @Parameter(name = "id", description = "升级任务编号", required = true) 40 @Parameter(name = "id", description = "升级任务编号", required = true)
41 - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:cancel')")  
42 - public CommonResult<Boolean> cancelUpgradeTask(@RequestParam("id") Long id) {  
43 - upgradeTaskService.cancelUpgradeTask(id); 41 + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:cancel')")
  42 + public CommonResult<Boolean> cancelOtaTask(@RequestParam("id") Long id) {
  43 + otaTaskService.cancelOtaTask(id);
44 return success(true); 44 return success(true);
45 } 45 }
46 46
47 @GetMapping("/page") 47 @GetMapping("/page")
48 - @Operation(summary = "获得升级任务分页")  
49 - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:query')")  
50 - public CommonResult<PageResult<IotOtaUpgradeTaskRespVO>> getUpgradeTaskPage(@Valid IotOtaUpgradeTaskPageReqVO pageReqVO) {  
51 - PageResult<IotOtaTaskDO> pageResult = upgradeTaskService.getUpgradeTaskPage(pageReqVO);  
52 - return success(BeanUtils.toBean(pageResult, IotOtaUpgradeTaskRespVO.class)); 48 + @Operation(summary = "获得 OTA 升级任务分页")
  49 + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:query')")
  50 + public CommonResult<PageResult<IotOtaTaskRespVO>> getOtaTaskPage(@Valid IotOtaTaskPageReqVO pageReqVO) {
  51 + PageResult<IotOtaTaskDO> pageResult = otaTaskService.getOtaTaskPage(pageReqVO);
  52 + return success(BeanUtils.toBean(pageResult, IotOtaTaskRespVO.class));
53 } 53 }
54 54
55 @GetMapping("/get") 55 @GetMapping("/get")
56 - @Operation(summary = "获得升级任务") 56 + @Operation(summary = "获得 OTA 升级任务")
57 @Parameter(name = "id", description = "升级任务编号", required = true, example = "1024") 57 @Parameter(name = "id", description = "升级任务编号", required = true, example = "1024")
58 - @PreAuthorize(value = "@ss.hasPermission('iot:ota-upgrade-task:query')")  
59 - public CommonResult<IotOtaUpgradeTaskRespVO> getUpgradeTask(@RequestParam("id") Long id) {  
60 - IotOtaTaskDO upgradeTask = upgradeTaskService.getUpgradeTask(id);  
61 - return success(BeanUtils.toBean(upgradeTask, IotOtaUpgradeTaskRespVO.class)); 58 + @PreAuthorize(value = "@ss.hasPermission('iot:ota-task:query')")
  59 + public CommonResult<IotOtaTaskRespVO> getOtaTask(@RequestParam("id") Long id) {
  60 + IotOtaTaskDO upgradeTask = otaTaskService.getOtaTask(id);
  61 + return success(BeanUtils.toBean(upgradeTask, IotOtaTaskRespVO.class));
62 } 62 }
63 63
64 } 64 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaUpgradeRecordController.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/IotOtaTaskRecordController.java
@@ -3,10 +3,10 @@ package cn.iocoder.yudao.module.iot.controller.admin.ota; @@ -3,10 +3,10 @@ package cn.iocoder.yudao.module.iot.controller.admin.ota;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO;  
7 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordRespVO; 6 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO;
  7 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordRespVO;
8 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; 8 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO;
9 -import cn.iocoder.yudao.module.iot.service.ota.IotOtaUpgradeRecordService; 9 +import cn.iocoder.yudao.module.iot.service.ota.IotOtaTaskRecordService;
10 import io.swagger.v3.oas.annotations.Operation; 10 import io.swagger.v3.oas.annotations.Operation;
11 import io.swagger.v3.oas.annotations.Parameter; 11 import io.swagger.v3.oas.annotations.Parameter;
12 import io.swagger.v3.oas.annotations.tags.Tag; 12 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -20,47 +20,46 @@ import java.util.Map; @@ -20,47 +20,46 @@ import java.util.Map;
20 20
21 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 21 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
22 22
23 -@Tag(name = "管理后台 - IoT OTA 升级记录") 23 +@Tag(name = "管理后台 - IoT OTA 升级任务记录")
24 @RestController 24 @RestController
25 -@RequestMapping("/iot/ota-upgrade-record") 25 +@RequestMapping("/iot/ota/task-record")
26 @Validated 26 @Validated
27 -public class IotOtaUpgradeRecordController { 27 +public class IotOtaTaskRecordController {
28 28
29 @Resource 29 @Resource
30 - private IotOtaUpgradeRecordService upgradeRecordService; 30 + private IotOtaTaskRecordService otaTaskRecordService;
31 31
32 @GetMapping("/get-statistics") 32 @GetMapping("/get-statistics")
33 @Operation(summary = "固件升级设备统计") 33 @Operation(summary = "固件升级设备统计")
34 - @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") 34 + @PreAuthorize("@ss.hasPermission('iot:ota-task-record:query')")
35 @Parameter(name = "firmwareId", description = "固件编号", required = true, example = "1024") 35 @Parameter(name = "firmwareId", description = "固件编号", required = true, example = "1024")
36 - public CommonResult<Map<Integer, Long>> getOtaUpgradeRecordStatistics(@RequestParam(value = "firmwareId") Long firmwareId) {  
37 - return success(upgradeRecordService.getOtaUpgradeRecordStatistics(firmwareId)); 36 + public CommonResult<Map<Integer, Long>> getOtaTaskRecordStatistics(@RequestParam(value = "firmwareId") Long firmwareId) {
  37 + return success(otaTaskRecordService.getOtaTaskRecordStatistics(firmwareId));
38 } 38 }
39 39
40 @GetMapping("/get-count") 40 @GetMapping("/get-count")
41 @Operation(summary = "获得升级记录分页 tab 数量") 41 @Operation(summary = "获得升级记录分页 tab 数量")
42 - @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')")  
43 - public CommonResult<Map<Integer, Long>> getOtaUpgradeRecordCount(  
44 - @Valid IotOtaUpgradeRecordPageReqVO pageReqVO) {  
45 - return success(upgradeRecordService.getOtaUpgradeRecordCount(pageReqVO)); 42 + @PreAuthorize("@ss.hasPermission('iot:ota-task-record:query')")
  43 + public CommonResult<Map<Integer, Long>> getOtaTaskRecordCount(@Valid IotOtaTaskRecordPageReqVO pageReqVO) {
  44 + return success(otaTaskRecordService.getOtaTaskRecordCount(pageReqVO));
46 } 45 }
47 46
48 @GetMapping("/page") 47 @GetMapping("/page")
49 @Operation(summary = "获得升级记录分页") 48 @Operation(summary = "获得升级记录分页")
50 @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") 49 @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')")
51 - public CommonResult<PageResult<IotOtaUpgradeRecordRespVO>> getUpgradeRecordPage(  
52 - @Valid IotOtaUpgradeRecordPageReqVO pageReqVO) {  
53 - PageResult<IotOtaTaskRecordDO> pageResult = upgradeRecordService.getUpgradeRecordPage(pageReqVO);  
54 - return success(BeanUtils.toBean(pageResult, IotOtaUpgradeRecordRespVO.class)); 50 + public CommonResult<PageResult<IotOtaTaskRecordRespVO>> getOtaTaskRecordPage(
  51 + @Valid IotOtaTaskRecordPageReqVO pageReqVO) {
  52 + PageResult<IotOtaTaskRecordDO> pageResult = otaTaskRecordService.getOtaTaskRecordPage(pageReqVO);
  53 + return success(BeanUtils.toBean(pageResult, IotOtaTaskRecordRespVO.class));
55 } 54 }
56 55
57 @GetMapping("/get") 56 @GetMapping("/get")
58 @Operation(summary = "获得升级记录") 57 @Operation(summary = "获得升级记录")
59 @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')") 58 @PreAuthorize("@ss.hasPermission('iot:ota-upgrade-record:query')")
60 @Parameter(name = "id", description = "升级记录编号", required = true, example = "1024") 59 @Parameter(name = "id", description = "升级记录编号", required = true, example = "1024")
61 - public CommonResult<IotOtaUpgradeRecordRespVO> getUpgradeRecord(@RequestParam("id") Long id) {  
62 - IotOtaTaskRecordDO upgradeRecord = upgradeRecordService.getUpgradeRecord(id);  
63 - return success(BeanUtils.toBean(upgradeRecord, IotOtaUpgradeRecordRespVO.class)); 60 + public CommonResult<IotOtaTaskRecordRespVO> getOtaTaskRecord(@RequestParam("id") Long id) {
  61 + IotOtaTaskRecordDO upgradeRecord = otaTaskRecordService.getOtaTaskRecord(id);
  62 + return success(BeanUtils.toBean(upgradeRecord, IotOtaTaskRecordRespVO.class));
64 } 63 }
65 64
66 } 65 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskCreateReqVO.java
1 -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task; 1 +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task;
2 2
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskDeviceScopeEnum; 4 import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskDeviceScopeEnum;
@@ -9,9 +9,9 @@ import lombok.Data; @@ -9,9 +9,9 @@ import lombok.Data;
9 9
10 import java.util.List; 10 import java.util.List;
11 11
12 -@Schema(description = "管理后台 - IoT OTA 升级任务创建/修改 Request VO") 12 +@Schema(description = "管理后台 - IoT OTA 升级任务创建 Request VO")
13 @Data 13 @Data
14 -public class IotOtaUpgradeTaskSaveReqVO { 14 +public class IotOtaTaskCreateReqVO {
15 15
16 @NotEmpty(message = "任务名称不能为空") 16 @NotEmpty(message = "任务名称不能为空")
17 @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "升级任务") 17 @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "升级任务")
@@ -27,7 +27,7 @@ public class IotOtaUpgradeTaskSaveReqVO { @@ -27,7 +27,7 @@ public class IotOtaUpgradeTaskSaveReqVO {
27 @Schema(description = "升级范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 27 @Schema(description = "升级范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
28 @NotNull(message = "升级范围不能为空") 28 @NotNull(message = "升级范围不能为空")
29 @InEnum(value = IotOtaTaskDeviceScopeEnum.class) 29 @InEnum(value = IotOtaTaskDeviceScopeEnum.class)
30 - private Integer scope; 30 + private Integer deviceScope;
31 31
32 @Schema(description = "选中的设备编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") 32 @Schema(description = "选中的设备编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3")
33 private List<Long> deviceIds; 33 private List<Long> deviceIds;
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskPageReqVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskPageReqVO.java
1 -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task; 1 +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
5 -import jakarta.validation.constraints.NotNull;  
6 import lombok.Data; 5 import lombok.Data;
7 6
8 -@Data  
9 @Schema(description = "管理后台 - IoT OTA 升级任务分页 Request VO") 7 @Schema(description = "管理后台 - IoT OTA 升级任务分页 Request VO")
10 -public class IotOtaUpgradeTaskPageReqVO extends PageParam {  
11 -  
12 - @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
13 - @NotNull(message = "固件编号不能为空")  
14 - private Long firmwareId; 8 +@Data
  9 +public class IotOtaTaskPageReqVO extends PageParam {
15 10
16 @Schema(description = "任务名称", example = "升级任务") 11 @Schema(description = "任务名称", example = "升级任务")
17 private String name; 12 private String name;
18 13
  14 + @Schema(description = "固件编号", example = "1024")
  15 + private Long firmwareId;
  16 +
19 } 17 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskRespVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/IotOtaTaskRespVO.java
1 -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task; 1 +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task;
2 2
3 import com.fhs.core.trans.vo.VO; 3 import com.fhs.core.trans.vo.VO;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
5 import lombok.Data; 5 import lombok.Data;
6 6
7 import java.time.LocalDateTime; 7 import java.time.LocalDateTime;
8 -import java.util.List;  
9 8
10 -@Data  
11 @Schema(description = "管理后台 - IoT OTA 升级任务 Response VO") 9 @Schema(description = "管理后台 - IoT OTA 升级任务 Response VO")
12 -public class IotOtaUpgradeTaskRespVO implements VO { 10 +@Data
  11 +public class IotOtaTaskRespVO implements VO {
13 12
14 @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 13 @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
15 private Long id; 14 private Long id;
@@ -23,20 +22,17 @@ public class IotOtaUpgradeTaskRespVO implements VO { @@ -23,20 +22,17 @@ public class IotOtaUpgradeTaskRespVO implements VO {
23 @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 22 @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
24 private Long firmwareId; 23 private Long firmwareId;
25 24
26 - @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED) 25 + @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
27 private Integer status; 26 private Integer status;
28 27
29 - @Schema(description = "升级范围", requiredMode = Schema.RequiredMode.REQUIRED, allowableValues = {"1", "2"})  
30 - private Integer scope;  
31 -  
32 - @Schema(description = "设备数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
33 - private Long deviceCount; 28 + @Schema(description = "升级范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  29 + private Integer deviceScope;
34 30
35 - @Schema(description = "选中的设备编号数组", example = "1024")  
36 - private List<Long> deviceIds; 31 + @Schema(description = "设备总共数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  32 + private Integer deviceTotalCount;
37 33
38 - @Schema(description = "选中的设备名字数组", example = "1024")  
39 - private List<String> deviceNames; 34 + @Schema(description = "设备成功数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "66")
  35 + private Integer deviceSuccessCount;
40 36
41 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022-07-08 07:30:00") 37 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022-07-08 07:30:00")
42 private LocalDateTime createTime; 38 private LocalDateTime createTime;
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordPageReqVO.java
1 -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record; 1 +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
5 import jakarta.validation.constraints.NotNull; 5 import jakarta.validation.constraints.NotNull;
6 import lombok.Data; 6 import lombok.Data;
7 7
8 -@Data  
9 @Schema(description = "管理后台 - IoT OTA 升级记录分页 Request VO") 8 @Schema(description = "管理后台 - IoT OTA 升级记录分页 Request VO")
10 -public class IotOtaUpgradeRecordPageReqVO extends PageParam { 9 +@Data
  10 +public class IotOtaTaskRecordPageReqVO extends PageParam {
11 11
12 - // TODO @li:已经有注解,不用重复注释  
13 - /**  
14 - * 升级任务编号字段。  
15 - * <p>  
16 - * 该字段用于标识升级任务的唯一编号,不能为空。  
17 - */ 12 + // TODO @芋艿:分页条件字段梳理;
18 @Schema(description = "升级任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 13 @Schema(description = "升级任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
19 @NotNull(message = "升级任务编号不能为空") 14 @NotNull(message = "升级任务编号不能为空")
20 private Long taskId; 15 private Long taskId;
21 16
22 - /**  
23 - * 设备标识字段。  
24 - * <p>  
25 - * 该字段用于标识设备的名称,通常用于区分不同的设备。  
26 - */  
27 @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "摄像头A1-1") 17 @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "摄像头A1-1")
28 private String deviceName; 18 private String deviceName;
29 19
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordRespVO.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/task/record/IotOtaTaskRecordRespVO.java
1 -package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record;  
2 -  
3 -import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;  
4 -import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceMessageDO;  
5 -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO;  
6 -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO;  
7 -import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskRecordStatusEnum;  
8 -import com.fhs.core.trans.anno.Trans;  
9 -import com.fhs.core.trans.constant.TransType; 1 +package cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record;
  2 +
10 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
11 import lombok.Data; 4 import lombok.Data;
12 5
13 import java.time.LocalDateTime; 6 import java.time.LocalDateTime;
14 7
15 -@Data  
16 @Schema(description = "管理后台 - IoT OTA 升级记录 Response VO") 8 @Schema(description = "管理后台 - IoT OTA 升级记录 Response VO")
17 -public class IotOtaUpgradeRecordRespVO { 9 +@Data
  10 +public class IotOtaTaskRecordRespVO {
  11 +
  12 + // TODO @芋艿:梳理字段
18 13
19 - /**  
20 - * 升级记录编号  
21 - */  
22 @Schema(description = "升级记录编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 14 @Schema(description = "升级记录编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
23 private Long id; 15 private Long id;
24 - /**  
25 - * 固件编号  
26 - * <p>  
27 - * 关联 {@link IotOtaFirmwareDO#getId()}  
28 - */ 16 +
29 @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 17 @Schema(description = "固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
30 - @Trans(type = TransType.SIMPLE, target = IotOtaFirmwareDO.class, fields = {"version"}, refs = {"firmwareVersion"})  
31 private Long firmwareId; 18 private Long firmwareId;
32 - /**  
33 - * 固件版本  
34 - */ 19 +
35 @Schema(description = "固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0") 20 @Schema(description = "固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0")
36 private String firmwareVersion; 21 private String firmwareVersion;
37 - /**  
38 - * 任务编号  
39 - * <p>  
40 - * 关联 {@link IotOtaTaskDO#getId()}  
41 - */ 22 +
42 @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 23 @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
43 private Long taskId; 24 private Long taskId;
44 - /**  
45 - * 产品标识  
46 - * <p>  
47 - * 关联 {@link cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO#getId()}  
48 - */ 25 +
49 @Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot") 26 @Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot")
50 private String productKey; 27 private String productKey;
51 - /**  
52 - * 设备名称  
53 - * <p>  
54 - * 关联 {@link cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO#getId()}  
55 - */ 28 +
56 @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot") 29 @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "iot")
57 private String deviceName; 30 private String deviceName;
58 - /**  
59 - * 设备编号  
60 - * <p>  
61 - * 关联 {@link cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO#getId()}  
62 - */ 31 +
63 @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 32 @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
64 private String deviceId; 33 private String deviceId;
65 - /**  
66 - * 来源的固件编号  
67 - * <p>  
68 - * 关联 {@link IotDeviceDO#getFirmwareId()}  
69 - */ 34 +
70 @Schema(description = "来源的固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 35 @Schema(description = "来源的固件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
71 - @Trans(type = TransType.SIMPLE, target = IotOtaFirmwareDO.class, fields = {"version"}, refs = {"fromFirmwareVersion"})  
72 private Long fromFirmwareId; 36 private Long fromFirmwareId;
73 - /**  
74 - * 来源的固件版本  
75 - */ 37 +
76 @Schema(description = "来源的固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0") 38 @Schema(description = "来源的固件版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "v1.0.0")
77 private String fromFirmwareVersion; 39 private String fromFirmwareVersion;
78 - /**  
79 - * 升级状态  
80 - * <p>  
81 - * 关联 {@link IotOtaTaskRecordStatusEnum}  
82 - */  
83 - @Schema(description = "升级状态", requiredMode = Schema.RequiredMode.REQUIRED, allowableValues = {"0", "10", "20", "30", "40", "50"}) 40 +
  41 + @Schema(description = "升级状态", requiredMode = Schema.RequiredMode.REQUIRED)
84 private Integer status; 42 private Integer status;
85 - /**  
86 - * 升级进度,百分比  
87 - */ 43 +
88 @Schema(description = "升级进度,百分比", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") 44 @Schema(description = "升级进度,百分比", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
89 private Integer progress; 45 private Integer progress;
90 - /**  
91 - * 升级进度描述  
92 - * <p>  
93 - * 注意,只记录设备最后一次的升级进度描述  
94 - * 如果想看历史记录,可以查看 {@link IotDeviceMessageDO} 设备日志  
95 - */ 46 +
96 @Schema(description = "升级进度描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") 47 @Schema(description = "升级进度描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
97 private String description; 48 private String description;
98 - /**  
99 - * 升级开始时间  
100 - */  
101 - @Schema(description = "升级开始时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022-07-08 07:30:00") 49 +
  50 + @Schema(description = "升级开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
102 private LocalDateTime startTime; 51 private LocalDateTime startTime;
103 - /**  
104 - * 升级结束时间  
105 - */  
106 - @Schema(description = "升级结束时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2022-07-08 07:30:00") 52 +
  53 + @Schema(description = "升级结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
107 private LocalDateTime endTime; 54 private LocalDateTime endTime;
108 55
109 } 56 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeTaskMapper.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaTaskMapper.java
@@ -3,55 +3,30 @@ package cn.iocoder.yudao.module.iot.dal.mysql.ota; @@ -3,55 +3,30 @@ package cn.iocoder.yudao.module.iot.dal.mysql.ota;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO; 6 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO;
7 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; 7 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO;
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
10 import java.util.List; 10 import java.util.List;
11 11
12 /** 12 /**
13 - * OTA 升级任务Mapper 13 + * OTA 升级任务 Mapper
14 * 14 *
15 * @author Shelly 15 * @author Shelly
16 */ 16 */
17 @Mapper 17 @Mapper
18 -public interface IotOtaUpgradeTaskMapper extends BaseMapperX<IotOtaTaskDO> { 18 +public interface IotOtaTaskMapper extends BaseMapperX<IotOtaTaskDO> {
19 19
20 - /**  
21 - * 根据固件ID和任务名称查询升级任务列表。  
22 - *  
23 - * @param firmwareId 固件ID,用于筛选升级任务  
24 - * @param name 任务名称,用于筛选升级任务  
25 - * @return 符合条件的升级任务列表  
26 - */  
27 default List<IotOtaTaskDO> selectByFirmwareIdAndName(Long firmwareId, String name) { 20 default List<IotOtaTaskDO> selectByFirmwareIdAndName(Long firmwareId, String name) {
28 return selectList(new LambdaQueryWrapperX<IotOtaTaskDO>() 21 return selectList(new LambdaQueryWrapperX<IotOtaTaskDO>()
29 .eqIfPresent(IotOtaTaskDO::getFirmwareId, firmwareId) 22 .eqIfPresent(IotOtaTaskDO::getFirmwareId, firmwareId)
30 .eqIfPresent(IotOtaTaskDO::getName, name)); 23 .eqIfPresent(IotOtaTaskDO::getName, name));
31 } 24 }
32 25
33 - /**  
34 - * 分页查询升级任务列表,支持根据固件ID和任务名称进行筛选。  
35 - *  
36 - * @param pageReqVO 分页查询请求对象,包含分页参数和筛选条件  
37 - * @return 分页结果,包含符合条件的升级任务列表  
38 - */  
39 - default PageResult<IotOtaTaskDO> selectUpgradeTaskPage(IotOtaUpgradeTaskPageReqVO pageReqVO) { 26 + default PageResult<IotOtaTaskDO> selectUpgradeTaskPage(IotOtaTaskPageReqVO pageReqVO) {
40 return selectPage(pageReqVO, new LambdaQueryWrapperX<IotOtaTaskDO>() 27 return selectPage(pageReqVO, new LambdaQueryWrapperX<IotOtaTaskDO>()
41 .eqIfPresent(IotOtaTaskDO::getFirmwareId, pageReqVO.getFirmwareId()) 28 .eqIfPresent(IotOtaTaskDO::getFirmwareId, pageReqVO.getFirmwareId())
42 .likeIfPresent(IotOtaTaskDO::getName, pageReqVO.getName())); 29 .likeIfPresent(IotOtaTaskDO::getName, pageReqVO.getName()));
43 } 30 }
44 31
45 - /**  
46 - * 根据任务状态查询升级任务列表  
47 - * <p>  
48 - * 该函数通过传入的任务状态,查询数据库中符合条件的升级任务列表。  
49 - *  
50 - * @param status 任务状态,用于筛选升级任务的状态值  
51 - * @return 返回符合条件的升级任务列表,列表中的每个元素为 IotOtaUpgradeTaskDO 对象  
52 - */  
53 - default List<IotOtaTaskDO> selectUpgradeTaskByState(Integer status) {  
54 - return selectList(IotOtaTaskDO::getStatus, status);  
55 - }  
56 -  
57 } 32 }
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; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.iot.dal.mysql.ota;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO; 6 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO;
7 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; 7 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO;
8 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 8 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
@@ -80,11 +80,11 @@ public interface IotOtaUpgradeRecordMapper extends BaseMapperX&lt;IotOtaTaskRecordD @@ -80,11 +80,11 @@ public interface IotOtaUpgradeRecordMapper extends BaseMapperX&lt;IotOtaTaskRecordD
80 * @return 返回分页查询结果,包含符合条件的 OTA升级记录列表 80 * @return 返回分页查询结果,包含符合条件的 OTA升级记录列表
81 */ 81 */
82 // TODO @li:selectPage 就 ok 拉。 82 // TODO @li:selectPage 就 ok 拉。
83 - default PageResult<IotOtaTaskRecordDO> selectUpgradeRecordPage(IotOtaUpgradeRecordPageReqVO pageReqVO) { 83 + default PageResult<IotOtaTaskRecordDO> selectUpgradeRecordPage(IotOtaTaskRecordPageReqVO pageReqVO) {
84 // TODO @li:这里的注释,可以去掉哈;然后下面的“如果”。。。也没必要注释 84 // TODO @li:这里的注释,可以去掉哈;然后下面的“如果”。。。也没必要注释
85 // 使用LambdaQueryWrapperX构建查询条件,并根据请求参数动态添加查询条件 85 // 使用LambdaQueryWrapperX构建查询条件,并根据请求参数动态添加查询条件
86 return selectPage(pageReqVO, new LambdaQueryWrapperX<IotOtaTaskRecordDO>() 86 return selectPage(pageReqVO, new LambdaQueryWrapperX<IotOtaTaskRecordDO>()
87 - .likeIfPresent(IotOtaTaskRecordDO::getDeviceName, pageReqVO.getDeviceName()) // 如果设备名称存在,则添加模糊查询条件 87 +// .likeIfPresent(IotOtaTaskRecordDO::getDeviceName, pageReqVO.getDeviceName()) // 如果设备名称存在,则添加模糊查询条件
88 .eqIfPresent(IotOtaTaskRecordDO::getTaskId, pageReqVO.getTaskId())); // 如果任务ID存在,则添加等值查询条件 88 .eqIfPresent(IotOtaTaskRecordDO::getTaskId, pageReqVO.getTaskId())); // 如果任务ID存在,则添加等值查询条件
89 } 89 }
90 90
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java renamed to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskRecordService.java
1 package cn.iocoder.yudao.module.iot.service.ota; 1 package cn.iocoder.yudao.module.iot.service.ota;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO; 4 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO;
5 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; 5 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO;
6 import jakarta.validation.Valid; 6 import jakarta.validation.Valid;
7 7
@@ -13,7 +13,7 @@ import java.util.Map; @@ -13,7 +13,7 @@ import java.util.Map;
13 * IotOtaUpgradeRecordService 接口定义了与物联网设备OTA升级记录相关的操作。 13 * IotOtaUpgradeRecordService 接口定义了与物联网设备OTA升级记录相关的操作。
14 * 该接口提供了创建、更新、查询、统计和重试升级记录的功能。 14 * 该接口提供了创建、更新、查询、统计和重试升级记录的功能。
15 */ 15 */
16 -public interface IotOtaUpgradeRecordService { 16 +public interface IotOtaTaskRecordService {
17 17
18 /** 18 /**
19 * 批量创建 OTA 升级记录 19 * 批量创建 OTA 升级记录
@@ -23,37 +23,37 @@ public interface IotOtaUpgradeRecordService { @@ -23,37 +23,37 @@ public interface IotOtaUpgradeRecordService {
23 * @param firmwareId 固件ID,表示要升级到的固件版本。 23 * @param firmwareId 固件ID,表示要升级到的固件版本。
24 * @param upgradeTaskId 升级任务ID,表示此次升级任务的唯一标识。 24 * @param upgradeTaskId 升级任务ID,表示此次升级任务的唯一标识。
25 */ 25 */
26 - void createOtaUpgradeRecordBatch(List<Long> deviceIds, Long firmwareId, Long upgradeTaskId); 26 + void createOtaTaskRecordBatch(List<Long> deviceIds, Long firmwareId, Long upgradeTaskId);
27 27
28 /** 28 /**
29 * 获取 OTA 升级记录的数量统计 29 * 获取 OTA 升级记录的数量统计
30 * 30 *
31 * @return 返回一个 Map,其中键为状态码,值为对应状态的升级记录数量 31 * @return 返回一个 Map,其中键为状态码,值为对应状态的升级记录数量
32 */ 32 */
33 - Map<Integer, Long> getOtaUpgradeRecordCount(@Valid IotOtaUpgradeRecordPageReqVO pageReqVO); 33 + Map<Integer, Long> getOtaTaskRecordCount(@Valid IotOtaTaskRecordPageReqVO pageReqVO);
34 34
35 /** 35 /**
36 - * 获取 OTA 升级记录的统计信息。 36 + * 获取 OTA 升级记录的统计信息
37 * 37 *
38 * @return 返回一个 Map,其中键为状态码,值为对应状态的升级记录统计信息 38 * @return 返回一个 Map,其中键为状态码,值为对应状态的升级记录统计信息
39 */ 39 */
40 - Map<Integer, Long> getOtaUpgradeRecordStatistics(Long firmwareId); 40 + Map<Integer, Long> getOtaTaskRecordStatistics(Long firmwareId);
41 41
42 /** 42 /**
43 - * 获取指定 ID 的 OTA 升级记录的详细信息。 43 + * 获取指定 ID 的 OTA 升级记录的详细信息
44 * 44 *
45 - * @param id 需要查询的升级记录的ID。  
46 - * @return 返回包含升级记录详细信息的响应对象。 45 + * @param id 需要查询的升级记录的 ID
  46 + * @return 返回包含升级记录详细信息的响应对象
47 */ 47 */
48 - IotOtaTaskRecordDO getUpgradeRecord(Long id); 48 + IotOtaTaskRecordDO getOtaTaskRecord(Long id);
49 49
50 /** 50 /**
51 - * 分页查询 OTA 升级记录。 51 + * 分页查询 OTA 升级记录
52 * 52 *
53 * @param pageReqVO 包含分页查询条件的请求对象,必须经过验证。 53 * @param pageReqVO 包含分页查询条件的请求对象,必须经过验证。
54 * @return 返回包含分页查询结果的响应对象。 54 * @return 返回包含分页查询结果的响应对象。
55 */ 55 */
56 - PageResult<IotOtaTaskRecordDO> getUpgradeRecordPage(@Valid IotOtaUpgradeRecordPageReqVO pageReqVO); 56 + PageResult<IotOtaTaskRecordDO> getOtaTaskRecordPage(@Valid IotOtaTaskRecordPageReqVO pageReqVO);
57 57
58 /** 58 /**
59 * 根据任务 ID 取消升级记录 59 * 根据任务 ID 取消升级记录
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java renamed to 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; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.iot.service.ota;
3 import cn.hutool.core.convert.Convert; 3 import cn.hutool.core.convert.Convert;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 5 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
6 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.record.IotOtaUpgradeRecordPageReqVO; 6 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.record.IotOtaTaskRecordPageReqVO;
7 import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; 7 import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;
8 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO; 8 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO;
9 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO; 9 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskRecordDO;
@@ -29,40 +29,39 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*; @@ -29,40 +29,39 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
29 @Slf4j 29 @Slf4j
30 @Service 30 @Service
31 @Validated 31 @Validated
32 -public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordService { 32 +public class IotOtaTaskRecordServiceImpl implements IotOtaTaskRecordService {
33 33
34 @Resource 34 @Resource
35 - private IotOtaUpgradeRecordMapper upgradeRecordMapper; 35 + private IotOtaUpgradeRecordMapper iotOtaUpgradeRecordMapper;
  36 +
36 @Resource 37 @Resource
37 private IotDeviceService deviceService; 38 private IotDeviceService deviceService;
38 @Resource 39 @Resource
39 private IotOtaFirmwareService firmwareService; 40 private IotOtaFirmwareService firmwareService;
40 @Resource 41 @Resource
41 - private IotOtaUpgradeTaskService upgradeTaskService; 42 + private IotOtaTaskService upgradeTaskService;
42 43
43 @Override 44 @Override
44 - public void createOtaUpgradeRecordBatch(List<Long> deviceIds, Long firmwareId, Long upgradeTaskId) { 45 + public void createOtaTaskRecordBatch(List<Long> deviceIds, Long firmwareId, Long upgradeTaskId) {
45 // 1. 校验升级记录信息是否存在,并且已经取消的任务可以重新开始 46 // 1. 校验升级记录信息是否存在,并且已经取消的任务可以重新开始
46 deviceIds.forEach(deviceId -> validateUpgradeRecordDuplicate(firmwareId, upgradeTaskId, String.valueOf(deviceId))); 47 deviceIds.forEach(deviceId -> validateUpgradeRecordDuplicate(firmwareId, upgradeTaskId, String.valueOf(deviceId)));
47 48
48 // 2. 初始化OTA升级记录列表信息 49 // 2. 初始化OTA升级记录列表信息
49 - IotOtaTaskDO upgradeTask = upgradeTaskService.getUpgradeTask(upgradeTaskId); 50 + IotOtaTaskDO upgradeTask = upgradeTaskService.getOtaTask(upgradeTaskId);
50 IotOtaFirmwareDO firmware = firmwareService.getOtaFirmware(firmwareId); 51 IotOtaFirmwareDO firmware = firmwareService.getOtaFirmware(firmwareId);
51 List<IotDeviceDO> deviceList = deviceService.getDeviceListByIdList(deviceIds); 52 List<IotDeviceDO> deviceList = deviceService.getDeviceListByIdList(deviceIds);
52 List<IotOtaTaskRecordDO> upgradeRecordList = deviceList.stream().map(device -> { 53 List<IotOtaTaskRecordDO> upgradeRecordList = deviceList.stream().map(device -> {
53 IotOtaTaskRecordDO upgradeRecord = new IotOtaTaskRecordDO(); 54 IotOtaTaskRecordDO upgradeRecord = new IotOtaTaskRecordDO();
54 upgradeRecord.setFirmwareId(firmware.getId()); 55 upgradeRecord.setFirmwareId(firmware.getId());
55 upgradeRecord.setTaskId(upgradeTask.getId()); 56 upgradeRecord.setTaskId(upgradeTask.getId());
56 - upgradeRecord.setProductKey(device.getProductKey());  
57 - upgradeRecord.setDeviceName(device.getDeviceName());  
58 - upgradeRecord.setDeviceId(Convert.toStr(device.getId())); 57 + upgradeRecord.setDeviceId(device.getId());
59 upgradeRecord.setFromFirmwareId(Convert.toLong(device.getFirmwareId())); 58 upgradeRecord.setFromFirmwareId(Convert.toLong(device.getFirmwareId()));
60 upgradeRecord.setStatus(IotOtaTaskRecordStatusEnum.PENDING.getStatus()); 59 upgradeRecord.setStatus(IotOtaTaskRecordStatusEnum.PENDING.getStatus());
61 upgradeRecord.setProgress(0); 60 upgradeRecord.setProgress(0);
62 return upgradeRecord; 61 return upgradeRecord;
63 }).toList(); 62 }).toList();
64 // 3. 保存数据 63 // 3. 保存数据
65 - upgradeRecordMapper.insertBatch(upgradeRecordList); 64 + iotOtaUpgradeRecordMapper.insertBatch(upgradeRecordList);
66 // TODO @芋艿:在这里需要处理推送升级任务的逻辑 65 // TODO @芋艿:在这里需要处理推送升级任务的逻辑
67 } 66 }
68 67
@@ -76,9 +75,9 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic @@ -76,9 +75,9 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
76 */ 75 */
77 @Override 76 @Override
78 @Transactional 77 @Transactional
79 - public Map<Integer, Long> getOtaUpgradeRecordCount(IotOtaUpgradeRecordPageReqVO pageReqVO) { 78 + public Map<Integer, Long> getOtaTaskRecordCount(IotOtaTaskRecordPageReqVO pageReqVO) {
80 // 分别查询不同状态的OTA升级记录数量 79 // 分别查询不同状态的OTA升级记录数量
81 - List<Map<String, Object>> upgradeRecordCountList = upgradeRecordMapper.selectOtaUpgradeRecordCount( 80 + List<Map<String, Object>> upgradeRecordCountList = iotOtaUpgradeRecordMapper.selectOtaUpgradeRecordCount(
82 pageReqVO.getTaskId(), pageReqVO.getDeviceName()); 81 pageReqVO.getTaskId(), pageReqVO.getDeviceName());
83 Map<String, Object> upgradeRecordCountMap = ObjectUtils.defaultIfNull(upgradeRecordCountList.get(0)); 82 Map<String, Object> upgradeRecordCountMap = ObjectUtils.defaultIfNull(upgradeRecordCountList.get(0));
84 Objects.requireNonNull(upgradeRecordCountMap); 83 Objects.requireNonNull(upgradeRecordCountMap);
@@ -89,9 +88,9 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic @@ -89,9 +88,9 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
89 88
90 @Override 89 @Override
91 @Transactional 90 @Transactional
92 - public Map<Integer, Long> getOtaUpgradeRecordStatistics(Long firmwareId) { 91 + public Map<Integer, Long> getOtaTaskRecordStatistics(Long firmwareId) {
93 // 查询并统计不同状态的OTA升级记录数量 92 // 查询并统计不同状态的OTA升级记录数量
94 - List<Map<String, Object>> upgradeRecordStatisticsList = upgradeRecordMapper.selectOtaUpgradeRecordStatistics(firmwareId); 93 + List<Map<String, Object>> upgradeRecordStatisticsList = iotOtaUpgradeRecordMapper.selectOtaUpgradeRecordStatistics(firmwareId);
95 Map<String, Object> upgradeRecordStatisticsMap = ObjectUtils.defaultIfNull(upgradeRecordStatisticsList.get(0)); 94 Map<String, Object> upgradeRecordStatisticsMap = ObjectUtils.defaultIfNull(upgradeRecordStatisticsList.get(0));
96 Objects.requireNonNull(upgradeRecordStatisticsMap); 95 Objects.requireNonNull(upgradeRecordStatisticsMap);
97 return upgradeRecordStatisticsMap.entrySet().stream().collect(Collectors.toMap( 96 return upgradeRecordStatisticsMap.entrySet().stream().collect(Collectors.toMap(
@@ -100,19 +99,19 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic @@ -100,19 +99,19 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
100 } 99 }
101 100
102 @Override 101 @Override
103 - public IotOtaTaskRecordDO getUpgradeRecord(Long id) {  
104 - return upgradeRecordMapper.selectById(id); 102 + public IotOtaTaskRecordDO getOtaTaskRecord(Long id) {
  103 + return iotOtaUpgradeRecordMapper.selectById(id);
105 } 104 }
106 105
107 @Override 106 @Override
108 - public PageResult<IotOtaTaskRecordDO> getUpgradeRecordPage(IotOtaUpgradeRecordPageReqVO pageReqVO) {  
109 - return upgradeRecordMapper.selectUpgradeRecordPage(pageReqVO); 107 + public PageResult<IotOtaTaskRecordDO> getOtaTaskRecordPage(IotOtaTaskRecordPageReqVO pageReqVO) {
  108 + return iotOtaUpgradeRecordMapper.selectUpgradeRecordPage(pageReqVO);
110 } 109 }
111 110
112 @Override 111 @Override
113 public void cancelUpgradeRecordByTaskId(Long taskId) { 112 public void cancelUpgradeRecordByTaskId(Long taskId) {
114 // 暂定只有待推送的升级记录可以取消 TODO @芋艿:可以看看阿里云,哪些可以取消 113 // 暂定只有待推送的升级记录可以取消 TODO @芋艿:可以看看阿里云,哪些可以取消
115 - upgradeRecordMapper.updateUpgradeRecordStatusByTaskIdAndStatus( 114 + iotOtaUpgradeRecordMapper.updateUpgradeRecordStatusByTaskIdAndStatus(
116 IotOtaTaskRecordStatusEnum.CANCELED.getStatus(), taskId, 115 IotOtaTaskRecordStatusEnum.CANCELED.getStatus(), taskId,
117 IotOtaTaskRecordStatusEnum.PENDING.getStatus()); 116 IotOtaTaskRecordStatusEnum.PENDING.getStatus());
118 } 117 }
@@ -127,7 +126,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic @@ -127,7 +126,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
127 */ 126 */
128 private IotOtaTaskRecordDO validateUpgradeRecordExists(Long id) { 127 private IotOtaTaskRecordDO validateUpgradeRecordExists(Long id) {
129 // 根据ID查询升级记录 128 // 根据ID查询升级记录
130 - IotOtaTaskRecordDO upgradeRecord = upgradeRecordMapper.selectById(id); 129 + IotOtaTaskRecordDO upgradeRecord = iotOtaUpgradeRecordMapper.selectById(id);
131 // 如果查询结果为空,抛出异常 130 // 如果查询结果为空,抛出异常
132 if (upgradeRecord == null) { 131 if (upgradeRecord == null) {
133 throw exception(OTA_UPGRADE_RECORD_NOT_EXISTS); 132 throw exception(OTA_UPGRADE_RECORD_NOT_EXISTS);
@@ -147,7 +146,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic @@ -147,7 +146,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
147 * @param deviceId 设备ID,用于标识特定的设备 146 * @param deviceId 设备ID,用于标识特定的设备
148 */ 147 */
149 private void validateUpgradeRecordDuplicate(Long firmwareId, Long taskId, String deviceId) { 148 private void validateUpgradeRecordDuplicate(Long firmwareId, Long taskId, String deviceId) {
150 - IotOtaTaskRecordDO upgradeRecord = upgradeRecordMapper.selectByConditions(firmwareId, taskId, deviceId); 149 + IotOtaTaskRecordDO upgradeRecord = iotOtaUpgradeRecordMapper.selectByConditions(firmwareId, taskId, deviceId);
151 if (upgradeRecord == null) { 150 if (upgradeRecord == null) {
152 return; 151 return;
153 } 152 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaTaskService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.iot.service.ota;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskCreateReqVO;
  5 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO;
  6 +import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO;
  7 +import jakarta.validation.Valid;
  8 +
  9 +/**
  10 + * IoT OTA 升级任务 Service 接口
  11 + *
  12 + * @author Shelly Chan
  13 + */
  14 +public interface IotOtaTaskService {
  15 +
  16 + /**
  17 + * 创建 OTA升 级任务
  18 + *
  19 + * @param createReqVO 创建请求对象
  20 + * @return 升级任务编号
  21 + */
  22 + Long createOtaTask(@Valid IotOtaTaskCreateReqVO createReqVO);
  23 +
  24 + /**
  25 + * 取消 OTA 升级任务
  26 + *
  27 + * @param id 升级任务编号
  28 + */
  29 + void cancelOtaTask(Long id);
  30 +
  31 + /**
  32 + * 获取 OTA 升级任务
  33 + *
  34 + * @param id 升级任务编号
  35 + * @return 升级任务
  36 + */
  37 + IotOtaTaskDO getOtaTask(Long id);
  38 +
  39 + /**
  40 + * 分页查询 OTA 升级任务
  41 + *
  42 + * @param pageReqVO 分页查询请求
  43 + * @return 升级任务分页结果
  44 + */
  45 + PageResult<IotOtaTaskDO> getOtaTaskPage(@Valid IotOtaTaskPageReqVO pageReqVO);
  46 +
  47 +}
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java renamed to 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; @@ -4,12 +4,12 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.convert.Convert; 4 import cn.hutool.core.convert.Convert;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO;  
8 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskSaveReqVO; 7 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskCreateReqVO;
  8 +import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.task.IotOtaTaskPageReqVO;
9 import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; 9 import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;
10 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO; 10 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaFirmwareDO;
11 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO; 11 import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO;
12 -import cn.iocoder.yudao.module.iot.dal.mysql.ota.IotOtaUpgradeTaskMapper; 12 +import cn.iocoder.yudao.module.iot.dal.mysql.ota.IotOtaTaskMapper;
13 import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskDeviceScopeEnum; 13 import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskDeviceScopeEnum;
14 import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskStatusEnum; 14 import cn.iocoder.yudao.module.iot.enums.ota.IotOtaTaskStatusEnum;
15 import cn.iocoder.yudao.module.iot.service.device.IotDeviceService; 15 import cn.iocoder.yudao.module.iot.service.device.IotDeviceService;
@@ -22,56 +22,54 @@ import org.springframework.validation.annotation.Validated; @@ -22,56 +22,54 @@ import org.springframework.validation.annotation.Validated;
22 22
23 import java.util.List; 23 import java.util.List;
24 import java.util.Objects; 24 import java.util.Objects;
25 -import java.util.stream.Collectors;  
26 25
27 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 26 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
28 import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*; 27 import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
29 28
30 /** 29 /**
31 - * IoT OTA升级任务 Service 实现类 30 + * IoT OTA 升级任务 Service 实现类
32 * 31 *
33 * @author Shelly Chan 32 * @author Shelly Chan
34 */ 33 */
35 @Service 34 @Service
36 @Validated 35 @Validated
37 @Slf4j 36 @Slf4j
38 -public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService { 37 +public class IotOtaTaskServiceImpl implements IotOtaTaskService {
39 38
40 @Resource 39 @Resource
41 - private IotOtaUpgradeTaskMapper upgradeTaskMapper; 40 + private IotOtaTaskMapper otaTaskMapper;
42 41
43 @Resource 42 @Resource
44 - @Lazy  
45 private IotDeviceService deviceService; 43 private IotDeviceService deviceService;
46 @Resource 44 @Resource
47 - @Lazy  
48 - private IotOtaFirmwareService firmwareService; 45 + private IotOtaFirmwareService otaFirmwareService;
49 @Resource 46 @Resource
50 - @Lazy  
51 - private IotOtaUpgradeRecordService upgradeRecordService; 47 + @Lazy // 延迟,避免循环依赖报错
  48 + private IotOtaTaskRecordService otaUpgradeRecordService;
52 49
53 @Override 50 @Override
54 @Transactional(rollbackFor = Exception.class) 51 @Transactional(rollbackFor = Exception.class)
55 - public Long createUpgradeTask(IotOtaUpgradeTaskSaveReqVO createReqVO) { 52 + public Long createOtaTask(IotOtaTaskCreateReqVO createReqVO) {
56 // 1.1 校验同一固件的升级任务名称不重复 53 // 1.1 校验同一固件的升级任务名称不重复
57 validateFirmwareTaskDuplicate(createReqVO.getFirmwareId(), createReqVO.getName()); 54 validateFirmwareTaskDuplicate(createReqVO.getFirmwareId(), createReqVO.getName());
58 // 1.2 校验固件信息是否存在 55 // 1.2 校验固件信息是否存在
59 - IotOtaFirmwareDO firmware = firmwareService.validateFirmwareExists(createReqVO.getFirmwareId()); 56 + IotOtaFirmwareDO firmware = otaFirmwareService.validateFirmwareExists(createReqVO.getFirmwareId());
60 // 1.3 补全设备范围信息,并且校验是否又设备可以升级,如果没有设备可以升级,则报错 57 // 1.3 补全设备范围信息,并且校验是否又设备可以升级,如果没有设备可以升级,则报错
61 - validateScopeAndDevice(createReqVO.getScope(), createReqVO.getDeviceIds(), firmware.getProductId()); 58 + validateScopeAndDevice(createReqVO.getDeviceScope(), createReqVO.getDeviceIds(), firmware.getProductId());
62 59
63 // 2. 保存 OTA 升级任务信息到数据库 60 // 2. 保存 OTA 升级任务信息到数据库
64 IotOtaTaskDO upgradeTask = initOtaUpgradeTask(createReqVO, firmware.getProductId()); 61 IotOtaTaskDO upgradeTask = initOtaUpgradeTask(createReqVO, firmware.getProductId());
65 - upgradeTaskMapper.insert(upgradeTask); 62 + otaTaskMapper.insert(upgradeTask);
66 63
67 // 3. 生成设备升级记录信息并存储,等待定时任务轮询 64 // 3. 生成设备升级记录信息并存储,等待定时任务轮询
68 - upgradeRecordService.createOtaUpgradeRecordBatch(upgradeTask.getDeviceIds(), firmware.getId(), upgradeTask.getId()); 65 + // TODO @芋艿:在处理;
  66 +// otaUpgradeRecordService.createOtaUpgradeRecordBatch(upgradeTask.getDeviceIds(), firmware.getId(), upgradeTask.getId());
69 return upgradeTask.getId(); 67 return upgradeTask.getId();
70 } 68 }
71 69
72 @Override 70 @Override
73 @Transactional(rollbackFor = Exception.class) 71 @Transactional(rollbackFor = Exception.class)
74 - public void cancelUpgradeTask(Long id) { 72 + public void cancelOtaTask(Long id) {
75 // 1.1 校验升级任务是否存在 73 // 1.1 校验升级任务是否存在
76 IotOtaTaskDO upgradeTask = validateUpgradeTaskExists(id); 74 IotOtaTaskDO upgradeTask = validateUpgradeTaskExists(id);
77 // 1.2 校验升级任务是否可以取消 75 // 1.2 校验升级任务是否可以取消
@@ -81,52 +79,34 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService { @@ -81,52 +79,34 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
81 } 79 }
82 80
83 // 2. 更新 OTA 升级任务状态为已取消 81 // 2. 更新 OTA 升级任务状态为已取消
84 - upgradeTaskMapper.updateById(IotOtaTaskDO.builder() 82 + otaTaskMapper.updateById(IotOtaTaskDO.builder()
85 .id(id).status(IotOtaTaskStatusEnum.CANCELED.getStatus()) 83 .id(id).status(IotOtaTaskStatusEnum.CANCELED.getStatus())
86 .build()); 84 .build());
87 85
88 // 3. 更新 OTA 升级记录状态为已取消 86 // 3. 更新 OTA 升级记录状态为已取消
89 - upgradeRecordService.cancelUpgradeRecordByTaskId(id); 87 + otaUpgradeRecordService.cancelUpgradeRecordByTaskId(id);
90 } 88 }
91 89
92 @Override 90 @Override
93 - public IotOtaTaskDO getUpgradeTask(Long id) {  
94 - return upgradeTaskMapper.selectById(id); 91 + public IotOtaTaskDO getOtaTask(Long id) {
  92 + return otaTaskMapper.selectById(id);
95 } 93 }
96 94
97 @Override 95 @Override
98 - public PageResult<IotOtaTaskDO> getUpgradeTaskPage(IotOtaUpgradeTaskPageReqVO pageReqVO) {  
99 - return upgradeTaskMapper.selectUpgradeTaskPage(pageReqVO);  
100 - }  
101 -  
102 - @Override  
103 - public List<IotOtaTaskDO> getUpgradeTaskByState(Integer state) {  
104 - return upgradeTaskMapper.selectUpgradeTaskByState(state);  
105 - }  
106 -  
107 - @Override  
108 - public void updateUpgradeTaskStatus(Long id, Integer status) {  
109 - upgradeTaskMapper.updateById(IotOtaTaskDO.builder().id(id).status(status).build()); 96 + public PageResult<IotOtaTaskDO> getOtaTaskPage(IotOtaTaskPageReqVO pageReqVO) {
  97 + return otaTaskMapper.selectUpgradeTaskPage(pageReqVO);
110 } 98 }
111 99
112 /** 100 /**
113 * 校验固件升级任务是否重复 101 * 校验固件升级任务是否重复
114 */ 102 */
115 private void validateFirmwareTaskDuplicate(Long firmwareId, String taskName) { 103 private void validateFirmwareTaskDuplicate(Long firmwareId, String taskName) {
116 - List<IotOtaTaskDO> upgradeTaskList = upgradeTaskMapper.selectByFirmwareIdAndName(firmwareId, taskName); 104 + List<IotOtaTaskDO> upgradeTaskList = otaTaskMapper.selectByFirmwareIdAndName(firmwareId, taskName);
117 if (CollUtil.isNotEmpty(upgradeTaskList)) { 105 if (CollUtil.isNotEmpty(upgradeTaskList)) {
118 throw exception(OTA_UPGRADE_TASK_NAME_DUPLICATE); 106 throw exception(OTA_UPGRADE_TASK_NAME_DUPLICATE);
119 } 107 }
120 } 108 }
121 109
122 - /**  
123 - * 验证升级任务的范围和设备列表的有效性。  
124 - *  
125 - * @param scope 升级任务的范围,参考 IotOtaUpgradeTaskScopeEnum 枚举值  
126 - * @param deviceIds 设备ID列表,当范围为"选择设备"时,该列表不能为空  
127 - * @param productId 产品ID,当范围为"所有设备"时,用于获取设备列表  
128 - * @throws cn.iocoder.yudao.framework.common.exception.ServiceException,抛出相应的异常  
129 - */  
130 private void validateScopeAndDevice(Integer scope, List<Long> deviceIds, Long productId) { 110 private void validateScopeAndDevice(Integer scope, List<Long> deviceIds, Long productId) {
131 if (Objects.equals(scope, IotOtaTaskDeviceScopeEnum.SELECT.getScope())) { 111 if (Objects.equals(scope, IotOtaTaskDeviceScopeEnum.SELECT.getScope())) {
132 if (CollUtil.isEmpty(deviceIds)) { 112 if (CollUtil.isEmpty(deviceIds)) {
@@ -143,30 +123,24 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService { @@ -143,30 +123,24 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
143 } 123 }
144 } 124 }
145 125
146 - /**  
147 - * 验证升级任务是否存在  
148 - */  
149 private IotOtaTaskDO validateUpgradeTaskExists(Long id) { 126 private IotOtaTaskDO validateUpgradeTaskExists(Long id) {
150 - IotOtaTaskDO upgradeTask = upgradeTaskMapper.selectById(id); 127 + IotOtaTaskDO upgradeTask = otaTaskMapper.selectById(id);
151 if (Objects.isNull(upgradeTask)) { 128 if (Objects.isNull(upgradeTask)) {
152 throw exception(OTA_UPGRADE_TASK_NOT_EXISTS); 129 throw exception(OTA_UPGRADE_TASK_NOT_EXISTS);
153 } 130 }
154 return upgradeTask; 131 return upgradeTask;
155 } 132 }
156 133
157 - /**  
158 - * 初始化升级任务  
159 - */  
160 - private IotOtaTaskDO initOtaUpgradeTask(IotOtaUpgradeTaskSaveReqVO createReqVO, Long productId) { 134 + private IotOtaTaskDO initOtaUpgradeTask(IotOtaTaskCreateReqVO createReqVO, Long productId) {
161 IotOtaTaskDO upgradeTask = BeanUtils.toBean(createReqVO, IotOtaTaskDO.class); 135 IotOtaTaskDO upgradeTask = BeanUtils.toBean(createReqVO, IotOtaTaskDO.class);
162 upgradeTask.setDeviceTotalCount(Convert.toLong(CollUtil.size(createReqVO.getDeviceIds()))) 136 upgradeTask.setDeviceTotalCount(Convert.toLong(CollUtil.size(createReqVO.getDeviceIds())))
163 .setStatus(IotOtaTaskStatusEnum.IN_PROGRESS.getStatus()); 137 .setStatus(IotOtaTaskStatusEnum.IN_PROGRESS.getStatus());
164 138
165 - if (Objects.equals(createReqVO.getScope(), IotOtaTaskDeviceScopeEnum.ALL.getScope())) { 139 + if (Objects.equals(createReqVO.getDeviceScope(), IotOtaTaskDeviceScopeEnum.ALL.getScope())) {
166 List<IotDeviceDO> deviceList = deviceService.getDeviceListByProductId(productId); 140 List<IotDeviceDO> deviceList = deviceService.getDeviceListByProductId(productId);
167 upgradeTask.setDeviceTotalCount((long) deviceList.size()); 141 upgradeTask.setDeviceTotalCount((long) deviceList.size());
168 - upgradeTask.setDeviceIds(  
169 - deviceList.stream().map(IotDeviceDO::getId).collect(Collectors.toList())); 142 +// upgradeTask.setDeviceIds(
  143 +// deviceList.stream().map(IotDeviceDO::getId).collect(Collectors.toList()));
170 } 144 }
171 return upgradeTask; 145 return upgradeTask;
172 } 146 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskService.java deleted
1 -package cn.iocoder.yudao.module.iot.service.ota;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskPageReqVO;  
5 -import cn.iocoder.yudao.module.iot.controller.admin.ota.vo.upgrade.task.IotOtaUpgradeTaskSaveReqVO;  
6 -import cn.iocoder.yudao.module.iot.dal.dataobject.ota.IotOtaTaskDO;  
7 -import jakarta.validation.Valid;  
8 -  
9 -import java.util.List;  
10 -  
11 -/**  
12 - * IoT OTA升级任务 Service 接口  
13 - *  
14 - * @author Shelly Chan  
15 - */  
16 -public interface IotOtaUpgradeTaskService {  
17 -  
18 - /**  
19 - * 创建OTA升级任务  
20 - *  
21 - * @param createReqVO OTA升级任务的创建请求对象,包含创建任务所需的信息  
22 - * @return 创建成功的OTA升级任务的ID  
23 - */  
24 - Long createUpgradeTask(@Valid IotOtaUpgradeTaskSaveReqVO createReqVO);  
25 -  
26 - /**  
27 - * 取消OTA升级任务  
28 - *  
29 - * @param id 要取消的OTA升级任务的ID  
30 - */  
31 - void cancelUpgradeTask(Long id);  
32 -  
33 - /**  
34 - * 根据ID获取OTA升级任务的详细信息  
35 - *  
36 - * @param id OTA升级任务的ID  
37 - * @return OTA升级任务的详细信息对象  
38 - */  
39 - IotOtaTaskDO getUpgradeTask(Long id);  
40 -  
41 - /**  
42 - * 分页查询OTA升级任务  
43 - *  
44 - * @param pageReqVO OTA升级任务的分页查询请求对象,包含查询条件和分页信息  
45 - * @return 分页查询结果,包含OTA升级任务列表和总记录数  
46 - */  
47 - PageResult<IotOtaTaskDO> getUpgradeTaskPage(@Valid IotOtaUpgradeTaskPageReqVO pageReqVO);  
48 -  
49 - /**  
50 - * 根据任务状态获取升级任务列表  
51 - *  
52 - * @param state 任务状态,用于筛选符合条件的升级任务  
53 - * @return 返回符合指定状态的升级任务列表,列表中的元素为 IotOtaUpgradeTaskDO 对象  
54 - */  
55 - List<IotOtaTaskDO> getUpgradeTaskByState(Integer state);  
56 -  
57 - /**  
58 - * 更新升级任务的状态。  
59 - * <p>  
60 - * 该函数用于根据任务ID更新指定升级任务的状态。通常用于在任务执行过程中  
61 - * 更新任务的状态,例如从“进行中”变为“已完成”或“失败”。  
62 - *  
63 - * @param id 升级任务的唯一标识符,类型为Long。不能为null。  
64 - * @param status 要更新的任务状态,类型为Integer。通常表示任务的状态码,如0表示未开始,1表示进行中,2表示已完成等。  
65 - */  
66 - void updateUpgradeTaskStatus(Long id, Integer status);  
67 -  
68 -}