refactor(rt): 移除FloatUtils依赖并优化数据处理

- 优化harmRealDataSet数据赋值方式,移除不必要的浮点数精度处理
This commit is contained in:
xy
2026-04-24 09:42:26 +08:00
parent 7670793d5e
commit da75f74218

View File

@@ -21,7 +21,6 @@ import com.njcn.rt.pojo.dto.BaseRealDataSet;
import com.njcn.rt.pojo.dto.HarmData; import com.njcn.rt.pojo.dto.HarmData;
import com.njcn.rt.pojo.dto.HarmRealDataSet; import com.njcn.rt.pojo.dto.HarmRealDataSet;
import com.njcn.rt.service.IRtService; import com.njcn.rt.service.IRtService;
import com.njcn.web.utils.FloatUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -209,106 +208,106 @@ public class RtServiceImpl implements IRtService {
public BaseRealDataSet channelData(Map<String,Float> map,Integer conType) { public BaseRealDataSet channelData(Map<String,Float> map,Integer conType) {
BaseRealDataSet baseRealDataSet = new BaseRealDataSet(); BaseRealDataSet baseRealDataSet = new BaseRealDataSet();
//频率 //频率
baseRealDataSet.setFreq(FloatUtils.get2Float(map.get("Pq_FreqM"))); baseRealDataSet.setFreq(map.get("Pq_FreqM"));
//频率偏差 //频率偏差
baseRealDataSet.setFreqDev(FloatUtils.get2Float(map.get("Pq_FreqDevM"))); baseRealDataSet.setFreqDev(map.get("Pq_FreqDevM"));
//判断监测点的接线方式,不同接线方式电压有效值取值不同 //判断监测点的接线方式,不同接线方式电压有效值取值不同
//星型-相电压 角形、V型-线电压 //星型-相电压 角形、V型-线电压
//电压有效值 //电压有效值
if (conType == 0) { if (conType == 0) {
baseRealDataSet.setVRmsA(FloatUtils.get2Float(map.get("Pq_RmsUA"))); baseRealDataSet.setVRmsA(map.get("Pq_RmsUA"));
baseRealDataSet.setVRmsB(FloatUtils.get2Float(map.get("Pq_RmsUB"))); baseRealDataSet.setVRmsB(map.get("Pq_RmsUB"));
baseRealDataSet.setVRmsC(FloatUtils.get2Float(map.get("Pq_RmsUC"))); baseRealDataSet.setVRmsC(map.get("Pq_RmsUC"));
} else { } else {
baseRealDataSet.setVRmsA(FloatUtils.get2Float(map.get("Pq_RmsLUAB"))); baseRealDataSet.setVRmsA(map.get("Pq_RmsLUAB"));
baseRealDataSet.setVRmsB(FloatUtils.get2Float(map.get("Pq_RmsLUBC"))); baseRealDataSet.setVRmsB(map.get("Pq_RmsLUBC"));
baseRealDataSet.setVRmsC(FloatUtils.get2Float(map.get("Pq_RmsLUCA"))); baseRealDataSet.setVRmsC(map.get("Pq_RmsLUCA"));
} }
//基波电压幅值 //基波电压幅值
if (conType == 0) { if (conType == 0) {
baseRealDataSet.setV1A(FloatUtils.get2Float(map.get("Pq_RmsFundUA"))); baseRealDataSet.setV1A(map.get("Pq_RmsFundUA"));
baseRealDataSet.setV1B(FloatUtils.get2Float(map.get("Pq_RmsFundUB"))); baseRealDataSet.setV1B(map.get("Pq_RmsFundUB"));
baseRealDataSet.setV1C(FloatUtils.get2Float(map.get("Pq_RmsFundUC"))); baseRealDataSet.setV1C(map.get("Pq_RmsFundUC"));
} else { } else {
baseRealDataSet.setV1A(FloatUtils.get2Float(map.get("Pq_RmsFundLUAB"))); baseRealDataSet.setV1A(map.get("Pq_RmsFundLUAB"));
baseRealDataSet.setV1B(FloatUtils.get2Float(map.get("Pq_RmsFundLUBC"))); baseRealDataSet.setV1B(map.get("Pq_RmsFundLUBC"));
baseRealDataSet.setV1C(FloatUtils.get2Float(map.get("Pq_RmsFundLUCA"))); baseRealDataSet.setV1C(map.get("Pq_RmsFundLUCA"));
} }
//电流有效值 //电流有效值
baseRealDataSet.setIRmsA(FloatUtils.get2Float(map.get("Pq_RmsIA"))); baseRealDataSet.setIRmsA(map.get("Pq_RmsIA"));
baseRealDataSet.setIRmsB(FloatUtils.get2Float(map.get("Pq_RmsIB"))); baseRealDataSet.setIRmsB(map.get("Pq_RmsIB"));
baseRealDataSet.setIRmsC(FloatUtils.get2Float(map.get("Pq_RmsIC"))); baseRealDataSet.setIRmsC(map.get("Pq_RmsIC"));
//基波电流幅值 //基波电流幅值
baseRealDataSet.setI1A(FloatUtils.get2Float(map.get("Pq_RmsFundIA"))); baseRealDataSet.setI1A(map.get("Pq_RmsFundIA"));
baseRealDataSet.setI1B(FloatUtils.get2Float(map.get("Pq_RmsFundIB"))); baseRealDataSet.setI1B(map.get("Pq_RmsFundIB"));
baseRealDataSet.setI1C(FloatUtils.get2Float(map.get("Pq_RmsFundIC"))); baseRealDataSet.setI1C(map.get("Pq_RmsFundIC"));
//电压偏差 //电压偏差
if (conType == 0) { if (conType == 0) {
baseRealDataSet.setVDevA(FloatUtils.get2Float(map.get("Pq_UDevA"))); baseRealDataSet.setVDevA(map.get("Pq_UDevA"));
baseRealDataSet.setVDevB(FloatUtils.get2Float(map.get("Pq_UDevB"))); baseRealDataSet.setVDevB(map.get("Pq_UDevB"));
baseRealDataSet.setVDevC(FloatUtils.get2Float(map.get("Pq_UDevC"))); baseRealDataSet.setVDevC(map.get("Pq_UDevC"));
} else { } else {
baseRealDataSet.setVDevA(FloatUtils.get2Float(map.get("Pq_LUDevAB"))); baseRealDataSet.setVDevA(map.get("Pq_LUDevAB"));
baseRealDataSet.setVDevB(FloatUtils.get2Float(map.get("Pq_LUDevBC"))); baseRealDataSet.setVDevB(map.get("Pq_LUDevBC"));
baseRealDataSet.setVDevC(FloatUtils.get2Float(map.get("Pq_LUDevCA"))); baseRealDataSet.setVDevC(map.get("Pq_LUDevCA"));
} }
//基波电压相位 //基波电压相位
if (conType == 0) { if (conType == 0) {
baseRealDataSet.setV1AngA(FloatUtils.get2Float(map.get("Pq_FundUAngA"))); baseRealDataSet.setV1AngA(map.get("Pq_FundUAngA"));
baseRealDataSet.setV1AngB(FloatUtils.get2Float(map.get("Pq_FundUAngB"))); baseRealDataSet.setV1AngB(map.get("Pq_FundUAngB"));
baseRealDataSet.setV1AngC(FloatUtils.get2Float(map.get("Pq_FundUAngC"))); baseRealDataSet.setV1AngC(map.get("Pq_FundUAngC"));
} else { } else {
baseRealDataSet.setV1AngA(FloatUtils.get2Float(map.get("Pq_FundLUAngAB"))); baseRealDataSet.setV1AngA(map.get("Pq_FundLUAngAB"));
baseRealDataSet.setV1AngB(FloatUtils.get2Float(map.get("Pq_FundLUAngBC"))); baseRealDataSet.setV1AngB(map.get("Pq_FundLUAngBC"));
baseRealDataSet.setV1AngC(FloatUtils.get2Float(map.get("Pq_FundLUAngCA"))); baseRealDataSet.setV1AngC(map.get("Pq_FundLUAngCA"));
} }
//基波电流相位 //基波电流相位
baseRealDataSet.setI1AngA(FloatUtils.get2Float(map.get("Pq_FundIAngA"))); baseRealDataSet.setI1AngA(map.get("Pq_FundIAngA"));
baseRealDataSet.setI1AngB(FloatUtils.get2Float(map.get("Pq_FundIAngB"))); baseRealDataSet.setI1AngB(map.get("Pq_FundIAngB"));
baseRealDataSet.setI1AngC(FloatUtils.get2Float(map.get("Pq_FundIAngC"))); baseRealDataSet.setI1AngC(map.get("Pq_FundIAngC"));
//电压总谐波畸变率 //电压总谐波畸变率
if (conType == 0) { if (conType == 0) {
baseRealDataSet.setVThdA(FloatUtils.get2Float(map.get("Pq_ThdUA"))); baseRealDataSet.setVThdA(map.get("Pq_ThdUA"));
baseRealDataSet.setVThdB(FloatUtils.get2Float(map.get("Pq_ThdUB"))); baseRealDataSet.setVThdB(map.get("Pq_ThdUB"));
baseRealDataSet.setVThdC(FloatUtils.get2Float(map.get("Pq_ThdUC"))); baseRealDataSet.setVThdC(map.get("Pq_ThdUC"));
} else { } else {
baseRealDataSet.setVThdA(FloatUtils.get2Float(map.get("Pq_ThdLUAB"))); baseRealDataSet.setVThdA(map.get("Pq_ThdLUAB"));
baseRealDataSet.setVThdB(FloatUtils.get2Float(map.get("Pq_ThdLUBC"))); baseRealDataSet.setVThdB(map.get("Pq_ThdLUBC"));
baseRealDataSet.setVThdC(FloatUtils.get2Float(map.get("Pq_ThdLUCA"))); baseRealDataSet.setVThdC(map.get("Pq_ThdLUCA"));
} }
//电流总谐波畸变率 //电流总谐波畸变率
baseRealDataSet.setIThdA(FloatUtils.get2Float(map.get("Pq_ThdIA"))); baseRealDataSet.setIThdA(map.get("Pq_ThdIA"));
baseRealDataSet.setIThdB(FloatUtils.get2Float(map.get("Pq_ThdIB"))); baseRealDataSet.setIThdB(map.get("Pq_ThdIB"));
baseRealDataSet.setIThdC(FloatUtils.get2Float(map.get("Pq_ThdIC"))); baseRealDataSet.setIThdC(map.get("Pq_ThdIC"));
//电压不平衡度 //电压不平衡度
baseRealDataSet.setVUnbalance(FloatUtils.get2Float(map.get("Pq_UnbalNegUM"))); baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUM"));
//电流不平衡度 //电流不平衡度
baseRealDataSet.setIUnbalance(FloatUtils.get2Float(map.get("Pq_UnbalNegIM"))); baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIM"));
//有功功率 //有功功率
baseRealDataSet.setPA(FloatUtils.get2Float(map.get("Pq_PA"))); baseRealDataSet.setPA(map.get("Pq_PA"));
baseRealDataSet.setPB(FloatUtils.get2Float(map.get("Pq_PB"))); baseRealDataSet.setPB(map.get("Pq_PB"));
baseRealDataSet.setPC(FloatUtils.get2Float(map.get("Pq_PC"))); baseRealDataSet.setPC(map.get("Pq_PC"));
baseRealDataSet.setPTot(FloatUtils.get2Float(map.get("Pq_TotPM"))); baseRealDataSet.setPTot(map.get("Pq_TotPM"));
//无功功率 //无功功率
baseRealDataSet.setQA(FloatUtils.get2Float(map.get("Pq_QA"))); baseRealDataSet.setQA(map.get("Pq_QA"));
baseRealDataSet.setQB(FloatUtils.get2Float(map.get("Pq_QB"))); baseRealDataSet.setQB(map.get("Pq_QB"));
baseRealDataSet.setQC(FloatUtils.get2Float(map.get("Pq_QC"))); baseRealDataSet.setQC(map.get("Pq_QC"));
baseRealDataSet.setQTot(FloatUtils.get2Float(map.get("Pq_TotQM"))); baseRealDataSet.setQTot(map.get("Pq_TotQM"));
//视在功率 //视在功率
baseRealDataSet.setSA(FloatUtils.get2Float(map.get("Pq_SA"))); baseRealDataSet.setSA(map.get("Pq_SA"));
baseRealDataSet.setSB(FloatUtils.get2Float(map.get("Pq_SB"))); baseRealDataSet.setSB(map.get("Pq_SB"));
baseRealDataSet.setSC(FloatUtils.get2Float(map.get("Pq_SC"))); baseRealDataSet.setSC(map.get("Pq_SC"));
baseRealDataSet.setSTot(FloatUtils.get2Float(map.get("Pq_TotSM"))); baseRealDataSet.setSTot(map.get("Pq_TotSM"));
//视在功率因数 //视在功率因数
baseRealDataSet.setPfA(FloatUtils.get2Float(map.get("Pq_PFA"))); baseRealDataSet.setPfA(map.get("Pq_PFA"));
baseRealDataSet.setPfB(FloatUtils.get2Float(map.get("Pq_PFB"))); baseRealDataSet.setPfB(map.get("Pq_PFB"));
baseRealDataSet.setPfC(FloatUtils.get2Float(map.get("Pq_PFC"))); baseRealDataSet.setPfC(map.get("Pq_PFC"));
baseRealDataSet.setPfTot(FloatUtils.get2Float(map.get("Pq_TotPFM"))); baseRealDataSet.setPfTot(map.get("Pq_TotPFM"));
//位移功率因数 //位移功率因数
baseRealDataSet.setDpfA(FloatUtils.get2Float(map.get("Pq_DFA"))); baseRealDataSet.setDpfA(map.get("Pq_DFA"));
baseRealDataSet.setDpfB(FloatUtils.get2Float(map.get("Pq_DFB"))); baseRealDataSet.setDpfB(map.get("Pq_DFB"));
baseRealDataSet.setDpfC(FloatUtils.get2Float(map.get("Pq_DFC"))); baseRealDataSet.setDpfC(map.get("Pq_DFC"));
baseRealDataSet.setDpfTot(FloatUtils.get2Float(map.get("Pq_TotDFM"))); baseRealDataSet.setDpfTot(map.get("Pq_TotDFM"));
return baseRealDataSet; return baseRealDataSet;
} }
@@ -346,14 +345,14 @@ public class RtServiceImpl implements IRtService {
if (Objects.equals(item.getHarmName(),"Pq_RmsFundI")) { if (Objects.equals(item.getHarmName(),"Pq_RmsFundI")) {
if ("Secondary".equals(dataLevel)) { if ("Secondary".equals(dataLevel)) {
double data = item.getData() * ct; double data = item.getData() * ct;
harmRealDataSet.setData1(FloatUtils.get2Float((float)data)); harmRealDataSet.setData1((float)data);
} else { } else {
harmRealDataSet.setData1(FloatUtils.get2Float(item.getData())); harmRealDataSet.setData1(item.getData());
} }
} else if (Objects.equals(item.getHarmName(),"Pq_RmsFundU")) { } else if (Objects.equals(item.getHarmName(),"Pq_RmsFundU")) {
harmRealDataSet.setData1(FloatUtils.get2Float(item.getData())); harmRealDataSet.setData1(item.getData());
} else if (Objects.equals(item.getHarmName(),"Pq_ThdU")) { } else if (Objects.equals(item.getHarmName(),"Pq_ThdU")) {
harmRealDataSet.setData1(FloatUtils.get2Float(item.getData())); harmRealDataSet.setData1(item.getData());
} else { } else {
String numberStr = item.getHarmName().substring(item.getHarmName().lastIndexOf('_') + 1); String numberStr = item.getHarmName().substring(item.getHarmName().lastIndexOf('_') + 1);
String fieldName = "data" + numberStr; String fieldName = "data" + numberStr;
@@ -363,12 +362,12 @@ public class RtServiceImpl implements IRtService {
if (item.getHarmName().contains("Pq_HarmI_")) { if (item.getHarmName().contains("Pq_HarmI_")) {
if ("Secondary".equals(dataLevel)) { if ("Secondary".equals(dataLevel)) {
double data = item.getData() * ct; double data = item.getData() * ct;
field.set(harmRealDataSet,FloatUtils.get2Float((float)data)); field.set(harmRealDataSet,(float)data);
} else { } else {
field.set(harmRealDataSet,FloatUtils.get2Float(item.getData())); field.set(harmRealDataSet,item.getData());
} }
} else { } else {
field.set(harmRealDataSet,FloatUtils.get2Float(item.getData())); field.set(harmRealDataSet,item.getData());
} }
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@@ -378,26 +377,4 @@ public class RtServiceImpl implements IRtService {
return harmRealDataSet; return harmRealDataSet;
} }
private Set<String> convertObjectToSetSafe(Object obj) {
if (obj == null) {
return new HashSet<>();
}
if (obj instanceof Set) {
// 类型安全的转换
Set<?> rawSet = (Set<?>) obj;
return rawSet.stream()
.filter(Objects::nonNull)
.map(Object::toString)
.collect(Collectors.toSet());
} else if (obj instanceof Collection) {
return ((Collection<?>) obj).stream()
.filter(Objects::nonNull)
.map(Object::toString)
.collect(Collectors.toSet());
} else {
log.warn("Redis中的对象类型不是Set或Collection: {}", obj.getClass().getName());
return new HashSet<>();
}
}
} }