1.河北两级贯通接口调整

This commit is contained in:
cdf
2024-05-08 16:43:44 +08:00
parent 3e9d8638cb
commit 5036b8c75d
23 changed files with 434 additions and 128 deletions

View File

@@ -205,8 +205,7 @@ public interface CommTerminalGeneralClient {
HttpResult<List<SubGetBase>> tagOrIdGetSub(@RequestBody SubstationParam substationParam); HttpResult<List<SubGetBase>> tagOrIdGetSub(@RequestBody SubstationParam substationParam);
@GetMapping("/runLedgerStatistic")
HttpResult<Boolean> runLedgerStatistic(@RequestParam("date")String date);
/** /**

View File

@@ -169,11 +169,6 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<Boolean> runLedgerStatistic(String date) {
log.error("{}异常,降级处理,异常为:{}", "统计每日运行测点装置详细信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override @Override
public HttpResult<String> isPqOrPms() { public HttpResult<String> isPqOrPms() {

View File

@@ -17,7 +17,6 @@ import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsTerminal; import com.njcn.device.pms.pojo.po.PmsTerminal;
import com.njcn.device.pms.service.ledgerManger.CommTerminalService; import com.njcn.device.pms.service.ledgerManger.CommTerminalService;
import com.njcn.device.pms.service.ledgerManger.IPmsRunStatisticService;
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService; import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
import com.njcn.device.pms.service.majornetwork.IMonitorService; import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pms.service.majornetwork.ITerminalService; import com.njcn.device.pms.service.majornetwork.ITerminalService;
@@ -57,7 +56,6 @@ public class CommTerminalController extends BaseController {
private final ITerminalService terminalService; private final ITerminalService terminalService;
private final IPmsRunStatisticService iPmsRunStatisticService;
/** /**
* 通过部门获取所有子集部门所拥有的监测点 * 通过部门获取所有子集部门所拥有的监测点
@@ -435,19 +433,7 @@ public class CommTerminalController extends BaseController {
} }
/**
* 统计每日运行测点装置详细信息
* @author cdf
* @date 2024/4/17
*/
@GetMapping("runLedgerStatistic")
@ApiOperation("统计每日运行测点装置详细信息")
@ApiIgnore
public HttpResult<Boolean> runLedgerStatistic(@RequestParam("date") String date) {
String methodDescribe = getMethodDescribe("runLedgerStatistic");
iPmsRunStatisticService.statisticLedgerRunDay(date);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}

View File

@@ -0,0 +1,23 @@
package com.njcn.prepare.harmonic.api.upload;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.prepare.harmonic.api.upload.fallback.DimBusGlobalFeignClientFallbackFactory;
import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(
value = ServerInfo.PREPARE_BOOT,//对应模块名
path = "/dimGlobal",//对应controller请求类
fallbackFactory = DimBusGlobalFeignClientFallbackFactory.class//服务降级处理类
)
public interface DimBusGlobalFeignClient {
@GetMapping("/runLedgerStatistic")
void runLedgerStatistic (@RequestParam("date")String date);
}

View File

@@ -0,0 +1,35 @@
package com.njcn.prepare.harmonic.api.upload.fallback;
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.upload.DimBusGlobalFeignClient;
import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam;
import com.njcn.prepare.harmonic.utils.PrepareEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@Slf4j
@Component
public class DimBusGlobalFeignClientFallbackFactory implements FallbackFactory<DimBusGlobalFeignClient> {
@Override
public DimBusGlobalFeignClient create(Throwable throwable) {
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (throwable.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException)throwable.getCause();
exceptionEnum = PrepareEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DimBusGlobalFeignClient() {
@Override
public void runLedgerStatistic(@RequestParam("date")String date) {
log.error("{}异常,降级处理,异常为:{}", "统计周期台账运行详细信息: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -1,4 +1,4 @@
package com.njcn.device.pms.pojo.po; package com.njcn.prepare.harmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
@@ -51,13 +51,7 @@ public class PmsRunStatisticD {
private String onlineStationIds; private String onlineStationIds;
private String typicalTractionIds; private String typicalOnlineIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/** /**
* 创建时间 * 创建时间

View File

@@ -1,4 +1,4 @@
package com.njcn.device.pms.pojo.po; package com.njcn.prepare.harmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
@@ -20,7 +20,7 @@ import java.time.LocalDateTime;
* @author cdf * @author cdf
* @date 2024/4/17 * @date 2024/4/17
*/ */
@TableName(value = "pms_run_statistic_d") @TableName(value = "pms_run_statistic_m")
@Data @Data
public class PmsRunStatisticM { public class PmsRunStatisticM {
@@ -51,13 +51,7 @@ public class PmsRunStatisticM {
private String onlineStationIds; private String onlineStationIds;
private String typicalTractionIds; private String typicalOnlineIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/** /**
* 创建时间 * 创建时间

View File

@@ -1,4 +1,4 @@
package com.njcn.device.pms.pojo.po; package com.njcn.prepare.harmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
@@ -20,7 +20,7 @@ import java.time.LocalDateTime;
* @author cdf * @author cdf
* @date 2024/4/17 * @date 2024/4/17
*/ */
@TableName(value = "pms_run_statistic_d") @TableName(value = "pms_run_statistic_y")
@Data @Data
public class PmsRunStatisticY { public class PmsRunStatisticY {
@@ -51,13 +51,7 @@ public class PmsRunStatisticY {
private String onlineStationIds; private String onlineStationIds;
private String typicalTractionIds; private String typicalOnlineIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/** /**
* 创建时间 * 创建时间

View File

@@ -3,6 +3,7 @@ package com.njcn.prepare.harmonic.controller.dim;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
@@ -21,6 +22,9 @@ import com.njcn.prepare.harmonic.pojo.bo.BaseParam;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam; import com.njcn.prepare.harmonic.pojo.param.DeviceAbnormaStatisticsParam;
import com.njcn.prepare.harmonic.service.mysql.dim.*; import com.njcn.prepare.harmonic.service.mysql.dim.*;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticService;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept; import com.njcn.user.pojo.po.Dept;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
@@ -30,8 +34,10 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.*;
@@ -70,6 +76,13 @@ public class IRDimBusGlobalDController extends BaseController {
private final LiteFlowFeignClient liteFlowFeignClient; private final LiteFlowFeignClient liteFlowFeignClient;
private final IPmsRunStatisticService iPmsRunStatisticService;
private final IPmsRunStatisticMService iPmsRunStatisticMService;
private final IPmsRunStatisticYService iPmsRunStatisticYService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/dayDimGlobal") @PostMapping("/dayDimGlobal")
@ApiOperation("母线变电站每日运行情况统计") @ApiOperation("母线变电站每日运行情况统计")
@@ -265,4 +278,24 @@ public class IRDimBusGlobalDController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} }
/**
* 统计每日运行测点装置详细信息
* @author cdf
* @date 2024/4/17
*/
@GetMapping("runLedgerStatistic")
@ApiOperation("统计每日运行测点装置详细信息")
@Async("asyncExecutor")
public void runLedgerStatistic(@RequestParam("date") String date) {
TimeInterval timeInterval = new TimeInterval();
iPmsRunStatisticService.statisticLedgerRunDay(date);
iPmsRunStatisticMService.statisticLedgerRunMonth(date);
iPmsRunStatisticYService.statisticLedgerRunYear(date);
System.out.println(timeInterval.intervalSecond());
}
} }

View File

@@ -3,7 +3,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD; import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
/** /**
* <p> * <p>

View File

@@ -1,9 +1,9 @@
package com.njcn.device.pms.mapper.majornetwork; package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD; import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
/** /**
* <p> * <p>

View File

@@ -1,10 +1,9 @@
package com.njcn.device.pms.mapper.majornetwork; package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD; import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticM;
import com.njcn.device.pms.pojo.po.PmsRunStatisticM;
/** /**
* <p> * <p>

View File

@@ -1,10 +1,9 @@
package com.njcn.device.pms.mapper.majornetwork; package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD; import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticY;
import com.njcn.device.pms.pojo.po.PmsRunStatisticY;
/** /**
* <p> * <p>

View File

@@ -0,0 +1,28 @@
package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.biz.pojo.dto.SubGetBase;
import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
import com.njcn.device.pms.pojo.po.StatationStat;
import com.njcn.device.pms.pojo.vo.StatationStatVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author hongawen
* @since 2022-10-14
*/
public interface PmsStatationStatMapper extends BaseMapper<StatationStat> {
}

View File

@@ -0,0 +1,29 @@
package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticM;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface IPmsRunStatisticMService extends IMppService<PmsRunStatisticM> {
/**
* 每日统计每月
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunMonth(String date);
}

View File

@@ -1,8 +1,8 @@
package com.njcn.device.pms.service.ledgerManger; package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService; import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD; import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
/** /**
* <p> * <p>
@@ -22,19 +22,5 @@ public interface IPmsRunStatisticService extends IMppService<PmsRunStatisticD> {
void statisticLedgerRunDay(String date); void statisticLedgerRunDay(String date);
/**
* 每日统计每月
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunMonth(String date);
/**
* 每日统计每年
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunYear(String date);
} }

View File

@@ -0,0 +1,27 @@
package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticY;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface IPmsRunStatisticYService extends IMppService<PmsRunStatisticY> {
/**
* 每日统计每年
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunYear(String date);
}

View File

@@ -0,0 +1,102 @@
package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticMMapper;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticM;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
@Service
@RequiredArgsConstructor
public class PmsRunStatisticMServiceImpl extends MppServiceImpl<PmsRunStatisticMMapper, PmsRunStatisticM> implements IPmsRunStatisticMService {
private final PmsRunStatisticDMapper pmsRunStatisticDMapper;
@Override
public void statisticLedgerRunMonth(String date) {
List<PmsRunStatisticM> poList = new ArrayList<>();
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(date));
DateTime end = DateUtil.endOfMonth(DateUtil.parse(date));
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = begin.toInstant().atZone(zoneId).toLocalDate();
LambdaQueryWrapper<PmsRunStatisticD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(PmsRunStatisticD::getStatisticDate,begin,end);
List<PmsRunStatisticD> pmsRunStatisticDList = pmsRunStatisticDMapper.selectList(lambdaQueryWrapper);
Map<String,List<PmsRunStatisticD>> map = pmsRunStatisticDList.stream().collect(Collectors.groupingBy(PmsRunStatisticD::getDeptId));
map.forEach((key,val)->{
PmsRunStatisticM pmsRunStatisticM = new PmsRunStatisticM();
pmsRunStatisticM.setDeptId(key);
pmsRunStatisticM.setStatisticDate(localDate);
Set<String> pointSet = new HashSet<>();
Set<String> pointOnlineSet = new HashSet<>();
Set<String> busSet = new HashSet<>();
Set<String> stationSet = new HashSet<>();
Set<String> typicalSet = new HashSet<>();
val.forEach(item->{
if(StrUtil.isNotBlank(item.getRunMonitorIds())){
pointSet.addAll(Arrays.asList(item.getRunMonitorIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getOnlineMonitorIds())){
pointOnlineSet.addAll(Arrays.asList(item.getOnlineMonitorIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getOnlineBusIds())){
busSet.addAll(Arrays.asList(item.getOnlineBusIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getOnlineStationIds())){
stationSet.addAll(Arrays.asList(item.getOnlineStationIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getTypicalOnlineIds())){
typicalSet.addAll(Arrays.asList(item.getTypicalOnlineIds().split(StrUtil.COMMA)));
}
});
pmsRunStatisticM.setRunMonitorIds(String.join(StrUtil.COMMA,pointSet));
pmsRunStatisticM.setOnlineMonitorIds(String.join(StrUtil.COMMA,pointOnlineSet));
pmsRunStatisticM.setOnlineBusIds(String.join(StrUtil.COMMA,busSet));
pmsRunStatisticM.setOnlineStationIds(String.join(StrUtil.COMMA,stationSet));
pmsRunStatisticM.setTypicalOnlineIds(String.join(StrUtil.COMMA,typicalSet));
//月在运母线,电站数量取日的最大值
int temBus = val.stream().map(PmsRunStatisticD::getRunBusNum).filter(Objects::nonNull).max(Integer::compareTo).orElse(0);
int temStation = val.stream().map(PmsRunStatisticD::getRunStationNum).filter(Objects::nonNull).max(Integer::compareTo).orElse(0);
pmsRunStatisticM.setRunBusNum(temBus);
pmsRunStatisticM.setRunStationNum(temStation);
poList.add(pmsRunStatisticM);
});
this.saveOrUpdateBatchByMultiId(poList);
}
}

View File

@@ -1,21 +1,25 @@
package com.njcn.device.pms.service.ledgerManger.impl; package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam; import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pms.mapper.majornetwork.*; import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.*; import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.service.ledgerManger.CommTerminalService; import com.njcn.device.pms.pojo.po.StatationStat;
import com.njcn.device.pms.service.ledgerManger.IPmsRunStatisticService;
import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsMidLedgerMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsStatationStatMapper;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataEnum;
@@ -33,7 +37,6 @@ import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* <p> * <p>
@@ -47,7 +50,7 @@ import java.util.stream.Stream;
@RequiredArgsConstructor @RequiredArgsConstructor
public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDMapper, PmsRunStatisticD> implements IPmsRunStatisticService { public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDMapper, PmsRunStatisticD> implements IPmsRunStatisticService {
private final CommTerminalService commTerminalService;
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
@@ -57,11 +60,18 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDM
private final DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
private final MonitorMapper monitorMapper;
private final DictTreeFeignClient dictTreeFeignClient; private final DictTreeFeignClient dictTreeFeignClient;
private final StatationStatMapper statationStatMapper; private final CommTerminalGeneralClient commTerminalGeneralClient;
private final PmsMonitorPOMapper pmsMonitorPOMapper;
private final PmsStatationStatMapper pmsStatationStatMapper;
@Override @Override
@@ -72,7 +82,7 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDM
deptGetLineParam.setDeptId(dept.getId()); deptGetLineParam.setDeptId(dept.getId());
deptGetLineParam.setIsUpToGrid(1); deptGetLineParam.setIsUpToGrid(1);
List<DeptGetChildrenMoreDTO> deptGetChildrenMoreDTOList = commTerminalService.deptGetLine(deptGetLineParam); List<DeptGetChildrenMoreDTO> deptGetChildrenMoreDTOList = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
List<PmsRunStatisticD> poList = new ArrayList<>(); List<PmsRunStatisticD> poList = new ArrayList<>();
//获取在运母线在运电站数量 //获取在运母线在运电站数量
@@ -81,9 +91,9 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDM
//获取在运,符合上送国网的测点,用于过滤监测母线监测电站 //获取在运,符合上送国网的测点,用于过滤监测母线监测电站
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.RUN.getCode(),DicDataTypeEnum.LINE_STATE.getCode()).getData(); DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.RUN.getCode(),DicDataTypeEnum.LINE_STATE.getCode()).getData();
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>().eq(Monitor::getMonitorState,dictData.getId()).eq(Monitor::getIsUpToGrid,DataStateEnum.ENABLE.getCode())); List<Monitor> monitorList = pmsMonitorPOMapper.selectList(new LambdaQueryWrapper<Monitor>().eq(Monitor::getMonitorState,dictData.getId()).eq(Monitor::getIsUpToGrid,DataStateEnum.ENABLE.getCode()));
List<StatationStat> statationStatList = statationStatMapper.selectList(new LambdaQueryWrapper<StatationStat>().isNotNull(StatationStat::getMidStationId)); List<StatationStat> statationStatList = pmsStatationStatMapper.selectList(new LambdaQueryWrapper<StatationStat>().isNotNull(StatationStat::getMidStationId));
//数据完整性 //数据完整性
@@ -91,28 +101,13 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDM
//对象类型 //对象类型
List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData(); List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData();
List<String> windfarm_user = Stream.of(DicDataEnum.WINDPOWER_STATION.getCode()).collect(Collectors.toList());
List<String> photovoltaicsit_eusers = Stream.of(DicDataEnum.PHOTOVOLTAIC_POWER_STATION.getCode()).collect(Collectors.toList());
List<String> tractionstation = Stream.of(DicDataEnum.ELECTRIFIED_RAILWAY.getCode()).collect(Collectors.toList());
DictTreeVO dictTreeVO = dictTreeFeignClient.queryByCode(DicTreeEnum.Imp_Users.getCode()).getData(); DictTreeVO dictTreeVO = dictTreeFeignClient.queryByCode(DicTreeEnum.Imp_Users.getCode()).getData();
List<DictTreeVO> dictTreeVOList = dictTreeFeignClient.query(dictTreeVO.getId()).getData(); List<DictTreeVO> dictTreeVOList = dictTreeFeignClient.query(dictTreeVO.getId()).getData();
List<String> importUser = dictTreeVOList.stream().map(DictTreeVO::getCode).distinct().collect(Collectors.toList()); List<String> importUser = dictTreeVOList.stream().map(DictTreeVO::getCode).distinct().collect(Collectors.toList());
importUser.add(dictTreeVO.getCode()); importUser.add(dictTreeVO.getCode());
List<String> windfarm_user_dict = sysdictreepo.stream().filter(temp -> windfarm_user.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> photovoltaicsit_eusers_dict = sysdictreepo.stream().filter(temp -> photovoltaicsit_eusers.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> tractionstation_dict = sysdictreepo.stream().filter(temp -> tractionstation.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> import_dict = sysdictreepo.stream().filter(temp -> importUser.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList()); List<String> import_dict = sysdictreepo.stream().filter(temp -> importUser.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> un_other_interferencesource_users_dict = new ArrayList<>();
un_other_interferencesource_users_dict.addAll(photovoltaicsit_eusers_dict);
un_other_interferencesource_users_dict.addAll(tractionstation_dict);
un_other_interferencesource_users_dict.addAll(windfarm_user_dict);
un_other_interferencesource_users_dict.addAll(import_dict);
//遍历每个部门 //遍历每个部门
for(DeptGetChildrenMoreDTO dto : deptGetChildrenMoreDTOList){ for(DeptGetChildrenMoreDTO dto : deptGetChildrenMoreDTOList){
List<String> childrenDept = dto.getUnitChildrenList(); List<String> childrenDept = dto.getUnitChildrenList();
@@ -142,34 +137,16 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDM
pmsRunStatisticD.setOnlineStationIds(String.join(StrUtil.COMMA, runStationIds)); pmsRunStatisticD.setOnlineStationIds(String.join(StrUtil.COMMA, runStationIds));
//典型统计 //典型统计
List<String> windPointIds = dto.getLineBaseList().stream().filter(it->windfarm_user_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); List<String> typicalOnlineIds = dto.getLineBaseList().stream().filter(it->!import_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
List<String> sunPointIds = dto.getLineBaseList().stream().filter(it->photovoltaicsit_eusers_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); pmsRunStatisticD.setTypicalOnlineIds(String.join(StrUtil.COMMA, typicalOnlineIds));
List<String> tractionPointIds = dto.getLineBaseList().stream().filter(it->tractionstation_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
List<String> otherPointIds = dto.getLineBaseList().stream().filter(it->!un_other_interferencesource_users_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
pmsRunStatisticD.setTypicalWindIds(String.join(StrUtil.COMMA, windPointIds));
pmsRunStatisticD.setTypicalSunIds(String.join(StrUtil.COMMA, sunPointIds));
pmsRunStatisticD.setTypicalTractionIds(String.join(StrUtil.COMMA, tractionPointIds));
pmsRunStatisticD.setTypicalOtherIds(String.join(StrUtil.COMMA, otherPointIds));
poList.add(pmsRunStatisticD); poList.add(pmsRunStatisticD);
} }
this.saveBatch(poList); this.saveOrUpdateBatchByMultiId(poList);
} }
@Override
public void statisticLedgerRunMonth(String date) {
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(date));
DateTime end = DateUtil.endOfMonth(DateUtil.parse(date));
}
@Override
public void statisticLedgerRunYear(String date) {
}
/** /**
* 获取中台母线电站信息 * 获取中台母线电站信息
*/ */

View File

@@ -0,0 +1,105 @@
package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticMMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticYMapper;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticM;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticY;
import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
@Service
@RequiredArgsConstructor
public class PmsRunStatisticYServiceImpl extends MppServiceImpl<PmsRunStatisticYMapper, PmsRunStatisticY> implements IPmsRunStatisticYService {
private final PmsRunStatisticMMapper pmsRunStatisticMMapper;
@Override
public void statisticLedgerRunYear(String date) {
List<PmsRunStatisticY> poList = new ArrayList<>();
DateTime begin = DateUtil.beginOfYear(DateUtil.parse(date));
DateTime end = DateUtil.endOfYear(DateUtil.parse(date));
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = begin.toInstant().atZone(zoneId).toLocalDate();
LambdaQueryWrapper<PmsRunStatisticM> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(PmsRunStatisticM::getStatisticDate,begin,end);
List<PmsRunStatisticM> pmsRunStatisticDList = pmsRunStatisticMMapper.selectList(lambdaQueryWrapper);
Map<String,List<PmsRunStatisticM>> map = pmsRunStatisticDList.stream().collect(Collectors.groupingBy(PmsRunStatisticM::getDeptId));
map.forEach((key,val)->{
PmsRunStatisticY pmsRunStatisticY = new PmsRunStatisticY();
pmsRunStatisticY.setDeptId(key);
pmsRunStatisticY.setStatisticDate(localDate);
Set<String> pointSet = new HashSet<>();
Set<String> pointOnlineSet = new HashSet<>();
Set<String> busSet = new HashSet<>();
Set<String> stationSet = new HashSet<>();
Set<String> typicalSet = new HashSet<>();
val.forEach(item->{
if(StrUtil.isNotBlank(item.getRunMonitorIds())){
pointSet.addAll(Arrays.asList(item.getRunMonitorIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getOnlineMonitorIds())){
pointOnlineSet.addAll(Arrays.asList(item.getOnlineMonitorIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getOnlineBusIds())){
busSet.addAll(Arrays.asList(item.getOnlineBusIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getOnlineStationIds())){
stationSet.addAll(Arrays.asList(item.getOnlineStationIds().split(StrUtil.COMMA)));
}
if(StrUtil.isNotBlank(item.getTypicalOnlineIds())){
typicalSet.addAll(Arrays.asList(item.getTypicalOnlineIds().split(StrUtil.COMMA)));
}
});
pmsRunStatisticY.setRunMonitorIds(String.join(StrUtil.COMMA,pointSet));
pmsRunStatisticY.setOnlineMonitorIds(String.join(StrUtil.COMMA,pointOnlineSet));
pmsRunStatisticY.setOnlineBusIds(String.join(StrUtil.COMMA,busSet));
pmsRunStatisticY.setOnlineStationIds(String.join(StrUtil.COMMA,stationSet));
pmsRunStatisticY.setTypicalOnlineIds(String.join(StrUtil.COMMA,typicalSet));
//月在运母线,电站数量取日的最大值
int temBus = val.stream().map(PmsRunStatisticM::getRunBusNum).filter(Objects::nonNull).max(Integer::compareTo).orElse(0);
int temStation = val.stream().map(PmsRunStatisticM::getRunStationNum).filter(Objects::nonNull).max(Integer::compareTo).orElse(0);
pmsRunStatisticY.setRunBusNum(temBus);
pmsRunStatisticY.setRunStationNum(temStation);
poList.add(pmsRunStatisticY);
});
this.saveOrUpdateBatchByMultiId(poList);
}
}

View File

@@ -12,7 +12,6 @@ import com.njcn.device.biz.commApi.CommLineClient;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDTO; import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD; import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum; import com.njcn.prepare.harmonic.enums.UploadEnum;
@@ -20,6 +19,7 @@ import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsRunStatisticMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.PmsRunStatisticMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadPointStatisticalDataDMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadPointStatisticalDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService; import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.api.DictTreeFeignClient;

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.prepare.harmonic.api.upload.DimBusGlobalFeignClient;
import com.njcn.system.timer.TimerTaskRunner; import com.njcn.system.timer.TimerTaskRunner;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -18,13 +19,13 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor @RequiredArgsConstructor
public class PmsRunStatisticTaskRunner implements TimerTaskRunner { public class PmsRunStatisticTaskRunner implements TimerTaskRunner {
private final CommTerminalGeneralClient commTerminalGeneralClient; private final DimBusGlobalFeignClient dimBusGlobalFeignClient;
@Override @Override
public void action(String date) { public void action(String date) {
if(StrUtil.isBlank(date)){ if(StrUtil.isBlank(date)){
date = DateUtil.format(DateUtil.yesterday(),DatePattern.NORM_DATE_PATTERN); date = DateUtil.format(DateUtil.yesterday(),DatePattern.NORM_DATE_PATTERN);
} }
commTerminalGeneralClient.runLedgerStatistic(date); dimBusGlobalFeignClient.runLedgerStatistic(date);
} }
} }

View File

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
/** /**
* pqs * pqs
* * 每日定时统计河北两级贯通接口主网数据,用于后续定时上送国网
* @author cdf * @author cdf
* @date 2024/2/22 * @date 2024/2/22
*/ */