Browse Source

准东添加量液信息入A2库代码

gxt 3 years ago
parent
commit
06f916c20a

+ 4 - 0
pom.xml

@@ -162,6 +162,10 @@
162 162
             <groupId>org.apache.camel.springboot</groupId>
163 163
             <artifactId>camel-quartz-starter</artifactId>
164 164
         </dependency>
165
+        <!--<dependency>
166
+            <groupId>org.apache.camel.springboot</groupId>
167
+            <artifactId>camel-cron-starter</artifactId>
168
+        </dependency>-->
165 169
         <dependency>
166 170
             <groupId>org.springframework.boot</groupId>
167 171
             <artifactId>spring-boot-starter-test</artifactId>

+ 15 - 4
src/main/java/com/gct/tools/etlcamelhuge/camelconfig/MyDataSourceConfiguration.java

@@ -18,21 +18,32 @@ import javax.sql.DataSource;
18 18
 @Configuration
19 19
 public class MyDataSourceConfiguration {
20 20
 
21
-    @Bean(name = "centralbase")
21
+   @Bean(name = "centralbase")
22 22
     @ConfigurationProperties(prefix = "spring.datasource.ds1")
23 23
     public DataSource dataSource1() {
24 24
         return DataSourceBuilder.create().build();
25 25
     }
26 26
 
27
-    @Bean(name = "oracle")
27
+     @Bean(name = "oracle")
28 28
     @ConfigurationProperties(prefix = "spring.datasource.ds2")
29
-    public DataSource dataSource3() {
29
+    public DataSource dataSource2() {
30 30
         return DataSourceBuilder.create().build();
31 31
     }
32 32
 
33 33
     @Bean(name = "gtsj")
34 34
     @ConfigurationProperties(prefix = "spring.datasource.ds3")
35
-    public DataSource dataSource4() {
35
+    public DataSource dataSource3() {
36
+        return DataSourceBuilder.create().build();
37
+    }
38
+   @Bean(name = "aoid")
39
+   @ConfigurationProperties(prefix = "spring.datasource.ds4")
40
+   public DataSource dataSource4() {
41
+       return DataSourceBuilder.create().build();
42
+   }
43
+
44
+    @Bean(name = "insertA2")
45
+    @ConfigurationProperties(prefix = "spring.datasource.ds5")
46
+    public DataSource dataSource5() {
36 47
         return DataSourceBuilder.create().build();
37 48
     }
38 49
 }

+ 68 - 0
src/main/java/com/gct/tools/etlcamelhuge/routeconfig/CamelInsertA2Configuration.java

@@ -0,0 +1,68 @@
1
+package com.gct.tools.etlcamelhuge.routeconfig;
2
+
3
+import com.alibaba.fastjson.JSON;
4
+import org.apache.camel.Message;
5
+import org.apache.camel.builder.RouteBuilder;
6
+import org.apache.camel.model.ExpressionNode;
7
+import org.apache.camel.model.ProcessorDefinition;
8
+import org.apache.camel.model.RouteDefinition;
9
+import org.springframework.beans.factory.annotation.Value;
10
+import org.springframework.context.annotation.Bean;
11
+import org.springframework.context.annotation.Configuration;
12
+import org.springframework.util.StringUtils;
13
+
14
+import java.math.BigDecimal;
15
+import java.sql.Timestamp;
16
+import java.time.Instant;
17
+import java.time.LocalDateTime;
18
+import java.time.ZoneId;
19
+import java.time.ZoneOffset;
20
+import java.time.format.DateTimeFormatter;
21
+import java.util.*;
22
+
23
+/**
24
+ * class name: CamelJDBCConfiguration
25
+ *
26
+ * @author lloyd
27
+ * @version 1.0
28
+ * @since 2021/4/14 下午3:16
29
+ */
30
+@Configuration
31
+public class CamelInsertA2Configuration {
32
+
33
+    @Value("${insertA2.cron}")
34
+    private String cron;
35
+
36
+
37
+    @Bean
38
+    public RouteBuilder routeBuilderWithInsertA2() {
39
+        return new RouteBuilder() {
40
+            @Override
41
+            public void configure() throws Exception {
42
+                from("quartz:tab?cron="+cron)
43
+                        .routeId("update-test")
44
+                        .process(exchange -> {
45
+                            Message in = exchange.getIn();
46
+                            in.setHeader("date",getDate());
47
+                        })
48
+                        .setBody(simple("select well_id,prod_date,liq_prod_daily from aoid.aoid_daily_yield where prod_date='${header.date}' "))
49
+                        .to("jdbc:aoid")
50
+                        .split(body()).process(exchange -> {
51
+                            Message in = exchange.getIn();
52
+                            HashMap<String, Object> aRow = in.getBody(HashMap.class);
53
+                            aRow.putIfAbsent("liq_prod_daily", "0.0");
54
+                            Timestamp timestamp = (Timestamp) aRow.get("prod_date");
55
+                            Instant instant = Instant.ofEpochMilli(timestamp.getTime());
56
+                            LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
57
+                            aRow.put("prod_date",localDateTime.toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
58
+                        })
59
+                        .setBody(simple(" insert into DMS_DBA01_RCYL (JH, RQ, RCYL) values('${body[well_id]}', to_date(to_char('${body[prod_date]}'),'yyyy-MM-dd'),'${body[liq_prod_daily]}') "))
60
+                        .to("jdbc:insertA2")
61
+                        .end();
62
+            };
63
+        };
64
+    }
65
+    private String getDate(){
66
+        return  LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
67
+    }
68
+}

+ 53 - 1
src/main/resources/application.yml

@@ -1,6 +1,11 @@
1 1
 camel:
2 2
   springboot:
3 3
     main-run-controller: true
4
+# 日志打印级别
5
+logging:
6
+  level:
7
+    root: error
8
+    com.gct.tools.etlcamelhuge.routeconfig: error
4 9
 spring:
5 10
   ## 数据库配置
6 11
   datasource:
@@ -70,6 +75,50 @@ spring:
70 75
         max-lifetime: 1800000
71 76
         ## 数据库连接超时时间,默认30秒,即30000
72 77
         connection-timeout: 60000
78
+    ds4:
79
+      ## Hikari连接池的设置 Hikari 时间单位都是毫秒
80
+      type: com.zaxxer.hikari.HikariDataSource
81
+      jdbc-url: jdbc:postgresql://10.72.143.2:54321/calliquid
82
+      username: root
83
+      password: 123456
84
+      driver-class-name: org.postgresql.Driver
85
+      hikari:
86
+        ## 连接池名字
87
+        pool-name: SystemHikariCP
88
+        ## 最小空闲连接数量
89
+        minimum-idle: 5
90
+        ## 空闲连接存活最大时间,默认600000(10分钟)
91
+        idle-timeout: 60000
92
+        ## 连接池最大连接数,默认是10
93
+        maximum-pool-size: 15
94
+        ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
95
+        auto-commit: true
96
+        ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
97
+        max-lifetime: 1800000
98
+        ## 数据库连接超时时间,默认30秒,即30000
99
+        connection-timeout: 30000
100
+    ds5:
101
+      ## Hikari连接池的设置 Hikari 时间单位都是毫秒
102
+      type: com.zaxxer.hikari.HikariDataSource
103
+      jdbc-url: jdbc:oracle:thin:@11.71.15.28:1521:oracycn2
104
+      username: ZD_A2USER
105
+      password: A2#2014ZD
106
+      driver-class-name: oracle.jdbc.driver.OracleDriver
107
+      hikari:
108
+        ## 连接池名字
109
+        pool-name: SystemHikariCP
110
+        ## 最小空闲连接数量
111
+        minimum-idle: 5
112
+        ## 空闲连接存活最大时间,默认600000(10分钟)
113
+        idle-timeout: 60000
114
+        ## 连接池最大连接数,默认是10
115
+        maximum-pool-size: 15
116
+        ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
117
+        auto-commit: true
118
+        ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
119
+        max-lifetime: 1800000
120
+        ## 数据库连接超时时间,默认30秒,即30000
121
+        connection-timeout: 30000
73 122
 
74 123
 management:
75 124
   info:
@@ -135,4 +184,7 @@ gct:
135 184
 swagger:
136 185
   authorization:
137 186
     key-name: token
138
-  enabled: true
187
+  enabled: true
188
+
189
+insertA2:
190
+  cron: 0 0 8 * * ?

+ 6 - 21
src/test/java/com/gct/tools/etlcamelhuge/EtlCamelHugeApplicationTests.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
4 4
 import com.alibaba.fastjson.JSONObject;
5 5
 import com.gct.tools.etlcamelhuge.entity.GTBody;
6 6
 import com.gct.tools.etlcamelhuge.routeconfig.CamelJDBCConfiguration;
7
+import com.mysql.cj.log.Log;
7 8
 import io.micrometer.core.instrument.util.IOUtils;
8 9
 import lombok.Data;
9 10
 import org.apache.camel.AggregationStrategy;
@@ -26,6 +27,10 @@ import java.io.InputStream;
26 27
 import java.lang.reflect.Array;
27 28
 import java.lang.reflect.InvocationTargetException;
28 29
 import java.text.SimpleDateFormat;
30
+import java.time.LocalDate;
31
+import java.time.LocalDateTime;
32
+import java.time.ZoneOffset;
33
+import java.time.format.DateTimeFormatter;
29 34
 import java.util.ArrayList;
30 35
 import java.util.Arrays;
31 36
 import java.util.Date;
@@ -174,27 +179,7 @@ class EtlCamelHugeApplicationTests {
174 179
     }
175 180
 
176 181
     public static void main(String args[]) throws Exception {
177
-        CamelContext context = new DefaultCamelContext();
178
-        //new ClassPathXmlApplicationContext("jetty/camel.xml");
179
-        context.addRoutes(new RouteBuilder() {
180
-            @Override
181
-            public void configure() {
182
-                JSONObject body = new JSONObject();
183
-                body.put("userno", "zdcycgtlyxt"); // 分配的系统用户账号
184
-                body.put("password", "Zdcycgtlyxt");
185
-                from("timer:mytimer?repeatCount=1")
186
-                        .setBody(simple(body.toJSONString()))
187
-                        .removeHeaders("CamelHttp*")
188
-                        .to("http://11.71.3.110:30010/dibs/0/service/token")
189
-                        .log("${body}:");
190
-            }
191
-        });
192
-        context.start();
193
-        boolean loop = true;
194
-        while (loop) {
195
-            Thread.sleep(25000);
196
-        }
197
-        context.stop();
182
+        System.out.println(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
198 183
     }
199 184
 
200 185