|
@@ -1,9 +1,12 @@
|
|
package com.ruoyi.project.production.controller;
|
|
package com.ruoyi.project.production.controller;
|
|
|
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
import com.ruoyi.common.utils.file.ExcelUtils;
|
|
import com.ruoyi.common.utils.file.ExcelUtils;
|
|
import com.ruoyi.framework.web.controller.BaseController;
|
|
import com.ruoyi.framework.web.controller.BaseController;
|
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
|
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.domain.*;
|
|
import com.ruoyi.project.production.service.*;
|
|
import com.ruoyi.project.production.service.*;
|
|
import com.ruoyi.project.system.service.ISysDeptService;
|
|
import com.ruoyi.project.system.service.ISysDeptService;
|
|
@@ -16,9 +19,10 @@ import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.math.BigInteger;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 质量月报Controller
|
|
* 质量月报Controller
|
|
@@ -111,6 +115,119 @@ public class TMonthlyQualityReportController extends BaseController
|
|
@Autowired
|
|
@Autowired
|
|
private ITMonthlyQualityReportZ404Service tMonthlyQualityReportZ404Service;
|
|
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);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 批量导入质量月报
|
|
* 批量导入质量月报
|
|
*/
|
|
*/
|