Browse Source

feat:容器基础数据更新和基础数据字段增加

master
guoapeng 6 months ago
parent
commit
a9a1e7c29e
  1. 35
      sql/demo.sql
  2. 24
      src/main/java/com/qyft/gd/controller/BaseDataController.java
  3. 12
      src/main/java/com/qyft/gd/controller/ContainerController.java
  4. 28
      src/main/java/com/qyft/gd/mapper/ContainerMapper.java
  5. 2
      src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java
  6. 14
      src/main/java/com/qyft/gd/model/dto/BaseDataDTO.java
  7. 14
      src/main/java/com/qyft/gd/model/dto/ContainerDTO.java
  8. 4
      src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java
  9. 19
      src/main/java/com/qyft/gd/model/entity/Container.java
  10. 27
      src/main/java/com/qyft/gd/model/vo/BaseDataVO.java
  11. 16
      src/main/java/com/qyft/gd/model/vo/ContainerListVO.java
  12. 6
      src/main/java/com/qyft/gd/model/vo/SysSettingVO.java
  13. 57
      src/main/java/com/qyft/gd/service/BaseDataService.java
  14. 16
      src/main/java/com/qyft/gd/service/ContainerService.java
  15. 33
      src/main/java/com/qyft/gd/service/impl/ContainerServiceImpl.java
  16. 5
      src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java
  17. 7
      src/main/resources/mapper/ContainerMapper.xml
  18. 10
      src/main/resources/mapper/SysSettingsMapper.xml

35
sql/demo.sql

@ -43,25 +43,26 @@ CREATE TABLE IF NOT EXISTS sys_settings (
code TEXT,
value1 TEXT,
value2 TEXT,
value3 TEXT
value3 TEXT,
value4 TEXT
);
INSERT INTO sys_settings (id, parent_id, name, code, value1, value2, value3)
INSERT INTO sys_settings (id, parent_id, name, code, value1, value2, value3, value4)
VALUES
(1, -1, '加热区域配置', 'heat_area', '坐标', '硬件代号', '' ),
(2, 1, 'A1', 'heat_area_A1', '1,1,1', '', ''),
(3, 1, 'A2', 'heat_area_A2', '2,2,2', '', ''),
(4, 1, 'A3', 'heat_area_A3', '3,3,3', '', ''),
(5, 1, 'A4', 'heat_area_A4', '4,4,4', '', ''),
(6, 1, 'A5', 'heat_area_A5', '5,5,5', '', ''),
(7, 1, 'A6', 'heat_area_A6', '6,6,6', '', ''),
(8, -1, '加液区域配置', 'solution_area', '坐标', '硬件代号', '' ),
(9, 8, '加液区', 'solution_area_A7', '7,7,7', '', '' ),
(10, -1, '拍子区域配置', 'lid_area', '坐标', '硬件代号', '' ),
(11, 10, '拍子存放区', 'lid_area_A8', '8,8,8', '', '' ),
(12, -1, '其他系统配置', 'sys_setting', '系统配置的值', '', '' ),
(13, 12, '溶液量低提示', 'sys_setting_volume', '300', '', '' ),
(14, 12, '异常处理区', 'sys_setting_abnormal_area', '7' , '', ''),
(15, 12, '设备信息', 'sys_setting_info', '12345' , '', '');
(1, -1, '加热区域配置', 'heat_area', '坐标', '硬件代号', '温度', '工艺id' ),
(2, 1, 'A1', 'heat_area_A1', '1,1,1', '', '', ''),
(3, 1, 'A2', 'heat_area_A2', '2,2,2', '', '',''),
(4, 1, 'A3', 'heat_area_A3', '3,3,3', '', '',''),
(5, 1, 'A4', 'heat_area_A4', '4,4,4', '', '',''),
(6, 1, 'A5', 'heat_area_A5', '5,5,5', '', '',''),
(7, 1, 'A6', 'heat_area_A6', '6,6,6', '', '',''),
(8, -1, '加液区域配置', 'solution_area', '坐标', '硬件代号', '','' ),
(9, 8, '加液区', 'solution_area_A7', '7,7,7', '', '','' ),
(10, -1, '拍子区域配置', 'lid_area', '坐标', '硬件代号', '' ,''),
(11, 10, '拍子存放区', 'lid_area_A8', '8,8,8', '', '','' ),
(12, -1, '其他系统配置', 'sys_setting', '系统配置的值', '', '' ,''),
(13, 12, '溶液量低提示', 'sys_setting_volume', '300', '', '',''),
(14, 12, '异常处理区', 'sys_setting_abnormal_area', '7' , '', '',''),
(15, 12, '设备信息', 'sys_setting_info', '12345' , '', '','');
-- 创建 solutions 溶液 表

24
src/main/java/com/qyft/gd/controller/BaseDataController.java

@ -0,0 +1,24 @@
package com.qyft.gd.controller;
import com.qyft.gd.model.vo.BaseDataVO;
import com.qyft.gd.service.BaseDataService;
import com.qyft.gd.system.common.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@Tag(name = "基础数据")
@RestController
@RequestMapping("/api/baseData")
@RequiredArgsConstructor
@Slf4j
public class BaseDataController {
private final BaseDataService baseDataService;
@Operation(summary = "获取基础数据")
@GetMapping("/")
public Result<BaseDataVO> getAllBaseData() {
return Result.success(baseDataService.getBaseData());
}
}

12
src/main/java/com/qyft/gd/controller/ContainerController.java

@ -1,6 +1,9 @@
package com.qyft.gd.controller;
import com.qyft.gd.model.dto.ContainerDTO;
import com.qyft.gd.model.entity.Container;
import com.qyft.gd.model.vo.ContainerListVO;
import com.qyft.gd.service.ContainerService;
import com.qyft.gd.system.common.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -16,14 +19,15 @@ import java.util.List;
@RequiredArgsConstructor
@Slf4j
public class ContainerController {
private final ContainerService containerService;
@Operation(summary = "容器列表")
@GetMapping("/list")
public Result<List<Container>> getAllContainer() {
return Result.success();
public Result<List<ContainerListVO>> getAllContainer() {
return Result.success(containerService.getAllContainer());
}
@Operation(summary = "更新容器配置")
@PutMapping("/{id}")
public Result<String> updateContainer( @RequestBody Container container) {
return Result.success();
public Result<Boolean> updateContainer(@PathVariable Long id, @RequestBody ContainerDTO dto) {
return Result.success(containerService.updateById(id));
}
}

28
src/main/java/com/qyft/gd/mapper/ContainerMapper.java

@ -0,0 +1,28 @@
package com.qyft.gd.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qyft.gd.model.dto.SysSettingsDTO;
import com.qyft.gd.model.entity.Container;
import com.qyft.gd.model.entity.SysSettings;
import com.qyft.gd.model.vo.ContainerListVO;
import com.qyft.gd.model.vo.SysSettingVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 郭安鹏
* @since 2025-02-18
*/
@Mapper
public interface ContainerMapper extends BaseMapper<Container> {
List<ContainerListVO> selectAll();
}

2
src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java

@ -22,7 +22,7 @@ import java.util.List;
public interface SysSettingsMapper extends BaseMapper<SysSettings> {
List<SysSettingVO> getConfig(String type);
Boolean updateById(SysSettingsDTO dto);
void updateById(SysSettingsDTO dto);
int getIdByCode(String type);
}

14
src/main/java/com/qyft/gd/model/dto/BaseDataDTO.java

@ -0,0 +1,14 @@
package com.qyft.gd.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BaseDataDTO {
@Schema(description = "加热区id")
private Long id;
@Schema(description = "温度")
private Long temperature;
@Schema(description = "工艺id")
private Long craftId;
}

14
src/main/java/com/qyft/gd/model/dto/ContainerDTO.java

@ -0,0 +1,14 @@
package com.qyft.gd.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class ContainerDTO {
@Schema(description = "容器id")
private Long id;
@Schema(description = "溶液id")
private Long solutionId;
@Schema(description = "已使用容量")
private Long capacityUsed;
}

4
src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java

@ -9,4 +9,8 @@ public class SysSettingsDTO {
private Long id;
@Schema(description = "值")
private String value;
@Schema(description = "温度")
private Long temperature;
@Schema(description = "工艺id")
private Long craftId;
}

19
src/main/java/com/qyft/gd/model/entity/Container.java

@ -2,25 +2,26 @@
package com.qyft.gd.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qyft.gd.system.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Schema(description = "容器状态表")
@TableName("containerStatus")
@EqualsAndHashCode(callSuper = false)
@Schema(description = "容器表")
@TableName("container")
@Data
public class Container extends BaseEntity {
public class Container {
@NotBlank
@Schema(description = "类型")
private String type;
@Schema(description = "类型 0 溶液 1 废液")
private Long type;
@NotBlank
@Schema(description = "溶液id")
private String solutionId;
private Long solutionId;
@Schema(description = "机器id")
private String pump_id;
@NotBlank
@Schema(description = "总容量")

27
src/main/java/com/qyft/gd/model/vo/BaseDataVO.java

@ -0,0 +1,27 @@
package com.qyft.gd.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode(callSuper = false)
@Schema(description = "容器")
@Data
public class BaseDataVO {
@Schema(description = "加热区")
List<SysSettingVO> heat_area;
@Schema(description = "加液区")
List<SysSettingVO> solution_area;
@Schema(description = "拍子区域")
List<SysSettingVO> lid_area;
@Schema(description = "系统配置")
List<SysSettingVO> sys_setting;
@Schema(description = "容器数据")
List<ContainerListVO> containers;
}

16
src/main/java/com/qyft/gd/model/vo/ContainerListVO.java

@ -0,0 +1,16 @@
package com.qyft.gd.model.vo;
import com.qyft.gd.model.entity.Container;
import com.qyft.gd.model.entity.Crafts;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Schema(description = "容器")
@Data
public class ContainerListVO extends Container {
}

6
src/main/java/com/qyft/gd/model/vo/SysSettingVO.java

@ -29,4 +29,10 @@ public class SysSettingVO {
@Schema(description = "设备id")
private String hardwareId;
@Schema(description = "加热区温度")
private Integer temperature;
@Schema(description = "工艺id")
private Long craftId;
}

57
src/main/java/com/qyft/gd/service/BaseDataService.java

@ -0,0 +1,57 @@
package com.qyft.gd.service;
import com.qyft.gd.model.dto.SysSettingsDTO;
import com.qyft.gd.model.vo.BaseDataVO;
import com.qyft.gd.model.vo.ContainerListVO;
import com.qyft.gd.model.vo.SysSettingVO;
import jakarta.annotation.PostConstruct;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BaseDataService {
private final SysSettingsService sysSettingsService;
private final ContainerService containerService;
private final BaseDataVO map = new BaseDataVO();
public BaseDataService(SysSettingsService sysSettingsService, ContainerService containerService) {
this.sysSettingsService = sysSettingsService;
this.containerService = containerService;
}
// @PostConstruct
public void init() {
List<SysSettingVO> heatAreaList = sysSettingsService.getConfig("heat_area");
List<SysSettingVO> solutionAreaList = sysSettingsService.getConfig("solution_area");
List<SysSettingVO> lidAreaList = sysSettingsService.getConfig("lid_area");
List<SysSettingVO> sysSettingList = sysSettingsService.getConfig("sys_setting");
List<ContainerListVO> containerList = containerService.getAllContainer();
for (SysSettingVO sysSettingVO : sysSettingList) {
sysSettingVO.setTemperature(0);
sysSettingVO.setCraftId(null);
}
map.setHeat_area(heatAreaList);
map.setSolution_area(solutionAreaList);
map.setLid_area(lidAreaList);
map.setSys_setting(sysSettingList);
map.setContainers(containerList);
}
public BaseDataVO getBaseData() {
return map;
}
public void updateBaseData(SysSettingsDTO dto) {
init();
List<SysSettingVO> heatAreaList = map.getHeat_area();
for (SysSettingVO sysSettingVO : heatAreaList) {
if (sysSettingVO.getId().equals(dto.getId())) {
if(dto.getTemperature() != null ) {
sysSettingVO.setTemperature(Math.toIntExact(dto.getTemperature()));
}
if (dto.getCraftId() != null) {
sysSettingVO.setCraftId(dto.getCraftId());
}
}
}
}
}

16
src/main/java/com/qyft/gd/service/ContainerService.java

@ -0,0 +1,16 @@
package com.qyft.gd.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qyft.gd.model.entity.Container;
import com.qyft.gd.model.vo.ContainerListVO;
import java.util.List;
/**
* 溶器业务接口
*/
public interface ContainerService extends IService<Container> {
List<ContainerListVO> getAllContainer();
Boolean updateById(Long id);
}

33
src/main/java/com/qyft/gd/service/impl/ContainerServiceImpl.java

@ -0,0 +1,33 @@
package com.qyft.gd.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qyft.gd.mapper.ContainerMapper;
import com.qyft.gd.mapper.SysSettingsMapper;
import com.qyft.gd.model.entity.Container;
import com.qyft.gd.model.entity.SysSettings;
import com.qyft.gd.model.vo.ContainerListVO;
import com.qyft.gd.service.ContainerService;
import com.qyft.gd.service.SysSettingsService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 容器实现类
*/
@Service
@RequiredArgsConstructor
public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container> implements ContainerService {
private final ContainerMapper containerMapper;
@Override
public List<ContainerListVO> getAllContainer() {
return containerMapper.selectAll();
}
@Override
public Boolean updateById(Long id) {
return null;
}
}

5
src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java

@ -6,6 +6,7 @@ import com.qyft.gd.model.dto.SysSettingsDTO;
import com.qyft.gd.model.entity.SysSettings;
import com.qyft.gd.model.vo.SysSettingResult;
import com.qyft.gd.model.vo.SysSettingVO;
import com.qyft.gd.service.BaseDataService;
import com.qyft.gd.service.SysSettingsService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -14,7 +15,7 @@ import java.util.ArrayList;
import java.util.List;
/**
* 角色业务实现类
* 系统配置实现类
*/
@Service
@RequiredArgsConstructor
@ -48,8 +49,8 @@ public class SysSettingsServiceImpl extends ServiceImpl<SysSettingsMapper, SysSe
public Boolean updateConfig(List<SysSettingsDTO> dto) {
for (SysSettingsDTO sysSettingsDTO : dto) {
sysSettingsMapper.updateById(sysSettingsDTO);
// baseDataService.updateBaseData(sysSettingsDTO);
}
return true;
}

7
src/main/resources/mapper/ContainerMapper.xml

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qyft.gd.mapper.ContainerMapper">
<select id="selectAll" resultType="com.qyft.gd.model.entity.Container">
select * from container
</select>
</mapper>

10
src/main/resources/mapper/SysSettingsMapper.xml

@ -9,10 +9,14 @@
</select>
<update id="updateById">
UPDATE sys_settings
SET value1 = #{value}
WHERE id = #{id}
UPDATE sys_settings
SET
value1 = CASE WHEN #{value} IS NOT NULL THEN #{value} ELSE value1 END,
value3 = CASE WHEN #{temperature} IS NOT NULL THEN #{temperature} ELSE value3 END,
value4 = CASE WHEN #{craftId} IS NOT NULL THEN #{craftId} ELSE value4 END
WHERE id = #{id}
</update>
</mapper>
Loading…
Cancel
Save