|
@@ -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
|
+}
|