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

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 cldDev = "云前置设备";
String cldDev = "在线设备";
String EvtParamPhase = "Evt_Param_Phase";

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,7 @@
package com.njcn.csdevice.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsTerminalReplyMapper;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
@@ -70,13 +71,18 @@ public class CsTerminalReplyServiceImpl extends ServiceImpl<CsTerminalReplyMappe
List<CsEquipmentDeliveryPO> devList1 = csEquipmentDeliveryService.getAll();
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());
String devNameListString = devNameList.toString();
String devNameListString;
if (CollectionUtil.isNotEmpty(devNameList)) {
devNameListString = devNameList.toString();
} else {
devNameListString = "[" + item.getDeviceName() + "]";
}
if (item.getIsReceived() == 0) {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + code + "数据失败";
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据失败";
//将cs_terminal_logs数据置为未发送
csTerminalLogsService.updateLaterData(item.getDeviceId(),item.getCode());
} else {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + code + "数据成功";
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据成功";
}
result.add(key);
});
@@ -88,8 +94,10 @@ public class CsTerminalReplyServiceImpl extends ServiceImpl<CsTerminalReplyMappe
@Override
public void updateReplyData(String id,Integer state,String deviceId) {
this.lambdaUpdate().set(CsTerminalReply::getIsReceived,state)
.eq(CsTerminalReply::getDeviceId,deviceId)
.eq(CsTerminalReply::getReplyId,id);
LambdaUpdateWrapper<CsTerminalReply> wrapper = new LambdaUpdateWrapper<>();
wrapper.set(CsTerminalReply::getIsReceived,state)
.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.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.mapper.RStatIntegrityDMapper;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.pojo.po.RStatIntegrityD;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.csdevice.service.IRStatIntegrityDService;
import com.njcn.csdevice.util.TimeUtil;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
@@ -42,15 +42,21 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMapper, RStatIntegrityD> implements IRStatIntegrityDService {
private final EquipmentFeignClient equipmentFeignClient;
private final CsLineFeignClient csLineFeignClient;
private final CommonService commonService;
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
@Override
public void addData(StatisticsDataParam param) {
List<RStatIntegrityD> result = new ArrayList<>();
//获取库中正常的所有装置
List<CsEquipmentDeliveryPO> devList = equipmentFeignClient.getAll().getData();
List<CsEquipmentDeliveryPO> devList;
//判断是否指定设备补招
if (CollectionUtil.isNotEmpty(param.getIdList())) {
devList = csEquipmentDeliveryService.getListByIds(param.getIdList());
} else {
//获取库中正常的所有装置
devList = csEquipmentDeliveryService.getAll();
}
if (CollectionUtil.isNotEmpty(devList)) {
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 com.baomidou.dynamic.datasource.annotation.DS;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.mapper.RStatOnlineRateDMapper;
import com.njcn.csdevice.param.LineCountEvaluateParam;
import com.njcn.csdevice.pojo.dto.PqsCommunicateDto;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.RStatOnlineRateD;
import com.njcn.csdevice.service.CsEquipmentDeliveryService;
import com.njcn.csdevice.service.ICsCommunicateService;
import com.njcn.csdevice.service.IRStatOnlineRateDService;
import com.njcn.csdevice.util.TimeUtil;
import com.njcn.csharmonic.param.DataParam;
import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
import com.njcn.influx.deprecated.InfluxDBPublicParam;
import lombok.AllArgsConstructor;
@@ -25,7 +24,6 @@ import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -46,14 +44,24 @@ import java.util.List;
public class RStatOnlineRateDServiceImpl extends MppServiceImpl<RStatOnlineRateDMapper, RStatOnlineRateD> implements IRStatOnlineRateDService {
private final Integer online = 1;
private final EquipmentFeignClient equipmentFeignClient;
private final ICsCommunicateService pqsCommunicateService;
private final CsEquipmentDeliveryService csEquipmentDeliveryService;
@Override
public void addData(StatisticsDataParam param) {
List<RStatOnlineRateD> list = new ArrayList<>();
//获取库中正常的所有装置
List<CsEquipmentDeliveryPO> devList = equipmentFeignClient.getAll().getData();
List<CsEquipmentDeliveryPO> devList;
//判断是否指定设备补招
if (CollectionUtil.isNotEmpty(param.getIdList())) {
devList = csEquipmentDeliveryService.getListByIds(param.getIdList());
} else {
//获取库中正常的所有装置
devList = csEquipmentDeliveryService.getAll();
}
if (CollectionUtil.isEmpty(devList)) {
return;
}
if (CollectionUtil.isNotEmpty(devList)) {
//获取需要计算的时间
List<String> dateRange = TimeUtil.getDateRangeAsString(param.getStartTime(), param.getEndTime());
@@ -190,6 +198,8 @@ public class RStatOnlineRateDServiceImpl extends MppServiceImpl<RStatOnlineRateD
} catch (ParseException 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)) {
//获取监测点集合
List<String> devList = processList.stream().map(CsEquipmentDeliveryPO::getId).collect(Collectors.toList());
if (CollectionUtil.isEmpty(devList)) {
return result;
}
List<CsLinePO> csLineList = csLineFeignClient.getLinesByDevList(devList).getData();
if (CollectionUtil.isNotEmpty(csLineList)) {
Map<String,List<CsLinePO>> devMap = csLineList.stream().collect(Collectors.groupingBy(CsLinePO::getDeviceId));