From 74ee8daf4b698805e3f91f418f8175efab263fee Mon Sep 17 00:00:00 2001 From: hxh <762326930@qq.com> Date: Mon, 11 Mar 2024 15:37:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B0=B4=E9=97=B8=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E8=AE=BE=E5=A4=87=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SzDeviceCheckingController.java | 80 +++++++++++++++ .../SzDeviceCheckingRecordController.java | 54 ++++++++++ .../kms/yxgh/sz/domain/SzDeviceChecking.java | 63 ++++++++++++ .../sz/domain/SzDeviceCheckingRecord.java | 57 +++++++++++ .../sz/dto/SzDeviceCheckingDetailDto.java | 91 +++++++++++++++++ .../yxgh/sz/dto/SzDeviceCheckingQueDto.java | 30 ++++++ .../dto/SzDeviceCheckingRecordDetailDto.java | 53 ++++++++++ .../sz/dto/SzDeviceCheckingRecordQueDto.java | 39 ++++++++ .../sz/mapper/SzDeviceCheckingMapper.java | 16 +++ .../mapper/SzDeviceCheckingRecordMapper.java | 16 +++ .../SzDeviceCheckingRecordService.java | 65 ++++++++++++ .../sz/service/SzDeviceCheckingService.java | 99 +++++++++++++++++++ sql/sy/v1.2.0/全量脚本/v1.2.0-all.sql | 20 +++- sql/sy/v1.2.0/增量脚本/v1.2.0-update.sql | 34 +++++++ 14 files changed, 715 insertions(+), 2 deletions(-) create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingController.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingRecordController.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceChecking.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceCheckingRecord.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingDetailDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingQueDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordDetailDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordQueDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingMapper.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingRecordMapper.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingRecordService.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingService.java diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingController.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingController.java new file mode 100644 index 00000000..7c162e1e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingController.java @@ -0,0 +1,80 @@ +package com.kms.yxgh.sz.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.kms.yxgh.base.Response; +import com.kms.yxgh.sz.dto.SzDeviceCheckingDetailDto; +import com.kms.yxgh.sz.dto.SzDeviceCheckingQueDto; +import com.kms.yxgh.sz.service.SzDeviceCheckingService; +import com.shuili.common.annotation.Log; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.enums.BusinessType; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * @ClassName: SzDeviceCheckingController + * @Description: TODO + * @Date: 2024/3/11 上午11:54 + * * + * @author: hxh + * @version: 1.0 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/run/sz/device") +@Api(tags = "水闸动态检测设备") +public class SzDeviceCheckingController { + + private final SzDeviceCheckingService szDeviceCheckingService; + + /** + * 查询水闸动态检测设备列表 + */ + @ApiOperation(value = "查询水闸动态检测设备列表", notes = "查询水闸动态检测设备列表") + @PostMapping("/list") + public IPage list(@RequestBody SearchParam sp) { + return szDeviceCheckingService.search(sp); + } + + /** + * 查询水闸动态检测设备详情 + */ + @ApiOperation(value = "查询水闸动态检测设备详情", notes = "查询水闸动态检测设备详情") + @GetMapping("/{id}") + public Response detail(@RequestBody String id) { + return Response.ok(szDeviceCheckingService.detail(id)); + } + + /** + * 新增水闸动态检测设备 + */ + @ApiOperation(value = "新增水闸动态检测设备", notes = "新增水闸动态检测设备") + @Log(title = "新增水闸动态检测设备", businessType = BusinessType.UPDATE) + @PostMapping + public Response add(@RequestBody SzDeviceCheckingDetailDto szDeviceCheckingDetailDto) { + return Response.ok(szDeviceCheckingService.add(szDeviceCheckingDetailDto)); + } + + /** + * 修改水闸动态检测设备 + */ + @ApiOperation(value = "修改水闸动态检测设备", notes = "修改水闸动态检测设备") + @Log(title = "修改水闸动态检测设备", businessType = BusinessType.UPDATE) + @PutMapping + public Response update(@RequestBody SzDeviceCheckingDetailDto szDeviceCheckingDetailDto) { + return Response.ok(szDeviceCheckingService.update(szDeviceCheckingDetailDto)); + } + + /** + * 删除水闸动态检测设备 + */ + @ApiOperation(value = "删除水闸动态检测设备", notes = "删除水闸动态检测设备") + @Log(title = "删除水闸动态检测设备", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public Response delete(@PathVariable String id) { + return Response.ok(szDeviceCheckingService.delete(id)); + } + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingRecordController.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingRecordController.java new file mode 100644 index 00000000..3bfa0b65 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDeviceCheckingRecordController.java @@ -0,0 +1,54 @@ +package com.kms.yxgh.sz.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.api.R; +import com.kms.yxgh.sz.domain.SzDeviceCheckingRecord; +import com.kms.yxgh.sz.dto.SzDeviceCheckingDetailDto; +import com.kms.yxgh.sz.dto.SzDeviceCheckingRecordDetailDto; +import com.kms.yxgh.sz.dto.SzDeviceCheckingRecordQueDto; +import com.kms.yxgh.sz.service.SzDeviceCheckingRecordService; +import com.shuili.common.annotation.Log; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.enums.BusinessType; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName: SzDeviceCheckingRecordController + * @Description: TODO + * @Date: 2024/3/11 下午3:00 + * * + * @author: hxh + * @version: 1.0 + */ + +@RestController +@AllArgsConstructor +@RequestMapping("/run/sz/device/record") +@Api(tags = "水闸动态检测设备记录") +public class SzDeviceCheckingRecordController { + + private final SzDeviceCheckingRecordService szDeviceCheckingRecordService; + + /** + * 查询水闸动态检测设备记录列表 + */ + @RequestMapping("/list") + public IPage list(@RequestBody SearchParam sp) { + return szDeviceCheckingRecordService.search(sp); + } + + //新增水闸动态检测设备记录 + @PostMapping + @Log(title = "新增水闸动态检测设备记录", businessType = BusinessType.UPDATE) + @ApiOperation(value = "新增水闸动态检测设备记录", notes = "新增水闸动态检测设备记录") + public SzDeviceCheckingRecordDetailDto add(@RequestBody SzDeviceCheckingRecordDetailDto szDeviceCheckingRecordDetailDto) { + return szDeviceCheckingRecordService.add(szDeviceCheckingRecordDetailDto); + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceChecking.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceChecking.java new file mode 100644 index 00000000..5cee021d --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceChecking.java @@ -0,0 +1,63 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import lombok.Data; + +/** + * 水闸动态检测设备表 bs_sgc_sz_dtsb + * + * @author sy + * @date 2024-01-04 + */ +@TableName("bs_sgc_sz_dtsb") +@Data +public class SzDeviceChecking extends SyBaseEntity { + private static final long serialVersionUID = 1L; + + @TableField("WAGA_CODE") + private String wagaCode; + + /** + * 设备类型 + */ + @TableField("TYPE") + private int type; + + /** + * 设备名称 + */ + @TableField("NAME") + private String name; + + /** + * 设备id + */ + @TableField("DEVICE_ID") + private String deviceId; + + /** + * 设备信息 + */ + @TableField("MESSAGE") + private String message; + + /** + * 预警类型 + */ + @TableField("WARNING_TYPE") + private String warningType; + + /** + * 预警等级 + */ + @TableField("WARNING_LEVEL") + private String warningLevel; + + /** + * 阈值配置 + */ + @TableField("CONFIG") + private String config; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceCheckingRecord.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceCheckingRecord.java new file mode 100644 index 00000000..5d757133 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDeviceCheckingRecord.java @@ -0,0 +1,57 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import lombok.Data; + +import java.util.Date; + +/** + * 水闸动态检测记录表 bs_sgc_sz_dtsbr + * + * @author sy + * @date 2024-01-04 + */ +@TableName("bs_sgc_sz_dtsbr") +@Data +public class SzDeviceCheckingRecord extends SyBaseEntity { + private static final long serialVersionUID = 1L; + + @TableField("WAGA_CODE") + private String wagaCode; + + /** + * 设备id + */ + @TableField("DEVICE_ID") + private String deviceId; + + /** + * 预警类型 + */ + @TableField("WARNING_TYPE") + private String warningType; + + /** + * 预警等级 + */ + @TableField("WARNING_LEVEL") + private String warningLevel; + + /** + * 预警数据 + */ + @TableField("WARNING_DATA") + private String warningData; + + /** + * 预警时间 + */ + @TableField("WARNING_TIME") + private Date warningTime; + + @TableField(exist = false) + private String remark; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingDetailDto.java new file mode 100644 index 00000000..a8e23cb4 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingDetailDto.java @@ -0,0 +1,91 @@ +package com.kms.yxgh.sz.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @ClassName: SzDeviceCheckingDetailDto + * @Description: TODO + * @Date: 2024/3/11 下午12:02 + * * + * @author: hxh + * @version: 1.0 + */ + +@Data +@ApiModel("水闸动态检测设备详情") +public class SzDeviceCheckingDetailDto { + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("水闸编码") + private String wagaCode; + + /** + * 设备类型 + */ + @ApiModelProperty("设备类型") + private int type; + + /** + * 设备名称 + */ + @ApiModelProperty("设备名称") + private String name; + + /** + * 设备id + */ + @ApiModelProperty("设备id") + private String deviceId; + + /** + * 设备信息 + */ + @ApiModelProperty("设备信息") + private String message; + + /** + * 预警类型 + */ + @ApiModelProperty("预警类型") + private String warningType; + + /** + * 预警等级 + */ + @ApiModelProperty("预警等级") + private String warningLevel; + + @ApiModelProperty("阈值配置") + private List configs; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + + @Data + public static class Config { + @ApiModelProperty("最大阈值") + private String maxThreshold; + + + @ApiModelProperty("最小阈值") + private String minThreshold; + + @ApiModelProperty("上报间隔(分钟)") + private String reportInterval; + + } +} \ No newline at end of file diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingQueDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingQueDto.java new file mode 100644 index 00000000..f9e09147 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingQueDto.java @@ -0,0 +1,30 @@ +package com.kms.yxgh.sz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName: SzDeviceCheckingQueDto + * @Description: TODO + * @Date: 2024/3/11 下午12:00 + * * + * @author: hxh + * @version: 1.0 + */ + +@Data +@ApiModel("水闸动态检测设备查询") +public class SzDeviceCheckingQueDto { + + @ApiModelProperty("水闸编码") + private String wagaCode; + + @ApiModelProperty("设备类型") + private String type; + + @ApiModelProperty("设备名称") + private String name; + @ApiModelProperty("预警级别") + private String warningLevel; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordDetailDto.java new file mode 100644 index 00000000..13338942 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordDetailDto.java @@ -0,0 +1,53 @@ +package com.kms.yxgh.sz.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName: SzDeviceCheckingRecordDetailDto + * @Description: TODO + * @Date: 2024/3/11 下午3:09 + * * + * @author: hxh + * @version: 1.0 + */ + +@Data +public class SzDeviceCheckingRecordDetailDto { + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("水闸编码") + private String wagaCode; + + @ApiModelProperty("设备id") + private String deviceId; + + @ApiModelProperty("预警类型") + private String warningType; + + /** + * 预警等级 + */ + @ApiModelProperty("预警等级") + private String warningLevel; + + /** + * 预警时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("预警时间") + private Date warningTime; + + /** + * 预警数据 + */ + @ApiModelProperty("预警数据") + private String warningData; + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordQueDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordQueDto.java new file mode 100644 index 00000000..0da4864a --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDeviceCheckingRecordQueDto.java @@ -0,0 +1,39 @@ +package com.kms.yxgh.sz.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName: SzDeviceCheckingRecordQueDto + * @Description: TODO + * @Date: 2024/3/11 下午12:00 + * * + * @author: hxh + * @version: 1.0 + */ + +@Data +@ApiModel("水闸动态检测记录查询") +public class SzDeviceCheckingRecordQueDto { + + @ApiModelProperty("水闸编码") + private String wagaCode; + + @ApiModelProperty("预警级别") + private String warningLevel; + + @ApiModelProperty("预警类型") + private String warningType; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("预警开始时间") + private Date warningStartTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("预警结束时间") + private Date warningEndTime; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingMapper.java new file mode 100644 index 00000000..2ce886f8 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingMapper.java @@ -0,0 +1,16 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.sz.domain.SzDeviceChecking; +import org.springframework.stereotype.Repository; + +/** + * 水闸动态检测设备Mapper接口 + * + * @author sy + * @date 2023-11-09 + */ +@Repository +public interface SzDeviceCheckingMapper extends BaseMapper { + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingRecordMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingRecordMapper.java new file mode 100644 index 00000000..88965dc9 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDeviceCheckingRecordMapper.java @@ -0,0 +1,16 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.sz.domain.SzDeviceCheckingRecord; +import org.springframework.stereotype.Repository; + +/** + * 水闸动态检测记录Mapper接口 + * + * @author sy + * @date 2023-11-09 + */ +@Repository +public interface SzDeviceCheckingRecordMapper extends BaseMapper { + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingRecordService.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingRecordService.java new file mode 100644 index 00000000..eb5566e6 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingRecordService.java @@ -0,0 +1,65 @@ +package com.kms.yxgh.sz.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.sz.domain.SzDeviceCheckingRecord; +import com.kms.yxgh.sz.dto.SzDeviceCheckingRecordDetailDto; +import com.kms.yxgh.sz.dto.SzDeviceCheckingRecordQueDto; +import com.kms.yxgh.sz.mapper.SzDeviceCheckingRecordMapper; +import com.kms.yxgh.util.BeanCopyUtils; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.service.BaseService; +import com.shuili.common.utils.StringUtils; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.function.Function; + +/** + * @ClassName: SzDeviceCheckingRecordService + * @Description: TODO + * @Date: 2024/3/11 下午3:02 + * * + * @author: hxh + * @version: 1.0 + */ + +@Service +@AllArgsConstructor +public class SzDeviceCheckingRecordService extends BaseService { + + + public SzDeviceCheckingRecordDetailDto add(SzDeviceCheckingRecordDetailDto szDeviceCheckingRecordDetailDto) { + SzDeviceCheckingRecord szDeviceCheckingRecord = BeanCopyUtils.copy(szDeviceCheckingRecordDetailDto, SzDeviceCheckingRecord.class); + this.baseMapper.insert(szDeviceCheckingRecord); + return szDeviceCheckingRecordDetailDto; + } + + public IPage search(SearchParam sp) { + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + SzDeviceCheckingRecordQueDto query = sp.getData(); + Wrapper wrapper = Wrappers.lambdaQuery() + .eq(StringUtils.isNotBlank(query.getWagaCode()), SzDeviceCheckingRecord::getWagaCode, query.getWagaCode()) + .eq(StringUtils.isNotBlank(query.getWarningLevel()), SzDeviceCheckingRecord::getWarningLevel, query.getWarningLevel()) + .eq(StringUtils.isNotBlank(query.getWarningType()), SzDeviceCheckingRecord::getWarningType, query.getWarningType()) + .between(query.getWarningStartTime() != null && query.getWarningEndTime() != null, SzDeviceCheckingRecord::getWarningTime, query.getWarningStartTime(), query.getWarningEndTime()); + Page szDeviceCheckingRecordPage = this.baseMapper.selectPage(page, wrapper); + return szDeviceCheckingRecordPage.convert(getSzDeviceCheckingRecordDetailDtoFunction()); + + } + + private Function getSzDeviceCheckingRecordDetailDtoFunction() { + return item -> { + SzDeviceCheckingRecordDetailDto dto = new SzDeviceCheckingRecordDetailDto(); + dto.setDeviceId(item.getDeviceId()); + dto.setWarningData(item.getWarningData()); + dto.setWarningLevel(item.getWarningLevel()); + dto.setWarningTime(item.getWarningTime()); + dto.setWarningType(item.getWarningType()); + dto.setWagaCode(item.getWagaCode()); + return dto; + }; + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingService.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingService.java new file mode 100644 index 00000000..932284b2 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDeviceCheckingService.java @@ -0,0 +1,99 @@ +package com.kms.yxgh.sz.service; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.sz.domain.SzDeviceChecking; +import com.kms.yxgh.sz.dto.SzDeviceCheckingDetailDto; +import com.kms.yxgh.sz.dto.SzDeviceCheckingQueDto; +import com.kms.yxgh.sz.mapper.SzDeviceCheckingMapper; +import com.kms.yxgh.util.BeanCopyUtils; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.service.BaseService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.function.Function; + +/** + * @ClassName: SzDeviceCheckingService + * @Description: TODO + * @Date: 2024/3/11 上午11:46 + * * + * @author: hxh + * @version: 1.0 + */ + +@Service +@AllArgsConstructor +public class SzDeviceCheckingService extends BaseService { + + + public IPage search(SearchParam sp) { + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + SzDeviceCheckingQueDto query = sp.getData(); + Wrapper wrapper = Wrappers.lambdaQuery() + .like(StringUtils.isNotBlank(query.getName()), SzDeviceChecking::getName, query.getName()) + .eq(StringUtils.isNotBlank(query.getType()), SzDeviceChecking::getType, query.getType()) + .eq(StringUtils.isNotBlank(query.getWagaCode()), SzDeviceChecking::getWagaCode, query.getWagaCode()) + .eq(StringUtils.isNotBlank(query.getWarningLevel()), SzDeviceChecking::getWarningLevel, query.getWarningLevel()); + Page szDeviceCheckingPage = this.baseMapper.selectPage(page, wrapper); + return szDeviceCheckingPage.convert(getSzDeviceCheckingSzDeviceCheckingDetailDtoFunction()); + + } + + private static Function getSzDeviceCheckingSzDeviceCheckingDetailDtoFunction() { + return item -> { + SzDeviceCheckingDetailDto dto = new SzDeviceCheckingDetailDto(); + dto.setDeviceId(item.getDeviceId()); + dto.setMessage(item.getMessage()); + dto.setName(item.getName()); + dto.setType(item.getType()); + dto.setWarningType(item.getWarningType()); + dto.setWagaCode(item.getWagaCode()); + dto.setConfigs(JSON.parseObject(item.getConfig(), new TypeReference>() { + })); + return dto; + }; + } + + public SzDeviceCheckingDetailDto detail(String id) { + SzDeviceChecking szDeviceChecking = this.baseMapper.selectById(id); + return getSzDeviceCheckingSzDeviceCheckingDetailDtoFunction().apply(szDeviceChecking); + } + + @Transactional(rollbackFor = Exception.class) + public SzDeviceCheckingDetailDto add(SzDeviceCheckingDetailDto szDeviceCheckingDetailDto) { + SzDeviceChecking szDeviceChecking = BeanCopyUtils.copy(szDeviceCheckingDetailDto, SzDeviceChecking.class); + if (szDeviceChecking != null) { + szDeviceChecking.setConfig(JSON.toJSONString(szDeviceCheckingDetailDto.getConfigs())); + this.baseMapper.insert(szDeviceChecking); + szDeviceCheckingDetailDto.setId(szDeviceChecking.getId()); + } + return szDeviceCheckingDetailDto; + } + + @Transactional(rollbackFor = Exception.class) + public SzDeviceCheckingDetailDto update(SzDeviceCheckingDetailDto szDeviceCheckingDetailDto) { + if (szDeviceCheckingDetailDto == null || StringUtils.isBlank(szDeviceCheckingDetailDto.getId())) { + return null; + } + SzDeviceChecking szDeviceChecking = BeanCopyUtils.copy(szDeviceCheckingDetailDto, SzDeviceChecking.class); + if (szDeviceChecking != null) { + szDeviceChecking.setConfig(JSON.toJSONString(szDeviceCheckingDetailDto.getConfigs())); + } + this.baseMapper.updateById(szDeviceChecking); + return szDeviceCheckingDetailDto; + } + + @Transactional(rollbackFor = Exception.class) + public boolean delete(String id) { + return this.baseMapper.deleteById(id) > 0; + } +} diff --git a/sql/sy/v1.2.0/全量脚本/v1.2.0-all.sql b/sql/sy/v1.2.0/全量脚本/v1.2.0-all.sql index 4a5fbdee..b5769592 100644 --- a/sql/sy/v1.2.0/全量脚本/v1.2.0-all.sql +++ b/sql/sy/v1.2.0/全量脚本/v1.2.0-all.sql @@ -86,7 +86,7 @@ CREATE TABLE `bs_sgc_df_xsjhdw` ( CREATE TABLE `bs_sgc_df_xsjhjl` ( `ID` int NOT NULL AUTO_INCREMENT COMMENT '堤防巡视检查检查记录编号', - `PLAN_ID` int NOT NULL COMMENT '巡查计划ID', + `PLAN_ID` int COMMENT '巡查计划ID', `DIKE_CODE` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '堤防代码', `NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查记录名称', `STATUS` int NOT NULL COMMENT '状态', @@ -481,7 +481,7 @@ CREATE TABLE `bs_sgc_sz_xsjhdw` ( CREATE TABLE `bs_sgc_sz_xsjhjl` ( `ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸巡视检查检查记录编号', - `PLAN_ID` int NOT NULL COMMENT '巡查计划ID', + `PLAN_ID` int COMMENT '巡查计划ID', `WAGA_CODE` varchar(18) COLLATE utf8mb4_general_ci NOT NULL COMMENT '水闸代码', `NAME` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '巡查记录名称', `STATUS` int NOT NULL COMMENT '状态', @@ -692,3 +692,19 @@ CREATE TABLE `bs_sgc_sz_jdjcgcwt` ( PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸监督检查工程问题表'; +CREATE TABLE `bs_sgc_sz_dtsb` ( + `ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸动态检测设备编号', + `TYPE` int NOT NULL COMMENT '设备类型', + `NAME` varchar(100) DEFAULT NULL COMMENT '设备名称', + `DEVICE_ID` varchar(100) DEFAULT NULL COMMENT '设备id', + `MESSAGE` varchar(500) DEFAULT NULL COMMENT '设备信息', + `WARNING_TYPE` varchar(32) DEFAULT NULL COMMENT '预警类型', + `WARNING_LEVEL` varchar(32) DEFAULT NULL COMMENT '预警等级', + `CONFIG` text COLLATE utf8mb4_general_ci COMMENT '阈值配置', + `REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注', + `CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', + `UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人', + `UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸动态检测设备表'; \ No newline at end of file diff --git a/sql/sy/v1.2.0/增量脚本/v1.2.0-update.sql b/sql/sy/v1.2.0/增量脚本/v1.2.0-update.sql index a2d6f064..8fadd297 100644 --- a/sql/sy/v1.2.0/增量脚本/v1.2.0-update.sql +++ b/sql/sy/v1.2.0/增量脚本/v1.2.0-update.sql @@ -298,3 +298,37 @@ CREATE TABLE `bs_sgc_sz_jdjcgcwt` ( `UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间', PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸监督检查工程问题表'; + + +CREATE TABLE `bs_sgc_sz_dtsb` ( + `ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸动态检测设备编号', + `WAGA_CODE` varchar(255) COLLATE utf8mb4_general_ci COMMENT '水闸编码', + `TYPE` int NOT NULL COMMENT '设备类型', + `NAME` varchar(100) DEFAULT NULL COMMENT '设备名称', + `DEVICE_ID` varchar(100) DEFAULT NULL COMMENT '设备id', + `MESSAGE` varchar(500) DEFAULT NULL COMMENT '设备信息', + `WARNING_TYPE` varchar(32) DEFAULT NULL COMMENT '预警类型', + `WARNING_LEVEL` varchar(32) DEFAULT NULL COMMENT '预警等级', + `CONFIG` text COLLATE utf8mb4_general_ci COMMENT '阈值配置', + `REMARK` text COLLATE utf8mb4_general_ci COMMENT '备注', + `CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', + `UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人', + `UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸动态检测设备表'; + +CREATE TABLE `bs_sgc_sz_dtsbr` ( + `ID` int NOT NULL AUTO_INCREMENT COMMENT '水闸动态检测记录编号', + `WAGA_CODE` varchar(255) COLLATE utf8mb4_general_ci COMMENT '水闸编码', + `DEVICE_ID` varchar(100) DEFAULT NULL COMMENT '设备id', + `WARNING_TYPE` varchar(32) DEFAULT NULL COMMENT '预警类型', + `WARNING_LEVEL` varchar(32) DEFAULT NULL COMMENT '预警等级', + `WARNING_TIME` datetime DEFAULT NULL COMMENT '预警时间', + `WARNING_DATA` varchar(100) COLLATE utf8mb4_general_ci COMMENT '预警数据', + `CREATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间', + `UPDATE_UID` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '最近修改人', + `UPDATE_TIME` datetime DEFAULT NULL COMMENT '最近修改时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='水闸动态检测记录表'; \ No newline at end of file