diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLineFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLineFeignClient.java index 0d65192..0cfbc09 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLineFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsLineFeignClient.java @@ -19,7 +19,6 @@ import java.util.List; @FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csline", fallbackFactory = CsLineClientFallbackFactory.class,contextId = "csline") public interface CsLineFeignClient { - @PostMapping("/queryLineById") HttpResult> queryLineById(@RequestParam("ids") List ids ); @@ -40,4 +39,7 @@ public interface CsLineFeignClient { @PostMapping("/updateIds") HttpResult updateIds(@RequestBody @Validated CsLineParam csLineParam); + + @PostMapping("/getById") + HttpResult getById(@RequestParam("lineId") String lineId); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataArrayFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataArrayFeignClient.java index 459921f..0e5076d 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataArrayFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataArrayFeignClient.java @@ -5,7 +5,6 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.csdevice.api.fallback.DataArrayFeignClientFallbackFactory; import com.njcn.csdevice.pojo.param.DataArrayParam; import com.njcn.csdevice.pojo.po.CsDataArray; -import com.njcn.csdevice.pojo.po.CsDataSet; import com.njcn.csdevice.pojo.vo.DataArrayTreeVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -22,13 +21,14 @@ import java.util.List; public interface DataArrayFeignClient { @PostMapping("/getArrayBySet") - HttpResult> getArrayBySet(@RequestBody List setList); + HttpResult> getArrayBySet(@RequestParam("dataSet") String dataSet); @PostMapping("/getDataArray") HttpResult> getDataArray(@RequestBody List dataSetList); @PostMapping("/getDataArrayById") HttpResult> getDataArrayById(@RequestParam("pid") String pid, @RequestParam("name") String name); + @PostMapping("/getDataArrayByIds") HttpResult> getDataArrayByIds(@RequestParam("ids") List ids); diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataSetFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataSetFeignClient.java index 661d0be..37632ac 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataSetFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/DataSetFeignClient.java @@ -1,10 +1,17 @@ package com.njcn.csdevice.api; +import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; import com.njcn.csdevice.api.fallback.DataSetFeignClientFallbackFactory; import com.njcn.csdevice.pojo.po.CsDataSet; import com.njcn.csdevice.pojo.vo.LineTargetVO; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -31,5 +38,13 @@ public interface DataSetFeignClient { @PostMapping("/getDataSetBySetIds") HttpResult> getDataSetBySetIds(@RequestBody List lineIds); + @PostMapping("/getBaseDataSet") + HttpResult getBaseDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev); + + @PostMapping("/getHarmonicDataSet") + HttpResult getHarmonicDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev,@RequestParam("target") Integer target); + + @PostMapping("/getDataSetByIdx") + HttpResult getDataSetByIdx(@RequestParam("modelId") String modelId,@RequestParam("idx") Integer idx); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLineClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLineClientFallbackFactory.java index 0d22e37..7c9f35e 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLineClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsLineClientFallbackFactory.java @@ -28,7 +28,6 @@ public class CsLineClientFallbackFactory implements FallbackFactory finalExceptionEnum = exceptionEnum; return new CsLineFeignClient() { - @Override public HttpResult> queryLineById(List ids) { log.error("{}异常,降级处理,异常为:{}","查询监测点详情异常",cause.toString()); @@ -69,6 +68,12 @@ public class CsLineClientFallbackFactory implements FallbackFactory getById(String lineId) { + log.error("{}异常,降级处理,异常为:{}","根据监测点id获取监测点详情",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataArrayFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataArrayFeignClientFallbackFactory.java index d2f135f..717dd7c 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataArrayFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataArrayFeignClientFallbackFactory.java @@ -6,7 +6,6 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.csdevice.api.DataArrayFeignClient; import com.njcn.csdevice.pojo.param.DataArrayParam; import com.njcn.csdevice.pojo.po.CsDataArray; -import com.njcn.csdevice.pojo.po.CsDataSet; import com.njcn.csdevice.pojo.vo.DataArrayTreeVO; import com.njcn.csdevice.utils.CsDeviceEnumUtil; import feign.hystrix.FallbackFactory; @@ -36,7 +35,7 @@ public class DataArrayFeignClientFallbackFactory implements FallbackFactory finalExceptionEnum = exceptionEnum; return new DataArrayFeignClient() { @Override - public HttpResult> getArrayBySet(List setList) { + public HttpResult> getArrayBySet(String dataSet) { log.error("{}异常,降级处理,异常为:{}","根据数据集获取详细数据失败",cause.toString()); throw new BusinessException(finalExceptionEnum); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataSetFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataSetFeignClientFallbackFactory.java index b315e16..e59f742 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataSetFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/DataSetFeignClientFallbackFactory.java @@ -56,6 +56,24 @@ public class DataSetFeignClientFallbackFactory implements FallbackFactory getBaseDataSet(String modelId, Integer clDev) { + log.error("{}异常,降级处理,异常为:{}","获取实时数据-基础数据集",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult getHarmonicDataSet(String modelId, Integer clDev, Integer target) { + log.error("{}异常,降级处理,异常为:{}","获取实时数据-谐波数据集",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult getDataSetByIdx(String modelId, Integer idx) { + log.error("{}异常,降级处理,异常为:{}","根据idx获取数据集数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsDataSetController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsDataSetController.java index 28c3ea8..07f31e9 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsDataSetController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsDataSetController.java @@ -83,5 +83,45 @@ public class CsDataSetController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getBaseDataSet") + @ApiOperation("获取实时数据-基础数据集") + @ApiImplicitParams({ + @ApiImplicitParam(name = "modelId", value = "模板id", required = true), + @ApiImplicitParam(name = "clDev", value = "逻辑子设备标识", required = true) + }) + public HttpResult getBaseDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev){ + String methodDescribe = getMethodDescribe("getBaseDataSet"); + CsDataSet dataSet = csDataSetService.getBaseDataSet(modelId,clDev); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataSet, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getHarmonicDataSet") + @ApiOperation("获取实时数据-谐波数据集") + @ApiImplicitParams({ + @ApiImplicitParam(name = "modelId", value = "模板id", required = true), + @ApiImplicitParam(name = "clDev", value = "逻辑子设备标识", required = true), + @ApiImplicitParam(name = "target", value = "指标序号", required = true), + }) + public HttpResult getHarmonicDataSet(@RequestParam("modelId") String modelId,@RequestParam("clDev") Integer clDev,@RequestParam("target") Integer target){ + String methodDescribe = getMethodDescribe("getHarmonicDataSet"); + CsDataSet dataSet = csDataSetService.getHarmonicDataSet(modelId,clDev,target); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataSet, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getDataSetByIdx") + @ApiOperation("根据idx获取数据集数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "modelId", value = "模板id", required = true), + @ApiImplicitParam(name = "idx", value = "数据集序号", required = true) + }) + public HttpResult getDataSetByIdx(@RequestParam("modelId") String modelId,@RequestParam("idx") Integer idx){ + String methodDescribe = getMethodDescribe("getDataSetByIdx"); + CsDataSet csDataSet = csDataSetService.getDataSetByIdx(modelId,idx); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csDataSet, methodDescribe); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceFtpController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceFtpController.java index dc6213b..e107491 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceFtpController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/DeviceFtpController.java @@ -1,6 +1,8 @@ package com.njcn.csdevice.controller.equipment; import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.github.tocrhz.mqtt.publisher.MqttPublisher; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; @@ -38,6 +40,7 @@ public class DeviceFtpController extends BaseController { private final DeviceFtpService deviceFtpService; private final RedisUtil redisUtil; + private final MqttPublisher publisher; @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/askDeviceRootPath") @@ -85,6 +88,9 @@ public class DeviceFtpController extends BaseController { if (Objects.isNull(result)) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); } else { + int step = (int) Math.ceil((double) size / 51200); + String json = "{fileName:"+name+",allStep:"+ step +",nowStep:"+ step +"}"; + publisher.send("/Web/Progress/" + nDid, new Gson().toJson(json), 1, false); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java index 29f6456..34af850 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/line/CslineController.java @@ -1,10 +1,12 @@ package com.njcn.csdevice.controller.line; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; +import com.njcn.csdevice.mapper.CsLinePOMapper; import com.njcn.csdevice.mapper.OverlimitMapper; import com.njcn.csdevice.pojo.param.CsLineParam; import com.njcn.csdevice.pojo.po.CsLinePO; @@ -41,6 +43,7 @@ public class CslineController extends BaseController { private final CsLinePOService csLinePOService; private final OverlimitMapper overlimitMapper; + private final CsLinePOMapper csLinePOMapper; @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/queryLineById") @@ -132,4 +135,27 @@ public class CslineController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getById") + @ApiOperation("根据监测点id获取监测点详情") + @ApiImplicitParam(name = "lineId", value = "监测点id", required = true) + @ApiIgnore + public HttpResult getById(@RequestParam String lineId) { + String methodDescribe = getMethodDescribe("getById"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CsLinePO::getLineId,lineId).eq(CsLinePO::getStatus,1); + CsLinePO po = csLinePOService.getOne(queryWrapper); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, po, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getOverLimitData") + @ApiOperation("根据监测点id获取国标限值") + @ApiImplicitParam(name = "id", value = "监测点id", required = true) + public HttpResult getOverLimitData(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("getOverLimitData"); + Overlimit result = overlimitMapper.selectById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java index e824fd8..7f0c308 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsLinePOService.java @@ -45,5 +45,4 @@ public interface CsLinePOService extends IService{ * @param csLineParam */ void updateIds(CsLineParam csLineParam); - } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataSetService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataSetService.java index 4ea65ce..cdeaa04 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataSetService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataSetService.java @@ -52,4 +52,16 @@ public interface ICsDataSetService extends IService { * @return */ List getDataSetBySetIds(List setIds); + + CsDataSet getBaseDataSet(String modelId,Integer clDev); + + CsDataSet getHarmonicDataSet(String modelId,Integer clDev,Integer target); + + /** + * 根据模板和idx获取数据集数据 + * @param modelId + * @param idx + * @return + */ + CsDataSet getDataSetByIdx(String modelId, Integer idx); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java index dacea3a..68ca03f 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataSetServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.csdevice.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.csdevice.mapper.CsDataSetMapper; import com.njcn.csdevice.pojo.po.CsDataSet; @@ -8,6 +9,7 @@ import com.njcn.csdevice.service.ICsDataSetService; import org.springframework.stereotype.Service; import java.util.Arrays; +import java.util.Comparator; import java.util.List; /** @@ -56,4 +58,39 @@ public class CsDataSetServiceImpl extends ServiceImpl list = this.lambdaQuery() + .eq(CsDataSet::getPid,modelId) + .eq(CsDataSet::getClDev,clDev) + .eq(CsDataSet::getDataType,"Rt") + .list(); + return list.stream().min(Comparator.comparingInt(CsDataSet::getIdx)).get(); + } + + @Override + public CsDataSet getHarmonicDataSet(String modelId, Integer clDev,Integer target) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CsDataSet::getPid,modelId) + .eq(CsDataSet::getClDev,clDev) + .eq(CsDataSet::getDataType,"Rt"); + //谐波电压含有率 + if (target == 0) { + wrapper.eq(CsDataSet::getName,"Ds$Pqd$Rt$HarmV$01"); + } else if (target == 1) { + wrapper.eq(CsDataSet::getName,"Ds$Pqd$Rt$HarmI$01"); + } else if (target == 2) { + wrapper.eq(CsDataSet::getName,"Ds$Pqd$Rt$InHarmV$01"); + } + return this.baseMapper.selectOne(wrapper); + } + + @Override + public CsDataSet getDataSetByIdx(String modelId, Integer idx) { + return this.lambdaQuery() + .eq(CsDataSet::getPid,modelId) + .in(CsDataSet::getIdx, idx) + .one(); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index a0e1321..6265930 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -608,9 +608,12 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl getRealData(@RequestParam("lineId") String lineId) { + String methodDescribe = getMethodDescribe("getRealData"); + boolean result = realDataService.getBaseRealData(lineId); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } - - + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getHarmRealData") + @ApiOperation("获取谐波实时数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "lineId", value = "监测点id"), + @ApiImplicitParam(name = "target", value = "指标名称 0:谐波电压含有率 1:谐波电流幅值 2:间谐波电压含有率"), + }) + public HttpResult getHarmRealData(@RequestParam("lineId") String lineId, @RequestParam("target") Integer target) { + String methodDescribe = getMethodDescribe("getHarmRealData"); + boolean result = realDataService.getHarmRealData(lineId,target); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/RealDataService.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/RealDataService.java new file mode 100644 index 0000000..f79adcb --- /dev/null +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/RealDataService.java @@ -0,0 +1,20 @@ +package com.njcn.csharmonic.service; + +/** + * @author xuyang + */ +public interface RealDataService { + + /** + * 获取装置基础实时数据 + * @param lineId + */ + boolean getBaseRealData(String lineId); + + /** + * 获取装置谐波实时数据 + * @param lineId + */ + boolean getHarmRealData(String lineId,Integer target); + +} diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java index 8f50c79..a9deb10 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java @@ -15,7 +15,9 @@ import com.njcn.access.utils.MqttUtil; import com.njcn.common.config.GeneralInfo; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.api.DeviceFtpFeignClient; +import com.njcn.csdevice.api.EquipmentFeignClient; import com.njcn.csdevice.api.PortableOffLogFeignClient; +import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO; import com.njcn.csharmonic.enums.CsHarmonicResponseEnum; import com.njcn.csharmonic.offline.constant.OfflineConstant; import com.njcn.csharmonic.offline.log.Log; @@ -74,6 +76,7 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { private final FileStorageUtil fileStorageUtil; private final GeneralInfo generalInfo; private final PortableOffLogFeignClient portableOffLogFeignClient; + private final EquipmentFeignClient equipmentFeignClient; @Override @@ -263,6 +266,8 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { } if (CollectionUtil.isNotEmpty(map)) { System.out.println("map==:" + map); + //获取装置信息 + CsEquipmentDeliveryVO vo = equipmentFeignClient.queryEquipmentByndid(param.getNDid()).getData(); map.forEach((k,v)->{ String proName = k.replace("/bd0/cmn/",OssPath.DEV_MAKE_UP_PATH + param.getNDid() + "/"); String key = AppRedisKey.PROJECT_INFO + param.getNDid(); @@ -291,7 +296,7 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { } }); //下载完成,调用解析接口 - portableOffLogFeignClient.dataOnlineRecruitment(param.getNDid(),param.getLineId(),proName); + portableOffLogFeignClient.dataOnlineRecruitment(vo.getId(),param.getLineId(),proName); }); } } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/RealDataServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/RealDataServiceImpl.java new file mode 100644 index 0000000..24014ee --- /dev/null +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/RealDataServiceImpl.java @@ -0,0 +1,83 @@ +package com.njcn.csharmonic.service.impl; + +import com.njcn.access.api.AskDeviceDataFeignClient; +import com.njcn.csdevice.api.CsLineFeignClient; +import com.njcn.csdevice.api.DataSetFeignClient; +import com.njcn.csdevice.pojo.po.CsDataSet; +import com.njcn.csdevice.pojo.po.CsLinePO; +import com.njcn.csharmonic.service.RealDataService; +import com.njcn.redis.utils.RedisUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Objects; + +/** + * @author xuyang + */ +@Service +@RequiredArgsConstructor +public class RealDataServiceImpl implements RealDataService { + + private final CsLineFeignClient csLineFeignClient; + private final DataSetFeignClient dataSetFeignClient; + private final AskDeviceDataFeignClient askDeviceDataFeignClient; + private final RedisUtil redisUtil; + + @Override + public boolean getBaseRealData(String lineId) { + boolean result = true; + try { + String nDid = lineId.substring(0, lineId.length() - 1); + Integer clDid = Integer.parseInt(lineId.substring(lineId.length() - 1)); + //获取装置所用模板 + CsLinePO po = csLineFeignClient.getById(lineId).getData(); + String modelId = po.getDataModelId(); + CsDataSet csDataSet = dataSetFeignClient.getBaseDataSet(modelId,clDid).getData(); + askDeviceDataFeignClient.askRealData(nDid,csDataSet.getIdx(),clDid); + //等待装置响应,获取询问结果 + Thread.sleep(2000); + Object object = redisUtil.getObjectByKey("devResponse"); + if (Objects.isNull(object)) { + result = false; + } else { + int code = (Integer) object; + if (code != 200) { + result = false; + } + } + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + return result; + } + + @Override + public boolean getHarmRealData(String lineId, Integer target) { + boolean result = true; + try { + String nDid = lineId.substring(0, lineId.length() - 1); + Integer clDid = Integer.parseInt(lineId.substring(lineId.length() - 1)); + //获取装置所用模板 + CsLinePO po = csLineFeignClient.getById(lineId).getData(); + String modelId = po.getDataModelId(); + //根据指标来获取不同的数据集 + CsDataSet csDataSet = dataSetFeignClient.getHarmonicDataSet(modelId,clDid,target).getData(); + askDeviceDataFeignClient.askRealData(nDid,csDataSet.getIdx(),clDid); + //等待装置响应,获取询问结果 + Thread.sleep(2000); + Object object = redisUtil.getObjectByKey("devResponse"); + if (Objects.isNull(object)) { + result = false; + } else { + int code = (Integer) object; + if (code != 200) { + result = false; + } + } + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + return result; + } +}