Forráskód Böngészése

Merge branch 'release-dev-1.0'

# Conflicts:
#	src/main/java/com/gct/aoid/entity/AoidDailyYield.java
#	src/main/java/com/gct/aoid/feignclient/BaseDataClient.java
#	src/main/java/com/gct/aoid/service/AoidDailyYieldService.java
#	src/main/java/com/gct/aoid/service/impl/AoidDailyYieldServiceImpl.java
lloyd 3 év óta
szülő
commit
bf993b4ee9
22 módosított fájl, 421 hozzáadás és 253 törlés
  1. 2 2
      pom.xml
  2. 42 19
      src/main/java/com/gct/aoid/algorithm/CalDiagramProduction.java
  3. 1 2
      src/main/java/com/gct/aoid/algorithm/CalPumpCard.java
  4. 1 1
      src/main/java/com/gct/aoid/controller/AoidDailyYieldController.java
  5. 0 9
      src/main/java/com/gct/aoid/entity/AoidDailyYield.java
  6. 45 38
      src/main/java/com/gct/aoid/entity/AoidSinglegtYield.java
  7. 9 8
      src/main/java/com/gct/aoid/entity/DiagramCardBaseParam.java
  8. 10 10
      src/main/java/com/gct/aoid/entity/ProDataForCalProduction.java
  9. 2 0
      src/main/java/com/gct/aoid/entity/Vo/AoidYeildVo.java
  10. 3 10
      src/main/java/com/gct/aoid/feignclient/BaseDataClient.java
  11. 5 0
      src/main/java/com/gct/aoid/feignclient/BaseDataHystrix.java
  12. 8 7
      src/main/java/com/gct/aoid/feignclient/DiagnoseClient.java
  13. 5 0
      src/main/java/com/gct/aoid/feignclient/DiagnoseHystrix.java
  14. 1 1
      src/main/java/com/gct/aoid/job/CalLiqDailyJobDetail.java
  15. 7 4
      src/main/java/com/gct/aoid/mapper/SumDataTaskMapper.xml
  16. 1 7
      src/main/java/com/gct/aoid/service/AoidDailyYieldService.java
  17. 40 34
      src/main/java/com/gct/aoid/service/impl/AoidDailyYieldServiceImpl.java
  18. 6 3
      src/main/java/com/gct/aoid/service/impl/AoidSinglegtYieldServiceImpl.java
  19. 169 56
      src/main/java/com/gct/aoid/service/impl/CalDiagramProductionService.java
  20. 1 41
      src/test/java/com/gct/aoid/MyTest.java
  21. 1 1
      src/test/java/com/gct/aoid/RocketMQ/ProducerTest.java
  22. 62 0
      src/test/java/com/gct/aoid/service/impl/CalDiagramProductionServiceTest.java

+ 2 - 2
pom.xml

@@ -37,10 +37,10 @@
37 37
             <groupId>com.alibaba.cloud</groupId>
38 38
             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
39 39
         </dependency>
40
-        <dependency>
40
+       <!-- <dependency>
41 41
             <groupId>com.alibaba.cloud</groupId>
42 42
             <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
43
-        </dependency>
43
+        </dependency>-->
44 44
         <!-- <dependency>
45 45
              <groupId>com.alibaba.csp</groupId>
46 46
              <artifactId>sentinel-datasource-nacos</artifactId>

+ 42 - 19
src/main/java/com/gct/aoid/algorithm/CalDiagramProduction.java

@@ -5,6 +5,7 @@ import org.springframework.stereotype.Component;
5 5
 
6 6
 import java.util.ArrayList;
7 7
 import java.util.List;
8
+import java.util.Objects;
8 9
 import java.util.Vector;
9 10
 
10 11
 /**
@@ -24,23 +25,44 @@ public class CalDiagramProduction {
24 25
         public double PumpCard_Slope;
25 26
     }
26 27
 
27
-    public class CalProductionResult {
28
-        public double rcyl1;
29
-        public double rcyl;
30
-        public double rcsl;
31
-        public double rcql;
32
-        public double bx;
33
-        public double llpl;
34
-        public double sjcc;
35
-        public double yxcc;
36
-        public double zcc;
37
-        public double ycc;
38
-        public double ccss;
39
-        public double lsss;
40
-        public double gyss;
41
-        public double l_StrokeRatio;
28
+    static public class CalProductionResult {
29
+        public Double rcyl1;
30
+        public Double rcyl;
31
+        public Double rcsl;
32
+        public Double rcql;
33
+        public Double bx;
34
+        public Double llpl;
35
+        public Double sjcc;
36
+        public Double yxcc;
37
+        public Double zcc;
38
+        public Double ycc;
39
+        public Double ccss;
40
+        public Double lsss;
41
+        public Double gyss;
42
+        public Double l_StrokeRatio;
43
+        public String remark;
44
+
45
+       public void formatted(){
46
+           if(Objects.nonNull(rcyl)) rcyl= Math.round(rcyl * 10) / 10d;
47
+           if(Objects.nonNull(rcyl1)) rcyl1= Math.round(rcyl1 * 10) / 10d;
48
+           if(Objects.nonNull(rcql)) rcql= Math.round(rcql * 10) / 10d;
49
+           if(Objects.nonNull(rcsl)) rcsl= Math.round(rcsl * 10) / 10d;
50
+           if(Objects.nonNull(bx)) bx= Math.round(bx * 100) / 100d;
51
+           if(Objects.nonNull(llpl)) llpl= Math.round(llpl * 10) / 10d;
52
+           if(Objects.nonNull(sjcc)) sjcc= Math.round(sjcc * 10) / 10d;
53
+           if(Objects.nonNull(yxcc)) yxcc= Math.round(yxcc * 10) / 10d;
54
+           if(Objects.nonNull(ycc)) ycc= Math.round(ycc * 10) / 10d;
55
+           if(Objects.nonNull(ccss)) ccss= Math.round(ccss * 100) / 100d;
56
+           if(Objects.nonNull(lsss)) lsss= Math.round(lsss * 100) / 100d;
57
+           if(Objects.nonNull(gyss)) gyss= Math.round(gyss * 100) / 100d;
58
+           if(Objects.nonNull(l_StrokeRatio)) l_StrokeRatio= Math.round(l_StrokeRatio * 100) / 100d;
59
+
60
+       }
42 61
     }
43 62
 
63
+    public static void main(String[] args) {
64
+        System.out.println("Math.round(0.2365) = " + Math.round(0.2365 * 0.1d));
65
+    }
44 66
     public CalProductionResult calProduction(Double[][] sgt, Double[][] bgt, double cc,
45 67
                                              double cc1, String zdjg,
46 68
                                              double bj, double bs, double hsl, double smd, double ymd, double qyb,
@@ -147,7 +169,7 @@ public class CalDiagramProduction {
147 169
         int L_UpPointDivide = 0;
148 170
         double L_Bdxs1;
149 171
         double L_Bdxs;
150
-       /* L_sgt = sgt;
172
+       /* L_sgt = sgtFormatted;
151 173
         L_bgt = bgt;*/
152 174
         L_Cc = cc;
153 175
         L_Cycle = cc1;
@@ -180,11 +202,11 @@ public class CalDiagramProduction {
180 202
         PumpCard_Power = 0;
181 203
         L_LeftDownStroke1 = 15;
182 204
         L_LeftDownStroke2 = -15;
183
-        //Card_MaxLoad=std::atof(sgt.substr(3+8*(-1),5))/100;
205
+        //Card_MaxLoad=std::atof(sgtFormatted.substr(3+8*(-1),5))/100;
184 206
         for (int i = 0; i < Card_Point; i++) {
185 207
             CardSlopeRec CardSlope = new CardSlopeRec();
186
-        /* Card_Shift = sgt[i][0];
187
-         Card_Load = sgt[i][1];
208
+        /* Card_Shift = sgtFormatted[i][0];
209
+         Card_Load = sgtFormatted[i][1];
188 210
          PumpCard_Shift = L_bgt[i][0];
189 211
          PumpCard_Load = L_bgt[i][1];*/
190 212
 
@@ -559,6 +581,7 @@ public class CalDiagramProduction {
559 581
         res.lsss = lsss;
560 582
         res.gyss = gyss;
561 583
         res.l_StrokeRatio = l_StrokeRatio;
584
+        res.formatted();
562 585
         return res;
563 586
     }
564 587
 }

+ 1 - 2
src/main/java/com/gct/aoid/algorithm/CalPumpCard.java

@@ -67,7 +67,7 @@ public class CalPumpCard {
67 67
         int tmpANNNum = 0;
68 68
         if (diagramCardBaseParam.getIslegal() != 1) return null;//功图不合法不能计算
69 69
 
70
-        Double[][] cardArray = SGTUtil.diagramReverse(diagramCardBaseParam.getSgt());
70
+        Double[][] cardArray = SGTUtil.diagramReverse(diagramCardBaseParam.getSgtFormatted());
71 71
 
72 72
         while (tmpANNNum == 0) {
73 73
             boolean flag =false;
@@ -115,7 +115,6 @@ public class CalPumpCard {
115 115
         pumpdepth = (downLoadingLevel / 9.8 * 4 / Math.PI / 7.85) / (equivalRodDiameter * equivalRodDiameter);
116 116
         pumpdepth = 50;//???
117 117
 
118
-        System.out.println("...");
119 118
         boolean p_pc = singleDiagramDiagnoseResult.getResult1().indexOf("喷抽") >= 0;
120 119
         //Dbu[1][0]  Dbu[0][TotalPoint + 2]  Dbu[0][TotalPoint + 1]  Dbu[1][TotalPoint + 1]  Dbu[0][0]
121 120
 //        double dzxwyzh = 0, dzxwy = 0, dbmaxload = 0, dbminload = 0, ddZNXShC = 0;

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

@@ -42,7 +42,7 @@ public class AoidDailyYieldController {
42 42
     @ApiOperation(value = "根据井号和日期时间段查询量液的每日基本信息page" ,notes = "根据井号和日期时间段查询量液的每日基本信息")
43 43
     @PostMapping("/getAoidDailyYieldInfoPage")
44 44
     public Result getAoidDailyYieldInfoByWellIdAndPorDatePeriodPage(@RequestBody AoidYeildVo aoidYeildVo){
45
-        Page<Map<String, Object>> page =   aoidDailyYieldService.getAoidDailyYieldInfoByWellIdAndPorDatePeriodByPage(aoidYeildVo.getWellId(), aoidYeildVo.getStartDate(),aoidYeildVo.getSize(),aoidYeildVo.getPage());
45
+        Page<Map<String, Object>> page =   aoidDailyYieldService.getAoidDailyYieldInfoByWellIdAndPorDatePeriodByPage(aoidYeildVo.getOrg(),aoidYeildVo.getWellId(), aoidYeildVo.getStartDate(),aoidYeildVo.getSize(),aoidYeildVo.getPage());
46 46
         return page ==null|| page.getRecords().size()==0?Result.error("未找到"):Result.ok(page);
47 47
     }
48 48
 

+ 0 - 9
src/main/java/com/gct/aoid/entity/AoidDailyYield.java

@@ -156,13 +156,4 @@ public class AoidDailyYield {
156 156
     @ApiModelProperty(value = "汽油比")
157 157
     private double qyb;
158 158
 
159
-    @TableField(exist = false)
160
-    private String jq;
161
-
162
-
163
-
164
-
165
-    @TableField(exist = false)
166
-    private String  zd;
167
-
168 159
 }

+ 45 - 38
src/main/java/com/gct/aoid/entity/AoidSinglegtYield.java

@@ -2,7 +2,9 @@ package com.gct.aoid.entity;
2 2
 
3 3
 import java.math.BigDecimal;
4 4
 
5
+import com.baomidou.mybatisplus.annotation.IdType;
5 6
 import com.baomidou.mybatisplus.annotation.TableField;
7
+import com.baomidou.mybatisplus.annotation.TableId;
6 8
 import com.baomidou.mybatisplus.annotation.TableName;
7 9
 import com.baomidou.mybatisplus.extension.activerecord.Model;
8 10
 import java.time.LocalDateTime;
@@ -11,6 +13,7 @@ import java.util.List;
11 13
 
12 14
 import com.fasterxml.jackson.annotation.JsonFormat;
13 15
 import io.swagger.annotations.ApiModel;
16
+import io.swagger.annotations.ApiModelProperty;
14 17
 import lombok.Data;
15 18
 import lombok.EqualsAndHashCode;
16 19
 import lombok.experimental.Accessors;
@@ -31,7 +34,7 @@ import lombok.experimental.Accessors;
31 34
 public class AoidSinglegtYield extends Model<AoidSinglegtYield> {
32 35
 
33 36
     private static final long serialVersionUID=1L;
34
-
37
+    @TableId
35 38
     private String wellId;
36 39
 
37 40
     private String wellCommonName;
@@ -39,21 +42,21 @@ public class AoidSinglegtYield extends Model<AoidSinglegtYield> {
39 42
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
40 43
     private LocalDateTime prodDate;
41 44
 
42
-    private BigDecimal stroke;
45
+    private Double stroke;
43 46
 
44
-    private BigDecimal frequence;
47
+    private Double frequence;
45 48
 
46
-    private BigDecimal bj;
49
+    private Double bj;
47 50
 
48
-    private BigDecimal bs;
51
+    private Double bs;
49 52
 
50
-    private BigDecimal cmd;
53
+    private Double cmd;
51 54
 
52
-    private BigDecimal yzzj;
55
+    private Double yzzj;
53 56
 
54
-    private BigDecimal sxzh;
57
+    private Double sxzh;
55 58
 
56
-    private BigDecimal xxzh;
59
+    private Double xxzh;
57 60
 
58 61
     private String sgt;
59 62
 
@@ -65,68 +68,72 @@ public class AoidSinglegtYield extends Model<AoidSinglegtYield> {
65 68
 
66 69
     private LocalDateTime refrencecjsj;
67 70
 
68
-    private BigDecimal liqProdDaily;
71
+    private Double liqProdDaily;
69 72
 
70
-    private BigDecimal oilProdDaily;
73
+    private Double oilProdDaily;
71 74
 
72
-    private BigDecimal gasProdDaily;
75
+    private Double gasProdDaily;
73 76
 
74 77
     private String eczdjg;
75 78
 
76
-    private BigDecimal bx;
79
+    private Double bx;
77 80
 
78
-    private BigDecimal hsl;
81
+    private Double hsl;
79 82
 
80
-    private BigDecimal flag;
83
+    private Double flag;
81 84
 
82
-    private BigDecimal bdxs;
85
+    private Double bdxs;
83 86
 
84
-    private BigDecimal llpl;
87
+    private Double llpl;
85 88
 
86
-    private BigDecimal zcc;
89
+    private Double zcc;
87 90
 
88
-    private BigDecimal ycc;
91
+    private Double ycc;
89 92
 
90
-    private BigDecimal sjcc;
93
+    private Double sjcc;
91 94
 
92
-    private BigDecimal yxcc;
95
+    private Double yxcc;
93 96
 
94
-    private BigDecimal ccss;
97
+    private Double ccss;
95 98
 
96
-    private BigDecimal lsss;
99
+    private Double lsss;
97 100
 
98
-    private BigDecimal gyss;
101
+    private Double gyss;
99 102
 
100
-    private BigDecimal pumpdepth;
103
+    private Double pumpdepth;
101 104
 
102
-    private BigDecimal hy;
105
+    private Double hy;
103 106
 
104
-    private BigDecimal yy;
107
+    private Double yy;
105 108
 
106
-    private BigDecimal ty;
109
+    private Double ty;
107 110
 
108
-    private BigDecimal waterProdDaily;
111
+    private Double waterProdDaily;
109 112
 
110 113
     private String refrencesgt;
111 114
 
112
-    private BigDecimal scsj;
115
+    private Double scsj;
113 116
 
114
-    private BigDecimal qyb;
117
+    private Double qyb;
115 118
 
116
-    private BigDecimal strokeRatio;
119
+    private Double strokeRatio;
117 120
 
118
-    private BigDecimal djdy;
121
+    private Double djdy;
119 122
 
120
-    private BigDecimal hjwd;
123
+    private Double hjwd;
121 124
 
122
-    private BigDecimal ybdl;
125
+    private Double ybdl;
123 126
 
124
-    private BigDecimal xhqd;
127
+    private Double xhqd;
125 128
 
126 129
     private String sbh;
127
-    private BigDecimal smd;
128
-    private BigDecimal ymd;
130
+    private Double smd;
131
+    private Double ymd;
132
+
133
+    private Double dym;
129 134
 
135
+    @ApiModelProperty(value = "remark")
136
+    private String remark;
130 137
 
131 138
     @Override
132 139
     protected Serializable pkVal() {

+ 9 - 8
src/main/java/com/gct/aoid/entity/DiagramCardBaseParam.java

@@ -1,10 +1,9 @@
1 1
 package com.gct.aoid.entity;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.TableField;
4
+import com.gct.common.util.SGTUtil;
4 5
 import lombok.Data;
5 6
 
6
-import java.util.Vector;
7
-
8 7
 /**
9 8
  * class name: DiagramCardBaseParam
10 9
  * 功图基础参数数据
@@ -16,16 +15,18 @@ import java.util.Vector;
16 15
 public class DiagramCardBaseParam {
17 16
 
18 17
     String id;
18
+
19 19
     String creatTime;
20
-    @TableField("recivetime")
21
-    String receiveTime;
20
+
21
+    String prodDate;
22
+
22 23
     @TableField("wellname")
23 24
     String wellName;
24
-    @TableField("sgt1")
25
-    Double[][] sgt;
25
+    Double[][] sgtFormatted;
26
+
26 27
     /*
27
-    功图内容,数据库内容 ,位移,载荷整百倍隔开
28
-     */
28
+        功图内容,数据库内容 ,位移,载荷整百倍隔开
29
+         */
29 30
     @TableField("sgt")
30 31
     String sgtStr;
31 32
     double s_max;

+ 10 - 10
src/main/java/com/gct/aoid/entity/ProDataForCalProduction.java

@@ -22,31 +22,31 @@ public class ProDataForCalProduction {
22 22
     @TableField("wellId")
23 23
     private String jh;
24 24
     @TableField("oilNozzle")
25
-    private BigDecimal bj;
25
+    private Double bj;
26 26
     @TableField("pumpDepth")
27
-    private BigDecimal bs;
27
+    private Double bs;
28 28
     /*
29 29
     %
30 30
      */
31 31
     @TableField("waterCut")
32
-    private BigDecimal hsl;
32
+    private Double hsl;
33 33
     @TableField("gasOilRatio")
34
-    private BigDecimal qyb;
34
+    private Double qyb;
35 35
     @TableField("startPumpLiqLevel")
36
-    private BigDecimal dym;
36
+    private Double dym;
37 37
     @TableField("surfaceCrudeOilDensity")
38
-    private BigDecimal ymd;
38
+    private Double ymd;
39 39
     @TableField("surfaceCrudeWaterDensity")
40
-    private BigDecimal smd;
40
+    private Double smd;
41 41
     @TableField("prodDate")
42 42
     private String proDate;
43 43
 
44 44
 
45 45
     @TableField("backPres")
46
-    private BigDecimal back_pres;
46
+    private Double back_pres;
47 47
     @TableField("tubingPres")
48
-    private BigDecimal tubing_pres;
48
+    private Double tubing_pres;
49 49
     @TableField("casingPres")
50
-    private BigDecimal casing_pres;
50
+    private Double casing_pres;
51 51
 
52 52
 }

+ 2 - 0
src/main/java/com/gct/aoid/entity/Vo/AoidYeildVo.java

@@ -16,6 +16,8 @@ import lombok.Data;
16 16
 public class AoidYeildVo {
17 17
     @ApiModelProperty(value = "井号")
18 18
     private String wellId;
19
+    @ApiModelProperty(value = "org")
20
+    private String org;
19 21
     @ApiModelProperty(value = "开始时间")
20 22
     private String startDate;
21 23
     @ApiModelProperty(value = "结束时间")

+ 3 - 10
src/main/java/com/gct/aoid/feignclient/BaseDataClient.java

@@ -6,8 +6,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
6 6
 import org.springframework.web.bind.annotation.RequestMethod;
7 7
 import org.springframework.web.bind.annotation.RequestParam;
8 8
 
9
-import javax.websocket.server.PathParam;
10
-
11 9
 /**
12 10
  * class name: BaseDataClient
13 11
  *
@@ -15,7 +13,7 @@ import javax.websocket.server.PathParam;
15 13
  * @version 1.0
16 14
  * @since 2021/1/25 下午6:02
17 15
  */
18
-@FeignClient(value = "centralbase",fallback = BaseDataHystrix.class,url = "localhost:9002")
16
+@FeignClient(value = "centralbase",fallback = BaseDataHystrix.class,url = "192.168.1.6:9002")
19 17
 public interface BaseDataClient {
20 18
     @RequestMapping(value = "/getLatestA2DailyData/{WellID}",method = RequestMethod.GET)
21 19
     String getLatestA2DailyData(@PathVariable("WellID") String wellID) ;
@@ -28,11 +26,6 @@ public interface BaseDataClient {
28 26
     @RequestMapping(value = "/cbPcProWellboreVolDaily/getA2DataForCalVolDaily/{WellName}/{dateTime}",method = RequestMethod.GET)
29 27
     String getA2DataForCalVolDaily(@PathVariable("WellName") String wellName,@PathVariable("dateTime") String dateTime);
30 28
 
31
-    @RequestMapping("/org/getOrgId/{orgId}")
32
-    String getOrgId(@PathVariable("orgId") String orgId);
33
-
34
-
35
-
36
-
37
-
29
+    @RequestMapping(value = "/WellSource/jh",method = RequestMethod.GET)
30
+    String getWellListByOrgID(@RequestParam("orgid") String org);
38 31
 }

+ 5 - 0
src/main/java/com/gct/aoid/feignclient/BaseDataHystrix.java

@@ -27,6 +27,11 @@ public class BaseDataHystrix implements  BaseDataClient {
27 27
         return "请求超时了";
28 28
     }
29 29
 
30
+    @Override
31
+    public String getWellListByOrgID(String org) {
32
+        return "请求超时了";
33
+    }
34
+
30 35
 
31 36
 
32 37
     @Override

+ 8 - 7
src/main/java/com/gct/aoid/feignclient/DiagnoseClient.java

@@ -1,9 +1,8 @@
1 1
 package com.gct.aoid.feignclient;
2 2
 
3
+import feign.Param;
3 4
 import org.springframework.cloud.openfeign.FeignClient;
4
-import org.springframework.web.bind.annotation.PathVariable;
5
-import org.springframework.web.bind.annotation.RequestMapping;
6
-import org.springframework.web.bind.annotation.RequestMethod;
5
+import org.springframework.web.bind.annotation.*;
7 6
 
8 7
 /**
9 8
  * class name: DiagnoseClient
@@ -12,14 +11,16 @@ import org.springframework.web.bind.annotation.RequestMethod;
12 11
  * @version 1.0
13 12
  * @since 2021/1/29 下午9:43
14 13
  */
15
-@FeignClient(value = "dgns-diagnose")
14
+@FeignClient(value = "dgns-diagnose",url = "192.168.1.6:9000")
16 15
 public interface DiagnoseClient {
17 16
 
18
-
19
-    @RequestMapping(path = "/dgnsGtbaseparam/getBaseparamById/{id}", params = "id", method = RequestMethod.GET)
17
+    @GetMapping(path = "/dgnsGtbaseparam/getBaseparamById/{id}")
20 18
     String getDiagramCardBaseParamByID(@PathVariable("id") String id);
21 19
 
22 20
 
23
-    @RequestMapping(path = "/dgnsGtcvrresult/getCvrresultById/{id}", params = "id", method = RequestMethod.GET)
21
+    @GetMapping(path = "/dgnsGtcvrresult/getCvrresultById/{id}")
24 22
     String getSingleDiagramDiagnoseResultByID(@PathVariable("id") String id);
23
+
24
+    @GetMapping(path = "/dgnsGtcvrresult/getAllResult")
25
+    String getAllResult();
25 26
 }

+ 5 - 0
src/main/java/com/gct/aoid/feignclient/DiagnoseHystrix.java

@@ -10,4 +10,9 @@ public class DiagnoseHystrix implements DiagnoseClient{
10 10
     public String getSingleDiagramDiagnoseResultByID(String id) {
11 11
         return " error ";
12 12
     }
13
+
14
+    @Override
15
+    public String getAllResult() {
16
+        return " error ";
17
+    }
13 18
 }

+ 1 - 1
src/main/java/com/gct/aoid/job/CalLiqDailyJobDetail.java

@@ -35,7 +35,7 @@ public class CalLiqDailyJobDetail extends QuartzJobBean {
35 35
         //sumDataTaskMapper= (SumDataTaskMapper)jobExecutionContext.getJobDetail().getJobDataMap().get("dao");
36 36
         String jobName = jobExecutionContext.getJobDetail().getJobDataMap().getString(JobDataKey.JobName.getDec());
37 37
         String jobGroup = jobExecutionContext.getJobDetail().getJobDataMap().getString(JobDataKey.JobGroup.getDec());
38
-        LocalDateTime localDateTime = LocalDateTime.now();
38
+        LocalDateTime localDateTime = LocalDateTime.now().minusDays(3);
39 39
         log.info("*===>CalLiqDailyJobDetail--JobName:{}--JobGroup:{},Time:{}", jobName, jobGroup, localDateTime.format(DateTimeFormatter.ISO_DATE_TIME));
40 40
         String date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(localDateTime);
41 41
         String dateTime = date + " 00:00:00";

+ 7 - 4
src/main/java/com/gct/aoid/mapper/SumDataTaskMapper.xml

@@ -5,16 +5,19 @@
5 5
 
6 6
     <insert id="sumData" >
7 7
         delete  from aoid.aoid_daily_yield where  prod_date = #{date}::timestamp;
8
-        insert into aoid.aoid_daily_yield (well_id,well_common_name,liq_prod_daily,oil_prod_daily,water_prod_daily,gas_prod_daily,
9
-                                           frequence,stroke,scsj,rcy2,rcu2,rcs2,yl,
10
-                                           bj,bs,cmd,water_cut,yz,yxgts,djdy,hjwd,xhqd,ybdl,sbh,prod_date,smd,ymd,qyb)
8
+        insert into aoid.aoid_daily_yield (well_id,well_common_name,liq_prod_daily,oil_prod_daily
9
+        ,water_prod_daily,gas_prod_daily,
10
+         frequence,stroke,scsj,rcy2,rcu2,rcs2,yl,
11
+         bj,bs,cmd,water_cut,yz,yxgts,djdy,hjwd,
12
+          xhqd,ybdl,sbh,prod_date,smd,ymd,qyb,bx,llpl,dym)
11 13
         select  well_id,well_common_name,avg(liq_prod_daily * scsj /24) rcy ,
12 14
                 avg(oil_prod_daily*scsj/24) rcu, avg(water_prod_daily*scsj/24) rcs,
13 15
                 avg(gas_prod_daily*scsj/24) rcq ,avg(frequence) cc1,avg(stroke) cc,
14 16
                 max(scsj),avg(liq_prod_daily) rcy2,avg(oil_prod_daily) rcu2,
15 17
                 avg(water_prod_daily) rcs2,avg(gas_prod_daily) rcq2,max(bj),
16 18
                 max(bs),max(cmd),max(hsl),max(yzzj),count(*) yxgts,min(djdy),
17
-                avg(hjwd),avg(xhqd),avg(ybdl),sbh,#{date}::timestamp,avg(ymd),avg(smd),avg(qyb)
19
+                avg(hjwd),avg(xhqd),avg(ybdl),sbh,#{date}::timestamp,avg(smd),avg(ymd),avg(qyb)
20
+        ,avg(bx),avg(llpl),max(dym)
18 21
         from aoid.aoid_singlegt_yield  where prod_date
19 22
             between #{dateTime}::timestamp and #{dateTime}::timestamp + '1 days'
20 23
         group by well_common_name,well_id,sbh;

+ 1 - 7
src/main/java/com/gct/aoid/service/AoidDailyYieldService.java

@@ -32,11 +32,5 @@ public interface AoidDailyYieldService extends IService<AoidDailyYield> {
32 32
     List<Map<String, Object>> getAoidDailyYieldInfoByWellIdAndPorDatePeriod(String wellId, String startDate);
33 33
 
34 34
 
35
-    Page<Map<String,Object>> getAoidDailyYieldInfoByWellIdAndPorDatePeriodByPage(String wellId, String startDate, int pageSize, int pageNum);
36
-
37
-    AoidDailyYield getDefaultData();
38
-
39
-
40
-
41
-
35
+    Page<Map<String, Object>> getAoidDailyYieldInfoByWellIdAndPorDatePeriodByPage(String org, String wellId, String startDate, int pageSize, int pageNum);
42 36
 }

+ 40 - 34
src/main/java/com/gct/aoid/service/impl/AoidDailyYieldServiceImpl.java

@@ -1,11 +1,10 @@
1 1
 package com.gct.aoid.service.impl;
2 2
 
3
-import com.alibaba.fastjson.JSON;
3
+import com.alibaba.fastjson.JSONArray;
4 4
 import com.alibaba.fastjson.JSONObject;
5 5
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 6
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 7
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8
-import com.fasterxml.jackson.databind.JsonNode;
9 8
 import com.gct.aoid.entity.AoidDailyYield;
10 9
 import com.gct.aoid.feignclient.BaseDataClient;
11 10
 import com.gct.aoid.mapper.AoidDailyYieldMapper;
@@ -18,9 +17,7 @@ import org.springframework.stereotype.Service;
18 17
 import java.sql.Timestamp;
19 18
 import java.time.LocalDateTime;
20 19
 import java.time.format.DateTimeFormatter;
21
-import java.util.HashMap;
22
-import java.util.List;
23
-import java.util.Map;
20
+import java.util.*;
24 21
 
25 22
 /**
26 23
  * <p>
@@ -32,12 +29,13 @@ import java.util.Map;
32 29
  */
33 30
 @Service
34 31
 public class AoidDailyYieldServiceImpl extends ServiceImpl<AoidDailyYieldMapper, AoidDailyYield> implements AoidDailyYieldService {
35
-    private  DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
32
+    private DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
36 33
 
37 34
     @Autowired
38 35
     private AoidDailyYieldMapper aoidDailyYieldMapper;
39 36
     @Autowired
40 37
     BaseDataClient baseDataClient;
38
+
41 39
     @Override
42 40
     public Result getSingleHistoryYieldCurveOrChart(String wellName, String beginDate, String endDate) {
43 41
         QueryWrapper<AoidDailyYield> queryWrapper = new QueryWrapper<>();
@@ -62,56 +60,64 @@ public class AoidDailyYieldServiceImpl extends ServiceImpl<AoidDailyYieldMapper,
62 60
 
63 61
     @Override
64 62
     public List<Map<String, Object>> getAoidDailyYieldInfoByWellIdAndPorDatePeriod(String wellId, String startDate) {
65
-        startDate = startDate+" 00:00:00";
63
+        startDate = startDate + " 00:00:00";
66 64
         LocalDateTime localDateTime = LocalDateTime.parse(startDate, df);
67 65
         LocalDateTime localDateTime1 = localDateTime.plusDays(1);
68 66
         String end = localDateTime1.format(df);
69 67
         QueryWrapper<AoidDailyYield> wrapper = new QueryWrapper<>();
70 68
         LambdaQueryWrapper<AoidDailyYield> queryWrapper = wrapper.lambda().eq(AoidDailyYield::getWellId, wellId).
71
-                ge(AoidDailyYield::getProdDate, Timestamp.valueOf(LocalDateTime.parse(startDate,df))).
72
-                le(AoidDailyYield::getProdDate,Timestamp.valueOf(LocalDateTime.parse(end,df))).orderByAsc(AoidDailyYield::getProdDate);
69
+                ge(AoidDailyYield::getProdDate, Timestamp.valueOf(LocalDateTime.parse(startDate, df))).
70
+                le(AoidDailyYield::getProdDate, Timestamp.valueOf(LocalDateTime.parse(end, df))).orderByAsc(AoidDailyYield::getProdDate);
73 71
         List<Map<String, Object>> maps = aoidDailyYieldMapper.selectMaps(queryWrapper);
74 72
         for (Map<String, Object> map : maps) {
75 73
             String date = map.get("prod_date").toString().substring(0, 10);
76
-            String time = map.get("prod_date").toString().substring(11, 19);
77
-//            map.put("prod_date",date+" "+time);
78
-            map.put("prod_date",date);
74
+            //String time = map.get("prod_date").toString().substring(11, 19);
75
+            map.put("prod_date", date);
79 76
         }
80 77
         return maps;
78
+    }
81 79
 
80
+    private List<String> getWellIds(String org, String wellId) {
81
+        if (Objects.nonNull(wellId) && !wellId.isEmpty()) return new ArrayList<>(Arrays.asList(new String[]{wellId}));
82 82
 
83
+        if (Objects.isNull(org) || org.isEmpty()) return null;
83 84
 
85
+        String resultStr = baseDataClient.getWellListByOrgID(org);
86
+        if (Objects.isNull(resultStr) || resultStr.isEmpty()) return null;
87
+
88
+        Result result = JSONObject.parseObject(resultStr, Result.class);
89
+        if (Objects.isNull(result) || Objects.isNull(result.getData()))
90
+            return null;
91
+        JSONArray array = (JSONArray) result.getData();
92
+        ArrayList<String> re = new ArrayList<>();
93
+        for (int i = 0; i < array.size(); i++) {
94
+            re.add(array.getJSONObject(i).getString("id"));
95
+        }
96
+        return re;
84 97
     }
85
-    public Page<Map<String,Object>> getAoidDailyYieldInfoByWellIdAndPorDatePeriodByPage(String wellId, String startDate,int pageSize,int pageNum){
86
-        startDate = startDate+" 00:00:00";
98
+
99
+    @Override
100
+    public Page<Map<String, Object>> getAoidDailyYieldInfoByWellIdAndPorDatePeriodByPage(String org, String wellId, String startDate, int pageSize, int pageNum) {
101
+        startDate = startDate + " 00:00:00";
87 102
         LocalDateTime localDateTime = LocalDateTime.parse(startDate, df);
88 103
         LocalDateTime localDateTime1 = localDateTime.plusDays(1);
89 104
         String end = localDateTime1.format(df);
90
-        QueryWrapper<AoidDailyYield> wrapper = new QueryWrapper<>();
91
-        LambdaQueryWrapper<AoidDailyYield> queryWrapper = wrapper.lambda().eq(AoidDailyYield::getWellId, wellId).
92
-                ge(AoidDailyYield::getProdDate, Timestamp.valueOf(LocalDateTime.parse(startDate,df))).
93
-                le(AoidDailyYield::getProdDate,Timestamp.valueOf(LocalDateTime.parse(end,df))).orderByAsc(AoidDailyYield::getProdDate);
94
-        Page<Map<String,Object>> paramPage = new Page<>(pageNum,pageSize);
105
+        List<String> wellids = getWellIds(org, wellId);
106
+
107
+        LambdaQueryWrapper<AoidDailyYield> queryWrapper = new LambdaQueryWrapper<>();
108
+        if (wellids != null || wellids.size() > 0) {
109
+            queryWrapper.in(AoidDailyYield::getWellId, wellids);
110
+        }
111
+        queryWrapper.ge(AoidDailyYield::getProdDate, Timestamp.valueOf(LocalDateTime.parse(startDate, df))).
112
+                le(AoidDailyYield::getProdDate, Timestamp.valueOf(LocalDateTime.parse(end, df))).orderByAsc(AoidDailyYield::getProdDate);
113
+        Page<Map<String, Object>> paramPage = new Page<>(pageNum, pageSize);
95 114
         Page<Map<String, Object>> mapPage = aoidDailyYieldMapper.selectMapsPage(paramPage, queryWrapper);
96 115
         for (Map<String, Object> map : mapPage.getRecords()) {
97 116
             String date = map.get("prod_date").toString().substring(0, 10);
98
-            String time = map.get("prod_date").toString().substring(11, 19);
117
+           // String time = map.get("prod_date").toString().substring(11, 19);
99 118
 //            map.put("prod_date",date+" "+time);
100
-            map.put("prod_date",date);
119
+            map.put("prod_date", date);
101 120
         }
102 121
         return mapPage;
103 122
     }
104
-
105
-    @Override
106
-    public AoidDailyYield getDefaultData() {
107
-        AoidDailyYield aoidDailyYield = aoidDailyYieldMapper.selectOne(new QueryWrapper<AoidDailyYield>().last(" limit 1"));
108
-        String org = baseDataClient.getOrgId(aoidDailyYield.getZyq());
109
-        Result<List<Map<String, Object>>> result =JSONObject.parseObject(org, Result.class);
110
-        aoidDailyYield.setJq(result.getData().get(11).get("orgId").toString());
111
-        aoidDailyYield.setZd(result.getData().get(5).get("orgId").toString());
112
-        return aoidDailyYield;
113
-
114
-
115
-
116
-    }
117 123
 }

+ 6 - 3
src/main/java/com/gct/aoid/service/impl/AoidSinglegtYieldServiceImpl.java

@@ -56,7 +56,7 @@ public class AoidSinglegtYieldServiceImpl extends ServiceImpl<AoidSinglegtYieldM
56 56
         QueryWrapper<AoidSinglegtYield> queryWrapper = new QueryWrapper<>();
57 57
         QueryWrapper<AoidSinglegtYield> wapper = null;
58 58
 
59
-        wapper = queryWrapper.select("well_common_name","zdjg","prod_date","liq_prod_daily","sgt","oil_prod_daily","stroke","frequence","bx","hsl")
59
+        wapper = queryWrapper.select("well_common_name","zdjg","prod_date","liq_prod_daily","sgtFormatted","oil_prod_daily","stroke","frequence","bx","hsl")
60 60
                 .eq("well_common_name",jh);
61 61
 
62 62
         Page<Map<String,Object>> page = aoidSinglegtYieldMapper.selectMapsPage(paramPage,wapper);
@@ -64,7 +64,7 @@ public class AoidSinglegtYieldServiceImpl extends ServiceImpl<AoidSinglegtYieldM
64 64
         //格式化功图数据
65 65
         List<Map<String,Object>> records = page.getRecords();
66 66
         records.forEach((map)->{
67
-            map.put("sgt", SGTUtil.encodeToView((String)map.get("sgt")));
67
+            map.put("sgt", SGTUtil.encodeToView((String)map.get("sgtFormatted")));
68 68
             map.put("prod_date",df.format(((Timestamp)map.get("prod_date")).toLocalDateTime()));
69 69
         });
70 70
         return Result.ok(page);
@@ -93,7 +93,10 @@ public class AoidSinglegtYieldServiceImpl extends ServiceImpl<AoidSinglegtYieldM
93 93
         for (Map<String, Object> map : maps) {
94 94
             String date = map.get("prod_date").toString().substring(0, 10);
95 95
             String time = map.get("prod_date").toString().substring(11, 19);
96
-            List<List<Double>> bgtList = SGTUtil.encodeToUseList((String) map.get("bgt"));
96
+//            System.out.println("map = " + map);
97
+//            System.out.println("(String) map.get(\"bgt\") = " + (String) map.get("bgt"));
98
+//            System.out.println("(String) map.get(\"sgtFormatted\") = " + (String) map.get("sgtFormatted"));
99
+            List<List<Double>> bgtList =SGTUtil.encodeToUseList((String) map.get("bgt"));
97 100
             List<List<Double>> sgtList = SGTUtil.encodeToUseList((String) map.get("sgt"));
98 101
             List<List<Double>> tmp = new ArrayList<>();
99 102
             sgtList.remove(sgtList.size()-1);

+ 169 - 56
src/main/java/com/gct/aoid/service/impl/CalDiagramProductionService.java

@@ -1,6 +1,8 @@
1 1
 package com.gct.aoid.service.impl;
2 2
 
3 3
 import com.alibaba.fastjson.JSONObject;
4
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 6
 import com.gct.aoid.algorithm.CalDiagramProduction;
5 7
 import com.gct.aoid.algorithm.CalPumpCard;
6 8
 import com.gct.aoid.entity.*;
@@ -16,9 +18,9 @@ import org.springframework.beans.factory.annotation.Autowired;
16 18
 import org.springframework.stereotype.Component;
17 19
 
18 20
 
19
-import java.math.BigDecimal;
20 21
 import java.time.LocalDateTime;
21 22
 import java.time.format.DateTimeFormatter;
23
+import java.util.Objects;
22 24
 
23 25
 /**
24 26
  * class name: CalDiagramProductionService
@@ -47,88 +49,199 @@ public class CalDiagramProductionService {
47 49
     @Autowired
48 50
     private AoidSinglegtYieldService aoidSinglegtYieldService;
49 51
 
52
+    public int sus = 0;
53
+
50 54
     public void cal(String message) throws InstantiationException, IllegalAccessException {
51 55
         //if (message !=null ) return;
52 56
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
53
-        AoidCalprotaskqueue aoidCalprotaskqueue = JSONObject.parseObject(message,AoidCalprotaskqueue.class);
54
-        String dcbpStr =null;
57
+        AoidCalprotaskqueue aoidCalprotaskqueue = JSONObject.parseObject(message, AoidCalprotaskqueue.class);
58
+        String dcbpStr = null;
55 59
         DiagramCardBaseParam dcbp;
56 60
         SingleDiagramDiagnoseResult sddr;
57 61
         ProDataForCalProduction a2data;
58 62
         ProDataForCalProduction a2dataVol;
59 63
         try {
64
+//            System.out.println("aoidCalprotaskqueue .getSgtbaseparamId= " + aoidCalprotaskqueue.getSgtbaseparamId());
60 65
             dcbpStr = diagnoseClient.getDiagramCardBaseParamByID(aoidCalprotaskqueue.getSgtbaseparamId());
66
+//            System.out.println("dcbp json:" + JSONObject.parseObject(dcbpStr, Result.class).toString());
61 67
             dcbp = (DiagramCardBaseParam) JSONObject.parseObject(dcbpStr, Result.class).toFiguredOutObject(DiagramCardBaseParam.class);
62
-            dcbp.setSgt(SGTUtil.encodeToDoubleArray(dcbp.getSgtStr()));
68
+            dcbp.setSgtFormatted(SGTUtil.encodeToDoubleArray(dcbp.getSgtStr()));
63 69
             String sddrStr = diagnoseClient.getSingleDiagramDiagnoseResultByID(aoidCalprotaskqueue.getDiagnoseresultId());
64 70
             sddr = (SingleDiagramDiagnoseResult) JSONObject.parseObject(sddrStr, Result.class).toFiguredOutObject(SingleDiagramDiagnoseResult.class);
65
-            String a2dataStr = baseDataClient.getA2DataForCalProduction(dcbp.getWellName(),dcbp.getReceiveTime());
71
+//            System.out.println("dcbp.getReceiveTime() = " + dcbp.getProdDate());
72
+//            System.out.println("dcbp.getWellName() = " + dcbp.getWellName());
73
+            String a2dataStr = baseDataClient.getA2DataForCalProduction(dcbp.getWellName(), dcbp.getProdDate().substring(0, 10));
66 74
             a2data = (ProDataForCalProduction) JSONObject.parseObject(a2dataStr, Result.class).toFiguredOutObject(ProDataForCalProduction.class);
67
-            String a2dataStrVol = baseDataClient.getA2DataForCalVolDaily(dcbp.getWellName(), dcbp.getReceiveTime());
75
+          //  if (a2data != null) System.out.println("a2data = " + a2data);
76
+            String a2dataStrVol = baseDataClient.getA2DataForCalVolDaily(dcbp.getWellName(), dcbp.getProdDate().substring(0, 10));
68 77
             a2dataVol = (ProDataForCalProduction) JSONObject.parseObject(a2dataStrVol, Result.class).toFiguredOutObject(ProDataForCalProduction.class);
69
-        }catch (Exception e){
70
-            e.printStackTrace();
71
-            throw  new RuntimeException("[aoid->CalDiagramProductionService->cal:] fegin error ");
72
-        }
73
-            AoidGkModel model = aoidGkModelService.getGKModelByResultType(sddr.getResult1());
74
-            AoidSinglewellConfig effectStrockModel = aoidSinglewellConfigService.getConfigOneObjByID(1);
75
-            Double[][] bgt = calPumpCard.cal_bgt(dcbp, sddr);
76
-
77
-            CalDiagramProduction.CalProductionResult production = calDiagramProduction.calProduction(dcbp.getSgt(), bgt,
78
-                    dcbp.getS(), dcbp.getN(), sddr.getResult1(), Double.valueOf(String.valueOf(a2data.getBj())), Double.valueOf(String.valueOf(a2data.getBs())),
79
-                    Double.valueOf(String.valueOf(a2dataVol.getHsl()))/100 , Double.valueOf(String.valueOf(a2dataVol.getSmd())), Double.valueOf(String.valueOf(a2dataVol.getYmd())), Double.valueOf(String.valueOf(a2dataVol.getQyb())),
80
-                    Double.valueOf(String.valueOf(a2data.getDym())), model.getGkxs(), effectStrockModel
78
+           // if (a2dataVol != null) System.out.println("a2dataStrVol = " + a2dataVol);
79
+        } catch (Exception e) {
80
+            throw new RuntimeException("[aoid->CalDiagramProductionService->cal:] fegin error ");
81
+        }
82
+        AoidGkModel model = aoidGkModelService.getGKModelByResultType(sddr.getResult1());
83
+        AoidSinglewellConfig effectStrockModel = aoidSinglewellConfigService.getConfigOneObjByID(1);
84
+        Double[][] bgt = calPumpCard.cal_bgt(dcbp, sddr);
85
+        CalDiagramProduction.CalProductionResult production = new CalDiagramProduction.CalProductionResult();
86
+
87
+        boolean checked = checkInputDataBeforeCalDiagramProduction(production, a2data, a2dataVol, bgt, dcbp, model, effectStrockModel);
88
+        AoidSinglegtYield aoidSinglegtYield = new AoidSinglegtYield();
89
+        aoidSinglegtYield.setRemark(production.remark);
90
+        if (checked) {
91
+            production = calDiagramProduction.calProduction(
92
+                    dcbp.getSgtFormatted(),
93
+                    bgt,
94
+                    dcbp.getS(),
95
+                    dcbp.getN(),
96
+                    sddr.getResult1(),
97
+                    a2data.getBj(),
98
+                    a2data.getBs(),
99
+                    a2dataVol.getHsl() / 100,
100
+                    a2dataVol.getSmd(),
101
+                    a2dataVol.getYmd(),
102
+                    a2dataVol.getQyb(),
103
+                    a2data.getDym(),
104
+                    model.getGkxs(),
105
+                    effectStrockModel
81 106
             );
82
-            aoidCalprotaskqueue.setStatus(AoidCalprotaskqueue.TaskStatus.COMPLETED.getCode());
107
+            /*if (production != null)
108
+                System.out.println("production-remark = " + production.remark);*/
109
+            sus++;
110
+          /*  System.out.println("sus = " + sus);*/
111
+        }
112
+        aoidCalprotaskqueue.setStatus(AoidCalprotaskqueue.TaskStatus.COMPLETED.getCode());
113
+//        System.out.println("JSONObject.toJSONString(production) = " + JSONObject.toJSONString(production));
83 114
 
84
-        try {
85
-            AoidSinglegtYield aoidSinglegtYield = new AoidSinglegtYield();
115
+
116
+        if (dcbp != null) {
86 117
             aoidSinglegtYield.setWellId(dcbp.getWellName());
87 118
             aoidSinglegtYield.setWellCommonName(dcbp.getWellName());
88
-            aoidSinglegtYield.setProdDate(LocalDateTime.parse(dcbp.getReceiveTime(),df));
89
-            aoidSinglegtYield.setStroke(BigDecimal.valueOf(new BigDecimal(dcbp.getS()).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue()));
90
-            aoidSinglegtYield.setFrequence(BigDecimal.valueOf(new BigDecimal(dcbp.getN()).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue()));
91
-            aoidSinglegtYield.setBj(new BigDecimal(a2data.getBj().toString()).setScale(2, BigDecimal.ROUND_HALF_UP));
119
+            if (dcbp.getProdDate() != null)
120
+                try {
121
+                    aoidSinglegtYield.setProdDate(LocalDateTime.parse(dcbp.getProdDate(), df));
122
+                } catch (Exception e) {
123
+                    System.out.println("dcbp.getProdDate() ERROR= " + dcbp.getProdDate());
124
+                }
125
+            aoidSinglegtYield.setStroke(dcbp.getS());
126
+            aoidSinglegtYield.setFrequence(dcbp.getN());
127
+            aoidSinglegtYield.setSxzh(dcbp.getL_max());
128
+            aoidSinglegtYield.setXxzh(dcbp.getL_min());
129
+            aoidSinglegtYield.setSgt(dcbp.getSgtStr());
130
+        }
131
+        if (a2data != null) {
132
+            aoidSinglegtYield.setBj(a2data.getBj());
92 133
             aoidSinglegtYield.setBs(a2data.getBs());
93
-            aoidSinglegtYield.setCmd(new BigDecimal(a2data.getBs().subtract(a2data.getDym()).toString()).setScale(3, BigDecimal.ROUND_HALF_UP));
134
+            aoidSinglegtYield.setCmd(a2data.getBs());
94 135
             aoidSinglegtYield.setYzzj(a2data.getBj());
95
-            aoidSinglegtYield.setSxzh(BigDecimal.valueOf(dcbp.getL_max()));
96
-            aoidSinglegtYield.setXxzh(BigDecimal.valueOf(dcbp.getL_min()));
97
-            aoidSinglegtYield.setSgt(SGTUtil.encodeToString(dcbp.getSgt()));
98
-            aoidSinglegtYield.setBgt(SGTUtil.encodeToString(bgt));
99
-            aoidSinglegtYield.setZdjg(sddr.getResult1());
100
-            aoidSinglegtYield.setLiqProdDaily(BigDecimal.valueOf(new BigDecimal(production.rcyl).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()));
101
-            aoidSinglegtYield.setOilProdDaily(BigDecimal.valueOf(new BigDecimal(production.rcyl1).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()));
102
-            aoidSinglegtYield.setGasProdDaily(BigDecimal.valueOf(new BigDecimal(production.rcql).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()));
103
-            aoidSinglegtYield.setEczdjg(sddr.getResult2());
104
-            aoidSinglegtYield.setBx(BigDecimal.valueOf(new BigDecimal(production.bx).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()));
105
-            aoidSinglegtYield.setHsl(new BigDecimal(a2dataVol.getHsl().toString()).setScale(3, BigDecimal.ROUND_HALF_UP));
106
-            //aoidSinglegtYield.setFlag();
107
-            //aoidSinglegtYield.setBdxs();
108
-            aoidSinglegtYield.setLlpl(BigDecimal.valueOf(new BigDecimal(production.llpl).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()));
109
-            aoidSinglegtYield.setZcc(BigDecimal.valueOf(production.zcc));
110
-            aoidSinglegtYield.setSjcc(BigDecimal.valueOf(new BigDecimal(production.sjcc ).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()));
111
-            aoidSinglegtYield.setYxcc(BigDecimal.valueOf(production.yxcc));
112
-            aoidSinglegtYield.setCcss(BigDecimal.valueOf(production.ccss));
113
-            aoidSinglegtYield.setLsss(BigDecimal.valueOf(production.lsss));
114
-            aoidSinglegtYield.setGyss(BigDecimal.valueOf(production.gyss));
136
+            aoidSinglegtYield.setHsl(a2dataVol.getHsl());
115 137
             aoidSinglegtYield.setHy(a2data.getBack_pres());
116 138
             aoidSinglegtYield.setYy(a2data.getTubing_pres());
117 139
             aoidSinglegtYield.setTy(a2data.getCasing_pres());
118
-            aoidSinglegtYield.setWaterProdDaily(BigDecimal.valueOf(new BigDecimal(production.rcsl).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()));
119
-            aoidSinglegtYield.setScsj(BigDecimal.valueOf(24));
120
-            aoidSinglegtYield.setStrokeRatio(BigDecimal.valueOf(new BigDecimal(production.l_StrokeRatio).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue()));
121
-            /*aoidSinglegtYield.setDjdy();
140
+            aoidSinglegtYield.setDym(a2data.getDym());
141
+        }
142
+        if (a2dataVol != null) {
143
+
144
+            aoidSinglegtYield.setSmd(a2dataVol.getSmd());
145
+            aoidSinglegtYield.setYmd(a2dataVol.getYmd());
146
+            aoidSinglegtYield.setQyb(a2dataVol.getQyb());
147
+        }
148
+        //sddr must be not null
149
+        aoidSinglegtYield.setEczdjg(sddr.getResult2());
150
+        aoidSinglegtYield.setZdjg(sddr.getResult1());
151
+
152
+        if (bgt != null && bgt.length > 0) {
153
+//            System.out.println("SGTUtil.encodeToString(bgt) = " + SGTUtil.encodeToString(bgt));
154
+            aoidSinglegtYield.setBgt(SGTUtil.encodeToString(bgt));
155
+        }
156
+        if (production != null) {
157
+            aoidSinglegtYield.setLiqProdDaily(production.rcyl);
158
+            aoidSinglegtYield.setOilProdDaily(production.rcyl1);
159
+            aoidSinglegtYield.setGasProdDaily(production.rcql);
160
+            aoidSinglegtYield.setBx(production.bx);
161
+            //aoidSinglegtYield.setFlag();
162
+            //aoidSinglegtYield.setBdxs();
163
+            aoidSinglegtYield.setLlpl(production.llpl);
164
+            aoidSinglegtYield.setZcc(production.zcc);
165
+            aoidSinglegtYield.setSjcc(production.sjcc);
166
+            aoidSinglegtYield.setYxcc(production.yxcc);
167
+            aoidSinglegtYield.setCcss(production.ccss);
168
+            aoidSinglegtYield.setLsss(production.lsss);
169
+            aoidSinglegtYield.setGyss(production.gyss);
170
+            aoidSinglegtYield.setWaterProdDaily(production.rcsl);
171
+            aoidSinglegtYield.setStrokeRatio(production.l_StrokeRatio);
172
+        }
173
+        aoidSinglegtYield.setScsj(24d);
174
+        /*aoidSinglegtYield.setDjdy();
122 175
             aoidSinglegtYield.setHjwd();
123 176
             aoidSinglegtYield.setYbdl();
124 177
             aoidSinglegtYield.setXhqd();
125 178
             aoidSinglegtYield.setSbh();*/
126
-            aoidSinglegtYield.setSmd(a2dataVol.getSmd());
127
-            aoidSinglegtYield.setYmd(a2dataVol.getYmd());
128
-            aoidSinglegtYield.setQyb(BigDecimal.valueOf(new BigDecimal(a2dataVol.getQyb().toString()).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue()));
129
-            aoidSinglegtYieldService.save(aoidSinglegtYield);
130
-        }catch (Exception e){
131
-           throw  new RuntimeException("[aoid->CalDiagramProductionService->cal:] insert Aoid_singlegt_yield table error ");
179
+
180
+        System.out.println("aoidSinglegtYield = " + aoidSinglegtYield);
181
+        aoidSinglegtYieldService.saveOrUpdate(aoidSinglegtYield,
182
+                new LambdaQueryWrapper<AoidSinglegtYield>()
183
+                        .eq(AoidSinglegtYield::getWellId, aoidSinglegtYield.getWellId())
184
+                        .eq(AoidSinglegtYield::getProdDate, aoidSinglegtYield.getProdDate())
185
+        );
186
+
187
+    }
188
+
189
+
190
+    //public final static String[] name = {"N", "S", "BJ", "BS", "DYM", "HSL", "SMD", "QYB", "YMD"};
191
+//    public static int[] count = {0, 0, 0, 0, 0, 0, 0, 0, 0};
192
+
193
+    private boolean checkInputDataBeforeCalDiagramProduction(CalDiagramProduction.CalProductionResult production, ProDataForCalProduction a2data, ProDataForCalProduction a2dataVol, Double[][] bgt, DiagramCardBaseParam dcbp, AoidGkModel model, AoidSinglewellConfig effectStrockModel) {
194
+        production.remark = "found unexpected data";
195
+        if (bgt == null || bgt.length == 0) return false;
196
+
197
+        if (Objects.isNull(dcbp)) return false;
198
+        if (Objects.isNull(dcbp.getN())) {
199
+//            count[0]++;
200
+            return false;
132 201
         }
202
+        if (Objects.isNull(dcbp.getS())) {
203
+//            count[1]++;
204
+            return false;
205
+
206
+        }
207
+
208
+        if (Objects.isNull(a2data)) return false;
209
+        if (Objects.isNull(a2data.getBj())) {
210
+//            count[2]++;
211
+            return false;
212
+        }
213
+        if (Objects.isNull(a2data.getBs())) {
214
+//            count[3]++;
215
+            return false;
216
+        }
217
+        if (Objects.isNull(a2data.getDym())) {
218
+//            count[4]++;
219
+            a2data.setDym(0.0);
220
+            // return false;
221
+        }
222
+
223
+        if (Objects.isNull(a2dataVol)) return false;
224
+        if (Objects.isNull(a2dataVol.getHsl())) {
225
+//            count[5]++;
226
+            return false;
227
+        }
228
+        if (Objects.isNull(a2dataVol.getSmd())) {
229
+//            count[6]++;
230
+            a2dataVol.setSmd(1.0);
231
+        }
232
+        if (Objects.isNull(a2dataVol.getQyb())) {
233
+//            count[7]++;
234
+            return false;
235
+        }
236
+        if (Objects.isNull(a2dataVol.getYmd())) {
237
+//            count[8]++;
238
+            a2dataVol.setYmd(0.84);
239
+        }
240
+
241
+        if (Objects.isNull(model) || Objects.isNull(model.getGkxs())) return false;
242
+
243
+        if (Objects.isNull(effectStrockModel)) return false;
244
+        production.remark = "checked legal";
245
+        return true;
133 246
     }
134 247
 }

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 41
src/test/java/com/gct/aoid/MyTest.java


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
src/test/java/com/gct/aoid/RocketMQ/ProducerTest.java


+ 62 - 0
src/test/java/com/gct/aoid/service/impl/CalDiagramProductionServiceTest.java

@@ -0,0 +1,62 @@
1
+package com.gct.aoid.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONArray;
4
+import com.alibaba.fastjson.JSONObject;
5
+import com.gct.aoid.ProductionCalApplication;
6
+import com.gct.aoid.entity.AoidCalprotaskqueue;
7
+import com.gct.aoid.feignclient.DiagnoseClient;
8
+import lombok.extern.slf4j.Slf4j;
9
+import org.junit.Test;
10
+import org.junit.runner.RunWith;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.boot.test.context.SpringBootTest;
13
+import org.springframework.test.context.ContextConfiguration;
14
+import org.springframework.test.context.junit4.SpringRunner;
15
+
16
+import java.time.LocalDateTime;
17
+import java.util.UUID;
18
+
19
+@Slf4j
20
+@SpringBootTest(classes = ProductionCalApplication.class)
21
+@RunWith(SpringRunner.class)
22
+@ContextConfiguration
23
+public class CalDiagramProductionServiceTest {
24
+
25
+    @Autowired
26
+    CalDiagramProductionService calDiagramProductionService;
27
+
28
+    @Autowired
29
+    DiagnoseClient diagnoseClient;
30
+    @Test
31
+    public void test() {
32
+
33
+        JSONObject allResult = JSONObject.parseObject( diagnoseClient.getAllResult());
34
+
35
+        JSONArray data = allResult.getJSONArray("data");
36
+        System.out.println("data.size() = " + data.size());
37
+        for (int i = 0; i < data.size(); i++) {
38
+            AoidCalprotaskqueue msg = new AoidCalprotaskqueue();
39
+            msg.setStatus(AoidCalprotaskqueue.TaskStatus.ADDED.getCode());
40
+//            System.out.println("data.getJSONObject(i).toJSONString() = " + data.getJSONObject(i).toJSONString());
41
+            msg.setDiagnoseresultId(data.getJSONObject(i).getString("resultId"));
42
+            msg.setSgtbaseparamId(data.getJSONObject(i).getString("gtbaseparamId"));
43
+            msg.setCreatetime(LocalDateTime.now());
44
+            msg.setId(UUID.randomUUID().toString());
45
+            try {
46
+                calDiagramProductionService.cal(JSONObject.toJSONString(msg));
47
+            } catch (InstantiationException e) {
48
+               // System.out.println("e1.getMessage() = " + e.getMessage());
49
+            } catch (IllegalAccessException e) {
50
+                //System.out.println("e2 = " + e.getMessage());
51
+            }
52
+            //System.out.println("msg run completed=>>>>>>" + msg.toString());
53
+        }
54
+
55
+        System.out.println("success:---->"+calDiagramProductionService.sus);
56
+//        for (int i = 0; i < CalDiagramProductionService.count.length; i++) {
57
+//            System.out.println(CalDiagramProductionService.name[i] +":"+ CalDiagramProductionService.count[i]);
58
+//        }
59
+
60
+    }
61
+
62
+}