factory_web/src/views/enm_energy/electric_hour.vue

1855 lines
23 KiB
Vue

<!-- 全厂电量统计 -->
<template>
<div class="app-container">
<el-header>
<div class="left-panel">
<el-date-picker
v-model="search_date"
type="date"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
placeholder="天"
style="margin-right: 6px"
@change="dateChange"
/>
<el-button
type="primary"
icon="el-icon-search"
@click="getTableData"
></el-button>
<el-button
type="primary"
@click="exportExcel()"
:loading="exportLoading"
>导出xlsx
</el-button>
<el-button type="primary" @click="handlePrint">打印 </el-button>
</div>
</el-header>
<el-card style="margin-top: 5px">
<div class="printWrap">
<div ref="print" id="myReport" class="printContainer">
<table
border="1"
width="2700"
cellspacing="0"
:key="timeStamp"
id="myTable"
class="myTable"
>
<thead class="myTableHead">
<tr>
<th colspan="27">全厂电量小时统计</th>
</tr>
<tr>
<th>车间</th>
<th>工段</th>
<th>设备</th>
<th v-for="item in 24" :key="item">
{{ item }}时
</th>
</tr>
</thead>
<tr v-for="(item, index) in tableDatas" :key="index">
<td class="numCell" v-if="index == 0" rowspan="9">
{{ item[0] }}
</td>
<td
class="numCell"
v-else-if="index == 9"
rowspan="18"
>
{{ item[0] }}
</td>
<td
class="numCell"
v-else-if="index == 27"
rowspan="12"
>
{{ item[0] }}
</td>
<td
class="numCell"
v-else-if="index == 39"
rowspan="10"
colspan="2"
>
{{ item[0] }}
</td>
<td
class="numCell"
v-else-if="index == 49"
colspan="3"
>
{{ item[0] }}
</td>
<td
class="numCell"
v-if="
index == 8 ||
index == 26 ||
index == 37 ||
index == 38
"
colspan="2"
>
{{ item[1] }}
</td>
<td
class="numCell"
v-else-if="index == 0"
rowspan="2"
>
{{ item[1] }}
</td>
<td
class="numCell"
v-else-if="index == 2"
rowspan="6"
>
{{ item[1] }}
</td>
<td
class="numCell"
v-else-if="index == 9"
rowspan="14"
>
{{ item[1] }}
</td>
<td
class="numCell"
v-else-if="index == 23"
rowspan="3"
>
{{ item[1] }}
</td>
<td
class="numCell"
v-else-if="index == 27"
rowspan="10"
>
{{ item[1] }}
</td>
<td class="numCell" v-else>{{ item[1] }}</td>
<td class="numCell">{{ item[2] }}</td>
<td
class="numCell"
@click="itemClick('day_s', item)"
>
{{ item[3] }}
</td>
<td class="numCell">{{ item[4] }}</td>
<td class="numCell">{{ item[5] }}</td>
<td class="numCell">{{ item[6] }}</td>
<td class="numCell">{{ item[7] }}</td>
<td class="numCell">{{ item[8] }}</td>
<td class="numCell">{{ item[9] }}</td>
<td class="numCell">{{ item[10] }}</td>
<td class="numCell">{{ item[11] }}</td>
<td class="numCell">{{ item[12] }}</td>
<td class="numCell">{{ item[13] }}</td>
<td class="numCell">{{ item[14] }}</td>
<td class="numCell">{{ item[15] }}</td>
<td class="numCell">{{ item[16] }}</td>
<td class="numCell">{{ item[17] }}</td>
<td class="numCell">{{ item[18] }}</td>
<td class="numCell">{{ item[19] }}</td>
<td class="numCell">{{ item[20] }}</td>
<td class="numCell">{{ item[21] }}</td>
<td class="numCell">{{ item[22] }}</td>
<td class="numCell">{{ item[23] }}</td>
<td class="numCell">{{ item[24] }}</td>
<td
class="numCell"
v-if="
item[25] !== null && item[25] !== undefined
"
>
{{ item[25] }}
</td>
<td
class="numCell"
v-if="
item[26] !== null && item[26] !== undefined
"
>
{{ item[26] }}
</td>
<td
class="numCell"
v-if="
item[27] !== null && item[27] !== undefined
"
>
{{ item[27] }}
</td>
</tr>
</table>
</div>
</div>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
year: "",
month: "",
day: "",
search_date: "",
tableDatas: [
[
"原料车间",
"电石渣",
"烘干破主电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //0
[
"原料车间",
"电石渣合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"原料车间",
"原料磨",
"反击式破碎机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //2
[
"原料车间",
"立磨主电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"原料车间",
"循环风机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"原料车间",
"废气风机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //5
[
"原料车间",
"尾排风机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"原料车间",
"原料磨合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"原料车间",
"原料车间合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //8
[
"烧成车间",
"回转窑",
"高温风机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //9
[
"烧成车间",
"窑主电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //10
[
"烧成车间",
"篦冷机一室风机电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"篦冷机三室风机电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"篦冷机二室风机电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"篦冷机一室充气梁风机(左)",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"篦冷机一室充气梁风机(右)",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //15
[
"烧成车间",
"窑头排风机主电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"头煤粉罗茨电机(东、备用)",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"尾煤粉罗茨电机(西)",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"空压机3301",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"空压机3308",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //20
[
"烧成车间",
"空压机3318",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //21
[
"烧成车间",
"回转窑合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"煤磨",
"煤磨主电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"煤磨排风机主电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"烧成车间",
"煤磨合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //25
[
"烧成车间",
"烧成车间合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //26
[
"水泥车间",
"水泥磨",
"循环风机1906",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //27
[
"水泥车间",
"系统风机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"水泥车间",
"水平涡流选粉机1915",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"水泥车间",
"水泥磨主电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //30
[
"水泥车间",
"辊压机动辊电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"水泥车间",
"辊压机定辊电机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"水泥车间",
"新增磨尾风机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"水泥车间",
"水泥1#空压机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"水泥车间",
"水泥2#空压机",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //35
[
"水泥车间",
"水泥磨合计计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"水泥车间",
"水泥包装合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //37
[
"水泥车间",
"水泥车间合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //38
[
"生活区",
"食堂",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //39
[
"生活区",
"单元楼",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //40
[
"生活区",
"单身宿舍",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"生活区",
"办公楼",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"生活区",
"余热锅炉",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"生活区",
"污水站",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"生活区",
"南门办公区",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
], //45
[
"生活区",
"东门办公区",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"生活区",
"地磅",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"生活区",
"生活区合计",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
[
"全厂电量",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
],
],
tableName: "全厂电量小时统计",
sourceData: {},
};
},
mounted() {
let that = this;
var nowDate = new Date();
that.year = nowDate.getFullYear();
that.month = nowDate.getMonth() + 1;
that.day = nowDate.getDate();
let month0 = that.month > 9 ? that.month : "0" + that.month;
that.search_date = that.year + "-" + month0 + "-" + that.day;
this.getData();
},
methods: {
itemClick(index, item) {
this.type = type;
this.cate = item[1];
this.asynDialog = true;
},
dateChange(e) {
let that = this;
let arr = e.split("-");
that.year = Number(arr[0]);
that.month = Number(arr[1]);
that.day = Number(arr[2]);
},
getData() {
let that = this;
function dataPush(name, value) {
let index = 0;
if (name == "烘干破主电机") {
index = 0;
that.tableDatas[0][3] = value;
} else if (name == "电石渣合计") {
index = 1;
that.tableDatas[1][2] = value;
} else if (name == "反击式破碎机") {
index = 2;
} else if (name == "立磨主电机") {
index = 3;
} else if (name == "循环风机") {
index = 4;
} else if (name == "废气风机") {
index = 5;
} else if (name == "尾排风机") {
index = 6;
} else if (name == "原料磨合计") {
index = 7;
} else if (name == "高温风机") {
index = 9;
} else if (name == "窑主电机") {
index = 10;
} else if (name == "篦冷机一室风机电机") {
index = 11;
} else if (name == "篦冷机三室风机电机") {
index = 12;
} else if (name == "篦冷机二室风机电机") {
index = 13;
} else if (name == "篦冷机一室充气梁风机(左)") {
index = 14;
} else if (name == "篦冷机一室充气梁风机(右)") {
index = 15;
} else if (name == "窑头排风机主电机") {
index = 16;
} else if (name == "头煤粉罗茨电机(东、备用)") {
index = 17;
} else if (name == "尾煤粉罗茨电机(西)") {
index = 18;
} else if (name == "空压机3301") {
index = 19;
} else if (name == "空压机3308") {
index = 20;
} else if (name == "空压机3318") {
index = 21;
} else if (name == "回转窑合计") {
index = 22;
} else if (name == "煤磨主电机") {
index = 23;
} else if (name == "煤磨排风机主电机") {
index = 24;
} else if (name == "煤磨合计") {
index = 25;
} else if (name == "循环风机1906") {
index = 27;
} else if (name == "系统风机") {
index = 28;
} else if (name == "水平涡流选粉机1915") {
index = 29;
} else if (name == "水泥磨主电机") {
index = 30;
} else if (name == "辊压机动辊电机") {
index = 31;
} else if (name == "辊压机定辊电机") {
index = 32;
} else if (name == "新增磨尾风机") {
index = 33;
} else if (name == "水泥1#空压机") {
index = 34;
} else if (name == "水泥2#空压机") {
index = 35;
} else if (name == "水泥磨合计计") {
index = 36;
} else if (name == "水泥包装合计") {
index = 37;
} else if (name == "食堂") {
index = 39;
} else if (name == "单元楼") {
index = 40;
} else if (name == "单身宿舍") {
index = 41;
} else if (name == "办公楼") {
index = 42;
} else if (name == "余热锅炉") {
index = 43;
} else if (name == "污水站") {
index = 44;
} else if (name == "南门办公区") {
index = 45;
} else if (name == "东门办公区") {
index = 46;
} else if (name == "生活区合计") {
index = 47;
} else if (name == "地磅") {
index = 48;
}
return index;
}
function sumNum(a, b, c, d) {
let sum = 0;
if (a && Number(a)) {
sum = sum + Number(a);
}
if (b && Number(b)) {
sum = sum + Number(b);
}
if (c && Number(c)) {
sum = sum + Number(c);
}
if (d && Number(d)) {
sum = sum + Number(d);
}
return sum;
}
let obj = {};
obj.type = "hour_s";
obj.year_s = that.year;
obj.month_s = that.month;
obj.day_s = that.day;
obj.page = 0;
obj.mpoint__ep_monitored__power_kw__gte = 100;
this.$API.enm.mpoint.stat
.req(obj)
.then((res) => {
console.log(res);
let wrapArr = [],
innerArr = [];
res.forEach((item) => {
let hour = item.hour;
if (wrapArr[hour]) {
wrapArr[hour].push(item);
} else {
wrapArr[hour] = [];
wrapArr[hour].push(item);
}
});
console.log(wrapArr); //按时间分组
wrapArr.forEach((inner, inde) => {
inner.forEach((item) => {
let i = dataPush(item.mpoint_name);
let k = 0;
if (
i == 0 ||
i == 2 ||
i == 9 ||
i == 23 ||
i == 27
) {
k = 3 + inde;
} else {
k = 2 + inde;
}
that.tableDatas[i][k] = item.val;
});
});
for (let k = 0; k < 24; k++) {
let m = k + 2;
let n = k + 1;
that.tableDatas[8][m] = sumNum(
that.tableDatas[1][m],
that.tableDatas[7][m]
);
that.tableDatas[26][m] = sumNum(
that.tableDatas[22][m],
that.tableDatas[25][m]
);
that.tableDatas[38][m] = sumNum(
that.tableDatas[36][m],
that.tableDatas[37][m]
);
that.tableDatas[49][n] = sumNum(
that.tableDatas[8][m],
that.tableDatas[26][m] +
that.tableDatas[38][m] +
that.tableDatas[48][m]
);
}
})
.then(() => {});
},
getTableData() {
for (let i = 0; i < this.tableDatas.length; i++) {
let k = 0;
if (i == 0 || i == 2 || i == 9 || i == 23 || i == 27) {
k = 3;
} else if (i == 49) {
k = 1;
} else {
k = 2;
}
for (let j = k; j < this.tableDatas[i].length; j++) {
this.tableDatas[i][j] = 0;
}
}
this.getData();
},
exportExcel() {
this.exportLoading = true;
this.$XLSX("#myTable", this.tableName);
this.exportLoading = false;
},
handlePrint() {
this.$PRINT("#myReport");
},
},
};
</script>
<style scoped>
.printWrap {
width: 100%;
overflow-x: scroll;
}
</style>