1.河北两级贯通接口新增台账运行详情统计

This commit is contained in:
cdf
2024-05-08 10:17:57 +08:00
parent 3fecc56f93
commit d8cb5479e8
10 changed files with 214 additions and 40 deletions

View File

@@ -9,9 +9,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -24,7 +22,7 @@ import java.time.LocalDateTime;
*/ */
@TableName(value = "pms_run_statistic_d") @TableName(value = "pms_run_statistic_d")
@Data @Data
public class PmsRunStatistic{ public class PmsRunStatisticD {
/** /**
* *

View File

@@ -0,0 +1,73 @@
package com.njcn.device.pms.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* pqs
*
* @author cdf
* @date 2024/4/17
*/
@TableName(value = "pms_run_statistic_d")
@Data
public class PmsRunStatisticM {
/**
*
*/
@MppMultiId
private LocalDate statisticDate;
@MppMultiId
private String deptId;
private String runMonitorIds;
private String onlineMonitorIds;
private String runBusIds;
private Integer runBusNum;
private String onlineBusIds;
private String runDevIds;
private String runStationIds;
private Integer runStationNum;
private String onlineStationIds;
private String typicalTractionIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,73 @@
package com.njcn.device.pms.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* pqs
*
* @author cdf
* @date 2024/4/17
*/
@TableName(value = "pms_run_statistic_d")
@Data
public class PmsRunStatisticY {
/**
*
*/
@MppMultiId
private LocalDate statisticDate;
@MppMultiId
private String deptId;
private String runMonitorIds;
private String onlineMonitorIds;
private String runBusIds;
private Integer runBusNum;
private String onlineBusIds;
private String runDevIds;
private String runStationIds;
private Integer runStationNum;
private String onlineStationIds;
private String typicalTractionIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createTime;
}

View File

@@ -3,7 +3,7 @@ package com.njcn.device.pms.mapper.majornetwork;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatistic; import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
/** /**
* <p> * <p>
@@ -13,6 +13,6 @@ import com.njcn.device.pms.pojo.po.PmsRunStatistic;
* @author cdf * @author cdf
* @since 2024-04-17 * @since 2024-04-17
*/ */
public interface PmsRunStatisticMapper extends MppBaseMapper<PmsRunStatistic> { public interface PmsRunStatisticDMapper extends MppBaseMapper<PmsRunStatisticD> {
} }

View File

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

View File

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

View File

@@ -1,11 +1,8 @@
package com.njcn.device.pms.service.ledgerManger; package com.njcn.device.pms.service.ledgerManger;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.jeffreyning.mybatisplus.service.IMppService; import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.pms.pojo.po.PmsRunStatistic; import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
import java.time.LocalDate;
/** /**
* <p> * <p>
@@ -15,7 +12,7 @@ import java.time.LocalDate;
* @author cdf * @author cdf
* @since 2024-04-17 * @since 2024-04-17
*/ */
public interface IPmsRunStatisticService extends IMppService<PmsRunStatistic> { public interface IPmsRunStatisticService extends IMppService<PmsRunStatisticD> {
/** /**
* 对外接口,统计每日在运测点,在线装置详细信息 * 对外接口,统计每日在运测点,在线装置详细信息

View File

@@ -2,7 +2,6 @@ package com.njcn.device.pms.service.ledgerManger.impl;
import cn.hutool.core.collection.CollectionUtil;
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.util.StrUtil; import cn.hutool.core.util.StrUtil;
@@ -16,14 +15,12 @@ import com.njcn.device.pms.mapper.majornetwork.*;
import com.njcn.device.pms.pojo.po.*; import com.njcn.device.pms.pojo.po.*;
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.ledgerManger.IPmsRunStatisticService;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatIntegrityD;
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;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.enums.DicTreeEnum; import com.njcn.system.enums.DicTreeEnum;
import com.njcn.system.pojo.po.Dic;
import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.SysDicTreePO; import com.njcn.system.pojo.po.SysDicTreePO;
import com.njcn.system.pojo.vo.DictTreeVO; import com.njcn.system.pojo.vo.DictTreeVO;
@@ -48,7 +45,7 @@ import java.util.stream.Stream;
*/ */
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticMapper, PmsRunStatistic> implements IPmsRunStatisticService { public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDMapper, PmsRunStatisticD> implements IPmsRunStatisticService {
private final CommTerminalService commTerminalService; private final CommTerminalService commTerminalService;
@@ -76,7 +73,7 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticMa
deptGetLineParam.setIsUpToGrid(1); deptGetLineParam.setIsUpToGrid(1);
List<DeptGetChildrenMoreDTO> deptGetChildrenMoreDTOList = commTerminalService.deptGetLine(deptGetLineParam); List<DeptGetChildrenMoreDTO> deptGetChildrenMoreDTOList = commTerminalService.deptGetLine(deptGetLineParam);
List<PmsRunStatistic> poList = new ArrayList<>(); List<PmsRunStatisticD> poList = new ArrayList<>();
//获取在运母线,在运电站数量 //获取在运母线,在运电站数量
List<PmsMidLedger> midLedgerStationList = this.getBusBarAndStationInfo(0); List<PmsMidLedger> midLedgerStationList = this.getBusBarAndStationInfo(0);
@@ -124,36 +121,36 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticMa
List<String> onlinePointIds = temPointIds.stream().filter(rStatIntegrityIds::contains).collect(Collectors.toList()); List<String> onlinePointIds = temPointIds.stream().filter(rStatIntegrityIds::contains).collect(Collectors.toList());
PmsRunStatistic pmsRunStatistic = new PmsRunStatistic(); PmsRunStatisticD pmsRunStatisticD = new PmsRunStatisticD();
pmsRunStatistic.setStatisticDate(localDate); pmsRunStatisticD.setStatisticDate(localDate);
pmsRunStatistic.setDeptId(dto.getUnitId()); pmsRunStatisticD.setDeptId(dto.getUnitId());
pmsRunStatistic.setRunMonitorIds(String.join(StrUtil.COMMA, temPointIds)); pmsRunStatisticD.setRunMonitorIds(String.join(StrUtil.COMMA, temPointIds));
pmsRunStatistic.setOnlineMonitorIds(String.join(StrUtil.COMMA, onlinePointIds)); pmsRunStatisticD.setOnlineMonitorIds(String.join(StrUtil.COMMA, onlinePointIds));
pmsRunStatistic.setRunDevIds(dto.getLineBaseList().stream().map(LineDevGetDTO::getDevId).distinct().collect(Collectors.joining(StrUtil.COMMA))); 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(); long stationCount = midLedgerStationList.stream().filter(it->childrenDept.contains(it.getSectionId())).map(PmsMidLedger::getId).distinct().count();
pmsRunStatistic.setRunStationNum((int) stationCount); pmsRunStatisticD.setRunStationNum((int) stationCount);
long busBarCount = midLedgerBusBarList.stream().filter(it->childrenDept.contains(it.getSectionId())).map(PmsMidLedger::getId).distinct().count(); long busBarCount = midLedgerBusBarList.stream().filter(it->childrenDept.contains(it.getSectionId())).map(PmsMidLedger::getId).distinct().count();
pmsRunStatistic.setRunBusNum((int) busBarCount); pmsRunStatisticD.setRunBusNum((int) busBarCount);
List<String> runBusIds = monitorList.stream().filter(it->childrenDept.contains(it.getOrgId())).map(Monitor::getLineId).distinct().collect(Collectors.toList()); List<String> runBusIds = monitorList.stream().filter(it->childrenDept.contains(it.getOrgId())).map(Monitor::getLineId).distinct().collect(Collectors.toList());
pmsRunStatistic.setOnlineBusIds(String.join(StrUtil.COMMA, runBusIds)); 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()); List<String> runStationIds = statationStatList.stream().filter(it->childrenDept.contains(it.getOrgId())).map(StatationStat::getPowerId).distinct().collect(Collectors.toList());
pmsRunStatistic.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> windPointIds = dto.getLineBaseList().stream().filter(it->windfarm_user_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()); List<String> sunPointIds = dto.getLineBaseList().stream().filter(it->photovoltaicsit_eusers_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
List<String> tractionPointIds = dto.getLineBaseList().stream().filter(it->tractionstation_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); 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()); List<String> otherPointIds = dto.getLineBaseList().stream().filter(it->!un_other_interferencesource_users_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
pmsRunStatistic.setTypicalWindIds(String.join(StrUtil.COMMA, windPointIds)); pmsRunStatisticD.setTypicalWindIds(String.join(StrUtil.COMMA, windPointIds));
pmsRunStatistic.setTypicalSunIds(String.join(StrUtil.COMMA, sunPointIds)); pmsRunStatisticD.setTypicalSunIds(String.join(StrUtil.COMMA, sunPointIds));
pmsRunStatistic.setTypicalTractionIds(String.join(StrUtil.COMMA, tractionPointIds)); pmsRunStatisticD.setTypicalTractionIds(String.join(StrUtil.COMMA, tractionPointIds));
pmsRunStatistic.setTypicalOtherIds(String.join(StrUtil.COMMA, otherPointIds)); pmsRunStatisticD.setTypicalOtherIds(String.join(StrUtil.COMMA, otherPointIds));
poList.add(pmsRunStatistic); poList.add(pmsRunStatisticD);
} }
this.saveBatch(poList); this.saveBatch(poList);
} }
@@ -163,6 +160,8 @@ public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticMa
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(date)); DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(date));
DateTime end = DateUtil.endOfMonth(DateUtil.parse(date)); DateTime end = DateUtil.endOfMonth(DateUtil.parse(date));
} }
@Override @Override

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.PmsRunStatistic; import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
/** /**
* <p> * <p>
@@ -13,6 +13,6 @@ import com.njcn.device.pms.pojo.po.PmsRunStatistic;
* @author cdf * @author cdf
* @since 2024-04-17 * @since 2024-04-17
*/ */
public interface PmsRunStatisticMapper extends MppBaseMapper<PmsRunStatistic> { public interface PmsRunStatisticMapper extends MppBaseMapper<PmsRunStatisticD> {
} }

View File

@@ -5,25 +5,21 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
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.device.biz.commApi.CommLineClient; import com.njcn.device.biz.commApi.CommLineClient;
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.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.PmsRunStatistic; 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;
import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper; 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.dto.UploadPointStatisticalParam;
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;
@@ -136,12 +132,12 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
//下面先从表里获取在运测点相关数据,当表里没数据时候再从接口获取 //下面先从表里获取在运测点相关数据,当表里没数据时候再从接口获取
//首先获取pms_run_statistic表是否存在执行日期的数据 //首先获取pms_run_statistic表是否存在执行日期的数据
List<PmsRunStatistic> pmsRunStatisticsList = pmsRunStatisticMapper.selectList(new LambdaQueryWrapper<PmsRunStatistic>().eq(PmsRunStatistic::getStatisticDate,calculatedParam.getDataDate())); List<PmsRunStatisticD> pmsRunStatisticsListD = pmsRunStatisticMapper.selectList(new LambdaQueryWrapper<PmsRunStatisticD>().eq(PmsRunStatisticD::getStatisticDate,calculatedParam.getDataDate()));
//筛选国网上送监测点 //筛选国网上送监测点
List<DeptGetChildrenMoreDTO> deptAll = calculatedParam.getIdList(); List<DeptGetChildrenMoreDTO> deptAll = calculatedParam.getIdList();
Map<String,PmsRunStatistic> pmsRunStatisticMap = pmsRunStatisticsList.stream().collect(Collectors.toMap(PmsRunStatistic::getDeptId,Function.identity())); Map<String, PmsRunStatisticD> pmsRunStatisticMap = pmsRunStatisticsListD.stream().collect(Collectors.toMap(PmsRunStatisticD::getDeptId,Function.identity()));
List<LineDTO> lineDTOList; List<LineDTO> lineDTOList;
if(pmsRunStatisticMap.containsKey(dept.getCode())){ if(pmsRunStatisticMap.containsKey(dept.getCode())){
List<String> monitorIds = CollectionUtil.toList(pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds().split(StrUtil.COMMA)); List<String> monitorIds = CollectionUtil.toList(pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds().split(StrUtil.COMMA));
@@ -160,7 +156,7 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
return; return;
} }
if(CollectionUtil.isEmpty(pmsRunStatisticsList)){ if(CollectionUtil.isEmpty(pmsRunStatisticsListD)){
//正常流程 //正常流程
newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList()); newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList());
}else { }else {