新增半月报功能

This commit is contained in:
xy
2025-07-04 10:16:53 +08:00
parent fda83a1bd9
commit 65d39224ed
7 changed files with 15 additions and 169 deletions

View File

@@ -3,14 +3,12 @@ package com.njcn.csharmonic.api.fallback;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.csdevice.pojo.po.AppProjectPO;
import com.njcn.csharmonic.api.EventUserFeignClient; import com.njcn.csharmonic.api.EventUserFeignClient;
import com.njcn.csharmonic.param.CsEventUserQueryParam; import com.njcn.csharmonic.param.CsEventUserQueryParam;
import com.njcn.csharmonic.pojo.vo.EventDetailVO; import com.njcn.csharmonic.pojo.vo.EventDetailVO;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List; import java.util.List;

View File

@@ -1,40 +0,0 @@
package com.njcn.csharmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 治理设备模块运行状态记录表
* </p>
*
* @author xy
* @since 2025-07-03
*/
@Getter
@Setter
@TableName("cs_line_latest_data")
public class CsLineLatestData implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 监测点id
*/
@MppMultiId(value = "line_id")
private String lineId;
/**
* 最新数据时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime timeId;
}

View File

@@ -1,64 +0,0 @@
package com.njcn.csharmonic.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.csharmonic.param.CsEventUserQueryParam;
import com.njcn.csharmonic.pojo.po.CsLineLatestData;
import com.njcn.csharmonic.service.ICsLineLatestDataService;
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.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 java.util.List;
/**
* <p>
* 治理设备模块运行状态记录表 前端控制器
* </p>
*
* @author xy
* @since 2025-07-03
*/
@Slf4j
@RestController
@RequestMapping("/csLineLatestData")
@Api(tags = "暂降事件")
@AllArgsConstructor
public class CsLineLatestDataController extends BaseController {
private final ICsLineLatestDataService csLineLatestDataService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增")
@ApiImplicitParam(name = "csLineLatestData", value = "实体", required = true)
public HttpResult<String> addData(@RequestBody CsLineLatestData csLineLatestData) {
String methodDescribe = getMethodDescribe("addData");
csLineLatestDataService.addData(csLineLatestData);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/list")
@ApiOperation("查询")
@ApiImplicitParam(name = "csEventUserQueryParam", value = "暂降事件查询参数", required = true)
public HttpResult<List<CsLineLatestData>> listData(@RequestBody CsEventUserQueryParam csEventUserQueryParam) {
String methodDescribe = getMethodDescribe("queryEventList");
List<CsLineLatestData> list = csLineLatestDataService.list();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -1,16 +0,0 @@
package com.njcn.csharmonic.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.csharmonic.pojo.po.CsLineLatestData;
/**
* <p>
* 治理设备模块运行状态记录表 Mapper 接口
* </p>
*
* @author xy
* @since 2025-07-03
*/
public interface CsLineLatestDataMapper extends MppBaseMapper<CsLineLatestData> {
}

View File

@@ -1,18 +0,0 @@
package com.njcn.csharmonic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csharmonic.pojo.po.CsLineLatestData;
/**
* <p>
* 治理设备模块运行状态记录表 服务类
* </p>
*
* @author xy
* @since 2025-07-03
*/
public interface ICsLineLatestDataService extends IService<CsLineLatestData> {
void addData(CsLineLatestData csLineLatestData);
}

View File

@@ -1,24 +0,0 @@
package com.njcn.csharmonic.service.impl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.csharmonic.mapper.CsLineLatestDataMapper;
import com.njcn.csharmonic.pojo.po.CsLineLatestData;
import com.njcn.csharmonic.service.ICsLineLatestDataService;
import org.springframework.stereotype.Service;
/**
* <p>
* 治理设备模块运行状态记录表 服务实现类
* </p>
*
* @author xy
* @since 2025-07-03
*/
@Service
public class CsLineLatestDataServiceImpl extends MppServiceImpl<CsLineLatestDataMapper, CsLineLatestData> implements ICsLineLatestDataService {
@Override
public void addData(CsLineLatestData csLineLatestData) {
}
}

View File

@@ -1,6 +1,8 @@
package com.njcn.csharmonic.service.impl; package com.njcn.csharmonic.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.njcn.access.api.CsLineLatestDataFeignClient;
import com.njcn.access.pojo.po.CsLineLatestData;
import com.njcn.csdevice.api.CsLineFeignClient; import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.api.EquipmentFeignClient; import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.api.IntegrityFeignClient; import com.njcn.csdevice.api.IntegrityFeignClient;
@@ -13,7 +15,6 @@ import com.njcn.csharmonic.pojo.param.StatisticsDataParam;
import com.njcn.csharmonic.pojo.vo.DataVo; import com.njcn.csharmonic.pojo.vo.DataVo;
import com.njcn.csharmonic.pojo.vo.HalfMonthReportVO; import com.njcn.csharmonic.pojo.vo.HalfMonthReportVO;
import com.njcn.csharmonic.service.IStatisticsDataDataService; import com.njcn.csharmonic.service.IStatisticsDataDataService;
import com.njcn.influx.pojo.bo.CommonQueryParam;
import com.njcn.influx.pojo.dto.StatisticalDataDTO; import com.njcn.influx.pojo.dto.StatisticalDataDTO;
import com.njcn.influx.service.CommonService; import com.njcn.influx.service.CommonService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -22,7 +23,10 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -38,6 +42,7 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService
private final CommonService commonService; private final CommonService commonService;
private final IntegrityFeignClient integrityFeignClient; private final IntegrityFeignClient integrityFeignClient;
private final OnlineRateFeignClient onlineRateFeignClient; private final OnlineRateFeignClient onlineRateFeignClient;
private final CsLineLatestDataFeignClient csLineLatestDataFeignClient;
@Override @Override
public List<DataVo> getLineIntegrity(StatisticsDataParam param) { public List<DataVo> getLineIntegrity(StatisticsDataParam param) {
@@ -101,6 +106,9 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService
List<RStatIntegrityD> list1 = integrityFeignClient.list(lineList,param.getStartTime(),param.getEndTime()).getData(); List<RStatIntegrityD> list1 = integrityFeignClient.list(lineList,param.getStartTime(),param.getEndTime()).getData();
//获取终端在线率 //获取终端在线率
List<RStatOnlineRateD> list2 = onlineRateFeignClient.list(deviceList,param.getStartTime(),param.getEndTime()).getData(); List<RStatOnlineRateD> list2 = onlineRateFeignClient.list(deviceList,param.getStartTime(),param.getEndTime()).getData();
//获取监测点最新数据时间
List<CsLineLatestData> list3 = csLineLatestDataFeignClient.listData().getData();
equipmentDeliveryList.forEach(dev->{ equipmentDeliveryList.forEach(dev->{
List<CsLinePO> list = devMap.get(dev.getId()); List<CsLinePO> list = devMap.get(dev.getId());
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
@@ -111,9 +119,8 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService
vo.setDevName(dev.getName()); vo.setDevName(dev.getName());
vo.setDevType(dev.getDevType()); vo.setDevType(dev.getDevType());
vo.setMac(dev.getMac()); vo.setMac(dev.getMac());
vo.setOperationalStatus(dev.getUsageStatus() == 0 ? "停运" : "在运");
//fixme 先用设备登记时间记作投运时间
vo.setOperationalTime(dev.getCreateTime()); vo.setOperationalTime(dev.getCreateTime());
vo.setOperationalStatus(dev.getUsageStatus() == 0 ? "停运" : "在运");
vo.setLineName(line.getName()); vo.setLineName(line.getName());
vo.setCommunicationStatus(dev.getRunStatus() == 1 ? "离线" : "在线"); vo.setCommunicationStatus(dev.getRunStatus() == 1 ? "离线" : "在线");
vo.setLatestTime(LocalDateTime.now()); vo.setLatestTime(LocalDateTime.now());
@@ -139,11 +146,14 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService
} else { } else {
vo.setOnlineRate(0.0); vo.setOnlineRate(0.0);
} }
//获取最新数据时间
List<CsLineLatestData> l3 = list3.stream().filter(item -> item.getLineId().equals(line.getLineId())).collect(Collectors.toList());
vo.setLatestTime(CollectionUtil.isNotEmpty(l3) ? l3.get(0).getTimeId() : null);
result.add(vo); result.add(vo);
}); });
} }
}); });
//获取最新数据时间
} }
} }
return result; return result;