diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java index 58b2e4e..f0d7b95 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDevModelServiceImpl.java @@ -399,7 +399,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setStatMethod(apf.getStatMethod()); eleEpdPqdParam.setDataType(id); if (Objects.isNull(apf.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(apf.getPhase()); } @@ -433,7 +433,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setEventType(evt.getEventType()); eleEpdPqdParam.setDataType(id); if (Objects.isNull(evt.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(evt.getPhase()); } @@ -494,7 +494,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { //告警code,到时候推送给用户告警码+事件时间 eleEpdPqdParam.setDefaultValue(alm.getCode()); if (Objects.isNull(alm.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(alm.getPhase()); } @@ -521,7 +521,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setTranRule(sts.getTranRule()); eleEpdPqdParam.setDataType(id); if (Objects.isNull(sts.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(sts.getPhase()); } @@ -553,7 +553,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setDefaultValue(parm.getDefaultValue()); eleEpdPqdParam.setDataType(id); if (Objects.isNull(parm.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(parm.getPhase()); } @@ -582,7 +582,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setUnit(set.getUnit()); eleEpdPqdParam.setDataType(id); if (Objects.isNull(set.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(set.getPhase()); } @@ -614,7 +614,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setMinNum(ctrl.getMinNum()); eleEpdPqdParam.setDataType(id); if (Objects.isNull(ctrl.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(ctrl.getPhase()); } @@ -638,7 +638,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setSort(epd.getIdx()); eleEpdPqdParam.setType(epd.getType()); if (Objects.isNull(epd.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(epd.getPhase()); } @@ -674,7 +674,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setSort(pqd.getIdx()); eleEpdPqdParam.setType(pqd.getType()); if (Objects.isNull(pqd.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(pqd.getPhase()); } @@ -710,7 +710,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setSort(bmd.getIdx()); eleEpdPqdParam.setType(bmd.getType()); if (Objects.isNull(bmd.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(bmd.getPhase()); } @@ -741,7 +741,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setTranFlag(di.getTranFlag()); eleEpdPqdParam.setTranRule(di.getTranRule()); if (Objects.isNull(di.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(di.getPhase()); } @@ -767,7 +767,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setCurSts(dto.getCurSts()); eleEpdPqdParam.setCtlSts(dto.getCtlSts()); if (Objects.isNull(dto.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(dto.getPhase()); } @@ -797,7 +797,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setUnit(inSet.getUnit()); eleEpdPqdParam.setDataType(id); if (Objects.isNull(inSet.getPhase())){ - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); } else { eleEpdPqdParam.setPhase(inSet.getPhase()); } @@ -820,7 +820,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { eleEpdPqdParam.setShowName(wave.getName()); eleEpdPqdParam.setSort(wave.getIdx()); eleEpdPqdParam.setDataType(id); - eleEpdPqdParam.setPhase("M"); + eleEpdPqdParam.setPhase("T"); eleEpdPqdParam.setClassId(classId); EleEpdPqd po = epdFeignClient.add(eleEpdPqdParam).getData(); if (CollectionUtil.isNotEmpty(wave.getParam())){ @@ -1025,91 +1025,91 @@ public class CsDevModelServiceImpl implements ICsDevModelService { List apfList = templateDto.getApfDto(); ApfDto apfDto = apfList.get(idx); name = apfDto.getName(); - phase = apfDto.getPhase() == null ? "M":apfDto.getPhase(); + phase = apfDto.getPhase() == null ? "T":apfDto.getPhase(); break; case DataModel.EVT: log.info("查询evt字典数据"); List evtList = templateDto.getEvtDto(); EvtDto evtDto = evtList.get(idx); name = evtDto.getName(); - phase = evtDto.getPhase() == null ? "M":evtDto.getPhase(); + phase = evtDto.getPhase() == null ? "T":evtDto.getPhase(); break; case DataModel.ALM: log.info("查询alm字典数据"); List almList = templateDto.getAlmDto(); AlmDto almDto = almList.get(idx); name = almDto.getName(); - phase = almDto.getPhase() == null ? "M":almDto.getPhase(); + phase = almDto.getPhase() == null ? "T":almDto.getPhase(); break; case DataModel.STS: log.info("查询sts字典数据"); List stsList = templateDto.getStsDto(); StsDto stsDto = stsList.get(idx); name = stsDto.getName(); - phase = stsDto.getPhase() == null ? "M":stsDto.getPhase(); + phase = stsDto.getPhase() == null ? "T":stsDto.getPhase(); break; case DataModel.PARM: log.info("查询parm字典数据"); List parmList = templateDto.getParmDto(); ParmDto parmDto = parmList.get(idx); name = parmDto.getName(); - phase = parmDto.getPhase() == null ? "M":parmDto.getPhase(); + phase = parmDto.getPhase() == null ? "T":parmDto.getPhase(); break; case DataModel.SET: log.info("查询set字典数据"); List setList = templateDto.getSetDto(); SetDto setDto = setList.get(idx); name = setDto.getName(); - phase = setDto.getPhase() == null ? "M":setDto.getPhase(); + phase = setDto.getPhase() == null ? "T":setDto.getPhase(); break; case DataModel.CTRL: log.info("查询ctrl字典数据"); List ctrlList = templateDto.getCtrlDto(); CtrlDto ctrlDto = ctrlList.get(idx); name = ctrlDto.getName(); - phase = ctrlDto.getPhase() == null ? "M":ctrlDto.getPhase(); + phase = ctrlDto.getPhase() == null ? "T":ctrlDto.getPhase(); break; case DataModel.EPD: log.info("查询epd字典数据"); List epdList = templateDto.getEpdDto(); EpdPqdDto epdDto = epdList.get(idx); name = epdDto.getName(); - phase = epdDto.getPhase() == null ? "M":epdDto.getPhase(); + phase = epdDto.getPhase() == null ? "T":epdDto.getPhase(); break; case DataModel.PQD: log.info("查询pqd字典数据"); List pqdList = templateDto.getPqdDto(); EpdPqdDto pqdDto = pqdList.get(idx); name = pqdDto.getName(); - phase = pqdDto.getPhase() == null ? "M":pqdDto.getPhase(); + phase = pqdDto.getPhase() == null ? "T":pqdDto.getPhase(); break; case DataModel.BMD: log.info("查询bmd字典数据"); List bmdList = templateDto.getBmdDto(); BmdDto bmdDto = bmdList.get(idx); name = bmdDto.getName(); - phase = bmdDto.getPhase() == null ? "M":bmdDto.getPhase(); + phase = bmdDto.getPhase() == null ? "T":bmdDto.getPhase(); break; case DataModel.DI: log.info("查询di字典数据"); List diList = templateDto.getDiDto(); DiDto diDto = diList.get(idx); name = diDto.getName(); - phase = diDto.getPhase() == null ? "M":diDto.getPhase(); + phase = diDto.getPhase() == null ? "T":diDto.getPhase(); break; case DataModel.DO: log.info("查询do字典数据"); List doList = templateDto.getDoDto(); DoDto doDto = doList.get(idx); name = doDto.getName(); - phase = doDto.getPhase() == null ? "M":doDto.getPhase(); + phase = doDto.getPhase() == null ? "T":doDto.getPhase(); break; case DataModel.INSET: log.info("查询inset字典数据"); List inSetList = templateDto.getInSetDto(); InSetDto inSetDto = inSetList.get(idx); name = inSetDto.getName(); - phase = inSetDto.getPhase() == null ? "M":inSetDto.getPhase(); + phase = inSetDto.getPhase() == null ? "T":inSetDto.getPhase(); break; default: break; @@ -1119,7 +1119,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { log.info("指标名称:"+name+",数据类型:"+id+",相别:"+phase); throw new BusinessException(AccessResponseEnum.DICT_MISSING); } - // M 代表没有数据,因为influxDB要录入数据,此字段是主键,给个默认值 + // T 代表没有数据,因为influxDB要录入数据,此字段是主键,给个默认值 if (!Objects.isNull(eleEpdPqd.getHarmStart()) && !Objects.isNull(eleEpdPqd.getHarmEnd())){ if (Objects.equals(eleEpdPqd.getHarmStart(),1)){ for (int i = eleEpdPqd.getHarmStart(); i <= eleEpdPqd.getHarmEnd(); i++) { @@ -1142,7 +1142,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { CsDataArray.setDataId(eleEpdPqd.getId()); CsDataArray.setName(eleEpdPqd.getName() + "_" + i); CsDataArray.setAnotherName((i-0.5) + "次" +eleEpdPqd.getShowName()); - CsDataArray.setStatMethod("M"); + CsDataArray.setStatMethod("T"); CsDataArray.setDataType(eleEpdPqd.getType()); CsDataArray.setPhase(eleEpdPqd.getPhase()); list.add(CsDataArray); @@ -1169,7 +1169,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { CsDataArray.setDataId(eleEpdPqd.getId()); CsDataArray.setName(eleEpdPqd.getName() + "_" + i); CsDataArray.setAnotherName(i + "次" +eleEpdPqd.getShowName()); - CsDataArray.setStatMethod("M"); + CsDataArray.setStatMethod("T"); CsDataArray.setDataType(eleEpdPqd.getType()); CsDataArray.setPhase(eleEpdPqd.getPhase()); list.add(CsDataArray); @@ -1196,7 +1196,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService { CsDataArray.setDataId(eleEpdPqd.getId()); CsDataArray.setName(eleEpdPqd.getName()); CsDataArray.setAnotherName(eleEpdPqd.getShowName()); - CsDataArray.setStatMethod("M"); + CsDataArray.setStatMethod("T"); CsDataArray.setDataType(eleEpdPqd.getType()); CsDataArray.setPhase(eleEpdPqd.getPhase()); list.add(CsDataArray); diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java index 28ca5c6..7f3ea69 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsDeviceServiceImpl.java @@ -86,6 +86,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService { private final UserFeignClient userFeignClient; private final EngineeringFeignClient engineeringFeignClient; private final AppProjectFeignClient appProjectFeignClient; + private final DeviceMessageFeignClient deviceMessageFeignClient; @Override @Transactional(rollbackFor = {Exception.class}) @@ -289,22 +290,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService { csLineService.saveBatch(csLinePoList); redisUtil.saveByKeyWithExpire("accessLineInfo:" + devAccessParam.getNDid(),csLinePoList,30L); //缓存监测点信息 - Map map = new HashMap<>(); - for (CsLinePO item : csLinePoList) { - if (Objects.isNull(item.getPosition())){ - map.put(item.getClDid(),item.getLineId()); - } else { - DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData(); - if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){ - map.put(0,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){ - map.put(1,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){ - map.put(2,item.getLineId()); - } - } - } - redisUtil.saveByKey(AppRedisKey.LINE_POSITION+devAccessParam.getNDid(),map); + deviceMessageFeignClient.getLineInfo(devAccessParam.getNDid(),csLinePoList); //4.监测点拓扑图表录入关系 appLineTopologyDiagramService.saveBatch(appLineTopologyDiagramPoList); //5.绑定装置和人的关系 @@ -477,22 +463,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService { csLineService.saveBatch(csLinePoList); redisUtil.saveByKeyWithExpire("accessLineInfo:" + nDid,csLinePoList,30L); //缓存监测点信息 - Map map = new HashMap<>(); - for (CsLinePO item : csLinePoList) { - if (Objects.isNull(item.getPosition())){ - map.put(item.getClDid(),item.getLineId()); - } else { - DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData(); - if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){ - map.put(0,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){ - map.put(1,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){ - map.put(2,item.getLineId()); - } - } - } - redisUtil.saveByKey(AppRedisKey.LINE_POSITION+nDid,map); + deviceMessageFeignClient.getLineInfo(nDid,csLinePoList); //4.生成装置和模板的关系表 CsDevModelRelationAddParm csDevModelRelationAddParm = new CsDevModelRelationAddParm(); csDevModelRelationAddParm.setDevId(vo.getId()); @@ -635,23 +606,7 @@ public class CsDeviceServiceImpl implements ICsDeviceService { csLineService.saveBatch(csLinePoList); redisUtil.saveByKeyWithExpire("accessLineInfo:" + nDid,csLinePoList,30L); //缓存监测点信息 - //缓存监测点信息 - Map map = new HashMap<>(); - for (CsLinePO item : csLinePoList) { - if (Objects.isNull(item.getPosition())){ - map.put(item.getClDid(),item.getLineId()); - } else { - DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData(); - if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){ - map.put(0,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){ - map.put(1,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){ - map.put(2,item.getLineId()); - } - } - } - redisUtil.saveByKey(AppRedisKey.LINE_POSITION+nDid,map); + deviceMessageFeignClient.getLineInfo(nDid,csLinePoList); //4.生成装置和模板的关系表 CsDevModelRelationAddParm csDevModelRelationAddParm = new CsDevModelRelationAddParm(); csDevModelRelationAddParm.setDevId(vo.getId()); @@ -934,32 +889,9 @@ public class CsDeviceServiceImpl implements ICsDeviceService { csDevModelRelationService.addRelation(po); modelMap.put(item.getType(), item.getModelId()); } - List lineList; Object object = redisUtil.getObjectByKey("accessLineInfo:" + nDid); if (Objects.isNull(object)) { - Map map = new HashMap<>(); - lineList = csLineFeignClient.findByNdid(nDid).getData(); - for (CsLinePO item : lineList) { - if (item.getClDid() == 0) { - updateLineIds(modelMap.get(0), item.getClDid(), nDid); - } else { - updateLineIds(modelMap.get(1), item.getClDid(), nDid); - } - //缓存监测点信息 - if (Objects.isNull(item.getPosition())){ - map.put(item.getClDid(),item.getLineId()); - } else { - DictData dictData = dicDataFeignClient.getDicDataById(item.getPosition()).getData(); - if (Objects.equals(dictData.getCode(), DicDataEnum.OUTPUT_SIDE.getCode())){ - map.put(0,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.GRID_SIDE.getCode())){ - map.put(1,item.getLineId()); - } else if (Objects.equals(dictData.getCode(), DicDataEnum.LOAD_SIDE.getCode())){ - map.put(2,item.getLineId()); - } - } - } - redisUtil.saveByKey(AppRedisKey.LINE_POSITION+nDid,map); + deviceMessageFeignClient.getLineInfo(nDid,null); } publisher.send("/Pfm/DevCmd/"+version+"/"+nDid, new Gson().toJson(getJson(mid,TypeEnum.TYPE_5.getCode())), 1, false); result = true; diff --git a/iot-analysis/analysis-rt/rt-boot/src/main/java/com/njcn/rt/service/impl/RtServiceImpl.java b/iot-analysis/analysis-rt/rt-boot/src/main/java/com/njcn/rt/service/impl/RtServiceImpl.java index 8329a88..9177abb 100644 --- a/iot-analysis/analysis-rt/rt-boot/src/main/java/com/njcn/rt/service/impl/RtServiceImpl.java +++ b/iot-analysis/analysis-rt/rt-boot/src/main/java/com/njcn/rt/service/impl/RtServiceImpl.java @@ -78,6 +78,8 @@ public class RtServiceImpl implements IRtService { AppAutoDataMessage.DataArray item = appAutoDataMessage.getMsg().getDataArray().get(0); //获取设备类型 CsEquipmentDeliveryPO po1 =equipmentFeignClient.getDevByLineId(lineId).getData(); + Float ct = po.getCtRatio().floatValue() / (po.getCt2Ratio() == null ? 1.0f:po.getCt2Ratio().floatValue()); + Float pt = po.getPtRatio().floatValue() / (po.getPt2Ratio() == null ? 1.0f:po.getPt2Ratio().floatValue()); //fixme 这边先根据数据集的名称来返回对应实体,这边感觉不太合适,后期有好方案再调整 //基础数据 if (dataSet.getName().contains("Ds$Pqd$Rt$Basic$")) { @@ -88,8 +90,8 @@ public class RtServiceImpl implements IRtService { BaseRealDataSet baseRealDataSet = assembleData(dataArrayList,item,po.getConType(),po1.getDevAccessMethod()); baseRealDataSet.setUserId(userId); baseRealDataSet.setLineId(lineId); - baseRealDataSet.setPt(po.getPtRatio().floatValue()); - baseRealDataSet.setCt(po.getCtRatio().floatValue()); + baseRealDataSet.setPt(pt); + baseRealDataSet.setCt(ct); baseRealDataSet.setDataLevel(dataSet.getDataLevel()); long timestamp = item.getDataTimeSec() - 8*3600; baseRealDataSet.setDataTime(getTime(timestamp)); @@ -104,8 +106,8 @@ public class RtServiceImpl implements IRtService { BaseRealDataSet baseRealDataSet = assembleData(dataArrayList,item,po.getConType(),po1.getDevAccessMethod()); baseRealDataSet.setUserId(userId); baseRealDataSet.setLineId(lineId); - baseRealDataSet.setPt(po.getPtRatio().floatValue()); - baseRealDataSet.setCt(po.getCtRatio().floatValue()); + baseRealDataSet.setPt(pt); + baseRealDataSet.setCt(ct); baseRealDataSet.setDataLevel(dataSet.getDataLevel()); long timestamp = item.getDataTimeSec(); baseRealDataSet.setDataTime(getTime(timestamp)); @@ -123,8 +125,8 @@ public class RtServiceImpl implements IRtService { HarmRealDataSet harmRealDataSet = harmData(dataArrayList,item,dataSet.getDataLevel(),po.getCtRatio()); harmRealDataSet.setUserId(userId); harmRealDataSet.setLineId(lineId); - harmRealDataSet.setPt(po.getPtRatio().floatValue()); - harmRealDataSet.setCt(po.getCtRatio().floatValue()); + harmRealDataSet.setPt(pt); + harmRealDataSet.setCt(ct); harmRealDataSet.setDataLevel(dataSet.getDataLevel()); if (ObjectUtil.isNotNull(po.getLineNo())) { timestamp = item.getDataTimeSec(); @@ -223,9 +225,9 @@ public class RtServiceImpl implements IRtService { public BaseRealDataSet channelData(Map map,Integer conType) { BaseRealDataSet baseRealDataSet = new BaseRealDataSet(); //频率 - baseRealDataSet.setFreq(map.get("Pq_FreqM")); + baseRealDataSet.setFreq(map.get("Pq_FreqT")); //频率偏差 - baseRealDataSet.setFreqDev(map.get("Pq_FreqDevM")); + baseRealDataSet.setFreqDev(map.get("Pq_FreqDevT")); //判断监测点的接线方式,不同接线方式电压有效值取值不同 //星型-相电压 角形、V型-线电压 //电压有效值 @@ -295,43 +297,43 @@ public class RtServiceImpl implements IRtService { baseRealDataSet.setIThdB(map.get("Pq_ThdIB")); baseRealDataSet.setIThdC(map.get("Pq_ThdIC")); //电压不平衡度 - baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUM")); + baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUT")); //电流不平衡度 - baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIM")); + baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIT")); //有功功率 baseRealDataSet.setPA(map.get("Pq_PA")); baseRealDataSet.setPB(map.get("Pq_PB")); baseRealDataSet.setPC(map.get("Pq_PC")); - baseRealDataSet.setPTot(map.get("Pq_TotPM")); + baseRealDataSet.setPTot(map.get("Pq_TotPT")); //无功功率 baseRealDataSet.setQA(map.get("Pq_QA")); baseRealDataSet.setQB(map.get("Pq_QB")); baseRealDataSet.setQC(map.get("Pq_QC")); - baseRealDataSet.setQTot(map.get("Pq_TotQM")); + baseRealDataSet.setQTot(map.get("Pq_TotQT")); //视在功率 baseRealDataSet.setSA(map.get("Pq_SA")); baseRealDataSet.setSB(map.get("Pq_SB")); baseRealDataSet.setSC(map.get("Pq_SC")); - baseRealDataSet.setSTot(map.get("Pq_TotSM")); + baseRealDataSet.setSTot(map.get("Pq_TotST")); //视在功率因数 baseRealDataSet.setPfA(map.get("Pq_PFA")); baseRealDataSet.setPfB(map.get("Pq_PFB")); baseRealDataSet.setPfC(map.get("Pq_PFC")); - baseRealDataSet.setPfTot(map.get("Pq_TotPFM")); + baseRealDataSet.setPfTot(map.get("Pq_TotPFT")); //位移功率因数 baseRealDataSet.setDpfA(map.get("Pq_DFA")); baseRealDataSet.setDpfB(map.get("Pq_DFB")); baseRealDataSet.setDpfC(map.get("Pq_DFC")); - baseRealDataSet.setDpfTot(map.get("Pq_TotDFM")); + baseRealDataSet.setDpfTot(map.get("Pq_TotDFT")); return baseRealDataSet; } public BaseRealDataSet channelData2(Map map) { BaseRealDataSet baseRealDataSet = new BaseRealDataSet(); //频率 - baseRealDataSet.setFreq(map.get("Pq_FreqM")); + baseRealDataSet.setFreq(map.get("Pq_FreqT")); //频率偏差 - baseRealDataSet.setFreqDev(map.get("Pq_FreqDevM")); + baseRealDataSet.setFreqDev(map.get("Pq_FreqDevT")); //判断监测点的接线方式,不同接线方式电压有效值取值不同 //星型-相电压 角形、V型-线电压 //电压有效值 @@ -371,34 +373,34 @@ public class RtServiceImpl implements IRtService { baseRealDataSet.setIThdB(map.get("Pq_ThdIB")); baseRealDataSet.setIThdC(map.get("Pq_ThdIC")); //电压不平衡度 - baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUM")); + baseRealDataSet.setVUnbalance(map.get("Pq_UnbalNegUT")); //电流不平衡度 - baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIM")); + baseRealDataSet.setIUnbalance(map.get("Pq_UnbalNegIT")); //有功功率 baseRealDataSet.setPA(map.get("Pq_PA")); baseRealDataSet.setPB(map.get("Pq_PB")); baseRealDataSet.setPC(map.get("Pq_PC")); - baseRealDataSet.setPTot(map.get("Pq_TotPM")); + baseRealDataSet.setPTot(map.get("Pq_TotPT")); //无功功率 baseRealDataSet.setQA(map.get("Pq_QA")); baseRealDataSet.setQB(map.get("Pq_QB")); baseRealDataSet.setQC(map.get("Pq_QC")); - baseRealDataSet.setQTot(map.get("Pq_TotQM")); + baseRealDataSet.setQTot(map.get("Pq_TotQT")); //视在功率 baseRealDataSet.setSA(map.get("Pq_SA")); baseRealDataSet.setSB(map.get("Pq_SB")); baseRealDataSet.setSC(map.get("Pq_SC")); - baseRealDataSet.setSTot(map.get("Pq_TotSM")); + baseRealDataSet.setSTot(map.get("Pq_TotST")); //视在功率因数 baseRealDataSet.setPfA(map.get("Pq_PFA")); baseRealDataSet.setPfB(map.get("Pq_PFB")); baseRealDataSet.setPfC(map.get("Pq_PFC")); - baseRealDataSet.setPfTot(map.get("Pq_TotPFM")); + baseRealDataSet.setPfTot(map.get("Pq_TotPFT")); //位移功率因数 baseRealDataSet.setDpfA(map.get("Pq_DFA")); baseRealDataSet.setDpfB(map.get("Pq_DFB")); baseRealDataSet.setDpfC(map.get("Pq_DFC")); - baseRealDataSet.setDpfTot(map.get("Pq_TotDFM")); + baseRealDataSet.setDpfTot(map.get("Pq_TotDFT")); return baseRealDataSet; } diff --git a/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java b/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java index 4db2b56..98129d5 100644 --- a/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java +++ b/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java @@ -11,6 +11,7 @@ import com.njcn.access.utils.ChannelObjectUtil; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.utils.PubUtils; import com.njcn.csdevice.api.CsCommunicateFeignClient; +import com.njcn.csdevice.api.CsLineFeignClient; import com.njcn.csdevice.api.DataArrayFeignClient; import com.njcn.csdevice.api.DeviceMessageFeignClient; import com.njcn.csdevice.pojo.dto.PqsCommunicateDto; @@ -61,6 +62,7 @@ public class StatServiceImpl implements IStatService { private final CsDeviceFeignClient csDeviceFeignClient; private final DeviceMessageFeignClient deviceMessageFeignClient; private final CsCommunicateFeignClient csCommunicateFeignClient; + private final CsLineFeignClient csLineFeignClient; @Override @Transactional(rollbackFor = Exception.class) @@ -82,7 +84,7 @@ public class StatServiceImpl implements IStatService { String lineId = null; Object object1 = redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appAutoDataMessage.getId()); if (Objects.isNull(object1)){ - deviceMessageFeignClient.getLineInfo(appAutoDataMessage.getId()); + deviceMessageFeignClient.getLineInfo(appAutoDataMessage.getId(),null); } //获取当前设备信息判断装置型号,来筛选监测点 List poList = channelObjectUtil.objectToList(redisUtil.getObjectByKey(AppRedisKey.DEVICE_LIST),CsEquipmentDeliveryPO.class); @@ -109,6 +111,7 @@ public class StatServiceImpl implements IStatService { //获取当前设备信息 if (CollectionUtil.isNotEmpty(list)) { + Map map = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.ELE_EPD_PQD)), Map.class); List recordList = new ArrayList<>(); for (AppAutoDataMessage.DataArray item : list) { switch (item.getDataAttr()) { @@ -141,7 +144,7 @@ public class StatServiceImpl implements IStatService { } else { dataArrayList = objectToList(object); } - List result = assembleData(lineId,dataArrayList,item,appAutoDataMessage.getMsg().getClDid(),dataArrayParam.getStatMethod(),po.getProcess(),code,po.getDevAccessMethod()); + List result = assembleData(lineId,dataArrayList,item,appAutoDataMessage.getMsg().getClDid(),dataArrayParam.getStatMethod(),po.getProcess(),code,po.getDevAccessMethod(),map); recordList.addAll(result); //获取时间 boolean timeFlag = Objects.equals(DicDataEnum.DEV_CLD.getCode(), code) && Objects.equals(po.getDevAccessMethod(), "CLD"); @@ -190,7 +193,7 @@ public class StatServiceImpl implements IStatService { /** * influxDB数据组装 */ - public List assembleData(String lineId,List dataArrayList,AppAutoDataMessage.DataArray item,Integer clDid,String statMethod,Integer process,String devType,String accessMethod) { + public List assembleData(String lineId,List dataArrayList,AppAutoDataMessage.DataArray item,Integer clDid,String statMethod,Integer process,String devType,String accessMethod, Map map) { List records = new ArrayList(); List floats = PubUtils.byteArrayToFloatList(Base64.getDecoder().decode(item.getData())); if (CollectionUtil.isEmpty(floats)){ @@ -199,14 +202,10 @@ public class StatServiceImpl implements IStatService { if (!Objects.equals(dataArrayList.size(),floats.size())){ throw new BusinessException(StatResponseEnum.ARRAY_DATA_NOT_MATCH); } - Map map = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.ELE_EPD_PQD)), Map.class); boolean flag = Objects.equals(DicDataEnum.DEV_CLD.getCode(), devType) && Objects.equals(accessMethod, "CLD"); //fixme 捂脸设备上送的是北京时间,时序数据库录入时 需要utc时间,减去8小时 long originalTimeSec = flag ? item.getDataTimeSec() : item.getDataTimeSec() - 8 * 3600; - if (originalTimeSec < 0) { - System.out.println("originalTimeSec==:" + originalTimeSec); - } for (int i = 0; i < dataArrayList.size(); i++) { String tableName = map.get(dataArrayList.get(i).getName()); @@ -227,7 +226,11 @@ public class StatServiceImpl implements IStatService { tags.put(InfluxDBTableConstant.LINE_ID,lineId); tags.put(InfluxDBTableConstant.PHASIC_TYPE,dataArrayList.get(i).getPhase()); tags.put(InfluxDBTableConstant.VALUE_TYPE,statMethod.toUpperCase()); - tags.put(InfluxDBTableConstant.QUALITY_FLAG,"0"); + if (Objects.isNull(item.getDataTag())) { + tags.put(InfluxDBTableConstant.QUALITY_FLAG,"0"); + } else { + tags.put(InfluxDBTableConstant.QUALITY_FLAG,String.valueOf(item.getDataTag())); + } Map fields = new HashMap<>(); //这边特殊处理,如果数据为3.14159,则将数据置为null if (Objects.isNull(dataArrayList.get(i).getInfluxDbName())) { @@ -237,7 +240,6 @@ public class StatServiceImpl implements IStatService { } fields.put(InfluxDBTableConstant.CL_DID,clDid.toString()); fields.put(InfluxDBTableConstant.PROCESS,process.toString()); - fields.put(InfluxDBTableConstant.IS_ABNORMAL,item.getDataTag()); Point point = influxDbUtils.pointBuilder(tableName, adjustedTimeSec, TimeUnit.SECONDS, tags, fields); BatchPoints batchPoints = BatchPoints.database(influxDbUtils.getDbName()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); @@ -258,4 +260,5 @@ public class StatServiceImpl implements IStatService { } return urlList; } + } diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java index d36c66d..e8b8454 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java @@ -51,7 +51,7 @@ public class CsWaveAnalysisServiceImpl implements ICsWaveAnalysisService { List list = new ArrayList<>(); Object object1 = redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId()); if (Objects.isNull(object1)){ - deviceMessageFeignClient.getLineInfo(appEventMessage.getId()); + deviceMessageFeignClient.getLineInfo(appEventMessage.getId(),null); } //获取装置id String deviceId = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData().getId(); diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java index 0c265aa..17f6957 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java @@ -96,7 +96,7 @@ public class EventServiceImpl implements IEventService { } //判断监测点是否存在 if (Objects.isNull(object1)){ - deviceMessageFeignClient.getLineInfo(appEventMessage.getId()); + deviceMessageFeignClient.getLineInfo(appEventMessage.getId(),null); } //获取装置id CsEquipmentDeliveryPO po = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData();