diff --git a/src/main/java/com/iflytop/colortitration/app/controller/PositionController.java b/src/main/java/com/iflytop/colortitration/app/controller/PositionController.java index 379533c..0a1edfd 100644 --- a/src/main/java/com/iflytop/colortitration/app/controller/PositionController.java +++ b/src/main/java/com/iflytop/colortitration/app/controller/PositionController.java @@ -1,9 +1,7 @@ package com.iflytop.colortitration.app.controller; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.iflytop.colortitration.common.base.BasePageQuery; +import com.iflytop.colortitration.app.model.vo.DevicePositionVO; import com.iflytop.colortitration.common.model.entity.Position; -import com.iflytop.colortitration.common.result.PageResult; import com.iflytop.colortitration.common.result.Result; import com.iflytop.colortitration.common.service.PositionService; import io.swagger.v3.oas.annotations.Operation; @@ -14,6 +12,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; @Tag(name = "\uD83D\uDCCD设备位置接口") @RestController @@ -24,10 +24,13 @@ public class PositionController { private final PositionService positionService; - @Operation(summary = "分页查询设备位置") - @PostMapping("/list") - public PageResult list(@RequestBody BasePageQuery query) { - return PageResult.success(positionService.page(new Page<>(query.getPageNum(), query.getPageSize()))); + @Operation(summary = "查询设备位置") + @GetMapping("/list") + public List list() { + List devicePositions = positionService.list(); + return devicePositions.stream() + .map(DevicePositionVO::new) + .collect(Collectors.toList()); } @Operation(summary = "添加设备位置") @@ -46,7 +49,7 @@ public class PositionController { @DeleteMapping("/{ids}") public Result delete(@PathVariable String ids) { boolean success = positionService.removeBatchByIds( - Arrays.stream(ids.split(",")).map(Long::valueOf).toList() + Arrays.stream(ids.split(",")).map(Long::valueOf).toList() ); return success ? Result.success() : Result.failed(); } diff --git a/src/main/java/com/iflytop/colortitration/app/model/vo/DevicePositionVO.java b/src/main/java/com/iflytop/colortitration/app/model/vo/DevicePositionVO.java new file mode 100644 index 0000000..a888cec --- /dev/null +++ b/src/main/java/com/iflytop/colortitration/app/model/vo/DevicePositionVO.java @@ -0,0 +1,39 @@ +package com.iflytop.colortitration.app.model.vo; + +import com.iflytop.colortitration.app.common.enums.DevicePositionCode; +import com.iflytop.colortitration.common.model.entity.Position; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * 设备位置记录 的展示视图 + */ +@Data +@AllArgsConstructor +@Schema(description = "设备位置记录") +public class DevicePositionVO { + + private Long id; + + @Schema(description = "位置名称") + private String name; + + @Schema(description = "位置代码") + private DevicePositionCode code; + + @Schema(description = "位置类型") + private String type; + + @Schema(description = "位置数据") + private String position; + + public DevicePositionVO(Position position) { + this.id = position.getId(); + this.name = position.getName(); + this.code = DevicePositionCode.valueOf(position.getCode()); + this.type = position.getType(); + this.position = position.getPosition(); + } + +} diff --git a/src/main/java/com/iflytop/colortitration/common/service/PositionService.java b/src/main/java/com/iflytop/colortitration/common/service/PositionService.java index be9bdd1..e7e3513 100644 --- a/src/main/java/com/iflytop/colortitration/common/service/PositionService.java +++ b/src/main/java/com/iflytop/colortitration/common/service/PositionService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.iflytop.colortitration.app.common.enums.DevicePositionCode; import com.iflytop.colortitration.common.mapper.PositionMapper; import com.iflytop.colortitration.common.model.entity.Position; +import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -21,4 +22,18 @@ public class PositionService extends ServiceImpl { return this.getOne(new LambdaQueryWrapper<>(Position.class).eq(Position::getCode, code)); } + @PostConstruct + private void init() { + for (DevicePositionCode positionCode : DevicePositionCode.values()) { + Position devicePosition = this.getOne(new LambdaQueryWrapper().eq(Position::getCode, positionCode)); + if (devicePosition == null) { + devicePosition = new Position(); + devicePosition.setCode(positionCode.name()); + devicePosition.setName(positionCode.getName()); + devicePosition.setType(positionCode.getType().name()); + this.save(devicePosition); + } + } + } + } \ No newline at end of file