소스 검색

增加 from A2 Data to insert statusDaily and volDaily 接口

gxt 3 년 전
부모
커밋
6dca6db169

+ 121 - 37
src/main/java/com/gct/tools/etlcamelhuge/controller/BaseDataController.java

@@ -26,7 +26,7 @@ import java.util.Map;
26 26
  */
27 27
 @RestController
28 28
 @RequestMapping("/BaseData")
29
-@Api(value = "BaseDataController",description = "基础数据操作controller")
29
+@Api(value = "BaseDataController", description = "基础数据操作controller")
30 30
 public class BaseDataController {
31 31
 
32 32
     private JdbcTemplate jdbcTemplate;
@@ -36,15 +36,18 @@ public class BaseDataController {
36 36
     @Resource(name = "centralbase")
37 37
     DataSource baseDataSource;
38 38
 
39
-    @PostMapping("/StatusDaily")
40
-    @ApiOperation("从 A2 获取 数据插入到 centrlBase 中")
41
-    public JSONObject saveDataToStatusDaily(@RequestBody BaseDataBody baseDataBody){
39
+    @PostMapping("/saveDataToStatusDaily")
40
+    @ApiOperation("从 A2 获取 数据插入到 centrlBase-StatusDaily 中")
41
+    public JSONObject saveDataToStatusDaily(@RequestBody BaseDataBody baseDataBody) {
42 42
         JSONObject jsonObject = new JSONObject();
43
-        long insertCount = 0;
43
+        int insertCount = 0;
44
+        int updateDYMCount = 0;
45
+        int updateCMDCount = 0;
46
+        int updateOLiNozzleCount = 0;
44 47
         try {
45 48
             jdbcTemplate = new JdbcTemplate(oracleDataSource);
46 49
             String date = baseDataBody.getDate();
47
-            String sql = "select  distinct jh,rq,cyfs,yz,hysx , yysx ,tysx,bs,dym from DBA01 where rq  = to_date('"+date+"','yyyy-MM-dd') and qyrq is not null ";
50
+            String sql = "select  distinct jh,rq,cyfs,yz,hysx , yysx ,tysx,bs,dym from DBA01 where rq  = to_date('" + date + "','yyyy-MM-dd') and qyrq is not null ";
48 51
             List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
49 52
             for (Map<String, Object> map : list) {
50 53
                 if (map.get("YZ") == null) map.put("YZ", "0.0");
@@ -53,66 +56,147 @@ public class BaseDataController {
53 56
                 if (map.get("TYSX") == null) map.put("TYSX", "0.0");
54 57
                 if (map.get("BS") == null) map.put("BS", "0.0");
55 58
                 sql = "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) " +
56
-                        "value (?,?,?,?,?,?,?,?)";
57
-                int count = insertBaseDataSourceOfStatusDaily(sql, map);
59
+                        "values (?,?,?,?,?,?,?,?)";
60
+                insertCount = insertBaseDataSourceOfStatusDaily(sql, map);
58 61
                 List<Map<String, Object>> dymIsNotNUllList = selectA2DataOfNotIsNullDYM();
59 62
                 for (Map<String, Object> stringObjectMap : dymIsNotNUllList) {
60
-                    sql = "update centralbase.cb_pc_pro_wellbore_status_daily set start_pump_liq_level = '"+stringObjectMap.get("DYM")+"' where well_id = '"+stringObjectMap.get("JH")+"' and prod_date::date  = '"+stringObjectMap.get("RQ")+"' ";
61
-                    int dymIsNotNullCount = updateBaseDataSourceOfStatusDaily(sql);
62
-                    insertCount = insertCount + dymIsNotNullCount;
63
+                    sql = "update centralbase.cb_pc_pro_wellbore_status_daily set start_pump_liq_level = '" + stringObjectMap.get("DYM") + "' where well_id = '" + stringObjectMap.get("JH") + "' and prod_date::date  = '" + stringObjectMap.get("RQ") + "' ";
64
+                    updateDYMCount = updateBaseDataSourceOfStatusDaily(sql) + updateDYMCount;
63 65
                 }
64
-                sql = "select well_id,prod_date,start_pump_liq_level,pump_depth from centralbase.cb_pc_pro_wellbore_status_daily where prod_date = '"+map.get("RQ")+"' ";
66
+                sql = "select well_id,prod_date,start_pump_liq_level,pump_depth from centralbase.cb_pc_pro_wellbore_status_daily where prod_date = '" + map.get("RQ") + "' ";
65 67
                 List<Map<String, Object>> CMDDataList = selectBaseDataSourceStatusDaily(sql);
66 68
                 for (Map<String, Object> stringObjectMap : CMDDataList) {
67
-                    stringObjectMap.put("submergence_depth",null);
68
-                    if (stringObjectMap.get("start_pump_liq_level")!=null && stringObjectMap.get("pump_depth")!=null){
69
-                        double cmd= Double.valueOf(stringObjectMap.get("pump_depth").toString())-Double.valueOf(stringObjectMap.get("start_pump_liq_level").toString())/10;
70
-                        BigDecimal bd=new BigDecimal(cmd);
71
-                        double cmd1=bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
72
-                        stringObjectMap.put("submergence_depth",cmd1);
69
+                    stringObjectMap.put("submergence_depth", null);
70
+                    if (stringObjectMap.get("start_pump_liq_level") != null && stringObjectMap.get("pump_depth") != null) {
71
+                        double cmd = Double.valueOf(stringObjectMap.get("pump_depth").toString()) - Double.valueOf(stringObjectMap.get("start_pump_liq_level").toString()) / 10;
72
+                        BigDecimal bd = new BigDecimal(cmd);
73
+                        double cmd1 = bd.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
74
+                        stringObjectMap.put("submergence_depth", cmd1);
73 75
                     }
74
-                    sql = " update centralbase.cb_pc_pro_wellbore_status_daily set submergence_depth = '"+stringObjectMap.get("submergence_depth")+"' where well_id = '"+stringObjectMap.get("well_id")+"' and prod_date  = '"+stringObjectMap.get("prod_date")+"' ";
75
-                    int CMDUpdateCount = updateBaseDataSourceOfStatusDaily(sql);
76
-                    insertCount = insertCount + CMDUpdateCount;
76
+                    //修改为batch 执行,用一个list 接受,在执行那个batchUpdate
77
+                    sql = " update centralbase.cb_pc_pro_wellbore_status_daily set submergence_depth = '" + stringObjectMap.get("submergence_depth") + "' where well_id = '" + stringObjectMap.get("well_id") + "' and prod_date  = '" + stringObjectMap.get("prod_date") + "' ";
78
+                    updateCMDCount = updateBaseDataSourceOfStatusDaily(sql) + updateCMDCount;
77 79
                 }
78 80
                 sql = " 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 " +
79
-                        " and cb.prod_date = '"+date+"'  ";
81
+                        " and cb.prod_date = '" + date + "'  ";
80 82
                 List<Map<String, Object>> oilNozzleList = selectBaseDataSourceStatusDaily(sql);
81 83
                 for (Map<String, Object> stringObjectMap : oilNozzleList) {
82
-                    sql = " update centralbase.cb_pc_pro_wellbore_status_daily set oil_nozzle = '"+stringObjectMap.get("pump_diameter")+"' where well_id ='"+stringObjectMap.get("well_id")+"' and prod_date='"+stringObjectMap.get("prod_date")+"' ";
83
-                    int oliNozzle = updateBaseDataSourceOfStatusDaily(sql);
84
-                    insertCount = insertCount + oliNozzle;
84
+                    sql = " update centralbase.cb_pc_pro_wellbore_status_daily set oil_nozzle = '" + stringObjectMap.get("pump_diameter") + "' where well_id ='" + stringObjectMap.get("well_id") + "' and prod_date='" + stringObjectMap.get("prod_date") + "' ";
85
+                    updateOLiNozzleCount = updateBaseDataSourceOfStatusDaily(sql) + updateOLiNozzleCount;
85 86
                 }
87
+                insertCount++;
86 88
             }
87
-        }catch (Exception e){
89
+        } catch (Exception e) {
88 90
             e.printStackTrace();
89
-            jsonObject.put("error",e.getMessage());
90
-        }finally {
91
-            jsonObject.put("插入条数",insertCount);
91
+            jsonObject.put("error", e.getMessage());
92
+        } finally {
93
+            jsonObject.put("插入条数", insertCount);
94
+            jsonObject.put("修改DYM条数", updateDYMCount);
95
+            jsonObject.put("修改CMD条数", updateCMDCount);
96
+            jsonObject.put("修改OliNozzle条数", updateOLiNozzleCount);
92 97
         }
93 98
         return jsonObject;
94 99
     }
95 100
 
96 101
 
97
-    public int insertBaseDataSourceOfStatusDaily(String sql,Map<String,Object> map){
102
+    public int insertBaseDataSourceOfStatusDaily(String sql, Map<String, Object> map) {
98 103
         jdbcTemplate = new JdbcTemplate(baseDataSource);
99 104
         if (map.isEmpty()) return 0;
100
-        return  jdbcTemplate.update(sql, map.get("JH"), map.get("RQ"), map.get("CYFS"), map.get("YZ"), map.get("HYSX"), map.get("YYSX"), map.get("BS"), map.get("DYM"));
105
+        return jdbcTemplate.update(sql, map.get("JH"), map.get("RQ"), map.get("CYFS"), map.get("YZ"), map.get("HYSX"), map.get("YYSX"), map.get("BS"), map.get("DYM"));
101 106
     }
102 107
 
103
-    public List<Map<String, Object>> selectA2DataOfNotIsNullDYM(){
108
+    public List<Map<String, Object>> selectA2DataOfNotIsNullDYM() {
104 109
         jdbcTemplate = new JdbcTemplate(oracleDataSource);
105 110
         String sql = "SELECT  distinct jh,max(rq),dym FROM DBA01 WHERE dym is not null group by jh,dym";
106
-        return  jdbcTemplate.queryForList(sql);
111
+        return jdbcTemplate.queryForList(sql);
107 112
     }
108 113
 
109
-    public List<Map<String, Object>> selectBaseDataSourceStatusDaily(String sql){
114
+    public List<Map<String, Object>> selectBaseDataSourceStatusDaily(String sql) {
110 115
         jdbcTemplate = new JdbcTemplate(baseDataSource);
111
-         return  jdbcTemplate.queryForList(sql);
116
+        return jdbcTemplate.queryForList(sql);
112 117
     }
113
-    public int updateBaseDataSourceOfStatusDaily(String sql){
118
+
119
+    public int updateBaseDataSourceOfStatusDaily(String sql) {
120
+        jdbcTemplate = new JdbcTemplate(baseDataSource);
121
+        return jdbcTemplate.update(sql);
122
+    }
123
+
124
+
125
+    @PostMapping("/saveDataToVolDaily")
126
+    @ApiOperation("从 A2 获取 数据插入到 centrlBase-VolDaily 中")
127
+    public JSONObject saveVolDaily(@RequestBody BaseDataBody baseDataBody) {
128
+        JSONObject jsonObject = new JSONObject();
129
+        int insertCount = 0;
130
+        int updateLiqOliDailyCount = 0;
131
+        try {
132
+            jdbcTemplate = new JdbcTemplate(oracleDataSource);
133
+            String date = baseDataBody.getDate();
134
+            String sql = " select distinct  jh,rq,scsj, rcyl1,rcyl,rcql,hs, bz from DBA01 where rq  = to_date('" + date + "','yyyy-MM-dd') and qyrq is not null ";
135
+            List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
136
+            for (Map<String, Object> map : list) {
137
+                if (map.get("SCSJ") == null) map.put("SCSJ", "0.0");
138
+                if (map.get("RCYL1") == null) map.put("RCYL1", "0.0");
139
+                if (map.get("RCYL") == null) map.put("RCYL", "0.0");
140
+                if (map.get("RCQL") == null) map.put("RCQL", "0.0");
141
+                if (map.get("HS") == null) map.put("HS", "0.0");
142
+                if (map.get("BZ") == null) map.put("BZ", "");
143
+                map.put("RCSL", -1);
144
+                map.put("QYB", -1);
145
+                map.put("SQB", -1);
146
+                if (map.get("RCQL") != null && map.get("RCYL") != null && !map.get("RCYL").equals("0.0") && map.get("RCYL") != "0.0") {
147
+                    double qyb = Double.valueOf(map.get("RCQL").toString()) / Double.valueOf(map.get("RCYL").toString());
148
+                    if (!Double.isNaN(qyb) && !Double.isInfinite(qyb)) {
149
+                        BigDecimal bd = new BigDecimal(qyb);
150
+                        double d1 = bd.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
151
+                        map.put("QYB", d1);
152
+                    }
153
+                }
154
+                if (map.get("RCYL1") != null && map.get("HS") != null && !map.get("HS").equals("0.0") && map.get("HS") != "0.0") {
155
+                    double rcsl = (Double.valueOf(map.get("RCYL1").toString()) * Double.valueOf(map.get("HS").toString())) / 100;
156
+                    if (!Double.isNaN(rcsl) && !Double.isInfinite(rcsl)) {
157
+                        BigDecimal bd = new BigDecimal(rcsl);
158
+                        double d1 = bd.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
159
+                        map.put("RCSL", d1);
160
+                    }
161
+                }
162
+                if (map.get("RCQL") != null && map.get("RCSL") != null && !map.get("RCQL").equals("0.0") && map.get("RCQL") != "0.0") {
163
+                    double sqb = Double.valueOf(map.get("RCSL").toString()) / Double.valueOf(map.get("RCQL").toString());
164
+                    if (!Double.isNaN(sqb) && !Double.isInfinite(sqb)) {
165
+                        BigDecimal bd = new BigDecimal(sqb);
166
+                        double d1 = bd.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
167
+                        map.put("SQB", d1);
168
+                    }
169
+                }
170
+                if (!map.containsKey("SMD")) {
171
+                    map.put("SMD", 1);
172
+                }
173
+                if (!map.containsKey("YMD")) {
174
+                    map.put("YMD", 0.85);
175
+                }
176
+                sql = "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) " +
177
+                        "values(?,?,?,?,?,?,?,?,?,?,?,?,?) ";
178
+                insertCount = insertBaseDataVolDaily(sql, map) + insertCount;
179
+                sql = "select distinct  jh,rq,scsj, rcyl1,rcyl,rcql,hs, bz from DBA01 where rq  = to_date('" + date + "','yyyy-MM-dd') and qyrq is not null ";
180
+                updateLiqOliDailyCount = updateBaseDataVolDaily(sql) + updateLiqOliDailyCount;
181
+            }
182
+
183
+        } catch (Exception e) {
184
+            jsonObject.put("error", e.getMessage());
185
+        } finally {
186
+            jsonObject.put("插入条数", insertCount);
187
+            jsonObject.put("修改liqOliDaily条数", updateLiqOliDailyCount);
188
+        }
189
+        return jsonObject;
190
+    }
191
+
192
+    public int insertBaseDataVolDaily(String sql, Map<String, Object> map) {
114 193
         jdbcTemplate = new JdbcTemplate(baseDataSource);
115
-        return  jdbcTemplate.update(sql);
194
+        if (map.isEmpty()) return 0;
195
+        return jdbcTemplate.update(sql, map.get("JH"), map.get("RQ"), map.get("SCSJ"), map.get("RCYL1"), map.get("RCYL"), map.get("RCQL"), map.get("HS"), map.get("BZ"), map.get("QYB"), map.get("RCSL"), map.get("SQB"), map.get("SMD"), map.get("YMD"));
116 196
     }
117 197
 
198
+    public int updateBaseDataVolDaily(String sql) {
199
+        jdbcTemplate = new JdbcTemplate(baseDataSource);
200
+        return jdbcTemplate.update(sql);
201
+    }
118 202
 }

+ 1 - 1
src/main/java/com/gct/tools/etlcamelhuge/controller/GtController.java

@@ -149,7 +149,7 @@ public class GtController {
149 149
                         map.put("stroke",stroke);
150 150
                     }
151 151
                     jdbcTemplate.update("insert into centralbase.cb_temp_well_mech_runtime(well_id,prod_date,stroke_length,stroke_frequency,susp_max_load,susp_min_load,sgt) " +
152
-                            "value (?,?,?,?,?,?,?)",map.get("well_name").toString(),map.get("dyna_create_time"),map.get("stroke"),map.get("frequency"),map.get("susp_max_load"),map.get("susp_min_load"),map.get("sgt"));
152
+                            "values (?,?,?,?,?,?,?)",map.get("well_name").toString(),map.get("dyna_create_time"),map.get("stroke"),map.get("frequency"),map.get("susp_max_load"),map.get("susp_min_load"),map.get("sgt"));
153 153
                 }
154 154
                 sumData += list.size();
155 155
                 if (list.size()< pageSize){