无线系统实时数据功能

This commit is contained in:
xy
2024-10-11 18:17:38 +08:00
parent 3a60a05ea2
commit 306b426573
17 changed files with 322 additions and 13 deletions

View File

@@ -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<CsDataSet> 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<CsDataSet> 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<CsDataSet> 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);
}
}

View File

@@ -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);
}
}

View File

@@ -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<CsLinePO> getById(@RequestParam String lineId) {
String methodDescribe = getMethodDescribe("getById");
LambdaQueryWrapper<CsLinePO> 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<Overlimit> getOverLimitData(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getOverLimitData");
Overlimit result = overlimitMapper.selectById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -45,5 +45,4 @@ public interface CsLinePOService extends IService<CsLinePO>{
* @param csLineParam
*/
void updateIds(CsLineParam csLineParam);
}

View File

@@ -52,4 +52,16 @@ public interface ICsDataSetService extends IService<CsDataSet> {
* @return
*/
List<CsDataSet> getDataSetBySetIds(List<String> 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);
}

View File

@@ -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<CsDataSetMapper, CsDataSet
return this.lambdaQuery().in(CsDataSet::getId,setIds).list();
}
@Override
public CsDataSet getBaseDataSet(String modelId, Integer clDev) {
List<CsDataSet> 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<CsDataSet> 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();
}
}

View File

@@ -608,9 +608,12 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
askDeviceDataFeignClient.rebootDevice(nDid);
Thread.sleep(3000);
String key = AppRedisKey.CONTROL + nDid;
String value = redisUtil.getObjectByKey(key).toString();
if (Objects.equals(value,"success")) {
result = true;
Object object = redisUtil.getObjectByKey(key);
if (Objects.nonNull(object)) {
String value = object.toString();
if (Objects.equals(value,"success")) {
result = true;
}
}
} catch (InterruptedException e) {
throw new RuntimeException(e);