|
@@ -1,5 +1,6 @@
|
1
|
1
|
package com.gct.tools.etlcamelhuge.routeconfig;
|
2
|
2
|
|
|
3
|
+import com.gct.common.util.SGTUtil;
|
3
|
4
|
import com.gct.tools.etlcamelhuge.MQ.MessageBody;
|
4
|
5
|
import com.gct.tools.etlcamelhuge.MQ.MessageProducer;
|
5
|
6
|
import com.gct.tools.etlcamelhuge.entity.DiagnoseMsg;
|
|
@@ -13,6 +14,7 @@ import org.springframework.context.annotation.Configuration;
|
13
|
14
|
|
14
|
15
|
import javax.annotation.Resource;
|
15
|
16
|
import java.math.BigDecimal;
|
|
17
|
+import java.text.DecimalFormat;
|
16
|
18
|
import java.text.SimpleDateFormat;
|
17
|
19
|
import java.time.LocalDateTime;
|
18
|
20
|
import java.util.*;
|
|
@@ -266,6 +268,23 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
266
|
268
|
}
|
267
|
269
|
return Arrays.stream(doubles).max().getAsDouble();
|
268
|
270
|
}
|
|
271
|
+ /**
|
|
272
|
+ * 对位移数据除10
|
|
273
|
+ * **/
|
|
274
|
+ public String[] wy(String [] strings){
|
|
275
|
+ String[] ret= new String[strings.length];
|
|
276
|
+ for (int i = 0; i < strings.length; i++) {
|
|
277
|
+ Double aDouble = Double.valueOf(strings[i]);
|
|
278
|
+ //System.out.println("duo"+aDouble);
|
|
279
|
+ if (aDouble==0.0){
|
|
280
|
+ ret[i] = "0";
|
|
281
|
+ }else {
|
|
282
|
+ ret[i] = String.valueOf(Math.round(aDouble/10));
|
|
283
|
+ }
|
|
284
|
+ }
|
|
285
|
+ return ret;
|
|
286
|
+ }
|
|
287
|
+
|
269
|
288
|
@Resource(name = "diagnoseMessageProducer")
|
270
|
289
|
private MessageProducer producer;
|
271
|
290
|
@Bean
|
|
@@ -287,7 +306,7 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
287
|
306
|
from("timer:mytimer1?period=604800000")
|
288
|
307
|
.routeId("oracle-1")
|
289
|
308
|
.setHeader("date", constant(date1))
|
290
|
|
- .setBody(simple("select distinct jh,cydmc,zyq,zk,qyrq,sccw,qk,bz from zd_zdgs.dba01@A2 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
|
309
|
+ .setBody(simple("select distinct jh,cydmc,zyq,zk,qyrq,sccw,qk,bz from DBA01 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
291
|
310
|
.to("jdbc:oracle")
|
292
|
311
|
.transform()
|
293
|
312
|
.body((result) -> {
|
|
@@ -324,7 +343,6 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
324
|
343
|
" ON conflict(well_id) DO UPDATE set remarks = '${body[BZ]}' "))
|
325
|
344
|
.to("jdbc:centralbase")
|
326
|
345
|
.end()
|
327
|
|
-
|
328
|
346
|
.transform().body((re) -> {
|
329
|
347
|
List<Map<String, Object>> rows = new ArrayList<>();
|
330
|
348
|
int code = 0;
|
|
@@ -372,8 +390,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
372
|
390
|
from("timer:mytimer2?period=3600000")
|
373
|
391
|
.routeId("oracle-2")
|
374
|
392
|
.setHeader("date", constant(date1))
|
375
|
|
- .setBody(simple("select distinct jh,rq,cyfs,yz,hysx , yysx ,tysx,bs,dym from zd_zdgs.dba01@A2 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
376
|
|
- //.setBody(simple("select distinct jh,rq,cyfs,yz,hysx , yysx ,tysx,bs,dym from zd_zdgs.dba01@A2 where rq = to_date('2021-07-05','yyyy-MM-dd') and qyrq is not null "))
|
|
393
|
+ .setBody(simple("select distinct jh,rq,cyfs,yz,hysx , yysx ,tysx,bs,dym from DBA01 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
|
394
|
+ //.setBody(simple("select distinct jh,rq,cyfs,yz,hysx , yysx ,tysx,bs,dym from DBA01 where rq = to_date('2021-07-05','yyyy-MM-dd') and qyrq is not null "))
|
377
|
395
|
.to("jdbc:oracle")
|
378
|
396
|
.split(body()).process(exchange -> {
|
379
|
397
|
Message in = exchange.getIn();
|
|
@@ -384,8 +402,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
384
|
402
|
if (aRow.get("TYSX") == null) aRow.put("TYSX", "0.0");
|
385
|
403
|
if (aRow.get("BS") == null) aRow.put("BS", "0.0");
|
386
|
404
|
})
|
387
|
|
- .setBody(simple("insert into centralbase.cb_pc_pro_wellbore_status_daily(well_id,prod_date,oil_prod_method,oil_nozzle,back_pres,tubing_pres,casing_pres,pump_depth)" +
|
388
|
|
- "values ('${body[JH]}','${body[RQ]}','${body[CYFS]}','${body[YZ]}','${body[HYSX]}','${body[YYSX]}','${body[TYSX]}','${body[BS]}')"))
|
|
405
|
+ //.setBody(simple("insert into centralbase.cb_pc_pro_wellbore_status_daily(well_id,prod_date,oil_prod_method,oil_nozzle,back_pres,tubing_pres,casing_pres,pump_depth)" +
|
|
406
|
+ // "values ('${body[JH]}','${body[RQ]}','${body[CYFS]}','${body[YZ]}','${body[HYSX]}','${body[YYSX]}','${body[TYSX]}','${body[BS]}')"))
|
389
|
407
|
.setBody(simple("insert into centralbase.cb_pc_pro_wellbore_status_daily(well_id,prod_date,oil_prod_method,oil_nozzle,back_pres,tubing_pres,casing_pres,pump_depth) " +
|
390
|
408
|
"select '${body[JH]}','${body[RQ]}','${body[CYFS]}','${body[YZ]}','${body[HYSX]}','${body[YYSX]}','${body[TYSX]}','${body[BS]}' " +
|
391
|
409
|
"where NOT EXISTS ( SELECT * FROM centralbase.cb_pc_pro_wellbore_status_daily WHERE well_id = '${body[JH]}' and prod_date = '${body[RQ]}')"))
|
|
@@ -400,20 +418,42 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
400
|
418
|
.routeId("oracle-5")
|
401
|
419
|
.setHeader("date", constant(date1 + " 00:00:00"))
|
402
|
420
|
//三个月之内dym不为空的数据
|
403
|
|
- //.setBody(simple("SELECT distinct jh,rq,dym FROM zd_zdgs.dba01@A2 WHERE rq between to_date(TO_CHAR(ADD_MONTHS(SYSDATE,-3),'yyyy-MM-dd'),'yyyy-MM-dd')and to_date(TO_CHAR(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd') and dym is not null;"))
|
404
|
|
- .setBody(simple("SELECT distinct jh,max(rq),dym FROM zd_zdgs.dba01@A2 WHERE dym is not null group by jh,dym"))
|
|
421
|
+ //.setBody(simple("SELECT distinct jh,rq,dym FROM DBA01 WHERE rq between to_date(TO_CHAR(ADD_MONTHS(SYSDATE,-3),'yyyy-MM-dd'),'yyyy-MM-dd')and to_date(TO_CHAR(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd') and dym is not null;"))
|
|
422
|
+ .setBody(simple("SELECT distinct jh,max(rq),dym FROM DBA01 WHERE dym is not null group by jh,dym"))
|
405
|
423
|
.to("jdbc:oracle")
|
406
|
424
|
.split(body())
|
407
|
|
- .setBody(simple("update centralbase.cb_pc_pro_wellbore_status_daily set start_pump_liq_level = '${body[DYM]}' where well_id = '${body[JH]}' "))
|
|
425
|
+ .setBody(simple("update centralbase.cb_pc_pro_wellbore_status_daily set start_pump_liq_level = '${body[DYM]}' where well_id = '${body[JH]}' and prod_date::date = '${header.date}' "))
|
408
|
426
|
.to("jdbc:centralbase")
|
409
|
427
|
.log("insert !!!")
|
410
|
428
|
.end();
|
411
|
429
|
|
|
430
|
+ from("timer:mytimer7?period=3600000")
|
|
431
|
+ .routeId("oracle-7")
|
|
432
|
+ .setHeader("date", constant(date1 + " 00:00:00"))
|
|
433
|
+ //三个月之内dym不为空的数据
|
|
434
|
+ //.setBody(simple("SELECT distinct jh,rq,dym FROM DBA01 WHERE rq between to_date(TO_CHAR(ADD_MONTHS(SYSDATE,-3),'yyyy-MM-dd'),'yyyy-MM-dd')and to_date(TO_CHAR(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd') and dym is not null;"))
|
|
435
|
+ .setBody(simple("select well_id,prod_date,start_pump_liq_level,pump_depth from centralbase.cb_pc_pro_wellbore_status_daily where prod_date = '${header.date}' "))
|
|
436
|
+ .to("jdbc:centralbase")
|
|
437
|
+ .split(body()).process(exchange -> {
|
|
438
|
+ Message in = exchange.getIn();
|
|
439
|
+ HashMap<String, Object> aRow = in.getBody(HashMap.class);
|
|
440
|
+ aRow.put("submergence_depth",null);
|
|
441
|
+ if (aRow.get("start_pump_liq_level")!=null && aRow.get("pump_depth")!=null){
|
|
442
|
+ double cmd= Double.valueOf(aRow.get("pump_depth").toString())-Double.valueOf(aRow.get("start_pump_liq_level").toString())/10;
|
|
443
|
+ BigDecimal bd=new BigDecimal(cmd);
|
|
444
|
+ double cmd1=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
445
|
+ aRow.put("submergence_depth",cmd1);
|
|
446
|
+ }
|
|
447
|
+ })
|
|
448
|
+ .setBody(simple("update centralbase.cb_pc_pro_wellbore_status_daily set submergence_depth = '${body[submergence_depth]}' where well_id = '${body[well_id]}' and prod_date = '${body[prod_date]}'"))
|
|
449
|
+ .to("jdbc:centralbase")
|
|
450
|
+ .log("insert !!!")
|
|
451
|
+ .end();
|
412
|
452
|
//单独执行时间30s
|
413
|
453
|
from("timer:mytimer3?period=3600000")
|
414
|
454
|
.routeId("oracle-3")
|
415
|
455
|
.setHeader("date", constant(date1))
|
416
|
|
- .setBody(simple("select distinct jh,rq,scsj, rcyl1,rcyl,rcql,hs, bz from zd_zdgs.dba01@A2 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
|
456
|
+ .setBody(simple("select distinct jh,rq,scsj, rcyl1,rcyl,rcql,hs, bz from DBA01 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
417
|
457
|
.to("jdbc:oracle")
|
418
|
458
|
.split(body()).process(exchange -> {
|
419
|
459
|
Message in = exchange.getIn();
|
|
@@ -423,23 +463,63 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
423
|
463
|
if (aRow.get("RCYL") == null) aRow.put("RCYL", "0.0");
|
424
|
464
|
if (aRow.get("RCQL") == null) aRow.put("RCQL", "0.0");
|
425
|
465
|
if (aRow.get("HS") == null) aRow.put("HS", "0.0");
|
426
|
|
- if (aRow.get("BZ") == null) aRow.put("DYM", "");
|
|
466
|
+ if (aRow.get("BZ") == null) aRow.put("BZ", "");
|
|
467
|
+ aRow.put("RCSL",-1);
|
|
468
|
+ aRow.put("QYB",-1);
|
|
469
|
+ aRow.put("SQB",-1);
|
|
470
|
+ if (aRow.get("RCQL")!=null && aRow.get("RCYL")!=null && !aRow.get("RCYL").equals("0.0") && aRow.get("RCYL") != "0.0"){
|
|
471
|
+ double qyb = Double.valueOf(aRow.get("RCQL").toString()) / Double.valueOf(aRow.get("RCYL").toString());
|
|
472
|
+ if (!Double.isNaN(qyb) && !Double.isInfinite(qyb)){
|
|
473
|
+ BigDecimal bd=new BigDecimal(qyb);
|
|
474
|
+ double d1=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
475
|
+ aRow.put("QYB",d1);
|
|
476
|
+ }
|
|
477
|
+ }
|
|
478
|
+ if (aRow.get("RCYL1")!=null && aRow.get("HS") != null && !aRow.get("HS").equals("0.0") && aRow.get("HS") != "0.0"){
|
|
479
|
+ double rcsl = (Double.valueOf(aRow.get("RCYL1").toString()) * Double.valueOf(aRow.get("HS").toString()))/100;
|
|
480
|
+ if (!Double.isNaN(rcsl) && !Double.isInfinite(rcsl)) {
|
|
481
|
+ BigDecimal bd = new BigDecimal(rcsl);
|
|
482
|
+ double d1 = bd.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
483
|
+ aRow.put("RCSL", d1);
|
|
484
|
+ }
|
|
485
|
+ }
|
|
486
|
+ if (aRow.get("RCQL") != null && aRow.get("RCSL") != null && !aRow.get("RCQL").equals("0.0") && aRow.get("RCQL") != "0.0" ){
|
|
487
|
+ double sqb = Double.valueOf(aRow.get("RCSL").toString()) / Double.valueOf(aRow.get("RCQL").toString());
|
|
488
|
+ if (!Double.isNaN(sqb) && !Double.isInfinite(sqb)) {
|
|
489
|
+ BigDecimal bd = new BigDecimal(sqb);
|
|
490
|
+ double d1 = bd.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
491
|
+ aRow.put("SQB", d1);
|
|
492
|
+ }
|
|
493
|
+ }
|
|
494
|
+ if (!aRow.containsKey("SMD")){
|
|
495
|
+ aRow.put("SMD",1);
|
|
496
|
+ }
|
|
497
|
+ if (!aRow.containsKey("YMD")){
|
|
498
|
+ aRow.put("YMD",0.85);
|
|
499
|
+ }
|
427
|
500
|
})
|
428
|
|
- .setBody(simple("insert into centralbase.cb_pc_pro_wellbore_vol_daily(well_id,prod_date,prod_time,liq_prod_daily,oil_prod_daily,gas_prod_daily,water_cut,remarks) " +
|
429
|
|
- "values ('${body[JH]}','${body[RQ]}','${body[SCSJ]}','${body[RCYL1]}','${body[RCYL]}','${body[RCQL]}','${body[HS]}','${body[BZ]}')"))
|
430
|
|
- .setBody(simple("insert into centralbase.cb_pc_pro_wellbore_vol_daily(well_id,prod_date,prod_time,liq_prod_daily,oil_prod_daily,gas_prod_daily,water_cut,remarks) " +
|
431
|
|
- "select '${body[JH]}','${body[RQ]}','${body[SCSJ]}','${body[RCYL1]}','${body[RCYL]}','${body[RCQL]}','${body[HS]}','${body[BZ]}' " +
|
|
501
|
+ // .setBody(simple("insert into centralbase.cb_pc_pro_wellbore_vol_daily(well_id,prod_date,prod_time,liq_prod_daily,oil_prod_daily,gas_prod_daily,water_cut,remarks) " +
|
|
502
|
+ // "values ('${body[JH]}','${body[RQ]}','${body[SCSJ]}','${body[RCYL1]}','${body[RCYL]}','${body[RCQL]}','${body[HS]}','${body[BZ]}')"))
|
|
503
|
+ .setBody(simple("insert into centralbase.cb_pc_pro_wellbore_vol_daily(well_id,prod_date,prod_time,liq_prod_daily,oil_prod_daily,gas_prod_daily,water_cut,remarks,gas_oil_ratio,water_prod_daily,water_gas_ratio,surface_crude_water_density,surface_crude_oil_density) " +
|
|
504
|
+ "select '${body[JH]}','${body[RQ]}','${body[SCSJ]}','${body[RCYL1]}','${body[RCYL]}','${body[RCQL]}','${body[HS]}','${body[BZ]}','${body[QYB]}','${body[RCSL]}','${body[SQB]}','${body[SMD]}','${body[YMD]}' " +
|
432
|
505
|
"where NOT EXISTS ( SELECT * FROM centralbase.cb_pc_pro_wellbore_vol_daily WHERE well_id = '${body[JH]}' and prod_date = '${body[RQ]}' )"))
|
433
|
506
|
.to("jdbc:centralbase")
|
434
|
|
- .log("insert !!!")
|
|
507
|
+ .setBody(simple("update centralbase.cb_pc_pro_wellbore_vol_daily set water_prod_daily =null where water_prod_daily = -1 and prod_date = '${header.date}' "))
|
|
508
|
+ .to("jdbc:centralbase")
|
|
509
|
+ .setBody(simple("update centralbase.cb_pc_pro_wellbore_vol_daily set gas_oil_ratio =null where gas_oil_ratio = -1 and prod_date = '${header.date}' "))
|
|
510
|
+ .to("jdbc:centralbase")
|
|
511
|
+ .setBody(simple("update centralbase.cb_pc_pro_wellbore_vol_daily set water_gas_ratio =null where water_gas_ratio = -1 and prod_date = '${header.date}' "))
|
|
512
|
+ .to("jdbc:centralbase")
|
|
513
|
+ .log("insert")
|
435
|
514
|
.end();
|
436
|
515
|
|
|
516
|
+
|
437
|
517
|
//0 0 */1 * * ? 每1个小时执行一次
|
438
|
518
|
//单独执行一次30s
|
439
|
519
|
from("timer:mytimer4?period=3600000")
|
440
|
520
|
.routeId("oracle-4")
|
441
|
521
|
.setHeader("date", constant(date1))
|
442
|
|
- .setBody(simple("select distinct jh,rq,dym,jy,ly,bj,bs,bx,zs,cc,cs,blx,dl from zd_zdgs.dba01@A2 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
|
522
|
+ .setBody(simple("select distinct jh,rq,dym,jy,ly,bj,bs,bx,zs,cc,cs,blx,dl from DBA01 where rq = to_date('${header.date}','yyyy-MM-dd') and qyrq is not null "))
|
443
|
523
|
.to("jdbc:oracle")
|
444
|
524
|
.split(body()).process(exchange -> {
|
445
|
525
|
Message in = exchange.getIn();
|
|
@@ -455,8 +535,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
455
|
535
|
if (aRow.get("BLX") == null) aRow.put("BLX", "");
|
456
|
536
|
if (aRow.get("DL") == null) aRow.put("DL", "0.0");
|
457
|
537
|
})
|
458
|
|
- .setBody(simple("insert into centralbase.cb_temp_well_mech_daily(well_id,prod_date,static_pressure,flow_pres,pump_diameter,pump_depth,pump_efficiency,rotate_frequency,stroke_length,stroke_frequency,pump_type,elec_frequency)" +
|
459
|
|
- "values ('${body[JH]}','${body[RQ]}','${body[JY]}','${body[LY]}','${body[BJ]}','${body[BS]}','${body[BX]}','${body[ZS]}','${body[CC]}','${body[CS]}','${body[BLX]}','${body[DL]}')"))
|
|
538
|
+ //.setBody(simple("insert into centralbase.cb_temp_well_mech_daily(well_id,prod_date,static_pressure,flow_pres,pump_diameter,pump_depth,pump_efficiency,rotate_frequency,stroke_length,stroke_frequency,pump_type,elec_frequency)" +
|
|
539
|
+ // "values ('${body[JH]}','${body[RQ]}','${body[JY]}','${body[LY]}','${body[BJ]}','${body[BS]}','${body[BX]}','${body[ZS]}','${body[CC]}','${body[CS]}','${body[BLX]}','${body[DL]}')"))
|
460
|
540
|
.setBody(simple("insert into centralbase.cb_temp_well_mech_daily(well_id,prod_date,static_pressure,flow_pres,pump_diameter,pump_depth,pump_efficiency,rotate_frequency,stroke_length,stroke_frequency,pump_type,elec_frequency) " +
|
461
|
541
|
"select '${body[JH]}','${body[RQ]}','${body[JY]}','${body[LY]}','${body[BJ]}','${body[BS]}','${body[BX]}','${body[ZS]}','${body[CC]}','${body[CS]}','${body[BLX]}','${body[DL]}' " +
|
462
|
542
|
"where NOT EXISTS ( SELECT * FROM centralbase.cb_temp_well_mech_daily WHERE well_id = '${body[JH]}' and prod_date = '${body[RQ]}' )"))
|
|
@@ -468,8 +548,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
468
|
548
|
.routeId("oracle-6")
|
469
|
549
|
.setHeader("date", constant(date1 + " 00:00:00"))
|
470
|
550
|
//五个月之内bj不为空的数据
|
471
|
|
- //.setBody(simple("SELECT distinct jh,rq,dym FROM zd_zdgs.dba01@A2 WHERE rq between to_date(TO_CHAR(ADD_MONTHS(SYSDATE,-3),'yyyy-MM-dd'),'yyyy-MM-dd')and to_date(TO_CHAR(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd') and dym is not null;"))
|
472
|
|
- .setBody(simple("SELECT distinct jh,bj FROM zd_zdgs.dba01@A2 WHERE rq between to_date(TO_CHAR(ADD_MONTHS(SYSDATE,-5),'yyyy-MM-dd'),'yyyy-MM-dd')and to_date(TO_CHAR(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd') and bj is not null"))
|
|
551
|
+ //.setBody(simple("SELECT distinct jh,rq,dym FROM DBA01 WHERE rq between to_date(TO_CHAR(ADD_MONTHS(SYSDATE,-3),'yyyy-MM-dd'),'yyyy-MM-dd')and to_date(TO_CHAR(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd') and dym is not null;"))
|
|
552
|
+ .setBody(simple("SELECT distinct jh,bj FROM DBA01 WHERE rq between to_date(TO_CHAR(ADD_MONTHS(SYSDATE,-5),'yyyy-MM-dd'),'yyyy-MM-dd')and to_date(TO_CHAR(SYSDATE,'yyyy-MM-dd'),'yyyy-MM-dd') and bj is not null"))
|
473
|
553
|
.to("jdbc:oracle")
|
474
|
554
|
.split(body())
|
475
|
555
|
.setBody(simple("update centralbase.cb_temp_well_mech_runtime set pump_diameter = '${body[BJ]}' where well_id = '${body[JH]}' "))
|
|
@@ -479,7 +559,7 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
479
|
559
|
//从天安哪里获取的数据
|
480
|
560
|
//0 0 */1 * * ? 每1个小时执行一次
|
481
|
561
|
//单独执行一小时的数据30s
|
482
|
|
- from("timer:mytimer7?period=3600000")
|
|
562
|
+ from("timer:mytimer8?period=3600000")
|
483
|
563
|
.routeId("jdbc-gtsj-?")
|
484
|
564
|
.setBody(simple("select max(prod_date) from centralbase.cb_temp_well_mech_runtime "))
|
485
|
565
|
.to("jdbc:centralbase")
|
|
@@ -494,7 +574,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
494
|
574
|
String prod_date = aRow.get("dyna_create_time").toString().split("\\+")[0];
|
495
|
575
|
aRow.put("dyna_create_time", prod_date);
|
496
|
576
|
if (aRow.get("displacement") != null && !aRow.get("displacement").equals("") && aRow.get("disp_load") != null && !aRow.get("disp_load").equals("")) {
|
497
|
|
- String[] displacements = aRow.get("displacement").toString().split(";");
|
|
577
|
+ String[] displacements = aRow.get("displacement").toString().split(";");//10 四舍五入
|
|
578
|
+ //String[] displacements = wy(displacementsOld);
|
498
|
579
|
String[] disp_loads = aRow.get("disp_load").toString().split(";");
|
499
|
580
|
Double susp_max_load = max(disp_loads);
|
500
|
581
|
Double susp_min_load = min(disp_loads);
|
|
@@ -507,7 +588,11 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
507
|
588
|
for (int i = 0; i < s.length; i++) {
|
508
|
589
|
w += new BigDecimal(Math.round(Double.parseDouble(s[i]) * 100)).stripTrailingZeros().toPlainString() + ",";
|
509
|
590
|
}
|
510
|
|
- aRow.put("sgt", w);
|
|
591
|
+ Double[][] doubles = SGTUtil.encodeToDoubleArray(w);
|
|
592
|
+ for (int i = 0;i<doubles.length;i++){
|
|
593
|
+ doubles[i][0] = doubles[i][0] / 10;
|
|
594
|
+ }
|
|
595
|
+ aRow.put("sgt", SGTUtil.encodeToString(doubles));
|
511
|
596
|
aRow.put("susp_max_load",susp_max_load);
|
512
|
597
|
aRow.put("susp_min_load",susp_min_load);
|
513
|
598
|
}
|
|
@@ -515,20 +600,68 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
|
515
|
600
|
if (aRow.get("frequency") == null) aRow.put("frequency", "0.0");
|
516
|
601
|
if (aRow.get("susp_max_load") == null) aRow.put("susp_max_load", "0.0");
|
517
|
602
|
if (aRow.get("susp_min_load") == null) aRow.put("susp_min_load", "0.0");
|
518
|
|
-
|
|
603
|
+ if (aRow.get("frequency") != null){
|
|
604
|
+ BigDecimal bd=new BigDecimal(aRow.get("frequency").toString());
|
|
605
|
+ double frequency=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
606
|
+ aRow.put("frequency",frequency);
|
|
607
|
+ }
|
|
608
|
+ if (aRow.get("stroke") != null){
|
|
609
|
+ double stroke1 = Double.parseDouble(aRow.get("stroke").toString())/10;
|
|
610
|
+ BigDecimal bd=new BigDecimal(stroke1);
|
|
611
|
+ double stroke=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
612
|
+ aRow.put("stroke",stroke);
|
|
613
|
+ }
|
519
|
614
|
})
|
520
|
|
- .setBody(simple("insert into centralbase.cb_temp_well_mech_runtime(well_id,prod_date,stroke_length,stroke_frequency,susp_max_load,susp_min_load,sgt) " +
|
521
|
|
- "values ('${body[well_name]}','${body[dyna_create_time]}','${body[stroke]}','${body[frequency]}','${body[susp_max_load]}','${body[susp_min_load]}','${body[sgt]}')"))
|
|
615
|
+ //.setBody(simple("insert into centralbase.cb_temp_well_mech_runtime(well_id,prod_date,stroke_length,stroke_frequency,susp_max_load,susp_min_load,sgt) " +
|
|
616
|
+ // "values ('${body[well_name]}','${body[dyna_create_time]}','${body[stroke]}','${body[frequency]}','${body[susp_max_load]}','${body[susp_min_load]}','${body[sgt]}')"))
|
522
|
617
|
.setBody(simple("insert into centralbase.cb_temp_well_mech_runtime(well_id,prod_date,stroke_length,stroke_frequency,susp_max_load,susp_min_load,sgt) " +
|
523
|
618
|
"select '${body[well_name]}','${body[dyna_create_time]}','${body[stroke]}','${body[frequency]}','${body[susp_max_load]}','${body[susp_min_load]}','${body[sgt]}' " +
|
524
|
619
|
"where NOT EXISTS (SELECT * FROM centralbase.cb_temp_well_mech_runtime WHERE well_id = '${body[well_name]}' and prod_date = '${body[dyna_create_time]}' )"))
|
525
|
620
|
.to("jdbc:centralbase")
|
526
|
621
|
.log("insert!!!").end();
|
527
|
622
|
|
|
623
|
+ from("timer:mytimer9?period=3600000")
|
|
624
|
+ .routeId("centralbase-2")
|
|
625
|
+ .setHeader("date", constant(date1 + " 00:00:00"))
|
|
626
|
+ .setBody(simple("select distinct rn.well_id,cb.prod_date,rn.pump_diameter from centralbase.cb_temp_well_mech_runtime rn ,centralbase.cb_pc_pro_wellbore_status_daily cb where cb.well_id = rn.well_id\n" +
|
|
627
|
+ "and cb.prod_date = '${header.date}' "))
|
|
628
|
+ .to("jdbc:centralbase")//.log("${body}")
|
|
629
|
+ .split(body()).process(exchange -> {
|
|
630
|
+ Message in = exchange.getIn();
|
|
631
|
+ HashMap<String, Object> aRow = in.getBody(HashMap.class);
|
|
632
|
+ aRow.putIfAbsent("pump_diameter", "0.0");
|
|
633
|
+ })
|
|
634
|
+ .setBody(simple("update centralbase.cb_pc_pro_wellbore_status_daily set oil_nozzle = '${body[pump_diameter]}' where well_id ='${body[well_id]}' and prod_date='${body[prod_date]}' "))
|
|
635
|
+ .to("jdbc:centralbase")
|
|
636
|
+ .log("update success").end();
|
|
637
|
+
|
|
638
|
+ from("timer:mytimer10?period=3600000")
|
|
639
|
+ .routeId("centralbase-3")
|
|
640
|
+ .setHeader("date", constant(date1))
|
|
641
|
+ .setBody(simple("select well_id,avg(stroke_length) stroke_length ,avg(stroke_frequency) stroke_frequency from centralbase.cb_temp_well_mech_runtime where prod_date::date='${header.date}' group by well_id"))
|
|
642
|
+ .to("jdbc:centralbase")//.log("${body}")
|
|
643
|
+ .split(body()).process(exchange -> {
|
|
644
|
+ Message in = exchange.getIn();
|
|
645
|
+ HashMap<String, Object> aRow = in.getBody(HashMap.class);
|
|
646
|
+ if (aRow.get("stroke_length")!=null && aRow.get("stroke_frequency")!=null){
|
|
647
|
+ double stroke_length=Double.parseDouble(aRow.get("stroke_length").toString())/10;
|
|
648
|
+ double stroke_frequency=Double.parseDouble(aRow.get("stroke_frequency").toString());
|
|
649
|
+ BigDecimal bd=new BigDecimal(stroke_length);
|
|
650
|
+ double stroke_lengt1=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
651
|
+ BigDecimal bd1=new BigDecimal(stroke_frequency);
|
|
652
|
+ double stroke_frequency1=bd1.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
653
|
+ aRow.put("strokeLength",stroke_lengt1);
|
|
654
|
+ aRow.put("strokeFrequency",stroke_frequency1);
|
|
655
|
+ }
|
|
656
|
+ })
|
|
657
|
+ .setBody(simple("update centralbase.cb_temp_well_mech_daily set stroke_length='${body[strokeLength]}' ,stroke_frequency ='${body[strokeFrequency]}' where well_id = '${body[well_id]}' and prod_date::date='${header.date}' "))
|
|
658
|
+ .to("jdbc:centralbase")
|
|
659
|
+ .log("update success").end();
|
|
660
|
+
|
528
|
661
|
from("timer:mytimer1?period=3600000")
|
529
|
662
|
.routeId("centralbase-1")
|
530
|
|
- .setBody(simple("select so.well_id,so.well_common_name,so.org_id,ti.prod_date,ti.stroke_frequency,ti.stroke_length,ti.sgt from centralbase.cb_temp_well_mech_runtime ti, centralbase.cb_cd_well_source so where ti.well_id = so.well_id and ti.prod_date =(select max(prod_date) from centralbase.cb_temp_well_mech_runtime) "))
|
531
|
|
- //.setBody(simple("select so.well_id,so.well_common_name,so.org_id,ti.prod_date,ti.stroke_frequency,ti.stroke_length,ti.sgt from centralbase.cb_temp_well_mech_runtime ti, centralbase.cb_cd_well_source so where ti.well_id = so.well_id and ti.prod_date ='2021-07-12 10:25:00' and ti.well_id = '台24' limit 1 "))
|
|
663
|
+ //.setBody(simple("select so.well_id,so.well_common_name,so.org_id,ti.prod_date,ti.stroke_frequency,ti.stroke_length,ti.sgt from centralbase.cb_temp_well_mech_runtime ti, centralbase.cb_cd_well_source so where ti.well_id = so.well_id and ti.prod_date =(select max(prod_date) from centralbase.cb_temp_well_mech_runtime) "))
|
|
664
|
+ .setBody(simple("select so.well_id,so.well_common_name,so.org_id,ti.prod_date,ti.stroke_frequency,ti.stroke_length,ti.sgt from centralbase.cb_temp_well_mech_runtime ti, centralbase.cb_cd_well_source so where ti.well_id = so.well_id and ti.prod_date::date='2021-07-19' " ))
|
532
|
665
|
.to("jdbc:centralbase")
|
533
|
666
|
.split(body())
|
534
|
667
|
.process(exchange -> {
|