云前置改造-台账更新功能

This commit is contained in:
xy
2025-10-14 13:24:56 +08:00
parent 814b5757fd
commit 753a22eb4c
10 changed files with 66 additions and 22 deletions

View File

@@ -58,7 +58,7 @@ public interface DataParam {
String GOVERNANCE_SYSTEM = "治理系统"; String GOVERNANCE_SYSTEM = "治理系统";
String cldDev = "云前置设备"; String cldDev = "在线设备";
String EvtParamPhase = "Evt_Param_Phase"; String EvtParamPhase = "Evt_Param_Phase";

View File

@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable; import java.io.Serializable;
@@ -34,6 +32,11 @@ public class CsTerminalLogs extends BaseEntity implements Serializable {
*/ */
private String deviceId; private String deviceId;
/**
* 设备名称
*/
private String deviceName;
/** /**
* 前置服务器id * 前置服务器id
*/ */

View File

@@ -48,10 +48,15 @@ public class CsTerminalReply extends BaseEntity implements Serializable {
private Integer processNo; private Integer processNo;
/** /**
* 设备id集合 * 设备id
*/ */
private String deviceId; private String deviceId;
/**
* 设备名称
*/
private String deviceName;
/** /**
* 是否收到0未收到 1收到 * 是否收到0未收到 1收到
*/ */

View File

@@ -185,4 +185,6 @@ public interface CsEquipmentDeliveryService extends IService<CsEquipmentDelivery
List<CsEquipmentDeliveryPO> getDataByNodeIdAndProcessNo(String nodeId, Integer processNo); List<CsEquipmentDeliveryPO> getDataByNodeIdAndProcessNo(String nodeId, Integer processNo);
List<CsEquipmentDeliveryPO> getListByIds(List<String> devList);
} }

View File

@@ -816,6 +816,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
csTerminalLogs.setIsPush(0); csTerminalLogs.setIsPush(0);
csTerminalLogs.setNodeId(one.getNodeId()); csTerminalLogs.setNodeId(one.getNodeId());
csTerminalLogs.setNodeProcess(one.getNodeProcess()); csTerminalLogs.setNodeProcess(one.getNodeProcess());
csTerminalLogs.setDeviceName(one.getName());
csTerminalLogsMapper.insert(csTerminalLogs); csTerminalLogsMapper.insert(csTerminalLogs);
return true; return true;
} }
@@ -969,6 +970,11 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
return this.list(lambdaQueryWrapper); return this.list(lambdaQueryWrapper);
} }
@Override
public List<CsEquipmentDeliveryPO> getListByIds(List<String> devList) {
return this.lambdaQuery().in(CsEquipmentDeliveryPO::getId,devList).list();
}
//根据前置机id获取装置数量 //根据前置机id获取装置数量
public List<CsEquipmentDeliveryPO> getListByNodeId(String nodeId) { public List<CsEquipmentDeliveryPO> getListByNodeId(String nodeId) {
LambdaQueryWrapper<CsEquipmentDeliveryPO> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CsEquipmentDeliveryPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();

View File

@@ -175,7 +175,7 @@ public class CsTerminalLogsServiceImpl extends ServiceImpl<CsTerminalLogsMapper,
List<CsEquipmentDeliveryPO> v1 = entry.getValue(); List<CsEquipmentDeliveryPO> v1 = entry.getValue();
String guid = IdUtil.simpleUUID(); String guid = IdUtil.simpleUUID();
message.setGuid(guid); message.setGuid(guid);
message.setProcessNo(String.valueOf(k1)); message.setProcessNo(k1);
List<CldUpdateLedgerMessage.CldDeviceDto> list1 = new ArrayList<>(); List<CldUpdateLedgerMessage.CldDeviceDto> list1 = new ArrayList<>();
v1.forEach(item -> { v1.forEach(item -> {
CldUpdateLedgerMessage.CldDeviceDto deviceDto = new CldUpdateLedgerMessage.CldDeviceDto(); CldUpdateLedgerMessage.CldDeviceDto deviceDto = new CldUpdateLedgerMessage.CldDeviceDto();
@@ -248,7 +248,7 @@ public class CsTerminalLogsServiceImpl extends ServiceImpl<CsTerminalLogsMapper,
nodeProcessMap1.forEach((k1,v1)->{ nodeProcessMap1.forEach((k1,v1)->{
String guid = IdUtil.simpleUUID(); String guid = IdUtil.simpleUUID();
message.setGuid(guid); message.setGuid(guid);
message.setProcessNo(String.valueOf(k1)); message.setProcessNo(k1);
List<CldUpdateLedgerMessage.CldDeviceDto> list1 = new ArrayList<>(); List<CldUpdateLedgerMessage.CldDeviceDto> list1 = new ArrayList<>();
v1.forEach(item->{ v1.forEach(item->{
CldUpdateLedgerMessage.CldDeviceDto deviceDto = new CldUpdateLedgerMessage.CldDeviceDto(); CldUpdateLedgerMessage.CldDeviceDto deviceDto = new CldUpdateLedgerMessage.CldDeviceDto();
@@ -267,6 +267,7 @@ public class CsTerminalLogsServiceImpl extends ServiceImpl<CsTerminalLogsMapper,
csFmTerminalReply.setNodeId(k); csFmTerminalReply.setNodeId(k);
csFmTerminalReply.setProcessNo(k1); csFmTerminalReply.setProcessNo(k1);
csFmTerminalReply.setDeviceId(item.getDeviceId()); csFmTerminalReply.setDeviceId(item.getDeviceId());
csFmTerminalReply.setDeviceName(item.getDeviceName());
csFmTerminalReply.setIsReceived(0); csFmTerminalReply.setIsReceived(0);
csTerminalReplyMapper.insert(csFmTerminalReply); csTerminalReplyMapper.insert(csFmTerminalReply);
}); });

View File

@@ -1,6 +1,7 @@
package com.njcn.csdevice.service.impl; package com.njcn.csdevice.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsTerminalReplyMapper; import com.njcn.csdevice.mapper.CsTerminalReplyMapper;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
@@ -70,13 +71,18 @@ public class CsTerminalReplyServiceImpl extends ServiceImpl<CsTerminalReplyMappe
List<CsEquipmentDeliveryPO> devList1 = csEquipmentDeliveryService.getAll(); List<CsEquipmentDeliveryPO> devList1 = csEquipmentDeliveryService.getAll();
List<CsEquipmentDeliveryPO> devList2 = devList1.stream().filter(item1 -> Objects.equals(item1.getId(), item.getDeviceId())).collect(Collectors.toList()); List<CsEquipmentDeliveryPO> devList2 = devList1.stream().filter(item1 -> Objects.equals(item1.getId(), item.getDeviceId())).collect(Collectors.toList());
List<String> devNameList = devList2.stream().map(CsEquipmentDeliveryPO::getName).collect(Collectors.toList()); List<String> devNameList = devList2.stream().map(CsEquipmentDeliveryPO::getName).collect(Collectors.toList());
String devNameListString = devNameList.toString(); String devNameListString;
if (CollectionUtil.isNotEmpty(devNameList)) {
devNameListString = devNameList.toString();
} else {
devNameListString = "[" + item.getDeviceName() + "]";
}
if (item.getIsReceived() == 0) { if (item.getIsReceived() == 0) {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + code + "数据失败"; key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据失败";
//将cs_terminal_logs数据置为未发送 //将cs_terminal_logs数据置为未发送
csTerminalLogsService.updateLaterData(item.getDeviceId(),item.getCode()); csTerminalLogsService.updateLaterData(item.getDeviceId(),item.getCode());
} else { } else {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + code + "数据成功"; key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据成功";
} }
result.add(key); result.add(key);
}); });
@@ -88,8 +94,10 @@ public class CsTerminalReplyServiceImpl extends ServiceImpl<CsTerminalReplyMappe
@Override @Override
public void updateReplyData(String id,Integer state,String deviceId) { public void updateReplyData(String id,Integer state,String deviceId) {
this.lambdaUpdate().set(CsTerminalReply::getIsReceived,state) LambdaUpdateWrapper<CsTerminalReply> wrapper = new LambdaUpdateWrapper<>();
.eq(CsTerminalReply::getDeviceId,deviceId) wrapper.set(CsTerminalReply::getIsReceived,state)
.eq(CsTerminalReply::getReplyId,id); .eq(CsTerminalReply::getReplyId,id)
.eq(CsTerminalReply::getDeviceId,deviceId);
this.update(wrapper);
} }
} }

View File

@@ -6,11 +6,11 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.csdevice.api.CsLineFeignClient; import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.mapper.RStatIntegrityDMapper; import com.njcn.csdevice.mapper.RStatIntegrityDMapper;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.po.RStatIntegrityD; import com.njcn.csdevice.pojo.po.RStatIntegrityD;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.csdevice.service.IRStatIntegrityDService; import com.njcn.csdevice.service.IRStatIntegrityDService;
import com.njcn.csdevice.util.TimeUtil; import com.njcn.csdevice.util.TimeUtil;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam; import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
@@ -42,15 +42,21 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMapper, RStatIntegrityD> implements IRStatIntegrityDService { public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMapper, RStatIntegrityD> implements IRStatIntegrityDService {
private final EquipmentFeignClient equipmentFeignClient;
private final CsLineFeignClient csLineFeignClient; private final CsLineFeignClient csLineFeignClient;
private final CommonService commonService; private final CommonService commonService;
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
@Override @Override
public void addData(StatisticsDataParam param) { public void addData(StatisticsDataParam param) {
List<RStatIntegrityD> result = new ArrayList<>(); List<RStatIntegrityD> result = new ArrayList<>();
List<CsEquipmentDeliveryPO> devList;
//判断是否指定设备补招
if (CollectionUtil.isNotEmpty(param.getIdList())) {
devList = csEquipmentDeliveryService.getListByIds(param.getIdList());
} else {
//获取库中正常的所有装置 //获取库中正常的所有装置
List<CsEquipmentDeliveryPO> devList = equipmentFeignClient.getAll().getData(); devList = csEquipmentDeliveryService.getAll();
}
if (CollectionUtil.isNotEmpty(devList)) { if (CollectionUtil.isNotEmpty(devList)) {
Map<String, CsEquipmentDeliveryPO> devMap = devList.stream().collect(Collectors.toMap(CsEquipmentDeliveryPO::getId, Function.identity())); Map<String, CsEquipmentDeliveryPO> devMap = devList.stream().collect(Collectors.toMap(CsEquipmentDeliveryPO::getId, Function.identity()));
//获取所有监测点 //获取所有监测点

View File

@@ -6,16 +6,15 @@ import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.mapper.RStatOnlineRateDMapper; import com.njcn.csdevice.mapper.RStatOnlineRateDMapper;
import com.njcn.csdevice.param.LineCountEvaluateParam; import com.njcn.csdevice.param.LineCountEvaluateParam;
import com.njcn.csdevice.pojo.dto.PqsCommunicateDto; import com.njcn.csdevice.pojo.dto.PqsCommunicateDto;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.RStatOnlineRateD; import com.njcn.csdevice.pojo.po.RStatOnlineRateD;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.csdevice.service.ICsCommunicateService; import com.njcn.csdevice.service.ICsCommunicateService;
import com.njcn.csdevice.service.IRStatOnlineRateDService; import com.njcn.csdevice.service.IRStatOnlineRateDService;
import com.njcn.csdevice.util.TimeUtil; import com.njcn.csdevice.util.TimeUtil;
import com.njcn.csharmonic.param.DataParam;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam; import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
import com.njcn.influx.deprecated.InfluxDBPublicParam; import com.njcn.influx.deprecated.InfluxDBPublicParam;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -25,7 +24,6 @@ import org.springframework.stereotype.Service;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
@@ -46,14 +44,24 @@ import java.util.List;
public class RStatOnlineRateDServiceImpl extends MppServiceImpl<RStatOnlineRateDMapper, RStatOnlineRateD> implements IRStatOnlineRateDService { public class RStatOnlineRateDServiceImpl extends MppServiceImpl<RStatOnlineRateDMapper, RStatOnlineRateD> implements IRStatOnlineRateDService {
private final Integer online = 1; private final Integer online = 1;
private final EquipmentFeignClient equipmentFeignClient;
private final ICsCommunicateService pqsCommunicateService; private final ICsCommunicateService pqsCommunicateService;
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
@Override @Override
public void addData(StatisticsDataParam param) { public void addData(StatisticsDataParam param) {
List<RStatOnlineRateD> list = new ArrayList<>(); List<RStatOnlineRateD> list = new ArrayList<>();
List<CsEquipmentDeliveryPO> devList;
//判断是否指定设备补招
if (CollectionUtil.isNotEmpty(param.getIdList())) {
devList = csEquipmentDeliveryService.getListByIds(param.getIdList());
} else {
//获取库中正常的所有装置 //获取库中正常的所有装置
List<CsEquipmentDeliveryPO> devList = equipmentFeignClient.getAll().getData(); devList = csEquipmentDeliveryService.getAll();
}
if (CollectionUtil.isEmpty(devList)) {
return;
}
if (CollectionUtil.isNotEmpty(devList)) { if (CollectionUtil.isNotEmpty(devList)) {
//获取需要计算的时间 //获取需要计算的时间
List<String> dateRange = TimeUtil.getDateRangeAsString(param.getStartTime(), param.getEndTime()); List<String> dateRange = TimeUtil.getDateRangeAsString(param.getStartTime(), param.getEndTime());
@@ -190,6 +198,8 @@ public class RStatOnlineRateDServiceImpl extends MppServiceImpl<RStatOnlineRateD
} catch (ParseException e) { } catch (ParseException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} else {
minute = InfluxDBPublicParam.DAY_MINUTE;
} }
} }
} }

View File

@@ -99,6 +99,9 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService
if (CollectionUtil.isNotEmpty(processList)) { if (CollectionUtil.isNotEmpty(processList)) {
//获取监测点集合 //获取监测点集合
List<String> devList = processList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList()); List<String> devList = processList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
if (CollectionUtil.isEmpty(devList)) {
return result;
}
List<CsLinePO> csLineList = csLineFeignClient.getLinesByDevList(devList).getData(); List<CsLinePO> csLineList = csLineFeignClient.getLinesByDevList(devList).getData();
if (CollectionUtil.isNotEmpty(csLineList)) { if (CollectionUtil.isNotEmpty(csLineList)) {
Map<String,List<CsLinePO>> devMap = csLineList.stream().collect(Collectors.groupingBy(CsLinePO::getDeviceId)); Map<String,List<CsLinePO>> devMap = csLineList.stream().collect(Collectors.groupingBy(CsLinePO::getDeviceId));