diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DevComFlagDTO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DevComFlagDTO.java new file mode 100644 index 000000000..f44437a55 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DevComFlagDTO.java @@ -0,0 +1,24 @@ +package com.njcn.device.pq.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * Description: + * Date: 2024/11/5 15:07【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class DevComFlagDTO { + + private String id; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime date; + private Integer status; + + +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DeviceInfo.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DeviceInfo.java new file mode 100644 index 000000000..efab3cdf3 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DeviceInfo.java @@ -0,0 +1,45 @@ +package com.njcn.device.pq.pojo.dto; + + +import lombok.Data; + +import java.util.List; + +/** + * Description: + * Date: 2024/11/4 21:01【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class DeviceInfo { + //终端索引 + private String id; + //终端ip + private String ip; + //终端型号 + private String devType; + //挂载单位 + private String org_name; + //组织名称 + private String port; + //终端端口 + private String stationName; + //变电站名 + private String name; + //终端序列号 + private String updateTime; + //数据更新时间 + private String manufacturer; + //终端厂商 + private String status; + //终端状态 + private String series; + //终端识别码 + private String devKey; + // + private List monitorData; + + +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/MonitorInfo.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/MonitorInfo.java new file mode 100644 index 000000000..ae36b6b6c --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/MonitorInfo.java @@ -0,0 +1,25 @@ +package com.njcn.device.pq.pojo.dto; + +import lombok.Data; + +/** + * Description: + * Date: 2024/11/5 10:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class MonitorInfo { + //监测点索引 + private String id; + //名称 + private String name; + //监测点逻辑号 + private String lineNo; + //监测点电压等级 + private String voltageLevel; + //监测点接线方式 + private String ptType; + private String status; +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/MonitorIntegrityDTO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/MonitorIntegrityDTO.java new file mode 100644 index 000000000..bdfedf1dd --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/MonitorIntegrityDTO.java @@ -0,0 +1,31 @@ +package com.njcn.device.pq.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDate; + +/** + * pqs + * + * @author cdf + * @date 2024/4/17 + */ +@Data +public class MonitorIntegrityDTO { + + @ApiModelProperty("监测点号") + private String id; + @ApiModelProperty("统计日期") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") + private LocalDate date; + @ApiModelProperty("时间点数据") + private Integer times; + @ApiModelProperty("统计间隔") + private Integer interval; + + +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PqIcdPathDTO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PqIcdPathDTO.java new file mode 100644 index 000000000..7df51d829 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PqIcdPathDTO.java @@ -0,0 +1,22 @@ +package com.njcn.device.pq.pojo.dto; + +import lombok.Data; + +/** + * Description: + * Date: 2024/11/5 11:34【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class PqIcdPathDTO { + //模型索引 + private String id; + //更新时间 + private String updateTime; + //icd文件名 + private String fileName; + //icd文件存储的地址 + private String filePath; +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/NodeDeviceParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/NodeDeviceParam.java new file mode 100644 index 000000000..8884e505e --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/NodeDeviceParam.java @@ -0,0 +1,34 @@ +package com.njcn.device.pq.pojo.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/1/14 + */ +@Data +@ApiModel +public class NodeDeviceParam { + + + /** + * 服务器IP + */ + + private String ip; + + private List runFlag; +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/PqIcdPath.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/PqIcdPath.java new file mode 100644 index 000000000..5bfa0b37e --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/PqIcdPath.java @@ -0,0 +1,44 @@ +package com.njcn.device.pq.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.time.LocalDateTime; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * Date: 2024/11/5 11:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "pq_icd_path") +public class PqIcdPath { + /** + * 装置类型GUID + */ + @TableId(value = "ID", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 装置类型名称 + */ + @TableField(value = "`Name`") + private String name; + + @TableField(value = "`Path`") + private String path; + + + + @TableField(value = "Update_Time") + private LocalDateTime updateTime; +} \ No newline at end of file diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineDetailDataVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineDetailDataVO.java index 0a7206eb3..8e1680a41 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineDetailDataVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineDetailDataVO.java @@ -16,6 +16,7 @@ import java.time.LocalDateTime; @Data @ApiModel public class LineDetailDataVO { + private String lineId; @ApiModelProperty(name = "id",value = "监测点序号") private Integer id; diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java index b35d1b57f..2a4ee0307 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java @@ -10,7 +10,9 @@ import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pq.pojo.dto.DevComFlagDTO; import com.njcn.device.pq.pojo.param.ConstantValueParam; +import com.njcn.device.pq.pojo.po.Device; import com.njcn.device.pq.service.IDeviceService; import com.njcn.web.controller.BaseController; import com.njcn.web.utils.RequestUtil; @@ -176,4 +178,13 @@ public class DeviceController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe); } + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/updateDevComFlag") + @ApiOperation("修改装置通讯状态") + public HttpResult updateDevComFlag(@RequestBody DevComFlagDTO devComFlagDTO) { + String methodDescribe = getMethodDescribe("updateDevComFlag"); + boolean update = iDeviceService.lambdaUpdate().set(Device::getComFlag, devComFlagDTO.getStatus()).set(Device::getUpdateTime, devComFlagDTO.getDate()).eq(Device::getId, devComFlagDTO.getId()).update(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, update, methodDescribe); + } + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java index b69c8ca62..d6925f053 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java @@ -9,6 +9,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.device.pq.pojo.dto.LineDataQualityDTO; +import com.njcn.device.pq.pojo.dto.MonitorIntegrityDTO; import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.LineDataQualityParam; @@ -128,4 +129,18 @@ public class LineIntegrityDataController extends BaseController { List result = irStatIntegrityDService.getLineDataQuality(lineDataQualityParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,result,methodDescribe); } + + /** + * 保存前置推送完整性记录数据 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/saveOrUpdateData") + @ApiOperation("完整性数据录入") + @ApiImplicitParam(name = "monitorIntegrityDTOList", value = "参数实体", required = true) + public HttpResult saveOrUpdateData(@RequestBody List monitorIntegrityDTOList) { + String methodDescribe = getMethodDescribe("saveOrUpdateData"); + Boolean flag = irStatIntegrityDService.saveOrUpdateData(monitorIntegrityDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,flag,methodDescribe); + } + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/NodeDeviceController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/NodeDeviceController.java new file mode 100644 index 000000000..63b37cc47 --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/NodeDeviceController.java @@ -0,0 +1,57 @@ +package com.njcn.device.pq.controller; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.param.NodeDeviceParam; + +import com.njcn.device.pq.service.NodeDeviceService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; + +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 前置程序控制器 + * @author cdf + * @since 2022-01-07 + */ +@Slf4j +@Api(tags = "前置机终端管理") +@RestController +@RequestMapping("nodeDevice") +@RequiredArgsConstructor +public class NodeDeviceController extends BaseController { + + private final NodeDeviceService nodeDeviceService; + + + /** + * 根据前置ip获取对应的终端台账信息 + * @author cdf + * @date 2021/6/23 + */ + @ApiOperation("根据前置ip获取对应的终端台账信息") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + @PostMapping("nodeDeviceList") + public HttpResult> nodeDeviceList(@RequestBody NodeDeviceParam nodeDeviceParam){ + String methodDescribe = getMethodDescribe("nodeDeviceList"); + List list = nodeDeviceService.nodeDeviceList(nodeDeviceParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + + + +} + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/PqIcdPathController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/PqIcdPathController.java new file mode 100644 index 000000000..7f67fa330 --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/PqIcdPathController.java @@ -0,0 +1,71 @@ +package com.njcn.device.pq.controller; + + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.dto.PqIcdPathDTO; +import com.njcn.device.pq.pojo.param.NodeDeviceParam; +import com.njcn.device.pq.pojo.po.PqIcdPath; +import com.njcn.device.pq.service.NodeDeviceService; +import com.njcn.device.pq.service.PqIcdPathService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import java.util.List; +import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + + +/** + * 前置程序控制器 + * @author cdf + * @since 2022-01-07 + */ +@Slf4j +@Api(tags = "icd模型管理") +@RestController +@RequestMapping("icd") +@RequiredArgsConstructor +public class PqIcdPathController extends BaseController { + + private final PqIcdPathService pqIcdPathService; + + + /** + * 根据终端模型获取icd模型,如果模型为空则获取全部icd模型 +3 + */ + @ApiOperation("获取icd模型") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + @PostMapping("icdPathList") + public HttpResult> icdPathList(@RequestBody List devType){ + String methodDescribe = getMethodDescribe("icdPathList"); + List list = pqIcdPathService.lambdaQuery().in(!CollectionUtils.isEmpty(devType), PqIcdPath::getName, devType).list(); + + List result = list.stream().map(temp -> { + PqIcdPathDTO pqIcdPathDTO = new PqIcdPathDTO(); + pqIcdPathDTO.setId(temp.getId()); + pqIcdPathDTO.setUpdateTime(LocalDateTimeUtil.format(temp.getUpdateTime(), DatePattern.NORM_DATETIME_PATTERN)); + pqIcdPathDTO.setFileName(temp.getPath().substring(temp.getPath().lastIndexOf('/') + 1)); + pqIcdPathDTO.setFilePath(temp.getPath()); + + return pqIcdPathDTO; + }).collect(Collectors.toList()); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + + + +} + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java index 095bc882e..7664bcbb1 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java @@ -12,6 +12,7 @@ import com.njcn.device.pq.pojo.advanced.UpDevVO; import com.njcn.device.pq.pojo.bo.BaseLineInfo; import com.njcn.device.pq.pojo.bo.DeviceType; import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel; +import com.njcn.device.pq.pojo.dto.*; import com.njcn.device.pq.pojo.dto.OverLimitLineDTO; import com.njcn.device.biz.pojo.dto.PollutionLineDTO; import com.njcn.device.pq.pojo.dto.WarningSubstationDTO; @@ -20,7 +21,6 @@ import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.TerminalMainQueryParam; import com.njcn.device.pq.pojo.po.*; import com.njcn.device.pq.pojo.vo.*; -import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO; import com.njcn.web.pojo.vo.LineDataVO; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -568,4 +568,5 @@ public interface LineMapper extends BaseMapper { List selectByName(@Param("param") LineBaseQueryParam param); + List getLineByDeviceId(@Param("id") String id); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/NodeMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/NodeMapper.java index cdb57da76..713bd77f9 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/NodeMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/NodeMapper.java @@ -2,7 +2,12 @@ package com.njcn.device.pq.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.param.NodeDeviceParam; import com.njcn.device.pq.pojo.po.Node; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -14,4 +19,5 @@ import com.njcn.device.pq.pojo.po.Node; */ public interface NodeMapper extends BaseMapper { + List nodeDeviceList(@Param("nodeDeviceParam") NodeDeviceParam nodeDeviceParam); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/PqIcdPathMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/PqIcdPathMapper.java new file mode 100644 index 000000000..7848935c9 --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/PqIcdPathMapper.java @@ -0,0 +1,15 @@ +package com.njcn.device.pq.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pq.pojo.po.PqIcdPath; + +/** + * + * Description: + * Date: 2024/11/5 11:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqIcdPathMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatIntegrityDMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatIntegrityDMapper.java index 1b2fec101..b4aefb7e8 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatIntegrityDMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatIntegrityDMapper.java @@ -2,6 +2,7 @@ package com.njcn.device.pq.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.LineDataIntegrity; @@ -19,7 +20,7 @@ import java.util.List; * @author hongawen * @since 2023-03-28 */ -public interface RStatIntegrityDMapper extends BaseMapper { +public interface RStatIntegrityDMapper extends MppBaseMapper { /** diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml index ae9c8b661..dc595ccba 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineDetailMapper.xml @@ -39,6 +39,7 @@ + + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml index ae473b7d0..a4e375b4f 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml @@ -2,4 +2,35 @@ + + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/PqIcdPathMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/PqIcdPathMapper.xml new file mode 100644 index 000000000..3442b628a --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/PqIcdPathMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + ID, `Name`, `Path`, Update_Time + + \ No newline at end of file diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java index 25a542844..8cbebcd06 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java @@ -2,7 +2,9 @@ package com.njcn.device.pq.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.github.jeffreyning.mybatisplus.service.IMppService; import com.njcn.device.pq.pojo.dto.LineDataQualityDTO; +import com.njcn.device.pq.pojo.dto.MonitorIntegrityDTO; import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.po.RStatIntegrityD; @@ -17,7 +19,7 @@ import java.util.List; * @author hongawen * @since 2023-03-28 */ -public interface IRStatIntegrityDService extends IService { +public interface IRStatIntegrityDService extends IMppService { /** * @Description: 通过监测点集合查询总监测点数据完整性 @@ -29,4 +31,6 @@ public interface IRStatIntegrityDService extends IService { List getLineDataQuality(LineDataQualityParam lineDataQualityParam); + + Boolean saveOrUpdateData(List monitorIntegrityDTOList); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/NodeDeviceService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/NodeDeviceService.java new file mode 100644 index 000000000..839f414a4 --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/NodeDeviceService.java @@ -0,0 +1,19 @@ +package com.njcn.device.pq.service; + +import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.param.NodeDeviceParam; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Description: + * Date: 2024/11/5 8:51【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + +public interface NodeDeviceService { + List nodeDeviceList(NodeDeviceParam nodeDeviceParam); +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/PqIcdPathService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/PqIcdPathService.java new file mode 100644 index 000000000..3bf32655b --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/PqIcdPathService.java @@ -0,0 +1,16 @@ +package com.njcn.device.pq.service; + +import com.njcn.device.pq.pojo.po.PqIcdPath; +import com.baomidou.mybatisplus.extension.service.IService; + /** + * + * Description: + * Date: 2024/11/5 11:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqIcdPathService extends IService{ + + +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/NodeDeviceServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/NodeDeviceServiceImpl.java new file mode 100644 index 000000000..a3e8d81fa --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/NodeDeviceServiceImpl.java @@ -0,0 +1,37 @@ +package com.njcn.device.pq.service.impl; + +import com.njcn.device.pq.mapper.LineMapper; +import com.njcn.device.pq.mapper.NodeMapper; +import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.dto.MonitorInfo; +import com.njcn.device.pq.pojo.param.NodeDeviceParam; +import com.njcn.device.pq.service.NodeDeviceService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Description: + * Date: 2024/11/5 8:52【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class NodeDeviceServiceImpl implements NodeDeviceService { + private final NodeMapper nodeMapper; + private final LineMapper lineMapper; + @Override + public List nodeDeviceList(NodeDeviceParam nodeDeviceParam) { + + List list = nodeMapper.nodeDeviceList(nodeDeviceParam); + list.forEach(temp->{ + List monitorInfoList= lineMapper.getLineByDeviceId(temp.getId()); + temp.setMonitorData(monitorInfoList); + }); + + return list; + } +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/PqIcdPathServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/PqIcdPathServiceImpl.java new file mode 100644 index 000000000..83409acbe --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/PqIcdPathServiceImpl.java @@ -0,0 +1,21 @@ +package com.njcn.device.pq.service.impl; + +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.pq.pojo.po.PqIcdPath; +import com.njcn.device.pq.mapper.PqIcdPathMapper; +import com.njcn.device.pq.service.PqIcdPathService; +/** + * + * Description: + * Date: 2024/11/5 11:24【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class PqIcdPathServiceImpl extends ServiceImpl implements PqIcdPathService{ + +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java index 993db2817..0dbcb8265 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java @@ -7,18 +7,23 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.pq.mapper.LineDetailMapper; import com.njcn.device.pq.mapper.LineMapper; import com.njcn.device.pq.mapper.RStatIntegrityDMapper; import com.njcn.device.pq.mapper.RStatOnlinerateDMapper; import com.njcn.device.pq.pojo.dto.LineDataQualityDTO; +import com.njcn.device.pq.pojo.dto.MonitorIntegrityDTO; import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.po.Line; import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatOnlinerateD; +import com.njcn.device.pq.pojo.vo.LineDetailDataVO; import com.njcn.device.pq.service.IRStatIntegrityDService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @@ -36,13 +41,14 @@ import java.util.stream.Collectors; */ @Service @RequiredArgsConstructor -public class RStatIntegrityDServiceImpl extends ServiceImpl implements IRStatIntegrityDService { +public class RStatIntegrityDServiceImpl extends MppServiceImpl implements IRStatIntegrityDService { private final RStatOnlinerateDMapper onlineRateMapper; private final RStatIntegrityDMapper rStatIntegrityDMapper; private final LineMapper lineMapper; + private final LineDetailMapper lineDetailMapper; @Override public Float getTotalIntegrityByLineIds(LineBaseQueryParam param) { @@ -100,4 +106,23 @@ public class RStatIntegrityDServiceImpl extends ServiceImpl monitorIntegrityDTOList) { + List lineIds = monitorIntegrityDTOList.stream().map(MonitorIntegrityDTO::getId).distinct().collect(Collectors.toList()); + List lineDetailInfo = lineDetailMapper.getLineDetailInfo(lineIds); + Map collect = lineDetailInfo.stream().collect(Collectors.toMap(LineDetailDataVO::getLineId, LineDetailDataVO::getTimeInterval)); + List collect1 = monitorIntegrityDTOList.stream().map(temp -> { + RStatIntegrityD rStatIntegrityD = new RStatIntegrityD(); + rStatIntegrityD.setTimeId(temp.getDate()); + rStatIntegrityD.setLineIndex(temp.getId()); + rStatIntegrityD.setDueTime(24 * 60 / collect.get(temp.getId())); + rStatIntegrityD.setRealTime(temp.getTimes()); + + return rStatIntegrityD; + }).collect(Collectors.toList()); + this.saveOrUpdateBatchByMultiId(collect1,200); + return true; + } } diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/EventDeatilDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/EventDeatilDTO.java new file mode 100644 index 000000000..732b9fb33 --- /dev/null +++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/EventDeatilDTO.java @@ -0,0 +1,37 @@ +package com.njcn.event.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * Description: + * Date: 2024/11/5 16:07【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class EventDeatilDTO { + + @ApiModelProperty("监测点ID ") + private String monitorId; + @ApiModelProperty("暂降触发时间 yyyy-MM-dd hh:mm:ss.SSS") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS") + private LocalDateTime startTime; + @ApiModelProperty("幅值 ") + private Double amplitude; + @ApiModelProperty("持续时间 单位毫秒") + private Double duration; + @ApiModelProperty("暂态类型 1210001-暂升 1210002-暂降 1210004-中断 1210003-其它") + private Integer eventType; + @ApiModelProperty("相别 ") + private String phase; + @ApiModelProperty("波形路径 ") + private String wavePath; + + + +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java index c0e1950c7..49456a0d3 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java @@ -11,6 +11,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.LogUtil; import com.njcn.event.mapper.majornetwork.EventDetailMapper; +import com.njcn.event.pojo.dto.EventDeatilDTO; import com.njcn.event.pojo.param.EventCountParam; import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.RmpEventDetailPO; @@ -231,4 +232,18 @@ public class EventDetailController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventDetailService.list(lambdaQueryWrapper), methodDescribe); } + /** + * 暂降事件记录 + * @return + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/addEventDetail") + @ApiOperation("暂降事件记录") + public HttpResult addEventDetail(@RequestBody EventDeatilDTO deatilDTO) { + String methodDescribe = getMethodDescribe("addEventDetail"); + Boolean flag = eventDetailService.addEventDetail(deatilDTO); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventDetailService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventDetailService.java index cafbafdb9..f871c1fe8 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventDetailService.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventDetailService.java @@ -1,6 +1,7 @@ package com.njcn.event.service.majornetwork; import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.event.pojo.dto.EventDeatilDTO; import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.RStatEventOrgM; import com.njcn.event.pojo.po.RmpEventDetailPO; @@ -38,4 +39,6 @@ public interface EventDetailService extends IService { * 根据监测点集合以及分页信息获取暂降事件 */ List getEventDetailLimit(List lineIndexes, String startTime, String endTime, Integer pageSize, Integer pageNum, List waveType); + + Boolean addEventDetail(EventDeatilDTO deatilDTO); } \ No newline at end of file diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java index b8c4fee01..bf0f9d27a 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java @@ -7,17 +7,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.event.mapper.majornetwork.EventDetailMapper; +import com.njcn.event.pojo.dto.EventDeatilDTO; import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.event.service.majornetwork.EventDetailService; import com.njcn.influx.utils.InfluxDbUtils; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.pojo.po.DictData; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.influxdb.dto.QueryResult; import org.influxdb.impl.InfluxDBResultMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.time.LocalDateTime; import java.util.List; import java.util.Objects; @@ -33,6 +39,8 @@ public class EventDetailServiceImpl extends ServiceImpl getEventDetailData(String id, String startTime, String endTime) { @@ -114,4 +122,50 @@ public class EventDetailServiceImpl extends ServiceImpl