Browse Source

#水位调度任务执行

zhongwei
yang_shj 4 months ago
parent
commit
a919638092
  1. 4
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/ScheduledApplication.java
  2. 7
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java
  3. 78
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/impl/RealTargetServiceImpl.java

4
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/ScheduledApplication.java

@ -21,11 +21,11 @@ import javax.annotation.Resource;
@Resource @Resource
public class ScheduledApplication extends SpringBootServletInitializer { public class ScheduledApplication extends SpringBootServletInitializer {
public static void main(String[] args) { public static void main(String[] args) {
BladeApplication.run("hzims-scheduled", ScheduledApplication.class, args); BladeApplication.run("hzims-scheduled-ysj", ScheduledApplication.class, args);
} }
@Override @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return BladeApplication.createSpringApplicationBuilder(builder, "hzims-scheduled", ScheduledApplication.class); return BladeApplication.createSpringApplicationBuilder(builder, "hzims-scheduled-ysj", ScheduledApplication.class);
} }
} }

7
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java

@ -110,9 +110,10 @@ public class RealTargetScheduledTask {
/** /**
* 水利-站点水位数据 * 水利-站点水位数据
*/ */
@XxlJob(LOAD_WATER_LEVEL) //@XxlJob(LOAD_WATER_LEVEL)
//@Scheduled(cron = "0/40 * * * * ? ") @Scheduled(cron = "0/40 * * * * ? ")
public ReturnT<String> loadWaterLevel(String param) { public ReturnT<String> loadWaterLevel() {
String param = "";
if (Func.isBlank(param)) { if (Func.isBlank(param)) {
param = DateUtil.format(new Date(), "yyyy-MM"); param = DateUtil.format(new Date(), "yyyy-MM");
} }

78
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/impl/RealTargetServiceImpl.java

@ -545,40 +545,9 @@ public class RealTargetServiceImpl implements RealTargetService {
List<WaterLevelVo> list = new CopyOnWriteArrayList<>(); List<WaterLevelVo> list = new CopyOnWriteArrayList<>();
CountDownLatch countDownLatch = new CountDownLatch(modelList.size()); CountDownLatch countDownLatch = new CountDownLatch(modelList.size());
for(HzimsAnalyzeModelStationEntity item : modelList){ for(HzimsAnalyzeModelStationEntity item : modelList){
pool.submit(() -> { pool.execute(() -> {
try{ this.queryWaterLeve(list,item);
List<MultiAnalyzeCodePO> multiAnalyzeCodePOList=new ArrayList<>(); countDownLatch.countDown();
MultiAnalyzeCodePO multiAnalyzeCodePO=new MultiAnalyzeCodePO();
multiAnalyzeCodePO.setDeviceCode(item.getInstanceCode());
multiAnalyzeCodePO.setSignages(Collections.singletonList(HomePageConstant.FRONT_WATER_LEVEL));
multiAnalyzeCodePOList.add(multiAnalyzeCodePO);
R<List<AnalyzeCodeBySignagesVO>>result=analyseDataSearchClient.getAnalyzeCodeBySignages(multiAnalyzeCodePOList);
if(result.isSuccess() && CollectionUtil.isNotEmpty(result.getData())){
WaterLevelVo waterLevelVo=new WaterLevelVo();
waterLevelVo.setStationCode(item.getStationId());
// 前水位
double frontWaterLevel=this.getWaterLevel(item.getInstanceCode(),HomePageConstant.FRONT_WATER_LEVEL);
waterLevelVo.setFrontWaterLevel(frontWaterLevel);
// 后水位
double rearWaterLevel=this.getWaterLevel(item.getInstanceCode(),HomePageConstant.REAR_WATER_LEVEL);
waterLevelVo.setRearWaterLevel(rearWaterLevel);
// 下泄流量
double dischargeFlow=this.getWaterLevel(item.getInstanceCode(),HomePageConstant.DISCHARGE_FLOW);
waterLevelVo.setDischargeFlow(dischargeFlow);
// 前水位当日曲线
Map<Integer, String> frontCurveMap=this.getWaterLevelMap(item.getInstanceCode(),HomePageConstant.FRONT_WATER_LEVEL);
waterLevelVo.setFrontCurveMap(frontCurveMap);
// 后水位当日曲线
Map<Integer, String> rearCurveMap=this.getWaterLevelMap(item.getInstanceCode(),HomePageConstant.REAR_WATER_LEVEL);
waterLevelVo.setRearCurveMap(rearCurveMap);
list.add(waterLevelVo);
}
log.error("load_water_level : 线程执行完成 {}", item.getInstanceCode());
countDownLatch.countDown();
} catch (Exception exception) {
log.error("load_water_level_error : 线程执行失败 {}", exception.getMessage());
countDownLatch.countDown();
}
}); });
} }
try { try {
@ -588,11 +557,50 @@ public class RealTargetServiceImpl implements RealTargetService {
e.printStackTrace(); e.printStackTrace();
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
} }
log.error("load_water_level :线程执行完成"); log.error("load_water_level :线程执行结束");
redisTemplate.opsForValue().set(loadwater_level_key,list); redisTemplate.opsForValue().set(loadwater_level_key,list);
} }
/** /**
* 水位数据查询
* @param list
* @param item
*/
private void queryWaterLeve(List<WaterLevelVo> list,HzimsAnalyzeModelStationEntity item) {
try{
List<MultiAnalyzeCodePO> multiAnalyzeCodePOList=new ArrayList<>();
MultiAnalyzeCodePO multiAnalyzeCodePO=new MultiAnalyzeCodePO();
multiAnalyzeCodePO.setDeviceCode(item.getInstanceCode());
multiAnalyzeCodePO.setSignages(Collections.singletonList(HomePageConstant.FRONT_WATER_LEVEL));
multiAnalyzeCodePOList.add(multiAnalyzeCodePO);
R<List<AnalyzeCodeBySignagesVO>>result=analyseDataSearchClient.getAnalyzeCodeBySignages(multiAnalyzeCodePOList);
if(result.isSuccess() && CollectionUtil.isNotEmpty(result.getData())){
WaterLevelVo waterLevelVo=new WaterLevelVo();
waterLevelVo.setStationCode(item.getStationId());
// 前水位
double frontWaterLevel=this.getWaterLevel(item.getInstanceCode(),HomePageConstant.FRONT_WATER_LEVEL);
waterLevelVo.setFrontWaterLevel(frontWaterLevel);
// 后水位
double rearWaterLevel=this.getWaterLevel(item.getInstanceCode(),HomePageConstant.REAR_WATER_LEVEL);
waterLevelVo.setRearWaterLevel(rearWaterLevel);
// 下泄流量
double dischargeFlow=this.getWaterLevel(item.getInstanceCode(),HomePageConstant.DISCHARGE_FLOW);
waterLevelVo.setDischargeFlow(dischargeFlow);
// 前水位当日曲线
Map<Integer, String> frontCurveMap=this.getWaterLevelMap(item.getInstanceCode(),HomePageConstant.FRONT_WATER_LEVEL);
waterLevelVo.setFrontCurveMap(frontCurveMap);
// 后水位当日曲线
Map<Integer, String> rearCurveMap=this.getWaterLevelMap(item.getInstanceCode(),HomePageConstant.REAR_WATER_LEVEL);
waterLevelVo.setRearCurveMap(rearCurveMap);
list.add(waterLevelVo);
}
log.error("load_water_level : 小节线程执行完成 {}", item.getInstanceCode());
} catch (Exception exception) {
log.error("load_water_level_error : 线程执行失败 {}", exception.getMessage());
}
}
/**
* 光伏站-逆变器实时加载 * 光伏站-逆变器实时加载
* *
* @param param * @param param

Loading…
Cancel
Save