From 026b71da94eca620df970351e77cc1a384ad8b5c Mon Sep 17 00:00:00 2001 From: huangfeng Date: Tue, 25 Mar 2025 14:43:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=83=AD=E6=88=90?= =?UTF-8?q?=E5=83=8F=E9=87=87=E9=9B=86=E9=85=8D=E7=BD=AE=E7=9A=84=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=92=8C=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E8=A3=85=E7=BD=AE=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/upgrade20250325.sql | 13 ++++++ .../controller/ThermalConfigController.java | 37 ++++++++++++++++ .../java/com/xydl/cac/entity/NSensor.java | 16 +++++++ .../com/xydl/cac/entity/ThermalConfig.java | 39 +++++++++++++++++ .../xydl/cac/model/ThermalConfigModel.java | 15 +++++++ .../repository/ThermalConfigRepository.java | 12 ++++++ .../cac/service/ThermalConfigService.java | 11 +++++ .../impl/ThermalConfigServiceImpl.java | 43 +++++++++++++++++++ 8 files changed, 186 insertions(+) create mode 100644 db/upgrade20250325.sql create mode 100644 src/main/java/com/xydl/cac/controller/ThermalConfigController.java create mode 100644 src/main/java/com/xydl/cac/entity/ThermalConfig.java create mode 100644 src/main/java/com/xydl/cac/model/ThermalConfigModel.java create mode 100644 src/main/java/com/xydl/cac/repository/ThermalConfigRepository.java create mode 100644 src/main/java/com/xydl/cac/service/ThermalConfigService.java create mode 100644 src/main/java/com/xydl/cac/service/impl/ThermalConfigServiceImpl.java diff --git a/db/upgrade20250325.sql b/db/upgrade20250325.sql new file mode 100644 index 0000000..a3b5824 --- /dev/null +++ b/db/upgrade20250325.sql @@ -0,0 +1,13 @@ +ALTER TABLE `n_sensor` +ADD COLUMN `ip` VARCHAR(45) NULL AFTER `order_num`, +ADD COLUMN `port` INT NULL AFTER `ip`, +ADD COLUMN `username` VARCHAR(45) NULL AFTER `port`, +ADD COLUMN `passwd` VARCHAR(45) NULL AFTER `username`; + +CREATE TABLE `thermal_config` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type_id` int(11) DEFAULT NULL COMMENT '类型id', + `maxtemp` varchar(45) DEFAULT NULL, + `mintemp` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/src/main/java/com/xydl/cac/controller/ThermalConfigController.java b/src/main/java/com/xydl/cac/controller/ThermalConfigController.java new file mode 100644 index 0000000..ec5ee84 --- /dev/null +++ b/src/main/java/com/xydl/cac/controller/ThermalConfigController.java @@ -0,0 +1,37 @@ +package com.xydl.cac.controller; + +import com.xydl.cac.model.Response; +import com.xydl.cac.model.ThermalConfigModel; +import com.xydl.cac.service.ThermalConfigService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController +@Api(tags = {"热成像测温相关接口"}) +@RequestMapping("thermal") +@Slf4j +public class ThermalConfigController extends BasicController { + + @Resource + ThermalConfigService configService; + + @GetMapping("getConfig") + @ApiOperation("查询配置") + public Response getConfig() { + ThermalConfigModel result = configService.getConfig(); + return Response.success(result); + } + + @PostMapping("saveConfig") + @ApiOperation("修改配置") + public Response saveConfig(@Validated @RequestBody ThermalConfigModel model) throws Exception { + configService.saveConfig(model); + return Response.success("OK"); + } + +} diff --git a/src/main/java/com/xydl/cac/entity/NSensor.java b/src/main/java/com/xydl/cac/entity/NSensor.java index 3a097a9..9cae80d 100644 --- a/src/main/java/com/xydl/cac/entity/NSensor.java +++ b/src/main/java/com/xydl/cac/entity/NSensor.java @@ -68,6 +68,22 @@ public class NSensor { @ApiModelProperty("排序编号") private Integer orderNum; + @ApiModelProperty("ip") + @Column(name = "ip") + private String ip; + + @Column(name = "port") + @ApiModelProperty("port") + private Integer port; + + @ApiModelProperty("username") + @Column(name = "username") + private String username; + + @ApiModelProperty("passwd") + @Column(name = "passwd") + private String passwd; + @ApiModelProperty("主设备名称") @Transient private String zsbName; diff --git a/src/main/java/com/xydl/cac/entity/ThermalConfig.java b/src/main/java/com/xydl/cac/entity/ThermalConfig.java new file mode 100644 index 0000000..0be196d --- /dev/null +++ b/src/main/java/com/xydl/cac/entity/ThermalConfig.java @@ -0,0 +1,39 @@ +package com.xydl.cac.entity; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.*; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Entity +@Table(name = "thermal_config") +@ApiModel("热成像测温配置表") +public class ThermalConfig { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Integer id; + + @Column(name = "type_id") + @ApiModelProperty("类型Id") + private Integer typeId; + + @ApiModelProperty("最高温字段") + @Column(name = "maxtemp") + private String maxtemp; + + @ApiModelProperty("最低温字段") + @Column(name = "mintemp") + private String mintemp; +} \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/model/ThermalConfigModel.java b/src/main/java/com/xydl/cac/model/ThermalConfigModel.java new file mode 100644 index 0000000..f6d0b8d --- /dev/null +++ b/src/main/java/com/xydl/cac/model/ThermalConfigModel.java @@ -0,0 +1,15 @@ +package com.xydl.cac.model; + +import com.xydl.cac.entity.ThermalConfig; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class ThermalConfigModel { + @NotNull(message = "typeId不能为空") + Integer typeId; + @NotNull(message = "list不能为空") + List list; +} diff --git a/src/main/java/com/xydl/cac/repository/ThermalConfigRepository.java b/src/main/java/com/xydl/cac/repository/ThermalConfigRepository.java new file mode 100644 index 0000000..f6c3bed --- /dev/null +++ b/src/main/java/com/xydl/cac/repository/ThermalConfigRepository.java @@ -0,0 +1,12 @@ +package com.xydl.cac.repository; + +import com.xydl.cac.entity.ThermalConfig; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ThermalConfigRepository extends JpaRepository, JpaSpecificationExecutor { + +} \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/service/ThermalConfigService.java b/src/main/java/com/xydl/cac/service/ThermalConfigService.java new file mode 100644 index 0000000..21ec816 --- /dev/null +++ b/src/main/java/com/xydl/cac/service/ThermalConfigService.java @@ -0,0 +1,11 @@ +package com.xydl.cac.service; + +import com.xydl.cac.model.ThermalConfigModel; + + +public interface ThermalConfigService { + + ThermalConfigModel getConfig(); + + void saveConfig(ThermalConfigModel model); +} diff --git a/src/main/java/com/xydl/cac/service/impl/ThermalConfigServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ThermalConfigServiceImpl.java new file mode 100644 index 0000000..200f334 --- /dev/null +++ b/src/main/java/com/xydl/cac/service/impl/ThermalConfigServiceImpl.java @@ -0,0 +1,43 @@ +package com.xydl.cac.service.impl; + +import com.xydl.cac.entity.ThermalConfig; +import com.xydl.cac.model.ThermalConfigModel; +import com.xydl.cac.repository.ThermalConfigRepository; +import com.xydl.cac.service.ThermalConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class ThermalConfigServiceImpl implements ThermalConfigService { + + @Resource + ThermalConfigRepository repository; + + @Override + public ThermalConfigModel getConfig() { + ThermalConfigModel model = new ThermalConfigModel(); + List list = repository.findAll(); + if (!CollectionUtils.isEmpty(list)) { + model.setTypeId(list.get(0).getTypeId()); + model.setList(list); + } + return model; + } + + @Override + public void saveConfig(ThermalConfigModel model) { + repository.deleteAll(); + for (ThermalConfig item : model.getList()) { + item.setId(null); + item.setTypeId(model.getTypeId()); + repository.save(item); + } + } +}