Browse Source

feat:增加系统位置记录相关接口与数据库

master
白凤吉 3 months ago
parent
commit
aa2e74fc93
  1. 6
      src/main/java/com/iflytop/gd/app/controller/ContainerController.java
  2. 14
      src/main/java/com/iflytop/gd/app/controller/CraftsController.java
  3. 4
      src/main/java/com/iflytop/gd/app/controller/DeviceParamController.java
  4. 60
      src/main/java/com/iflytop/gd/app/controller/DevicePointController.java
  5. 8
      src/main/java/com/iflytop/gd/app/controller/OresController.java
  6. 2
      src/main/java/com/iflytop/gd/app/controller/SolutionsController.java
  7. 8
      src/main/java/com/iflytop/gd/app/controller/UserController.java
  8. 12
      src/main/java/com/iflytop/gd/app/mapper/DevicePositionMapper.java
  9. 3
      src/main/java/com/iflytop/gd/app/model/dto/ResumeCraftsDTO.java
  10. 3
      src/main/java/com/iflytop/gd/app/model/dto/StopCraftsDTO.java
  11. 34
      src/main/java/com/iflytop/gd/app/model/entity/DevicePosition.java
  12. 39
      src/main/java/com/iflytop/gd/app/model/vo/DevicePositionVO.java
  13. 2
      src/main/java/com/iflytop/gd/app/service/ContainerService.java
  14. 8
      src/main/java/com/iflytop/gd/app/service/CraftsService.java
  15. 43
      src/main/java/com/iflytop/gd/app/service/DevicePositionService.java
  16. 12
      src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java
  17. 31
      src/main/java/com/iflytop/gd/common/enums/data/DevicePositionType.java
  18. 11
      src/main/resources/sql/init.sql

6
src/main/java/com/iflytop/gd/app/controller/ContainerController.java

@ -22,13 +22,13 @@ public class ContainerController {
@Operation(summary = "容器列表") @Operation(summary = "容器列表")
@GetMapping("/list") @GetMapping("/list")
public Result<List<Container>> getAllContainer() {
return Result.success(containerService.getAllContainer());
public Result<List<Container>> getList() {
return Result.success(containerService.getList());
} }
@Operation(summary = "更新容器配置") @Operation(summary = "更新容器配置")
@PutMapping("") @PutMapping("")
public Result<Boolean> updateContainer(@Valid @RequestBody Container container) {
public Result<Boolean> update(@Valid @RequestBody Container container) {
return Result.success(containerService.updateById(container)); return Result.success(containerService.updateById(container));
} }
} }

14
src/main/java/com/iflytop/gd/app/controller/CraftsController.java

@ -30,7 +30,7 @@ public class CraftsController {
@Operation(summary = "根据矿石id获取工艺列表") @Operation(summary = "根据矿石id获取工艺列表")
@GetMapping("/list/{oresId}") @GetMapping("/list/{oresId}")
public Result<List<Crafts>> getAllCrafts(
public Result<List<Crafts>> getList(
@NotNull(message = "矿石ID 不能为空") @NotNull(message = "矿石ID 不能为空")
@Min(value = 1, message = "矿石ID 必须大于等于 1") @Min(value = 1, message = "矿石ID 必须大于等于 1")
@Parameter(description = "矿石ID") @PathVariable Long oresId) { @Parameter(description = "矿石ID") @PathVariable Long oresId) {
@ -40,10 +40,10 @@ public class CraftsController {
@Operation(summary = "添加新工艺") @Operation(summary = "添加新工艺")
@PostMapping("") @PostMapping("")
public Result<String> addCrafts(@Valid @RequestBody Crafts crafts) {
public Result<String> add(@Valid @RequestBody Crafts crafts) {
Crafts existingCrafts = craftsService.findByName(crafts.getName()); Crafts existingCrafts = craftsService.findByName(crafts.getName());
if (existingCrafts == null) { if (existingCrafts == null) {
boolean isSuccess = craftsService.addCrafts(crafts);
boolean isSuccess = craftsService.save(crafts);
if (isSuccess) { if (isSuccess) {
return Result.success(); return Result.success();
} }
@ -56,7 +56,7 @@ public class CraftsController {
@Operation(summary = "更新工艺") @Operation(summary = "更新工艺")
@PutMapping("") @PutMapping("")
public Result<String> updateCrafts(@Valid @RequestBody Crafts crafts) { public Result<String> updateCrafts(@Valid @RequestBody Crafts crafts) {
boolean isSuccess = craftsService.updateCrafts(crafts);
boolean isSuccess = craftsService.updateById(crafts);
if (isSuccess) { if (isSuccess) {
return Result.success(); return Result.success();
} }
@ -65,7 +65,7 @@ public class CraftsController {
@Operation(summary = "删除工艺") @Operation(summary = "删除工艺")
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public Result<String> deleteCrafts(
public Result<String> delete(
@Parameter(description = "工艺ID,多个以英文逗号(,)分割") @PathVariable String ids) { @Parameter(description = "工艺ID,多个以英文逗号(,)分割") @PathVariable String ids) {
boolean isSuccess = craftsService.deleteCrafts(ids); boolean isSuccess = craftsService.deleteCrafts(ids);
if (isSuccess) { if (isSuccess) {
@ -97,14 +97,14 @@ public class CraftsController {
@Operation(summary = "恢复执行工艺") @Operation(summary = "恢复执行工艺")
@PostMapping("/resume") @PostMapping("/resume")
public Result<String> resumeCrafts(@Valid @RequestBody ResumeCraftsDto resumeCraftsDto) {
public Result<String> resumeCrafts(@Valid @RequestBody ResumeCraftsDTO resumeCraftsDto) {
craftsService.resumeCrafts(resumeCraftsDto.getHeatId()); craftsService.resumeCrafts(resumeCraftsDto.getHeatId());
return Result.success(); return Result.success();
} }
@Operation(summary = "停止执行工艺") @Operation(summary = "停止执行工艺")
@PostMapping("/stop") @PostMapping("/stop")
public Result<String> stopCrafts(@Valid @RequestBody StopCraftsDto stopCraftsDto) {
public Result<String> stopCrafts(@Valid @RequestBody StopCraftsDTO stopCraftsDto) {
craftsService.stopCrafts(stopCraftsDto.getHeatId()); craftsService.stopCrafts(stopCraftsDto.getHeatId());
return Result.success(); return Result.success();
} }

4
src/main/java/com/iflytop/gd/app/controller/DeviceParamController.java

@ -30,7 +30,7 @@ public class DeviceParamController {
@Operation(summary = "获取所有设备配置") @Operation(summary = "获取所有设备配置")
@GetMapping("/list") @GetMapping("/list")
public Result<List<DeviceParamGroupVO>> listGroupedParams() {
public Result<List<DeviceParamGroupVO>> getList() {
List<DeviceParamGroupVO> vos = deviceParamConfigService.listGroupedByModule(); List<DeviceParamGroupVO> vos = deviceParamConfigService.listGroupedByModule();
return Result.success(vos); return Result.success(vos);
} }
@ -66,7 +66,7 @@ public class DeviceParamController {
@Operation(summary = "删除配置") @Operation(summary = "删除配置")
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public Result<String> deleteOres(@Parameter(description = "矿石ID,多个以英文逗号(,)分割") @PathVariable String ids) {
public Result<String> delete(@Parameter(description = "矿石ID,多个以英文逗号(,)分割") @PathVariable String ids) {
boolean isSuccess = deviceParamConfigService.deleteDeviceParam(ids); boolean isSuccess = deviceParamConfigService.deleteDeviceParam(ids);
if (isSuccess) { if (isSuccess) {
return Result.success(); return Result.success();

60
src/main/java/com/iflytop/gd/app/controller/DevicePointController.java

@ -0,0 +1,60 @@
package com.iflytop.gd.app.controller;
import com.iflytop.gd.app.model.entity.DevicePosition;
import com.iflytop.gd.app.model.vo.DevicePositionVO;
import com.iflytop.gd.app.service.DevicePositionService;
import com.iflytop.gd.common.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
/**
* 设备点位接口
*/
@Tag(name = "设备位置配置")
@RestController
@RequestMapping("/api/device-point")
@RequiredArgsConstructor
@Slf4j
public class DevicePointController {
private final DevicePositionService devicePointService;
@Operation(summary = "列表")
@GetMapping("/list")
public Result<List<DevicePositionVO>> listGroupedParams() {
List<DevicePositionVO> devicePointVOList = devicePointService.getList();
return Result.success(devicePointVOList);
}
@Operation(summary = "添加")
@PostMapping("")
public Result<String> add(@Valid @RequestBody DevicePosition devicePoint) {
devicePointService.save(devicePoint);
return Result.success();
}
@Operation(summary = "修改")
@PutMapping("")
public Result<String> update(@Valid @RequestBody DevicePosition devicePoint) {
devicePointService.updateById(devicePoint);
return Result.success();
}
@Operation(summary = "删除")
@DeleteMapping("/{ids}")
public Result<String> delete(@Parameter(description = "位置ID,多个以英文逗号(,)分割") @PathVariable String ids) {
boolean isSuccess = devicePointService.deletePositon(ids);
if (isSuccess) {
return Result.success();
}
return Result.failed();
}
}

8
src/main/java/com/iflytop/gd/app/controller/OresController.java

@ -26,14 +26,14 @@ public class OresController {
@Operation(summary = "矿石工艺列表") @Operation(summary = "矿石工艺列表")
@GetMapping("/list") @GetMapping("/list")
public PageResult<OresCraftsListVO> getAllOres(BasePageQuery pageQuery) {
public PageResult<OresCraftsListVO> getList(BasePageQuery pageQuery) {
IPage<OresCraftsListVO> result = oresService.getPage(pageQuery); IPage<OresCraftsListVO> result = oresService.getPage(pageQuery);
return PageResult.success(result); return PageResult.success(result);
} }
@Operation(summary = "添加新矿石") @Operation(summary = "添加新矿石")
@PostMapping("") @PostMapping("")
public Result<String> addOres(@Valid @RequestBody Ores ores) {
public Result<String> add(@Valid @RequestBody Ores ores) {
Ores existingOres = oresService.findByName(ores.getName()); Ores existingOres = oresService.findByName(ores.getName());
if (existingOres == null) { if (existingOres == null) {
boolean isSuccess = oresService.addOres(ores); boolean isSuccess = oresService.addOres(ores);
@ -48,7 +48,7 @@ public class OresController {
@Operation(summary = "更新矿石") @Operation(summary = "更新矿石")
@PutMapping("") @PutMapping("")
public Result<String> updateOres(@Valid @RequestBody Ores ores) {
public Result<String> update(@Valid @RequestBody Ores ores) {
Ores existingOres = oresService.findByName(ores.getName()); Ores existingOres = oresService.findByName(ores.getName());
if (existingOres == null) { if (existingOres == null) {
boolean isSuccess = oresService.updateOres(ores); boolean isSuccess = oresService.updateOres(ores);
@ -63,7 +63,7 @@ public class OresController {
@Operation(summary = "删除矿石") @Operation(summary = "删除矿石")
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public Result<String> deleteOres(@Parameter(description = "矿石ID,多个以英文逗号(,)分割") @PathVariable String ids) {
public Result<String> delete(@Parameter(description = "矿石ID,多个以英文逗号(,)分割") @PathVariable String ids) {
boolean isSuccess = oresService.deleteOres(ids); boolean isSuccess = oresService.deleteOres(ids);
if (isSuccess) { if (isSuccess) {
return Result.success(); return Result.success();

2
src/main/java/com/iflytop/gd/app/controller/SolutionsController.java

@ -63,7 +63,7 @@ public class SolutionsController {
@Operation(summary = "删除溶液") @Operation(summary = "删除溶液")
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public Result<String> deleteUser(@Parameter(description = "溶液ID,多个以英文逗号(,)分割") @PathVariable String ids) {
public Result<String> delete(@Parameter(description = "溶液ID,多个以英文逗号(,)分割") @PathVariable String ids) {
boolean isSuccess = solutionsService.deleteSolutions(ids); boolean isSuccess = solutionsService.deleteSolutions(ids);
if (isSuccess) { if (isSuccess) {
return Result.success(); return Result.success();

8
src/main/java/com/iflytop/gd/app/controller/UserController.java

@ -27,7 +27,7 @@ public class UserController {
@Operation(summary = "用户列表") @Operation(summary = "用户列表")
@GetMapping("/list") @GetMapping("/list")
public PageResult<User> getAllUsers(BasePageQuery pageQuery) {
public PageResult<User> getList(BasePageQuery pageQuery) {
IPage<User> result = userService.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), null); IPage<User> result = userService.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), null);
result.getRecords().forEach(user -> user.setPassword(null)); result.getRecords().forEach(user -> user.setPassword(null));
return PageResult.success(result); return PageResult.success(result);
@ -35,7 +35,7 @@ public class UserController {
@Operation(summary = "添加新用户") @Operation(summary = "添加新用户")
@PostMapping("") @PostMapping("")
public Result<String> addUser(@Valid @RequestBody User user) {
public Result<String> add(@Valid @RequestBody User user) {
User existingUser = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUsername, user.getUsername())); User existingUser = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUsername, user.getUsername()));
if (existingUser == null) { if (existingUser == null) {
user.setFixedUser(null); user.setFixedUser(null);
@ -51,7 +51,7 @@ public class UserController {
@Operation(summary = "更新用户信息") @Operation(summary = "更新用户信息")
@PutMapping("") @PutMapping("")
public Result<String> updateUser(@Valid @RequestBody User user) {
public Result<String> update(@Valid @RequestBody User user) {
boolean isSuccess = userService.updateById(user); boolean isSuccess = userService.updateById(user);
if (isSuccess) { if (isSuccess) {
return Result.success(); return Result.success();
@ -61,7 +61,7 @@ public class UserController {
@Operation(summary = "删除用户") @Operation(summary = "删除用户")
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public Result<String> deleteUser(@Parameter(description = "用户ID,多个以英文逗号(,)分割") @PathVariable String ids) {
public Result<String> delete(@Parameter(description = "用户ID,多个以英文逗号(,)分割") @PathVariable String ids) {
boolean isSuccess = userService.deleteUser(ids); boolean isSuccess = userService.deleteUser(ids);
if (isSuccess) { if (isSuccess) {
return Result.success(); return Result.success();

12
src/main/java/com/iflytop/gd/app/mapper/DevicePositionMapper.java

@ -0,0 +1,12 @@
package com.iflytop.gd.app.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iflytop.gd.app.model.entity.DevicePosition;
import org.apache.ibatis.annotations.Mapper;
/**
* 设备位置持久层接口
*/
@Mapper
public interface DevicePositionMapper extends BaseMapper<DevicePosition> {
}

3
src/main/java/com/iflytop/gd/app/model/dto/StopCraftsDto.java → src/main/java/com/iflytop/gd/app/model/dto/ResumeCraftsDTO.java

@ -1,13 +1,12 @@
package com.iflytop.gd.app.model.dto; package com.iflytop.gd.app.model.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@Schema(description = "恢复执行工艺") @Schema(description = "恢复执行工艺")
@Data @Data
public class StopCraftsDto {
public class ResumeCraftsDTO {
@NotNull @NotNull
@Schema(description = "加热区id") @Schema(description = "加热区id")
private String heatId; private String heatId;

3
src/main/java/com/iflytop/gd/app/model/dto/ResumeCraftsDto.java → src/main/java/com/iflytop/gd/app/model/dto/StopCraftsDTO.java

@ -1,13 +1,12 @@
package com.iflytop.gd.app.model.dto; package com.iflytop.gd.app.model.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@Schema(description = "恢复执行工艺") @Schema(description = "恢复执行工艺")
@Data @Data
public class ResumeCraftsDto {
public class StopCraftsDTO {
@NotNull @NotNull
@Schema(description = "加热区id") @Schema(description = "加热区id")
private String heatId; private String heatId;

34
src/main/java/com/iflytop/gd/app/model/entity/DevicePosition.java

@ -0,0 +1,34 @@
package com.iflytop.gd.app.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iflytop.gd.common.base.BaseEntity;
import com.iflytop.gd.common.enums.data.DevicePositionCode;
import com.iflytop.gd.common.enums.data.DevicePositionType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Schema(description = "设备位置记录")
@TableName("device_position")
@Data
public class DevicePosition extends BaseEntity {
@Schema(description = "位置名称")
private String name;
@Schema(description = "位置代码")
private DevicePositionCode code;
@Schema(description = "位置类型")
private DevicePositionType type;
@NotNull
@NotBlank
@Schema(description = "位置数据")
private String position;
}

39
src/main/java/com/iflytop/gd/app/model/vo/DevicePositionVO.java

@ -0,0 +1,39 @@
package com.iflytop.gd.app.model.vo;
import com.iflytop.gd.app.model.entity.DevicePosition;
import com.iflytop.gd.common.enums.data.DevicePositionCode;
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(DevicePosition devicePosition) {
this.id = devicePosition.getId();
this.name = devicePosition.getName();
this.code = devicePosition.getCode();
this.type = devicePosition.getType().getName();
this.position = devicePosition.getPosition();
}
}

2
src/main/java/com/iflytop/gd/app/service/ContainerService.java

@ -16,7 +16,7 @@ import java.util.List;
public class ContainerService extends ServiceImpl<ContainerMapper, Container>{ public class ContainerService extends ServiceImpl<ContainerMapper, Container>{
private final ContainerMapper containerMapper; private final ContainerMapper containerMapper;
public List<Container> getAllContainer() {
public List<Container> getList() {
return this.list(); return this.list();
} }

8
src/main/java/com/iflytop/gd/app/service/CraftsService.java

@ -185,14 +185,6 @@ public class CraftsService extends ServiceImpl<CraftsMapper, Crafts> {
return this.getOne(new LambdaQueryWrapper<>(new Crafts()).eq(Crafts::getName, name)); return this.getOne(new LambdaQueryWrapper<>(new Crafts()).eq(Crafts::getName, name));
} }
public boolean addCrafts(Crafts crafts) {
return this.save(crafts);
}
public boolean updateCrafts(Crafts crafts) {
return this.updateById(crafts);
}
public boolean deleteCrafts(String idsStr) { public boolean deleteCrafts(String idsStr) {
List<Long> ids = Arrays.stream(idsStr.split(",")).map(Long::parseLong).collect(Collectors.toList()); List<Long> ids = Arrays.stream(idsStr.split(",")).map(Long::parseLong).collect(Collectors.toList());
return this.removeByIds(ids); return this.removeByIds(ids);

43
src/main/java/com/iflytop/gd/app/service/DevicePositionService.java

@ -0,0 +1,43 @@
package com.iflytop.gd.app.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.gd.app.mapper.DevicePositionMapper;
import com.iflytop.gd.app.model.entity.DevicePosition;
import com.iflytop.gd.app.model.vo.DevicePositionVO;
import com.iflytop.gd.common.enums.data.DevicePositionCode;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 设备位置服务
*/
@Service
@RequiredArgsConstructor
public class DevicePositionService extends ServiceImpl<DevicePositionMapper, DevicePosition> {
public List<DevicePositionVO> getList() {
List<DevicePosition> devicePositions = super.list();
return devicePositions.stream()
.map(DevicePositionVO::new)
.collect(Collectors.toList());
}
/**
* 根据位置类型获取位置
*/
public DevicePosition getPoint(DevicePositionCode code) {
return this.getOne(new LambdaQueryWrapper<>(DevicePosition.class).eq(DevicePosition::getCode, code));
}
public boolean deletePositon(String idsStr) {
List<Long> ids = Arrays.stream(idsStr.split(","))
.map(Long::parseLong)
.collect(Collectors.toList());
return this.removeByIds(ids);
}
}

12
src/main/java/com/iflytop/gd/common/enums/data/DevicePositionCode.java

@ -0,0 +1,12 @@
package com.iflytop.gd.common.enums.data;
import lombok.Getter;
/**
* 设备位置代码
*/
@Getter
public enum DevicePositionCode {
test
}

31
src/main/java/com/iflytop/gd/common/enums/data/DevicePositionType.java

@ -0,0 +1,31 @@
package com.iflytop.gd.common.enums.data;
import lombok.Getter;
/**
* 设备位置类型
*/
@Getter
public enum DevicePositionType {
/**
* 直线距离
*/
DISTANCE("直线距离"),
/**
* 二维点
*/
POINT_2D("二维点"),
/**
* 三维点
*/
POINT_3D("三维点");
private final String name;
// 构造函数
DevicePositionType(String name) {
this.name = name;
}
}

11
src/main/resources/sql/init.sql

@ -89,6 +89,17 @@ CREATE TABLE IF NOT EXISTS device_config (
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
); );
-- 设备位置 表
CREATE TABLE IF NOT EXISTS device_position (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
code TEXT,
type TEXT,
position TEXT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 系统配置 表 -- 系统配置 表
CREATE TABLE IF NOT EXISTS system_config ( CREATE TABLE IF NOT EXISTS system_config (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,

Loading…
Cancel
Save