From 44976991782edecdac6a0762563852c36057dda1 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Fri, 16 Jan 2026 14:57:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=9B=91=E6=B5=8B=E7=82=B9=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=95=B0=E6=8D=AE=E8=B0=83=E6=95=B4=EF=BC=9B?= =?UTF-8?q?=202.=E6=9A=82=E6=80=81=E4=BA=8B=E4=BB=B6=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/line/CslineController.java | 15 +-- .../csdevice/service/CsLinePOService.java | 2 + .../impl/CsEquipmentDeliveryServiceImpl.java | 11 +- .../service/impl/CsLinePOServiceImpl.java | 56 +++++--- .../csharmonic/pojo/po/RmpEventDetailPO.java | 127 ++++++++++++++++++ .../mapper/RmpEventDetailMapper.java | 18 +++ .../mapper/mapping/CsEventPOMapper.xml | 7 +- .../service/event/RmpEventDetailService.java | 15 +++ .../service/impl/CsEventPOServiceImpl.java | 73 +++++++++- .../impl/event/RmpEventDetailServiceImpl.java | 28 ++++ 10 files changed, 311 insertions(+), 41 deletions(-) create mode 100644 cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/RmpEventDetailPO.java create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/RmpEventDetailMapper.java create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/event/RmpEventDetailService.java create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/RmpEventDetailServiceImpl.java diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java index 96e988b..78d2c1b 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java @@ -1,7 +1,5 @@ package com.njcn.csdevice.controller.line; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; @@ -28,10 +26,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * Description: @@ -284,16 +280,7 @@ public class CslineController extends BaseController { @ApiImplicitParam(name = "param", value = "param", required = true) public HttpResult> list(@RequestBody CsLinePO param) { String methodDescribe = getMethodDescribe("list"); - List keywordsLineIds = new ArrayList<>(); - List poList = csLinePOService.getSimpleLine(); - if (CollUtil.isNotEmpty(poList)) { - keywordsLineIds = poList.stream().map(CsLinePO::getLineId).collect(Collectors.toList()); - } - List list = csLinePOService.list(new LambdaQueryWrapper() - .eq(CsLinePO::getStatus, 1) - .eq(StrUtil.isNotBlank(param.getPosition()), CsLinePO::getPosition, param.getPosition()) - .in(CsLinePO::getLineId, keywordsLineIds) - .orderByAsc(CsLinePO::getName)); + List list = csLinePOService.getLineList(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java index cdd27c1..27aebb1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java @@ -95,4 +95,6 @@ public interface CsLinePOService extends IService{ * @return 结果 */ LineDetailDataVO getLineDetailData(String id); + + List getLineList(CsLinePO param); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index 056f4a8..accf6fe 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -942,9 +942,9 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl{item.setRunStatus(1);}); this.updateBatchById(devList); //修改监测点运行状态 - List devIdList = devList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); - List lineList = csLinePOService.getLinesByDevList(devIdList); - csLinePOService.updateCldLineStatus(lineList,2); + //List devIdList = devList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); + //List lineList = csLinePOService.getLinesByDevList(devIdList); + //csLinePOService.updateCldLineStatus(lineList,2); } } @@ -958,9 +958,10 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl lineList = csLinePOService.getLinesByDevList(Collections.singletonList(po.getId())); - csLinePOService.updateCldLineStatus(lineList,status==1?2:0); + //List lineList = csLinePOService.getLinesByDevList(Collections.singletonList(po.getId())); + //csLinePOService.updateCldLineStatus(lineList,status==1?2:0); } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java index bd846a0..b72c88e 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsLinePOServiceImpl.java @@ -369,19 +369,21 @@ public class CsLinePOServiceImpl extends ServiceImpl i } // 运行状态 if (ObjectUtil.isNotNull(record.getRunStatus())) { - sensitiveUserLineVO.setRunStatus(getRunStatusDescription(record.getRunStatus())); + //获取设备状态 + int devRunStatus = csEquipmentDeliveryMapper.selectById(record.getDeviceId()).getRunStatus(); + sensitiveUserLineVO.setRunStatus(getRunStatusDescription(devRunStatus)); } // 报告文件 sensitiveUserLineVO.setReportFilePath(record.getReportFilePath()); // 最新数据时间 - List lineLatestDataList = csLineLatestDataFeignClient.listData().getData(); - if (CollUtil.isNotEmpty(lineLatestDataList)) { - sensitiveUserLineVO.setLatestTime(lineLatestDataList.stream() - .filter(item -> item.getLineId().equals(record.getLineId())) - .map(CsLineLatestData::getTimeId) - .max(LocalDateTime::compareTo) - .orElse(null)); - } +// List lineLatestDataList = csLineLatestDataFeignClient.listData().getData(); +// if (CollUtil.isNotEmpty(lineLatestDataList)) { +// sensitiveUserLineVO.setLatestTime(lineLatestDataList.stream() +// .filter(item -> item.getLineId().equals(record.getLineId())) +// .map(CsLineLatestData::getTimeId) +// .max(LocalDateTime::compareTo) +// .orElse(null)); +// } list.add(sensitiveUserLineVO); } result.setRecords(list); @@ -443,23 +445,41 @@ public class CsLinePOServiceImpl extends ServiceImpl i return lineDetailDataVO; } + } + @Override + public List getLineList(CsLinePO param) { + List result = new ArrayList<>(); + List keywordsLineIds = new ArrayList<>(); + List poList = getSimpleLine(); + if (CollUtil.isNotEmpty(poList)) { + keywordsLineIds = poList.stream().map(CsLinePO::getLineId).collect(Collectors.toList()); + } + List list = this.list(new LambdaQueryWrapper() + .eq(CsLinePO::getStatus, 1) + .eq(StrUtil.isNotBlank(param.getPosition()), CsLinePO::getPosition, param.getPosition()) + .in(CsLinePO::getLineId, keywordsLineIds) + .orderByAsc(CsLinePO::getName)); + //根据监测点id查询设备信息 + if (CollectionUtil.isNotEmpty(list)) { + //获取设备信息集合 + List devList = list.stream().map(CsLinePO::getDevId).collect(Collectors.toList()); + List equipmentDeliveryList = csEquipmentDeliveryMapper.selectBatchIds(devList); + Map runStatusMap = equipmentDeliveryList.stream().collect(Collectors.toMap(CsEquipmentDeliveryPO::getId,CsEquipmentDeliveryPO::getRunStatus)); + list.forEach(item->{ + item.setRunStatus(runStatusMap.get(item.getDevId())); + }); + } + return result; } private String getRunStatusDescription(Integer runStatus) { - // 0:运行;1:检修;2:停运;3:调试;4:退运 switch (runStatus) { - case 0: - return "运行"; case 1: - return "检修"; + return "离线"; case 2: - return "停运"; - case 3: - return "调试"; - case 4: - return "退运"; + return "在线"; default: return "未知"; } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/RmpEventDetailPO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/RmpEventDetailPO.java new file mode 100644 index 0000000..fc44530 --- /dev/null +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/RmpEventDetailPO.java @@ -0,0 +1,127 @@ +package com.njcn.csharmonic.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 com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 暂降明细实体类 + * + * @author yzh + * @since 2022-10-12 18:34:55 + */ +@Data +@TableName("r_mp_event_detail") +@ApiModel(value="RmpEventDetail对象") +public class RmpEventDetailPO implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "暂时事件ID") + @TableId(value = "event_id", type = IdType.ASSIGN_ID) + private String eventId; + + @ApiModelProperty(value = "监测点ID") + private String measurementPointId; + + @ApiModelProperty(value = "监测点ID(复制)") + @TableField("measurement_point_id") + private String lineId; + + @ApiModelProperty(value = "统计类型") + private String eventType; + + @ApiModelProperty(value = "暂降原因(Event_Reason)") + @TableField("advance_reason") + private String advanceReason; + + @ApiModelProperty(value = "暂降类型(Event_Type)") + @TableField("advance_type") + private String advanceType; + + @ApiModelProperty(value = "事件关联分析表Guid") + private String eventassIndex; + + @ApiModelProperty(value = "dq计算持续时间 ") + private Double dqTime; + + @ApiModelProperty(value = "特征值计算更新时间(外键PQS_Relevance的Time字段)") + private LocalDateTime dealTime; + + @ApiModelProperty(value = "默认事件个数为0") + private Integer num; + + @ApiModelProperty(value = "波形文件是否从装置招到本地(0:未招,1:已招)默认值为0") + private Integer fileFlag; + + @ApiModelProperty(value = "特征值计算标志(0,未处理;1,已处理; 2,已处理,无结果;3,计算失败)默认值为0") + private Integer dealFlag; + + @ApiModelProperty(value = "处理结果第一条事件发生时间(读comtra文件获取)") + private LocalDateTime firstTime; + + @ApiModelProperty(value = "处理结果第一条事件暂降类型(字典表PQS_Dicdata)") + private String firstType; + + @ApiModelProperty(value = "处理结果第一条事件发生时间毫秒(读comtra文件获取)") + private Double firstMs; + + @ApiModelProperty(value = "暂降能量") + private Double energy; + + @ApiModelProperty(value = "暂降严重度") + private Double severity; + + @ApiModelProperty(value = "暂降源与监测位置关系 Upper:上游;Lower :下游;Unknown :未知;为空则是未计算") + private String sagsource; + + @ApiModelProperty(value = "开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS") + private LocalDateTime startTime; + + @ApiModelProperty(value = "格式化开始时间") + @TableField(exist = false) + private String formatTime; + + + @ApiModelProperty(value = "持续时间,单位秒") + private Double duration; + + @ApiModelProperty(value = "特征幅值") + private Double featureAmplitude; + + @ApiModelProperty(value = "相别") + private String phase; + + @ApiModelProperty(value = "事件描述") + private String eventDescribe; + + @ApiModelProperty(value = "波形路径") + private String wavePath; + + @ApiModelProperty(value = "暂降核实原因") + @TableField("verify_reason") + private String verifyReason; + + @ApiModelProperty(value = "暂降核实原因详情") + @TableField("verify_reason_detail") + private String verifyReasonDetail; + + private Double transientValue; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty(value = "用于计算数量") + @TableField(exist = false) + private Integer count; + +} + diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/RmpEventDetailMapper.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/RmpEventDetailMapper.java new file mode 100644 index 0000000..bcb039a --- /dev/null +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/RmpEventDetailMapper.java @@ -0,0 +1,18 @@ +package com.njcn.csharmonic.mapper; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.csharmonic.pojo.po.RmpEventDetailPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 暂态事件明细 + * + * @author yzh + * @date 2022/10/12 + */ +@Mapper +@DS("sjzx") +public interface RmpEventDetailMapper extends BaseMapper { + +} diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml index fc11b8a..2fe5919 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventPOMapper.xml @@ -21,7 +21,11 @@ SELECT t1.line_id id, t2.NAME, - t1.start_time timeId, + CONCAT( + DATE_FORMAT( t1.start_time, '%Y-%m-%d %H:%i:%s' ), + '.', + LPAD( FLOOR( MICROSECOND( t1.start_time ) / 1000 ), 3, '0' ) + ) AS timeId, t1.amplitude, t1.persist_time FROM @@ -34,6 +38,7 @@ #{lineId} and t1.type = 0 + order by t1.start_time DESC LIMIT 60 diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/event/RmpEventDetailService.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/event/RmpEventDetailService.java new file mode 100644 index 0000000..1f10675 --- /dev/null +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/event/RmpEventDetailService.java @@ -0,0 +1,15 @@ +package com.njcn.csharmonic.service.event; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.csharmonic.pojo.po.RmpEventDetailPO; + +/** + * 暂态事件明细 + * + * @author yzh + * @date 2022/10/12 + */ + +public interface RmpEventDetailService extends IService { + +} diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java index 305e1c4..366c393 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/CsEventPOServiceImpl.java @@ -9,6 +9,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -22,18 +23,21 @@ import com.njcn.csdevice.pojo.vo.DataGroupEventVO; import com.njcn.csharmonic.enums.CsEventEnum; import com.njcn.csharmonic.enums.CsTransientEnum; import com.njcn.csharmonic.mapper.CsEventPOMapper; +import com.njcn.csharmonic.mapper.RmpEventDetailMapper; import com.njcn.csharmonic.param.CldEventParam; import com.njcn.csharmonic.param.CsEventUserQueryPage; import com.njcn.csharmonic.param.CsEventUserQueryParam; import com.njcn.csharmonic.param.DataParam; import com.njcn.csharmonic.pojo.param.EventStatisticParam; import com.njcn.csharmonic.pojo.po.CsEventPO; +import com.njcn.csharmonic.pojo.po.RmpEventDetailPO; import com.njcn.csharmonic.pojo.vo.CsEventVO; import com.njcn.csharmonic.pojo.vo.CsWarnDescVO; import com.njcn.csharmonic.pojo.vo.EventDetailVO; import com.njcn.csharmonic.pojo.vo.EventStatisticsVo; import com.njcn.csharmonic.service.CsEventPOService; import com.njcn.csharmonic.service.CsEventUserPOService; +import com.njcn.csharmonic.service.event.RmpEventDetailService; import com.njcn.event.file.component.WaveFileComponent; import com.njcn.event.file.component.WavePicComponent; import com.njcn.event.file.pojo.bo.WaveDataDetail; @@ -48,8 +52,11 @@ import com.njcn.minioss.config.MinIossProperties; import com.njcn.minioss.util.MinIoUtils; import com.njcn.oss.constant.GeneralConstant; import com.njcn.oss.utils.FileStorageUtil; +import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.EleEvtFeignClient; import com.njcn.system.api.EpdFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.system.pojo.po.EleEvtParm; import com.njcn.web.factory.PageFactory; @@ -107,6 +114,9 @@ public class CsEventPOServiceImpl extends ServiceImpl queryEventList(CsEventUserQueryParam csEventUserQueryParam) { @@ -328,7 +338,7 @@ public class CsEventPOServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -368,6 +378,10 @@ public class CsEventPOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(RmpEventDetailPO::getMeasurementPointId,param.getMonitorId()).eq(RmpEventDetailPO::getStartTime,param.getStartTime()); + RmpEventDetailPO po = rmpEventDetailMapper.selectOne(wrapper); + po.setWavePath(param.getWavePath()); + rmpEventDetailService.updateById(po); + } + + @Override public List getEventByTime(List lineList, String startTime, String endTime) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -414,7 +453,15 @@ public class CsEventPOServiceImpl extends ServiceImpl= 110) { + desc = "升至"; + } else { + desc = "维持"; + } + csWarnDescVO.setEventDesc("电压暂态事件,持续时间"+csWarnDescVO.getPersistTime()+"秒,电压"+desc+csWarnDescVO.getAmplitude()+"%。"); } return csWarnDescVOList; } @@ -441,7 +488,27 @@ public class CsEventPOServiceImpl extends ServiceImpl implements RmpEventDetailService { + + +} + +