getCommPointBusPage(UploadDataParam param);
+
+ Boolean upGw(UploadDataParam param);
}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java
index b2933de07..c60b372c6 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java
@@ -1,12 +1,33 @@
package com.njcn.harmonic.service.upload.impl;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.RUploadCommPointBusMapper;
+import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.po.upload.RUploadCommPointBus;
import com.njcn.harmonic.service.upload.IRUploadCommPointBusService;
+import com.njcn.system.enums.DicDataEnum;
+import com.njcn.web.enums.GWSendEnum;
+import com.njcn.web.factory.PageFactory;
+import com.njcn.web.pojo.param.SendParam;
+import com.njcn.web.utils.GwSendUtil;
import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
/**
*
* 公共连接点母线电能质量统计 服务实现类
@@ -18,4 +39,80 @@ import org.springframework.stereotype.Service;
@Service
public class RUploadCommPointBusServiceImpl extends ServiceImpl implements IRUploadCommPointBusService {
+ @Override
+ public Page getCommPointBusPage(UploadDataParam param) {
+ DateTime dateTime = DateUtil.parse(param.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN);
+ if(param.getDataType().equals("02")){
+ param.setSearchBeginTime(DateUtil.format(dateTime,DatePattern.NORM_MONTH_PATTERN));
+ }else if(param.getDataType().equals("01")){
+ param.setSearchBeginTime(DateUtil.format(dateTime,DatePattern.NORM_YEAR_PATTERN));
+ }
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(RUploadCommPointBus::getStatisticalType,param.getDataType())
+ .eq(RUploadCommPointBus::getStatisticalDate,param.getSearchBeginTime());
+ return this.page(new Page<>(PageFactory.getPageNum(param),PageFactory.getPageSize(param)),lambdaQueryWrapper);
+ }
+
+ @Override
+ public Boolean upGw(UploadDataParam param) {
+ if(StrUtil.isBlank(param.getSearchBeginTime())){
+ throw new BusinessException("日期不可为空");
+ }
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+
+ if(StrUtil.isBlank(param.getDataType())){
+ //类型为空则上送日月年数据
+ DateTime dateTime = DateUtil.parse(param.getSearchBeginTime(),DatePattern.NORM_DATE_PATTERN);
+ String month = DateUtil.format(dateTime,DatePattern.NORM_MONTH_PATTERN);
+ String year = DateUtil.format(dateTime,DatePattern.NORM_YEAR_PATTERN);
+ lambdaQueryWrapper.in(RUploadCommPointBus::getStatisticalDate, Stream.of(param.getSearchBeginTime(),month,year).collect(Collectors.toList()));
+ }else {
+ lambdaQueryWrapper.eq(RUploadCommPointBus::getStatisticalType,param.getDataType())
+ .eq(RUploadCommPointBus::getStatisticalDate,param.getSearchBeginTime());
+ }
+ List rUploadCommPointBusList = this.list(lambdaQueryWrapper);
+ if(CollUtil.isEmpty(rUploadCommPointBusList)){
+ throw new BusinessException("查询数据为空");
+ }
+ List> list = CollUtil.split(rUploadCommPointBusList,100);
+
+ for(int i=0;i sendRes = GwSendUtil.send(sendParam, GWSendEnum.COMM_POINT);
+ List ids = list.get(i).stream().map(RUploadCommPointBus::getObjId).collect(Collectors.toList());
+ int count = GwSendUtil.returnInfoMsg(ids,sendRes);
+ System.out.println("上送成功,上送成功返回"+count+"条");
+ if(count == list.get(i).size()){
+ LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+ lambdaUpdateWrapper.set(RUploadCommPointBus::getUploadStatus,1).in(RUploadCommPointBus::getObjId,ids);
+ this.update(lambdaUpdateWrapper);
+ }
+ }
+ return true;
+ }
+
+
+
+
}
diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/SpThroughFeignClient.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/SpThroughFeignClient.java
index 1d40669dd..2132c44ca 100644
--- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/SpThroughFeignClient.java
+++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/SpThroughFeignClient.java
@@ -3,8 +3,13 @@ package com.njcn.prepare.harmonic.api.event;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.prepare.harmonic.api.event.fallback.SpThroughFeignClientFallbackFactory;
+import com.njcn.prepare.harmonic.pojo.param.SpThroughParam;
+import com.njcn.prepare.harmonic.pojo.vo.SpThroughVO;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import java.util.List;
/**
* 高低电压穿越Feign客户端
@@ -20,4 +25,10 @@ public interface SpThroughFeignClient {
@PostMapping("/record")
HttpResult record();
+
+ @PostMapping("/getDataByEventIds")
+ HttpResult getDataByEventIds(@RequestBody @Validated SpThroughParam spThroughParam);
+
+ @PostMapping("/formatEventIds")
+ HttpResult> formatEventIds(@RequestBody @Validated SpThroughParam spThroughParam);
}
diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/fallback/SpThroughFeignClientFallbackFactory.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/fallback/SpThroughFeignClientFallbackFactory.java
index 63361c1ea..c4b5bec83 100644
--- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/fallback/SpThroughFeignClientFallbackFactory.java
+++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/api/event/fallback/SpThroughFeignClientFallbackFactory.java
@@ -4,10 +4,13 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.prepare.harmonic.api.event.SpThroughFeignClient;
+import com.njcn.prepare.harmonic.pojo.param.SpThroughParam;
+import com.njcn.prepare.harmonic.pojo.vo.SpThroughVO;
import com.njcn.prepare.harmonic.utils.PrepareEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import java.util.List;
/**
* 高低电压穿越熔断降级
@@ -33,6 +36,18 @@ public class SpThroughFeignClientFallbackFactory implements FallbackFactory getDataByEventIds(SpThroughParam spThroughParam) {
+ log.error("{}异常,降级处理,异常为:{}", "根据事件ID集合及能源站类型获取高低电压穿越次数: ", throwable.toString());
+ throw new BusinessException(finalExceptionEnum);
+ }
+
+ @Override
+ public HttpResult> formatEventIds(SpThroughParam spThroughParam) {
+ log.error("{}异常,降级处理,异常为:{}", "根据原有的事件集合进行过滤: ", throwable.toString());
+ throw new BusinessException(finalExceptionEnum);
+ }
};
}
}
diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/param/SpThroughParam.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/param/SpThroughParam.java
new file mode 100644
index 000000000..619ba9c82
--- /dev/null
+++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/param/SpThroughParam.java
@@ -0,0 +1,27 @@
+package com.njcn.prepare.harmonic.pojo.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.List;
+
+/**
+ * @author guofeihu
+ * @since 2024-08-14
+ */
+@Data
+public class SpThroughParam {
+
+ @ApiModelProperty(name = "eventIds",value = "事件ID集合")
+ private List eventIds;
+
+ @ApiModelProperty(name = "lineType",value = "监测点类别(1:风电场、2:光伏电站)")
+ private String stationType;
+
+ public SpThroughParam(List eventIds, String stationType) {
+ this.eventIds = eventIds;
+ this.stationType = stationType;
+ }
+
+ public SpThroughParam() {
+ }
+}
diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/vo/SpThroughVO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/vo/SpThroughVO.java
new file mode 100644
index 000000000..dc382cf6e
--- /dev/null
+++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/vo/SpThroughVO.java
@@ -0,0 +1,19 @@
+package com.njcn.prepare.harmonic.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author guofeihu
+ * @since 2024-08-14
+ */
+@Data
+public class SpThroughVO {
+
+ @ApiModelProperty("低压次数")
+ private String lowPressure;
+
+ @ApiModelProperty("高压次数")
+ private String highPressure;
+
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java
index f5b55b47f..239d70a56 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java
@@ -12,6 +12,7 @@ import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
import com.njcn.prepare.harmonic.service.mysql.dim.*;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
+import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadCommPointBusService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadEvaluationDataDService;
import com.njcn.prepare.harmonic.service.mysql.send.ConverterIndexStatisticsPOService;
import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService;
@@ -50,11 +51,6 @@ public class OrgPointExecutor extends BaseExecutor{
private final RAlarmCountService rAlarmCountService;
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
- private final RDimStationHarmnicDPOService rDimStationHarmnicDPOService;
-
- private final RDimStationTargetDPOService rDimStationTargetDPOService;
- private final RDimStationTargetMPOService rDimStationTargetMPOService;
- private final RDimStationTargetYPOService rDimStationTargetYPOService;
private final RDimBusTargetDPOService rDimBusTargetDPOService;
private final RDimBusTargetMPOService rDimBusTargetMPOService;
@@ -77,6 +73,8 @@ public class OrgPointExecutor extends BaseExecutor{
private final ConverterIndexStatisticsPOService converterIndexStatisticsPOService;
private final PqTypicalSourceCreatePOService pqTypicalSourceCreatePOService;
private final IRUploadEvaluationDataDService irUploadEvaluationDataDService;
+
+ private final IRUploadCommPointBusService irUploadCommPointBusService;
/**
*
* 3.3.2. 单位标数据质量
@@ -714,4 +712,24 @@ public class OrgPointExecutor extends BaseExecutor{
}
}
+ @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rUploadCommPoint", nodeType = NodeTypeEnum.COMMON)
+ public boolean rUploadCommPointAccess(NodeComponent bindCmp) {
+ return isAccess(bindCmp);
+ }
+ @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rUploadCommPoint", nodeType = NodeTypeEnum.COMMON)
+ public void rUploadCommPointProcess(NodeComponent bindCmp) {
+ String tag = bindCmp.getTag();
+ CalculatedParam calculatedParam = bindCmp.getRequestData();
+ if (tag.equalsIgnoreCase("r_upload_comm_point_d")) {
+ //日表
+ irUploadCommPointBusService.handlerDay(calculatedParam.getDataDate());
+ } else if (tag.equalsIgnoreCase("r_upload_comm_point_m")) {
+ //月表
+ irUploadCommPointBusService.handlerMonth(calculatedParam.getDataDate());
+ } else if (tag.equalsIgnoreCase("r_upload_comm_point_y")) {
+ //月表
+ irUploadCommPointBusService.handlerYear(calculatedParam.getDataDate());
+ }
+ }
+
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/event/SpThroughController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/event/SpThroughController.java
index 32f087986..c4d58c008 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/event/SpThroughController.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/event/SpThroughController.java
@@ -6,7 +6,8 @@ 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.prepare.harmonic.pojo.po.SpThroughPO;
+import com.njcn.prepare.harmonic.pojo.param.SpThroughParam;
+import com.njcn.prepare.harmonic.pojo.vo.SpThroughVO;
import com.njcn.prepare.harmonic.service.mysql.event.SpThroughService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -45,11 +46,19 @@ public class SpThroughController extends BaseController {
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
- @PostMapping("/getDataByLineIds")
- @ApiOperation("根据监测点ID集合获取高低电压穿越信息")
- public HttpResult> getDataByLineIds(@RequestBody List lineIds) {
- String methodDescribe = getMethodDescribe("getDataByLineIds");
- return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, spThroughService.getDataByLineIds(lineIds), methodDescribe);
+ @PostMapping("/getDataByEventIds")
+ @ApiOperation("根据事件ID集合及能源站类型获取高低电压穿越次数")
+ public HttpResult getDataByEventIds(@RequestBody SpThroughParam spThroughParam) {
+ String methodDescribe = getMethodDescribe("getDataByEventIds");
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, spThroughService.getDataByEventIds(spThroughParam), methodDescribe);
+ }
+
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
+ @PostMapping("/formatEventIds")
+ @ApiOperation("根据原有的事件集合进行过滤")
+ public HttpResult> formatEventIds(@RequestBody SpThroughParam spThroughParam) {
+ String methodDescribe = getMethodDescribe("formatEventIds");
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, spThroughService.formatEventIds(spThroughParam), methodDescribe);
}
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/upload/CommPointController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/upload/CommPointController.java
index 482b959af..be717d705 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/upload/CommPointController.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/upload/CommPointController.java
@@ -24,4 +24,6 @@ public class CommPointController {
}
+
+
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/event/SpThroughServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/event/SpThroughServiceImpl.java
index 55e90ed54..ad6e80dbc 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/event/SpThroughServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/event/SpThroughServiceImpl.java
@@ -1,11 +1,25 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.event;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.commApi.CommLineClient;
+import com.njcn.device.biz.pojo.dto.LineDTO;
+import com.njcn.device.pq.api.NewStationClient;
+import com.njcn.device.pq.constant.Param;
+import com.njcn.device.pq.pojo.po.NewStation;
+import com.njcn.event.api.EventDetailFeignClient;
+import com.njcn.event.pojo.po.RmpEventDetailPO;
import com.njcn.prepare.harmonic.mapper.mysql.event.SpThroughMapper;
+import com.njcn.prepare.harmonic.pojo.param.SpThroughParam;
import com.njcn.prepare.harmonic.pojo.po.SpThroughPO;
+import com.njcn.prepare.harmonic.pojo.vo.SpThroughVO;
import com.njcn.prepare.harmonic.service.mysql.event.SpThroughService;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.time.LocalDateTime;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 高低电压穿越 服务实现类
@@ -13,15 +27,105 @@ import java.util.List;
* @since 2024-08-22
*/
@Service
+@RequiredArgsConstructor
public class SpThroughServiceImpl extends MppServiceImpl implements SpThroughService {
+ private final EventDetailFeignClient eventDetailFeignClient;
+
+ private final CommLineClient commLineClient;
+
+ private final NewStationClient newStationClient;
+
@Override
public void record() {
+ LocalDateTime currentTime = LocalDateTime.now();
+ //获取最新的暂态事件信息(截至目前为止)
+ List evenStDetailPOS = eventDetailFeignClient.getNewEventDetailByTime(getLastTime(),currentTime).getData();
+ for(RmpEventDetailPO rmpEventDetailPO : evenStDetailPOS){
+ //获取监测点
+ LineDTO lineDTO = commLineClient.getLineDetail(rmpEventDetailPO.getMeasurementPointId()).getData();
+ if(lineDTO != null && lineDTO.getNewStationId() != null){
+ NewStation newStation = newStationClient.selectById(lineDTO.getNewStationId()).getData();
+ if(newStation != null){
+ //暂升事件
+ if(Param.UPPEREVENT.equals(rmpEventDetailPO.getEventType())){
+ //风电场
+ if(Param.WINDFARM.equals(newStation.getStationType())){
+ }
+ //光伏电站
+ if(Param.PHOTOVOLTAICPOWER.equals(newStation.getStationType())){
+
+ }
+ }
+ //暂降事件
+ if(Param.LOWEREVENT.equals(rmpEventDetailPO.getEventType())){
+ //风电场
+ if(Param.WINDFARM.equals(newStation.getStationType())){
+
+ }
+ //光伏电站
+ if(Param.PHOTOVOLTAICPOWER.equals(newStation.getStationType())){
+
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+ //拿到最近一次插入高低电压穿越表信息的时间
+ private LocalDateTime getLastTime(){
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper();
+ lambdaQueryWrapper.orderByDesc(SpThroughPO::getCreateTime);
+ Page page = new Page<>(1, 1);
+ List spThroughPOS = this.baseMapper.selectPage(page,lambdaQueryWrapper).getRecords();
+ if(!spThroughPOS.isEmpty()){
+ return spThroughPOS.get(0).getCreateTime();
+ }
+ return null;
}
@Override
- public List getDataByLineIds(List lineIds) {
- return null;
+ public SpThroughVO getDataByEventIds(SpThroughParam spThroughParam) {
+ SpThroughVO spThroughVO = new SpThroughVO();
+ LambdaQueryWrapper upperLambdaQueryWrapper = new LambdaQueryWrapper();
+ upperLambdaQueryWrapper.in(SpThroughPO::getEventId,spThroughParam.getEventIds())
+ .eq(SpThroughPO::getIsOrNot,1)
+ .eq(SpThroughPO::getStationType,spThroughParam.getStationType().equals("1")?Param.WINDFARM:Param.PHOTOVOLTAICPOWER)
+ .eq(SpThroughPO::getState,1)
+ .eq(SpThroughPO::getEventType,Param.UPPEREVENT);
+ Integer upperCount = this.baseMapper.selectCount(upperLambdaQueryWrapper);
+ spThroughVO.setHighPressure(upperCount == 0?null:upperCount.toString());
+
+ LambdaQueryWrapper lowLambdaQueryWrapper = new LambdaQueryWrapper();
+ lowLambdaQueryWrapper.in(SpThroughPO::getEventId,spThroughParam.getEventIds())
+ .eq(SpThroughPO::getIsOrNot,1)
+ .eq(SpThroughPO::getStationType,spThroughParam.getStationType().equals("1")?Param.WINDFARM:Param.PHOTOVOLTAICPOWER)
+ .eq(SpThroughPO::getState,1)
+ .eq(SpThroughPO::getEventType,Param.LOWEREVENT);
+ Integer lowCount = this.baseMapper.selectCount(lowLambdaQueryWrapper);
+ spThroughVO.setLowPressure(lowCount == 0?null:lowCount.toString());
+ return spThroughVO;
+ }
+
+ /**
+ * 说明:
+ * 此方法是专门提供给event模块-高低压穿越模块中-根据区域获取暂态事件列表使用
+ * 根据区域获取各个子区域高低电压穿越次数是基于sp_through表中记录来的 那么在根据区域获取暂态事件列表数据也应该基于sp_through表中记录来
+ * 因为如果不基于sp_through表中记录来 那么根据区域获取暂态事件可能数据非常多且可能一部分的事件数据并没有被定时任务(record方法)所执行
+ * @param spThroughParam
+ * @return
+ */
+ @Override
+ public List formatEventIds(SpThroughParam spThroughParam) {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper();
+ lambdaQueryWrapper.in(SpThroughPO::getEventId,spThroughParam.getEventIds())
+ .eq(SpThroughPO::getIsOrNot,1)
+ .eq(SpThroughPO::getStationType,spThroughParam.getStationType().equals("1")?Param.WINDFARM:Param.PHOTOVOLTAICPOWER)
+ .eq(SpThroughPO::getState,1);
+ List spThroughPOS = this.baseMapper.selectList(lambdaQueryWrapper);
+ return spThroughPOS.stream().map(SpThroughPO::getEventId).collect(Collectors.toList());
}
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/event/SpThroughService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/event/SpThroughService.java
index 297213e98..0ec47c5cf 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/event/SpThroughService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/event/SpThroughService.java
@@ -1,7 +1,9 @@
package com.njcn.prepare.harmonic.service.mysql.event;
import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.prepare.harmonic.pojo.param.SpThroughParam;
import com.njcn.prepare.harmonic.pojo.po.SpThroughPO;
+import com.njcn.prepare.harmonic.pojo.vo.SpThroughVO;
import java.util.List;
/**
@@ -17,8 +19,13 @@ public interface SpThroughService extends IMppService {
void record();
/**
- * 根据监测点ID集合获取高低电压穿越信息
+ * 根据事件ID集合及能源站类型获取高低电压穿越次数
*/
- List getDataByLineIds(List lineIds);
+ SpThroughVO getDataByEventIds(SpThroughParam spThroughParam);
+
+ /**
+ * 根据原有的事件集合进行过滤
+ */
+ List formatEventIds(SpThroughParam spThroughParam);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadCommPointBusService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadCommPointBusService.java
index 8bc40f077..c77c67aee 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadCommPointBusService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadCommPointBusService.java
@@ -14,4 +14,10 @@ public interface IRUploadCommPointBusService extends IService poLIst = new ArrayList<>();
@@ -177,6 +179,7 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.between(RUploadCommPointBus::getStatisticalDate,begin,end).eq(RUploadCommPointBus::getStatisticalType,DicDataEnum.STATISTICAL_TYPE_D.getCode());
+ List rUploadCommPointBusList = this.list(lambdaQueryWrapper);
+
+ List poLIst = new ArrayList<>();
+ Map> map = rUploadCommPointBusList.stream().collect(Collectors.groupingBy(RUploadCommPointBus::getBusId));
+ map.forEach((busId,list)->{
+ RUploadCommPointBus one = list.get(0);
+ RUploadCommPointBus rUploadCommPointBus = new RUploadCommPointBus();
+ rUploadCommPointBus.setObjId(IdUtil.simpleUUID());
+ rUploadCommPointBus.setBusId(busId);
+ rUploadCommPointBus.setBusName(one.getBusName());
+ rUploadCommPointBus.setBusVoltageLevel(one.getBusVoltageLevel());
+ rUploadCommPointBus.setStatisticalType(DicDataEnum.STATISTICAL_TYPE_M.getCode());
+ rUploadCommPointBus.setStatisticalDate(month);
+ rUploadCommPointBus.setProvinceOrg(one.getProvinceOrg());
+ rUploadCommPointBus.setProvinceOrgName(one.getProvinceOrgName());
+
+ rUploadCommPointBus.setCityOrg(one.getCityOrg());
+ rUploadCommPointBus.setCityOrgName(one.getCityOrgName());
+
+ rUploadCommPointBus.setMaintOrg(one.getMaintOrg());
+ rUploadCommPointBus.setMaintOrgName(one.getMaintOrgName());
+ rUploadCommPointBus.setStationType("zf01");
+ rUploadCommPointBus.setStationId(one.getStationId());
+ rUploadCommPointBus.setStationName(one.getStationName());
+ rUploadCommPointBus.setStationVoltageLevel(one.getStationVoltageLevel());
+
+ rUploadCommPointBus.setDataSource("01");
+
+
+ List temList = list.stream().map(RUploadCommPointBus::getMonitorId).collect(Collectors.toList());
+ String point = findMostFrequentString(temList);
+
+ rUploadCommPointBus.setMonitorId(point);
+
+ rUploadCommPointBus.setAvgVrms(list.stream().filter(item->Objects.nonNull(item.getAvgVrms())).mapToDouble(RUploadCommPointBus::getAvgVrms).average().orElse(0.0));
+ rUploadCommPointBus.setgVrms(list.stream().filter(item->Objects.nonNull(item.getgVrms())).mapToDouble(RUploadCommPointBus::getgVrms).average().orElse(0.0));
+
+ rUploadCommPointBus.setHarmVOvDuration(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDuration())).mapToInt(RUploadCommPointBus::getHarmVOvDuration).sum());
+ rUploadCommPointBus.setHarmVOvDays(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDays())).mapToInt(RUploadCommPointBus::getHarmVOvDays).sum());
+ rUploadCommPointBus.setVunbanOvDuration(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDuration())).mapToInt(RUploadCommPointBus::getVunbanOvDuration).sum());
+ rUploadCommPointBus.setVunbanOvDays(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDays())).mapToInt(RUploadCommPointBus::getVunbanOvDays).sum());
+ rUploadCommPointBus.setPltOvDuration(list.stream().filter(item->Objects.nonNull(item.getPltOvDuration())).mapToInt(RUploadCommPointBus::getPltOvDuration).sum());
+ rUploadCommPointBus.setPltOvDays(list.stream().filter(item->Objects.nonNull(item.getPltOvDays())).mapToInt(RUploadCommPointBus::getPltOvDays).sum());
+ rUploadCommPointBus.setOvDays(list.stream().filter(item->Objects.nonNull(item.getOvDays())).mapToInt(RUploadCommPointBus::getOvDays).sum());
+ rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
+ poLIst.add(rUploadCommPointBus);
+ });
+
+ if(CollUtil.isNotEmpty(poLIst)){
+ this.saveOrUpdateBatchByMultiId(poLIst);
+ }
+ }
+
+
+ public void handlerYear(String date){
+ DateTime begin = DateUtil.beginOfYear(DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN));
+ DateTime end = DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN);
+
+ String year = DateUtil.format(end,DatePattern.NORM_YEAR_PATTERN);
+
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.between(RUploadCommPointBus::getStatisticalDate,begin,end).eq(RUploadCommPointBus::getStatisticalType,DicDataEnum.STATISTICAL_TYPE_D.getCode());
+ List rUploadCommPointBusList = this.list(lambdaQueryWrapper);
+
+ List poLIst = new ArrayList<>();
+ Map> map = rUploadCommPointBusList.stream().collect(Collectors.groupingBy(RUploadCommPointBus::getBusId));
+ map.forEach((busId,list)->{
+ RUploadCommPointBus one = list.get(0);
+
+ RUploadCommPointBus rUploadCommPointBus = new RUploadCommPointBus();
+ rUploadCommPointBus.setStatisticalType(DicDataEnum.STATISTICAL_TYPE_Y.getCode());
+ rUploadCommPointBus.setStatisticalDate(year);
+
+ rUploadCommPointBus.setObjId(IdUtil.simpleUUID());
+ rUploadCommPointBus.setBusId(busId);
+ rUploadCommPointBus.setBusName(one.getBusName());
+ rUploadCommPointBus.setBusVoltageLevel(one.getBusVoltageLevel());
+ rUploadCommPointBus.setProvinceOrg(one.getProvinceOrg());
+ rUploadCommPointBus.setProvinceOrgName(one.getProvinceOrgName());
+
+ rUploadCommPointBus.setCityOrg(one.getCityOrg());
+ rUploadCommPointBus.setCityOrgName(one.getCityOrgName());
+
+ rUploadCommPointBus.setMaintOrg(one.getMaintOrg());
+ rUploadCommPointBus.setMaintOrgName(one.getMaintOrgName());
+ rUploadCommPointBus.setStationType("zf01");
+ rUploadCommPointBus.setStationId(one.getStationId());
+ rUploadCommPointBus.setStationName(one.getStationName());
+ rUploadCommPointBus.setStationVoltageLevel(one.getStationVoltageLevel());
+
+ rUploadCommPointBus.setDataSource("01");
+
+ List temList = list.stream().map(RUploadCommPointBus::getMonitorId).collect(Collectors.toList());
+ String point = findMostFrequentString(temList);
+
+ rUploadCommPointBus.setMonitorId(point);
+
+ rUploadCommPointBus.setAvgVrms(list.stream().filter(item->Objects.nonNull(item.getAvgVrms())).mapToDouble(RUploadCommPointBus::getAvgVrms).average().orElse(0.0));
+ rUploadCommPointBus.setgVrms(list.stream().filter(item->Objects.nonNull(item.getgVrms())).mapToDouble(RUploadCommPointBus::getgVrms).average().orElse(0.0));
+
+ rUploadCommPointBus.setHarmVOvDuration(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDuration())).mapToInt(RUploadCommPointBus::getHarmVOvDuration).sum());
+ rUploadCommPointBus.setHarmVOvDays(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDays())).mapToInt(RUploadCommPointBus::getHarmVOvDays).sum());
+ rUploadCommPointBus.setVunbanOvDuration(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDuration())).mapToInt(RUploadCommPointBus::getVunbanOvDuration).sum());
+ rUploadCommPointBus.setVunbanOvDays(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDays())).mapToInt(RUploadCommPointBus::getVunbanOvDays).sum());
+ rUploadCommPointBus.setPltOvDuration(list.stream().filter(item->Objects.nonNull(item.getPltOvDuration())).mapToInt(RUploadCommPointBus::getPltOvDuration).sum());
+ rUploadCommPointBus.setPltOvDays(list.stream().filter(item->Objects.nonNull(item.getPltOvDays())).mapToInt(RUploadCommPointBus::getPltOvDays).sum());
+ rUploadCommPointBus.setOvDays(list.stream().filter(item->Objects.nonNull(item.getOvDays())).mapToInt(RUploadCommPointBus::getOvDays).sum());
+ rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
+ poLIst.add(rUploadCommPointBus);
+ });
+ if(CollUtil.isNotEmpty(poLIst)){
+ this.saveOrUpdateBatchByMultiId(poLIst);
+ }
+ }
+
+
+ public String findMostFrequentString(List strings) {
+ if (strings == null || strings.isEmpty()) {
+ throw new IllegalArgumentException("输入的列表不能为空");
+ }
+
+ // 使用HashMap来记录每个字符串及其出现次数
+ Map frequencyMap = new HashMap<>();
+ for (String str : strings) {
+ frequencyMap.put(str, frequencyMap.getOrDefault(str, 0) + 1);
+ }
+
+ // 初始化最大出现次数和对应的字符串
+ int maxCount = 0;
+ String mostFrequent = strings.get(0); // 假设列表不为空,则取第一个字符串作为初始值
+
+ // 遍历HashMap找到出现次数最多的字符串
+ for (Map.Entry entry : frequencyMap.entrySet()) {
+ if (entry.getValue() > maxCount) {
+ maxCount = entry.getValue();
+ mostFrequent = entry.getKey();
+ }
+ }
+
+ return mostFrequent;
+ }
+
+
/***
* 获取越限最大值
* @param object
@@ -306,13 +461,6 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl list = calculatedParam.getIdList();
list.forEach(item -> {
- if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())) {
+ if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())
+ //县数据
+ || Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()),item.getDeptLevel())
+ || Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()), item.getDeptLevel())) {
return;
}
- if(item.getUnitId().equals("13B9B47F1E4F3324E05338297A0A0595")){
- System.out.println("555");
- }
BusBarDto busBarDto = allDept.stream().filter(o -> Objects.equals(o.getOrgId(), item.getUnitId())).findFirst().orElse(null);
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java
index cf648eb01..3b80d1aa7 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvFileController.java
@@ -9,6 +9,7 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
+import com.njcn.common.utils.FileUtil;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.process.pojo.param.SupvAlarmParam;
import com.njcn.process.pojo.param.SupvFileParam;
@@ -31,7 +32,7 @@ import java.util.List;
/**
*
- * 前端控制器
+ * 前端控制器
*
*
* @author hongawen
@@ -47,40 +48,45 @@ public class SupvFileController extends BaseController {
@PostMapping("planUpload")
- @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPLOAD)
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD)
@ApiOperation("监督计划问题附件上传")
public HttpResult