Przeglądaj źródła

王子文 月报 Cracker Output Product

wangggziwen 2 lat temu
rodzic
commit
df85ddd3ca

+ 198 - 1
master/src/main/java/com/ruoyi/project/production/controller/TMonthlyProductionReportController.java

@@ -2,7 +2,6 @@ package com.ruoyi.project.production.controller;
 
 import java.util.List;
 
-import com.ruoyi.project.production.controller.vo.DailyAnalysisQueryVO;
 import com.ruoyi.project.production.controller.vo.MonthlyAnalysisQueryVO;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +35,204 @@ public class TMonthlyProductionReportController extends BaseController
     @Autowired
     private ITMonthlyProductionReportService tMonthlyProductionReportService;
 
+    /**
+     * 按年份查询Summary
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/summary/{year}")
+    public AjaxResult getSummaryByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectSummaryByYear(year));
+    }
+
+    /**
+     * 按年份查询KBI
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/kbi/{year}")
+    public AjaxResult getKbiByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectKbiByYear(year));
+    }
+    /**
+     * 按年份查询SCTF Utility Consumption
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/SCTFUtilityConsumption/{year}")
+    public AjaxResult getSCTFUtilityConsumptionByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectSCTFUtilityConsumptionByYear(year));
+    }
+    /**
+     * 按年份查询SUB Utility Consumption
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/SUBUtilityConsumption/{year}")
+    public AjaxResult getSUBUtilityConsumptionByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectSUBUtilityConsumptionByYear(year));
+    }
+
+    /**
+     * 按年份查询SCTU Utility Consumption
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/SCTUUtilityConsumption/{year}")
+    public AjaxResult getSCTUUtilityConsumptionByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectSCTUUtilityConsumptionByYear(year));
+    }
+
+    /**
+     * 按年份查询Chemical Consume
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/chemicalConsume/{year}")
+    public AjaxResult getChemicalConsumeByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectChemicalConsumeByYear(year));
+    }
+
+    /**
+     * 按年份查询Otherside
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/otherside/{year}")
+    public AjaxResult getOthersideByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectOthersideByYear(year));
+    }
+
+    /**
+     * 按年份查询Shoudown Hour
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/shoudownHour/{year}")
+    public AjaxResult getShoudownHourByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectShoudownHourByYear(year));
+    }
+
+    /**
+     * 按年份查询Runing Rate
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/runingRate/{year}")
+    public AjaxResult getRuningRateByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectRuningRateByYear(year));
+    }
+
+    /**
+     * 按年份查询Cost Fr Ethylene
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/costFrEthylene/{year}")
+    public AjaxResult getCostFrEthyleneByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectCostFrEthyleneByYear(year));
+    }
+
+    /**
+     * 按年份查询Plant Load
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/plantLoad/{year}")
+    public AjaxResult getPlantLoadByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectPlantLoadByYear(year));
+    }
+
+    /**
+     * 按年份查询Aromatics Energy Consumption
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/aromaticsEnergyConsumption/{year}")
+    public AjaxResult getAromaticsEnergyConsumptionByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectAromaticsEnergyConsumptionByYear(year));
+    }
+
+    /**
+     * 按年份查询Aromatics Utility Consumption
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/aromaticsUtilityConsumption/{year}")
+    public AjaxResult getAromaticsUtilityConsumptionByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectAromaticsUtilityConsumptionByYear(year));
+    }
+
+    /**
+     * 按年份查询Cracker Energy Consumption
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/crackerEnergyConsumption/{year}")
+    public AjaxResult getCrackerEnergyConsumptionByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectCrackerEnergyConsumptionByYear(year));
+    }
+
+    /**
+     * 按年份查询Cracker Utility Consumption
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/crackerUtilityConsumption/{year}")
+    public AjaxResult getCrackerUtilityConsumptionByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectCrackerUtilityConsumptionByYear(year));
+    }
+
+    /**
+     * 按年份查询Product Yield
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/productYield/{year}")
+    public AjaxResult getProductYieldByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectProductYieldByYear(year));
+    }
+
+    /**
+     * 按年份查询Eligible Product Rate
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/eligibleProductRate/{year}")
+    public AjaxResult getEligibleProductRateByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectEligibleProductRateByYear(year));
+    }
+
+    /**
+     * 按年份查询Aromatics Output Product
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/aromaticsOutputProduct/{year}")
+    public AjaxResult getAromaticsOutputProductByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectAromaticsOutputProductByYear(year));
+    }
+
+    /**
+     * 按年份查询Aromatics Raw Material
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/aromaticsRawMaterial/{year}")
+    public AjaxResult getAromaticsRawMaterialByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectAromaticsRawMaterialByYear(year));
+    }
+
+    /**
+     * 按年份查询Cracker Output Product
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:query')")
+    @GetMapping(value = "/crackerOutputProduct/{year}")
+    public AjaxResult getCrackerOutputProductByYear(@PathVariable("year") Long year)
+    {
+        return AjaxResult.success(tMonthlyProductionReportService.selectCrackerOutputProductByYear(year));
+    }
+
     /**
      * 按年份查询Cracker Raw Material
      */

+ 221 - 38
master/src/main/java/com/ruoyi/project/production/domain/TMonthlyProductionReport.java

@@ -9,7 +9,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
  * 每月生产报告对象 t_monthly_production_report
  *
  * @author ruoyi
- * @date 2022-10-31
+ * @date 2022-11-04
  */
 public class TMonthlyProductionReport extends BaseEntity
 {
@@ -50,46 +50,98 @@ public class TMonthlyProductionReport extends BaseEntity
     @Excel(name = "Cracker Raw Material C4 Raff3  fr bd and 2ph")
     private String raff3FrBdAnd2ph;
 
+    /** Cracker Raw Material C2 fr LDPE */
+    @Excel(name = "Cracker Raw Material C2 fr LDPE")
+    private String c2FrLdpe;
+
     /** Cracker Raw Material C3 fr OXO */
     @Excel(name = "Cracker Raw Material C3 fr OXO")
-    private String c2FrLdpe;
+    private String c3FrOxo;
 
     /** Cracker Raw Material Mixed C3/C4 fr BD */
     @Excel(name = "Cracker Raw Material Mixed C3/C4 fr BD")
-    private String c3FrOxo;
+    private String mixedC3C4;
 
     /** Cracker Raw Material HC9 */
     @Excel(name = "Cracker Raw Material HC9")
-    private String mixedC3C4;
+    private String hyC9;
 
     /** Cracker Raw Material Offgas fr AEU */
     @Excel(name = "Cracker Raw Material Offgas fr AEU")
-    private String hyC9;
+    private String pguOffgas;
 
     /** Cracker Raw Material wash oil */
     @Excel(name = "Cracker Raw Material wash oil")
-    private String pguOffgas;
+    private String washOil;
 
     /** Cracker Raw Material toluene */
     @Excel(name = "Cracker Raw Material toluene")
-    private String washOil;
+    private String toluene;
 
     /** Cracker Raw Material C4 Recycle(ton) */
     @Excel(name = "Cracker Raw Material C4 Recycle(ton)")
-    private String toluene;
+    private String hyC4FrR800;
 
     /** Cracker Raw Material input total */
     @Excel(name = "Cracker Raw Material input total")
-    private String hyC4FrR800;
+    private String crackerRawInput;
 
     /** Cracker Raw Material Total feed */
     @Excel(name = "Cracker Raw Material Total feed")
-    private String crackerRawInput;
-
-    /** Cracker Raw Material */
-    @Excel(name = "Cracker Raw Material")
     private String crackerRawFeed;
 
+    /** H2 */
+    @Excel(name = "H2")
+    private String h2Produced;
+
+    /** C2= */
+    @Excel(name = "C2=")
+    private String ethylenProduced;
+
+    /** C3= */
+    @Excel(name = "C3=")
+    private String propyleneProduced;
+
+    /** C3/C4 LPG */
+    @Excel(name = "C3/C4 LPG")
+    private String c3C4LpgProduced;
+
+    /** C4S */
+    @Excel(name = "C4S")
+    private String mixedC4sProduced;
+
+    /** RPG */
+    @Excel(name = "RPG")
+    private String rpgProduced;
+
+    /** PO */
+    @Excel(name = "PO")
+    private String poFluxOilProduced;
+
+    /** Naphthalene */
+    @Excel(name = "Naphthalene")
+    private String naphthaleneProduced;
+
+    /** EBO */
+    @Excel(name = "EBO")
+    private String eboProduced;
+
+    /** Cracker Residue */
+    @Excel(name = "Cracker Residue")
+    private String residueOilProduced;
+
+    /** Methane */
+    @Excel(name = "Methane")
+    private String methaneProduced;
+
+    /** OFFAGE */
+    @Excel(name = "OFFAGE")
+    private String offgasProduced;
+
+    /** output total */
+    @Excel(name = "output total")
+    private String crackerOutput;
+
     public void setId(Long id)
     {
         this.id = id;
@@ -162,15 +214,15 @@ public class TMonthlyProductionReport extends BaseEntity
     {
         return lpgToFurnace;
     }
-
-    public String getRaff3FrBdAnd2ph() {
-        return raff3FrBdAnd2ph;
-    }
-
-    public void setRaff3FrBdAnd2ph(String raff3FrBdAnd2ph) {
+    public void setRaff3FrBdAnd2ph(String raff3FrBdAnd2ph)
+    {
         this.raff3FrBdAnd2ph = raff3FrBdAnd2ph;
     }
 
+    public String getRaff3FrBdAnd2ph()
+    {
+        return raff3FrBdAnd2ph;
+    }
     public void setC2FrLdpe(String c2FrLdpe)
     {
         this.c2FrLdpe = c2FrLdpe;
@@ -261,28 +313,159 @@ public class TMonthlyProductionReport extends BaseEntity
     {
         return crackerRawFeed;
     }
+    public void setH2Produced(String h2Produced)
+    {
+        this.h2Produced = h2Produced;
+    }
+
+    public String getH2Produced()
+    {
+        return h2Produced;
+    }
+    public void setEthylenProduced(String ethylenProduced)
+    {
+        this.ethylenProduced = ethylenProduced;
+    }
+
+    public String getEthylenProduced()
+    {
+        return ethylenProduced;
+    }
+    public void setPropyleneProduced(String propyleneProduced)
+    {
+        this.propyleneProduced = propyleneProduced;
+    }
+
+    public String getPropyleneProduced()
+    {
+        return propyleneProduced;
+    }
+    public void setC3C4LpgProduced(String c3C4LpgProduced)
+    {
+        this.c3C4LpgProduced = c3C4LpgProduced;
+    }
+
+    public String getC3C4LpgProduced()
+    {
+        return c3C4LpgProduced;
+    }
+    public void setMixedC4sProduced(String mixedC4sProduced)
+    {
+        this.mixedC4sProduced = mixedC4sProduced;
+    }
+
+    public String getMixedC4sProduced()
+    {
+        return mixedC4sProduced;
+    }
+    public void setRpgProduced(String rpgProduced)
+    {
+        this.rpgProduced = rpgProduced;
+    }
+
+    public String getRpgProduced()
+    {
+        return rpgProduced;
+    }
+    public void setPoFluxOilProduced(String poFluxOilProduced)
+    {
+        this.poFluxOilProduced = poFluxOilProduced;
+    }
+
+    public String getPoFluxOilProduced()
+    {
+        return poFluxOilProduced;
+    }
+    public void setNaphthaleneProduced(String naphthaleneProduced)
+    {
+        this.naphthaleneProduced = naphthaleneProduced;
+    }
+
+    public String getNaphthaleneProduced()
+    {
+        return naphthaleneProduced;
+    }
+    public void setEboProduced(String eboProduced)
+    {
+        this.eboProduced = eboProduced;
+    }
+
+    public String getEboProduced()
+    {
+        return eboProduced;
+    }
+    public void setResidueOilProduced(String residueOilProduced)
+    {
+        this.residueOilProduced = residueOilProduced;
+    }
+
+    public String getResidueOilProduced()
+    {
+        return residueOilProduced;
+    }
+    public void setMethaneProduced(String methaneProduced)
+    {
+        this.methaneProduced = methaneProduced;
+    }
+
+    public String getMethaneProduced()
+    {
+        return methaneProduced;
+    }
+    public void setOffgasProduced(String offgasProduced)
+    {
+        this.offgasProduced = offgasProduced;
+    }
+
+    public String getOffgasProduced()
+    {
+        return offgasProduced;
+    }
+    public void setCrackerOutput(String crackerOutput)
+    {
+        this.crackerOutput = crackerOutput;
+    }
+
+    public String getCrackerOutput()
+    {
+        return crackerOutput;
+    }
 
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("reportMonth", getReportMonth())
-            .append("reportYear", getReportYear())
-            .append("nap", getNap())
-            .append("c5", getC5())
-            .append("c6C8Na", getC6C8Na())
-            .append("wisonEthane", getWisonEthane())
-            .append("lpgToFurnace", getLpgToFurnace())
-            .append("c2FrLdpe", getC2FrLdpe())
-            .append("c3FrOxo", getC3FrOxo())
-            .append("mixedC3C4", getMixedC3C4())
-            .append("hyC9", getHyC9())
-            .append("pguOffgas", getPguOffgas())
-            .append("washOil", getWashOil())
-            .append("toluene", getToluene())
-            .append("hyC4FrR800", getHyC4FrR800())
-            .append("crackerRawInput", getCrackerRawInput())
-            .append("crackerRawFeed", getCrackerRawFeed())
-            .toString();
+                .append("id", getId())
+                .append("reportMonth", getReportMonth())
+                .append("reportYear", getReportYear())
+                .append("nap", getNap())
+                .append("c5", getC5())
+                .append("c6C8Na", getC6C8Na())
+                .append("wisonEthane", getWisonEthane())
+                .append("lpgToFurnace", getLpgToFurnace())
+                .append("raff3FrBdAnd2ph", getRaff3FrBdAnd2ph())
+                .append("c2FrLdpe", getC2FrLdpe())
+                .append("c3FrOxo", getC3FrOxo())
+                .append("mixedC3C4", getMixedC3C4())
+                .append("hyC9", getHyC9())
+                .append("pguOffgas", getPguOffgas())
+                .append("washOil", getWashOil())
+                .append("toluene", getToluene())
+                .append("hyC4FrR800", getHyC4FrR800())
+                .append("crackerRawInput", getCrackerRawInput())
+                .append("crackerRawFeed", getCrackerRawFeed())
+                .append("h2Produced", getH2Produced())
+                .append("ethylenProduced", getEthylenProduced())
+                .append("propyleneProduced", getPropyleneProduced())
+                .append("c3C4LpgProduced", getC3C4LpgProduced())
+                .append("mixedC4sProduced", getMixedC4sProduced())
+                .append("rpgProduced", getRpgProduced())
+                .append("poFluxOilProduced", getPoFluxOilProduced())
+                .append("naphthaleneProduced", getNaphthaleneProduced())
+                .append("eboProduced", getEboProduced())
+                .append("residueOilProduced", getResidueOilProduced())
+                .append("methaneProduced", getMethaneProduced())
+                .append("offgasProduced", getOffgasProduced())
+                .append("crackerOutput", getCrackerOutput())
+                .toString();
     }
 }

+ 21 - 0
master/src/main/java/com/ruoyi/project/production/mapper/TMonthlyProductionReportMapper.java

@@ -7,6 +7,7 @@ import com.ruoyi.project.production.controller.vo.MonthlyAnalysisDataVO;
 import com.ruoyi.project.production.controller.vo.MonthlyAnalysisQueryVO;
 import com.ruoyi.project.production.domain.TDailyProductionReport;
 import com.ruoyi.project.production.domain.TMonthlyProductionReport;
+import com.ruoyi.project.production.service.impl.vo.CrackerRawMaterialVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -68,6 +69,26 @@ public interface TMonthlyProductionReportMapper
     public int deleteTMonthlyProductionReportByIds(Long[] ids);
 
     public List<TMonthlyProductionReport> selectCrackerRawMaterialByYear(Long year);
+    public List<TMonthlyProductionReport> selectCrackerOutputProductByYear(Long year);
+    public List<TMonthlyProductionReport> selectAromaticsRawMaterialByYear(Long year);
+    public List<TMonthlyProductionReport> selectAromaticsOutputProductByYear(Long year);
+    public List<TMonthlyProductionReport> selectEligibleProductRateByYear(Long year);
+    public List<TMonthlyProductionReport> selectProductYieldByYear(Long year);
+    public List<TMonthlyProductionReport> selectCrackerUtilityConsumptionByYear(Long year);
+    public List<TMonthlyProductionReport> selectCrackerEnergyConsumptionByYear(Long year);
+    public List<TMonthlyProductionReport> selectAromaticsUtilityConsumptionByYear(Long year);
+    public List<TMonthlyProductionReport> selectAromaticsEnergyConsumptionByYear(Long year);
+    public List<TMonthlyProductionReport> selectPlantLoadByYear(Long year);
+    public List<TMonthlyProductionReport> selectCostFrEthyleneByYear(Long year);
+    public List<TMonthlyProductionReport> selectRuningRateByYear(Long year);
+    public List<TMonthlyProductionReport> selectShoudownHourByYear(Long year);
+    public List<TMonthlyProductionReport> selectOthersideByYear(Long year);
+    public List<TMonthlyProductionReport> selectChemicalConsumeByYear(Long year);
+    public List<TMonthlyProductionReport> selectSCTUUtilityConsumptionByYear(Long year);
+    public List<TMonthlyProductionReport> selectSUBUtilityConsumptionByYear(Long year);
+    public List<TMonthlyProductionReport> selectSCTFUtilityConsumptionByYear(Long year);
+    public List<TMonthlyProductionReport> selectKbiByYear(Long year);
+    public List<TMonthlyProductionReport> selectSummarByYear(Long year);
 
     @Select(" select d.${item} as valueData, concat(concat(d.REPORT_YEAR, '-'), d.REPORT_MONTH) as dateData, " +
             " d.REPORT_MONTH, d.REPORT_YEAR from t_monthly_production_report d " +

+ 20 - 0
master/src/main/java/com/ruoyi/project/production/service/ITMonthlyProductionReportService.java

@@ -65,6 +65,26 @@ public interface ITMonthlyProductionReportService
     public int deleteTMonthlyProductionReportById(Long id);
 
     public List<CrackerRawMaterialVO> selectCrackerRawMaterialByYear(Long year);
+    public List<CrackerRawMaterialVO> selectCrackerOutputProductByYear(Long year);
+    public List<CrackerRawMaterialVO> selectAromaticsRawMaterialByYear(Long year);
+    public List<CrackerRawMaterialVO> selectAromaticsOutputProductByYear(Long year);
+    public List<CrackerRawMaterialVO> selectEligibleProductRateByYear(Long year);
+    public List<CrackerRawMaterialVO> selectProductYieldByYear(Long year);
+    public List<CrackerRawMaterialVO> selectCrackerUtilityConsumptionByYear(Long year);
+    public List<CrackerRawMaterialVO> selectCrackerEnergyConsumptionByYear(Long year);
+    public List<CrackerRawMaterialVO> selectAromaticsUtilityConsumptionByYear(Long year);
+    public List<CrackerRawMaterialVO> selectAromaticsEnergyConsumptionByYear(Long year);
+    public List<CrackerRawMaterialVO> selectPlantLoadByYear(Long year);
+    public List<CrackerRawMaterialVO> selectCostFrEthyleneByYear(Long year);
+    public List<CrackerRawMaterialVO> selectRuningRateByYear(Long year);
+    public List<CrackerRawMaterialVO> selectShoudownHourByYear(Long year);
+    public List<CrackerRawMaterialVO> selectOthersideByYear(Long year);
+    public List<CrackerRawMaterialVO> selectChemicalConsumeByYear(Long year);
+    public List<CrackerRawMaterialVO> selectSCTUUtilityConsumptionByYear(Long year);
+    public List<CrackerRawMaterialVO> selectSUBUtilityConsumptionByYear(Long year);
+    public List<CrackerRawMaterialVO> selectSCTFUtilityConsumptionByYear(Long year);
+    public List<CrackerRawMaterialVO> selectKbiByYear(Long year);
+    public List<CrackerRawMaterialVO> selectSummaryByYear(Long year);
 
     List<MonthlyAnalysisDataVO> selectAnalysisData(MonthlyAnalysisQueryVO monthlyAnalysisQueryVO);
 }

+ 233 - 0
master/src/main/java/com/ruoyi/project/production/service/impl/TMonthlyProductionReportServiceImpl.java

@@ -273,6 +273,239 @@ public class TMonthlyProductionReportServiceImpl implements ITMonthlyProductionR
         }
         return crackerRawMaterialVOs;
     }
+    @Override
+    public List<CrackerRawMaterialVO> selectCrackerOutputProductByYear(Long year) {
+        // 当前日期
+        Date currentDate = new Date();
+        // 当前年份
+        Long currentYear = Long.parseLong(currentDate.getYear() + 1900 + "");
+        // 当前月份
+        Long currentMonth = Long.parseLong(currentDate.getMonth() + 1 + "");
+        // 从数据库中查出的当前year的月报数据集合,每个元素对应当前year某个月的数据
+        List<TMonthlyProductionReport> tMonthlyProductionReports = tMonthlyProductionReportMapper.selectCrackerOutputProductByYear(year);
+        // 前端月报数据集合,每个元素对应当前某个指标的title、unit、1~12月的数据以及年度汇总数据
+        List<CrackerRawMaterialVO> crackerRawMaterialVOs = new ArrayList<>();
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("Cracker Output Product", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("H2", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("C2=", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("C3=", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("C3/C4 LPG", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("C4'S", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("RPG", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("PO", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("Naphthalene", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("EBO", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("Cracker Residue ", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("Methane", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("OFFAGE", "t"));
+        crackerRawMaterialVOs.add(new CrackerRawMaterialVO("output total", "t"));
+        // 遍历从数据库中查出的月报数据集合,结果为0~12条数据不等
+        for (int i = 0; i < tMonthlyProductionReports.size(); i++) {
+            TMonthlyProductionReport tMonthlyProductionReport = tMonthlyProductionReports.get(i);
+            String h2Produced = tMonthlyProductionReport.getH2Produced();
+            String ethylenProduced = tMonthlyProductionReport.getEthylenProduced();
+            String propyleneProduced = tMonthlyProductionReport.getPropyleneProduced();
+            String c3C4LpgProduced = tMonthlyProductionReport.getC3C4LpgProduced();
+            String mixedC4sProduced = tMonthlyProductionReport.getMixedC4sProduced();
+            String rpgProduced = tMonthlyProductionReport.getRpgProduced();
+            String poFluxOilProduced = tMonthlyProductionReport.getPoFluxOilProduced();
+            String naphthaleneProduced = tMonthlyProductionReport.getNaphthaleneProduced();
+            String eboProduced = tMonthlyProductionReport.getEboProduced();
+            String residueOilProduced = tMonthlyProductionReport.getResidueOilProduced();
+            String methaneProduced = tMonthlyProductionReport.getMethaneProduced();
+            String offgasProduced = tMonthlyProductionReport.getOffgasProduced();
+            String crackerOutput = tMonthlyProductionReport.getCrackerOutput();
+            // 前端数据集合的class
+            Class clazz = null;
+            // 当前元素调用的set方法
+            Method method = null;
+            try {
+                Long reportMonth = tMonthlyProductionReport.getReportMonth();   // 当前元素的所属月份
+                Long reportYear = tMonthlyProductionReport.getReportYear();     // 当前元素的所属年份
+                clazz = Class.forName("com.ruoyi.project.production.service.impl.vo.CrackerRawMaterialVO");
+                switch (reportMonth.toString()) {
+                    case "1":   // 一月
+                        method = clazz.getDeclaredMethod("setJan", String.class);
+                        break;
+                    case "2":   // 二月
+                        method = clazz.getDeclaredMethod("setFeb", String.class);
+                        break;
+                    case "3":   // 三月
+                        method = clazz.getDeclaredMethod("setMar", String.class);
+                        break;
+                    case "4":   // 四月
+                        method = clazz.getDeclaredMethod("setApr", String.class);
+                        break;
+                    case "5":   // 五月
+                        method = clazz.getDeclaredMethod("setMay", String.class);
+                        break;
+                    case "6":   // 六月
+                        method = clazz.getDeclaredMethod("setJun", String.class);
+                        break;
+                    case "7":   // 七月
+                        method = clazz.getDeclaredMethod("setJul", String.class);
+                        break;
+                    case "8":   // 八月
+                        method = clazz.getDeclaredMethod("setAug", String.class);
+                        break;
+                    case "9":   // 九月
+                        method = clazz.getDeclaredMethod("setSep", String.class);
+                        break;
+                    case "10":   // 十月
+                        method = clazz.getDeclaredMethod("setOct", String.class);
+                        break;
+                    case "11":   // 十一月
+                        method = clazz.getDeclaredMethod("setNov", String.class);
+                        break;
+                    case "12":   // 十二月
+                        method = clazz.getDeclaredMethod("setDec", String.class);
+                        break;
+                }
+                // 按照当前元素的所属月份调取相应set方法
+                method.invoke(crackerRawMaterialVOs.get(0), crackerOutput);
+                method.invoke(crackerRawMaterialVOs.get(1), h2Produced);
+                method.invoke(crackerRawMaterialVOs.get(2), ethylenProduced);
+                method.invoke(crackerRawMaterialVOs.get(3), propyleneProduced);
+                method.invoke(crackerRawMaterialVOs.get(4), c3C4LpgProduced);
+                method.invoke(crackerRawMaterialVOs.get(5), mixedC4sProduced);
+                method.invoke(crackerRawMaterialVOs.get(6), rpgProduced);
+                method.invoke(crackerRawMaterialVOs.get(7), poFluxOilProduced);
+                method.invoke(crackerRawMaterialVOs.get(8), naphthaleneProduced);
+                method.invoke(crackerRawMaterialVOs.get(9), eboProduced);
+                method.invoke(crackerRawMaterialVOs.get(10), residueOilProduced);
+                method.invoke(crackerRawMaterialVOs.get(11), methaneProduced);
+                method.invoke(crackerRawMaterialVOs.get(12), offgasProduced);
+                method.invoke(crackerRawMaterialVOs.get(13), crackerOutput);
+                // 当前年份=所属年份,当前月份=所属月份
+                if (currentMonth.equals(reportMonth) && currentYear.equals(reportYear)) {
+                    crackerRawMaterialVOs.get(0).setCurrently(crackerOutput);
+                    crackerRawMaterialVOs.get(1).setCurrently(h2Produced);
+                    crackerRawMaterialVOs.get(2).setCurrently(ethylenProduced);
+                    crackerRawMaterialVOs.get(3).setCurrently(propyleneProduced);
+                    crackerRawMaterialVOs.get(4).setCurrently(c3C4LpgProduced);
+                    crackerRawMaterialVOs.get(5).setCurrently(mixedC4sProduced);
+                    crackerRawMaterialVOs.get(6).setCurrently(rpgProduced);
+                    crackerRawMaterialVOs.get(7).setCurrently(poFluxOilProduced);
+                    crackerRawMaterialVOs.get(8).setCurrently(naphthaleneProduced);
+                    crackerRawMaterialVOs.get(9).setCurrently(eboProduced);
+                    crackerRawMaterialVOs.get(10).setCurrently(residueOilProduced);
+                    crackerRawMaterialVOs.get(11).setCurrently(methaneProduced);
+                    crackerRawMaterialVOs.get(12).setCurrently(offgasProduced);
+                    crackerRawMaterialVOs.get(13).setCurrently(crackerOutput);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        // 遍历前端月报数据集合,计算total的值1~12月之和)
+        for (int i = 0; i < crackerRawMaterialVOs.size(); i++) {
+            CrackerRawMaterialVO crackerRawMaterialVO = crackerRawMaterialVOs.get(i);
+            BigDecimal total = new BigDecimal("0");
+            String janStr = crackerRawMaterialVO.getJan();
+            String febStr = crackerRawMaterialVO.getFeb();
+            String marStr = crackerRawMaterialVO.getMar();
+            String aprStr = crackerRawMaterialVO.getApr();
+            String mayStr = crackerRawMaterialVO.getMay();
+            String junStr = crackerRawMaterialVO.getJun();
+            String julStr = crackerRawMaterialVO.getJul();
+            String augStr = crackerRawMaterialVO.getAug();
+            String sepStr = crackerRawMaterialVO.getSep();
+            String octStr = crackerRawMaterialVO.getOct();
+            String novStr = crackerRawMaterialVO.getNov();
+            String decStr = crackerRawMaterialVO.getDec();
+            BigDecimal jan = new BigDecimal(janStr == null ? "0" : janStr);
+            BigDecimal feb = new BigDecimal(febStr == null ? "0" : febStr);
+            BigDecimal mar = new BigDecimal(marStr == null ? "0" : marStr);
+            BigDecimal apr = new BigDecimal(aprStr == null ? "0" : aprStr);
+            BigDecimal may = new BigDecimal(mayStr == null ? "0" : mayStr);
+            BigDecimal jun = new BigDecimal(junStr == null ? "0" : junStr);
+            BigDecimal jul = new BigDecimal(julStr == null ? "0" : julStr);
+            BigDecimal aug = new BigDecimal(augStr == null ? "0" : augStr);
+            BigDecimal sep = new BigDecimal(sepStr == null ? "0" : sepStr);
+            BigDecimal oct = new BigDecimal(octStr == null ? "0" : octStr);
+            BigDecimal nov = new BigDecimal(novStr == null ? "0" : novStr);
+            BigDecimal dec = new BigDecimal(decStr == null ? "0" : decStr);
+            total = jan.add(feb).add(mar).add(apr).add(may).add(jun).add(jul).add(aug).add(sep).add(oct).add(nov).add(dec);
+            crackerRawMaterialVO.setTotal(total.toString());
+        }
+        return crackerRawMaterialVOs;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectAromaticsRawMaterialByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectAromaticsOutputProductByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectEligibleProductRateByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectProductYieldByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectCrackerUtilityConsumptionByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectCrackerEnergyConsumptionByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectAromaticsUtilityConsumptionByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectAromaticsEnergyConsumptionByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectPlantLoadByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectCostFrEthyleneByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectRuningRateByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectShoudownHourByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectOthersideByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectChemicalConsumeByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectSCTUUtilityConsumptionByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectSUBUtilityConsumptionByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectSCTFUtilityConsumptionByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectKbiByYear(Long year) {
+        return  null;
+    }
+    @Override
+    public List<CrackerRawMaterialVO> selectSummaryByYear(Long year) {
+        return  null;
+    }
 
     @Override
     public List<MonthlyAnalysisDataVO> selectAnalysisData(MonthlyAnalysisQueryVO monthlyAnalysisQueryVO) {

+ 55 - 7
master/src/main/java/com/ruoyi/project/production/service/impl/thread/SyncMonthlyThread.java

@@ -4,9 +4,6 @@ import com.ruoyi.project.production.domain.TDailyProductionReport;
 import com.ruoyi.project.production.domain.TMonthlyProductionReport;
 import com.ruoyi.project.production.mapper.TDailyProductionReportMapper;
 import com.ruoyi.project.production.mapper.TMonthlyProductionReportMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Repository;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -16,7 +13,6 @@ import java.util.Date;
  * @email: wangggziwen@163.com
  * @datetime: 2022/11/3 13:44
  */
-@Component
 public class SyncMonthlyThread extends Thread {
 
     private Date reportDate;
@@ -93,7 +89,8 @@ public class SyncMonthlyThread extends Thread {
         monthly.setC6C8Na(c6C8Na.toString());
         monthly.setWisonEthane(wisonEthane.toString());
         monthly.setLpgToFurnace(lpgToFurnace.toString());
-        BigDecimal raff3FrBdAnd2ph = raff3FrBd.add(raffinate2pFr2ph);
+        BigDecimal raff3FrBdAnd2ph = new BigDecimal("0");
+        raff3FrBdAnd2ph = raff3FrBdAnd2ph.add(raff3FrBd).add(raffinate2pFr2ph);
         monthly.setRaff3FrBdAnd2ph(raff3FrBdAnd2ph.toString());
         monthly.setC2FrLdpe(c2FrLdpe.toString());
         monthly.setC3FrOxo(c3FrOxo.toString());
@@ -103,10 +100,61 @@ public class SyncMonthlyThread extends Thread {
         monthly.setWashOil(toluene.toString());
         monthly.setToluene(washOil.toString());
         monthly.setHyC4FrR800(hyC4FrR800.toString());
-        BigDecimal crackerRawFeed = nap.add(c5).add(c6C8Na).add(wisonEthane).add(lpgToFurnace).add(raff3FrBdAnd2ph).add(hyC4FrR800);
-        BigDecimal crackerRawInput = crackerRawFeed.add(c2FrLdpe).add(c3FrOxo).add(mixedC3C4).add(hyC9).add(pguOffgas).add(washOil).add(toluene);
+        BigDecimal crackerRawFeed = new BigDecimal("0");
+        BigDecimal crackerRawInput = new BigDecimal("0");
+        crackerRawFeed = crackerRawFeed.add(nap).add(c5).add(c6C8Na).add(wisonEthane)
+                .add(lpgToFurnace).add(raff3FrBdAnd2ph).add(hyC4FrR800);
+        crackerRawInput = crackerRawInput.add(crackerRawFeed).add(c2FrLdpe).add(c3FrOxo)
+                .add(mixedC3C4).add(hyC9).add(pguOffgas).add(washOil).add(toluene);
         monthly.setCrackerRawInput(crackerRawInput.toString());
         monthly.setCrackerRawFeed(crackerRawFeed.toString());
+
+        String h2ProducedStr = daily.getH2Produced();
+        String ethylenProducedStr = daily.getEthylenProduced();
+        String propyleneProducedStr = daily.getPropyleneProduced();
+        String c3LpgProducedStr = daily.getC3LpgProduced();
+        String c4LpgProducedStr = daily.getC4LpgProduced();
+        String mixedC4sProducedStr = daily.getMixedC4sProduced();
+        String rpgProducedStr = daily.getRpgProduced();
+        String poFluxOilProducedStr = daily.getPoFluxOilProduced();
+        String naphthaleneProducedStr = daily.getNaphthaleneProduced();
+        String eboProducedStr = daily.getEboProduced();
+        String residueOilProducedStr = daily.getResidueOilProduced();
+        String methaneProducedStr = daily.getMethaneProduced();
+        String offgasProducedStr = daily.getOffgasProduced();
+        BigDecimal h2Produced = new BigDecimal(h2ProducedStr == null ? "0" : h2ProducedStr);
+        BigDecimal ethylenProduced = new BigDecimal(ethylenProducedStr == null ? "0" : ethylenProducedStr);
+        BigDecimal propyleneProduced = new BigDecimal(propyleneProducedStr == null ? "0" : propyleneProducedStr);
+        BigDecimal c3LpgProduced = new BigDecimal(c3LpgProducedStr == null ? "0" : c3LpgProducedStr);
+        BigDecimal c4LpgProduced = new BigDecimal(c4LpgProducedStr == null ? "0" : c4LpgProducedStr);
+        BigDecimal mixedC4sProduced = new BigDecimal(mixedC4sProducedStr == null ? "0" : mixedC4sProducedStr);
+        BigDecimal rpgProduced = new BigDecimal(rpgProducedStr == null ? "0" : rpgProducedStr);
+        BigDecimal poFluxOilProduced = new BigDecimal(poFluxOilProducedStr == null ? "0" : poFluxOilProducedStr);
+        BigDecimal naphthaleneProduced = new BigDecimal(naphthaleneProducedStr == null ? "0" : naphthaleneProducedStr);
+        BigDecimal eboProduced = new BigDecimal(eboProducedStr == null ? "0" : eboProducedStr);
+        BigDecimal residueOilProduced = new BigDecimal(residueOilProducedStr == null ? "0" : residueOilProducedStr);
+        BigDecimal methaneProduced = new BigDecimal(methaneProducedStr == null ? "0" : methaneProducedStr);
+        BigDecimal offgasProduced = new BigDecimal(offgasProducedStr == null ? "0" : offgasProducedStr);
+        monthly.setH2Produced(h2Produced.toString());
+        monthly.setEthylenProduced(ethylenProduced.toString());
+        monthly.setPropyleneProduced(propyleneProduced.toString());
+        BigDecimal c3C4LpgProduced = new BigDecimal("0");
+        c3C4LpgProduced = c3C4LpgProduced.add(c3LpgProduced).add(c4LpgProduced);
+        monthly.setC3C4LpgProduced(c3C4LpgProduced.toString());
+        monthly.setMixedC4sProduced(mixedC4sProduced.toString());
+        monthly.setRpgProduced(rpgProduced.toString());
+        monthly.setPoFluxOilProduced(poFluxOilProduced.toString());
+        monthly.setNaphthaleneProduced(naphthaleneProduced.toString());
+        monthly.setEboProduced(eboProduced.toString());
+        monthly.setResidueOilProduced(residueOilProduced.toString());
+        monthly.setMethaneProduced(methaneProduced.toString());
+        monthly.setOffgasProduced(offgasProduced.toString());
+        BigDecimal crackerOutput = new BigDecimal("0");
+        crackerOutput = crackerOutput.add(h2Produced).add(ethylenProduced).add(propyleneProduced).add(c3LpgProduced)
+                .add(c4LpgProduced).add(mixedC4sProduced).add(rpgProduced).add(poFluxOilProduced).add(naphthaleneProduced)
+                .add(eboProduced).add(residueOilProduced).add(methaneProduced).add(offgasProduced);
+        monthly.setCrackerOutput(crackerOutput.toString());
+
         // 查询年份=reportYear,月份=reportMonth的月报数据
         int count = tMonthlyProductionReportMapper.selectTMonthlyProductionReportCountByDate(reportYear, reportMonth);
         if (count == 0) {   // 新增月报数据

+ 17 - 4
master/src/main/resources/mybatis/production/TDailyProductionReportMapper.xml

@@ -625,7 +625,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         from t_daily_production_report d
     </sql>
 
-    <select id="selectDailySum" parameterType="int" resultMap="TDailyProductionReportResult">
+    <select id="selectDailySum" parameterType="int" resultType="TDailyProductionReport">
         select
         sum(d.NAP) as nap,
         sum(d.C5) as c5,
@@ -639,9 +639,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         sum(d.MIXED_C3_C4) as mixedC3C4,
         sum(d.HY_C9) as hyC9,
         sum(d.PGU_OFFGAS) as pguOffgas,
-        sum(d.WASH_OIL) washOil,
-        sum(d.TOLUENE) toluene,
-        sum(d.HY_C4_FR_R800) as hyC4FrR800
+        sum(d.WASH_OIL) as washOil,
+        sum(d.TOLUENE) as toluene,
+        sum(d.HY_C4_FR_R800) as hyC4FrR800,
+        sum(d.H2_PRODUCED) as h2Produced,
+        sum(d.ETHYLEN_PRODUCED) as ethylenProduced,
+        sum(d.PROPYLENE_PRODUCED) as propyleneProduced,
+        sum(d.C3_LPG_PRODUCED) as c3LpgProduced,
+        sum(d.C4_LPG_PRODUCED) as c4LpgProduced,
+        sum(d.MIXED_C4S_PRODUCED) as mixedC4sProduced,
+        sum(d.RPG_PRODUCED) as rpgProduced,
+        sum(d.PO_FLUX_OIL_PRODUCED) as poFluxOilProduced,
+        sum(d.NAPHTHALENE_PRODUCED) as naphthaleneProduced,
+        sum(d.EBO_PRODUCED) as eboProduced,
+        sum(d.RESIDUE_OIL_PRODUCED) as residueOilProduced,
+        sum(d.METHANE_PRODUCED) as methaneProduced,
+        sum(d.OFFGAS_PRODUCED) as offgasProduced
         from T_DAILY_PRODUCTION_REPORT d
         where extract(year from d.REPORT_DATE) = #{reportYear}
         and extract(month from d.REPORT_DATE) = #{reportMonth}

+ 84 - 5
master/src/main/resources/mybatis/production/TMonthlyProductionReportMapper.xml

@@ -24,18 +24,58 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="hyC4FrR800"           column="hy_c4_fr_r800"    />
         <result property="crackerRawInput"      column="cracker_raw_input"    />
         <result property="crackerRawFeed"       column="cracker_raw_feed"    />
-        <result property="deptName"             column="dept_name" />
+        <result property="h2Produced"           column="h2_produced"    />
+        <result property="ethylenProduced"      column="ethylen_produced"    />
+        <result property="propyleneProduced"    column="propylene_produced"    />
+        <result property="c3C4LpgProduced"      column="c3_c4_lpg_produced"    />
+        <result property="mixedC4sProduced"     column="mixed_c4s_produced"    />
+        <result property="rpgProduced"          column="rpg_produced"    />
+        <result property="poFluxOilProduced"    column="po_flux_oil_produced"    />
+        <result property="naphthaleneProduced"  column="naphthalene_produced"    />
+        <result property="eboProduced"          column="ebo_produced"    />
+        <result property="residueOilProduced"   column="residue_oil_produced"    />
+        <result property="methaneProduced"      column="methane_produced"    />
+        <result property="offgasProduced"       column="offgas_produced"    />
+        <result property="crackerOutput"        column="cracker_output"    />
     </resultMap>
 
     <select id="selectCrackerRawMaterialByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult">
         select
-          d.id, d.report_month, d.report_year, d.nap, d.c5, d.c6_c8_na, d.wison_ethane, d.lpg_to_furnace,
-          d.raff3_fr_bd_and_2ph, d.c2_fr_ldpe, d.c3_fr_oxo, d.mixed_c3_c4, d.hy_c9, d.pgu_offgas,
-          d.wash_oil, d.toluene, d.hy_c4_fr_r800, d.cracker_raw_input, d.cracker_raw_feed
+            d.id, d.report_month, d.report_year, d.nap, d.c5, d.c6_c8_na, d.wison_ethane, d.lpg_to_furnace,
+            d.raff3_fr_bd_and_2ph, d.c2_fr_ldpe, d.c3_fr_oxo, d.mixed_c3_c4, d.hy_c9, d.pgu_offgas,
+            d.wash_oil, d.toluene, d.hy_c4_fr_r800, d.cracker_raw_input, d.cracker_raw_feed
         from
-          t_monthly_production_report d
+            t_monthly_production_report d
         where d.report_year = #{year}
     </select>
+    <select id="selectCrackerOutputProductByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult">
+        select
+            d.id, d.report_month, d.report_year, d.H2_PRODUCED, d.ETHYLEN_PRODUCED, d.PROPYLENE_PRODUCED, d.C3_C4_LPG_PRODUCED, d.MIXED_C4S_PRODUCED,
+            d.RPG_PRODUCED, d.PO_FLUX_OIL_PRODUCED, d.NAPHTHALENE_PRODUCED, d.EBO_PRODUCED, d.RESIDUE_OIL_PRODUCED,
+            d.METHANE_PRODUCED, d.OFFGAS_PRODUCED, d.CRACKER_OUTPUT
+        from
+            t_monthly_production_report d
+        where d.report_year = #{year}
+    </select>
+    <select id="selectAromaticsRawMaterialByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectAromaticsOutputProductByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectEligibleProductRateByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectProductYieldByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectCrackerUtilityConsumptionByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectCrackerEnergyConsumptionByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectAromaticsUtilityConsumptionByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectAromaticsEnergyConsumptionByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectPlantLoadByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectCostFrEthyleneByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectRuningRateByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectShoudownHourByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectOthersideByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectChemicalConsumeByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectSCTUUtilityConsumptionByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectSUBUtilityConsumptionByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectSCTFUtilityConsumptionByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectKbiByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectSummaryByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
 
     <select id="selectTMonthlyProductionReportCountByDate" parameterType="int" resultType="int">
         select count(id)
@@ -68,6 +108,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hyC4FrR800 != null">hy_c4_fr_r800,</if>
             <if test="crackerRawInput != null">cracker_raw_input,</if>
             <if test="crackerRawFeed != null">cracker_raw_feed,</if>
+            <if test="h2Produced != null">h2_produced,</if>
+            <if test="ethylenProduced != null">ethylen_produced,</if>
+            <if test="propyleneProduced != null">propylene_produced,</if>
+            <if test="c3C4LpgProduced != null">c3_c4_lpg_produced,</if>
+            <if test="mixedC4sProduced != null">mixed_c4s_produced,</if>
+            <if test="rpgProduced != null">rpg_produced,</if>
+            <if test="poFluxOilProduced != null">po_flux_oil_produced,</if>
+            <if test="naphthaleneProduced != null">naphthalene_produced,</if>
+            <if test="eboProduced != null">ebo_produced,</if>
+            <if test="residueOilProduced != null">residue_oil_produced,</if>
+            <if test="methaneProduced != null">methane_produced,</if>
+            <if test="offgasProduced != null">offgas_produced,</if>
+            <if test="crackerOutput != null">cracker_output,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -89,6 +142,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hyC4FrR800 != null">#{hyC4FrR800},</if>
             <if test="crackerRawInput != null">#{crackerRawInput},</if>
             <if test="crackerRawFeed != null">#{crackerRawFeed},</if>
+            <if test="h2Produced != null">#{h2Produced},</if>
+            <if test="ethylenProduced != null">#{ethylenProduced},</if>
+            <if test="propyleneProduced != null">#{propyleneProduced},</if>
+            <if test="c3C4LpgProduced != null">#{c3C4LpgProduced},</if>
+            <if test="mixedC4sProduced != null">#{mixedC4sProduced},</if>
+            <if test="rpgProduced != null">#{rpgProduced},</if>
+            <if test="poFluxOilProduced != null">#{poFluxOilProduced},</if>
+            <if test="naphthaleneProduced != null">#{naphthaleneProduced},</if>
+            <if test="eboProduced != null">#{eboProduced},</if>
+            <if test="residueOilProduced != null">#{residueOilProduced},</if>
+            <if test="methaneProduced != null">#{methaneProduced},</if>
+            <if test="offgasProduced != null">#{offgasProduced},</if>
+            <if test="crackerOutput != null">#{crackerOutput},</if>
         </trim>
     </insert>
 
@@ -111,6 +177,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="hyC4FrR800 != null">hy_c4_fr_r800 = #{hyC4FrR800},</if>
             <if test="crackerRawInput != null">cracker_raw_input = #{crackerRawInput},</if>
             <if test="crackerRawFeed != null">cracker_raw_feed = #{crackerRawFeed},</if>
+            <if test="h2Produced != null">h2_produced = #{h2Produced},</if>
+            <if test="ethylenProduced != null">ethylen_produced = #{ethylenProduced},</if>
+            <if test="propyleneProduced != null">propylene_produced = #{propyleneProduced},</if>
+            <if test="c3C4LpgProduced != null">c3_c4_lpg_produced = #{c3C4LpgProduced},</if>
+            <if test="mixedC4sProduced != null">mixed_c4s_produced = #{mixedC4sProduced},</if>
+            <if test="rpgProduced != null">rpg_produced = #{rpgProduced},</if>
+            <if test="poFluxOilProduced != null">po_flux_oil_produced = #{poFluxOilProduced},</if>
+            <if test="naphthaleneProduced != null">naphthalene_produced = #{naphthaleneProduced},</if>
+            <if test="eboProduced != null">ebo_produced = #{eboProduced},</if>
+            <if test="residueOilProduced != null">residue_oil_produced = #{residueOilProduced},</if>
+            <if test="methaneProduced != null">methane_produced = #{methaneProduced},</if>
+            <if test="offgasProduced != null">offgas_produced = #{offgasProduced},</if>
+            <if test="crackerOutput != null">cracker_output = #{crackerOutput},</if>
         </trim>
         where report_month = #{reportMonth} and report_year = #{reportYear}
     </update>

+ 160 - 0
ui/src/api/production/monthly.js

@@ -1,5 +1,165 @@
 import request from '@/utils/request'
 
+// 按年份查询Summary
+export function getSummary(year) {
+  return request({
+    url: '/production/monthly/summary/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询KBI
+export function getKbi(year) {
+  return request({
+    url: '/production/monthly/kbi/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询SCTF Utility Consumption
+export function getSCTFUtilityConsumption(year) {
+  return request({
+    url: '/production/monthly/SCTFUtilityConsumption/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询SUB Utility Consumption
+export function getSUBUtilityConsumption(year) {
+  return request({
+    url: '/production/monthly/SUBUtilityConsumption/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询SCTU Utility Consumption
+export function getSCTUUtilityConsumption(year) {
+  return request({
+    url: '/production/monthly/SCTUUtilityConsumption/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Chemical Consume
+export function getChemicalConsume(year) {
+  return request({
+    url: '/production/monthly/chemicalConsume/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Otherside
+export function getOtherside(year) {
+  return request({
+    url: '/production/monthly/otherside/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Shoudown Hour
+export function getShoudownHour(year) {
+  return request({
+    url: '/production/monthly/shoudownHour/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Runing Rate
+export function getRuningRate(year) {
+  return request({
+    url: '/production/monthly/runingRate/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Cost Fr Ethylene
+export function getCostFrEthylene(year) {
+  return request({
+    url: '/production/monthly/costFrEthylene/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Plant Load
+export function getPlantLoad(year) {
+  return request({
+    url: '/production/monthly/plantLoad/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Aromatics Energy Consumption
+export function getAromaticsEnergyConsumption(year) {
+  return request({
+    url: '/production/monthly/aromaticsEnergyConsumption/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Aromatics Utility Consumption
+export function getAromaticsUtilityConsumption(year) {
+  return request({
+    url: '/production/monthly/aromaticsUtilityConsumption/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Cracker Energy Consumption
+export function getCrackerEnergyConsumption(year) {
+  return request({
+    url: '/production/monthly/crackerEnergyConsumption/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Cracker Utility Consumption
+export function getCrackerUtilityConsumption(year) {
+  return request({
+    url: '/production/monthly/crackerUtilityConsumption/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Product Yield
+export function getProductYield(year) {
+  return request({
+    url: '/production/monthly/productYield/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Eligible Product Rate
+export function getEligibleProductRate(year) {
+  return request({
+    url: '/production/monthly/eligibleProductRate/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Aromatics Output Product
+export function getAromaticsOutputProduct(year) {
+  return request({
+    url: '/production/monthly/aromaticsOutputProduct/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Aromatics Raw Material
+export function getAromaticsRawMaterial(year) {
+  return request({
+    url: '/production/monthly/aromaticsRawMaterial/' + year,
+    method: 'get'
+  })
+}
+
+// 按年份查询Cracker Output Product
+export function getCrackerOutputProduct(year) {
+  return request({
+    url: '/production/monthly/crackerOutputProduct/' + year,
+    method: 'get'
+  })
+}
+
 // 按年份查询Cracker Raw Material
 export function getCrackerRawMaterial(year) {
   return request({

+ 0 - 1
ui/src/views/production/daily/index.vue

@@ -4313,7 +4313,6 @@ export default {
     getReport() {
       this.loading = true;
       listReport(this.queryParams).then(response => {
-        console.log(response.rows);
         if (response.rows.length != 0) {
           this.lastSelectedDate = this.queryParams.reportDate;
           this.reportData = response.rows[0];

+ 172 - 36
ui/src/views/production/monthly/index.vue

@@ -48,7 +48,11 @@
     </el-table>
     <el-table border :data="tableCrackerOutputProduct" style="width: 100%;">
       <el-table-column label="Cracker Output Product">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -68,7 +72,11 @@
     </el-table>
     <el-table border :data="tableAromaticsRawMaterial" style="width: 100%;">
       <el-table-column label="Aromatics Raw Material">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -88,7 +96,11 @@
     </el-table>
     <el-table border :data="tableAromaticsOutputProduct" style="width: 100%;">
       <el-table-column label="Aromatics Output Product">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -108,7 +120,11 @@
     </el-table>
     <el-table border :data="tableEligibleProductRate" style="width: 100%;">
       <el-table-column label="Eligible Product rate">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -128,7 +144,11 @@
     </el-table>
     <el-table border :data="tableProductYield" style="width: 100%;">
       <el-table-column label="Product yield">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -148,7 +168,11 @@
     </el-table>
     <el-table border :data="tableCrackerUtilityConsumption" style="width: 100%;">
       <el-table-column label="Cracker Utility Consumption">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -168,7 +192,11 @@
     </el-table>
     <el-table border :data="tableCrackerEnergyConsumption" style="width: 100%;">
       <el-table-column label="Cracker Energy Consumption">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -188,7 +216,11 @@
     </el-table>
     <el-table border :data="tableAromaticsUtilityConsumption" style="width: 100%;">
       <el-table-column label="Aromatics Utility Consumption">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -208,7 +240,11 @@
     </el-table>
     <el-table border :data="tableAromaticsEnergyConsumption" style="width: 100%;">
       <el-table-column label="Cracker Aromatics Consumption">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -228,7 +264,11 @@
     </el-table>
     <el-table border :data="tablePlantLoad" style="width: 100%;">
       <el-table-column label="Plant load">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -248,7 +288,11 @@
     </el-table>
     <el-table border :data="tableCostFrEthylene" style="width: 100%;">
       <el-table-column label="Cost fr Ethylene">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -268,7 +312,11 @@
     </el-table>
     <el-table border :data="tableRuningRate" style="width: 100%;">
       <el-table-column label="Runing Rate">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -288,7 +336,11 @@
     </el-table>
     <el-table border :data="tableShoudownHour" style="width: 100%;">
       <el-table-column label="Shoudown Hour">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -308,7 +360,11 @@
     </el-table>
     <el-table border :data="tableOtherside" style="width: 100%;">
       <el-table-column label="Otherside">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -328,7 +384,11 @@
     </el-table>
     <el-table border :data="tableChemicalConsume" style="width: 100%;">
       <el-table-column label="chemical consume">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -348,7 +408,11 @@
     </el-table>
     <el-table border :data="tableSCTUUtilityConsumption" style="width: 100%;">
       <el-table-column label="SCTU Utility Consumption">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -368,7 +432,11 @@
     </el-table>
     <el-table border :data="tableSUBUtilityConsumption" style="width: 100%;">
       <el-table-column label="SUB Utility Consumption">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -388,7 +456,11 @@
     </el-table>
     <el-table border :data="tableSCTFUtilityConsumption" style="width: 100%;">
       <el-table-column label="SCTF Utility Consumption">
-        <el-table-column prop="title" label=""></el-table-column>
+        <el-table-column width="150" prop="title" label="">
+          <template slot-scope="scope">
+            <div @click="columnOnclick(scope.row)">{{scope.row.title}}</div>
+          </template>
+        </el-table-column>
         <el-table-column prop="unit" label="unit"></el-table-column>
         <el-table-column prop="currently" label="currently"></el-table-column>
         <el-table-column prop="jan" :label="this.monthList[0]"></el-table-column>
@@ -471,6 +543,26 @@
 import {
   getAnalysisData,
   getCrackerRawMaterial,
+  getCrackerOutputProduct,
+  getAromaticsRawMaterial,
+  getAromaticsOutputProduct,
+  getEligibleProductRate,
+  getProductYield,
+  getCrackerUtilityConsumption,
+  getCrackerEnergyConsumption,
+  getAromaticsUtilityConsumption,
+  getAromaticsEnergyConsumption,
+  getPlantLoad,
+  getCostFrEthylene,
+  getRuningRate,
+  getShoudownHour,
+  getOtherside,
+  getChemicalConsume,
+  getSCTUUtilityConsumption,
+  getSUBUtilityConsumption,
+  getSCTFUtilityConsumption,
+  getKbi,
+  getSummary
 } from "@/api/production/monthly";
 
 export default {
@@ -521,22 +613,7 @@ export default {
       // 月份的固定表示
       monthList: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
       tableCrackerRawMaterial: [],
-      tableCrackerOutputProduct: [
-        {title: "Cracker Output Product"},
-        {title: "H2"},
-        {title: "C2="},
-        {title: "C3="},
-        {title: "C3/C4 LPG"},
-        {title: "C4'S"},
-        {title: "RPG"},
-        {title: "PO"},
-        {title: "Naphthalene"},
-        {title: "EBO"},
-        {title: "Cracker Residue "},
-        {title: "Methane"},
-        {title: "OFFAGE"},
-        {title: "output total"},
-      ],
+      tableCrackerOutputProduct: [],
       tableAromaticsRawMaterial: [
         {title: "Aromatics Raw Material"},
         {title: "RPG fr EU"},
@@ -858,6 +935,7 @@ export default {
     draw() {
       getAnalysisData(this.analysisQueryParams).then(response => {
         let data = response.data;
+        console.log(data);
         this.maxValue = 0;
         this.minValue = data[0].valueData;
         for (let i = 0; i < data.length; i++) {
@@ -947,8 +1025,66 @@ export default {
       getCrackerRawMaterial(year).then(response => {
         this.tableCrackerRawMaterial = response.data;
       });
-
-
+      getCrackerOutputProduct(year).then(response => {
+        this.tableCrackerOutputProduct = response.data;
+      });
+      // getAromaticsRawMaterial(year).then(response => {
+      //   this.tableAromaticsRawMaterial = response.data;
+      // });
+      // getAromaticsOutputProduct(year).then(response => {
+      //   this.tableAromaticsOutputProduct = response.data;
+      // });
+      // getEligibleProductRate(year).then(response => {
+      //   this.tableEligibleProductRate = response.data;
+      // });
+      // getProductYield(year).then(response => {
+      //   this.tableProductYield = response.data;
+      // });
+      // getCrackerUtilityConsumption(year).then(response => {
+      //   this.tableCrackerUtilityConsumption = response.data;
+      // });
+      // getCrackerEnergyConsumption(year).then(response => {
+      //   this.tableCrackerEnergyConsumption = response.data;
+      // });
+      // getAromaticsUtilityConsumption(year).then(response => {
+      //   this.tableAromaticsUtilityConsumption = response.data;
+      // });
+      // getAromaticsEnergyConsumption(year).then(response => {
+      //   this.tableAromaticsEnergyConsumption = response.data;
+      // });
+      // getPlantLoad(year).then(response => {
+      //   this.tablePlantLoad = response.data;
+      // });
+      // getCostFrEthylene(year).then(response => {
+      //   this.tableCostFrEthylene = response.data;
+      // });
+      // getRuningRate(year).then(response => {
+      //   this.tableRuningRate = response.data;
+      // });
+      // getShoudownHour(year).then(response => {
+      //   this.tableShoudownHour = response.data;
+      // });
+      // getOtherside(year).then(response => {
+      //   this.tableOtherside = response.data;
+      // });
+      // getChemicalConsume(year).then(response => {
+      //   this.tableChemicalConsume = response.data;
+      // });
+      // getSCTUUtilityConsumption(year).then(response => {
+      //   this.tableSCTUUtilityConsumption = response.data;
+      // });
+      // getSUBUtilityConsumption(year).then(response => {
+      //   this.tableSUBUtilityConsumption = response.data;
+      // });
+      // getSCTFUtilityConsumption(year).then(response => {
+      //   this.tableSCTFUtilityConsumption = response.data;
+      // });
+      // getKbi(year).then(response => {
+      //   this.tableKBI = response.data;
+      // });
+      // getSummary(year).then(response => {
+      //   this.tableSummary = response.data;
+      // });
     },
   }
 }