Browse Source

代码完善

gxt_xa_000000 4 years ago
parent
commit
e3fbe504e4

+ 5 - 0
pom.xml

@@ -42,6 +42,11 @@
42 42
             <artifactId>postgresql</artifactId>
43 43
         </dependency>
44 44
         <dependency>
45
+            <groupId>com.gct.common.util</groupId>
46
+            <artifactId>common-util</artifactId>
47
+            <version>2.0-SNAPSHOT</version>
48
+        </dependency>
49
+        <dependency>
45 50
             <groupId>com.oracle</groupId>
46 51
             <artifactId>ojdbc6</artifactId>
47 52
             <version>11.2.0.4.0-atlassian-hosted</version>

+ 162 - 29
src/main/java/com/gct/tools/etlcamelhuge/routeconfig/CamelJDBCConfiguration.java

@@ -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 -> {

+ 25 - 25
src/main/resources/application.yml

@@ -51,9 +51,9 @@ spring:
51 51
     ds3:
52 52
       ## Hikari连接池的设置 Hikari 时间单位都是毫秒
53 53
       type: com.zaxxer.hikari.HikariDataSource
54
-      jdbc-url: jdbc:oracle:thin:@10.72.181.234:1521:orcl
55
-      username: dhzdly
56
-      password: gctgct#831511
54
+      jdbc-url: jdbc:oracle:thin:@11.71.15.28:1521:oracycn2
55
+      username: ZD_FGD
56
+      password: ZJGSDDS#2014ZD
57 57
       driver-class-name: oracle.jdbc.driver.OracleDriver
58 58
       hikari:
59 59
         ## 连接池名字
@@ -70,28 +70,28 @@ spring:
70 70
         max-lifetime: 1800000
71 71
         ## 数据库连接超时时间,默认30秒,即30000
72 72
         connection-timeout: 30000
73
-    ds4:
74
-      ## Hikari连接池的设置 Hikari 时间单位都是毫秒
75
-      type: com.zaxxer.hikari.HikariDataSource
76
-      jdbc-url: jdbc:postgresql://11.72.187.11:5432/GTDATE
77
-      username: postgres
78
-      password: Postgres_2021#
79
-      driver-class-name: org.postgresql.Driver
80
-      hikari:
81
-        ## 连接池名字
82
-        pool-name: SystemHikariCP
83
-        ## 最小空闲连接数量
84
-        minimum-idle: 5
85
-        ## 空闲连接存活最大时间,默认600000(10分钟)
86
-        idle-timeout: 60000
87
-        ## 连接池最大连接数,默认是10
88
-        maximum-pool-size: 15
89
-        ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
90
-        auto-commit: true
91
-        ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
92
-        max-lifetime: 1800000
93
-        ## 数据库连接超时时间,默认30秒,即30000
94
-        connection-timeout: 30000
73
+   ds4:
74
+     ## Hikari连接池的设置 Hikari 时间单位都是毫秒
75
+     type: com.zaxxer.hikari.HikariDataSource
76
+     jdbc-url: jdbc:postgresql://11.72.187.11:5432/GTDATE
77
+     username: postgres
78
+     password: Postgres_2021#
79
+     driver-class-name: org.postgresql.Driver
80
+     hikari:
81
+       ## 连接池名字
82
+       pool-name: SystemHikariCP
83
+       ## 最小空闲连接数量
84
+       minimum-idle: 5
85
+       ## 空闲连接存活最大时间,默认600000(10分钟)
86
+       idle-timeout: 60000
87
+       ## 连接池最大连接数,默认是10
88
+       maximum-pool-size: 15
89
+       ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
90
+       auto-commit: true
91
+       ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
92
+       max-lifetime: 1800000
93
+       ## 数据库连接超时时间,默认30秒,即30000
94
+       connection-timeout: 30000
95 95
 
96 96
 management:
97 97
   info: