diff --git a/sql/demo.sql b/sql/demo.sql index b0cf2ff..05361d6 100644 --- a/sql/demo.sql +++ b/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 溶液 表 diff --git a/src/main/java/com/qyft/gd/controller/BaseDataController.java b/src/main/java/com/qyft/gd/controller/BaseDataController.java new file mode 100644 index 0000000..58d3f2b --- /dev/null +++ b/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 getAllBaseData() { + return Result.success(baseDataService.getBaseData()); + } +} diff --git a/src/main/java/com/qyft/gd/controller/ContainerController.java b/src/main/java/com/qyft/gd/controller/ContainerController.java index 81ad4bf..1d7d371 100644 --- a/src/main/java/com/qyft/gd/controller/ContainerController.java +++ b/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> getAllContainer() { - return Result.success(); + public Result> getAllContainer() { + return Result.success(containerService.getAllContainer()); } @Operation(summary = "更新容器配置") @PutMapping("/{id}") - public Result updateContainer( @RequestBody Container container) { - return Result.success(); + public Result updateContainer(@PathVariable Long id, @RequestBody ContainerDTO dto) { + return Result.success(containerService.updateById(id)); } } diff --git a/src/main/java/com/qyft/gd/mapper/ContainerMapper.java b/src/main/java/com/qyft/gd/mapper/ContainerMapper.java new file mode 100644 index 0000000..814e5ee --- /dev/null +++ b/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; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author 郭安鹏 + * @since 2025-02-18 + */ + +@Mapper +public interface ContainerMapper extends BaseMapper { + + List selectAll(); +} + diff --git a/src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java b/src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java index bafaa5c..650fd12 100644 --- a/src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java +++ b/src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java @@ -22,7 +22,7 @@ import java.util.List; public interface SysSettingsMapper extends BaseMapper { List getConfig(String type); - Boolean updateById(SysSettingsDTO dto); + void updateById(SysSettingsDTO dto); int getIdByCode(String type); } diff --git a/src/main/java/com/qyft/gd/model/dto/BaseDataDTO.java b/src/main/java/com/qyft/gd/model/dto/BaseDataDTO.java new file mode 100644 index 0000000..9919276 --- /dev/null +++ b/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; +} diff --git a/src/main/java/com/qyft/gd/model/dto/ContainerDTO.java b/src/main/java/com/qyft/gd/model/dto/ContainerDTO.java new file mode 100644 index 0000000..fc22ef1 --- /dev/null +++ b/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; +} diff --git a/src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java b/src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java index e97d591..35c6e79 100644 --- a/src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java +++ b/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; } diff --git a/src/main/java/com/qyft/gd/model/entity/Container.java b/src/main/java/com/qyft/gd/model/entity/Container.java index 5ac846e..262390a 100644 --- a/src/main/java/com/qyft/gd/model/entity/Container.java +++ b/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 = "总容量") diff --git a/src/main/java/com/qyft/gd/model/vo/BaseDataVO.java b/src/main/java/com/qyft/gd/model/vo/BaseDataVO.java new file mode 100644 index 0000000..cb3d104 --- /dev/null +++ b/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 heat_area; + + @Schema(description = "加液区") + List solution_area; + + @Schema(description = "拍子区域") + List lid_area; + + @Schema(description = "系统配置") + List sys_setting; + + @Schema(description = "容器数据") + List containers; +} diff --git a/src/main/java/com/qyft/gd/model/vo/ContainerListVO.java b/src/main/java/com/qyft/gd/model/vo/ContainerListVO.java new file mode 100644 index 0000000..3b42df0 --- /dev/null +++ b/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 { + +} diff --git a/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java b/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java index 4e43ae0..3398891 100644 --- a/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java +++ b/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; + } diff --git a/src/main/java/com/qyft/gd/service/BaseDataService.java b/src/main/java/com/qyft/gd/service/BaseDataService.java new file mode 100644 index 0000000..3ef7a45 --- /dev/null +++ b/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 heatAreaList = sysSettingsService.getConfig("heat_area"); + List solutionAreaList = sysSettingsService.getConfig("solution_area"); + List lidAreaList = sysSettingsService.getConfig("lid_area"); + List sysSettingList = sysSettingsService.getConfig("sys_setting"); + List 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 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()); + } + } + } + } +} diff --git a/src/main/java/com/qyft/gd/service/ContainerService.java b/src/main/java/com/qyft/gd/service/ContainerService.java new file mode 100644 index 0000000..d5fa6f5 --- /dev/null +++ b/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 { + List getAllContainer(); + + Boolean updateById(Long id); +} diff --git a/src/main/java/com/qyft/gd/service/impl/ContainerServiceImpl.java b/src/main/java/com/qyft/gd/service/impl/ContainerServiceImpl.java new file mode 100644 index 0000000..bb25d2f --- /dev/null +++ b/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 implements ContainerService { + private final ContainerMapper containerMapper; + + @Override + public List getAllContainer() { + return containerMapper.selectAll(); + } + + @Override + public Boolean updateById(Long id) { + return null; + } +} diff --git a/src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java b/src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java index b31f51e..31059b4 100644 --- a/src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java +++ b/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 dto) { for (SysSettingsDTO sysSettingsDTO : dto) { sysSettingsMapper.updateById(sysSettingsDTO); +// baseDataService.updateBaseData(sysSettingsDTO); } - return true; } diff --git a/src/main/resources/mapper/ContainerMapper.xml b/src/main/resources/mapper/ContainerMapper.xml new file mode 100644 index 0000000..9be1189 --- /dev/null +++ b/src/main/resources/mapper/ContainerMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/SysSettingsMapper.xml b/src/main/resources/mapper/SysSettingsMapper.xml index 160e0f9..cd3a388 100644 --- a/src/main/resources/mapper/SysSettingsMapper.xml +++ b/src/main/resources/mapper/SysSettingsMapper.xml @@ -9,10 +9,14 @@ - 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} + \ No newline at end of file