diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/config/Constants.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/config/Constants.java index 0d3c288..1d18af5 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/config/Constants.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/config/Constants.java @@ -141,6 +141,16 @@ public class Constants { */ public static final Integer PARTICULATE_KEY = 119; + /** + * 沉降监测类 + */ + public static final Integer DROP_KEY = 133; + + /** + * 位移监测类 + */ + public static final Integer SHIFT_KEY = 134; + /** * 禁止特殊字符正则表达式 */ diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/controller/TbWarnConfigController.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/controller/TbWarnConfigController.java index d627a11..e3ce5f9 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/controller/TbWarnConfigController.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/controller/TbWarnConfigController.java @@ -4,10 +4,7 @@ import com.alibaba.nacos.common.utils.CollectionUtils; import com.bonus.base.basic.config.Constants; import com.bonus.base.basic.domain.TbWarnConfig; import com.bonus.base.basic.service.TbWarnConfigService; -import com.bonus.base.basic.vo.ExcavationVo; -import com.bonus.base.basic.vo.InclVo; -import com.bonus.base.basic.vo.TempVo; -import com.bonus.base.basic.vo.TensVo; +import com.bonus.base.basic.vo.*; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; @@ -178,6 +175,16 @@ public class TbWarnConfigController extends BaseController { ExcelUtil util = new ExcelUtil<>(ExcavationVo.class); util.exportExcel(response, list, "预警配置基坑检测类导出"); } + if (tbWarnConfig.getConfiguType().equals(Constants.DROP_KEY)) { + List list = tbWarnConfigService.queryDropVoByPage(tbWarnConfig); + ExcelUtil util = new ExcelUtil<>(DropVo.class); + util.exportExcel(response, list, "预警配置沉降监测类导出"); + } + if (tbWarnConfig.getConfiguType().equals(Constants.SHIFT_KEY)) { + List list = tbWarnConfigService.queryShiftVoByPage(tbWarnConfig); + ExcelUtil util = new ExcelUtil<>(ShiftVo.class); + util.exportExcel(response, list, "预警配置位移监测类导出"); + } } } diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/SettleVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/SettleVo.java new file mode 100644 index 0000000..1defc3a --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/SettleVo.java @@ -0,0 +1,60 @@ +package com.bonus.base.basic.entity; + +import lombok.Data; + +/** + * @author : 洪超 + * @version : 1.0 + * @PackagePath: com.bonus.data.entity + * @CreateTime: 2024-12-30 16:41 + * @Description: 沉降监测数据 + */ +@Data +public class SettleVo { + + private String id; + + // 工程id + private String proId; + + // 设备编码 + private String deviceName; + + // 监测值 + private String measureValue; + + // 变化值 + private String changeValue; + + private Integer status; + + /** + * 累加值 + */ + private String accuValue; + + /** + * 基础沉降 + */ + private String baseValue; + /** + * 平台注册端设备主键 + */ + private String deviceId; + /** + * 设备模型 + */ + private String model; + /** + * 服务 ID + */ + private String serviceId; + /** + * 数据监测时间 + */ + private String dataTime; + + private Integer isWarn; + + private String remark; +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnElectConfigVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnElectConfigVo.java new file mode 100644 index 0000000..589f7d5 --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnElectConfigVo.java @@ -0,0 +1,36 @@ +package com.bonus.base.basic.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author : 洪超 + * @version : 1.0 + * @PackagePath: com.bonus.data.entity + * @CreateTime: 2024-12-30 16:41 + * @Description: 近电感应参数配置 + */ +@Data +public class WarnElectConfigVo { + + + // 线路属性 + private String configElectName; + + // 电压等级 + private String configLevelName; + + // 线路属性值 + private Integer configElectValue; + + // 电压等级值 + private Integer configLevelValue; + + private Date updateTime; + + private Long updateUser; + +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnElectVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnElectVo.java new file mode 100644 index 0000000..e1f9ddc --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnElectVo.java @@ -0,0 +1,61 @@ +package com.bonus.base.basic.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author : 洪超 + * @version : 1.0 + * @PackagePath: com.bonus.data.entity + * @CreateTime: 2024-12-30 16:41 + * @Description: 近电感应预警 + */ +@Data +public class WarnElectVo { + + private Long id; + + // 工程id + private String proId; + + // 工程名称 + private String proName; + + // 设备id + private String devId; + + // 设备名称 + private String devName; + + // 预警类型 + private String warnType; + + // 预警时间 + private String warnTime; + + // 预警内容 + private String warnContent; + + @ApiModelProperty(value = "开始日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private String startTime; + + @ApiModelProperty(value = "结束日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private String endTime; + + /** + * 设备模型 + */ + private String model; + /** + * 服务 ID + */ + private String serviceId; + + private Integer isWarn; + + private String remark; + +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSettleVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSettleVo.java new file mode 100644 index 0000000..1dc25fb --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSettleVo.java @@ -0,0 +1,34 @@ +package com.bonus.base.basic.entity; + +import lombok.Data; + +/** + * @author : 洪超 + * @version : 1.0 + * @PackagePath: com.bonus.data.entity + * @CreateTime: 2024-12-30 16:41 + * @Description: 预警数据 + */ +@Data +public class WarnSettleVo { + + private String id; + + private String warnTime; + + private String warnContent; + + private String warnType; + + private String deviceType; + + private String deviceId; + + private String deviceName; + + private String proId; + + private String proCode; + + private String remarks; +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSpaceMonthVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSpaceMonthVo.java new file mode 100644 index 0000000..8556cdd --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSpaceMonthVo.java @@ -0,0 +1,30 @@ +package com.bonus.base.basic.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author : 洪超 + * @version : 1.0 + * @PackagePath: com.bonus.data.entity + * @CreateTime: 2024-12-30 16:41 + * @Description: 受限空间预警月份 + */ +@Data +public class WarnSpaceMonthVo { + + private int jan; + private int feb; + private int mar; + private int apr; + private int may; + private int jun; + private int jul; + private int aug; + private int sep; + private int oct; + private int nov; + private int dec; + +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSpaceVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSpaceVo.java new file mode 100644 index 0000000..2e0ee8c --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/entity/WarnSpaceVo.java @@ -0,0 +1,68 @@ +package com.bonus.base.basic.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * @author : 洪超 + * @version : 1.0 + * @PackagePath: com.bonus.data.entity + * @CreateTime: 2024-12-30 16:41 + * @Description: 受限空间预警 + */ +@Data +public class WarnSpaceVo { + + private Long id; + + // 工程id + private String proId; + + // 工程名称 + private String proName; + + // 设备id + private String devId; + + // 设备名称 + private String devName; + + // 违章类型 + private String warnType; + + // 预警时间 + private String warnTime; + + // 年份 + private String year; + + @ApiModelProperty(value = "开始日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private String startTime; + + @ApiModelProperty(value = "结束日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private String endTime; + + //违章照片 + private String warnUrl; + + /** + * 设备模型 + */ + private String model; + /** + * 服务 ID + */ + private String serviceId; + + private Integer isWarn; + + private String remark; + +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/service/TbWarnConfigService.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/service/TbWarnConfigService.java index 50cac42..dc3d7fb 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/service/TbWarnConfigService.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/service/TbWarnConfigService.java @@ -1,10 +1,7 @@ package com.bonus.base.basic.service; import com.bonus.base.basic.domain.TbWarnConfig; -import com.bonus.base.basic.vo.ExcavationVo; -import com.bonus.base.basic.vo.InclVo; -import com.bonus.base.basic.vo.TempVo; -import com.bonus.base.basic.vo.TensVo; +import com.bonus.base.basic.vo.*; import com.bonus.common.core.web.domain.AjaxResult; import java.util.List; @@ -61,4 +58,18 @@ public interface TbWarnConfigService{ */ List queryExcavationVoByPage(TbWarnConfig tbWarnConfig); + /** + * 查询沉降监测类 + * @param tbWarnConfig + * @return + */ + List queryDropVoByPage(TbWarnConfig tbWarnConfig); + + /** + * 查询位移监测类 + * @param tbWarnConfig + * @return + */ + List queryShiftVoByPage(TbWarnConfig tbWarnConfig); + } diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/service/impl/TbWarnConfigServiceImpl.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/service/impl/TbWarnConfigServiceImpl.java index 15f6ebc..62dd17c 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/service/impl/TbWarnConfigServiceImpl.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/service/impl/TbWarnConfigServiceImpl.java @@ -5,10 +5,7 @@ import com.bonus.base.basic.domain.TbWarnConfig; import com.bonus.base.basic.mapper.TbWarnConfigMapper; import com.bonus.base.basic.service.TbWarnConfigService; import com.bonus.base.basic.config.ExceptionEnum; -import com.bonus.base.basic.vo.ExcavationVo; -import com.bonus.base.basic.vo.InclVo; -import com.bonus.base.basic.vo.TempVo; -import com.bonus.base.basic.vo.TensVo; +import com.bonus.base.basic.vo.*; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; @@ -239,6 +236,56 @@ public class TbWarnConfigServiceImpl implements TbWarnConfigService { return excavationVos; } + /** + * 查询沉降预警 + * @param record + * @return + */ + @Override + public List queryDropVoByPage(TbWarnConfig record) { + List list = tbWarnConfigMapper.getAll(record); + ArrayList dropVos = new ArrayList<>(); + if (list != null && list.size() > 0) { + for (TbWarnConfig tbWarnConfig : list) { + setConfigStr(tbWarnConfig); + DropVo dropVo = new DropVo(); + dropVo.setConfigName(tbWarnConfig.getConfigName()); + dropVo.setDevId(tbWarnConfig.getDevId()); + dropVo.setMeasureThreshold(tbWarnConfig.getConfigVal1Str()); + dropVo.setChangeThreshold(tbWarnConfig.getConfigVal2Str()); + dropVo.setAccuThreshold(tbWarnConfig.getConfigVal3Str()); + dropVo.setBaseThreshold(tbWarnConfig.getConfigVal4Str()); + dropVos.add(dropVo); + } + } + return dropVos; + } + + /** + * 查询位移预警 + * @param record + * @return + */ + @Override + public List queryShiftVoByPage(TbWarnConfig record) { + List list = tbWarnConfigMapper.getAll(record); + ArrayList shiftVos = new ArrayList<>(); + if (list != null && list.size() > 0) { + for (TbWarnConfig tbWarnConfig : list) { + setConfigStr(tbWarnConfig); + ShiftVo shiftVo = new ShiftVo(); + shiftVo.setConfigName(tbWarnConfig.getConfigName()); + shiftVo.setDevId(tbWarnConfig.getDevId()); + shiftVo.setMeasureThreshold(tbWarnConfig.getConfigVal1Str()); + shiftVo.setChangeThreshold(tbWarnConfig.getConfigVal2Str()); + shiftVo.setAccuThreshold(tbWarnConfig.getConfigVal3Str()); + shiftVo.setBaseThreshold(tbWarnConfig.getConfigVal4Str()); + shiftVos.add(shiftVo); + } + } + return shiftVos; + } + /** * 设置阈值组合 * @param tbWarnConfig diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/vo/DropVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/vo/DropVo.java new file mode 100644 index 0000000..13b7c45 --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/vo/DropVo.java @@ -0,0 +1,31 @@ +package com.bonus.base.basic.vo; + +import com.bonus.base.basic.domain.TbWarnConfig; +import com.bonus.common.core.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 基坑检测类返回vo + * @Author ma_sh + * @create 2024/11/1 17:14 + */ +@Data +public class DropVo extends TbWarnConfig { + + @ApiModelProperty(value="测量阈值") + @Excel(name = "测量阈值") + private String measureThreshold; + + @ApiModelProperty(value="变化阈值") + @Excel(name = "变化阈值") + private String changeThreshold; + + @ApiModelProperty(value="累加阈值") + @Excel(name = "累加阈值") + private String accuThreshold; + + @ApiModelProperty(value="基础沉降阈值") + @Excel(name = "基础沉降阈值") + private String baseThreshold; +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/vo/ShiftVo.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/vo/ShiftVo.java new file mode 100644 index 0000000..77e8424 --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/vo/ShiftVo.java @@ -0,0 +1,31 @@ +package com.bonus.base.basic.vo; + +import com.bonus.base.basic.domain.TbWarnConfig; +import com.bonus.common.core.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 基坑检测类返回vo + * @Author ma_sh + * @create 2024/11/1 17:14 + */ +@Data +public class ShiftVo extends TbWarnConfig { + + @ApiModelProperty(value="测量阈值") + @Excel(name = "测量阈值") + private String measureThreshold; + + @ApiModelProperty(value="变化阈值") + @Excel(name = "变化阈值") + private String changeThreshold; + + @ApiModelProperty(value="累加阈值") + @Excel(name = "累加阈值") + private String accuThreshold; + + @ApiModelProperty(value="基础沉降阈值") + @Excel(name = "基础沉降阈值") + private String baseThreshold; +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/screen/controller/ProjectDetailsViewController.java b/bonus-modules/base/src/main/java/com/bonus/base/screen/controller/ProjectDetailsViewController.java index 460988a..18e3ace 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/screen/controller/ProjectDetailsViewController.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/screen/controller/ProjectDetailsViewController.java @@ -1,15 +1,23 @@ package com.bonus.base.screen.controller; +import com.bonus.base.basic.domain.TbDevAttribute; +import com.bonus.base.basic.entity.SettleVo; +import com.bonus.base.basic.entity.WarnElectConfigVo; +import com.bonus.base.basic.entity.WarnElectVo; +import com.bonus.base.basic.entity.WarnSpaceVo; import com.bonus.base.basic.service.TbPeopleService; import com.bonus.base.screen.service.impl.ProjectDetailsViewServiceImpl; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; +import com.bonus.common.security.annotation.RequiresPermissions; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * @author : 阮世耀 @@ -37,6 +45,64 @@ public class ProjectDetailsViewController extends BaseController { return AjaxResult.success(projectDetailsViewService.queryDevInfoByProject(proId, powerId, devType)); } + /** + * 根据工程id查询相对应类型下的沉降设备信息 + */ + @GetMapping("/queryDevInfoByProjectSettle") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "沉降检测设备信息") + public AjaxResult queryDevInfoByProjectSettle(Integer proId, Integer powerId, String devType) { + return AjaxResult.success(projectDetailsViewService.queryDevInfoByProjectSettle(proId, powerId, devType)); + } + + /** + * 根据工程id和设备id查询相对应类型下的沉降设备信息 + */ + @GetMapping("/queryDevInfoSettle") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "沉降检测设备信息") + public AjaxResult queryDevInfoSettle(Integer proId, Integer deviceId) { + return AjaxResult.success(projectDetailsViewService.queryDevInfoSettle(proId, deviceId)); + } + + /** + * 根据工程id和设备id查询相对应类型下的位移设备信息 + */ + @GetMapping("/queryDevInfoShift") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "位移检测设备信息") + public AjaxResult queryDevInfoShift(Integer proId, Integer deviceId) { + return AjaxResult.success(projectDetailsViewService.queryDevInfoShift(proId, deviceId)); + } + + /** + * 根据工程id查询相对应类型下的沉降预警信息 + */ + @GetMapping("/queryWarnInfoSettle") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "预警信息") + public AjaxResult queryWarnInfoSettle(Integer proId,String deviceType) { + return AjaxResult.success(projectDetailsViewService.queryWarnInfoSettle(proId, deviceType)); + } + + /** + * 根据工程id查询相对应类型下的历史沉降信息 + */ + @GetMapping("/queryInfoSettleHistory") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "预警信息") + public TableDataInfo queryInfoSettleHistory(SettleVo settleVo) { + startPage(); + List list = projectDetailsViewService.queryInfoSettleHistory(settleVo); + return getDataTable(list); + } + + /** + * 根据工程id查询相对应类型下的历史位移信息 + */ + @GetMapping("/queryInfoShiftHistory") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "预警信息") + public TableDataInfo queryInfoShiftHistory(SettleVo settleVo) { + startPage(); + List list = projectDetailsViewService.queryInfoShiftHistory(settleVo); + return getDataTable(list); + } + /** * 查询工程人员安全帽定位信息 * @param proId 工程id @@ -135,5 +201,86 @@ public class ProjectDetailsViewController extends BaseController { return projectDetailsViewService.getTowerDevAttributeRecordByDay(proId); } + /** + * 根据工程id查询受限空间预警信息 + */ + @GetMapping("/queryInfoWarnSpaceList") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "预警信息") + public TableDataInfo queryInfoWarnSpaceList(WarnSpaceVo warnSpaceVo) { + startPage(); + List list = projectDetailsViewService.queryInfoWarnSpaceList(warnSpaceVo); + return getDataTable(list); + } + /** + * 根据工程id查询当年受限空间预警信息 + */ + @GetMapping("/queryInfoWarnSpaceMonth") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "预警信息") + public AjaxResult queryInfoWarnSpaceMonth(WarnSpaceVo warnSpaceVo) { + return projectDetailsViewService.queryInfoWarnSpaceMonth(warnSpaceVo); + + } + + /** + * 根据工程id查询当年受限空间违章类型占比 + */ + @GetMapping("/queryInfoWarnSpaceType") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "预警信息") + public AjaxResult queryInfoWarnSpaceType(WarnSpaceVo warnSpaceVo) { + return projectDetailsViewService.queryInfoWarnSpaceType(warnSpaceVo); + + } + + /** + * 删除受限空间预警数据 + */ + @ApiOperation(value = "删除受限空间预警数据") + @PostMapping("/delWarnSpace") + @SysLog(title = "大屏", businessType = OperaType.DELETE, module = "预警信息") + public AjaxResult delWarnSpace(@RequestBody WarnSpaceVo warnSpaceVo) { + return projectDetailsViewService.delWarnSpace(warnSpaceVo.getId()); + } + + /** + * 根据工程id查询近电感应预警信息 + */ + @GetMapping("/queryInfoWarnElectList") + @SysLog(title = "大屏", businessType = OperaType.QUERY, module = "预警信息") + public TableDataInfo queryInfoWarnElectList(WarnElectVo warnElectVo) { + startPage(); + List list = projectDetailsViewService.queryInfoWarnElectList(warnElectVo); + return getDataTable(list); + } + + /** + * 删除近电感应预警数据 + */ + @ApiOperation(value = "删除近电感应预警数据") + @PostMapping("/delWarnElect") + @SysLog(title = "大屏", businessType = OperaType.DELETE, module = "预警信息") + public AjaxResult delWarnElect(@RequestBody WarnElectVo warnElectVo) { + return projectDetailsViewService.delWarnElect(warnElectVo.getId()); + } + + /** + * 获取近电感应预警配置数据 + */ + @ApiOperation(value = "获取近电感应预警配置数据") + @GetMapping("/getWarnElectConfig") + @SysLog(title = "大屏", businessType = OperaType.DELETE, module = "预警信息") + public AjaxResult getWarnElectConfig(WarnElectVo warnElectVo) { + return projectDetailsViewService.getWarnElectConfig(warnElectVo); + } + + + /** + * 修改近电感应参数配置数据 + */ + @ApiOperation(value = "修改近电感应参数配置数据") + @PostMapping("/editConfig") + @SysLog(title = "大屏", businessType = OperaType.UPDATE, module = "预警信息") + public AjaxResult editConfig(@RequestBody WarnElectConfigVo vo) { + return projectDetailsViewService.editConfig(vo); + } } diff --git a/bonus-modules/base/src/main/java/com/bonus/base/screen/mapper/TbDeviceDataRecord.java b/bonus-modules/base/src/main/java/com/bonus/base/screen/mapper/TbDeviceDataRecord.java index ddcb011..ba1ff64 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/screen/mapper/TbDeviceDataRecord.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/screen/mapper/TbDeviceDataRecord.java @@ -1,7 +1,7 @@ package com.bonus.base.screen.mapper; import com.bonus.base.basic.domain.TbDevAttribute; -import com.bonus.base.basic.entity.DevAttributeVo; +import com.bonus.base.basic.entity.*; import com.bonus.base.screen.vo.DeviceWarnRecordVo; import com.bonus.base.screen.vo.WarnPredictionRecordVo; import org.apache.ibatis.annotations.Mapper; @@ -28,6 +28,48 @@ public interface TbDeviceDataRecord { */ List> queryDevInfoByProject(@Param("proId") Integer proId, @Param("powerId") Integer powerId, @Param("devType") Integer devType); + /** + * 查询工程下沉降设备信息 + * @param proId 工程id + * @param powerId 杆塔id + * @param devType 设备类型code + */ + List> queryDevInfoByProjectSettle(@Param("proId") Integer proId, @Param("powerId") Integer powerId, @Param("devType") String devType); + + /** + * 查询工程下和设备下沉降设备信息 + * @param proId 工程id + * @param deviceId 设备id + */ + List> queryDevInfoSettle(@Param("proId") Integer proId, @Param("deviceId") Integer deviceId); + + /** + * 查询工程下和设备下位移设备信息 + * @param proId 工程id + * @param deviceId 设备id + */ + List> queryDevInfoShift(@Param("proId") Integer proId, @Param("deviceId") Integer deviceId); + + /** + * 根据工程id查询相对应类型下的历史沉降信息 + */ + List queryInfoSettleHistory(SettleVo settleVo); + + /** + * 根据工程id查询相对应类型下的历史沉降信息 + */ + List queryInfoShiftHistory(SettleVo settleVo); + + + /** + * 根据工程id查询相对应类型下的预警信息 + * @param proId 工程id + * @param deviceType 设备类型 + */ + List> queryWarnInfoSettle(@Param("proId") Integer proId, @Param("deviceType") String deviceType); + + + /** * 安全隐患预测记录信息 * @param record 记录id @@ -103,4 +145,47 @@ public interface TbDeviceDataRecord { */ List getPowerDevAttributeRecordByWarn(@Param("proId") Integer proId); + + /** + * 根据工程id查询受限空间预警信息 + */ + List queryInfoWarnSpaceList(WarnSpaceVo warnSpaceVo); + + List> queryInfoWarnSpaceMonth(WarnSpaceVo warnSpaceVo); + + List> queryInfoWarnSpaceType(WarnSpaceVo warnSpaceVo); + + int delWarnSpace(Long id); + + + /** + * 根据工程id查近电感应预警信息 + */ + List queryInfoWarnElectList(WarnElectVo warnElectVo); + + int delWarnElect(Long id); + + /** + * 获取近电感应预警配置线路属性数据 + */ + List getWarnElectConfig(WarnElectVo warnElectVo); + + /** + * 获取近电感应预警配置电压等级数据 + */ + List getWarnLevelConfig(WarnElectVo warnElectVo); + + /** + * 修改线路属性参数配置 + * @param vo + * @return + */ + int editConfig(WarnElectConfigVo vo); + + /** + * 修改电压等级参数配置 + * @param vo + * @return + */ + int editConfigLevel(WarnElectConfigVo vo); } diff --git a/bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/ProjectDetailsViewServiceImpl.java b/bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/ProjectDetailsViewServiceImpl.java index 503a8c8..6f0089f 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/ProjectDetailsViewServiceImpl.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/ProjectDetailsViewServiceImpl.java @@ -1,16 +1,18 @@ package com.bonus.base.screen.service.impl; -import com.bonus.base.basic.entity.DevAttributeVo; +import com.bonus.base.basic.entity.*; import com.bonus.base.screen.mapper.TbDeviceDataRecord; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.interceptor.TransactionAspectSupport; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; +import static java.util.Arrays.stream; + /** * @author : 阮世耀 * @version : 1.0 @@ -35,6 +37,64 @@ public class ProjectDetailsViewServiceImpl { return AjaxResult.success(tbDeviceDataRecordMapper.queryDevInfoByProject(proId, powerId, devType)); } + /** + * 根据工程id查询相对应类型下的沉降设备信息 + * @param proId + * @param devType + * @return + */ + public AjaxResult queryDevInfoByProjectSettle(Integer proId, Integer powerId, String devType) { + return AjaxResult.success(tbDeviceDataRecordMapper.queryDevInfoByProjectSettle(proId, powerId, devType)); + } + + /** + * 根据工程id和设备id查询相对应类型下的沉降设备信息 + * @param proId + * @param deviceId + * @return + */ + public AjaxResult queryDevInfoSettle(Integer proId, Integer deviceId) { + return AjaxResult.success(tbDeviceDataRecordMapper.queryDevInfoSettle(proId, deviceId)); + } + + /** + * 根据工程id和设备id查询相对应类型下的位移设备信息 + * @param proId + * @param deviceId + * @return + */ + public AjaxResult queryDevInfoShift(Integer proId, Integer deviceId) { + return AjaxResult.success(tbDeviceDataRecordMapper.queryDevInfoShift(proId, deviceId)); + } + + /** + * 根据工程id查询相对应类型下的历史沉降信息 + * @return + */ + public List queryInfoSettleHistory(SettleVo settleVo) { + List settleVos = tbDeviceDataRecordMapper.queryInfoSettleHistory(settleVo); + return settleVos; + } + + /** + * 根据工程id查询相对应类型下的历史位移信息 + * @return + */ + public List queryInfoShiftHistory(SettleVo settleVo) { + List settleVos = tbDeviceDataRecordMapper.queryInfoShiftHistory(settleVo); + return settleVos; + } + + /** + * 根据工程id查询相对应类型下的沉降预警信息 + * @param proId + * @param deviceType + * @return + */ + public AjaxResult queryWarnInfoSettle(Integer proId, String deviceType) { + return AjaxResult.success(tbDeviceDataRecordMapper.queryWarnInfoSettle(proId, deviceType)); + } + public AjaxResult getDevAttributeLatestInfoById(Integer proId) { return AjaxResult.success(tbDeviceDataRecordMapper.getDevAttributeLatestInfoById(proId)); } @@ -157,4 +217,120 @@ public class ProjectDetailsViewServiceImpl { return AjaxResult.success(tbDeviceDataRecordMapper.getPowerDevAttributeRecordByWarn(proId)); } + /** + * 根据工程id查询受限空间预警信息 + */ + public List queryInfoWarnSpaceList(WarnSpaceVo warnSpaceVo) { + List list = tbDeviceDataRecordMapper.queryInfoWarnSpaceList(warnSpaceVo); + return list; + } + + /** + * 根据工程id查询当年受限空间预警信息 + * @return + */ + public AjaxResult queryInfoWarnSpaceMonth(WarnSpaceVo warnSpaceVo) { + List> list = tbDeviceDataRecordMapper.queryInfoWarnSpaceMonth(warnSpaceVo); + // 统计每个月份的数量 + Map monthCounts = new HashMap<>(); + if(list!=null){ + for (Map map : list) { + Integer month = (Integer) map.get("month"); + Long count = (Long) map.get("count"); + monthCounts.put(month, count); + } + } + // 对 monthCounts 按照月份进行排序 + List> sortedEntries = new ArrayList<>(monthCounts.entrySet()); + sortedEntries.sort(Map.Entry.comparingByKey()); + WarnSpaceMonthVo vo = new WarnSpaceMonthVo(); + for (int month = 1; month <= 12; month++) { + Long count = monthCounts.get(month); + if (count == null) { + count = 0L; // 如果没有该月份的记录,返回0 + } + switch (month) { + case 1: vo.setJan(Math.toIntExact(count)); break; + case 2: vo.setFeb(Math.toIntExact(count)); break; + case 3: vo.setMar(Math.toIntExact(count)); break; + case 4: vo.setApr(Math.toIntExact(count)); break; + case 5: vo.setMay(Math.toIntExact(count)); break; + case 6: vo.setJun(Math.toIntExact(count)); break; + case 7: vo.setJul(Math.toIntExact(count)); break; + case 8: vo.setAug(Math.toIntExact(count)); break; + case 9: vo.setSep(Math.toIntExact(count)); break; + case 10: vo.setOct(Math.toIntExact(count)); break; + case 11: vo.setNov(Math.toIntExact(count)); break; + case 12: vo.setDec(Math.toIntExact(count)); break; + } + } + return AjaxResult.success(vo); + } + + /** + * 根据工程id查询当年受限空间违章类型占比 + * @return + */ + public AjaxResult queryInfoWarnSpaceType(WarnSpaceVo warnSpaceVo) { + List> list = tbDeviceDataRecordMapper.queryInfoWarnSpaceType(warnSpaceVo); + return AjaxResult.success(list); + } + + /** + * 删除受限空间预警数据 + */ + public AjaxResult delWarnSpace(Long id) { + return AjaxResult.success(tbDeviceDataRecordMapper.delWarnSpace(id)); + } + + + /** + * 根据工程id查询近电感应预警信息 + */ + public List queryInfoWarnElectList(WarnElectVo warnElectVo) { + List list = tbDeviceDataRecordMapper.queryInfoWarnElectList(warnElectVo); + return list; + } + + /** + * 删除近电感应预警数据 + */ + public AjaxResult delWarnElect(Long id) { + return AjaxResult.success(tbDeviceDataRecordMapper.delWarnElect(id)); + } + + /** + * 获取近电感应预警配置数据 + */ + public AjaxResult getWarnElectConfig(WarnElectVo warnElectVo) { + List listElect = tbDeviceDataRecordMapper.getWarnElectConfig(warnElectVo); + List listLevel = tbDeviceDataRecordMapper.getWarnLevelConfig(warnElectVo); + WarnElectConfigVo vo = new WarnElectConfigVo(); + if(listElect!=null){ + vo.setConfigElectName(listElect.get(0).getConfigElectName()); + vo.setConfigElectValue(listElect.get(0).getConfigElectValue()); + } + if(listLevel!=null){ + vo.setConfigLevelName(listLevel.get(0).getConfigLevelName()); + vo.setConfigLevelValue(listLevel.get(0).getConfigLevelValue()); + } + return AjaxResult.success(vo); + } + + public AjaxResult editConfig(WarnElectConfigVo vo) { + try { + vo.setUpdateUser(SecurityUtils.getUserId()); + vo.setUpdateTime(new Date()); + int num = tbDeviceDataRecordMapper.editConfig(vo); + int numTwo = tbDeviceDataRecordMapper.editConfigLevel(vo); + int numAll = num + numTwo; + if(numAll==2){ + return AjaxResult.success(); + } + return AjaxResult.error("参数配置修改失败"); + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); + } + } } diff --git a/bonus-modules/base/src/main/resources/mapper/base/basic/TbProjectMapper.xml b/bonus-modules/base/src/main/resources/mapper/base/basic/TbProjectMapper.xml index 901dea7..63dbccb 100644 --- a/bonus-modules/base/src/main/resources/mapper/base/basic/TbProjectMapper.xml +++ b/bonus-modules/base/src/main/resources/mapper/base/basic/TbProjectMapper.xml @@ -255,5 +255,6 @@ + diff --git a/bonus-modules/base/src/main/resources/mapper/base/screen/TbDeviceDataRecordMapper.xml b/bonus-modules/base/src/main/resources/mapper/base/screen/TbDeviceDataRecordMapper.xml index b37519a..57983b9 100644 --- a/bonus-modules/base/src/main/resources/mapper/base/screen/TbDeviceDataRecordMapper.xml +++ b/bonus-modules/base/src/main/resources/mapper/base/screen/TbDeviceDataRecordMapper.xml @@ -21,6 +21,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete from tb_dev_data_record where id = #{id} + + + + + + + delete from tb_dev_data_record where id = #{id} + + + + + + + + + + UPDATE tb_warn_config twc + SET line_value = #{configElectValue},update_time = #{updateTime},update_user = #{updateUser} + where config_name='线路属性' and configu_type = 136 and del_flag = 0 + + + + UPDATE tb_warn_config twc + SET line_value = #{configLevelValue},update_time = #{updateTime},update_user = #{updateUser} + where config_name='电压等级' and configu_type = 136 and del_flag = 0 +