|
|
@ -127,7 +127,7 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
private final static String load_photovoltaic_target_key = "hzims:operation:photovoltaic:target:key"; |
|
|
|
private final static String load_photovoltaic_target_key = "hzims:operation:photovoltaic:target:key"; |
|
|
|
|
|
|
|
|
|
|
|
// 创建线程池
|
|
|
|
// 创建线程池
|
|
|
|
private static final ExecutorService pool = new ThreadPoolExecutor(10, 10, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(1024), new ThreadFactoryBuilder().setNameFormat("load-power-data-pool-%d").build() , new ThreadPoolExecutor.CallerRunsPolicy()); |
|
|
|
private static final ExecutorService pool = new ThreadPoolExecutor(20, 20, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(1024), new ThreadFactoryBuilder().setNameFormat("load-power-data-pool-%d").build() , new ThreadPoolExecutor.CallerRunsPolicy()); |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void loadEmInfo(String param) { |
|
|
|
public void loadEmInfo(String param) { |
|
|
@ -281,24 +281,38 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
// 水电站设备
|
|
|
|
// 水电站设备
|
|
|
|
List<EminfoAndEmParamVo> devices = this.pumpDevices(stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); |
|
|
|
List<EminfoAndEmParamVo> devices = this.pumpDevices(stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); |
|
|
|
if(CollectionUtil.isNotEmpty(devices)){ |
|
|
|
if(CollectionUtil.isNotEmpty(devices)){ |
|
|
|
targets.addAll(devices.stream().map(device->{ |
|
|
|
CountDownLatch countDownLatch = new CountDownLatch(devices.size()); |
|
|
|
|
|
|
|
for(EminfoAndEmParamVo device : devices) { |
|
|
|
|
|
|
|
pool.submit(() -> { |
|
|
|
|
|
|
|
try{ |
|
|
|
HydropowerUnitTargetVo target = new HydropowerUnitTargetVo(); |
|
|
|
HydropowerUnitTargetVo target = new HydropowerUnitTargetVo(); |
|
|
|
target.setDeptId(device.getCreateDept()); |
|
|
|
target.setDeptId(device.getCreateDept()); |
|
|
|
target.setDeviceCode(device.getEmCode()); |
|
|
|
target.setDeviceCode(device.getEmCode()); |
|
|
|
target.setDeviceName(device.getName()); |
|
|
|
target.setDeviceName(device.getName()); |
|
|
|
target.setDeptName(device.getName()); |
|
|
|
target.setDeptName(device.getName()); |
|
|
|
// 当年发电量
|
|
|
|
// 当年发电量
|
|
|
|
target.setPowerYear(this.getGenerationPower(device,0)); |
|
|
|
target.setPowerYear(this.getGenerationPower(device, 0)); |
|
|
|
// 当月发电量
|
|
|
|
// 当月发电量
|
|
|
|
target.setPowerMon(this.getGenerationPower(device,1)); |
|
|
|
target.setPowerMon(this.getGenerationPower(device, 1)); |
|
|
|
// 当日发电量
|
|
|
|
// 当日发电量
|
|
|
|
target.setPowerDay(this.getGenerationPower(device,2)); |
|
|
|
target.setPowerDay(this.getGenerationPower(device, 2)); |
|
|
|
// 当天有功功率
|
|
|
|
// 当天有功功率
|
|
|
|
target.setActivePowerVoList(this.getLoadsByDay(device)); |
|
|
|
target.setActivePowerVoList(this.getLoadsByDay(device)); |
|
|
|
// 30天发电量
|
|
|
|
// 30天发电量
|
|
|
|
target.setGenerationPowerVoList(this.getGenerationPowerList(device)); |
|
|
|
target.setGenerationPowerVoList(this.getGenerationPowerList(device)); |
|
|
|
return target; |
|
|
|
targets.add(target); |
|
|
|
}).collect(Collectors.toList())); |
|
|
|
countDownLatch.countDown(); |
|
|
|
|
|
|
|
}catch (Exception exception){ |
|
|
|
|
|
|
|
countDownLatch.countDown(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
countDownLatch.await(); |
|
|
|
|
|
|
|
} catch (InterruptedException e) { |
|
|
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
Thread.currentThread().interrupt(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 站点指标数据为空
|
|
|
|
// 站点指标数据为空
|
|
|
|
if(CollectionUtil.isEmpty(targets)){ |
|
|
|
if(CollectionUtil.isEmpty(targets)){ |
|
|
@ -1252,8 +1266,8 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
List<List<StationEntity>> limits = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> stations.stream().skip((long) a * 3).limit(3).parallel().collect(Collectors.toList())).collect(Collectors.toList()); |
|
|
|
List<List<StationEntity>> limits = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> stations.stream().skip((long) a * 3).limit(3).parallel().collect(Collectors.toList())).collect(Collectors.toList()); |
|
|
|
CountDownLatch countDownLatch = new CountDownLatch(limits.size()); |
|
|
|
CountDownLatch countDownLatch = new CountDownLatch(limits.size()); |
|
|
|
for(List<StationEntity> item : limits){ |
|
|
|
for(List<StationEntity> item : limits){ |
|
|
|
try{ |
|
|
|
|
|
|
|
pool.submit(()->{ |
|
|
|
pool.submit(()->{ |
|
|
|
|
|
|
|
try{ |
|
|
|
item.forEach(station->{ |
|
|
|
item.forEach(station->{ |
|
|
|
// 站点设备集合
|
|
|
|
// 站点设备集合
|
|
|
|
List<EminfoAndEmParamVo> stationDevices = devices.stream().filter(device -> device.getCreateDept().equals(station.getRefDept())).collect(Collectors.toList()); |
|
|
|
List<EminfoAndEmParamVo> stationDevices = devices.stream().filter(device -> device.getCreateDept().equals(station.getRefDept())).collect(Collectors.toList()); |
|
|
@ -1265,10 +1279,10 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
}); |
|
|
|
}); |
|
|
|
countDownLatch.countDown(); |
|
|
|
countDownLatch.countDown(); |
|
|
|
log.error("pool_item_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList())); |
|
|
|
log.error("pool_item_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList())); |
|
|
|
}); |
|
|
|
|
|
|
|
}catch (Exception e){ |
|
|
|
}catch (Exception e){ |
|
|
|
log.error("pool_item_execute_complete_error : {}" ,e.getMessage()); |
|
|
|
countDownLatch.countDown(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
// 等待所有线程执行完成
|
|
|
|
// 等待所有线程执行完成
|
|
|
|
try { |
|
|
|
try { |
|
|
|