代码优化

This commit is contained in:
xy
2025-01-14 10:31:45 +08:00
parent 52d2dda01c
commit c6e938e7a0
4 changed files with 81 additions and 46 deletions

View File

@@ -1,6 +1,7 @@
package com.njcn.access.pojo.dto;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,39 +18,49 @@ import java.util.List;
public class AutoDataDto {
@SerializedName("Mid")
@JsonProperty("Mid")
private Integer mid;
@SerializedName("Did")
@JsonProperty("Did")
@ApiModelProperty("逻辑设备 治理逻辑设备为1 电能质量设备为2")
private Integer did;
@SerializedName("Pri")
@JsonProperty("Pri")
private Integer pri;
@SerializedName("Type")
@JsonProperty("Type")
private Integer type;
@SerializedName("Msg")
@JsonProperty("Msg")
private Msg msg;
@Data
public static class Msg{
@SerializedName("Cldid")
@JsonProperty("Cldid")
@ApiModelProperty("逻辑子设备 治理逻辑设备为0 电能质量设备为1、2")
private Integer clDid;
@SerializedName("DataType")
@JsonProperty("DataType")
private Integer dataType;
@SerializedName("DataAttr")
@JsonProperty("DataAttr")
@ApiModelProperty("数据属性:无-0、实时-1、统计-2")
private Integer dataAttr;
@SerializedName("DsNameIdx")
@JsonProperty("DsNameIdx")
private Integer dsNameIdx;
@SerializedName("DataArray")
@JsonProperty("DataArray")
private List<DataArray> dataArray;
}
@@ -57,95 +68,119 @@ public class AutoDataDto {
public static class DataArray{
@SerializedName("DataAttr")
@JsonProperty("DataAttr")
@ApiModelProperty("数据属性 -1-无 0-Rt(实时) 1-Max 2-Min 3-Avg 4-Cp95")
private Integer dataAttr;
@SerializedName("DataTimeSec")
@JsonProperty("DataTimeSec")
private Long dataTimeSec;
@SerializedName("DataTimeUSec")
@JsonProperty("DataTimeUSec")
private Integer dataTimeUSec;
@SerializedName("DataTag")
@JsonProperty("DataTag")
@ApiModelProperty("数据是否参与合格率统计")
private Integer dataTag;
@SerializedName("Code")
@JsonProperty("Code")
@ApiModelProperty("事件码")
private Integer code;
@SerializedName("Data")
@JsonProperty("Data")
private String data;
@SerializedName("PrjName")
@JsonProperty("PrjName")
@ApiModelProperty("工程名称")
private String prjName;
@SerializedName("PrjTimeStart")
@JsonProperty("PrjTimeStart")
@ApiModelProperty("装置启动时间")
private Long prjTimeStart;
@SerializedName("PrjTimeEnd")
@JsonProperty("PrjTimeEnd")
@ApiModelProperty("装置结束时间")
private Long prjTimeEnd;
@SerializedName("PrjDataPath")
@JsonProperty("PrjDataPath")
@ApiModelProperty("装置数据路径")
private String prjDataPath;
@SerializedName("DevType")
@JsonProperty("DevType")
@ApiModelProperty("装置型号")
private String devType;
@SerializedName("DevMac")
@JsonProperty("DevMac")
@ApiModelProperty("装置mac地址")
private String devMac;
@SerializedName("AppVersion")
@JsonProperty("AppVersion")
@ApiModelProperty("装置程序版本")
private String appVersion;
@SerializedName("Cldid")
@JsonProperty("Cldid")
@ApiModelProperty("逻辑子设备id")
private Integer clDid;
@SerializedName("StatCycle")
@JsonProperty("StatCycle")
@ApiModelProperty("统计间隔")
private Integer statCycle;
@SerializedName("VolGrade")
@JsonProperty("VolGrade")
@ApiModelProperty("电压等级")
private Float volGrade;
@SerializedName("VolConType")
@JsonProperty("VolConType")
@ApiModelProperty("电压接线方式0-星型, 1-角型, 2-V型")
private Integer volConType;
@SerializedName("CurConSel")
@JsonProperty("CurConSel")
@ApiModelProperty("电流接线方式0-正常, 1-合成IB, 2-合成IC")
private Integer curConSel;
@SerializedName("PtRatio")
@JsonProperty("PtRatio")
@ApiModelProperty("PT变比")
private Integer ptRatio;
@SerializedName("CtRatio")
@JsonProperty("CtRatio")
@ApiModelProperty("ct变比")
private Integer ctRatio;
@SerializedName("CapacitySscb")
@JsonProperty("CapacitySscb")
@ApiModelProperty("基准短路容量")
private Float capacitySscb;
@SerializedName("CapacitySscmin")
@JsonProperty("CapacitySscmin")
@ApiModelProperty("最小短路容量")
private Float capacitySscmin;
@SerializedName("CapacitySt")
@JsonProperty("CapacitySt")
@ApiModelProperty("供电设备容量")
private Float capacitySt;
@SerializedName("CapacitySi")
@JsonProperty("CapacitySi")
@ApiModelProperty("用户协议容量")
private Float capacitySi;
}

View File

@@ -88,22 +88,20 @@ public class AccessApplicationRunner implements ApplicationRunner {
}
public void accessDev(List<CsEquipmentDeliveryPO> list) {
list.forEach(item->{
System.out.println(Thread.currentThread().getName() + ": reboot : nDid : " + item.getNdid());
String version = csTopicService.getVersion(item.getNdid());
if (!Objects.isNull(version)){
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{
System.out.println(Thread.currentThread().getName() + ": reboot : nDid : " + item.getNdid());
//判断设备类型 便携式设备需要特殊处理 未注册的要先注册、再接入;已注册的直接重新接入
String code = dictTreeFeignClient.queryById(item.getDevType()).getData().getCode();
if (Objects.equals(code, DicDataEnum.PORTABLE.getCode()) && Objects.equals(item.getStatus(),1)) {
csDeviceService.wlDevRegister(item.getNdid());
} else {
String version = csTopicService.getVersion(item.getNdid());
csDeviceService.devAccessAskTemplate(item.getNdid(),version,1);
}
redisUtil.saveByKey(AppRedisKey.DEVICE_MID + item.getNdid(),1);
} else {
log.info("{},装置主题缺少版本信息", item.getNdid());
}
});
});
}
}
}

View File

@@ -52,7 +52,6 @@ public class AutoAccessTimer implements ApplicationRunner {
int end = (i == 9) ? list.size() : start + partitionSize;
subLists.add(list.subList(start, end));
}
// 创建一个ExecutorService来处理这些任务
List<Future<Void>> futures = new ArrayList<>();
// 提交任务给线程池执行
@@ -70,7 +69,7 @@ public class AutoAccessTimer implements ApplicationRunner {
for (Future<Void> future : futures) {
try {
future.get();
} catch (InterruptedException | ExecutionException e) {
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@@ -83,21 +82,19 @@ public class AutoAccessTimer implements ApplicationRunner {
}
public void accessDev(List<CsEquipmentDeliveryPO> list) {
list.forEach(item->{
System.out.println(Thread.currentThread().getName() + ": auto : nDid : " + item.getNdid());
String version = csTopicService.getVersion(item.getNdid());
if (!Objects.isNull(version)){
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{
System.out.println(Thread.currentThread().getName() + ": auto : nDid : " + item.getNdid());
//判断设备类型 便携式设备需要特殊处理 未注册的要先注册、再接入;已注册的直接重新接入
String code = dictTreeFeignClient.queryById(item.getDevType()).getData().getCode();
if (Objects.equals(code, DicDataEnum.PORTABLE.getCode()) && Objects.equals(item.getStatus(),1)) {
csDeviceService.wlDevRegister(item.getNdid());
} else {
String version = csTopicService.getVersion(item.getNdid());
csDeviceService.devAccessAskTemplate(item.getNdid(),version,1);
}
redisUtil.saveByKey(AppRedisKey.DEVICE_MID + item.getNdid(),1);
} else {
log.info("{},装置主题缺少版本信息", item.getNdid());
}
});
});
}
}
}

View File

@@ -1,5 +1,6 @@
package com.njcn.access.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.access.enums.AccessEnum;
@@ -97,20 +98,22 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
.ne(CsEquipmentDeliveryPO::getRunStatus,AccessEnum.DEL.getCode())
.eq(CsEquipmentDeliveryPO::getUsageStatus,1)
.list();
list.forEach(item->{
String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6);
boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
if (mqttClient) {
result.add(item);
} else {
DeviceLogDTO logDto = new DeviceLogDTO();
logDto.setUserName("运维管理员");
logDto.setLoginName("njcnyw");
logDto.setResult(1);
logDto.setOperate(item.getNdid() + "接入失败,装置客户端不在线");
csLogsFeignClient.addUserLog(logDto);
}
});
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{
String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6);
boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
if (mqttClient) {
result.add(item);
} else {
DeviceLogDTO logDto = new DeviceLogDTO();
logDto.setUserName("运维管理员");
logDto.setLoginName("njcnyw");
logDto.setResult(1);
logDto.setOperate(item.getNdid() + "接入失败,装置客户端不在线");
csLogsFeignClient.addUserLog(logDto);
}
});
}
return result;
}
@@ -121,20 +124,22 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
.eq(CsEquipmentDeliveryPO::getRunStatus,AccessEnum.OFFLINE.getCode())
.eq(CsEquipmentDeliveryPO::getUsageStatus,1)
.list();
list.forEach(item->{
String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6);
boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
if (mqttClient) {
result.add(item);
} else {
DeviceLogDTO logDto = new DeviceLogDTO();
logDto.setUserName("运维管理员");
logDto.setLoginName("njcnyw");
logDto.setResult(1);
logDto.setOperate(item.getNdid() + "接入失败,装置客户端不在线");
csLogsFeignClient.addUserLog(logDto);
}
});
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{
String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6);
boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
if (mqttClient) {
result.add(item);
} else {
DeviceLogDTO logDto = new DeviceLogDTO();
logDto.setUserName("运维管理员");
logDto.setLoginName("njcnyw");
logDto.setResult(1);
logDto.setOperate(item.getNdid() + "接入失败,装置客户端不在线");
csLogsFeignClient.addUserLog(logDto);
}
});
}
return result;
}