소스 검색

王子文 月报Runing Rate

wangggziwen 2 년 전
부모
커밋
5c22744c6e

+ 10 - 0
master/src/main/java/com/ruoyi/project/production/controller/TMonthlyProductionReportController.java

@@ -36,6 +36,16 @@ public class TMonthlyProductionReportController extends BaseController
     @Autowired
     private ITMonthlyProductionReportService tMonthlyProductionReportService;
 
+    /**
+     * 修改Runing Rate
+     */
+    @PreAuthorize("@ss.hasPermi('production:monthly:edit')")
+    @PutMapping(value = "/runingRate")
+    public AjaxResult updateRuningRate(@RequestBody MonthlyUpdateVO monthlyUpdateVO)
+    {
+        return toAjax(tMonthlyProductionReportService.updateRuningRate(monthlyUpdateVO));
+    }
+
     /**
      * 修改Shoudown Hour
      */

+ 56 - 0
master/src/main/java/com/ruoyi/project/production/domain/TMonthlyProductionReport.java

@@ -554,6 +554,22 @@ public class TMonthlyProductionReport extends BaseEntity
     @Excel(name = "Shutdown Hour total hour")
     private String shutdouwnTh;
 
+    /** Runing Rate run hour */
+    @Excel(name = "Runing Rate run hour")
+    private String runHour;
+
+    /** Runing Rate run rate */
+    @Excel(name = "Runing Rate run rate")
+    private String runRate;
+
+    /** Runing Rate calendar hour */
+    @Excel(name = "Runing Rate calendar hour")
+    private String calendarHour;
+
+    /** Runing Rate calendar day */
+    @Excel(name = "Runing Rate calendar day")
+    private String calendarDay;
+
     public void setId(Long id)
     {
         this.id = id;
@@ -1769,6 +1785,42 @@ public class TMonthlyProductionReport extends BaseEntity
     {
         return shutdouwnTh;
     }
+    public void setRunHour(String runHour)
+    {
+        this.runHour = runHour;
+    }
+
+    public String getRunHour()
+    {
+        return runHour;
+    }
+    public void setRunRate(String runRate)
+    {
+        this.runRate = runRate;
+    }
+
+    public String getRunRate()
+    {
+        return runRate;
+    }
+    public void setCalendarHour(String calendarHour)
+    {
+        this.calendarHour = calendarHour;
+    }
+
+    public String getCalendarHour()
+    {
+        return calendarHour;
+    }
+    public void setCalendarDay(String calendarDay)
+    {
+        this.calendarDay = calendarDay;
+    }
+
+    public String getCalendarDay()
+    {
+        return calendarDay;
+    }
 
     @Override
     public String toString() {
@@ -1908,6 +1960,10 @@ public class TMonthlyProductionReport extends BaseEntity
             .append("shutdouwnOth", getShutdouwnOth())
             .append("shutdouwnTt", getShutdouwnTt())
             .append("shutdouwnTh", getShutdouwnTh())
+            .append("runHour", getRunHour())
+            .append("runRate", getRunRate())
+            .append("calendarHour", getCalendarHour())
+            .append("calendarDay", getCalendarDay())
             .toString();
     }
 }

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

@@ -196,4 +196,9 @@ public interface ITMonthlyProductionReportService
      * 修改Shoudown Hour
      */
     public int updateShoudownHour(MonthlyUpdateVO monthlyUpdateVO);
+
+    /**
+     * 修改Runing Rate
+     */
+    public int updateRuningRate(MonthlyUpdateVO monthlyUpdateVO);
 }

+ 119 - 1
master/src/main/java/com/ruoyi/project/production/service/impl/TMonthlyProductionReportServiceImpl.java

@@ -1196,7 +1196,54 @@ public class TMonthlyProductionReportServiceImpl implements ITMonthlyProductionR
      */
     @Override
     public List<MonthlyProductionReportVO> selectRuningRateByYear(Long year) {
-        return  null;
+        // 当前日期
+        Date currentDate = new Date();
+        // 当前年份
+        Long currentYear = Long.parseLong(currentDate.getYear() + 1900 + "");
+        // 当前月份
+        Long currentMonth = Long.parseLong(currentDate.getMonth() + 1 + "");
+        // 从数据库中查出的当前year的月报数据集合,每个元素对应当前year某个月的数据
+        List<TMonthlyProductionReport> tMonthlyProductionReports = tMonthlyProductionReportMapper.selectRuningRateByYear(year);
+        // 前端月报数据集合,每个元素对应当前某个指标的title、unit、1~12月的数据以及年度汇总数据
+        List<MonthlyProductionReportVO> monthlyProductionReportVOs = new ArrayList<>();
+        monthlyProductionReportVOs.add(new MonthlyProductionReportVO("run_hour", "run hour", "h"));
+        monthlyProductionReportVOs.add(new MonthlyProductionReportVO("run_rate", "run rate", "%"));
+        monthlyProductionReportVOs.add(new MonthlyProductionReportVO("calendar_hour", "calendar hour", "h"));
+        monthlyProductionReportVOs.add(new MonthlyProductionReportVO("calendar_day", "run day", "day"));
+        // 遍历从数据库中查出的月报数据集合,结果为0~12条数据不等
+        for (int i = 0; i < tMonthlyProductionReports.size(); i++) {
+            TMonthlyProductionReport tMonthlyProductionReport = tMonthlyProductionReports.get(i);
+            String runHour = tMonthlyProductionReport.getRunHour();
+            String runRate = tMonthlyProductionReport.getRunRate();
+            String calendarHour = tMonthlyProductionReport.getCalendarHour();
+            String calendarDay = tMonthlyProductionReport.getCalendarDay();
+            Long reportMonth = tMonthlyProductionReport.getReportMonth();   // 当前元素的所属月份
+            Long reportYear = tMonthlyProductionReport.getReportYear();     // 当前元素的所属年份
+            // 前端数据集合的class
+            Class clazz = null;
+            // 当前元素调用的set方法
+            Method method = null;
+            try {
+                clazz = Class.forName("com.ruoyi.project.production.service.impl.vo.MonthlyProductionReportVO");
+                method = this.getSetMethod(reportMonth, clazz);
+                // 按照当前元素的所属月份调取相应set方法
+                method.invoke(monthlyProductionReportVOs.get(0), runHour);
+                method.invoke(monthlyProductionReportVOs.get(1), runRate);
+                method.invoke(monthlyProductionReportVOs.get(2), calendarHour);
+                method.invoke(monthlyProductionReportVOs.get(3), calendarDay);
+                // 当前年份=所属年份,当前月份=所属月份
+                if (currentMonth.equals(reportMonth) && currentYear.equals(reportYear)) {
+                    monthlyProductionReportVOs.get(0).setCurrently(runHour);
+                    monthlyProductionReportVOs.get(1).setCurrently(runRate);
+                    monthlyProductionReportVOs.get(2).setCurrently(calendarHour);
+                    monthlyProductionReportVOs.get(3).setCurrently(calendarDay);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        this.calcTotal(monthlyProductionReportVOs);
+        return monthlyProductionReportVOs;
     }
 
     /**
@@ -1757,6 +1804,77 @@ public class TMonthlyProductionReportServiceImpl implements ITMonthlyProductionR
             }
         }
         return affectedRows;
+    }
 
+    /**
+     * 修改Runing Rate
+     */
+    @Override
+    public int updateRuningRate(MonthlyUpdateVO monthlyUpdateVO) {
+        // 受影响行数
+        int affectedRows = 0;
+        List<MonthlyProductionReportVO> tableData = monthlyUpdateVO.getTableData();
+        long year = monthlyUpdateVO.getYear();
+        Class clazz = null;
+        try {
+            clazz = Class.forName("com.ruoyi.project.production.service.impl.vo.MonthlyProductionReportVO");
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();
+        }
+        for (MonthlyProductionReportVO tableDatum : tableData) {
+            for (int i = 0; i < 12; i++) {
+                TMonthlyProductionReport report = new TMonthlyProductionReport();
+                report.setReportMonth((long)(i + 1));
+                report.setReportYear(year);
+                Method getMethod = null;
+                String monthValue = null;
+                try {
+                    if (i == 0) { getMethod =  clazz.getDeclaredMethod("getJan"); }
+                    if (i == 1) { getMethod =  clazz.getDeclaredMethod("getFeb"); }
+                    if (i == 2) { getMethod =  clazz.getDeclaredMethod("getMar"); }
+                    if (i == 3) { getMethod =  clazz.getDeclaredMethod("getApr"); }
+                    if (i == 4) { getMethod =  clazz.getDeclaredMethod("getMay"); }
+                    if (i == 5) { getMethod =  clazz.getDeclaredMethod("getJun"); }
+                    if (i == 6) { getMethod =  clazz.getDeclaredMethod("getJul"); }
+                    if (i == 7) { getMethod =  clazz.getDeclaredMethod("getAug"); }
+                    if (i == 8) { getMethod =  clazz.getDeclaredMethod("getSep"); }
+                    if (i == 9) { getMethod =  clazz.getDeclaredMethod("getOct"); }
+                    if (i == 10) { getMethod =  clazz.getDeclaredMethod("getNov"); }
+                    if (i == 11) { getMethod =  clazz.getDeclaredMethod("getDec"); }
+                    monthValue = (String) getMethod.invoke(tableDatum);
+                } catch (NoSuchMethodException e1){
+                    e1.printStackTrace();
+                } catch (IllegalAccessException e2) {
+                    e2.printStackTrace();
+                } catch (InvocationTargetException e3) {
+                    e3.printStackTrace();
+                }
+                if (monthValue == null) {
+                    continue;
+                }
+                if ("calendar_day".equals(tableDatum.getDictLabel())) {
+                    report.setCalendarDay(monthValue);
+                }
+                // 当前报告年份
+                int reportYear = Integer.parseInt(report.getReportYear().toString());
+                // 当前报告月份
+                int reportMonth = Integer.parseInt(report.getReportMonth().toString());
+                // 查询年份=reportYear,月份=reportMonth的月报数据
+                int count = tMonthlyProductionReportMapper.selectTMonthlyProductionReportCountByDate(reportYear, reportMonth);
+                if (count == 0) {   // 新增月报数据
+                    affectedRows += tMonthlyProductionReportMapper.insertTMonthlyProductionReport(report);
+                } else {    // 更新月报数据
+                    affectedRows += tMonthlyProductionReportMapper.updateTMonthlyProductionReport(report);
+                }
+                // 同步更新月报数据
+                SyncAfterMonthlyUpdateThread thread = new SyncAfterMonthlyUpdateThread(
+                        (int)year,
+                        (i + 1),
+                        this.tMonthlyProductionReportMapper
+                );
+                thread.run();
+            }
+        }
+        return affectedRows;
     }
 }

+ 12 - 0
master/src/main/java/com/ruoyi/project/production/service/impl/thread/SyncAfterMonthlyUpdateThread.java

@@ -138,6 +138,18 @@ public class SyncAfterMonthlyUpdateThread extends Thread {
         report.setShutdouwnTt(shutdouwnTt.toString());
         report.setShutdouwnTh(shutdouwnTh.toString());
 
+        String calendarDayStr = report.getCalendarDay();
+        BigDecimal runHour = new BigDecimal("0");
+        BigDecimal runRate = new BigDecimal("0");
+        BigDecimal calendarHour = new BigDecimal("0");
+        BigDecimal calendarDay = new BigDecimal(calendarDayStr == null ? "0" : calendarDayStr);
+        calendarHour = calendarDay.multiply(new BigDecimal("24"));
+        runHour = calendarHour.subtract(shutdouwnTh);
+        runRate = runHour.multiply(new BigDecimal("100")).divide(calendarHour, 2, RoundingMode.HALF_UP);
+        report.setRunHour(runHour.toString());
+        report.setRunRate(runRate.toString());
+        report.setCalendarHour(calendarHour.toString());
+
         tMonthlyProductionReportMapper.updateTMonthlyProductionReport(report);
 
     }

+ 24 - 1
master/src/main/resources/mybatis/production/TMonthlyProductionReportMapper.xml

@@ -140,6 +140,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="shutdouwnOth"             column="shutdouwn_oth"    />
         <result property="shutdouwnTt"              column="shutdouwn_tt"    />
         <result property="shutdouwnTh"              column="shutdouwn_th"    />
+        <result property="runHour"                  column="run_hour"    />
+        <result property="runRate"                  column="run_rate"    />
+        <result property="calendarHour"             column="calendar_hour"    />
+        <result property="calendarDay"              column="calendar_day"    />
     </resultMap>
 
     <select id="selectCrackerRawMaterialByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult">
@@ -247,7 +251,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectCostFrEthyleneByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
 
-    <select id="selectRuningRateByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult"></select>
+    <select id="selectRuningRateByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult">
+        select
+               d.id, d.report_month, d.report_year,
+               d.run_hour, d.run_rate, d.calendar_hour, d.calendar_day
+        from
+             t_monthly_production_report d
+        where d.report_year = #{year}
+    </select>
 
     <select id="selectShoudownHourByYear" parameterType="Long" resultMap="TMonthlyProductionReportResult">
         select
@@ -433,6 +444,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shutdouwnOth != null">shutdouwn_oth,</if>
             <if test="shutdouwnTt != null">shutdouwn_tt,</if>
             <if test="shutdouwnTh != null">shutdouwn_th,</if>
+            <if test="runHour != null">run_hour,</if>
+            <if test="runRate != null">run_rate,</if>
+            <if test="calendarHour != null">calendar_hour,</if>
+            <if test="calendarDay != null">calendar_day,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -570,6 +585,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shutdouwnOth != null">#{shutdouwnOth},</if>
             <if test="shutdouwnTt != null">#{shutdouwnTt},</if>
             <if test="shutdouwnTh != null">#{shutdouwnTh},</if>
+            <if test="runHour != null">#{runHour},</if>
+            <if test="runRate != null">#{runRate},</if>
+            <if test="calendarHour != null">#{calendarHour},</if>
+            <if test="calendarDay != null">#{calendarDay},</if>
         </trim>
     </insert>
 
@@ -708,6 +727,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shutdouwnOth != null">shutdouwn_oth = #{shutdouwnOth},</if>
             <if test="shutdouwnTt != null">shutdouwn_tt = #{shutdouwnTt},</if>
             <if test="shutdouwnTh != null">shutdouwn_th = #{shutdouwnTh},</if>
+            <if test="runHour != null">run_hour = #{runHour},</if>
+            <if test="runRate != null">run_rate = #{runRate},</if>
+            <if test="calendarHour != null">calendar_hour = #{calendarHour},</if>
+            <if test="calendarDay != null">calendar_day = #{calendarDay},</if>
         </trim>
         where report_month = #{reportMonth} and report_year = #{reportYear}
     </update>

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

@@ -1,5 +1,14 @@
 import request from '@/utils/request'
 
+// 修改Runing Rate
+export function updateRuningRate(data) {
+  return request({
+    url: '/production/monthly/runingRate',
+    method: 'put',
+    data: data
+  })
+}
+
 // 修改Shoudown Hour
 export function updateShoudownHour(data) {
   return request({

+ 219 - 42
ui/src/views/production/monthly/index.vue

@@ -1165,6 +1165,32 @@
       </el-table-column>
     </el-table>
     <!-- Runing Rate -->
+    <div class="editDiv">
+      <el-button
+        :disabled="runingRateUpdating"
+        type="primary"
+        icon="el-icon-edit"
+        size="mini"
+        @click="handleRuningRateUpdate"
+        v-hasPermi="['production:monthly:edit']"
+      >{{ $t('编辑Runing Rate') }}</el-button>
+      <el-button
+        :disabled="!runingRateUpdating"
+        type="success"
+        icon="el-icon-check"
+        size="mini"
+        @click="handleConfirmRuningRateUpdate"
+        v-hasPermi="['production:monthly:edit']"
+      >{{ $t('保存') }}</el-button>
+      <el-button
+        :disabled="!runingRateUpdating"
+        type="info"
+        icon="el-icon-close"
+        size="mini"
+        @click="handleCancelRuningRateUpdate"
+        v-hasPermi="['production:monthly:edit']"
+      >{{ $t('取消') }}</el-button>
+    </div>
     <el-table border :data="tableRuningRate" style="width: 100%;">
       <el-table-column label="Runing Rate">
         <el-table-column width="150" prop="title" label="">
@@ -1174,18 +1200,138 @@
         </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>
-        <el-table-column prop="feb" :label="this.monthList[1]"></el-table-column>
-        <el-table-column prop="mar" :label="this.monthList[2]"></el-table-column>
-        <el-table-column prop="apr" :label="this.monthList[3]"></el-table-column>
-        <el-table-column prop="may" :label="this.monthList[4]"></el-table-column>
-        <el-table-column prop="jun" :label="this.monthList[5]"></el-table-column>
-        <el-table-column prop="jul" :label="this.monthList[6]"></el-table-column>
-        <el-table-column prop="aug" :label="this.monthList[7]"></el-table-column>
-        <el-table-column prop="sep" :label="this.monthList[8]"></el-table-column>
-        <el-table-column prop="oct" :label="this.monthList[9]"></el-table-column>
-        <el-table-column prop="nov" :label="this.monthList[10]"></el-table-column>
-        <el-table-column prop="dec" :label="this.monthList[11]"></el-table-column>
+        <el-table-column prop="jan" :label="this.monthList[0]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.jan}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.jan" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.jan}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="feb" :label="this.monthList[1]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.feb}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.feb" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.feb}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="mar" :label="this.monthList[2]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.mar}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.mar" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.mar}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="apr" :label="this.monthList[3]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.apr}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.apr" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.apr}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="may" :label="this.monthList[4]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.may}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.may" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.may}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="jun" :label="this.monthList[5]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.jun}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.jun" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.jun}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="jul" :label="this.monthList[6]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.jul}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.jul" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.jul}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="aug" :label="this.monthList[7]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.aug}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.aug" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.aug}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="sep" :label="this.monthList[8]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.sep}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.sep" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.sep}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="oct" :label="this.monthList[9]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.oct}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.oct" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.oct}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="nov" :label="this.monthList[10]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.nov}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.nov" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.nov}}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="dec" :label="this.monthList[11]">
+          <template slot-scope="{row}">
+            <div v-if="!runingRateUpdating">{{row.dec}}</div>
+            <div v-if="runingRateUpdating && row.title == 'run day'">
+              <el-input v-model="row.dec" clearable="true"></el-input>
+            </div>
+            <div v-if="runingRateUpdating && row.title != 'run day'">
+              {{row.dec}}
+            </div>
+          </template>
+        </el-table-column>
         <el-table-column prop="total" label="total"></el-table-column>
       </el-table-column>
     </el-table>
@@ -1577,20 +1723,19 @@ import {
   updateEligibleProductRate,
   updateCrackerUtilityConsumption,
   updateAromaticsUtilityConsumption,
-  updateShoudownHour
+  updateShoudownHour,
+  updateRuningRate
 } from "@/api/production/monthly";
 
 export default {
   name: "Monthly",
   data() {
     return {
-      // Shoudown Hour修改中
+      // 修改中
+      runingRateUpdating: false,
       shoudownHourUpdating: false,
-      // Aromatics Utility Consumption修改中
       aromaticsUtilityConsumptionUpdating: false,
-      // Cracker Utility Consumption修改中
       crackerUtilityConsumptionUpdating: false,
-      // Eligible Product Rate修改中
       eligibleProductRateUpdating: false,
       // 趋势图y轴数值
       valueList: [],
@@ -1654,11 +1799,7 @@ export default {
       tableCostFrEthylene: [
         {title: "the cost"},
       ],
-      tableRuningRate: [
-        {title: "run hour"},
-        {title: "run rate"},
-        {title: "calendar hour"},
-      ],
+      tableRuningRate: [],
       tableShoudownHour: [],
       tableOtherside: [],
       tableChemicalConsume: [
@@ -1805,9 +1946,12 @@ export default {
   },
   methods: {
     /** 编辑按钮操作 */
-    handleShoudownHourUpdate(row) {
-      this.shoudownHourUpdating = true;
+    handleRuningRateUpdate(row) {
+      this.runingRateUpdating = true;
     },
+    handleShoudownHourUpdate(row) {
+  this.shoudownHourUpdating = true;
+},
     handleAromaticsUtilityConsumptionUpdate(row) {
       this.aromaticsUtilityConsumptionUpdating = true;
     },
@@ -1818,20 +1962,11 @@ export default {
       this.eligibleProductRateUpdating = true;
     },
     /** 确定修改按钮操作 */
-    handleConfirmShoudownHourUpdate(row) {
-      this.shoudownHourUpdating = false;
-      updateShoudownHour({
+    handleConfirmRuningRateUpdate(row) {
+      this.runingRateUpdating = false;
+      updateRuningRate({
         tableData: [
-          this.tableShoudownHour[0],
-          this.tableShoudownHour[1],
-          this.tableShoudownHour[2],
-          this.tableShoudownHour[3],
-          this.tableShoudownHour[4],
-          this.tableShoudownHour[5],
-          this.tableShoudownHour[6],
-          this.tableShoudownHour[7],
-          this.tableShoudownHour[8],
-          this.tableShoudownHour[9],
+          this.tableRuningRate[3]
         ],
         year: this.year.getFullYear()
       }).then(response => {
@@ -1840,11 +1975,47 @@ export default {
         } else {
           this.$message.error("未知错误,请联系管理员。");
         }
-        getShoudownHour(year).then(response => {
-          this.tableShoudownHour = response.data;
+        getRuningRate(year).then(response => {
+          this.tableRuningRate = response.data;
+        });
+        getPlantLoad(year).then(response => {
+          this.tablePlantLoad = response.data;
         });
       });
     },
+    handleConfirmShoudownHourUpdate(row) {
+  this.shoudownHourUpdating = false;
+  updateShoudownHour({
+    tableData: [
+      this.tableShoudownHour[0],
+      this.tableShoudownHour[1],
+      this.tableShoudownHour[2],
+      this.tableShoudownHour[3],
+      this.tableShoudownHour[4],
+      this.tableShoudownHour[5],
+      this.tableShoudownHour[6],
+      this.tableShoudownHour[7],
+      this.tableShoudownHour[8],
+      this.tableShoudownHour[9],
+    ],
+    year: this.year.getFullYear()
+  }).then(response => {
+    if (response.code == 200) {
+      this.$message.success("修改成功");
+    } else {
+      this.$message.error("未知错误,请联系管理员。");
+    }
+    getShoudownHour(year).then(response => {
+      this.tableShoudownHour = response.data;
+    });
+    getRuningRate(year).then(response => {
+      this.tableRuningRate = response.data;
+    });
+    getPlantLoad(year).then(response => {
+      this.tablePlantLoad = response.data;
+    });
+  });
+},
     handleConfirmAromaticsUtilityConsumptionUpdate(row) {
       this.aromaticsUtilityConsumptionUpdating = false;
       updateAromaticsUtilityConsumption({
@@ -1911,6 +2082,12 @@ export default {
       });
     },
     /** 取消修改按钮操作 */
+    handleCancelRuningRateUpdate(row) {
+      this.runingRateUpdating = false;
+      getRuningRate(year).then(response => {
+        this.runingRateUpdating = response.data;
+      });
+    },
     handleCancelShoudownHourUpdate(row) {
       this.shoudownHourUpdating = false;
       getShoudownHour(year).then(response => {
@@ -2108,9 +2285,9 @@ export default {
       // getCostFrEthylene(year).then(response => {
       //   this.tableCostFrEthylene = response.data;
       // });
-      // getRuningRate(year).then(response => {
-      //   this.tableRuningRate = response.data;
-      // });
+      getRuningRate(year).then(response => {
+        this.tableRuningRate = response.data;
+      });
       getShoudownHour(year).then(response => {
         this.tableShoudownHour = response.data;
       });