1.运行管理追加分页;

2.新增终端在线率统计接口;
3.移植运行状态接口
This commit is contained in:
njcn_dhj
2022-08-12 13:55:05 +08:00
parent 49140e026b
commit a178d230e9
33 changed files with 638 additions and 286 deletions

View File

@@ -5,7 +5,7 @@ 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.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.device.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.AssesVO;
import com.njcn.harmonic.service.AssesService;
import com.njcn.web.controller.BaseController;

View File

@@ -1,55 +0,0 @@
package com.njcn.harmonic.controller;
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.device.pojo.vo.CommunicateVO;
import com.njcn.harmonic.pojo.param.PulicTimeParam;
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.CommunicateStatisticsVO;
import com.njcn.harmonic.service.CommunicateService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author denghuajun
* @date 2022/2/28
*
*/
@Slf4j
@RestController
@RequestMapping("/communicate")
@Api(tags = "运行状态管理")
@AllArgsConstructor
public class CommunicateController extends BaseController {
private final CommunicateService communicateService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getComFlagInfoData")
@ApiOperation("终端通讯信息")
@ApiImplicitParam(name = "pulicTimeParam", value = "终端通讯信息", required = true)
public HttpResult<CommunicateVO> getComFlagInfoData(@RequestBody @Validated PulicTimeParam pulicTimeParam) {
String methodDescribe = getMethodDescribe("getComFlagInfoData");
CommunicateVO list = communicateService.getComFlagInfoData(pulicTimeParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRunInfoData")
@ApiOperation("终端运行状态统计")
@ApiImplicitParam(name = "pulicTimeStatisParam", value = "终端运行状态统计", required = true)
public HttpResult<CommunicateStatisticsVO> getRunInfoData(@RequestBody @Validated PulicTimeStatisParam pulicTimeStatisParam) {
String methodDescribe = getMethodDescribe("getRunInfoData");
CommunicateStatisticsVO list = communicateService.getRunInfoData(pulicTimeStatisParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -16,11 +16,9 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**

View File

@@ -5,7 +5,7 @@ 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.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.device.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.SteadyInfoData;
import com.njcn.harmonic.service.SteadyDataService;
import com.njcn.web.controller.BaseController;

View File

@@ -1,6 +1,6 @@
package com.njcn.harmonic.service;
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.device.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.AssesVO;
/**

View File

@@ -1,18 +0,0 @@
package com.njcn.harmonic.service;
import com.njcn.device.pojo.vo.CommunicateVO;
import com.njcn.harmonic.pojo.param.PulicTimeParam;
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.CommunicateStatisticsVO;
/**
* @author denghuajun
* @date 2022/2/28
*
*/
public interface CommunicateService {
CommunicateVO getComFlagInfoData(PulicTimeParam pulicTimeParam);
CommunicateStatisticsVO getRunInfoData(PulicTimeStatisParam pulicTimeStatisParam);
}

View File

@@ -1,6 +1,6 @@
package com.njcn.harmonic.service;
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.device.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.SteadyInfoData;
/**

View File

@@ -1,8 +1,6 @@
package com.njcn.harmonic.service.impl;
import com.njcn.device.pojo.po.Communicate;
import com.njcn.harmonic.constant.Param;
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.device.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.AssesVO;
import com.njcn.harmonic.service.AssesService;
import com.njcn.influxdb.param.InfluxDBPublicParam;
@@ -16,7 +14,6 @@ import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,96 +0,0 @@
package com.njcn.harmonic.service.impl;
import com.njcn.device.api.LineFeignClient;
import com.njcn.device.pojo.vo.CommunicateVO;
import com.njcn.harmonic.pojo.param.PulicTimeParam;
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.CommunicateStatisticsVO;
import com.njcn.harmonic.service.CommunicateService;
import com.njcn.influxdb.utils.InfluxDbUtils;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.influxdb.dto.QueryResult;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import static com.njcn.influxdb.param.InfluxDBPublicParam.*;
/**
* @author denghuajun
* @date 2022/2/28
*
*/
@Service
@AllArgsConstructor
public class CommunicateServiceImpl implements CommunicateService {
private final LineFeignClient lineFeignClient;
private final InfluxDbUtils influxDbUtils;
@Override
public CommunicateVO getComFlagInfoData(PulicTimeParam pulicTimeParam) {
//根据监测点id获取终端状态信息
return lineFeignClient.getComFlagInfoData(pulicTimeParam.getId(), pulicTimeParam.getSearchBeginTime(), pulicTimeParam.getSearchEndTime()).getData();
}
@Override
public CommunicateStatisticsVO getRunInfoData(PulicTimeStatisParam pulicTimeStatisParam) {
CommunicateStatisticsVO communicateStatisticsVO = new CommunicateStatisticsVO();
//根据监测点id获取终端id
String devId = lineFeignClient.getLineIdByDevId(pulicTimeStatisParam.getId()).getData();
List<Float> floatList = new ArrayList<>();
List<Float> floats = new ArrayList<>();
floatList.add(getCondition(pulicTimeStatisParam.getId(), pulicTimeStatisParam.getSearchBeginTime(), pulicTimeStatisParam.getSearchEndTime(),0) * 100);
floats.add(getCondition(devId, pulicTimeStatisParam.getSearchBeginTime(), pulicTimeStatisParam.getSearchEndTime(),1) * 100);
if (StringUtils.isNotBlank(pulicTimeStatisParam.getPeriodBeginTime())&& StringUtils.isNotBlank(pulicTimeStatisParam.getPeriodEndTime())){
floatList.add(getCondition(pulicTimeStatisParam.getId(), pulicTimeStatisParam.getPeriodBeginTime(), pulicTimeStatisParam.getPeriodEndTime(),0)*100);
floats.add(getCondition(devId, pulicTimeStatisParam.getPeriodBeginTime(), pulicTimeStatisParam.getPeriodEndTime(),1)*100);
}
communicateStatisticsVO.setOnlineRateData(floats);
communicateStatisticsVO.setIntegrityData(floatList);
return communicateStatisticsVO;
}
/**
* influxDB相关操作
* 查询监测点的数据完整性
*/
private Float getCondition(String lineList, String startTime, String endTime,Integer state) {
final Float[] resultList = {0.0f};
//组装sql语句
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(TIME + " >= '").append(startTime).append(START_TIME).append("' and ").append(TIME).append(" <= '").append(endTime).append(END_TIME).append("' and (");
//sql语句
String sql = "";
if (state == 0) {
stringBuilder.append(LINE_ID + "='").append(lineList).append("')");
sql = "SELECT SUM(" + REAL+ ")/SUM(" + DUE + ") AS integrity FROM pqs_integrity WHERE " + stringBuilder.toString() + " group by " + LINE_ID;
} else {
stringBuilder.append(DEV_INDEX + "='").append(lineList).append("')");
sql = "SELECT SUM(" + ONLINE_MIN + ")/(SUM(" + OFFLINE_MIN + ")+SUM(" + ONLINE_MIN + ")) AS onlineRate FROM pqs_onlinerate WHERE " + stringBuilder.toString() + " group by " + DEV_INDEX;
}
stringBuilder.append(TIME_ZONE);
//结果集
QueryResult result = influxDbUtils.query(sql);
//处理结果集
List<QueryResult.Series> list = result.getResults().get(0).getSeries();
if (!CollectionUtils.isEmpty(list)) {
list.forEach(po -> {
List<List<Object>> valueList = po.getValues();
if (!CollectionUtils.isEmpty(valueList)) {
for (List<Object> value : valueList) {
//数据完整性 保留四位小数
resultList[0] = value.get(1) == null ? null : BigDecimal.valueOf(Float.parseFloat(value.get(1).toString())).setScale(4, BigDecimal.ROUND_HALF_UP).floatValue();
}
}
});
}
return resultList[0];
}
}

View File

@@ -202,10 +202,10 @@ public class HistoryResultServiceImpl implements HistoryResultService {
valueTypeName = "AVG";
break;
case 2:
valueTypeName = "MAX";
valueTypeName = "MIN";
break;
case 3:
valueTypeName = "MIN";
valueTypeName = "MAX";
break;
case 4:
valueTypeName = "CP95";
@@ -271,7 +271,7 @@ public class HistoryResultServiceImpl implements HistoryResultService {
case 14:
//电压不平衡
sql = "SELECT time as time, v_zero as aValue FROM data_v WHERE " + stringBuilder.toString() +
" and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc tz('Asia/Shanghai');";
" and (phasic_type ='T') group by phasic_type order by time asc tz('Asia/Shanghai');";
phasicType.add("零序电压");
phasicType.add("正序电压");
phasicType.add("负序电压");

View File

@@ -1,6 +1,6 @@
package com.njcn.harmonic.service.impl;
import com.njcn.harmonic.pojo.param.PulicTimeStatisParam;
import com.njcn.device.pojo.param.PulicTimeStatisParam;
import com.njcn.harmonic.pojo.vo.SteadyInfoData;
import com.njcn.harmonic.service.SteadyDataService;
import com.njcn.influxdb.param.InfluxDBPublicParam;