Browse Source

代码完善

gxt_xa_000000 4 years ago
parent
commit
e3fbe504e4

+ 5 - 0
pom.xml

@@ -42,6 +42,11 @@
42
             <artifactId>postgresql</artifactId>
42
             <artifactId>postgresql</artifactId>
43
         </dependency>
43
         </dependency>
44
         <dependency>
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
             <groupId>com.oracle</groupId>
50
             <groupId>com.oracle</groupId>
46
             <artifactId>ojdbc6</artifactId>
51
             <artifactId>ojdbc6</artifactId>
47
             <version>11.2.0.4.0-atlassian-hosted</version>
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
 package com.gct.tools.etlcamelhuge.routeconfig;
1
 package com.gct.tools.etlcamelhuge.routeconfig;
2
 
2
 
3
+import com.gct.common.util.SGTUtil;
3
 import com.gct.tools.etlcamelhuge.MQ.MessageBody;
4
 import com.gct.tools.etlcamelhuge.MQ.MessageBody;
4
 import com.gct.tools.etlcamelhuge.MQ.MessageProducer;
5
 import com.gct.tools.etlcamelhuge.MQ.MessageProducer;
5
 import com.gct.tools.etlcamelhuge.entity.DiagnoseMsg;
6
 import com.gct.tools.etlcamelhuge.entity.DiagnoseMsg;
@@ -13,6 +14,7 @@ import org.springframework.context.annotation.Configuration;
13
 
14
 
14
 import javax.annotation.Resource;
15
 import javax.annotation.Resource;
15
 import java.math.BigDecimal;
16
 import java.math.BigDecimal;
17
+import java.text.DecimalFormat;
16
 import java.text.SimpleDateFormat;
18
 import java.text.SimpleDateFormat;
17
 import java.time.LocalDateTime;
19
 import java.time.LocalDateTime;
18
 import java.util.*;
20
 import java.util.*;
@@ -266,6 +268,23 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
266
         }
268
         }
267
         return Arrays.stream(doubles).max().getAsDouble();
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
     @Resource(name = "diagnoseMessageProducer")
288
     @Resource(name = "diagnoseMessageProducer")
270
     private MessageProducer producer;
289
     private MessageProducer producer;
271
     @Bean
290
     @Bean
@@ -287,7 +306,7 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
287
                 from("timer:mytimer1?period=604800000")
306
                 from("timer:mytimer1?period=604800000")
288
                         .routeId("oracle-1")
307
                         .routeId("oracle-1")
289
                         .setHeader("date", constant(date1))
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
                         .to("jdbc:oracle")
310
                         .to("jdbc:oracle")
292
                         .transform()
311
                         .transform()
293
                         .body((result) -> {
312
                         .body((result) -> {
@@ -324,7 +343,6 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
324
                                 " ON conflict(well_id) DO UPDATE set remarks = '${body[BZ]}' "))
343
                                 " ON conflict(well_id) DO UPDATE set remarks = '${body[BZ]}' "))
325
                         .to("jdbc:centralbase")
344
                         .to("jdbc:centralbase")
326
                         .end()
345
                         .end()
327
-
328
                         .transform().body((re) -> {
346
                         .transform().body((re) -> {
329
                     List<Map<String, Object>> rows = new ArrayList<>();
347
                     List<Map<String, Object>> rows = new ArrayList<>();
330
                     int code = 0;
348
                     int code = 0;
@@ -372,8 +390,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
372
                 from("timer:mytimer2?period=3600000")
390
                 from("timer:mytimer2?period=3600000")
373
                         .routeId("oracle-2")
391
                         .routeId("oracle-2")
374
                         .setHeader("date", constant(date1))
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
                         .to("jdbc:oracle")
395
                         .to("jdbc:oracle")
378
                         .split(body()).process(exchange -> {
396
                         .split(body()).process(exchange -> {
379
                     Message in = exchange.getIn();
397
                     Message in = exchange.getIn();
@@ -384,8 +402,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
384
                     if (aRow.get("TYSX") == null) aRow.put("TYSX", "0.0");
402
                     if (aRow.get("TYSX") == null) aRow.put("TYSX", "0.0");
385
                     if (aRow.get("BS") == null) aRow.put("BS", "0.0");
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
                         .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) " +
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
                                 "select '${body[JH]}','${body[RQ]}','${body[CYFS]}','${body[YZ]}','${body[HYSX]}','${body[YYSX]}','${body[TYSX]}','${body[BS]}' " +
408
                                 "select '${body[JH]}','${body[RQ]}','${body[CYFS]}','${body[YZ]}','${body[HYSX]}','${body[YYSX]}','${body[TYSX]}','${body[BS]}' " +
391
                                 "where NOT EXISTS ( SELECT * FROM centralbase.cb_pc_pro_wellbore_status_daily WHERE well_id = '${body[JH]}' and  prod_date = '${body[RQ]}')"))
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
                         .routeId("oracle-5")
418
                         .routeId("oracle-5")
401
                         .setHeader("date", constant(date1 + " 00:00:00"))
419
                         .setHeader("date", constant(date1 + " 00:00:00"))
402
                         //三个月之内dym不为空的数据
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
                         .to("jdbc:oracle")
423
                         .to("jdbc:oracle")
406
                         .split(body())
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
                         .to("jdbc:centralbase")
426
                         .to("jdbc:centralbase")
409
                         .log("insert !!!")
427
                         .log("insert !!!")
410
                         .end();
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
                 //单独执行时间30s
452
                 //单独执行时间30s
413
                 from("timer:mytimer3?period=3600000")
453
                 from("timer:mytimer3?period=3600000")
414
                         .routeId("oracle-3")
454
                         .routeId("oracle-3")
415
                         .setHeader("date", constant(date1))
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
                         .to("jdbc:oracle")
457
                         .to("jdbc:oracle")
418
                         .split(body()).process(exchange -> {
458
                         .split(body()).process(exchange -> {
419
                     Message in = exchange.getIn();
459
                     Message in = exchange.getIn();
@@ -423,23 +463,63 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
423
                     if (aRow.get("RCYL") == null) aRow.put("RCYL", "0.0");
463
                     if (aRow.get("RCYL") == null) aRow.put("RCYL", "0.0");
424
                     if (aRow.get("RCQL") == null) aRow.put("RCQL", "0.0");
464
                     if (aRow.get("RCQL") == null) aRow.put("RCQL", "0.0");
425
                     if (aRow.get("HS") == null) aRow.put("HS", "0.0");
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
                                 "where NOT EXISTS ( SELECT * FROM centralbase.cb_pc_pro_wellbore_vol_daily WHERE well_id = '${body[JH]}' and  prod_date = '${body[RQ]}' )"))
505
                                 "where NOT EXISTS ( SELECT * FROM centralbase.cb_pc_pro_wellbore_vol_daily WHERE well_id = '${body[JH]}' and  prod_date = '${body[RQ]}' )"))
433
                         .to("jdbc:centralbase")
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
                         .end();
514
                         .end();
436
 
515
 
516
+
437
                 //0 0 */1 * * ? 每1个小时执行一次
517
                 //0 0 */1 * * ? 每1个小时执行一次
438
                 //单独执行一次30s
518
                 //单独执行一次30s
439
                 from("timer:mytimer4?period=3600000")
519
                 from("timer:mytimer4?period=3600000")
440
                         .routeId("oracle-4")
520
                         .routeId("oracle-4")
441
                         .setHeader("date", constant(date1))
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
                         .to("jdbc:oracle")
523
                         .to("jdbc:oracle")
444
                         .split(body()).process(exchange -> {
524
                         .split(body()).process(exchange -> {
445
                     Message in = exchange.getIn();
525
                     Message in = exchange.getIn();
@@ -455,8 +535,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
455
                     if (aRow.get("BLX") == null) aRow.put("BLX", "");
535
                     if (aRow.get("BLX") == null) aRow.put("BLX", "");
456
                     if (aRow.get("DL") == null) aRow.put("DL", "0.0");
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
                         .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) " +
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
                                 "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]}' " +
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
                                 "where NOT EXISTS ( SELECT * FROM centralbase.cb_temp_well_mech_daily WHERE well_id = '${body[JH]}' and  prod_date = '${body[RQ]}' )"))
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
                         .routeId("oracle-6")
548
                         .routeId("oracle-6")
469
                         .setHeader("date", constant(date1 + " 00:00:00"))
549
                         .setHeader("date", constant(date1 + " 00:00:00"))
470
                         //五个月之内bj不为空的数据
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
                         .to("jdbc:oracle")
553
                         .to("jdbc:oracle")
474
                         .split(body())
554
                         .split(body())
475
                         .setBody(simple("update centralbase.cb_temp_well_mech_runtime set pump_diameter = '${body[BJ]}' where well_id = '${body[JH]}' "))
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
                 //0 0 */1 * * ? 每1个小时执行一次
560
                 //0 0 */1 * * ? 每1个小时执行一次
481
                 //单独执行一小时的数据30s
561
                 //单独执行一小时的数据30s
482
-                from("timer:mytimer7?period=3600000")
562
+                from("timer:mytimer8?period=3600000")
483
                         .routeId("jdbc-gtsj-?")
563
                         .routeId("jdbc-gtsj-?")
484
                         .setBody(simple("select max(prod_date) from centralbase.cb_temp_well_mech_runtime "))
564
                         .setBody(simple("select max(prod_date) from centralbase.cb_temp_well_mech_runtime "))
485
                         .to("jdbc:centralbase")
565
                         .to("jdbc:centralbase")
@@ -494,7 +574,8 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
494
                     String prod_date = aRow.get("dyna_create_time").toString().split("\\+")[0];
574
                     String prod_date = aRow.get("dyna_create_time").toString().split("\\+")[0];
495
                     aRow.put("dyna_create_time", prod_date);
575
                     aRow.put("dyna_create_time", prod_date);
496
                     if (aRow.get("displacement") != null && !aRow.get("displacement").equals("") && aRow.get("disp_load") != null && !aRow.get("disp_load").equals("")) {
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
                         String[] disp_loads = aRow.get("disp_load").toString().split(";");
579
                         String[] disp_loads = aRow.get("disp_load").toString().split(";");
499
                         Double susp_max_load = max(disp_loads);
580
                         Double susp_max_load = max(disp_loads);
500
                         Double susp_min_load = min(disp_loads);
581
                         Double susp_min_load = min(disp_loads);
@@ -507,7 +588,11 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
507
                         for (int i = 0; i < s.length; i++) {
588
                         for (int i = 0; i < s.length; i++) {
508
                             w += new BigDecimal(Math.round(Double.parseDouble(s[i]) * 100)).stripTrailingZeros().toPlainString() + ",";
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
                         aRow.put("susp_max_load",susp_max_load);
596
                         aRow.put("susp_max_load",susp_max_load);
512
                         aRow.put("susp_min_load",susp_min_load);
597
                         aRow.put("susp_min_load",susp_min_load);
513
                     }
598
                     }
@@ -515,20 +600,68 @@ public class CamelJDBCConfiguration /*extends RouteBuilder */ {
515
                     if (aRow.get("frequency") == null) aRow.put("frequency", "0.0");
600
                     if (aRow.get("frequency") == null) aRow.put("frequency", "0.0");
516
                     if (aRow.get("susp_max_load") == null) aRow.put("susp_max_load", "0.0");
601
                     if (aRow.get("susp_max_load") == null) aRow.put("susp_max_load", "0.0");
517
                     if (aRow.get("susp_min_load") == null) aRow.put("susp_min_load", "0.0");
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
                         .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) " +
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
                                 "select '${body[well_name]}','${body[dyna_create_time]}','${body[stroke]}','${body[frequency]}','${body[susp_max_load]}','${body[susp_min_load]}','${body[sgt]}' " +
618
                                 "select '${body[well_name]}','${body[dyna_create_time]}','${body[stroke]}','${body[frequency]}','${body[susp_max_load]}','${body[susp_min_load]}','${body[sgt]}' " +
524
                                 "where NOT EXISTS (SELECT * FROM centralbase.cb_temp_well_mech_runtime WHERE well_id = '${body[well_name]}' and  prod_date = '${body[dyna_create_time]}' )"))
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
                         .to("jdbc:centralbase")
620
                         .to("jdbc:centralbase")
526
                         .log("insert!!!").end();
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
                 from("timer:mytimer1?period=3600000")
661
                 from("timer:mytimer1?period=3600000")
529
                         .routeId("centralbase-1")
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
                         .to("jdbc:centralbase")
665
                         .to("jdbc:centralbase")
533
                         .split(body())
666
                         .split(body())
534
                         .process(exchange -> {
667
                         .process(exchange -> {

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

@@ -51,9 +51,9 @@ spring:
51
     ds3:
51
     ds3:
52
       ## Hikari连接池的设置 Hikari 时间单位都是毫秒
52
       ## Hikari连接池的设置 Hikari 时间单位都是毫秒
53
       type: com.zaxxer.hikari.HikariDataSource
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
       driver-class-name: oracle.jdbc.driver.OracleDriver
57
       driver-class-name: oracle.jdbc.driver.OracleDriver
58
       hikari:
58
       hikari:
59
         ## 连接池名字
59
         ## 连接池名字
@@ -70,28 +70,28 @@ spring:
70
         max-lifetime: 1800000
70
         max-lifetime: 1800000
71
         ## 数据库连接超时时间,默认30秒,即30000
71
         ## 数据库连接超时时间,默认30秒,即30000
72
         connection-timeout: 30000
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
 management:
96
 management:
97
   info:
97
   info: