Browse Source

一厂功图量液汇总数据按照量液值大小返回

gxt 1 year ago
parent
commit
ef6f0268bd

+ 6 - 6
src/main/java/com/gct/aoid/controller/AoidDailyYieldController.java

@@ -4,9 +4,9 @@ package com.gct.aoid.controller;
4 4
 import com.alibaba.fastjson.JSONObject;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.gct.aoid.entity.AoidDailyYield;
7
-import com.gct.aoid.entity.Vo.LiqWarringVo;
8 7
 import com.gct.aoid.entity.Vo.AoidYeildVo;
9 8
 import com.gct.aoid.entity.Vo.CalRemakeVo;
9
+import com.gct.aoid.entity.Vo.LiqWarringVo;
10 10
 import com.gct.aoid.feignclient.BaseDataClient;
11 11
 import com.gct.aoid.job.TimingSummaryJob;
12 12
 import com.gct.aoid.service.AoidDailyYieldService;
@@ -23,9 +23,9 @@ import org.springframework.web.bind.annotation.*;
23 23
 import java.lang.reflect.InvocationTargetException;
24 24
 import java.text.ParseException;
25 25
 import java.text.SimpleDateFormat;
26
-import java.time.LocalDateTime;
27
-import java.time.format.DateTimeFormatter;
28
-import java.util.*;
26
+import java.util.Date;
27
+import java.util.List;
28
+import java.util.Map;
29 29
 import java.util.concurrent.ExecutorService;
30 30
 import java.util.concurrent.Executors;
31 31
 import java.util.concurrent.atomic.AtomicInteger;
@@ -88,8 +88,8 @@ public class AoidDailyYieldController {
88 88
     @ApiOperation(value="get default data from aoid_daily_yield,may be return null")
89 89
     @PostMapping("/getDefaultDataNew")
90 90
     public Result getDefaultDataNew(@RequestBody String wellIdSet){
91
-        AoidDailyYield defaultData = aoidDailyYieldService.getDefaultDataNew(wellIdSet);
92
-        return defaultData ==null?Result.error("Can not find available data for default view."):Result.ok(defaultData);
91
+        List<AoidDailyYield> defaultData = aoidDailyYieldService.getDefaultDataNew(wellIdSet);
92
+        return defaultData.isEmpty()?Result.error("Can not find available data for default view."):Result.ok(defaultData);
93 93
     }
94 94
 
95 95
     @ApiOperation(value="get default data from aoid_daily_yield,may be return null")

+ 3 - 4
src/main/java/com/gct/aoid/service/AoidDailyYieldService.java

@@ -3,16 +3,15 @@ package com.gct.aoid.service;
3 3
 import com.alibaba.fastjson.JSONObject;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
-import com.gct.aoid.entity.AoidDailyYield;
7 6
 import com.baomidou.mybatisplus.extension.service.IService;
8
-import com.gct.aoid.entity.Vo.LiqWarringVo;
7
+import com.gct.aoid.entity.AoidDailyYield;
9 8
 import com.gct.aoid.entity.Vo.AoidYeildVo;
9
+import com.gct.aoid.entity.Vo.LiqWarringVo;
10 10
 import com.gct.common.core.result.Result;
11 11
 
12 12
 import java.lang.reflect.InvocationTargetException;
13 13
 import java.text.ParseException;
14 14
 import java.time.LocalDateTime;
15
-import java.util.HashSet;
16 15
 import java.util.List;
17 16
 import java.util.Map;
18 17
 
@@ -48,7 +47,7 @@ public interface AoidDailyYieldService extends IService<AoidDailyYield> {
48 47
 
49 48
     AoidDailyYield getDefaultData();
50 49
 
51
-    AoidDailyYield getDefaultDataNew(String orgId);
50
+ List<AoidDailyYield> getDefaultDataNew(String orgId);
52 51
 
53 52
     Page<AoidDailyYield> getAoidDailyYieldInfoPage(AoidYeildVo aoidYeildVo);
54 53
 

+ 22 - 17
src/main/java/com/gct/aoid/service/impl/AoidDailyYieldServiceImpl.java

@@ -406,26 +406,31 @@ public class AoidDailyYieldServiceImpl extends ServiceImpl<AoidDailyYieldMapper,
406 406
     }
407 407
 
408 408
     @Override
409
-    public AoidDailyYield   getDefaultDataNew(String wellId) {
409
+    public List<AoidDailyYield>   getDefaultDataNew(String wellId) {
410 410
         Map map = JSONObject.parseObject(wellId, HashMap.class);
411
-        List list = JSONObject.parseObject(map.get("wellIdSet").toString(), List.class);
411
+        List<String> wellIds = JSONObject.parseObject(map.get("wellIdSet").toString(), List.class);
412
+        AoidDailyYield one = aoidDailyYieldMapper.selectOne(new QueryWrapper<AoidDailyYield>()
413
+                .select("max(prod_date) prod_date"));
412 414
         QueryWrapper<AoidDailyYield> wrapper = new QueryWrapper<AoidDailyYield>()
413
-                .in("well_id",list)
414
-                .isNotNull("liq_prod_daily")
415
-                .gt("liq_prod_daily",0)
416
-                .orderByDesc("prod_date").last("limit 1");
417
-        AoidDailyYield aoidDailyYield = aoidDailyYieldMapper.selectOne(wrapper);
418
-        String orgByWellId = baseDataClient.getOrgInfoByWellID(aoidDailyYield.getWellId());
419
-        Result result = JSONObject.parseObject(orgByWellId, Result.class);
420
-        HashMap hashMap = JSONObject.parseObject(result.getData().toString(), HashMap.class);
421
-        if (Objects.isNull(aoidDailyYield)) return aoidDailyYield;
422
-        if (orgByWellId!="") {
423
-            aoidDailyYield.setZyq(hashMap.get("gfat").toString());
424
-            aoidDailyYield.setJq(hashMap.get("fat").toString());
425
-            aoidDailyYield.setZd(hashMap.get("orgid").toString());
415
+                .in("well_id",wellIds).eq("prod_date",one.getProdDate());
416
+        List<AoidDailyYield> list = aoidDailyYieldMapper.selectList(wrapper);
417
+        List<AoidDailyYield> collect = list.stream().filter(x -> Objects.isNull(x.getLiqProdDaily())).collect(toList());
418
+        List<AoidDailyYield> temp = list.stream().filter(x -> !collect.contains(x)).collect(toList());
419
+        temp = temp.stream().sorted(Comparator.comparingDouble(AoidDailyYield::getLiqProdDaily).reversed()).collect(toList());
420
+        temp.addAll(collect);
421
+        String wellInfoByWellId = baseDataClient.getWellInfoByList(wellIds);
422
+        List list1 = JSONObject.parseObject(JSONObject.parseObject(wellInfoByWellId, Result.class).getData().toString(), ArrayList.class);
423
+        for (Object o : list1) {
424
+            for (AoidDailyYield dailyYield : temp) {
425
+                if (((JSONObject) o).get("wellId").equals(dailyYield.getWellId())) {
426
+                    String[] stationIds = ((JSONObject) o).getString("stationId").split("@");
427
+                    dailyYield.setZyq(stationIds[0]);
428
+                    dailyYield.setJq(stationIds[1]);
429
+                    dailyYield.setZd(stationIds[2]);
430
+                }
431
+            }
426 432
         }
427
-        return aoidDailyYield;
428
-
433
+        return temp;
429 434
     }
430 435
 
431 436
     @Override