| 
						
						
						
					 | 
					 | 
					@ -1,6 +1,5 @@ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					package com.hnac.hzims.scheduled.service.operation.home.impl; | 
					 | 
					 | 
					 | 
					package com.hnac.hzims.scheduled.service.operation.home.impl; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.alibaba.fastjson.JSON; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.alibaba.fastjson.JSONObject; | 
					 | 
					 | 
					 | 
					import com.alibaba.fastjson.JSONObject; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.alibaba.fastjson.TypeReference; | 
					 | 
					 | 
					 | 
					import com.alibaba.fastjson.TypeReference; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
					 | 
					 | 
					 | 
					import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -8,6 +7,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.google.common.util.concurrent.ThreadFactoryBuilder; | 
					 | 
					 | 
					 | 
					import com.google.common.util.concurrent.ThreadFactoryBuilder; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.EquipmentConstants; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.EquipmentConstants; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.equipment.entity.EmParamEntity; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.equipment.entity.EmParamEntity; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.equipment.entity.ThirtyGenerationEntity; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.equipment.entity.ThreeGenerationEntity; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.hzimsweather.feign.IHeWeatherWeatherClient; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.hzimsweather.feign.IHeWeatherWeatherClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.hzimsweather.vo.RainFallCountByMonthVo; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.hzimsweather.vo.RainFallCountByMonthVo; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -20,6 +21,8 @@ import com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.station.entity.StationEntity; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.operational.station.entity.StationEntity; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.equipment.DeviceParamService; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.equipment.DeviceParamService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.equipment.DeviceService; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.equipment.DeviceService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.equipment.ThirtyGenerateService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.equipment.ThreeGenerateService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.operation.fill.*; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.operation.fill.*; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.operation.home.ModelStationService; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.operation.home.ModelStationService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.operation.home.RealTargetService; | 
					 | 
					 | 
					 | 
					import com.hnac.hzims.scheduled.service.operation.home.RealTargetService; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -38,8 +41,6 @@ import com.hnac.hzinfo.sdk.analyse.po.MultiAnalyzeCodePO; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.core.response.HzPage; | 
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.core.response.HzPage; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.core.response.Result; | 
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.core.response.Result; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.v5.device.DeviceDataClient; | 
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.v5.device.DeviceDataClient; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.v5.device.dto.ReductionDataDTO; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.hnac.hzinfo.sdk.v5.device.vo.ReductionDataVO; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import com.xxl.job.core.log.XxlJobLogger; | 
					 | 
					 | 
					 | 
					import com.xxl.job.core.log.XxlJobLogger; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import io.undertow.util.CopyOnWriteMap; | 
					 | 
					 | 
					 | 
					import io.undertow.util.CopyOnWriteMap; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import lombok.RequiredArgsConstructor; | 
					 | 
					 | 
					 | 
					import lombok.RequiredArgsConstructor; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -58,7 +59,6 @@ import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.math.BigDecimal; | 
					 | 
					 | 
					 | 
					import java.math.BigDecimal; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.math.RoundingMode; | 
					 | 
					 | 
					 | 
					import java.math.RoundingMode; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.time.LocalDate; | 
					 | 
					 | 
					 | 
					import java.time.LocalDate; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.time.LocalDateTime; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.time.format.DateTimeFormatter; | 
					 | 
					 | 
					 | 
					import java.time.format.DateTimeFormatter; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.*; | 
					 | 
					 | 
					 | 
					import java.util.*; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					import java.util.concurrent.*; | 
					 | 
					 | 
					 | 
					import java.util.concurrent.*; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -98,6 +98,10 @@ public class RealTargetServiceImpl implements RealTargetService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private final ModelStationService modelStationService; | 
					 | 
					 | 
					 | 
						private final ModelStationService modelStationService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private final ThreeGenerateService threeGenerateService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private final ThirtyGenerateService thirtyGenerateService; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private final RedisTemplate redisTemplate; | 
					 | 
					 | 
					 | 
						private final RedisTemplate redisTemplate; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private final IHeWeatherWeatherClient heWeatherWeatherClient; | 
					 | 
					 | 
					 | 
						private final IHeWeatherWeatherClient heWeatherWeatherClient; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -278,6 +282,10 @@ public class RealTargetServiceImpl implements RealTargetService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(stations)){ | 
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(stations)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return; | 
					 | 
					 | 
					 | 
								return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							// 设备30日发电量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							List<ThirtyGenerationEntity> generations = this.thirtyGenerations(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							// 设备当年发电量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							List<ThreeGenerationEntity> generationYears = this.threeGenerations(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// 补充填补发电指标
 | 
					 | 
					 | 
					 | 
							// 补充填补发电指标
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							List<HydropowerUnitTargetVo> targets = this.generteFill(stations); | 
					 | 
					 | 
					 | 
							List<HydropowerUnitTargetVo> targets = this.generteFill(stations); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// 水电站设备
 | 
					 | 
					 | 
					 | 
							// 水电站设备
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -289,19 +297,20 @@ public class RealTargetServiceImpl implements RealTargetService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										try{ | 
					 | 
					 | 
					 | 
										try{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											HydropowerUnitTargetVo target = new HydropowerUnitTargetVo(); | 
					 | 
					 | 
					 | 
											HydropowerUnitTargetVo target = new HydropowerUnitTargetVo(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setDeptId(device.getCreateDept()); | 
					 | 
					 | 
					 | 
											target.setDeptId(device.getCreateDept()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
											Optional<StationEntity> station = stations.stream().filter(o->o.getRefDept().equals(device.getCreateDept())).findFirst(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        station.ifPresent(stationEntity -> target.setDeptName(stationEntity.getName())); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setDeviceCode(device.getEmCode()); | 
					 | 
					 | 
					 | 
											target.setDeviceCode(device.getEmCode()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setDeviceName(device.getName()); | 
					 | 
					 | 
					 | 
											target.setDeviceName(device.getName()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setDeptName(device.getName()); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											// 当年发电量
 | 
					 | 
					 | 
					 | 
											// 当年发电量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setPowerYear(this.getGenerationPower(device, 0)); | 
					 | 
					 | 
					 | 
											target.setPowerYear(this.devicePowerYear(generationYears,device)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											// 当月发电量
 | 
					 | 
					 | 
					 | 
											// 当月发电量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setPowerMon(this.getGenerationPower(device, 1)); | 
					 | 
					 | 
					 | 
											target.setPowerMon(this.devicePowerMon(generationYears,device)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											// 当日发电量
 | 
					 | 
					 | 
					 | 
											// 当日发电量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setPowerDay(this.getGenerationPower(device, 2)); | 
					 | 
					 | 
					 | 
											target.setPowerDay(this.devicePowerDay(generations,device)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											// 当天有功功率
 | 
					 | 
					 | 
					 | 
											// 当天有功功率
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setActivePowerVoList(this.getLoadsByDay(device)); | 
					 | 
					 | 
					 | 
											target.setActivePowerVoList(this.getLoadsByDay(device)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											// 30天发电量
 | 
					 | 
					 | 
					 | 
											// 30天发电量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											target.setGenerationPowerVoList(this.getGenerationPowerList(device)); | 
					 | 
					 | 
					 | 
											target.setGenerationPowerVoList(this.getGenerationPowerList(generations,device)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											targets.add(target); | 
					 | 
					 | 
					 | 
											targets.add(target); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											countDownLatch.countDown(); | 
					 | 
					 | 
					 | 
											countDownLatch.countDown(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										}catch (Exception exception){ | 
					 | 
					 | 
					 | 
										}catch (Exception exception){ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -323,6 +332,75 @@ public class RealTargetServiceImpl implements RealTargetService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							redisTemplate.opsForValue().set(load_hydropower_unit_target_key,targets); | 
					 | 
					 | 
					 | 
							redisTemplate.opsForValue().set(load_hydropower_unit_target_key,targets); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * 去年发电量 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param generations | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param device | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private Float devicePowerYesterYear(List<ThreeGenerationEntity> generations, EminfoAndEmParamVo device) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(generations)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return 0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return (float) generations.stream().filter(o -> StringUtil.isNotBlank(o.getDeviceCode()) && o.getDeviceCode().equals(device.getEmCode())).mapToDouble(o->o.getGenerate().doubleValue()).sum(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * 当年发电量 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param generations | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param device | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private Float devicePowerYear(List<ThreeGenerationEntity> generations, EminfoAndEmParamVo device) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(generations)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return 0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return (float) generations.stream().filter(o -> StringUtil.isNotBlank(o.getDeviceCode()) && o.getDeviceCode().equals(device.getEmCode())).mapToDouble(o->o.getGenerate().doubleValue()).sum(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * 当月发电量 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param generations | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param device | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private Float devicePowerMon(List<ThreeGenerationEntity> generations, EminfoAndEmParamVo device) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(generations)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return 0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return (float) generations.stream().filter(o-> StringUtil.isNotBlank(o.getDeviceCode()) && o.getDeviceCode().equals(device.getEmCode()) && o.getStrMonth().contains(DateUtil.format(new Date(),"yyyy-MM"))).mapToDouble(o->o.getGenerate().doubleValue()).sum(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * 设备当日发电量 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param generations | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param device | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private Float devicePowerDay(List<ThirtyGenerationEntity> generations, EminfoAndEmParamVo device) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(generations)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return 0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return (float) generations.stream().filter(o->o.getDeviceCode().equals(device.getEmCode()) && o.getStrDay().contains(DateUtil.format(new Date(),DateUtil.PATTERN_DATE))).mapToDouble(o->o.getGenerate().doubleValue()).sum(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * 设备昨日发电量 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param generations | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param device | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private Float devicePowerYesterDay(List<ThirtyGenerationEntity> generations, EminfoAndEmParamVo device) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(generations)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return 0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							Calendar calendar = Calendar.getInstance(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							calendar.add(Calendar.DAY_OF_MONTH,-1); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return (float) generations.stream().filter(o->o.getDeviceCode().equals(device.getEmCode()) && o.getStrDay().contains(DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE))).mapToDouble(o->o.getGenerate().doubleValue()).sum(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						/** | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * 水利-泵组实时加载 | 
					 | 
					 | 
					 | 
						 * 水利-泵组实时加载 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param param | 
					 | 
					 | 
					 | 
						 * @param param | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1365,9 +1443,6 @@ public class RealTargetServiceImpl implements RealTargetService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									in(StationEntity::getType, types); | 
					 | 
					 | 
					 | 
									in(StationEntity::getType, types); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								} | 
					 | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}}); | 
					 | 
					 | 
					 | 
							}}); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// 设备信息
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//		List<EminfoAndEmParamVo> devices  = JSONObject.parseObject(redisTemplate.opsForValue().get(device_cache_cofig_final).toString(), new TypeReference<List<EminfoAndEmParamVo>>() {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//		});
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							// 开始时间
 | 
					 | 
					 | 
					 | 
							// 开始时间
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Calendar calendar = Calendar.getInstance(); | 
					 | 
					 | 
					 | 
							Calendar calendar = Calendar.getInstance(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							calendar.add(Calendar.MONTH, -calendar.get(Calendar.MONTH) + 12); | 
					 | 
					 | 
					 | 
							calendar.add(Calendar.MONTH, -calendar.get(Calendar.MONTH) + 12); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1381,8 +1456,6 @@ public class RealTargetServiceImpl implements RealTargetService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Map<Long, Map<String, Float>> powerMap = new HashMap<>(); | 
					 | 
					 | 
					 | 
							Map<Long, Map<String, Float>> powerMap = new HashMap<>(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							stationList.forEach(station -> { | 
					 | 
					 | 
					 | 
							stationList.forEach(station -> { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								// 站点设备集合
 | 
					 | 
					 | 
					 | 
								// 站点设备集合
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//			List<EminfoAndEmParamVo> stationDevices = devices.stream().filter(device -> device.getCreateDept().equals(station.getRefDept())).collect(Collectors.toList());
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//			log.error("load_power_data station :" + station.getCode() + "==== device :" + stationDevices );
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								Map<String, Float> generateMap = this.getGenerateYearByWindEnergy(station,start,end); | 
					 | 
					 | 
					 | 
								Map<String, Float> generateMap = this.getGenerateYearByWindEnergy(station,start,end); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								if(MapUtils.isEmpty(generateMap)){ | 
					 | 
					 | 
					 | 
								if(MapUtils.isEmpty(generateMap)){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									return; | 
					 | 
					 | 
					 | 
									return; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1890,33 +1963,78 @@ public class RealTargetServiceImpl implements RealTargetService { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return dataService.periodTargetFloat(start,end,5,accessRules,device.getEmCode(),device.getRideCount(),HomePageConstant.HYDROPOWER_GENERATE_POWER); | 
					 | 
					 | 
					 | 
							return dataService.periodTargetFloat(start,end,5,accessRules,device.getEmCode(),device.getRideCount(),HomePageConstant.HYDROPOWER_GENERATE_POWER); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						/** | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * 近30天发电量 | 
					 | 
					 | 
					 | 
						 * 站点设备近30天发电量 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param device | 
					 | 
					 | 
					 | 
						 * @param stations | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @return | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private List<GenerationPowerVo> getGenerationPowerList(EminfoAndEmParamVo device) { | 
					 | 
					 | 
					 | 
						private List<ThirtyGenerationEntity> thirtyGenerations(List<String> stations) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							Calendar calendar = Calendar.getInstance(); | 
					 | 
					 | 
					 | 
							Calendar calendar = Calendar.getInstance(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							String end = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME); | 
					 | 
					 | 
					 | 
							String end = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							calendar.add(Calendar.DAY_OF_MONTH,-29); | 
					 | 
					 | 
					 | 
							calendar.add(Calendar.DAY_OF_MONTH,-29); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							calendar.add(Calendar.HOUR_OF_DAY,-calendar.get(Calendar.HOUR_OF_DAY)); | 
					 | 
					 | 
					 | 
							String start = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATE); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							calendar.add(Calendar.MINUTE,-calendar.get(Calendar.MINUTE)); | 
					 | 
					 | 
					 | 
							return thirtyGenerateService.list(Wrappers.<ThirtyGenerationEntity>lambdaQuery() | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							calendar.add(Calendar.SECOND,-calendar.get(Calendar.SECOND)); | 
					 | 
					 | 
					 | 
									.in(ThirtyGenerationEntity::getStationId,stations) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							String start = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME); | 
					 | 
					 | 
					 | 
									.ge(ThirtyGenerationEntity::getStrDay,start) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        List<AnalyseDataTaosVO>  records = dataService.periodTargetData(start,end,5,EquipmentConstants.CycleTypeEnum.DAY_CYCLE.getType(),device.getEmCode(),HomePageConstant.HYDROPOWER_GENERATE_POWER); | 
					 | 
					 | 
					 | 
									.le(ThirtyGenerationEntity::getStrDay,end) | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if(CollectionUtil.isEmpty(records)){ | 
					 | 
					 | 
					 | 
							); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return new ArrayList<>(); | 
					 | 
					 | 
					 | 
						} | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return records.stream().map(record -> { | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								GenerationPowerVo generate = new GenerationPowerVo(); | 
					 | 
					 | 
					 | 
						 * 站点设备今年发电量 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								Date time = DateUtil.parse(record.getTs(), "yyyy-MM-dd HH:mm:ss.s"); | 
					 | 
					 | 
					 | 
						 * @param stations | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								generate.setDate(DateUtil.format(time,DateUtil.PATTERN_DATE)); | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								if(StringUtil.isEmpty(record.getVal())){ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									generate.setGenerate(0f); | 
					 | 
					 | 
					 | 
						private List<ThreeGenerationEntity> threeGenerations(List<String> stations) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return threeGenerateService.list(Wrappers.<ThreeGenerationEntity>lambdaQuery() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									.in(ThreeGenerationEntity::getStationId,stations) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									.like(ThreeGenerationEntity::getStrMonth,DateUtil.format(new Date(),"yyyy")) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * 查询设备去年发电量 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param stations | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private List<ThreeGenerationEntity> threeYesterGenerations(List<String> stations) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							Calendar calendar = Calendar.getInstance(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							calendar.add(Calendar.YEAR,-1); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return threeGenerateService.list(Wrappers.<ThreeGenerationEntity>lambdaQuery() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									.in(ThreeGenerationEntity::getStationId,stations) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									.like(ThreeGenerationEntity::getStrMonth,DateUtil.format(calendar.getTime(),"yyyy")) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * 设备近30天发电量组装 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param generations | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @param device | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @return | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private List<GenerationPowerVo> getGenerationPowerList(List<ThirtyGenerationEntity> generations,EminfoAndEmParamVo device) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							Calendar calendar = Calendar.getInstance(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							Date end = calendar.getTime(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							calendar.add(Calendar.DAY_OF_MONTH,-29); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							Date start = calendar.getTime(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							List<GenerationPowerVo> powers = new ArrayList<>(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							while (end.compareTo(start) >= 0){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								GenerationPowerVo power = new GenerationPowerVo(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								if (CollectionUtil.isEmpty(generations)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									power.setDate(DateUtil.format(start,DateUtil.PATTERN_DATE)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									power.setGenerate(0f); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								}else{ | 
					 | 
					 | 
					 | 
								}else{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									generate.setGenerate(Float.parseFloat(String.valueOf(Double.parseDouble(record.getVal()) * device.getRideCount()))); | 
					 | 
					 | 
					 | 
									String date = DateUtil.format(start,DateUtil.PATTERN_DATE); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									power.setDate(date); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									power.setGenerate((float) generations.stream().filter(iter->iter.getDeviceCode().equals(device.getEmCode()) && iter.getStrDay().contains(date)).mapToDouble(o->o.getGenerate().doubleValue()).sum()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								} | 
					 | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return generate; | 
					 | 
					 | 
					 | 
								calendar.add(Calendar.DAY_OF_MONTH,1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							}).collect(Collectors.toList()); | 
					 | 
					 | 
					 | 
								powers.add(power); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								start = calendar.getTime(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return powers; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} |