业务管理员-终端运维管理-主列表-流量详情接口开发
This commit is contained in:
@@ -227,6 +227,8 @@ public interface InfluxDBPublicParam {
|
|||||||
*/
|
*/
|
||||||
String PQS_COMMUNICATE = "pqs_communicate";
|
String PQS_COMMUNICATE = "pqs_communicate";
|
||||||
|
|
||||||
|
String PQS_ACTUAL_FLOW = "pqs_actual_flow";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 终端在线率表
|
* 终端在线率表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.njcn.device.pq.pojo.po.influxdb;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.influxdb.annotation.Column;
|
||||||
|
import org.influxdb.annotation.Measurement;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Measurement(name = "pqs_actual_flow")
|
||||||
|
public class DeviceDayFlow {
|
||||||
|
|
||||||
|
@Column(name="time")
|
||||||
|
private Instant time;
|
||||||
|
|
||||||
|
@Column(name="actual_value")
|
||||||
|
private Integer actualValue;
|
||||||
|
|
||||||
|
@Column(name="dev_id")
|
||||||
|
private String devId;
|
||||||
|
|
||||||
|
private float dailyActualValue;
|
||||||
|
|
||||||
|
private String date;
|
||||||
|
|
||||||
|
private String month;
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.njcn.device.pq.pojo.vo;
|
package com.njcn.device.pq.pojo.vo;
|
||||||
|
|
||||||
|
import com.njcn.device.pq.pojo.po.influxdb.DeviceDayFlow;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -7,6 +8,7 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(value = "装置每日流量VO")
|
@ApiModel(value = "装置每日流量VO")
|
||||||
@@ -16,12 +18,20 @@ public class TerminalDaliyFlowVO {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "devId",value = "装置Id")
|
@ApiModelProperty(name = "devId",value = "装置Id")
|
||||||
private String devId;
|
private String devId;
|
||||||
@ApiModelProperty(name = "date",value = "日期")
|
@ApiModelProperty(name = "month",value = "月份")
|
||||||
private LocalDateTime date;
|
private String month;
|
||||||
@ApiModelProperty(name = "actualValue",value = "实际使用流量")
|
@ApiModelProperty(name = "actualValue",value = "月实际使用流量")
|
||||||
private Float actualValue;
|
private Float actualValue;
|
||||||
@ApiModelProperty(name = "statisValue",value = "统计流量")
|
@ApiModelProperty(name = "statisValue",value = "运营商统计流量")
|
||||||
private Float statisValue;
|
private Float statisValue;
|
||||||
|
@ApiModelProperty(name = "baseFlow",value = "基础套餐流量")
|
||||||
|
private Float baseFlow;
|
||||||
|
@ApiModelProperty(name = "extendFlow",value = "拓展套餐流量")
|
||||||
|
private Float extendFlow;
|
||||||
|
@ApiModelProperty(name = "flowMeal",value = "套餐流量(基础+拓展)")
|
||||||
|
private Float flowMeal;
|
||||||
|
@ApiModelProperty(name = "deviceDayFlowsList",value = "装置日流量统计集合")
|
||||||
|
private List<DeviceDayFlow> deviceDayFlowsList;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,8 +110,10 @@ public class OperationContrController extends BaseController {
|
|||||||
@ApiImplicitParam(name = "deviceInfoParam", value = "实体", required = true)
|
@ApiImplicitParam(name = "deviceInfoParam", value = "实体", required = true)
|
||||||
public HttpResult<Page<LineFlowMealDetailVO>> getNewDeviceRunStatistics(@RequestBody PqsParam deviceInfoParam){
|
public HttpResult<Page<LineFlowMealDetailVO>> getNewDeviceRunStatistics(@RequestBody PqsParam deviceInfoParam){
|
||||||
String methodDescribe = getMethodDescribe("getDeviceRunStatistics");
|
String methodDescribe = getMethodDescribe("getDeviceRunStatistics");
|
||||||
DeviceInfoParam param = new DeviceInfoParam(RequestUtil.getDeptIndex(),null);
|
// DeviceInfoParam param = new DeviceInfoParam(RequestUtil.getDeptIndex(),null);
|
||||||
deviceInfoParam.setDeptIndex(param.getDeptIndex());
|
// deviceInfoParam.setDeptIndex(param.getDeptIndex());
|
||||||
|
// 本地测试
|
||||||
|
deviceInfoParam.setDeptIndex("9b8f910f3c3ad4b049b6abda59d66419");
|
||||||
LogUtil.njcnDebug(log, "{},参数集合:{}", methodDescribe, deviceInfoParam);
|
LogUtil.njcnDebug(log, "{},参数集合:{}", methodDescribe, deviceInfoParam);
|
||||||
Page<LineFlowMealDetailVO> result = lineService.getNewDeviceRunStatistics(deviceInfoParam);
|
Page<LineFlowMealDetailVO> result = lineService.getNewDeviceRunStatistics(deviceInfoParam);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import java.util.Objects;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "终端运维管理")
|
@Api(tags = "终端运维管理")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("maintain")
|
@RequestMapping("/maintain")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Validated
|
@Validated
|
||||||
public class TerminalMaintainController extends BaseController {
|
public class TerminalMaintainController extends BaseController {
|
||||||
@@ -96,11 +96,11 @@ public class TerminalMaintainController extends BaseController {
|
|||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getFlowManageDetail")
|
@PostMapping("/getFlowManageDetail")
|
||||||
@ApiOperation("终端流量管理列表")
|
@ApiOperation("终端流量管理详情")
|
||||||
public HttpResult<Page<TerminalDaliyFlowVO>> getFlowManageDetail(@RequestBody TerminalMainQueryParam param) {
|
public HttpResult<List<TerminalDaliyFlowVO>> getFlowManageDetail(@RequestBody TerminalMainQueryParam param) {
|
||||||
String methodDescribe = getMethodDescribe("getFlowManageDetail");
|
String methodDescribe = getMethodDescribe("getFlowManageDetail");
|
||||||
Page<TerminalDaliyFlowVO> resList = terminalMaintainService.getFlowManageDetail(param);
|
List<TerminalDaliyFlowVO> res = terminalMaintainService.getFlowManageDetail(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resList, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -76,5 +76,5 @@ public interface TerminalMaintainMapper {
|
|||||||
List<TerminalMaintainVO> getFlowStrategyList(@Param("ids") List<String> ids);
|
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_device b ON vol.pid = b.id
|
||||||
INNER JOIN pq_line sub ON dev.pid = sub.id
|
INNER JOIN pq_line sub ON dev.pid = sub.id
|
||||||
INNER JOIN pq_line elc ON sub.pid = elc.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_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 d ON c.Base_Meal_Id = d.id
|
||||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.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_device b ON vol.pid = b.id
|
||||||
INNER JOIN pq_line sub ON dev.pid = sub.id
|
INNER JOIN pq_line sub ON dev.pid = sub.id
|
||||||
INNER JOIN pq_line elc ON sub.pid = elc.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_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 d ON c.Base_Meal_Id = d.id
|
||||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||||
@@ -855,7 +855,7 @@
|
|||||||
ifnull(m.Actual_Value,0) statisValue
|
ifnull(m.Actual_Value,0) statisValue
|
||||||
FROM pq_line a
|
FROM pq_line a
|
||||||
INNER JOIN pq_device b ON a.id = b.id
|
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_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 d ON c.Base_Meal_Id = d.id
|
||||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||||
|
|||||||
@@ -125,7 +125,14 @@ FROM
|
|||||||
</select>
|
</select>
|
||||||
<select id="getFlowManageDetail" resultType="com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO">
|
<select id="getFlowManageDetail" resultType="com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO">
|
||||||
SELECT
|
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>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -54,5 +54,5 @@ public interface TerminalMaintainService {
|
|||||||
boolean updateFlowStrategy(TerminalParam terminalParam);
|
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,
|
public List<GeneralDeviceDTO> getDeviceInfo(DeviceInfoParam deviceInfoParam,
|
||||||
List<Integer> runFlag,
|
List<Integer> runFlag,
|
||||||
List<Integer> devModel)
|
List<Integer> devModel) {
|
||||||
{
|
|
||||||
//定义待返回终端信息
|
//定义待返回终端信息
|
||||||
List<GeneralDeviceDTO> deviceInfos = new ArrayList<>();
|
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.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
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.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalParam;
|
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.DevMeal;
|
||||||
import com.njcn.device.pq.pojo.po.DevStrategy;
|
import com.njcn.device.pq.pojo.po.DevStrategy;
|
||||||
import com.njcn.device.pq.pojo.po.Device;
|
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.TerminalDaliyFlowVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
||||||
import com.njcn.device.pq.service.IDevMealService;
|
import com.njcn.device.pq.service.IDevMealService;
|
||||||
import com.njcn.device.pq.service.IDevStrategyService;
|
import com.njcn.device.pq.service.IDevStrategyService;
|
||||||
import com.njcn.device.pq.service.IDeviceService;
|
import com.njcn.device.pq.service.IDeviceService;
|
||||||
import com.njcn.device.pq.service.TerminalMaintainService;
|
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.system.pojo.enums.StatisticsEnum;
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.influxdb.dto.QueryResult;
|
||||||
|
import org.influxdb.impl.InfluxDBResultMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Objects;
|
import java.time.Instant;
|
||||||
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pqs
|
* pqs
|
||||||
@@ -56,6 +65,8 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
|
|||||||
|
|
||||||
private final DeptFeignClient deptFeignClient;
|
private final DeptFeignClient deptFeignClient;
|
||||||
|
|
||||||
|
private final InfluxDbUtils influxDbUtils;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TerminalMaintainVO> getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) {
|
public List<TerminalMaintainVO> getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) {
|
||||||
List<TerminalMaintainVO> resList = new ArrayList<>();
|
List<TerminalMaintainVO> resList = new ArrayList<>();
|
||||||
@@ -155,9 +166,49 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<TerminalDaliyFlowVO> getFlowManageDetail (TerminalMainQueryParam param) {
|
public List<TerminalDaliyFlowVO> getFlowManageDetail(TerminalMainQueryParam param) {
|
||||||
Page page = terminalMaintainMapper.getFlowManageDetail(new Page(param.getPageNum(), param.getPageSize()), param.getDevId());
|
List<TerminalDaliyFlowVO> list = new ArrayList<>();
|
||||||
return page;
|
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){
|
private List<TerminalMaintainVO> getChildren(String id,List<TerminalMaintainVO> all){
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.njcn.executor.handler;
|
||||||
|
|
||||||
|
import com.njcn.prepare.harmonic.api.device.DeviceAbnormalFeignClient;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam;
|
||||||
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DeviceAbnormalStatisticsJob {
|
||||||
|
private final DeviceAbnormalFeignClient deviceAbnormalFeignClient;
|
||||||
|
|
||||||
|
@XxlJob("deviceAbnormalStatisticsJob")
|
||||||
|
public void deviceAbnormalStatisticsJob (){
|
||||||
|
// System.out.println("朱鑫宇定时任务");
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
String format = formatter.format(Calendar.getInstance().getTime());
|
||||||
|
System.out.println(format);
|
||||||
|
log.info("执行日期deviceAbnormalStatisticsJob===============>"+format);
|
||||||
|
DeviceAbnormaStatisticsParam param =new DeviceAbnormaStatisticsParam();
|
||||||
|
param.setTime(formatter.format(Calendar.getInstance().getTime()));
|
||||||
|
deviceAbnormalFeignClient.dailyDeviceAbnormaStatistics(param);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,8 +9,5 @@ import java.io.Serializable;
|
|||||||
public class DeviceAbnormaStatisticsParam implements Serializable {
|
public class DeviceAbnormaStatisticsParam implements Serializable {
|
||||||
|
|
||||||
@ApiModelProperty("开始时间")
|
@ApiModelProperty("开始时间")
|
||||||
private String beginTime;
|
private String time;
|
||||||
|
|
||||||
@ApiModelProperty("结束时间")
|
|
||||||
private String endTime;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,26 +51,26 @@ public class DeviceAbnormaStatisticsServiceImpl implements DeviceAbnormalStatist
|
|||||||
// 获取监测点数据完整性
|
// 获取监测点数据完整性
|
||||||
List<AlarmPO> lineIntegritys = deviceAbnormaStatisticsMapper.getIntegrityByLineIds(
|
List<AlarmPO> lineIntegritys = deviceAbnormaStatisticsMapper.getIntegrityByLineIds(
|
||||||
monotorIds,
|
monotorIds,
|
||||||
DateUtil.beginOfDay(DateUtil.parse(param.getBeginTime())),
|
DateUtil.beginOfDay(DateUtil.parse(param.getTime())),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getEndTime())));
|
DateUtil.endOfDay(DateUtil.parse(param.getTime())));
|
||||||
Map<String, List<AlarmPO>> lineIntegrityMap = lineIntegritys.stream().collect(Collectors.groupingBy(AlarmPO::getDeviceId));
|
Map<String, List<AlarmPO>> lineIntegrityMap = lineIntegritys.stream().collect(Collectors.groupingBy(AlarmPO::getDeviceId));
|
||||||
List<AlarmPO> lineAlarms = deviceAbnormaStatisticsMapper.getAlarmByLines(
|
List<AlarmPO> lineAlarms = deviceAbnormaStatisticsMapper.getAlarmByLines(
|
||||||
monotorIds,
|
monotorIds,
|
||||||
devIds,
|
devIds,
|
||||||
DateUtil.beginOfDay(DateUtil.parse(param.getBeginTime())),
|
DateUtil.beginOfDay(DateUtil.parse(param.getTime())),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getEndTime())));
|
DateUtil.endOfDay(DateUtil.parse(param.getTime())));
|
||||||
Map<String, List<AlarmPO>> lineAlarmsMap = lineAlarms.stream().collect(Collectors.groupingBy(AlarmPO::getDeviceId));
|
Map<String, List<AlarmPO>> lineAlarmsMap = lineAlarms.stream().collect(Collectors.groupingBy(AlarmPO::getDeviceId));
|
||||||
// 获取设备流量
|
// 获取设备流量
|
||||||
List<AlarmPO> deviceFlowAndOnlineRate = deviceAbnormaStatisticsMapper.getFlowAndOnlineRateByDevice(
|
List<AlarmPO> deviceFlowAndOnlineRate = deviceAbnormaStatisticsMapper.getFlowAndOnlineRateByDevice(
|
||||||
devIds,
|
devIds,
|
||||||
DateUtil.beginOfDay(DateUtil.parse(param.getBeginTime())),
|
DateUtil.beginOfDay(DateUtil.parse(param.getTime())),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getEndTime())));
|
DateUtil.endOfDay(DateUtil.parse(param.getTime())));
|
||||||
if (CollectionUtil.isNotEmpty(deviceFlowAndOnlineRate)) {
|
if (CollectionUtil.isNotEmpty(deviceFlowAndOnlineRate)) {
|
||||||
deviceFlowAndOnlineRateMap = deviceFlowAndOnlineRate.stream().collect(Collectors.groupingBy(AlarmPO::getDeviceId));
|
deviceFlowAndOnlineRateMap = deviceFlowAndOnlineRate.stream().collect(Collectors.groupingBy(AlarmPO::getDeviceId));
|
||||||
}
|
}
|
||||||
// 获取通信中断信息
|
// 获取通信中断信息
|
||||||
// List<String> list = Arrays.asList("025fa0e4c91f72ad7f1c1bd29026f20a");
|
// List<String> list = Arrays.asList("025fa0e4c91f72ad7f1c1bd29026f20a");
|
||||||
List<TopMsgPO> comMsgs = getCommunicate(devIds, param.getBeginTime(), param.getEndTime());
|
List<TopMsgPO> comMsgs = getCommunicate(devIds, param.getTime(), param.getTime());
|
||||||
if (CollectionUtil.isNotEmpty(comMsgs)) {
|
if (CollectionUtil.isNotEmpty(comMsgs)) {
|
||||||
comMap = comMsgs.stream().collect(Collectors.groupingBy(TopMsgPO::getDevId));
|
comMap = comMsgs.stream().collect(Collectors.groupingBy(TopMsgPO::getDevId));
|
||||||
}
|
}
|
||||||
@@ -131,11 +131,11 @@ public class DeviceAbnormaStatisticsServiceImpl implements DeviceAbnormalStatist
|
|||||||
} else {
|
} else {
|
||||||
topMsg.setOfftimeFlag(0);
|
topMsg.setOfftimeFlag(0);
|
||||||
String updateTime = localDateTimeFormat(alarmEntry.getValue().get(0).getUpdateTime());
|
String updateTime = localDateTimeFormat(alarmEntry.getValue().get(0).getUpdateTime());
|
||||||
long time = DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).getTime() -
|
long time = DateUtil.endOfDay(DateUtil.parse(param.getTime())).getTime() -
|
||||||
alarmEntry.getValue().get(0).getUpdateTime().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
|
alarmEntry.getValue().get(0).getUpdateTime().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
|
||||||
topMsg.setOfftimeValue((int)(time/1000/60));
|
topMsg.setOfftimeValue((int)(time/1000/60));
|
||||||
topMsg.setComOutCount(1);
|
topMsg.setComOutCount(1);
|
||||||
topMsg.setComOutDescription(updateTime+"至"+DateUtil.endOfDay(DateUtil.parse(param.getEndTime())));
|
topMsg.setComOutDescription(updateTime+"至"+DateUtil.endOfDay(DateUtil.parse(param.getTime())));
|
||||||
}
|
}
|
||||||
if (topMsg.getFlowFlag() != 1 || topMsg.getIntegrityFlag() != 1 || topMsg.getOfftimeFlag() != 0
|
if (topMsg.getFlowFlag() != 1 || topMsg.getIntegrityFlag() != 1 || topMsg.getOfftimeFlag() != 0
|
||||||
|| topMsg.getAlarmCountFlag() != 1 || topMsg.getOnlineRateFlag() != 1) {
|
|| topMsg.getAlarmCountFlag() != 1 || topMsg.getOnlineRateFlag() != 1) {
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
|
|||||||
@MapperScan("com.njcn.**.mapper")
|
@MapperScan("com.njcn.**.mapper")
|
||||||
@EnableFeignClients(basePackages = "com.njcn")
|
@EnableFeignClients(basePackages = "com.njcn")
|
||||||
@SpringBootApplication(scanBasePackages = "com.njcn")
|
@SpringBootApplication(scanBasePackages = "com.njcn")
|
||||||
public class
|
public class UserBootApplication {
|
||||||
UserBootApplication {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(UserBootApplication.class, args);
|
SpringApplication.run(UserBootApplication.class, args);
|
||||||
|
|||||||
Reference in New Issue
Block a user