1.河北两级贯通接口调整
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user