Pārlūkot izejas kodu

质量月报bugfix

wangggziwen 1 gadu atpakaļ
vecāks
revīzija
429cbf10ca

+ 466 - 407
master/src/main/java/com/ruoyi/project/production/controller/TMonthlyQualityReportController.java

@@ -145,388 +145,394 @@ public class TMonthlyQualityReportController extends BaseController
         int startMonth = startDate.getMonth() + 1;
         int endMonth = endDate.getMonth() + 1;
         Map<String, C2ReactorAnalysisVO> dataMap = new HashMap<>();
-        do {
-            //1st inlet
-            TMonthlyQualityReportS3009 tMonthlyQualityReportS3009 = new TMonthlyQualityReportS3009();
-            tMonthlyQualityReportS3009.setStartDate(startDate);
-            tMonthlyQualityReportS3009.setEndDate(endDate);
-            List<TMonthlyQualityReportS3009> tMonthlyQualityReportS3009s = tMonthlyQualityReportS3009Service.selectTMonthlyQualityReportS3009List(tMonthlyQualityReportS3009);
-            //3rd outlet
-            TMonthlyQualityReportS3010 tMonthlyQualityReportS3010 = new TMonthlyQualityReportS3010();
-            tMonthlyQualityReportS3010.setStartDate(startDate);
-            tMonthlyQualityReportS3010.setEndDate(endDate);
-            List<TMonthlyQualityReportS3010> tMonthlyQualityReportS3010s = tMonthlyQualityReportS3010Service.selectTMonthlyQualityReportS3010List(tMonthlyQualityReportS3010);
-            //2nd inlet
-            TMonthlyQualityReportS3011 tMonthlyQualityReportS3011 = new TMonthlyQualityReportS3011();
-            tMonthlyQualityReportS3011.setStartDate(startDate);
-            tMonthlyQualityReportS3011.setEndDate(endDate);
-            List<TMonthlyQualityReportS3011> tMonthlyQualityReportS3011s = tMonthlyQualityReportS3011Service.selectTMonthlyQualityReportS3011List(tMonthlyQualityReportS3011);
-            //3rd inlet
-            TMonthlyQualityReportS3012 tMonthlyQualityReportS3012 = new TMonthlyQualityReportS3012();
-            tMonthlyQualityReportS3012.setStartDate(startDate);
-            tMonthlyQualityReportS3012.setEndDate(endDate);
-            List<TMonthlyQualityReportS3012> tMonthlyQualityReportS3012s = tMonthlyQualityReportS3012Service.selectTMonthlyQualityReportS3012List(tMonthlyQualityReportS3012);
-            //avg
-            BigDecimal ethane1InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene1InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene1InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane1InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene1InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd1InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma1InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethane3OutAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene3OutAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene3OutAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane3OutAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene3OutAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd3OutAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma3OutAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethane2InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene2InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene2InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane2InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene2InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd2InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma2InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethane3InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene3InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene3InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane3InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene3InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd3InAvg = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma3InAvg = new BigDecimal(BigInteger.ZERO);
-            //sum
-            BigDecimal ethane1InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene1InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene1InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane1InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene1InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd1InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma1InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethane3OutSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene3OutSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene3OutSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane3OutSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene3OutSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd3OutSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma3OutSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethane2InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene2InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene2InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane2InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene2InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd2InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma2InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethane3InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethylene3InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetylene3InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propane3InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propylene3InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal pd3InSum = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ma3InSum = new BigDecimal(BigInteger.ZERO);
-            //list
-            ArrayList<BigDecimal> ethane1InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ethylene1InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> acetylene1InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propane1InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propylene1InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> pd1InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ma1InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ethane3OutList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ethylene3OutList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> acetylene3OutList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propane3OutList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propylene3OutList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> pd3OutList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ma3OutList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ethane2InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ethylene2InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> acetylene2InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propane2InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propylene2InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> pd2InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ma2InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ethane3InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ethylene3InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> acetylene3InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propane3InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> propylene3InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> pd3InList = new ArrayList<BigDecimal>();
-            ArrayList<BigDecimal> ma3InList = new ArrayList<BigDecimal>();
-            //放入list
-            for (TMonthlyQualityReportS3009 monthlyQualityReportS3009 : tMonthlyQualityReportS3009s) {
-                String ethane = monthlyQualityReportS3009.getEthane();
-                String ethylene = monthlyQualityReportS3009.getEthylene();
-                String acetylene = monthlyQualityReportS3009.getAcetylene();
-                String propane = monthlyQualityReportS3009.getPropane();
-                String propylene = monthlyQualityReportS3009.getPropylene();
-                String pd = monthlyQualityReportS3009.getPropadiene();
-                String ma = monthlyQualityReportS3009.getMethylacetylene();
-                if (StringUtils.isNotEmpty(ethane)) { ethane1InList.add(new BigDecimal(ethane)); }
-                if (StringUtils.isNotEmpty(ethylene)) { ethylene1InList.add(new BigDecimal(ethylene)); }
-                if (StringUtils.isNotEmpty(acetylene)) { acetylene1InList.add(new BigDecimal(acetylene)); }
-                if (StringUtils.isNotEmpty(propane)) { propane1InList.add(new BigDecimal(propane)); }
-                if (StringUtils.isNotEmpty(propylene)) { propylene1InList.add(new BigDecimal(propylene)); }
-                if (StringUtils.isNotEmpty(pd)) { pd1InList.add(new BigDecimal(pd)); }
-                if (StringUtils.isNotEmpty(ma)) { ma1InList.add(new BigDecimal(ma)); }
-            }
-            for (TMonthlyQualityReportS3010 monthlyQualityReportS3010 : tMonthlyQualityReportS3010s) {
-                String ethane = monthlyQualityReportS3010.getEthane();
-                String ethylene = monthlyQualityReportS3010.getEthylene();
-                String acetylene = monthlyQualityReportS3010.getAcetylene();
-                String propane = monthlyQualityReportS3010.getPropane();
-                String propylene = monthlyQualityReportS3010.getPropylene();
-                String pd = monthlyQualityReportS3010.getPropadiene();
-                String ma = monthlyQualityReportS3010.getMethylacetylene();
-                if (StringUtils.isNotEmpty(ethane)) { ethane3OutList.add(new BigDecimal(ethane)); }
-                if (StringUtils.isNotEmpty(ethylene)) { ethylene3OutList.add(new BigDecimal(ethylene)); }
-                if (StringUtils.isNotEmpty(acetylene)) { acetylene3OutList.add(new BigDecimal(acetylene)); }
-                if (StringUtils.isNotEmpty(propane)) { propane3OutList.add(new BigDecimal(propane)); }
-                if (StringUtils.isNotEmpty(propylene)) { propylene3OutList.add(new BigDecimal(propylene)); }
-                if (StringUtils.isNotEmpty(pd)) { pd3OutList.add(new BigDecimal(pd)); }
-                if (StringUtils.isNotEmpty(ma)) { ma3OutList.add(new BigDecimal(ma)); }
-            }
-            for (TMonthlyQualityReportS3011 monthlyQualityReportS3011 : tMonthlyQualityReportS3011s) {
-                String ethane = monthlyQualityReportS3011.getEthane();
-                String ethylene = monthlyQualityReportS3011.getEthylene();
-                String acetylene = monthlyQualityReportS3011.getAcetylene();
-                String propane = monthlyQualityReportS3011.getPropane();
-                String propylene = monthlyQualityReportS3011.getPropylene();
-                String pd = monthlyQualityReportS3011.getPropadiene();
-                String ma = monthlyQualityReportS3011.getMethylacetylene();
-                if (StringUtils.isNotEmpty(ethane)) { ethane2InList.add(new BigDecimal(ethane)); }
-                if (StringUtils.isNotEmpty(ethylene)) { ethylene2InList.add(new BigDecimal(ethylene)); }
-                if (StringUtils.isNotEmpty(acetylene)) { acetylene2InList.add(new BigDecimal(acetylene)); }
-                if (StringUtils.isNotEmpty(propane)) { propane2InList.add(new BigDecimal(propane)); }
-                if (StringUtils.isNotEmpty(propylene)) { propylene2InList.add(new BigDecimal(propylene)); }
-                if (StringUtils.isNotEmpty(pd)) { pd2InList.add(new BigDecimal(pd)); }
-                if (StringUtils.isNotEmpty(ma)) { ma2InList.add(new BigDecimal(ma)); }
-            }
-            for (TMonthlyQualityReportS3012 monthlyQualityReportS3012 : tMonthlyQualityReportS3012s) {
-                String ethane = monthlyQualityReportS3012.getEthane();
-                String ethylene = monthlyQualityReportS3012.getEthylene();
-                String acetylene = monthlyQualityReportS3012.getAcetylene();
-                String propane = monthlyQualityReportS3012.getPropane();
-                String propylene = monthlyQualityReportS3012.getPropylene();
-                String pd = monthlyQualityReportS3012.getPropadiene();
-                String ma = monthlyQualityReportS3012.getMethylacetylene();
-                if (StringUtils.isNotEmpty(ethane)) { ethane3InList.add(new BigDecimal(ethane)); }
-                if (StringUtils.isNotEmpty(ethylene)) { ethylene3InList.add(new BigDecimal(ethylene)); }
-                if (StringUtils.isNotEmpty(acetylene)) { acetylene3InList.add(new BigDecimal(acetylene)); }
-                if (StringUtils.isNotEmpty(propane)) { propane3InList.add(new BigDecimal(propane)); }
-                if (StringUtils.isNotEmpty(propylene)) { propylene3InList.add(new BigDecimal(propylene)); }
-                if (StringUtils.isNotEmpty(pd)) { pd3InList.add(new BigDecimal(pd)); }
-                if (StringUtils.isNotEmpty(ma)) { ma3InList.add(new BigDecimal(ma)); }
-            }
-            //计算sum
-            for (BigDecimal value : ethane1InList) { ethane1InSum = ethane1InSum.add(value); }
-            for (BigDecimal value : ethylene1InList) { ethylene1InSum = ethylene1InSum.add(value); }
-            for (BigDecimal value : acetylene1InList) { acetylene1InSum = acetylene1InSum.add(value); }
-            for (BigDecimal value : propane1InList) { propane1InSum = propane1InSum.add(value); }
-            for (BigDecimal value : propylene1InList) { propylene1InSum = propylene1InSum.add(value); }
-            for (BigDecimal value : pd1InList) { pd1InSum = pd1InSum.add(value); }
-            for (BigDecimal value : ma1InList) { ma1InSum = ma1InSum.add(value); }
-            for (BigDecimal value : ethane3OutList) { ethane3OutSum = ethane3OutSum.add(value); }
-            for (BigDecimal value : ethylene3OutList) { ethylene3OutSum = ethylene3OutSum.add(value); }
-            for (BigDecimal value : acetylene3OutList) { acetylene3OutSum = acetylene3OutSum.add(value); }
-            for (BigDecimal value : propane3OutList) { propane3OutSum = propane3OutSum.add(value); }
-            for (BigDecimal value : propylene3OutList) { propylene3OutSum = propylene3OutSum.add(value); }
-            for (BigDecimal value : pd3OutList) { pd3OutSum = pd3OutSum.add(value); }
-            for (BigDecimal value : ma3OutList) { ma3OutSum = ma3OutSum.add(value); }
-            for (BigDecimal value : ethane2InList) { ethane2InSum = ethane2InSum.add(value); }
-            for (BigDecimal value : ethylene2InList) { ethylene2InSum = ethylene2InSum.add(value); }
-            for (BigDecimal value : acetylene2InList) { acetylene2InSum = acetylene2InSum.add(value); }
-            for (BigDecimal value : propane2InList) { propane2InSum = propane2InSum.add(value); }
-            for (BigDecimal value : propylene2InList) { propylene2InSum = propylene2InSum.add(value); }
-            for (BigDecimal value : pd2InList) { pd2InSum = pd2InSum.add(value); }
-            for (BigDecimal value : ma2InList) { ma2InSum = ma2InSum.add(value); }
-            for (BigDecimal value : ethane3InList) { ethane3InSum = ethane3InSum.add(value); }
-            for (BigDecimal value : ethylene3InList) { ethylene3InSum = ethylene3InSum.add(value); }
-            for (BigDecimal value : acetylene3InList) { acetylene3InSum = acetylene3InSum.add(value); }
-            for (BigDecimal value : propane3InList) { propane3InSum = propane3InSum.add(value); }
-            for (BigDecimal value : propylene3InList) { propylene3InSum = propylene3InSum.add(value); }
-            for (BigDecimal value : pd3InList) { pd3InSum = pd3InSum.add(value); }
-            for (BigDecimal value : ma3InList) { ma3InSum = ma3InSum.add(value); }
-            //计算avg
-            if (ethane1InList.size() != 0) { ethane1InAvg = ethane1InSum.divide(new BigDecimal(ethane1InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ethylene1InList.size() != 0) { ethylene1InAvg = ethylene1InSum.divide(new BigDecimal(ethylene1InList.size()), 2, RoundingMode.HALF_UP); }
-            if (acetylene1InList.size() != 0) { acetylene1InAvg = acetylene1InSum.divide(new BigDecimal(acetylene1InList.size()), 2, RoundingMode.HALF_UP); }
-            if (propane1InList.size() != 0) { propane1InAvg = propane1InSum.divide(new BigDecimal(propane1InList.size()), 2, RoundingMode.HALF_UP); }
-            if (propylene1InList.size() != 0) { propylene1InAvg = propylene1InSum.divide(new BigDecimal(propylene1InList.size()), 2, RoundingMode.HALF_UP); }
-            if (pd1InList.size() != 0) { pd1InAvg = pd1InSum.divide(new BigDecimal(pd1InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ma1InList.size() != 0) { ma1InAvg = ma1InSum.divide(new BigDecimal(ma1InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ethane3OutList.size() != 0) { ethane3OutAvg = ethane3OutSum.divide(new BigDecimal(ethane3OutList.size()), 2, RoundingMode.HALF_UP); }
-            if (ethylene3OutList.size() != 0) { ethylene3OutAvg = ethylene3OutSum.divide(new BigDecimal(ethylene3OutList.size()), 2, RoundingMode.HALF_UP); }
-            if (acetylene3OutList.size() != 0) {
-                acetylene3OutAvg = acetylene3OutSum.divide(new BigDecimal(acetylene3OutList.size()), 2, RoundingMode.HALF_UP)
-                        .divide(new BigDecimal("10000"), 5, RoundingMode.HALF_UP);
-            }
-            if (propane3OutList.size() != 0) { propane3OutAvg = propane3OutSum.divide(new BigDecimal(propane3OutList.size()), 2, RoundingMode.HALF_UP); }
-            if (propylene3OutList.size() != 0) { propylene3OutAvg = propylene3OutSum.divide(new BigDecimal(propylene3OutList.size()), 2, RoundingMode.HALF_UP); }
-            if (pd3OutList.size() != 0) { pd3OutAvg = pd3OutSum.divide(new BigDecimal(pd3OutList.size()), 2, RoundingMode.HALF_UP); }
-            if (ma3OutList.size() != 0) { ma3OutAvg = ma3OutSum.divide(new BigDecimal(ma3OutList.size()), 2, RoundingMode.HALF_UP); }
-            if (ethane2InList.size() != 0) { ethane2InAvg = ethane2InSum.divide(new BigDecimal(ethane2InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ethylene2InList.size() != 0) { ethylene2InAvg = ethylene2InSum.divide(new BigDecimal(ethylene2InList.size()), 2, RoundingMode.HALF_UP); }
-            if (acetylene2InList.size() != 0) { acetylene2InAvg = acetylene2InSum.divide(new BigDecimal(acetylene2InList.size()), 2, RoundingMode.HALF_UP); }
-            if (propane2InList.size() != 0) { propane2InAvg = propane2InSum.divide(new BigDecimal(propane2InList.size()), 2, RoundingMode.HALF_UP); }
-            if (propylene2InList.size() != 0) { propylene2InAvg = propylene2InSum.divide(new BigDecimal(propylene2InList.size()), 2, RoundingMode.HALF_UP); }
-            if (pd2InList.size() != 0) { pd2InAvg = pd2InSum.divide(new BigDecimal(pd2InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ma2InList.size() != 0) { ma2InAvg = ma2InSum.divide(new BigDecimal(ma2InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ethane3InList.size() != 0) { ethane3InAvg = ethane3InSum.divide(new BigDecimal(ethane3InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ethylene3InList.size() != 0) { ethylene3InAvg = ethylene3InSum.divide(new BigDecimal(ethylene3InList.size()), 2, RoundingMode.HALF_UP); }
-            if (acetylene3InList.size() != 0) {
-                acetylene3InAvg = acetylene3InSum.divide(new BigDecimal(acetylene3InList.size()), 2, RoundingMode.HALF_UP)
-                        .divide(new BigDecimal("10000"), 5, RoundingMode.HALF_UP);
-            }
-            if (propane3InList.size() != 0) { propane3InAvg = propane3InSum.divide(new BigDecimal(propane3InList.size()), 2, RoundingMode.HALF_UP); }
-            if (propylene3InList.size() != 0) { propylene3InAvg = propylene3InSum.divide(new BigDecimal(propylene3InList.size()), 2, RoundingMode.HALF_UP); }
-            if (pd3InList.size() != 0) { pd3InAvg = pd3InSum.divide(new BigDecimal(pd3InList.size()), 2, RoundingMode.HALF_UP); }
-            if (ma3InList.size() != 0) { ma3InAvg = ma3InSum.divide(new BigDecimal(ma3InList.size()), 2, RoundingMode.HALF_UP); }
-            //%
-            BigDecimal acetyleneConversion1stIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal conversionLoad1stIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethyleneSelectivity1stIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal mapdConversion1stIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propyleneSelectivity1stIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetyleneConversion2ndIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal conversionLoad2ndIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethyleneSelectivity2ndIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal mapdConversion2ndIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propyleneSelectivity2ndIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetyleneConversion3rdIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal conversionLoad3rdIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethyleneSelectivity3rdIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal mapdConversion3rdIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propyleneSelectivity3rdIn = new BigDecimal(BigInteger.ZERO);
-            BigDecimal acetyleneConversion3rdOut = new BigDecimal(BigInteger.ZERO);
-            BigDecimal ethyleneSelectivity3rdOut = new BigDecimal(BigInteger.ZERO);
-            BigDecimal mapdConversion3rdOut = new BigDecimal(BigInteger.ZERO);
-            BigDecimal propyleneSelectivity3rdOut = new BigDecimal(BigInteger.ZERO);
-            //计算%
-            if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                acetyleneConversion1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((acetylene1InAvg.subtract(acetylene2InAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
-            }
-            conversionLoad1stIn = acetyleneConversion1stIn;
-            if (ethane1InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene1InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene1InAvg.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)
-                        .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));
-            }
-            if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
-                mapdConversion1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((pd1InAvg.add(ma1InAvg).subtract(pd2InAvg).subtract(ma2InAvg)).divide(pd1InAvg.add(ma1InAvg), 2, RoundingMode.HALF_UP));
-            }
-            if (propane1InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene1InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd1InAvg.compareTo(BigDecimal.ZERO) != 0 && ma1InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && propane2InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene2InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd2InAvg.compareTo(BigDecimal.ZERO) != 0 && ma2InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                propyleneSelectivity1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .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));
-            }
-            if (acetylene2InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                acetyleneConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((acetylene2InAvg.subtract(acetylene3InAvg)).divide(acetylene2InAvg, 2, RoundingMode.HALF_UP));
-            }
-            if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                conversionLoad2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((acetylene2InAvg.subtract(acetylene3InAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
-            }
-            if (ethane2InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene2InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene2InAvg.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)
-                        .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));
-            }
-            if ((pd2InAvg.add(ma2InAvg)).compareTo(BigDecimal.ZERO) != 0) {
-                mapdConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((pd2InAvg.add(ma2InAvg).subtract(pd3InAvg).subtract(ma3InAvg)).divide(pd2InAvg.add(ma2InAvg), 2, RoundingMode.HALF_UP));
-            }
-            if (propane2InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene2InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd2InAvg.compareTo(BigDecimal.ZERO) != 0 && ma2InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && propane3InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd3InAvg.compareTo(BigDecimal.ZERO) != 0 && ma3InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                propyleneSelectivity2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .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));
-            }
-            if (acetylene3InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                acetyleneConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((acetylene3InAvg.subtract(acetylene3OutAvg)).divide(acetylene3InAvg, 2, RoundingMode.HALF_UP));
-            }
-            if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                conversionLoad3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((acetylene3InAvg.subtract(acetylene3OutAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
-            }
-            if (ethane3InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3InAvg.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)
-                        .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));
-            }
-            if ((pd3InAvg.add(ma3InAvg)).compareTo(BigDecimal.ZERO) != 0) {
-                mapdConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((pd3InAvg.add(ma3InAvg).subtract(pd3OutAvg).subtract(ma3OutAvg)).divide(pd3InAvg.add(ma3InAvg), 2, RoundingMode.HALF_UP));
-            }
-            if (propane3InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd3InAvg.compareTo(BigDecimal.ZERO) != 0 && ma3InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && propane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3OutAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
-                propyleneSelectivity3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .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));
-            }
-            if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
-                acetyleneConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((acetylene1InAvg.subtract(acetylene3OutAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
-            }
-            if (ethane1InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene1InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene1InAvg.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)
-                        .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));
-            }
-            if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
-                mapdConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .multiply((pd1InAvg.add(ma1InAvg).subtract(pd3OutAvg).subtract(ma3OutAvg)).divide(pd1InAvg.add(ma1InAvg), 2, RoundingMode.HALF_UP));
-            }
-            if (propane1InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene1InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd1InAvg.compareTo(BigDecimal.ZERO) != 0 && ma1InAvg.compareTo(BigDecimal.ZERO) != 0
-                    && propane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3OutAvg.compareTo(BigDecimal.ZERO) != 0
-                    && pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
-                propyleneSelectivity3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
-                        .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));
-            }
-            C2ReactorAnalysisVO analysisVO = new C2ReactorAnalysisVO();
-            analysisVO.setEthyleneSelectivity3rdOut(ethyleneSelectivity3rdOut);
-            analysisVO.setMapdConversion3rdOut(mapdConversion3rdOut);
-            dataMap.put(startYear + "-" + startMonth, analysisVO);
-            if (startMonth == 12) {
-                startMonth = 1;
-                startYear++;
-            } else {
-                startMonth++;
+
+        for (int i = 0; i < 12; i++) {
+                //1st inlet
+                TMonthlyQualityReportS3009 tMonthlyQualityReportS3009 = new TMonthlyQualityReportS3009();
+                tMonthlyQualityReportS3009.setStartDate(startDate);
+                tMonthlyQualityReportS3009.setEndDate(endDate);
+                List<TMonthlyQualityReportS3009> tMonthlyQualityReportS3009s = tMonthlyQualityReportS3009Service.selectTMonthlyQualityReportS3009List(tMonthlyQualityReportS3009);
+                //3rd outlet
+                TMonthlyQualityReportS3010 tMonthlyQualityReportS3010 = new TMonthlyQualityReportS3010();
+                tMonthlyQualityReportS3010.setStartDate(startDate);
+                tMonthlyQualityReportS3010.setEndDate(endDate);
+                List<TMonthlyQualityReportS3010> tMonthlyQualityReportS3010s = tMonthlyQualityReportS3010Service.selectTMonthlyQualityReportS3010List(tMonthlyQualityReportS3010);
+                //2nd inlet
+                TMonthlyQualityReportS3011 tMonthlyQualityReportS3011 = new TMonthlyQualityReportS3011();
+                tMonthlyQualityReportS3011.setStartDate(startDate);
+                tMonthlyQualityReportS3011.setEndDate(endDate);
+                List<TMonthlyQualityReportS3011> tMonthlyQualityReportS3011s = tMonthlyQualityReportS3011Service.selectTMonthlyQualityReportS3011List(tMonthlyQualityReportS3011);
+                //3rd inlet
+                TMonthlyQualityReportS3012 tMonthlyQualityReportS3012 = new TMonthlyQualityReportS3012();
+                tMonthlyQualityReportS3012.setStartDate(startDate);
+                tMonthlyQualityReportS3012.setEndDate(endDate);
+                List<TMonthlyQualityReportS3012> tMonthlyQualityReportS3012s = tMonthlyQualityReportS3012Service.selectTMonthlyQualityReportS3012List(tMonthlyQualityReportS3012);
+                //avg
+                BigDecimal ethane1InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene1InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene1InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane1InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene1InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd1InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma1InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethane3OutAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene3OutAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene3OutAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane3OutAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene3OutAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd3OutAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma3OutAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethane2InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene2InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene2InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane2InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene2InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd2InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma2InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethane3InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene3InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene3InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane3InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene3InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd3InAvg = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma3InAvg = new BigDecimal(BigInteger.ZERO);
+                //sum
+                BigDecimal ethane1InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene1InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene1InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane1InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene1InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd1InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma1InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethane3OutSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene3OutSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene3OutSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane3OutSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene3OutSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd3OutSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma3OutSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethane2InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene2InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene2InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane2InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene2InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd2InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma2InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethane3InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethylene3InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetylene3InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propane3InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propylene3InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal pd3InSum = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ma3InSum = new BigDecimal(BigInteger.ZERO);
+                //list
+                ArrayList<BigDecimal> ethane1InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ethylene1InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> acetylene1InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propane1InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propylene1InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> pd1InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ma1InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ethane3OutList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ethylene3OutList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> acetylene3OutList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propane3OutList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propylene3OutList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> pd3OutList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ma3OutList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ethane2InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ethylene2InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> acetylene2InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propane2InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propylene2InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> pd2InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ma2InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ethane3InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ethylene3InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> acetylene3InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propane3InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> propylene3InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> pd3InList = new ArrayList<BigDecimal>();
+                ArrayList<BigDecimal> ma3InList = new ArrayList<BigDecimal>();
+                //放入list
+                for (TMonthlyQualityReportS3009 monthlyQualityReportS3009 : tMonthlyQualityReportS3009s) {
+                    String ethane = monthlyQualityReportS3009.getEthane();
+                    String ethylene = monthlyQualityReportS3009.getEthylene();
+                    String acetylene = monthlyQualityReportS3009.getAcetylene();
+                    String propane = monthlyQualityReportS3009.getPropane();
+                    String propylene = monthlyQualityReportS3009.getPropylene();
+                    String pd = monthlyQualityReportS3009.getPropadiene();
+                    String ma = monthlyQualityReportS3009.getMethylacetylene();
+                    if (StringUtils.isNotEmpty(ethane)) { ethane1InList.add(new BigDecimal(ethane)); }
+                    if (StringUtils.isNotEmpty(ethylene)) { ethylene1InList.add(new BigDecimal(ethylene)); }
+                    if (StringUtils.isNotEmpty(acetylene)) { acetylene1InList.add(new BigDecimal(acetylene)); }
+                    if (StringUtils.isNotEmpty(propane)) { propane1InList.add(new BigDecimal(propane)); }
+                    if (StringUtils.isNotEmpty(propylene)) { propylene1InList.add(new BigDecimal(propylene)); }
+                    if (StringUtils.isNotEmpty(pd)) { pd1InList.add(new BigDecimal(pd)); }
+                    if (StringUtils.isNotEmpty(ma)) { ma1InList.add(new BigDecimal(ma)); }
+                }
+                for (TMonthlyQualityReportS3010 monthlyQualityReportS3010 : tMonthlyQualityReportS3010s) {
+                    String ethane = monthlyQualityReportS3010.getEthane();
+                    String ethylene = monthlyQualityReportS3010.getEthylene();
+                    String acetylene = monthlyQualityReportS3010.getAcetylene();
+                    String propane = monthlyQualityReportS3010.getPropane();
+                    String propylene = monthlyQualityReportS3010.getPropylene();
+                    String pd = monthlyQualityReportS3010.getPropadiene();
+                    String ma = monthlyQualityReportS3010.getMethylacetylene();
+                    if (StringUtils.isNotEmpty(ethane)) { ethane3OutList.add(new BigDecimal(ethane)); }
+                    if (StringUtils.isNotEmpty(ethylene)) { ethylene3OutList.add(new BigDecimal(ethylene)); }
+                    if (StringUtils.isNotEmpty(acetylene)) { acetylene3OutList.add(new BigDecimal(acetylene)); }
+                    if (StringUtils.isNotEmpty(propane)) { propane3OutList.add(new BigDecimal(propane)); }
+                    if (StringUtils.isNotEmpty(propylene)) { propylene3OutList.add(new BigDecimal(propylene)); }
+                    if (StringUtils.isNotEmpty(pd)) { pd3OutList.add(new BigDecimal(pd)); }
+                    if (StringUtils.isNotEmpty(ma)) { ma3OutList.add(new BigDecimal(ma)); }
+                }
+                for (TMonthlyQualityReportS3011 monthlyQualityReportS3011 : tMonthlyQualityReportS3011s) {
+                    String ethane = monthlyQualityReportS3011.getEthane();
+                    String ethylene = monthlyQualityReportS3011.getEthylene();
+                    String acetylene = monthlyQualityReportS3011.getAcetylene();
+                    String propane = monthlyQualityReportS3011.getPropane();
+                    String propylene = monthlyQualityReportS3011.getPropylene();
+                    String pd = monthlyQualityReportS3011.getPropadiene();
+                    String ma = monthlyQualityReportS3011.getMethylacetylene();
+                    if (StringUtils.isNotEmpty(ethane)) { ethane2InList.add(new BigDecimal(ethane)); }
+                    if (StringUtils.isNotEmpty(ethylene)) { ethylene2InList.add(new BigDecimal(ethylene)); }
+                    if (StringUtils.isNotEmpty(acetylene)) { acetylene2InList.add(new BigDecimal(acetylene)); }
+                    if (StringUtils.isNotEmpty(propane)) { propane2InList.add(new BigDecimal(propane)); }
+                    if (StringUtils.isNotEmpty(propylene)) { propylene2InList.add(new BigDecimal(propylene)); }
+                    if (StringUtils.isNotEmpty(pd)) { pd2InList.add(new BigDecimal(pd)); }
+                    if (StringUtils.isNotEmpty(ma)) { ma2InList.add(new BigDecimal(ma)); }
+                }
+                for (TMonthlyQualityReportS3012 monthlyQualityReportS3012 : tMonthlyQualityReportS3012s) {
+                    String ethane = monthlyQualityReportS3012.getEthane();
+                    String ethylene = monthlyQualityReportS3012.getEthylene();
+                    String acetylene = monthlyQualityReportS3012.getAcetylene();
+                    String propane = monthlyQualityReportS3012.getPropane();
+                    String propylene = monthlyQualityReportS3012.getPropylene();
+                    String pd = monthlyQualityReportS3012.getPropadiene();
+                    String ma = monthlyQualityReportS3012.getMethylacetylene();
+                    if (StringUtils.isNotEmpty(ethane)) { ethane3InList.add(new BigDecimal(ethane)); }
+                    if (StringUtils.isNotEmpty(ethylene)) { ethylene3InList.add(new BigDecimal(ethylene)); }
+                    if (StringUtils.isNotEmpty(acetylene)) { acetylene3InList.add(new BigDecimal(acetylene)); }
+                    if (StringUtils.isNotEmpty(propane)) { propane3InList.add(new BigDecimal(propane)); }
+                    if (StringUtils.isNotEmpty(propylene)) { propylene3InList.add(new BigDecimal(propylene)); }
+                    if (StringUtils.isNotEmpty(pd)) { pd3InList.add(new BigDecimal(pd)); }
+                    if (StringUtils.isNotEmpty(ma)) { ma3InList.add(new BigDecimal(ma)); }
+                }
+                //计算sum
+                for (BigDecimal value : ethane1InList) { ethane1InSum = ethane1InSum.add(value); }
+                for (BigDecimal value : ethylene1InList) { ethylene1InSum = ethylene1InSum.add(value); }
+                for (BigDecimal value : acetylene1InList) { acetylene1InSum = acetylene1InSum.add(value); }
+                for (BigDecimal value : propane1InList) { propane1InSum = propane1InSum.add(value); }
+                for (BigDecimal value : propylene1InList) { propylene1InSum = propylene1InSum.add(value); }
+                for (BigDecimal value : pd1InList) { pd1InSum = pd1InSum.add(value); }
+                for (BigDecimal value : ma1InList) { ma1InSum = ma1InSum.add(value); }
+                for (BigDecimal value : ethane3OutList) { ethane3OutSum = ethane3OutSum.add(value); }
+                for (BigDecimal value : ethylene3OutList) { ethylene3OutSum = ethylene3OutSum.add(value); }
+                for (BigDecimal value : acetylene3OutList) { acetylene3OutSum = acetylene3OutSum.add(value); }
+                for (BigDecimal value : propane3OutList) { propane3OutSum = propane3OutSum.add(value); }
+                for (BigDecimal value : propylene3OutList) { propylene3OutSum = propylene3OutSum.add(value); }
+                for (BigDecimal value : pd3OutList) { pd3OutSum = pd3OutSum.add(value); }
+                for (BigDecimal value : ma3OutList) { ma3OutSum = ma3OutSum.add(value); }
+                for (BigDecimal value : ethane2InList) { ethane2InSum = ethane2InSum.add(value); }
+                for (BigDecimal value : ethylene2InList) { ethylene2InSum = ethylene2InSum.add(value); }
+                for (BigDecimal value : acetylene2InList) { acetylene2InSum = acetylene2InSum.add(value); }
+                for (BigDecimal value : propane2InList) { propane2InSum = propane2InSum.add(value); }
+                for (BigDecimal value : propylene2InList) { propylene2InSum = propylene2InSum.add(value); }
+                for (BigDecimal value : pd2InList) { pd2InSum = pd2InSum.add(value); }
+                for (BigDecimal value : ma2InList) { ma2InSum = ma2InSum.add(value); }
+                for (BigDecimal value : ethane3InList) { ethane3InSum = ethane3InSum.add(value); }
+                for (BigDecimal value : ethylene3InList) { ethylene3InSum = ethylene3InSum.add(value); }
+                for (BigDecimal value : acetylene3InList) { acetylene3InSum = acetylene3InSum.add(value); }
+                for (BigDecimal value : propane3InList) { propane3InSum = propane3InSum.add(value); }
+                for (BigDecimal value : propylene3InList) { propylene3InSum = propylene3InSum.add(value); }
+                for (BigDecimal value : pd3InList) { pd3InSum = pd3InSum.add(value); }
+                for (BigDecimal value : ma3InList) { ma3InSum = ma3InSum.add(value); }
+                //计算avg
+                if (ethane1InList.size() != 0) { ethane1InAvg = ethane1InSum.divide(new BigDecimal(ethane1InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ethylene1InList.size() != 0) { ethylene1InAvg = ethylene1InSum.divide(new BigDecimal(ethylene1InList.size()), 2, RoundingMode.HALF_UP); }
+                if (acetylene1InList.size() != 0) { acetylene1InAvg = acetylene1InSum.divide(new BigDecimal(acetylene1InList.size()), 2, RoundingMode.HALF_UP); }
+                if (propane1InList.size() != 0) { propane1InAvg = propane1InSum.divide(new BigDecimal(propane1InList.size()), 2, RoundingMode.HALF_UP); }
+                if (propylene1InList.size() != 0) { propylene1InAvg = propylene1InSum.divide(new BigDecimal(propylene1InList.size()), 2, RoundingMode.HALF_UP); }
+                if (pd1InList.size() != 0) { pd1InAvg = pd1InSum.divide(new BigDecimal(pd1InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ma1InList.size() != 0) { ma1InAvg = ma1InSum.divide(new BigDecimal(ma1InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ethane3OutList.size() != 0) { ethane3OutAvg = ethane3OutSum.divide(new BigDecimal(ethane3OutList.size()), 2, RoundingMode.HALF_UP); }
+                if (ethylene3OutList.size() != 0) { ethylene3OutAvg = ethylene3OutSum.divide(new BigDecimal(ethylene3OutList.size()), 2, RoundingMode.HALF_UP); }
+                if (acetylene3OutList.size() != 0) {
+                    acetylene3OutAvg = acetylene3OutSum.divide(new BigDecimal(acetylene3OutList.size()), 2, RoundingMode.HALF_UP)
+                            .divide(new BigDecimal("10000"), 5, RoundingMode.HALF_UP);
+                }
+                if (propane3OutList.size() != 0) { propane3OutAvg = propane3OutSum.divide(new BigDecimal(propane3OutList.size()), 2, RoundingMode.HALF_UP); }
+                if (propylene3OutList.size() != 0) { propylene3OutAvg = propylene3OutSum.divide(new BigDecimal(propylene3OutList.size()), 2, RoundingMode.HALF_UP); }
+                if (pd3OutList.size() != 0) { pd3OutAvg = pd3OutSum.divide(new BigDecimal(pd3OutList.size()), 2, RoundingMode.HALF_UP); }
+                if (ma3OutList.size() != 0) { ma3OutAvg = ma3OutSum.divide(new BigDecimal(ma3OutList.size()), 2, RoundingMode.HALF_UP); }
+                if (ethane2InList.size() != 0) { ethane2InAvg = ethane2InSum.divide(new BigDecimal(ethane2InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ethylene2InList.size() != 0) { ethylene2InAvg = ethylene2InSum.divide(new BigDecimal(ethylene2InList.size()), 2, RoundingMode.HALF_UP); }
+                if (acetylene2InList.size() != 0) { acetylene2InAvg = acetylene2InSum.divide(new BigDecimal(acetylene2InList.size()), 2, RoundingMode.HALF_UP); }
+                if (propane2InList.size() != 0) { propane2InAvg = propane2InSum.divide(new BigDecimal(propane2InList.size()), 2, RoundingMode.HALF_UP); }
+                if (propylene2InList.size() != 0) { propylene2InAvg = propylene2InSum.divide(new BigDecimal(propylene2InList.size()), 2, RoundingMode.HALF_UP); }
+                if (pd2InList.size() != 0) { pd2InAvg = pd2InSum.divide(new BigDecimal(pd2InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ma2InList.size() != 0) { ma2InAvg = ma2InSum.divide(new BigDecimal(ma2InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ethane3InList.size() != 0) { ethane3InAvg = ethane3InSum.divide(new BigDecimal(ethane3InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ethylene3InList.size() != 0) { ethylene3InAvg = ethylene3InSum.divide(new BigDecimal(ethylene3InList.size()), 2, RoundingMode.HALF_UP); }
+                if (acetylene3InList.size() != 0) {
+                    acetylene3InAvg = acetylene3InSum.divide(new BigDecimal(acetylene3InList.size()), 2, RoundingMode.HALF_UP)
+                            .divide(new BigDecimal("10000"), 5, RoundingMode.HALF_UP);
+                }
+                if (propane3InList.size() != 0) { propane3InAvg = propane3InSum.divide(new BigDecimal(propane3InList.size()), 2, RoundingMode.HALF_UP); }
+                if (propylene3InList.size() != 0) { propylene3InAvg = propylene3InSum.divide(new BigDecimal(propylene3InList.size()), 2, RoundingMode.HALF_UP); }
+                if (pd3InList.size() != 0) { pd3InAvg = pd3InSum.divide(new BigDecimal(pd3InList.size()), 2, RoundingMode.HALF_UP); }
+                if (ma3InList.size() != 0) { ma3InAvg = ma3InSum.divide(new BigDecimal(ma3InList.size()), 2, RoundingMode.HALF_UP); }
+                //%
+                BigDecimal acetyleneConversion1stIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal conversionLoad1stIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethyleneSelectivity1stIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal mapdConversion1stIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propyleneSelectivity1stIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetyleneConversion2ndIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal conversionLoad2ndIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethyleneSelectivity2ndIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal mapdConversion2ndIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propyleneSelectivity2ndIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetyleneConversion3rdIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal conversionLoad3rdIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethyleneSelectivity3rdIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal mapdConversion3rdIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propyleneSelectivity3rdIn = new BigDecimal(BigInteger.ZERO);
+                BigDecimal acetyleneConversion3rdOut = new BigDecimal(BigInteger.ZERO);
+                BigDecimal ethyleneSelectivity3rdOut = new BigDecimal(BigInteger.ZERO);
+                BigDecimal mapdConversion3rdOut = new BigDecimal(BigInteger.ZERO);
+                BigDecimal propyleneSelectivity3rdOut = new BigDecimal(BigInteger.ZERO);
+                //计算%
+                if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    acetyleneConversion1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((acetylene1InAvg.subtract(acetylene2InAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
+                }
+                conversionLoad1stIn = acetyleneConversion1stIn;
+                if (ethane1InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene1InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene1InAvg.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)
+                            .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));
+                }
+                if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
+                    mapdConversion1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((pd1InAvg.add(ma1InAvg).subtract(pd2InAvg).subtract(ma2InAvg)).divide(pd1InAvg.add(ma1InAvg), 2, RoundingMode.HALF_UP));
+                }
+                if (propane1InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene1InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd1InAvg.compareTo(BigDecimal.ZERO) != 0 && ma1InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && propane2InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene2InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd2InAvg.compareTo(BigDecimal.ZERO) != 0 && ma2InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    propyleneSelectivity1stIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .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));
+                }
+                if (acetylene2InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    acetyleneConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((acetylene2InAvg.subtract(acetylene3InAvg)).divide(acetylene2InAvg, 2, RoundingMode.HALF_UP));
+                }
+                if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    conversionLoad2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((acetylene2InAvg.subtract(acetylene3InAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
+                }
+                if (ethane2InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene2InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene2InAvg.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)
+                            .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));
+                }
+                if ((pd2InAvg.add(ma2InAvg)).compareTo(BigDecimal.ZERO) != 0) {
+                    mapdConversion2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((pd2InAvg.add(ma2InAvg).subtract(pd3InAvg).subtract(ma3InAvg)).divide(pd2InAvg.add(ma2InAvg), 2, RoundingMode.HALF_UP));
+                }
+                if (propane2InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene2InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd2InAvg.compareTo(BigDecimal.ZERO) != 0 && ma2InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && propane3InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd3InAvg.compareTo(BigDecimal.ZERO) != 0 && ma3InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    propyleneSelectivity2ndIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .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));
+                }
+                if (acetylene3InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    acetyleneConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((acetylene3InAvg.subtract(acetylene3OutAvg)).divide(acetylene3InAvg, 2, RoundingMode.HALF_UP));
+                }
+                if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    conversionLoad3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((acetylene3InAvg.subtract(acetylene3OutAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
+                }
+                if (ethane3InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene3InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene3InAvg.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)
+                            .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));
+                }
+                if ((pd3InAvg.add(ma3InAvg)).compareTo(BigDecimal.ZERO) != 0) {
+                    mapdConversion3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((pd3InAvg.add(ma3InAvg).subtract(pd3OutAvg).subtract(ma3OutAvg)).divide(pd3InAvg.add(ma3InAvg), 2, RoundingMode.HALF_UP));
+                }
+                if (propane3InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd3InAvg.compareTo(BigDecimal.ZERO) != 0 && ma3InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && propane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3OutAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    propyleneSelectivity3rdIn = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .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));
+                }
+                if (acetylene1InAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    acetyleneConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((acetylene1InAvg.subtract(acetylene3OutAvg)).divide(acetylene1InAvg, 2, RoundingMode.HALF_UP));
+                }
+                if (ethane1InAvg.compareTo(BigDecimal.ZERO) != 0 && ethylene1InAvg.compareTo(BigDecimal.ZERO) != 0 && acetylene1InAvg.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)
+                            .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));
+                }
+                if ((pd1InAvg.add(ma1InAvg)).compareTo(BigDecimal.ZERO) != 0) {
+                    mapdConversion3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .multiply((pd1InAvg.add(ma1InAvg).subtract(pd3OutAvg).subtract(ma3OutAvg)).divide(pd1InAvg.add(ma1InAvg), 2, RoundingMode.HALF_UP));
+                }
+                if (propane1InAvg.compareTo(BigDecimal.ZERO) != 0 && propylene1InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd1InAvg.compareTo(BigDecimal.ZERO) != 0 && ma1InAvg.compareTo(BigDecimal.ZERO) != 0
+                        && propane3OutAvg.compareTo(BigDecimal.ZERO) != 0 && propylene3OutAvg.compareTo(BigDecimal.ZERO) != 0
+                        && pd3OutAvg.compareTo(BigDecimal.ZERO) != 0 && ma3OutAvg.compareTo(BigDecimal.ZERO) != 0) {
+                    propyleneSelectivity3rdOut = BigDecimal.TEN.multiply(BigDecimal.TEN)
+                            .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));
+                }
+                C2ReactorAnalysisVO analysisVO = new C2ReactorAnalysisVO();
+                analysisVO.setEthyleneSelectivity3rdOut(ethyleneSelectivity3rdOut);
+                analysisVO.setMapdConversion3rdOut(mapdConversion3rdOut);
+                dataMap.put(startYear + "-" + startMonth, analysisVO);
+                if (startMonth == 12) {
+                    startMonth = 1;
+                    startYear++;
+                } else {
+                    startMonth++;
+                }
+            if (!(startYear != endYear || startMonth != endMonth + 1)) {
+                break;
             }
-        } while (startYear != endYear || startMonth != endMonth + 1);
+        }
+
+
         // 获取map第一个元素
         List<String> keys = new ArrayList<>(dataMap.keySet());
         String firstKey = keys.get(0);
@@ -1016,7 +1022,9 @@ public class TMonthlyQualityReportController extends BaseController
         int startMonth = startDate.getMonth() + 1;
         int endMonth = endDate.getMonth() + 1;
         Map<String, C3ReactorAnalysisVO> dataMap = new HashMap<>();
-        do {
+
+
+        for (int i = 0; i < 12; i++) {
             //in
             TMonthlyQualityReportS5010 tMonthlyQualityReportS5010 = new TMonthlyQualityReportS5010();
             tMonthlyQualityReportS5010.setStartDate(startDate);
@@ -1062,39 +1070,87 @@ public class TMonthlyQualityReportController extends BaseController
                 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)); }
+                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)); }
+                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 = propaneInSum.add(value); }
-            for (BigDecimal value : propyleneInList) { propyleneInSum = propyleneInSum.add(value); }
-            for (BigDecimal value : pdInList) { pdInSum = pdInSum.add(value); }
-            for (BigDecimal value : maInList) { maInSum = maInSum.add(value); }
-            for (BigDecimal value : propaneOutList) { propaneOutSum = propaneOutSum.add(value); }
-            for (BigDecimal value : propyleneOutList) { propyleneOutSum = propyleneOutSum.add(value); }
-            for (BigDecimal value : pdOutList) { pdOutSum = pdOutSum.add(value); }
-            for (BigDecimal value : maOutList) { maOutSum = maOutSum.add(value); }
+            for (BigDecimal value : propaneInList) {
+                propaneInSum = propaneInSum.add(value);
+            }
+            for (BigDecimal value : propyleneInList) {
+                propyleneInSum = propyleneInSum.add(value);
+            }
+            for (BigDecimal value : pdInList) {
+                pdInSum = pdInSum.add(value);
+            }
+            for (BigDecimal value : maInList) {
+                maInSum = maInSum.add(value);
+            }
+            for (BigDecimal value : propaneOutList) {
+                propaneOutSum = propaneOutSum.add(value);
+            }
+            for (BigDecimal value : propyleneOutList) {
+                propyleneOutSum = propyleneOutSum.add(value);
+            }
+            for (BigDecimal value : pdOutList) {
+                pdOutSum = pdOutSum.add(value);
+            }
+            for (BigDecimal value : maOutList) {
+                maOutSum = maOutSum.add(value);
+            }
             //计算avg
-            if (propaneInList.size() != 0) { propaneInAvg = propaneInSum.divide(new BigDecimal(propaneInList.size()), 2, RoundingMode.HALF_UP); }
-            if (propyleneInList.size() != 0) { propyleneInAvg = propyleneInSum.divide(new BigDecimal(propyleneInList.size()), 2, RoundingMode.HALF_UP); }
-            if (pdInList.size() != 0) { pdInAvg = pdInSum.divide(new BigDecimal(pdInList.size()), 2, RoundingMode.HALF_UP); }
-            if (maInList.size() != 0) { maInAvg = maInSum.divide(new BigDecimal(maInList.size()), 2, RoundingMode.HALF_UP); }
-            if (propaneOutList.size() != 0) { propaneOutAvg = propaneOutSum.divide(new BigDecimal(propaneOutList.size()), 2, RoundingMode.HALF_UP); }
-            if (propyleneOutList.size() != 0) { propyleneOutAvg = propyleneOutSum.divide(new BigDecimal(propyleneOutList.size()), 2, RoundingMode.HALF_UP); }
-            if (pdOutList.size() != 0) { pdOutAvg = pdOutSum.divide(new BigDecimal(pdOutList.size()), 2, RoundingMode.HALF_UP); }
-            if (maOutList.size() != 0) { maOutAvg = maOutSum.divide(new BigDecimal(maOutList.size()), 2, RoundingMode.HALF_UP); }
+            if (propaneInList.size() != 0) {
+                propaneInAvg = propaneInSum.divide(new BigDecimal(propaneInList.size()), 2, RoundingMode.HALF_UP);
+            }
+            if (propyleneInList.size() != 0) {
+                propyleneInAvg = propyleneInSum.divide(new BigDecimal(propyleneInList.size()), 2, RoundingMode.HALF_UP);
+            }
+            if (pdInList.size() != 0) {
+                pdInAvg = pdInSum.divide(new BigDecimal(pdInList.size()), 2, RoundingMode.HALF_UP);
+            }
+            if (maInList.size() != 0) {
+                maInAvg = maInSum.divide(new BigDecimal(maInList.size()), 2, RoundingMode.HALF_UP);
+            }
+            if (propaneOutList.size() != 0) {
+                propaneOutAvg = propaneOutSum.divide(new BigDecimal(propaneOutList.size()), 2, RoundingMode.HALF_UP);
+            }
+            if (propyleneOutList.size() != 0) {
+                propyleneOutAvg = propyleneOutSum.divide(new BigDecimal(propyleneOutList.size()), 2, RoundingMode.HALF_UP);
+            }
+            if (pdOutList.size() != 0) {
+                pdOutAvg = pdOutSum.divide(new BigDecimal(pdOutList.size()), 2, RoundingMode.HALF_UP);
+            }
+            if (maOutList.size() != 0) {
+                maOutAvg = maOutSum.divide(new BigDecimal(maOutList.size()), 2, RoundingMode.HALF_UP);
+            }
             if (pdInAvg.compareTo(BigDecimal.ZERO) != 0 && maInAvg.compareTo(BigDecimal.ZERO) != 0) {
                 conversion = BigDecimal.TEN.multiply(BigDecimal.TEN).multiply((pdInAvg.add(maInAvg).subtract(pdOutAvg).subtract(maOutAvg)).divide(pdInAvg.add(maInAvg), 2, RoundingMode.HALF_UP));
             }
@@ -1117,7 +1173,10 @@ public class TMonthlyQualityReportController extends BaseController
             } else {
                 startMonth++;
             }
-        } while (startYear != endYear || startMonth != endMonth + 1);
+            if (!(startYear != endYear || startMonth != endMonth + 1)) {
+                break;
+            }
+        }
         // 获取map第一个元素
         List<String> keys = new ArrayList<>(dataMap.keySet());
         String firstKey = keys.get(0);

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

@@ -52,7 +52,8 @@ public class TMonthlyQualityReportS0501Controller extends BaseController
         int endMonth = endDate.getMonth() + 1;
         // 趋势图数据
         Map<String, TMonthlyQualityReportS0501> dataMap = new HashMap<>();
-        do {
+
+        for (int i = 0; i < 12; i++) {
             TMonthlyQualityReportS0501 reportS0501 = new TMonthlyQualityReportS0501();
             reportS0501.setMonth(startMonth);
             reportS0501.setYear(startYear);
@@ -66,7 +67,28 @@ public class TMonthlyQualityReportS0501Controller extends BaseController
             } else {
                 startMonth++;
             }
-        } while (startYear != endYear || startMonth != endMonth + 1);
+            if (!(startYear != endYear || startMonth != endMonth + 1)) {
+                break;
+            }
+        }
+
+//        do {
+//            TMonthlyQualityReportS0501 reportS0501 = new TMonthlyQualityReportS0501();
+//            reportS0501.setMonth(startMonth);
+//            reportS0501.setYear(startYear);
+//            TMonthlyQualityReportS0501 reportS05011 = tMonthlyQualityReportS0501Service.selectTMonthlyQualityReportS0501ListMonth(reportS0501);
+//            if (reportS05011 != null) {
+//                dataMap.put(startYear + "-" + startMonth, reportS05011);
+//            }
+//            if (startMonth == 12) {
+//                startMonth = 1;
+//                startYear++;
+//            } else {
+//                startMonth++;
+//            }
+//        } while (startYear != endYear || startMonth != endMonth + 1);
+
+
         if (dataMap.size() == 0) {
             return AjaxResult.success();
         }