业务管理员-终端运维管理-主列表-流量详情接口开发
This commit is contained in:
@@ -110,8 +110,10 @@ public class OperationContrController extends BaseController {
|
||||
@ApiImplicitParam(name = "deviceInfoParam", value = "实体", required = true)
|
||||
public HttpResult<Page<LineFlowMealDetailVO>> getNewDeviceRunStatistics(@RequestBody PqsParam deviceInfoParam){
|
||||
String methodDescribe = getMethodDescribe("getDeviceRunStatistics");
|
||||
DeviceInfoParam param = new DeviceInfoParam(RequestUtil.getDeptIndex(),null);
|
||||
deviceInfoParam.setDeptIndex(param.getDeptIndex());
|
||||
// DeviceInfoParam param = new DeviceInfoParam(RequestUtil.getDeptIndex(),null);
|
||||
// deviceInfoParam.setDeptIndex(param.getDeptIndex());
|
||||
// 本地测试
|
||||
deviceInfoParam.setDeptIndex("9b8f910f3c3ad4b049b6abda59d66419");
|
||||
LogUtil.njcnDebug(log, "{},参数集合:{}", methodDescribe, deviceInfoParam);
|
||||
Page<LineFlowMealDetailVO> result = lineService.getNewDeviceRunStatistics(deviceInfoParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
|
||||
@@ -40,7 +40,7 @@ import java.util.Objects;
|
||||
@Slf4j
|
||||
@Api(tags = "终端运维管理")
|
||||
@RestController
|
||||
@RequestMapping("maintain")
|
||||
@RequestMapping("/maintain")
|
||||
@RequiredArgsConstructor
|
||||
@Validated
|
||||
public class TerminalMaintainController extends BaseController {
|
||||
@@ -96,11 +96,11 @@ public class TerminalMaintainController extends BaseController {
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/getFlowManageDetail")
|
||||
@ApiOperation("终端流量管理列表")
|
||||
public HttpResult<Page<TerminalDaliyFlowVO>> getFlowManageDetail(@RequestBody TerminalMainQueryParam param) {
|
||||
@ApiOperation("终端流量管理详情")
|
||||
public HttpResult<List<TerminalDaliyFlowVO>> getFlowManageDetail(@RequestBody TerminalMainQueryParam param) {
|
||||
String methodDescribe = getMethodDescribe("getFlowManageDetail");
|
||||
Page<TerminalDaliyFlowVO> resList = terminalMaintainService.getFlowManageDetail(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resList, methodDescribe);
|
||||
List<TerminalDaliyFlowVO> res = terminalMaintainService.getFlowManageDetail(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -76,5 +76,5 @@ public interface TerminalMaintainMapper {
|
||||
List<TerminalMaintainVO> getFlowStrategyList(@Param("ids") List<String> ids);
|
||||
|
||||
|
||||
Page<TerminalDaliyFlowVO>getFlowManageDetail(Page<TerminalDaliyFlowVO> page, @Param("devId") String deviceId);
|
||||
TerminalDaliyFlowVO getFlowManageDetail(@Param("devId") String deviceId);
|
||||
}
|
||||
|
||||
@@ -788,7 +788,7 @@
|
||||
INNER JOIN pq_device b ON vol.pid = b.id
|
||||
INNER JOIN pq_line sub ON dev.pid = sub.id
|
||||
INNER JOIN pq_line elc ON sub.pid = elc.id
|
||||
LEFT JOIN cld_month_flow m ON b.id = m.Dev_Id
|
||||
LEFT JOIN cld_month_flow m ON b.id = m.Line_Id
|
||||
LEFT JOIN cld_dev_meal c ON b.id = c.line_id
|
||||
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||
@@ -826,7 +826,7 @@
|
||||
INNER JOIN pq_device b ON vol.pid = b.id
|
||||
INNER JOIN pq_line sub ON dev.pid = sub.id
|
||||
INNER JOIN pq_line elc ON sub.pid = elc.id
|
||||
LEFT JOIN cld_month_flow m ON b.id = m.Dev_Id
|
||||
LEFT JOIN cld_month_flow m ON b.id = m.Line_Id
|
||||
LEFT JOIN cld_dev_meal c ON b.id = c.line_id
|
||||
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||
@@ -855,7 +855,7 @@
|
||||
ifnull(m.Actual_Value,0) statisValue
|
||||
FROM pq_line a
|
||||
INNER JOIN pq_device b ON a.id = b.id
|
||||
LEFT JOIN cld_month_flow m ON b.id = m.Dev_Id
|
||||
LEFT JOIN cld_month_flow m ON b.id = m.Line_Id
|
||||
LEFT JOIN cld_dev_meal c ON b.id = c.line_id
|
||||
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||
|
||||
@@ -125,7 +125,14 @@ FROM
|
||||
</select>
|
||||
<select id="getFlowManageDetail" resultType="com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO">
|
||||
SELECT
|
||||
FROM
|
||||
c.Line_Id devId,
|
||||
IFNULL(d.flow, (select flow from cld_flow_meal where type = 0 and flag = 1)) baseFlow,
|
||||
IFNULL(d1.flow, 0) extendFlow,
|
||||
IFNULL(d.flow, (select flow from cld_flow_meal where type = 0 and flag = 1)) + IFNULL(d1.flow, 0) flowMeal
|
||||
FROM cld_dev_meal c
|
||||
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||
WHERE c.Line_Id = #{devId} AND d.State =1 AND d1.State =1
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
@@ -54,5 +54,5 @@ public interface TerminalMaintainService {
|
||||
boolean updateFlowStrategy(TerminalParam terminalParam);
|
||||
|
||||
|
||||
Page<TerminalDaliyFlowVO> getFlowManageDetail(TerminalMainQueryParam param);
|
||||
List<TerminalDaliyFlowVO> getFlowManageDetail(TerminalMainQueryParam param);
|
||||
}
|
||||
|
||||
@@ -288,8 +288,7 @@ public class GeneralDeviceService {
|
||||
*/
|
||||
public List<GeneralDeviceDTO> getDeviceInfo(DeviceInfoParam deviceInfoParam,
|
||||
List<Integer> runFlag,
|
||||
List<Integer> devModel)
|
||||
{
|
||||
List<Integer> devModel) {
|
||||
//定义待返回终端信息
|
||||
List<GeneralDeviceDTO> deviceInfos = new ArrayList<>();
|
||||
//初始化终端查询条件
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.device.pq.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
@@ -12,26 +13,34 @@ import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
||||
import com.njcn.device.pq.pojo.param.TerminalParam;
|
||||
import com.njcn.device.pq.pojo.po.Communicate;
|
||||
import com.njcn.device.pq.pojo.po.DevMeal;
|
||||
import com.njcn.device.pq.pojo.po.DevStrategy;
|
||||
import com.njcn.device.pq.pojo.po.Device;
|
||||
import com.njcn.device.pq.pojo.po.influxdb.DeviceDayFlow;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
||||
import com.njcn.device.pq.service.IDevMealService;
|
||||
import com.njcn.device.pq.service.IDevStrategyService;
|
||||
import com.njcn.device.pq.service.IDeviceService;
|
||||
import com.njcn.device.pq.service.TerminalMaintainService;
|
||||
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import com.njcn.system.pojo.enums.StatisticsEnum;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
@@ -56,6 +65,8 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
private final InfluxDbUtils influxDbUtils;
|
||||
|
||||
@Override
|
||||
public List<TerminalMaintainVO> getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) {
|
||||
List<TerminalMaintainVO> resList = new ArrayList<>();
|
||||
@@ -155,9 +166,49 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<TerminalDaliyFlowVO> getFlowManageDetail (TerminalMainQueryParam param) {
|
||||
Page page = terminalMaintainMapper.getFlowManageDetail(new Page(param.getPageNum(), param.getPageSize()), param.getDevId());
|
||||
return page;
|
||||
public List<TerminalDaliyFlowVO> getFlowManageDetail(TerminalMainQueryParam param) {
|
||||
List<TerminalDaliyFlowVO> list = new ArrayList<>();
|
||||
TerminalDaliyFlowVO flowManageDetail = terminalMaintainMapper.getFlowManageDetail(param.getDevId());
|
||||
if (flowManageDetail == null) {
|
||||
list.add(new TerminalDaliyFlowVO());
|
||||
return list;
|
||||
}
|
||||
List<DeviceDayFlow> deviceDayFlowList = getFlowManageDetailFromInfluxDB(param);
|
||||
float sum = (float) deviceDayFlowList.stream().mapToDouble(DeviceDayFlow::getDailyActualValue).sum();
|
||||
flowManageDetail.setDeviceDayFlowsList(deviceDayFlowList);
|
||||
flowManageDetail.setActualValue(sum);
|
||||
list.add(flowManageDetail);
|
||||
list.forEach(terminalDaliyFlowVO -> terminalDaliyFlowVO.setMonth(param.getSearchBeginTime().substring(6, 7) + "月"));
|
||||
return list;
|
||||
}
|
||||
|
||||
private List<DeviceDayFlow> getFlowManageDetailFromInfluxDB (TerminalMainQueryParam param) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))).append("' and ");
|
||||
stringBuilder.append("dev_id ='").append(param.getDevId()).append("'");
|
||||
String sql = "select * from " + InfluxDBPublicParam.PQS_ACTUAL_FLOW + " where " + stringBuilder.toString() + InfluxDBPublicParam.TIME_ZONE;
|
||||
QueryResult result = influxDbUtils.query(sql);
|
||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||
List<DeviceDayFlow> deviceDayFlow = influxDBResultMapper.toPOJO(result, DeviceDayFlow.class);
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
// Instant time = deviceDayFlow.get(0).getTime();
|
||||
// System.out.println(time);
|
||||
// Date from = Date.from(time);
|
||||
// System.out.println(from);
|
||||
deviceDayFlow.forEach(t-> t.setDate(formatter.format(Date.from(t.getTime()))));
|
||||
Map<String, List<DeviceDayFlow>> dayFlowMap = deviceDayFlow.stream().collect(Collectors.groupingBy(DeviceDayFlow::getDate));
|
||||
List<DeviceDayFlow> list = new ArrayList<>();
|
||||
for (Map.Entry<String, List<DeviceDayFlow>> entry : dayFlowMap.entrySet()) {
|
||||
DeviceDayFlow dayFlow = new DeviceDayFlow();
|
||||
dayFlow.setDevId(entry.getValue().get(0).getDevId());
|
||||
BigDecimal bigDecimal = new BigDecimal((float) entry.getValue().stream().mapToInt(DeviceDayFlow::getActualValue).sum() / (float)1024 /(float) 1024);
|
||||
dayFlow.setDailyActualValue(bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
|
||||
dayFlow.setDate(entry.getKey());
|
||||
list.add(dayFlow);
|
||||
}
|
||||
list = list.stream().sorted(Comparator.comparing(DeviceDayFlow::getDate)).collect(Collectors.toList());
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private List<TerminalMaintainVO> getChildren(String id,List<TerminalMaintainVO> all){
|
||||
|
||||
Reference in New Issue
Block a user