Bläddra i källkod

质量月报 - 裂解炉进料原料质量月份石脑油组分曲线最大值、最小值、平均值

wangggziwen 1 år sedan
förälder
incheckning
65f802c98e

+ 75 - 2
master/src/main/java/com/ruoyi/project/production/controller/TMonthlyQualityReportS0501Controller.java

@@ -96,7 +96,6 @@ public class TMonthlyQualityReportS0501Controller extends BaseController
         BigDecimal nSum = new BigDecimal(BigInteger.ZERO);
         BigDecimal fiftySum = new BigDecimal(BigInteger.ZERO);
         for(Map.Entry entry : dataMap.entrySet()) {
-            String mapKey = (String) entry.getKey();
             TMonthlyQualityReportS0501 mapValue = (TMonthlyQualityReportS0501) entry.getValue();
             BigDecimal p = new BigDecimal(mapValue.getP());
             BigDecimal i = new BigDecimal(mapValue.getI());
@@ -154,7 +153,81 @@ public class TMonthlyQualityReportS0501Controller extends BaseController
     @GetMapping("/list")
     public AjaxResult list(TMonthlyQualityReportS0501 tMonthlyQualityReportS0501)
     {
-        return AjaxResult.success(tMonthlyQualityReportS0501Service.selectTMonthlyQualityReportS0501List(tMonthlyQualityReportS0501));
+        List<TMonthlyQualityReportS0501> tMonthlyQualityReportS0501s = tMonthlyQualityReportS0501Service.selectTMonthlyQualityReportS0501List(tMonthlyQualityReportS0501);
+        // 获取list第一个元素
+        TMonthlyQualityReportS0501 firstValue = tMonthlyQualityReportS0501s.get(0);
+        // 最大值
+        BigDecimal pMax = new BigDecimal(firstValue.getP());
+        BigDecimal iMax = new BigDecimal(firstValue.getI());
+        BigDecimal oMax = new BigDecimal(firstValue.getO());
+        BigDecimal nMax = new BigDecimal(firstValue.getN());
+        BigDecimal fiftyMax = new BigDecimal(firstValue.getFifty());
+        // 最小值
+        BigDecimal pMin = new BigDecimal(firstValue.getP());
+        BigDecimal iMin = new BigDecimal(firstValue.getI());
+        BigDecimal oMin = new BigDecimal(firstValue.getO());
+        BigDecimal nMin = new BigDecimal(firstValue.getN());
+        BigDecimal fiftyMin = new BigDecimal(firstValue.getFifty());
+        // 平均值
+        BigDecimal pAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal iAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal oAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal nAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal fiftyAvg = new BigDecimal(BigInteger.ZERO);
+        // 总和
+        BigDecimal pSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal iSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal oSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal nSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal fiftySum = new BigDecimal(BigInteger.ZERO);
+        for (TMonthlyQualityReportS0501 monthlyQualityReportS0501 : tMonthlyQualityReportS0501s) {
+            BigDecimal p = new BigDecimal(monthlyQualityReportS0501.getP());
+            BigDecimal i = new BigDecimal(monthlyQualityReportS0501.getI());
+            BigDecimal o = new BigDecimal(monthlyQualityReportS0501.getO());
+            BigDecimal n = new BigDecimal(monthlyQualityReportS0501.getN());
+            BigDecimal fifty = new BigDecimal(monthlyQualityReportS0501.getFifty());
+            if (p.compareTo(pMax) > 0) { pMax = p; }
+            if (i.compareTo(iMax) > 0) { iMax = i; }
+            if (o.compareTo(oMax) > 0) { oMax = o; }
+            if (n.compareTo(nMax) > 0) { nMax = n; }
+            if (fifty.compareTo(fiftyMax) > 0) { fiftyMax = fifty; }
+            if (p.compareTo(pMin) < 0) { pMin = p; }
+            if (i.compareTo(iMin) < 0) { iMin = i; }
+            if (o.compareTo(oMin) < 0) { oMin = o; }
+            if (n.compareTo(nMin) < 0) { nMin = n; }
+            if (fifty.compareTo(fiftyMin) < 0) { fiftyMin = fifty; }
+            pSum = pSum.add(p);
+            iSum = iSum.add(i);
+            oSum = oSum.add(o);
+            nSum = nSum.add(n);
+            fiftySum = fiftySum.add(fifty);
+        }
+        BigDecimal count = new BigDecimal(tMonthlyQualityReportS0501s.size());
+        pAvg = pSum.divide(count, 2, RoundingMode.HALF_UP);
+        iAvg = iSum.divide(count, 2, RoundingMode.HALF_UP);
+        oAvg = oSum.divide(count, 2, RoundingMode.HALF_UP);
+        nAvg = nSum.divide(count, 2, RoundingMode.HALF_UP);
+        fiftyAvg = fiftySum.divide(count, 2, RoundingMode.HALF_UP);
+        StringBuffer description = new StringBuffer();
+        description.append("正构烷烃(max)="+ pMax.toString() + "\t");
+        description.append("异构烷烃(max)="+ iMax.toString() + "\t");
+        description.append("芳烃(max)="+ oMax.toString() + "\t");
+        description.append("烷烃(max)="+ nMax.toString() + "\t");
+        description.append("50%BP(max)="+ fiftyMax.toString() + "\t\n");
+        description.append("正构烷烃(min)="+ pMin.toString() + "\t");
+        description.append("异构烷烃(min)="+ iMin.toString() + "\t");
+        description.append("芳烃(min)="+ oMin.toString() + "\t");
+        description.append("烷烃(min)="+ nMin.toString() + "\t");
+        description.append("50%BP(min)="+ fiftyMin.toString() + "\t\n");
+        description.append("正构烷烃(avg)="+ pAvg.toString() + "\t");
+        description.append("异构烷烃(avg)="+ iAvg.toString() + "\t");
+        description.append("芳烃(avg)="+ oAvg.toString() + "\t");
+        description.append("烷烃(avg)="+ nAvg.toString() + "\t");
+        description.append("50%BP(avg)="+ fiftyAvg.toString() + "\t");
+        QualityAnalysisVO vo = new QualityAnalysisVO();
+        vo.setDataList(tMonthlyQualityReportS0501s);
+        vo.setDescription(description.toString());
+        return AjaxResult.success(vo);
     }
 
     /**

+ 12 - 0
master/src/main/java/com/ruoyi/project/production/controller/vo/QualityAnalysisVO.java

@@ -3,6 +3,8 @@ package com.ruoyi.project.production.controller.vo;
 import com.ruoyi.project.production.domain.TMonthlyQualityReportS0501;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -15,6 +17,8 @@ import java.util.Map;
 public class QualityAnalysisVO {
     private Map<String, TMonthlyQualityReportS0501> dataMap;
 
+    private List dataList;
+
     private String description;
 
     public Map<String, TMonthlyQualityReportS0501> getDataMap() {
@@ -32,4 +36,12 @@ public class QualityAnalysisVO {
     public void setDescription(String description) {
         this.description = description;
     }
+
+    public List getDataList() {
+        return dataList;
+    }
+
+    public void setDataList(List dataList) {
+        this.dataList = dataList;
+    }
 }

+ 4 - 2
ui/src/views/production/quality/index.vue

@@ -2644,7 +2644,7 @@ export default {
     getListS0501() {
       this.loadingS0501 = true;
       listS0501(this.queryParams).then(response => {
-        this.s0501List = response.data;
+        this.s0501List = response.data.dataList;
         this.loadingS0501 = false;
       });
     },
@@ -3456,6 +3456,7 @@ export default {
       this.resetForm("formZ404");
     },
     handleAnalysisQuery() {
+      this.analysisDescription = null;
       this.analysisQueryParams.startDate = this.analysisSampleDate[0];
       this.analysisQueryParams.endDate = this.analysisSampleDate[1];
       let dictLabel = "";
@@ -3559,7 +3560,8 @@ export default {
         case "2":
           this.disposeChart();
           listS0501(this.analysisQueryParams).then(response => {
-            let data = response.data;
+            let data = response.data.dataList;
+            this.analysisDescription = response.data.description;
             let pArray = [];
             let iArray = [];
             let aArray = [];

+ 39 - 1
ui/src/views/production/quality/report.vue

@@ -1,15 +1,25 @@
 <template>
   <div class="app-container">
     <div id="chart1"></div>
+    <div class="description">{{analysisDescription1}}</div>
     <div id="chart2"></div>
+    <div class="description">{{analysisDescription2}}</div>
     <div id="chart3"></div>
+    <div class="description">{{analysisDescription3}}</div>
     <div id="chart4"></div>
+    <div class="description">{{analysisDescription4}}</div>
     <div id="chart5"></div>
+    <div class="description">{{analysisDescription5}}</div>
     <div id="chart6"></div>
+    <div class="description">{{analysisDescription6}}</div>
     <div id="chart7"></div>
+    <div class="description">{{analysisDescription7}}</div>
     <div id="chart8"></div>
+    <div class="description">{{analysisDescription8}}</div>
     <div id="chart9"></div>
+    <div class="description">{{analysisDescription9}}</div>
     <div id="chart10"></div>
+    <div class="description">{{analysisDescription10}}</div>
     <table id="tableC2">
       <tr>
         <td colspan="5" class="td-transparent">BYC performance of C2 reactor</td>
@@ -107,6 +117,7 @@
       </tr>
     </table>
     <div id="chart11"></div>
+    <div class="description">{{analysisDescription11}}</div>
     <table id="tableC3">
       <tr>
         <td colspan="2" class="td-transparent">BYC performance of C3 reactor </td>
@@ -149,9 +160,13 @@
       </tr>
     </table>
     <div id="chart12"></div>
+    <div class="description">{{analysisDescription12}}</div>
     <div id="chart13"></div>
+    <div class="description">{{analysisDescription13}}</div>
     <div id="chart14"></div>
+    <div class="description">{{analysisDescription14}}</div>
     <div id="chart15"></div>
+    <div class="description">{{analysisDescription15}}</div>
   </div>
 </template>
 
@@ -211,6 +226,21 @@ export default {
       chart13: null,
       chart14: null,
       chart15: null,
+      analysisDescription1: null,
+      analysisDescription2: null,
+      analysisDescription3: null,
+      analysisDescription4: null,
+      analysisDescription5: null,
+      analysisDescription6: null,
+      analysisDescription7: null,
+      analysisDescription8: null,
+      analysisDescription9: null,
+      analysisDescription10: null,
+      analysisDescription11: null,
+      analysisDescription12: null,
+      analysisDescription13: null,
+      analysisDescription14: null,
+      analysisDescription15: null,
       c3ReactorTableData: {},
       c2ReactorTableData: {},
     }
@@ -226,6 +256,7 @@ export default {
       // 裂解炉进料原料质量近一年油品变化曲线
       listS0501Month(this.analysisQueryParams).then(response => {
         let data = response.data.dataMap;
+        this.analysisDescription1 = response.data.description;
         let pArray = [];
         let iArray = [];
         let oArray = [];
@@ -313,7 +344,8 @@ export default {
       });
       // 裂解炉进料原料质量月份石脑油组分曲线
       listS0501(this.analysisQueryParams).then(response => {
-        let data = response.data;
+        let data = response.data.dataList;
+        this.analysisDescription2 = response.data.description;
         let pArray = [];
         let iArray = [];
         let aArray = [];
@@ -1559,4 +1591,10 @@ export default {
     border: 1px solid;
     padding: 5px;
   }
+  .description{
+    white-space: pre-wrap;
+    margin: 0px auto;
+    margin-bottom: 50px;
+    text-align: center;
+  }
 </style>