Browse Source

通过接入井表来控制数据导入

gxt 3 years ago
parent
commit
9ca3c175e4

+ 14 - 46
src/main/java/com/gct/tools/etlcamelhuge/routeconfig/CamelJDBCCofRealTimeConfiguration.java

@@ -70,30 +70,19 @@ public class CamelJDBCCofRealTimeConfiguration  {
70
         return new RouteBuilder() {
70
         return new RouteBuilder() {
71
             @Override
71
             @Override
72
             public void configure() throws Exception {
72
             public void configure() throws Exception {
73
-                /*from("timer:mytimer-update-runTime?period=3600000")
74
-                        .routeId("update-runTime")
75
-                        .setHeader("date", constant(getDate() + " 00:00:00"))
76
-                        .setBody(simple("SELECT  distinct jh,max(rq),bj FROM DBA01 WHERE dym is not null group by jh,bj"))
77
-                        .to("jdbc:oracle")
78
-                        .split(body()).process(exchange -> {
79
-                            Message in = exchange.getIn();
80
-                            HashMap<String, Object> aRow = in.getBody(HashMap.class);
81
-                            if (aRow.get("BJ") ==null || aRow.get("BJ").equals("")) aRow.put("BJ","0.0");
82
-                        })
83
-                        .setBody(simple("update centralbase.cb_temp_well_mech_runtime set pump_diameter = '${body[BJ]}' where well_id = '${body[JH]}' "))
84
-                        .doTry()
85
-                        .to("jdbc:centralbase")
86
-                        .doCatch(Exception.class)
87
-                        .log("${header.date}"+" routeId:update-runTime -> centralbase.cb_temp_well_mech_runtime update data failed")
88
-                        .end();*/
89
-
90
                 from("timer:mytimer-insert-runtime?period=1800000")
73
                 from("timer:mytimer-insert-runtime?period=1800000")
91
                         .routeId("insert-runtime")
74
                         .routeId("insert-runtime")
92
                         .setBody(simple("select max(prod_date)  from centralbase.cb_temp_well_mech_runtime "))
75
                         .setBody(simple("select max(prod_date)  from centralbase.cb_temp_well_mech_runtime "))
93
                         .to("jdbc:centralbase")
76
                         .to("jdbc:centralbase")
94
                         .split(body())
77
                         .split(body())
95
                         .setHeader("date", simple("${body[max]}"))
78
                         .setHeader("date", simple("${body[max]}"))
96
-                        .setBody(simple("select distinct well_name,dyna_create_time,check_date,displacement,disp_load,stroke,frequency,susp_max_load,susp_min_load from public.pc_fd_pumpjack_dyna_dia_t where   dyna_create_time > '${header.date}' "))
79
+                        .setBody(simple("select well_id from centralbase.sys_access_well_control  where  access_status='1'  "))
80
+                        .to("jdbc:centralbase")
81
+                        .split(body()).process(exchange -> {
82
+                            HashMap body = exchange.getIn().getBody(HashMap.class);
83
+                            exchange.getIn().setHeader("well_id",body.get("well_id"));
84
+                        })
85
+                        .setBody(simple("select distinct well_name,dyna_create_time,check_date,displacement,disp_load,stroke,frequency,susp_max_load,susp_min_load from public.pc_fd_pumpjack_dyna_dia_t where   dyna_create_time > '${header.date}' and well_name='${header.well_id}' "))
97
                         .to("jdbc:gtsj")
86
                         .to("jdbc:gtsj")
98
                         .process(exchange -> {
87
                         .process(exchange -> {
99
                             sendMsgRunTime = 0;
88
                             sendMsgRunTime = 0;
@@ -102,7 +91,6 @@ public class CamelJDBCCofRealTimeConfiguration  {
102
                     Message in = exchange.getIn();
91
                     Message in = exchange.getIn();
103
                     HashMap<String, Object> aRow = in.getBody(HashMap.class);
92
                     HashMap<String, Object> aRow = in.getBody(HashMap.class);
104
                     String prod_date = aRow.get("dyna_create_time").toString().split("\\+")[0];
93
                     String prod_date = aRow.get("dyna_create_time").toString().split("\\+")[0];
105
-                    System.out.println("prod_date---"+prod_date);
106
                     aRow.put("dyna_create_time", prod_date);
94
                     aRow.put("dyna_create_time", prod_date);
107
                     aRow.put("sgt", "");
95
                     aRow.put("sgt", "");
108
                     if (aRow.get("displacement") != null && !aRow.get("displacement").equals("") && aRow.get("disp_load") != null && !aRow.get("disp_load").equals("")) {
96
                     if (aRow.get("displacement") != null && !aRow.get("displacement").equals("") && aRow.get("disp_load") != null && !aRow.get("disp_load").equals("")) {
@@ -158,8 +146,6 @@ public class CamelJDBCCofRealTimeConfiguration  {
158
                         double stroke=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
146
                         double stroke=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
159
                         aRow.put("stroke",stroke);
147
                         aRow.put("stroke",stroke);
160
                     }
148
                     }
161
-                           // long count = sendDataToRocketMQ(aRow.get("well_name").toString(), aRow.get("well_name").toString(), aRow.get("dyna_create_time").toString(), aRow.get("stroke").toString(), aRow.get("frequency").toString(), aRow.get("sgt").toString());
162
-                           // System.out.println("消息发送时间为:   "+LocalDateTime.now()+"   发送的消息数量为: "+count + "   数据时间为:" + aRow.get("dyna_create_time"));
163
                             String wellName =aRow.get("well_name").toString();
149
                             String wellName =aRow.get("well_name").toString();
164
                             String wellId =aRow.get("well_name").toString();
150
                             String wellId =aRow.get("well_name").toString();
165
                             String prodDate = aRow.get("dyna_create_time").toString().substring(0,19);
151
                             String prodDate = aRow.get("dyna_create_time").toString().substring(0,19);
@@ -174,30 +160,6 @@ public class CamelJDBCCofRealTimeConfiguration  {
174
                         .to("jdbc:centralbase")
160
                         .to("jdbc:centralbase")
175
                         .end();
161
                         .end();
176
 
162
 
177
-                /*from("timer:mytimer-SendToMQ?period=180000")
178
-                        .routeId("SendToMQ")
179
-                        .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) "))
180
-                        .to("jdbc:centralbase")
181
-                        .split(body())
182
-                        .doTry()
183
-                        .process(exchange -> {
184
-                            Message in = exchange.getIn();
185
-                            HashMap<String, Object> aRow = in.getBody(HashMap.class);
186
-                            String wellName =aRow.get("well_common_name").toString();
187
-                            String wellId =aRow.get("well_id").toString();
188
-                            String orgId = aRow.get("org_id").toString();
189
-                            String prodDate = aRow.get("prod_date").toString().substring(0,19);
190
-                            Double strokeLength = Double.valueOf(aRow.get("stroke_length").toString());
191
-                            Double strokeFrequency = Double.valueOf(aRow.get("stroke_frequency").toString());
192
-                            String sgt = aRow.get("sgt").toString();
193
-                            DiagnoseMsg diagnoseMsg = new DiagnoseMsg(wellId, wellName, orgId, prodDate, sgt, LocalDateTime.now().toString(), strokeLength, strokeFrequency);
194
-                            producer.send((MessageBody) diagnoseMsg);
195
-                        })
196
-                        .doCatch(Exception.class)
197
-                        .log("${header.date}"+" rocketMQ send data failed")
198
-                        .endDoTry()
199
-                        .end();*/
200
-
201
                from("timer:mytimer-update-avg-mech_daily?period=3600000")
163
                from("timer:mytimer-update-avg-mech_daily?period=3600000")
202
                         .routeId("update-avg-mech_daily")
164
                         .routeId("update-avg-mech_daily")
203
                        .process(exchange -> {
165
                        .process(exchange -> {
@@ -233,7 +195,13 @@ public class CamelJDBCCofRealTimeConfiguration  {
233
                             Message in = exchange.getIn();
195
                             Message in = exchange.getIn();
234
                             in.setHeader("date",getDate());
196
                             in.setHeader("date",getDate());
235
                         })
197
                         })
236
-                        .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  "))
198
+                        .setBody(simple("select well_id from centralbase.sys_access_well_control  where  access_status='1'  "))
199
+                        .to("jdbc:centralbase")
200
+                        .split(body()).process(exchange -> {
201
+                            HashMap body = exchange.getIn().getBody(HashMap.class);
202
+                            exchange.getIn().setHeader("well_id",body.get("well_id"));
203
+                        })
204
+                        .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 jh='${header.well_id}' and qyrq is not null  "))
237
                         .to("jdbc:oracle")
205
                         .to("jdbc:oracle")
238
                         .split(body()).process(exchange -> {
206
                         .split(body()).process(exchange -> {
239
                             Message in = exchange.getIn();
207
                             Message in = exchange.getIn();

+ 83 - 81
src/main/java/com/gct/tools/etlcamelhuge/routeconfig/CamelJDBCConfiguration.java

@@ -3,6 +3,9 @@ package com.gct.tools.etlcamelhuge.routeconfig;
3
 import org.apache.camel.*;
3
 import org.apache.camel.*;
4
 import org.apache.camel.builder.RouteBuilder;
4
 import org.apache.camel.builder.RouteBuilder;
5
 //import org.apache.rocketmq.common.message.Message;
5
 //import org.apache.rocketmq.common.message.Message;
6
+import org.apache.camel.model.ExpressionNode;
7
+import org.apache.camel.model.ProcessorDefinition;
8
+import org.apache.camel.model.RouteDefinition;
6
 import org.springframework.context.annotation.Bean;
9
 import org.springframework.context.annotation.Bean;
7
 import org.springframework.context.annotation.Configuration;
10
 import org.springframework.context.annotation.Configuration;
8
 import org.springframework.util.StringUtils;
11
 import org.springframework.util.StringUtils;
@@ -26,91 +29,93 @@ public class CamelJDBCConfiguration {
26
     public String getDate(){
29
     public String getDate(){
27
         return  LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
30
         return  LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
28
     }
31
     }
29
-
30
     @Bean
32
     @Bean
31
     public RouteBuilder routeBuilderWithOracle1() {
33
     public RouteBuilder routeBuilderWithOracle1() {
32
         return new RouteBuilder() {
34
         return new RouteBuilder() {
33
             private SortedSet<String> organization;
35
             private SortedSet<String> organization;
34
-            private Map<String, Integer> orgIDs;
35
-            private Integer orgID;
36
-            private Map<String, Integer> stringIntegerMap;
37
-            private List<Object> wellIdList;
38
-            private Set<Object> orgIdPreList;
36
+            private Map<String, Integer>  orgIDs = new HashMap<>();
37
+            private int orgID;
38
+            private Map<Object, Object> orgIdPreList;
39
             private Integer org;
39
             private Integer org;
40
-            //全部执行完成的大概时间在30-40分钟
40
+
41
+            public ProcessorDefinition<ExpressionNode> setMyBody(RouteDefinition route){
42
+             return  route.setBody(simple("select well_id from centralbase.sys_access_well_control  where  access_status='1'  "))
43
+                        .to("jdbc:centralbase")
44
+                        .split(body()).process(exchange -> {
45
+                            HashMap body = exchange.getIn().getBody(HashMap.class);
46
+                            exchange.getIn().setHeader("well_id",body.get("well_id"));
47
+                        });
48
+            }
41
             @Override
49
             @Override
42
             public void configure() throws Exception {
50
             public void configure() throws Exception {
43
 
51
 
44
-                from("timer:insert-OrgAndWellSource?period=86400000")
52
+                RouteDefinition OrgAndWellSource= (RouteDefinition) from("timer:insert-OrgAndWellSource?period=86400000")
45
                         .routeId("insert-OrgAndWellSource")
53
                         .routeId("insert-OrgAndWellSource")
46
                         .setHeader("date", constant(getDate()))
54
                         .setHeader("date", constant(getDate()))
47
                         .process(exchange -> {
55
                         .process(exchange -> {
48
                             org = 0;
56
                             org = 0;
49
-                            wellIdList = new ArrayList<>();
50
-                            orgIdPreList =new HashSet<>();
57
+                            orgIdPreList = new HashMap<>();
51
                         })
58
                         })
52
                         .setBody(simple("select max(org_id) from centralbase.cb_pc_organization"))
59
                         .setBody(simple("select max(org_id) from centralbase.cb_pc_organization"))
53
                         .to("jdbc:centralbase")
60
                         .to("jdbc:centralbase")
54
                         .process(exchange -> {
61
                         .process(exchange -> {
55
                             HashMap body = exchange.getIn().getBody(HashMap.class);
62
                             HashMap body = exchange.getIn().getBody(HashMap.class);
56
-                            if(body==null|| StringUtils.isEmpty(body.get("max"))) org=0;
63
+                            if (body == null || StringUtils.isEmpty(body.get("max"))) org = 0;
57
                             else
64
                             else
58
-                            org = Integer.valueOf(body.get("max").toString());
59
-                        })
60
-                        .setBody(simple("select well_id from centralbase.sys_access_well_control  where  access_status='1'  "))
61
-                        .to("jdbc:centralbase")
62
-                        .split(body()).process(exchange -> {
63
-                            HashMap body = exchange.getIn().getBody(HashMap.class);
64
-                            exchange.getIn().setHeader("well_id",body.get("well_id"));
65
+                                org = Integer.valueOf(body.get("max").toString());
65
                         })
66
                         })
66
-                        .setBody(simple("select org_id_pre from centralbase.cb_pc_organization"))
67
+                        .setBody(simple("select org_id_pre,org_id from centralbase.cb_pc_organization"))
67
                         .to("jdbc:centralbase")
68
                         .to("jdbc:centralbase")
68
                         .split(body()).process(exchange -> {
69
                         .split(body()).process(exchange -> {
69
                             HashMap body = exchange.getIn().getBody(HashMap.class);
70
                             HashMap body = exchange.getIn().getBody(HashMap.class);
70
-                            orgIdPreList.add(body.get("org_id_pre"));
71
-                        }).end()
71
+                            orgIdPreList.put(body.get("org_id_pre"),body.get("org_id"));
72
+                        }).end();
73
+                        setMyBody(OrgAndWellSource)
72
                        .setBody(simple("select  distinct jh,cydmc,zyq,zk,qyrq,sccw,qk,bz from DBA01 where jh ='${header.well_id}' "))
74
                        .setBody(simple("select  distinct jh,cydmc,zyq,zk,qyrq,sccw,qk,bz from DBA01 where jh ='${header.well_id}' "))
73
                        .to("jdbc:oracle")
75
                        .to("jdbc:oracle")
74
-                         .transform()
75
-                          .body((result) -> {
76
+                       .transform()
77
+                       .body((result) -> {
76
                               organization = new TreeSet<>();
78
                               organization = new TreeSet<>();
77
-                              orgID = 0;
78
-                              orgIDs = new HashMap<>();
79
                               return result;
79
                               return result;
80
                           })
80
                           })
81
-                          .step("1")
82
-                          .split(body()).process(exchange -> {
81
+                       .step("1")
82
+                       .split(body()).process(exchange -> {
83
                       Message in = exchange.getIn();
83
                       Message in = exchange.getIn();
84
                       HashMap<String, Object> aRow = in.getBody(HashMap.class);
84
                       HashMap<String, Object> aRow = in.getBody(HashMap.class);
85
+                      if (!aRow.containsKey("JM")) aRow.put("JM",aRow.get("JH"));
85
                       String org_level3 = aRow.get("ZYQ") + "@" + aRow.get("CYDMC") + "@" + aRow.get("ZK");
86
                       String org_level3 = aRow.get("ZYQ") + "@" + aRow.get("CYDMC") + "@" + aRow.get("ZK");
86
                       String org_level2 = aRow.get("ZYQ") + "@" + aRow.get("CYDMC");
87
                       String org_level2 = aRow.get("ZYQ") + "@" + aRow.get("CYDMC");
87
                       String org_level1 = aRow.get("ZYQ").toString();
88
                       String org_level1 = aRow.get("ZYQ").toString();
88
                       aRow.put("station_id", org_level3);
89
                       aRow.put("station_id", org_level3);
89
-                      if (organization.add(org_level1)) {
90
-                          orgID++;
91
-                          orgIDs.put(org_level1, orgID);
90
+                      orgID = org;
91
+                      if ((!orgIdPreList.containsKey(org_level1)) || (!orgIdPreList.containsKey(org_level2)) || (!orgIdPreList.containsKey(org_level3))) {
92
+                          if (organization.add(org_level1)) {
93
+                                if (!orgIDs.containsKey(org_level1)) orgIDs.put(org_level1,++orgID);
94
+                          }
95
+                          if (organization.add(org_level2)) {
96
+                              if (!orgIDs.containsKey(org_level2)) orgIDs.put(org_level2,++orgID);
97
+                          }
98
+                          if (organization.add(org_level3)) {
99
+                              if (!orgIDs.containsKey(org_level3)) orgIDs.put(org_level3,++orgID);
100
+                          }
92
                       }
101
                       }
93
-                      if (organization.add(org_level2)) {
94
-                          orgID++;
95
-                          orgIDs.put(org_level2, orgID);
102
+                      if(orgIdPreList.get(org_level3) !=null){
103
+                          aRow.put("org_id",orgIdPreList.get(org_level3));
104
+                          return;
96
                       }
105
                       }
97
-                      if (organization.add(org_level3)) {
98
-                          orgID++;
99
-                          orgIDs.put(org_level3, orgID);
106
+                      if(orgIDs.get(org_level3) !=null){
107
+                          aRow.put("org_id",orgIDs.get(org_level3));
100
                       }
108
                       }
101
-
102
                   })
109
                   })
103
-                          .setBody(simple("insert into centralbase.cb_cd_well_source (well_id,well_common_name,spud_date,station_id,station_name,completion_name,PRODUCING_AREA_name,remarks) " +
104
-                                  "select '${body[JH]}','${body[JH]}','${body[QYRQ]}'::timestamp,'${body[station_id]}','${body[ZK]}','${body[SCCW]}','${body[QK]}','${body[BZ]}' " +
110
+                  .setBody(simple("insert into centralbase.cb_cd_well_source (well_id,well_common_name,spud_date,org_id,station_id,station_name,completion_name,PRODUCING_AREA_name,remarks) " +
111
+                                  "select '${body[JH]}','${body[JM]}','${body[QYRQ]}'::timestamp,'${body[org_id]}','${body[station_id]}','${body[ZK]}','${body[SCCW]}','${body[QK]}','${body[BZ]}' " +
105
                                   "where NOT EXISTS ( SELECT * FROM centralbase.cb_cd_well_source WHERE well_id = '${body[JH]}' )"))
112
                                   "where NOT EXISTS ( SELECT * FROM centralbase.cb_cd_well_source WHERE well_id = '${body[JH]}' )"))
106
-                          .to("jdbc:centralbase")
107
-                          .end()
108
-                          .transform().body((re) -> {
113
+                  .to("jdbc:centralbase")
114
+                  .end()
115
+                  .transform().body((re) -> {
109
                       List<Map<String, Object>> rows = new ArrayList<>();
116
                       List<Map<String, Object>> rows = new ArrayList<>();
110
-                      Map<String, Object> row = new HashMap<>();
111
-//                      int code = org;
112
                       for (String s : organization) {
117
                       for (String s : organization) {
113
-                          // code is same as org_id
118
+                          Map<String, Object> row = new HashMap<>();
114
                           String[] orgs = s.split("@");
119
                           String[] orgs = s.split("@");
115
                           row.put("org_id_pre", s);
120
                           row.put("org_id_pre", s);
116
                           switch (orgs.length) {
121
                           switch (orgs.length) {
@@ -130,32 +135,24 @@ public class CamelJDBCConfiguration {
130
                                   row.put("org_parent", orgIDs.get(orgs[0] + "@" + orgs[1]).toString());
135
                                   row.put("org_parent", orgIDs.get(orgs[0] + "@" + orgs[1]).toString());
131
                                   break;
136
                                   break;
132
                           }
137
                           }
133
-                          if (orgIdPreList.add(s)) {
138
+                          if (!orgIdPreList.containsKey(s)) {
134
                               org++;
139
                               org++;
135
                               row.put("org_code", org);
140
                               row.put("org_code", org);
136
                               row.put("org_id", "" + org);
141
                               row.put("org_id", "" + org);
142
+                              orgIdPreList.put(s, row.get("org_id"));
137
                               rows.add(row);
143
                               rows.add(row);
138
                           }
144
                           }
139
                       }
145
                       }
140
                       return rows;
146
                       return rows;
141
                   }).split(body())
147
                   }).split(body())
142
-                          .setBody(simple("insert into centralbase.cb_pc_organization(org_id,org_code,org_name,org_level,parent_id,org_id_pre)" +
148
+                  .setBody(simple("insert into centralbase.cb_pc_organization(org_id,org_code,org_name,org_level,parent_id,org_id_pre)" +
143
                                   "select '${body[org_id]}','${body[org_code]}','${body[org_name]}','${body[org_level]}','${body[org_parent]}','${body[org_id_pre]}' " +
149
                                   "select '${body[org_id]}','${body[org_code]}','${body[org_name]}','${body[org_level]}','${body[org_parent]}','${body[org_id_pre]}' " +
144
-                                  "where NOT EXISTS ( SELECT * FROM centralbase.cb_pc_organization WHERE org_id = '${body[org_id]}' and org_code='${body[org_code]}' and org_name = '${body[org_name]}' and org_level = '${body[org_level]}' and parent_id ='${body[org_parent]}' and org_id_pre ='${body[org_id_pre]}')"))
145
-                          .doTry()
146
-                          .to("jdbc:centralbase")
147
-                          .doCatch(Exception.class)
148
-                          .log("${header.date}"+" routeId:insert-OrgAndWellSource->  centralbase.cb_pc_organization insert data failed")
149
-                          .end()
150
-                          .setBody(simple("select org_id,org_id_pre from centralbase.cb_pc_organization where org_level = '3' "))
151
-                          .to("jdbc:centralbase")
152
-                          .split(body())
153
-                          .doTry()
154
-                          .setBody(simple("update centralbase.cb_cd_well_source set org_id = '${body[org_id]}' where station_id = '${body[org_id_pre]}'"))
155
-                          .to("jdbc:centralbase")
156
-                          .doCatch(Exception.class)
157
-                          .log("${header.date}"+" routeId:insert-OrgAndWellSource->  centralbase.cb_pc_organization update data failed")
158
-                        .end();
150
+                                  "where NOT EXISTS ( SELECT * FROM centralbase.cb_pc_organization WHERE org_id = '${body[org_id]}')"))
151
+                  .doTry()
152
+                  .to("jdbc:centralbase")
153
+                  .doCatch(Exception.class)
154
+                  .log("${header.date}"+" routeId:insert-OrgAndWellSource->  centralbase.cb_pc_organization insert data failed")
155
+                  .end();
159
 
156
 
160
                 from("timer:update-wellControl?period=3600000")
157
                 from("timer:update-wellControl?period=3600000")
161
                         .routeId("update-wellControl")
158
                         .routeId("update-wellControl")
@@ -187,13 +184,14 @@ public class CamelJDBCConfiguration {
187
                         .end();
184
                         .end();
188
 
185
 
189
 
186
 
190
-                from("timer:mytimer-insert-statusDaily?period=3600000")
187
+                RouteDefinition statusDaily= from("timer:mytimer-insert-statusDaily?period=3600000")
191
                         .routeId("insert-statusDaily")
188
                         .routeId("insert-statusDaily")
192
                         .process(exchange -> {
189
                         .process(exchange -> {
193
                             Message in = exchange.getIn();
190
                             Message in = exchange.getIn();
194
                             in.setHeader("date",getDate());
191
                             in.setHeader("date",getDate());
195
-                        })
196
-                        .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 "))
192
+                        });
193
+                         setMyBody(statusDaily)
194
+                        .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 jh='${header.well_id}' and qyrq is not null "))
197
                         .to("jdbc:oracle")
195
                         .to("jdbc:oracle")
198
                         .split(body()).process(exchange -> {
196
                         .split(body()).process(exchange -> {
199
                     Message in = exchange.getIn();
197
                     Message in = exchange.getIn();
@@ -214,13 +212,14 @@ public class CamelJDBCConfiguration {
214
                         .end();
212
                         .end();
215
 
213
 
216
 
214
 
217
-                from("timer:mytimer-update-statusDaily-DYM?period=3600000")
215
+                RouteDefinition statusDailyDYM = from("timer:mytimer-update-statusDaily-DYM?period=3600000")
218
                         .routeId("update-statusDaily-DYM")
216
                         .routeId("update-statusDaily-DYM")
219
                         .process(exchange -> {
217
                         .process(exchange -> {
220
                             Message in = exchange.getIn();
218
                             Message in = exchange.getIn();
221
                             in.setHeader("date",getDate());
219
                             in.setHeader("date",getDate());
222
-                        })
223
-                        .setBody(simple("select distinct jh , rq , dym from DBA01 where  (jh,rq) in (SELECT  jh,max(rq) rq  FROM DBA01 WHERE dym is not null and rq<= to_date('${header.date}','yyyy-MM-dd') group by jh)"))
220
+                        });
221
+                         setMyBody(statusDailyDYM)
222
+                        .setBody(simple("select distinct jh , rq , dym from DBA01 where  (jh,rq) in (SELECT  jh,max(rq) rq  FROM DBA01 WHERE dym is not null and rq<= to_date('${header.date}','yyyy-MM-dd')and jh='${header.well_id}' group by jh)"))
224
                         .to("jdbc:oracle")
223
                         .to("jdbc:oracle")
225
                         .split(body())
224
                         .split(body())
226
                         .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}' "))
225
                         .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}' "))
@@ -229,14 +228,14 @@ public class CamelJDBCConfiguration {
229
                         .doCatch(Exception.class)
228
                         .doCatch(Exception.class)
230
                         .log("${header.date}"+" routeId:update-statusDaily-DYM ->  centralbase.cb_pc_pro_wellbore_status_daily update data failed")
229
                         .log("${header.date}"+" routeId:update-statusDaily-DYM ->  centralbase.cb_pc_pro_wellbore_status_daily update data failed")
231
                         .end();
230
                         .end();
232
-                //因为数据库有可能会查出多条数据,现在的做法时,在数据库中增加两个个字段,用来记录BJ和DYM 的更新时间 ,只有获取到的时间大于数据库中存储的时间时,才会更新,并且该字段也会更新
233
-                from("timer:mytimer-update-statusDaily-BJ?period=3600000")
231
+                RouteDefinition statusDailyBJ = from("timer:mytimer-update-statusDaily-BJ?period=3600000")
234
                         .routeId("update-statusDaily-BJ")
232
                         .routeId("update-statusDaily-BJ")
235
                         .process(exchange -> {
233
                         .process(exchange -> {
236
                             Message in = exchange.getIn();
234
                             Message in = exchange.getIn();
237
                             in.setHeader("date",getDate());
235
                             in.setHeader("date",getDate());
238
-                        })
239
-                        .setBody(simple("select distinct jh , rq , bj from DBA01 where  (jh,rq) in (SELECT  jh,max(rq) rq  FROM DBA01 WHERE bj is not null and rq<= to_date('${header.date}','yyyy-MM-dd') group by jh)"))
236
+                        });
237
+                         setMyBody(statusDailyBJ)
238
+                        .setBody(simple("select distinct jh , rq , bj from DBA01 where  (jh,rq) in (SELECT  jh,max(rq) rq  FROM DBA01 WHERE bj is not null and rq<= to_date('${header.date}','yyyy-MM-dd') and jh='${header.well_id}' group by jh)"))
240
                         .to("jdbc:oracle")
239
                         .to("jdbc:oracle")
241
                         .split(body()).process(exchange -> {
240
                         .split(body()).process(exchange -> {
242
                             HashMap body = exchange.getIn().getBody(HashMap.class);
241
                             HashMap body = exchange.getIn().getBody(HashMap.class);
@@ -248,13 +247,14 @@ public class CamelJDBCConfiguration {
248
                         .log("${header.date}"+" routeId:update-statusDaily-BJ ->  centralbase.cb_pc_pro_wellbore_status_daily update data failed")
247
                         .log("${header.date}"+" routeId:update-statusDaily-BJ ->  centralbase.cb_pc_pro_wellbore_status_daily update data failed")
249
                         .end();
248
                         .end();
250
 
249
 
251
-                from("timer:mytimer-update-statusDaily-submergenceDepth?period=3600000")
250
+                RouteDefinition submergenceDepth = from("timer:mytimer-update-statusDaily-submergenceDepth?period=3600000")
252
                         .routeId("update-statusDaily-submergenceDepth")
251
                         .routeId("update-statusDaily-submergenceDepth")
253
                         .process(exchange -> {
252
                         .process(exchange -> {
254
                             Message in = exchange.getIn();
253
                             Message in = exchange.getIn();
255
                             in.setHeader("date",getDate()+" 00:00:00");
254
                             in.setHeader("date",getDate()+" 00:00:00");
256
-                        })
257
-                        .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}' "))
255
+                        });
256
+                         setMyBody(submergenceDepth)
257
+                        .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}' and well_id='${header.well_id}' "))
258
                         .to("jdbc:centralbase")
258
                         .to("jdbc:centralbase")
259
                         .split(body()).process(exchange -> {
259
                         .split(body()).process(exchange -> {
260
                             Message in = exchange.getIn();
260
                             Message in = exchange.getIn();
@@ -274,13 +274,14 @@ public class CamelJDBCConfiguration {
274
                         .log("${header.date}"+" routeId:update-statusDaily-submergenceDepth ->  centralbase.cb_pc_pro_wellbore_status_daily update data failed")
274
                         .log("${header.date}"+" routeId:update-statusDaily-submergenceDepth ->  centralbase.cb_pc_pro_wellbore_status_daily update data failed")
275
                         .end();
275
                         .end();
276
 
276
 
277
-                from("timer:mytimer-insert-volDaily?period=3600000")
277
+                RouteDefinition volDaily = from("timer:mytimer-insert-volDaily?period=3600000")
278
                         .routeId("insert-volDaily")
278
                         .routeId("insert-volDaily")
279
                         .process(exchange -> {
279
                         .process(exchange -> {
280
                             Message in = exchange.getIn();
280
                             Message in = exchange.getIn();
281
                             in.setHeader("date",getDate());
281
                             in.setHeader("date",getDate());
282
-                        })
283
-                        .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 "))
282
+                        });
283
+                         setMyBody(volDaily)
284
+                        .setBody(simple("select distinct  jh,rq,scsj, rcyl1,rcyl,rcql,hs, bz from DBA01 where rq  = to_date('${header.date}','yyyy-MM-dd') and jh ='${header.well_id}' and qyrq is not null "))
284
                         .to("jdbc:oracle")
285
                         .to("jdbc:oracle")
285
                         .split(body()).process(exchange -> {
286
                         .split(body()).process(exchange -> {
286
                     Message in = exchange.getIn();
287
                     Message in = exchange.getIn();
@@ -341,13 +342,14 @@ public class CamelJDBCConfiguration {
341
                         .to("jdbc:centralbase")
342
                         .to("jdbc:centralbase")
342
                         .end();
343
                         .end();
343
 
344
 
344
-                from("timer:mytimer-update-volDaily-liq_prod_daily?period=3600000")
345
+                RouteDefinition volDailyLiqProdDaily = from("timer:mytimer-update-volDaily-liq_prod_daily?period=3600000")
345
                         .routeId("update-volDaily-liq_prod_daily")
346
                         .routeId("update-volDaily-liq_prod_daily")
346
                         .process(exchange -> {
347
                         .process(exchange -> {
347
                             Message in = exchange.getIn();
348
                             Message in = exchange.getIn();
348
                             in.setHeader("date",getDate());
349
                             in.setHeader("date",getDate());
349
-                        })
350
-                        .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 "))
350
+                        });
351
+                         setMyBody(volDailyLiqProdDaily)
352
+                        .setBody(simple("select distinct  jh,rq,scsj, rcyl1,rcyl,rcql,hs, bz from DBA01 where rq  = to_date('${header.date}','yyyy-MM-dd')and jh ='${header.well_id}' and qyrq is not null "))
351
                         .to("jdbc:oracle")
353
                         .to("jdbc:oracle")
352
                         .split(body()).process(exchange -> {
354
                         .split(body()).process(exchange -> {
353
                             Message in = exchange.getIn();
355
                             Message in = exchange.getIn();

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

@@ -26,50 +26,50 @@ spring:
26
         max-lifetime: 1800000
26
         max-lifetime: 1800000
27
         ## 数据库连接超时时间,默认30秒,即30000
27
         ## 数据库连接超时时间,默认30秒,即30000
28
         connection-timeout: 30000
28
         connection-timeout: 30000
29
-#    ds2:
30
-#      ## Hikari连接池的设置 Hikari 时间单位都是毫秒
31
-#      type: com.zaxxer.hikari.HikariDataSource
32
-#      jdbc-url: jdbc:oracle:thin:@11.71.15.28:1521:oracycn2
33
-#      username: ZD_FGD
34
-#      password: ZJGSDDS#2014ZD
35
-#      driver-class-name: oracle.jdbc.driver.OracleDriver
36
-#      hikari:
37
-#        ## 连接池名字
38
-#        pool-name: SystemHikariCP
39
-#        ## 最小空闲连接数量
40
-#        minimum-idle: 5
41
-#        ## 空闲连接存活最大时间,默认600000(10分钟)
42
-#        idle-timeout: 60000
43
-#        ## 连接池最大连接数,默认是10
44
-#        maximum-pool-size: 15
45
-#        ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
46
-#        auto-commit: true
47
-#        ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
48
-#        max-lifetime: 1800000
49
-#        ## 数据库连接超时时间,默认30秒,即30000
50
-#        connection-timeout: 30000
51
-#    ds3:
52
-#      ## Hikari连接池的设置 Hikari 时间单位都是毫秒
53
-#      type: com.zaxxer.hikari.HikariDataSource
54
-#      jdbc-url: jdbc:postgresql://11.72.187.11:5432/GTDATE
55
-#      username: postgres
56
-#      password: Postgres_2021#
57
-#      driver-class-name: org.postgresql.Driver
58
-#      hikari:
59
-#        ## 连接池名字
60
-#        pool-name: SystemHikariCP
61
-#        ## 最小空闲连接数量
62
-#        minimum-idle: 5
63
-#        ## 空闲连接存活最大时间,默认600000(10分钟)
64
-#        idle-timeout: 60000
65
-#        ## 连接池最大连接数,默认是10
66
-#        maximum-pool-size: 15
67
-#        ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
68
-#        auto-commit: true
69
-#        ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
70
-#        max-lifetime: 1800000
71
-#        ## 数据库连接超时时间,默认30秒,即30000
72
-#        connection-timeout: 60000
29
+    ds2:
30
+      ## Hikari连接池的设置 Hikari 时间单位都是毫秒
31
+      type: com.zaxxer.hikari.HikariDataSource
32
+      jdbc-url: jdbc:oracle:thin:@11.71.15.28:1521:oracycn2
33
+      username: ZD_FGD
34
+      password: ZJGSDDS#2014ZD
35
+      driver-class-name: oracle.jdbc.driver.OracleDriver
36
+      hikari:
37
+        ## 连接池名字
38
+        pool-name: SystemHikariCP
39
+        ## 最小空闲连接数量
40
+        minimum-idle: 5
41
+        ## 空闲连接存活最大时间,默认600000(10分钟)
42
+        idle-timeout: 60000
43
+        ## 连接池最大连接数,默认是10
44
+        maximum-pool-size: 15
45
+        ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
46
+        auto-commit: true
47
+        ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
48
+        max-lifetime: 1800000
49
+        ## 数据库连接超时时间,默认30秒,即30000
50
+        connection-timeout: 30000
51
+    ds3:
52
+      ## Hikari连接池的设置 Hikari 时间单位都是毫秒
53
+      type: com.zaxxer.hikari.HikariDataSource
54
+      jdbc-url: jdbc:postgresql://11.72.187.11:5432/GTDATE
55
+      username: postgres
56
+      password: Postgres_2021#
57
+      driver-class-name: org.postgresql.Driver
58
+      hikari:
59
+        ## 连接池名字
60
+        pool-name: SystemHikariCP
61
+        ## 最小空闲连接数量
62
+        minimum-idle: 5
63
+        ## 空闲连接存活最大时间,默认600000(10分钟)
64
+        idle-timeout: 60000
65
+        ## 连接池最大连接数,默认是10
66
+        maximum-pool-size: 15
67
+        ## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
68
+        auto-commit: true
69
+        ## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
70
+        max-lifetime: 1800000
71
+        ## 数据库连接超时时间,默认30秒,即30000
72
+        connection-timeout: 60000
73
 
73
 
74
 management:
74
 management:
75
   info:
75
   info: