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

@@ -3,6 +3,7 @@ package com.njcn.prepare.harmonic.controller.dim;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.util.StrUtil;
import com.njcn.common.pojo.annotation.OperateInfo;
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.param.DeviceAbnormaStatisticsParam;
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.pojo.po.Dept;
import com.njcn.web.controller.BaseController;
@@ -30,8 +34,10 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.time.LocalDate;
import java.util.*;
@@ -70,6 +76,13 @@ public class IRDimBusGlobalDController extends BaseController {
private final LiteFlowFeignClient liteFlowFeignClient;
private final IPmsRunStatisticService iPmsRunStatisticService;
private final IPmsRunStatisticMService iPmsRunStatisticMService;
private final IPmsRunStatisticYService iPmsRunStatisticYService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/dayDimGlobal")
@ApiOperation("母线变电站每日运行情况统计")
@@ -265,4 +278,24 @@ public class IRDimBusGlobalDController extends BaseController {
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.njcn.device.pms.pojo.po.PmsRunStatisticD;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
/**
* <p>

View File

@@ -0,0 +1,18 @@
package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticDMapper extends MppBaseMapper<PmsRunStatisticD> {
}

View File

@@ -0,0 +1,18 @@
package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticM;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticMMapper extends MppBaseMapper<PmsRunStatisticM> {
}

View File

@@ -0,0 +1,18 @@
package com.njcn.prepare.harmonic.mapper.mysql.upload;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticY;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticYMapper extends MppBaseMapper<PmsRunStatisticY> {
}

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

@@ -0,0 +1,26 @@
package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.po.PmsRunStatisticD;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface IPmsRunStatisticService extends IMppService<PmsRunStatisticD> {
/**
* 对外接口,统计每日在运测点,在线装置详细信息
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunDay(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

@@ -0,0 +1,159 @@
package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
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.LineDevGetDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.pojo.po.StatationStat;
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.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.enums.DicTreeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.SysDicTreePO;
import com.njcn.system.pojo.vo.DictTreeVO;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
@Service
@RequiredArgsConstructor
public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDMapper, PmsRunStatisticD> implements IPmsRunStatisticService {
private final DeptFeignClient deptFeignClient;
private final RStatIntegrityDMapper rStatIntegrityDMapper;
private final PmsMidLedgerMapper pmsMidLedgerMapper;
private final DicDataFeignClient dicDataFeignClient;
private final DictTreeFeignClient dictTreeFeignClient;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private final PmsMonitorPOMapper pmsMonitorPOMapper;
private final PmsStatationStatMapper pmsStatationStatMapper;
@Override
public void statisticLedgerRunDay(String date) {
Dept dept = deptFeignClient.getRootDept().getData();
LocalDate localDate = LocalDate.parse(date);
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(dept.getId());
deptGetLineParam.setIsUpToGrid(1);
List<DeptGetChildrenMoreDTO> deptGetChildrenMoreDTOList = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
List<PmsRunStatisticD> poList = new ArrayList<>();
//获取在运母线,在运电站数量
List<PmsMidLedger> midLedgerStationList = this.getBusBarAndStationInfo(0);
List<PmsMidLedger> midLedgerBusBarList = this.getBusBarAndStationInfo(1);
//获取在运,符合上送国网的测点,用于过滤监测母线,监测电站
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.RUN.getCode(),DicDataTypeEnum.LINE_STATE.getCode()).getData();
List<Monitor> monitorList = pmsMonitorPOMapper.selectList(new LambdaQueryWrapper<Monitor>().eq(Monitor::getMonitorState,dictData.getId()).eq(Monitor::getIsUpToGrid,DataStateEnum.ENABLE.getCode()));
List<StatationStat> statationStatList = pmsStatationStatMapper.selectList(new LambdaQueryWrapper<StatationStat>().isNotNull(StatationStat::getMidStationId));
//数据完整性
List<String> rStatIntegrityIds = rStatIntegrityDMapper.selectList(new LambdaQueryWrapper<RStatIntegrityD>().eq(RStatIntegrityD::getTimeId,localDate).gt(RStatIntegrityD::getRealTime,0)).stream().map(RStatIntegrityD::getLineIndex).distinct().collect(Collectors.toList());
//对象类型
List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData();
DictTreeVO dictTreeVO = dictTreeFeignClient.queryByCode(DicTreeEnum.Imp_Users.getCode()).getData();
List<DictTreeVO> dictTreeVOList = dictTreeFeignClient.query(dictTreeVO.getId()).getData();
List<String> importUser = dictTreeVOList.stream().map(DictTreeVO::getCode).distinct().collect(Collectors.toList());
importUser.add(dictTreeVO.getCode());
List<String> import_dict = sysdictreepo.stream().filter(temp -> importUser.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
//遍历每个部门
for(DeptGetChildrenMoreDTO dto : deptGetChildrenMoreDTOList){
List<String> childrenDept = dto.getUnitChildrenList();
List<String> temPointIds = dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onlinePointIds = temPointIds.stream().filter(rStatIntegrityIds::contains).collect(Collectors.toList());
PmsRunStatisticD pmsRunStatisticD = new PmsRunStatisticD();
pmsRunStatisticD.setStatisticDate(localDate);
pmsRunStatisticD.setDeptId(dto.getUnitId());
pmsRunStatisticD.setRunMonitorIds(String.join(StrUtil.COMMA, temPointIds));
pmsRunStatisticD.setOnlineMonitorIds(String.join(StrUtil.COMMA, onlinePointIds));
pmsRunStatisticD.setRunDevIds(dto.getLineBaseList().stream().map(LineDevGetDTO::getDevId).distinct().collect(Collectors.joining(StrUtil.COMMA)));
long stationCount = midLedgerStationList.stream().filter(it->childrenDept.contains(it.getSectionId())).map(PmsMidLedger::getId).distinct().count();
pmsRunStatisticD.setRunStationNum((int) stationCount);
long busBarCount = midLedgerBusBarList.stream().filter(it->childrenDept.contains(it.getSectionId())).map(PmsMidLedger::getId).distinct().count();
pmsRunStatisticD.setRunBusNum((int) busBarCount);
List<String> runBusIds = monitorList.stream().filter(it->childrenDept.contains(it.getOrgId())).map(Monitor::getLineId).distinct().collect(Collectors.toList());
pmsRunStatisticD.setOnlineBusIds(String.join(StrUtil.COMMA, runBusIds));
List<String> runStationIds = statationStatList.stream().filter(it->childrenDept.contains(it.getOrgId())).map(StatationStat::getPowerId).distinct().collect(Collectors.toList());
pmsRunStatisticD.setOnlineStationIds(String.join(StrUtil.COMMA, runStationIds));
//典型统计
List<String> typicalOnlineIds = dto.getLineBaseList().stream().filter(it->!import_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
pmsRunStatisticD.setTypicalOnlineIds(String.join(StrUtil.COMMA, typicalOnlineIds));
poList.add(pmsRunStatisticD);
}
this.saveOrUpdateBatchByMultiId(poList);
}
/**
* 获取中台母线电站信息
*/
public List<PmsMidLedger> getBusBarAndStationInfo(Integer type) {
LambdaQueryWrapper<PmsMidLedger> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PmsMidLedger::getLevel,type)
.eq(PmsMidLedger::getState, DataStateEnum.ENABLE.getCode());
return pmsMidLedgerMapper.selectList(lambdaQueryWrapper);
}
}

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.LineDTO;
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.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
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.upload.RUploadPointStatisticalDataDMapper;
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.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient;