|
|
@ -35,6 +35,7 @@ import com.hnac.hzinfo.datasearch.real.po.RealDataSearchPO; |
|
|
|
import com.hnac.hzinfo.sdk.analyse.po.MultiAnalyzeCodePO; |
|
|
|
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 lombok.Getter; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.collections4.MapUtils; |
|
|
|
import org.apache.commons.collections4.MapUtils; |
|
|
@ -53,6 +54,7 @@ import java.math.RoundingMode; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.*; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.stream.Stream; |
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
|
|
|
@ -112,7 +114,12 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
private final static String loadwater_level_key = "hzims:operation:loadwater:level:key"; |
|
|
|
private final static String loadwater_level_key = "hzims:operation:loadwater:level:key"; |
|
|
|
private final static String load_photovoltaic_real_key = "hzims:operation:photovoltaic:real:key"; |
|
|
|
private final static String load_photovoltaic_real_key = "hzims:operation:photovoltaic:real:key"; |
|
|
|
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"; |
|
|
|
|
|
|
|
@Getter |
|
|
|
|
|
|
|
private static final ThreadPoolExecutor fixedThreadExecutor; |
|
|
|
|
|
|
|
static { |
|
|
|
|
|
|
|
ThreadFactory threadFactory = Executors.defaultThreadFactory(); |
|
|
|
|
|
|
|
fixedThreadExecutor = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque(), threadFactory); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void loadEmInfo(String param) { |
|
|
|
public void loadEmInfo(String param) { |
|
|
@ -1211,6 +1218,9 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void loadPowerData(String param, List<Integer> types, Integer serveType, int year) { |
|
|
|
public void loadPowerData(String param, List<Integer> types, Integer serveType, int year) { |
|
|
|
|
|
|
|
Long time=System.currentTimeMillis(); |
|
|
|
|
|
|
|
System.out.println("近年发电量接口耗时测试开始======================="); |
|
|
|
|
|
|
|
log.info("近年发电量接口耗时测试开始======================="); |
|
|
|
// 站点查询
|
|
|
|
// 站点查询
|
|
|
|
List<StationEntity> stationList = stationService.list(new LambdaQueryWrapper<StationEntity>() {{ |
|
|
|
List<StationEntity> stationList = stationService.list(new LambdaQueryWrapper<StationEntity>() {{ |
|
|
|
eq(StationEntity::getDataOrigin,"0"); |
|
|
|
eq(StationEntity::getDataOrigin,"0"); |
|
|
@ -1235,7 +1245,10 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE) + " 00:00:00"; |
|
|
|
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE) + " 00:00:00"; |
|
|
|
// 存储数据map :<站点id,<月份,发电量>>
|
|
|
|
// 存储数据map :<站点id,<月份,发电量>>
|
|
|
|
Map<Long, Map<String, Float>> powerMap = new HashMap<>(); |
|
|
|
Map<Long, Map<String, Float>> powerMap = new HashMap<>(); |
|
|
|
|
|
|
|
Long time2=System.currentTimeMillis(); |
|
|
|
|
|
|
|
log.info("近年发电量接口,数据组装"+(time2-time)); |
|
|
|
stationList.forEach(station -> { |
|
|
|
stationList.forEach(station -> { |
|
|
|
|
|
|
|
fixedThreadExecutor.execute(()->{ |
|
|
|
// 站点设备集合
|
|
|
|
// 站点设备集合
|
|
|
|
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()); |
|
|
|
log.error("load_power_data station :" + station.getCode() + "==== device :" + stationDevices ); |
|
|
|
log.error("load_power_data station :" + station.getCode() + "==== device :" + stationDevices ); |
|
|
@ -1244,8 +1257,11 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
powerMap.put(station.getId(),generateMap); |
|
|
|
powerMap.put(station.getId(),generateMap); |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
redisTemplate.opsForValue().set(recent_year_power_data, powerMap); |
|
|
|
redisTemplate.opsForValue().set(recent_year_power_data, powerMap); |
|
|
|
|
|
|
|
Long time3=System.currentTimeMillis(); |
|
|
|
|
|
|
|
log.info("近年发电量数据接口,总耗时:"+(time3-time)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -1322,6 +1338,7 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private Map<String, Float> getGenerateYear(StationEntity station,List<EminfoAndEmParamVo> devices, String start, String end) { |
|
|
|
private Map<String, Float> getGenerateYear(StationEntity station,List<EminfoAndEmParamVo> devices, String start, String end) { |
|
|
|
List<PowerMonthVo> datas = new ArrayList<>(); |
|
|
|
List<PowerMonthVo> datas = new ArrayList<>(); |
|
|
|
|
|
|
|
long l = System.currentTimeMillis(); |
|
|
|
// 设备采集发电量
|
|
|
|
// 设备采集发电量
|
|
|
|
if(CollectionUtil.isNotEmpty(devices)){ |
|
|
|
if(CollectionUtil.isNotEmpty(devices)){ |
|
|
|
devices.forEach(device->{ |
|
|
|
devices.forEach(device->{ |
|
|
@ -1342,11 +1359,17 @@ public class RealTargetServiceImpl implements RealTargetService { |
|
|
|
}).collect(Collectors.toList())); |
|
|
|
}).collect(Collectors.toList())); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
long l2 = System.currentTimeMillis(); |
|
|
|
|
|
|
|
log.info("getGenerateYear接口,"+station.getName()+"-设备采集发电量数据耗时:"+(l2-l)); |
|
|
|
// 补充填报数据
|
|
|
|
// 补充填报数据
|
|
|
|
datas.addAll(this.generateFill(station,start,end)); |
|
|
|
datas.addAll(this.generateFill(station,start,end)); |
|
|
|
|
|
|
|
long l3 = System.currentTimeMillis(); |
|
|
|
|
|
|
|
log.info("getGenerateYear接口,"+station.getName()+":补充填报数据"+(l3-l2)); |
|
|
|
if(CollectionUtil.isEmpty(datas)){ |
|
|
|
if(CollectionUtil.isEmpty(datas)){ |
|
|
|
return null; |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
long l4 = System.currentTimeMillis(); |
|
|
|
|
|
|
|
log.info("getGenerateYear接口,"+station.getName()+":接口总耗时"+(l4-l)); |
|
|
|
return datas.stream().collect(Collectors.toMap(PowerMonthVo::getStrMonth, PowerMonthVo::getPower, Float::sum)); |
|
|
|
return datas.stream().collect(Collectors.toMap(PowerMonthVo::getStrMonth, PowerMonthVo::getPower, Float::sum)); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
/** |
|
|
|