|
@@ -3,21 +3,27 @@ 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.StringUtils;
|
|
import com.ruoyi.common.utils.file.ExcelUtils;
|
|
import com.ruoyi.common.utils.file.ExcelUtils;
|
|
|
|
+import com.ruoyi.framework.config.RuoYiConfig;
|
|
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.*;
|
|
import com.ruoyi.project.production.controller.vo.*;
|
|
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.ISysDictTypeService;
|
|
|
|
import com.ruoyi.project.system.service.ISysUserService;
|
|
import com.ruoyi.project.system.service.ISysUserService;
|
|
|
|
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
import org.apache.poi.ss.usermodel.*;
|
|
import org.apache.poi.ss.usermodel.*;
|
|
|
|
+import org.apache.poi.util.Units;
|
|
|
|
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
|
|
|
+import org.apache.poi.xwpf.usermodel.XWPFParagraph;
|
|
|
|
+import org.apache.poi.xwpf.usermodel.XWPFRun;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+import sun.misc.BASE64Encoder;
|
|
|
|
|
|
-import java.io.IOException;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.*;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigInteger;
|
|
import java.math.BigInteger;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
@@ -37,12 +43,6 @@ public class TMonthlyQualityReportController extends BaseController
|
|
@Autowired
|
|
@Autowired
|
|
private ISysUserService userService;
|
|
private ISysUserService userService;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private ISysDictTypeService iSysDictTypeService;
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
- private ISysDeptService iSysDeptService;
|
|
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ITMonthlyQualityReportS0501Service tMonthlyQualityReportS0501Service;
|
|
private ITMonthlyQualityReportS0501Service tMonthlyQualityReportS0501Service;
|
|
|
|
|
|
@@ -561,8 +561,10 @@ public class TMonthlyQualityReportController extends BaseController
|
|
@GetMapping("/c2ReactorTable")
|
|
@GetMapping("/c2ReactorTable")
|
|
public AjaxResult c2ReactorTable(MonthlyQualityReportQueryVO vo)
|
|
public AjaxResult c2ReactorTable(MonthlyQualityReportQueryVO vo)
|
|
{
|
|
{
|
|
- Date startDate = vo.getStartDate();
|
|
|
|
- Date endDate = vo.getEndDate();
|
|
|
|
|
|
+ return AjaxResult.success(this.calcC2ReactorTable(vo.getStartDate(), vo.getEndDate()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private C2ReactorTableVO calcC2ReactorTable(Date startDate, Date endDate) {
|
|
//1st inlet
|
|
//1st inlet
|
|
TMonthlyQualityReportS3009 tMonthlyQualityReportS3009 = new TMonthlyQualityReportS3009();
|
|
TMonthlyQualityReportS3009 tMonthlyQualityReportS3009 = new TMonthlyQualityReportS3009();
|
|
tMonthlyQualityReportS3009.setStartDate(startDate);
|
|
tMonthlyQualityReportS3009.setStartDate(startDate);
|
|
@@ -829,9 +831,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& ethane2InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene2InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene2InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& ethane2InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene2InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene2InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
ethyleneSelectivity1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
ethyleneSelectivity1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((ethylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP))
|
|
.multiply(((ethylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP))
|
|
- .subtract(ethylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide(((acetylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract(acetylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(ethylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide(((acetylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract(acetylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
mapdConversion1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
mapdConversion1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
@@ -843,9 +845,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& pd2InAvg.compareTo(BigDecimal.ZERO) != 0 && ma2InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& pd2InAvg.compareTo(BigDecimal.ZERO) != 0 && ma2InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
propyleneSelectivity1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
propyleneSelectivity1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((propylene2InAvg.divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP))
|
|
.multiply(((propylene2InAvg.divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP))
|
|
- .subtract(propylene1InAvg.divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide((((pd1InAvg.add(ma1InAvg)).divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract((pd2InAvg.add(ma2InAvg).divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(propylene1InAvg.divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide((((pd1InAvg.add(ma1InAvg)).divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract((pd2InAvg.add(ma2InAvg).divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
if (acetylene2InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
if (acetylene2InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
acetyleneConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
acetyleneConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
@@ -859,9 +861,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& ethane3InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& ethane3InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
ethyleneSelectivity2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
ethyleneSelectivity2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((ethylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP))
|
|
.multiply(((ethylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP))
|
|
- .subtract(ethylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide(((acetylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract(acetylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(ethylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide(((acetylene2InAvg.divide(ethane2InAvg.add(ethylene2InAvg).add(acetylene2InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract(acetylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
if ((pd2InAvg.add(ma2InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
if ((pd2InAvg.add(ma2InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
mapdConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
mapdConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
@@ -873,9 +875,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& pd3InAvg.compareTo(BigDecimal.ZERO) != 0 && ma3InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& pd3InAvg.compareTo(BigDecimal.ZERO) != 0 && ma3InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
propyleneSelectivity2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
propyleneSelectivity2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((propylene3InAvg.divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP))
|
|
.multiply(((propylene3InAvg.divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP))
|
|
- .subtract(propylene2InAvg.divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide((((pd2InAvg.add(ma2InAvg)).divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract((pd3InAvg.add(ma3InAvg).divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(propylene2InAvg.divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide((((pd2InAvg.add(ma2InAvg)).divide((propane2InAvg.add(propylene2InAvg).add(pd2InAvg).add(ma2InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract((pd3InAvg.add(ma3InAvg).divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
if (acetylene3InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
if (acetylene3InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
acetyleneConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
acetyleneConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
@@ -889,9 +891,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& ethane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3OutAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& ethane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3OutAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
ethyleneSelectivity3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
ethyleneSelectivity3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((ethylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))
|
|
.multiply(((ethylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))
|
|
- .subtract(ethylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide(((acetylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract(acetylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(ethylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide(((acetylene3InAvg.divide(ethane3InAvg.add(ethylene3InAvg).add(acetylene3InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract(acetylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
if ((pd3InAvg.add(ma3InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
if ((pd3InAvg.add(ma3InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
mapdConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
mapdConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
@@ -903,9 +905,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
propyleneSelectivity3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
propyleneSelectivity3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((propylene3OutAvg.divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP))
|
|
.multiply(((propylene3OutAvg.divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP))
|
|
- .subtract(propylene3InAvg.divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide((((pd3InAvg.add(ma3InAvg)).divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract((pd3OutAvg.add(ma3OutAvg).divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(propylene3InAvg.divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide((((pd3InAvg.add(ma3InAvg)).divide((propane3InAvg.add(propylene3InAvg).add(pd3InAvg).add(ma3InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract((pd3OutAvg.add(ma3OutAvg).divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
acetyleneConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
acetyleneConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
@@ -915,9 +917,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& ethane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3OutAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& ethane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3OutAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
ethyleneSelectivity3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
ethyleneSelectivity3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((ethylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))
|
|
.multiply(((ethylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))
|
|
- .subtract(ethylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide(((acetylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract(acetylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(ethylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide(((acetylene1InAvg.divide(ethane1InAvg.add(ethylene1InAvg).add(acetylene1InAvg), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract(acetylene3OutAvg.divide(ethane3OutAvg.add(ethylene3OutAvg).add(acetylene3OutAvg), 5, RoundingMode.HALF_UP))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
|
|
mapdConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
mapdConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
@@ -929,9 +931,9 @@ public class TMonthlyQualityReportController extends BaseController
|
|
&& pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
&& pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
|
|
propyleneSelectivity3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
propyleneSelectivity3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
|
|
.multiply(((propylene3OutAvg.divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP))
|
|
.multiply(((propylene3OutAvg.divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP))
|
|
- .subtract(propylene1InAvg.divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
- .divide((((pd1InAvg.add(ma1InAvg)).divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
- .subtract((pd3OutAvg.add(ma3OutAvg).divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract(propylene1InAvg.divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP)))
|
|
|
|
+ .divide((((pd1InAvg.add(ma1InAvg)).divide((propane1InAvg.add(propylene1InAvg).add(pd1InAvg).add(ma1InAvg)), 5, RoundingMode.HALF_UP))
|
|
|
|
+ .subtract((pd3OutAvg.add(ma3OutAvg).divide((propane3OutAvg.add(propylene3OutAvg).add(pd3OutAvg).add(ma3OutAvg)), 5, RoundingMode.HALF_UP)))), 5, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
C2ReactorTableVO tableVO = new C2ReactorTableVO();
|
|
C2ReactorTableVO tableVO = new C2ReactorTableVO();
|
|
tableVO.setEthane1InAvg(ethane1InAvg);
|
|
tableVO.setEthane1InAvg(ethane1InAvg);
|
|
@@ -981,7 +983,7 @@ public class TMonthlyQualityReportController extends BaseController
|
|
tableVO.setEthyleneSelectivity3rdOut(ethyleneSelectivity3rdOut);
|
|
tableVO.setEthyleneSelectivity3rdOut(ethyleneSelectivity3rdOut);
|
|
tableVO.setMapdConversion3rdOut(mapdConversion3rdOut);
|
|
tableVO.setMapdConversion3rdOut(mapdConversion3rdOut);
|
|
tableVO.setPropyleneSelectivity3rdOut(propyleneSelectivity3rdOut);
|
|
tableVO.setPropyleneSelectivity3rdOut(propyleneSelectivity3rdOut);
|
|
- return AjaxResult.success(tableVO);
|
|
|
|
|
|
+ return tableVO;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1150,8 +1152,10 @@ public class TMonthlyQualityReportController extends BaseController
|
|
@GetMapping("/c3ReactorTable")
|
|
@GetMapping("/c3ReactorTable")
|
|
public AjaxResult c3ReactorTable(MonthlyQualityReportQueryVO vo)
|
|
public AjaxResult c3ReactorTable(MonthlyQualityReportQueryVO vo)
|
|
{
|
|
{
|
|
- Date startDate = vo.getStartDate();
|
|
|
|
- Date endDate = vo.getEndDate();
|
|
|
|
|
|
+ return AjaxResult.success(this.calcC3ReactorTable(vo.getStartDate(), vo.getEndDate()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private C3ReactorTableVO calcC3ReactorTable(Date startDate, Date endDate) {
|
|
//in
|
|
//in
|
|
TMonthlyQualityReportS5010 tMonthlyQualityReportS5010 = new TMonthlyQualityReportS5010();
|
|
TMonthlyQualityReportS5010 tMonthlyQualityReportS5010 = new TMonthlyQualityReportS5010();
|
|
tMonthlyQualityReportS5010.setStartDate(startDate);
|
|
tMonthlyQualityReportS5010.setStartDate(startDate);
|
|
@@ -1240,7 +1244,7 @@ public class TMonthlyQualityReportController extends BaseController
|
|
propyleneSelectivity = BigDecimal.TEN.multiply(BigDecimal.TEN).multiply(((propyleneOutAvg.divide(propaneOutAvg.add(propyleneOutAvg).add(pdOutAvg).add(maOutAvg), 2, RoundingMode.HALF_UP))
|
|
propyleneSelectivity = BigDecimal.TEN.multiply(BigDecimal.TEN).multiply(((propyleneOutAvg.divide(propaneOutAvg.add(propyleneOutAvg).add(pdOutAvg).add(maOutAvg), 2, RoundingMode.HALF_UP))
|
|
.subtract(propyleneInAvg.divide(propaneInAvg.add(propyleneInAvg).add(pdInAvg).add(maInAvg), 2, RoundingMode.HALF_UP)))
|
|
.subtract(propyleneInAvg.divide(propaneInAvg.add(propyleneInAvg).add(pdInAvg).add(maInAvg), 2, RoundingMode.HALF_UP)))
|
|
.divide(((pdInAvg.add(maInAvg)).divide(propaneInAvg.add(propyleneInAvg).add(pdInAvg).add(maInAvg), 2, RoundingMode.HALF_UP))
|
|
.divide(((pdInAvg.add(maInAvg)).divide(propaneInAvg.add(propyleneInAvg).add(pdInAvg).add(maInAvg), 2, RoundingMode.HALF_UP))
|
|
- .subtract((pdOutAvg.add(maOutAvg)).divide(propaneOutAvg.add(propyleneOutAvg).add(pdOutAvg).add(maOutAvg), 2, RoundingMode.HALF_UP)), 2, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ .subtract((pdOutAvg.add(maOutAvg)).divide(propaneOutAvg.add(propyleneOutAvg).add(pdOutAvg).add(maOutAvg), 2, RoundingMode.HALF_UP)), 2, RoundingMode.HALF_UP));
|
|
}
|
|
}
|
|
C3ReactorTableVO tableVO = new C3ReactorTableVO();
|
|
C3ReactorTableVO tableVO = new C3ReactorTableVO();
|
|
tableVO.setPropaneInAvg(propaneInAvg);
|
|
tableVO.setPropaneInAvg(propaneInAvg);
|
|
@@ -1253,7 +1257,7 @@ public class TMonthlyQualityReportController extends BaseController
|
|
tableVO.setMaOutAvg(maOutAvg);
|
|
tableVO.setMaOutAvg(maOutAvg);
|
|
tableVO.setConversion(conversion);
|
|
tableVO.setConversion(conversion);
|
|
tableVO.setPropyleneSelectivity(propyleneSelectivity);
|
|
tableVO.setPropyleneSelectivity(propyleneSelectivity);
|
|
- return AjaxResult.success(tableVO);
|
|
|
|
|
|
+ return tableVO;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -2431,4 +2435,75 @@ public class TMonthlyQualityReportController extends BaseController
|
|
logger.info("successNumber:" +String.valueOf(successNumber));
|
|
logger.info("successNumber:" +String.valueOf(successNumber));
|
|
return AjaxResult.success("成功导入: " + String.valueOf(successNumber) + " 条");
|
|
return AjaxResult.success("成功导入: " + String.valueOf(successNumber) + " 条");
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 导出质量月报
|
|
|
|
+ */
|
|
|
|
+ @PostMapping("/export")
|
|
|
|
+ public AjaxResult export(HttpServletResponse response,
|
|
|
|
+ @RequestParam("files") MultipartFile[] files,
|
|
|
|
+ @RequestParam("startDate") Date startDate,
|
|
|
|
+ @RequestParam("endDate") Date endDate) throws IOException, InvalidFormatException {
|
|
|
|
+ // 碳二反应器性能指标表格数据
|
|
|
|
+ C2ReactorTableVO c2ReactorTableVO = this.calcC2ReactorTable(startDate, endDate);
|
|
|
|
+ // 碳三反应器性能指标表格数据
|
|
|
|
+ C3ReactorTableVO c3ReactorTableVO = this.calcC3ReactorTable(startDate, endDate);
|
|
|
|
+ // echarts截图
|
|
|
|
+ String[] base64Image = new String[15];
|
|
|
|
+ for (MultipartFile file : files) {
|
|
|
|
+ // 文件名
|
|
|
|
+ String fileName = file.getOriginalFilename();
|
|
|
|
+ // base64编码
|
|
|
|
+ BASE64Encoder encoder = new BASE64Encoder();
|
|
|
|
+ String baseStr = encoder.encode(file.getBytes());
|
|
|
|
+ baseStr = baseStr.replaceAll("\r\n", "");
|
|
|
|
+ switch (fileName) {
|
|
|
|
+ case "chart1.jpg": base64Image[0] = baseStr; break;
|
|
|
|
+ case "chart2.jpg": base64Image[1] = baseStr; break;
|
|
|
|
+ case "chart3.jpg": base64Image[2] = baseStr; break;
|
|
|
|
+ case "chart4.jpg": base64Image[3] = baseStr; break;
|
|
|
|
+ case "chart5.jpg": base64Image[4] = baseStr; break;
|
|
|
|
+ case "chart6.jpg": base64Image[5] = baseStr; break;
|
|
|
|
+ case "chart7.jpg": base64Image[6] = baseStr; break;
|
|
|
|
+ case "chart8.jpg": base64Image[7] = baseStr; break;
|
|
|
|
+ case "chart9.jpg": base64Image[8] = baseStr; break;
|
|
|
|
+ case "chart10.jpg": base64Image[9] = baseStr; break;
|
|
|
|
+ case "chart11.jpg": base64Image[10] = baseStr; break;
|
|
|
|
+ case "chart12.jpg": base64Image[11] = baseStr; break;
|
|
|
|
+ case "chart13.jpg": base64Image[12] = baseStr; break;
|
|
|
|
+ case "chart14.jpg": base64Image[13] = baseStr; break;
|
|
|
|
+ case "chart15.jpg": base64Image[14] = baseStr; break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 创建一个新的Word文档
|
|
|
|
+ XWPFDocument document = new XWPFDocument();
|
|
|
|
+ for (int i = 0; i < 15; i++) {
|
|
|
|
+ // 创建一个段落
|
|
|
|
+ XWPFParagraph paragraph = document.createParagraph();
|
|
|
|
+ XWPFRun run = paragraph.createRun();
|
|
|
|
+ // base64解码
|
|
|
|
+ byte[] decode = Base64.getDecoder().decode(base64Image[i]);
|
|
|
|
+ // 在段落中添加图片
|
|
|
|
+ run.addPicture(new ByteArrayInputStream(decode), XWPFDocument.PICTURE_TYPE_PNG, "chart"+ (i + 1) +".png", Units.toEMU(400), Units.toEMU(200));
|
|
|
|
+ // 换行
|
|
|
|
+ run.addBreak();
|
|
|
|
+ if (i == 9) {
|
|
|
|
+ // todo:c2 table
|
|
|
|
+ } else if (i == 10) {
|
|
|
|
+ // todo:c3 table
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 保存文档
|
|
|
|
+ String fileName = UUID.randomUUID().toString() + "_" + "质量月报.docx";
|
|
|
|
+ String downloadPath = RuoYiConfig.getDownloadPath() + fileName;
|
|
|
|
+ File desc = new File(downloadPath);
|
|
|
|
+ if (!desc.getParentFile().exists())
|
|
|
|
+ {
|
|
|
|
+ desc.getParentFile().mkdirs();
|
|
|
|
+ }
|
|
|
|
+ FileOutputStream out = new FileOutputStream(downloadPath);
|
|
|
|
+ document.write(out);
|
|
|
|
+ out.close();
|
|
|
|
+ return AjaxResult.success(fileName);
|
|
|
|
+ }
|
|
}
|
|
}
|