Ver Fonte

质量月报 - 碳三反应器性能指标表格(部分代码)

wangggziwen há 1 ano atrás
pai
commit
84fad7a8a2

+ 119 - 2
master/src/main/java/com/ruoyi/project/production/controller/TMonthlyQualityReportController.java

@@ -1,9 +1,12 @@
 package com.ruoyi.project.production.controller;
 
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.production.controller.vo.C3ReactorTableVO;
+import com.ruoyi.project.production.controller.vo.MonthlyQualityReportQueryVO;
 import com.ruoyi.project.production.domain.*;
 import com.ruoyi.project.production.service.*;
 import com.ruoyi.project.system.service.ISysDeptService;
@@ -16,9 +19,10 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * 质量月报Controller
@@ -111,6 +115,119 @@ public class TMonthlyQualityReportController extends BaseController
     @Autowired
     private ITMonthlyQualityReportZ404Service tMonthlyQualityReportZ404Service;
 
+    /**
+     * 碳三反应器性能指标表格
+     */
+    @PreAuthorize("@ss.hasPermi('production:quality:list')")
+    @GetMapping("/c3ReactorTable")
+    public AjaxResult c3ReactorTable(MonthlyQualityReportQueryVO vo)
+    {
+        Date startDate = vo.getStartDate();
+        Date endDate = vo.getEndDate();
+        //in
+        TMonthlyQualityReportS5010 tMonthlyQualityReportS5010 = new TMonthlyQualityReportS5010();
+        tMonthlyQualityReportS5010.setStartDate(startDate);
+        tMonthlyQualityReportS5010.setEndDate(endDate);
+        List<TMonthlyQualityReportS5010> tMonthlyQualityReportS5010s = tMonthlyQualityReportS5010Service.selectTMonthlyQualityReportS5010List(tMonthlyQualityReportS5010);
+        //out
+        TMonthlyQualityReportS5012 tMonthlyQualityReportS5012 = new TMonthlyQualityReportS5012();
+        tMonthlyQualityReportS5012.setStartDate(startDate);
+        tMonthlyQualityReportS5012.setEndDate(endDate);
+        List<TMonthlyQualityReportS5012> tMonthlyQualityReportS5012s = tMonthlyQualityReportS5012Service.selectTMonthlyQualityReportS5012List(tMonthlyQualityReportS5012);
+        //avg
+        BigDecimal propaneInAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal propyleneInAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal pdInAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal maInAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal propaneOutAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal propyleneOutAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal pdOutAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal maOutAvg = new BigDecimal(BigInteger.ZERO);
+        BigDecimal conversion = new BigDecimal(BigInteger.ZERO);
+        BigDecimal propyleneSelectivity = new BigDecimal(BigInteger.ZERO);
+        //sum
+        BigDecimal propaneInSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal propyleneInSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal pdInSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal maInSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal propaneOutSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal propyleneOutSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal pdOutSum = new BigDecimal(BigInteger.ZERO);
+        BigDecimal maOutSum = new BigDecimal(BigInteger.ZERO);
+        //list
+        ArrayList<BigDecimal> propaneInList = new ArrayList<BigDecimal>();
+        ArrayList<BigDecimal> propyleneInList = new ArrayList<BigDecimal>();
+        ArrayList<BigDecimal> pdInList = new ArrayList<BigDecimal>();
+        ArrayList<BigDecimal> maInList = new ArrayList<BigDecimal>();
+        ArrayList<BigDecimal> propaneOutList = new ArrayList<BigDecimal>();
+        ArrayList<BigDecimal> propyleneOutList = new ArrayList<BigDecimal>();
+        ArrayList<BigDecimal> pdOutList = new ArrayList<BigDecimal>();
+        ArrayList<BigDecimal> maOutList = new ArrayList<BigDecimal>();
+        //放入list
+        for (TMonthlyQualityReportS5010 monthlyQualityReportS5010 : tMonthlyQualityReportS5010s) {
+            String propane = monthlyQualityReportS5010.getPropane();
+            String propylene = monthlyQualityReportS5010.getPropylene();
+            String pd = monthlyQualityReportS5010.getPropadiene();
+            String ma = monthlyQualityReportS5010.getMethylacetylene();
+            if (StringUtils.isNotEmpty(propane)) { propaneInList.add(new BigDecimal(propane)); }
+            if (StringUtils.isNotEmpty(propylene)) { propyleneInList.add(new BigDecimal(propylene)); }
+            if (StringUtils.isNotEmpty(pd)) { pdInList.add(new BigDecimal(pd)); }
+            if (StringUtils.isNotEmpty(ma)) { maInList.add(new BigDecimal(ma)); }
+        }
+        for (TMonthlyQualityReportS5012 monthlyQualityReportS5012 : tMonthlyQualityReportS5012s) {
+            String propane = monthlyQualityReportS5012.getPropane();
+            String propylene = monthlyQualityReportS5012.getPropylene();
+            String pd = monthlyQualityReportS5012.getPropadiene();
+            String ma = monthlyQualityReportS5012.getMethylacetylene();
+            if (StringUtils.isNotEmpty(propane)) { propaneOutList.add(new BigDecimal(propane)); }
+            if (StringUtils.isNotEmpty(propylene)) { propyleneOutList.add(new BigDecimal(propylene)); }
+            if (StringUtils.isNotEmpty(pd)) { pdOutList.add(new BigDecimal(pd)); }
+            if (StringUtils.isNotEmpty(ma)) { maOutList.add(new BigDecimal(ma)); }
+        }
+        //计算sum
+        for (BigDecimal value : propaneInList) { propaneInSum.add(value); }
+        for (BigDecimal value : propyleneInList) { propyleneInSum.add(value); }
+        for (BigDecimal value : pdInList) { pdInSum.add(value); }
+        for (BigDecimal value : maInList) { maInSum.add(value); }
+        for (BigDecimal value : propaneOutList) { propaneOutSum.add(value); }
+        for (BigDecimal value : propyleneOutList) { propyleneOutSum.add(value); }
+        for (BigDecimal value : pdOutList) { pdOutSum.add(value); }
+        for (BigDecimal value : maOutList) { maOutSum.add(value); }
+        //计算avg
+        if (propaneInList.size() != 0) { propaneInAvg = propaneInSum.divide(new BigDecimal(propaneInList.size())); }
+        if (propyleneInList.size() != 0) { propyleneInAvg = propyleneInSum.divide(new BigDecimal(propyleneInList.size())); }
+        if (pdInList.size() != 0) { pdInAvg = pdInSum.divide(new BigDecimal(pdInList.size())); }
+        if (maInList.size() != 0) { maInAvg = maInSum.divide(new BigDecimal(maInList.size())); }
+        if (propaneOutList.size() != 0) { propaneOutAvg = propaneOutSum.divide(new BigDecimal(propaneOutList.size())); }
+        if (propyleneOutList.size() != 0) { propyleneOutAvg = propyleneOutSum.divide(new BigDecimal(propyleneOutList.size())); }
+        if (pdOutList.size() != 0) { pdOutAvg = pdOutSum.divide(new BigDecimal(pdOutList.size())); }
+        if (maOutList.size() != 0) { maOutAvg = maOutSum.divide(new BigDecimal(maOutList.size())); }
+        if (pdInAvg.compareTo(BigDecimal.ZERO) != 0 && maInAvg.compareTo(BigDecimal.ZERO) != 0) {
+            conversion = (pdInAvg.add(maInAvg).subtract(pdOutAvg).subtract(maOutAvg)).divide(pdInAvg.add(maInAvg));
+        }
+        if (propaneInAvg.compareTo(BigDecimal.ZERO) != 0 && propyleneInAvg.compareTo(BigDecimal.ZERO) != 0
+                && pdInAvg.compareTo(BigDecimal.ZERO) != 0 && maInAvg.compareTo(BigDecimal.ZERO) != 0
+                && propaneOutAvg.compareTo(BigDecimal.ZERO) != 0 && propyleneOutAvg.compareTo(BigDecimal.ZERO) != 0
+                && pdOutAvg.compareTo(BigDecimal.ZERO) != 0 && maOutAvg.compareTo(BigDecimal.ZERO) != 0) {
+            propyleneSelectivity = ((propyleneOutAvg.divide(propaneOutAvg.add(propyleneOutAvg).add(pdOutAvg).add(maOutAvg)))
+                    .subtract(propyleneInAvg.divide(propaneInAvg.add(propyleneInAvg).add(pdInAvg).add(maInAvg))))
+                    .divide(((pdInAvg.add(maInAvg)).divide(propaneInAvg.add(propyleneInAvg).add(pdInAvg).add(maInAvg)))
+                    .subtract((pdOutAvg.add(maOutAvg)).divide(propaneOutAvg.add(propyleneOutAvg).add(pdOutAvg).add(maOutAvg))));
+        }
+        C3ReactorTableVO tableVO = new C3ReactorTableVO();
+        tableVO.setPropaneInAvg(propaneInAvg);
+        tableVO.setPropyleneInAvg(propyleneInAvg);
+        tableVO.setPdInAvg(pdInAvg);
+        tableVO.setMaInAvg(maInAvg);
+        tableVO.setPropaneOutAvg(propaneOutAvg);
+        tableVO.setPropyleneOutAvg(propyleneOutAvg);
+        tableVO.setPdOutAvg(pdOutAvg);
+        tableVO.setMaOutAvg(maOutAvg);
+        tableVO.setConversion(conversion);
+        tableVO.setPropyleneSelectivity(propyleneSelectivity);
+        return AjaxResult.success(tableVO);
+    }
+
     /**
      * 批量导入质量月报
      */

+ 112 - 0
master/src/main/java/com/ruoyi/project/production/controller/vo/C3ReactorTableVO.java

@@ -0,0 +1,112 @@
+package com.ruoyi.project.production.controller.vo;
+
+import java.math.BigDecimal;
+
+/**
+ * 碳三反应器性能指标表格VO
+ *
+ * @author Wang Zi Wen
+ * @email wangggziwen@163.com
+ * @date 2023/11/23 16:07:54
+ */
+public class C3ReactorTableVO {
+    private BigDecimal propaneInAvg;
+
+    private BigDecimal propyleneInAvg;
+
+    private BigDecimal pdInAvg;
+
+    private BigDecimal maInAvg;
+
+    private BigDecimal propaneOutAvg;
+
+    private BigDecimal propyleneOutAvg;
+
+    private BigDecimal pdOutAvg;
+
+    private BigDecimal maOutAvg;
+
+    private BigDecimal conversion;
+
+    private BigDecimal propyleneSelectivity;
+
+    public BigDecimal getPropaneInAvg() {
+        return propaneInAvg;
+    }
+
+    public void setPropaneInAvg(BigDecimal propaneInAvg) {
+        this.propaneInAvg = propaneInAvg;
+    }
+
+    public BigDecimal getPropyleneInAvg() {
+        return propyleneInAvg;
+    }
+
+    public void setPropyleneInAvg(BigDecimal propyleneInAvg) {
+        this.propyleneInAvg = propyleneInAvg;
+    }
+
+    public BigDecimal getPdInAvg() {
+        return pdInAvg;
+    }
+
+    public void setPdInAvg(BigDecimal pdInAvg) {
+        this.pdInAvg = pdInAvg;
+    }
+
+    public BigDecimal getMaInAvg() {
+        return maInAvg;
+    }
+
+    public void setMaInAvg(BigDecimal maInAvg) {
+        this.maInAvg = maInAvg;
+    }
+
+    public BigDecimal getPropaneOutAvg() {
+        return propaneOutAvg;
+    }
+
+    public void setPropaneOutAvg(BigDecimal propaneOutAvg) {
+        this.propaneOutAvg = propaneOutAvg;
+    }
+
+    public BigDecimal getPropyleneOutAvg() {
+        return propyleneOutAvg;
+    }
+
+    public void setPropyleneOutAvg(BigDecimal propyleneOutAvg) {
+        this.propyleneOutAvg = propyleneOutAvg;
+    }
+
+    public BigDecimal getPdOutAvg() {
+        return pdOutAvg;
+    }
+
+    public void setPdOutAvg(BigDecimal pdOutAvg) {
+        this.pdOutAvg = pdOutAvg;
+    }
+
+    public BigDecimal getMaOutAvg() {
+        return maOutAvg;
+    }
+
+    public void setMaOutAvg(BigDecimal maOutAvg) {
+        this.maOutAvg = maOutAvg;
+    }
+
+    public BigDecimal getConversion() {
+        return conversion;
+    }
+
+    public void setConversion(BigDecimal conversion) {
+        this.conversion = conversion;
+    }
+
+    public BigDecimal getPropyleneSelectivity() {
+        return propyleneSelectivity;
+    }
+
+    public void setPropyleneSelectivity(BigDecimal propyleneSelectivity) {
+        this.propyleneSelectivity = propyleneSelectivity;
+    }
+}

+ 11 - 0
master/src/main/java/com/ruoyi/project/production/domain/TMonthlyQualityReportS5010.java

@@ -78,6 +78,17 @@ public class TMonthlyQualityReportS5010 extends BaseEntity
 
     private String deptName;
 
+    /** 丙烷 */
+    private String propane;
+
+    public String getPropane() {
+        return propane;
+    }
+
+    public void setPropane(String propane) {
+        this.propane = propane;
+    }
+
     public String getDeptName() {
         return deptName;
     }

+ 11 - 0
master/src/main/java/com/ruoyi/project/production/domain/TMonthlyQualityReportS5012.java

@@ -78,6 +78,17 @@ public class TMonthlyQualityReportS5012 extends BaseEntity
 
     private String deptName;
 
+    /** 丙烷 */
+    private String propane;
+
+    public String getPropane() {
+        return propane;
+    }
+
+    public void setPropane(String propane) {
+        this.propane = propane;
+    }
+
     public String getDeptName() {
         return deptName;
     }