代码优化

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

View File

@@ -88,22 +88,20 @@ public class AccessApplicationRunner implements ApplicationRunner {
} }
public void accessDev(List<CsEquipmentDeliveryPO> list) { public void accessDev(List<CsEquipmentDeliveryPO> list) {
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{ list.forEach(item->{
System.out.println(Thread.currentThread().getName() + ": reboot : nDid : " + item.getNdid()); System.out.println(Thread.currentThread().getName() + ": reboot : nDid : " + item.getNdid());
String version = csTopicService.getVersion(item.getNdid());
if (!Objects.isNull(version)){
//判断设备类型 便携式设备需要特殊处理 未注册的要先注册、再接入;已注册的直接重新接入 //判断设备类型 便携式设备需要特殊处理 未注册的要先注册、再接入;已注册的直接重新接入
String code = dictTreeFeignClient.queryById(item.getDevType()).getData().getCode(); String code = dictTreeFeignClient.queryById(item.getDevType()).getData().getCode();
if (Objects.equals(code, DicDataEnum.PORTABLE.getCode()) && Objects.equals(item.getStatus(),1)) { if (Objects.equals(code, DicDataEnum.PORTABLE.getCode()) && Objects.equals(item.getStatus(),1)) {
csDeviceService.wlDevRegister(item.getNdid()); csDeviceService.wlDevRegister(item.getNdid());
} else { } else {
String version = csTopicService.getVersion(item.getNdid());
csDeviceService.devAccessAskTemplate(item.getNdid(),version,1); csDeviceService.devAccessAskTemplate(item.getNdid(),version,1);
} }
redisUtil.saveByKey(AppRedisKey.DEVICE_MID + item.getNdid(),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; int end = (i == 9) ? list.size() : start + partitionSize;
subLists.add(list.subList(start, end)); subLists.add(list.subList(start, end));
} }
// 创建一个ExecutorService来处理这些任务 // 创建一个ExecutorService来处理这些任务
List<Future<Void>> futures = new ArrayList<>(); List<Future<Void>> futures = new ArrayList<>();
// 提交任务给线程池执行 // 提交任务给线程池执行
@@ -70,7 +69,7 @@ public class AutoAccessTimer implements ApplicationRunner {
for (Future<Void> future : futures) { for (Future<Void> future : futures) {
try { try {
future.get(); future.get();
} catch (InterruptedException | ExecutionException e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
@@ -83,21 +82,19 @@ public class AutoAccessTimer implements ApplicationRunner {
} }
public void accessDev(List<CsEquipmentDeliveryPO> list) { public void accessDev(List<CsEquipmentDeliveryPO> list) {
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{ list.forEach(item->{
System.out.println(Thread.currentThread().getName() + ": auto : nDid : " + item.getNdid()); System.out.println(Thread.currentThread().getName() + ": auto : nDid : " + item.getNdid());
String version = csTopicService.getVersion(item.getNdid());
if (!Objects.isNull(version)){
//判断设备类型 便携式设备需要特殊处理 未注册的要先注册、再接入;已注册的直接重新接入 //判断设备类型 便携式设备需要特殊处理 未注册的要先注册、再接入;已注册的直接重新接入
String code = dictTreeFeignClient.queryById(item.getDevType()).getData().getCode(); String code = dictTreeFeignClient.queryById(item.getDevType()).getData().getCode();
if (Objects.equals(code, DicDataEnum.PORTABLE.getCode()) && Objects.equals(item.getStatus(),1)) { if (Objects.equals(code, DicDataEnum.PORTABLE.getCode()) && Objects.equals(item.getStatus(),1)) {
csDeviceService.wlDevRegister(item.getNdid()); csDeviceService.wlDevRegister(item.getNdid());
} else { } else {
String version = csTopicService.getVersion(item.getNdid());
csDeviceService.devAccessAskTemplate(item.getNdid(),version,1); csDeviceService.devAccessAskTemplate(item.getNdid(),version,1);
} }
redisUtil.saveByKey(AppRedisKey.DEVICE_MID + item.getNdid(),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; package com.njcn.access.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.access.enums.AccessEnum; import com.njcn.access.enums.AccessEnum;
@@ -97,6 +98,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
.ne(CsEquipmentDeliveryPO::getRunStatus,AccessEnum.DEL.getCode()) .ne(CsEquipmentDeliveryPO::getRunStatus,AccessEnum.DEL.getCode())
.eq(CsEquipmentDeliveryPO::getUsageStatus,1) .eq(CsEquipmentDeliveryPO::getUsageStatus,1)
.list(); .list();
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{ list.forEach(item->{
String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6); String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6);
boolean mqttClient = mqttUtil.judgeClientOnline(clientName); boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
@@ -111,6 +113,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
csLogsFeignClient.addUserLog(logDto); csLogsFeignClient.addUserLog(logDto);
} }
}); });
}
return result; return result;
} }
@@ -121,6 +124,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
.eq(CsEquipmentDeliveryPO::getRunStatus,AccessEnum.OFFLINE.getCode()) .eq(CsEquipmentDeliveryPO::getRunStatus,AccessEnum.OFFLINE.getCode())
.eq(CsEquipmentDeliveryPO::getUsageStatus,1) .eq(CsEquipmentDeliveryPO::getUsageStatus,1)
.list(); .list();
if (CollUtil.isNotEmpty(list)) {
list.forEach(item->{ list.forEach(item->{
String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6); String clientName = "NJCN-" + item.getNdid().substring(item.getNdid().length() - 6);
boolean mqttClient = mqttUtil.judgeClientOnline(clientName); boolean mqttClient = mqttUtil.judgeClientOnline(clientName);
@@ -135,6 +139,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
csLogsFeignClient.addUserLog(logDto); csLogsFeignClient.addUserLog(logDto);
} }
}); });
}
return result; return result;
} }