factory_web/src/views/enm_energy/electric_month.vue

339 lines
16 KiB
Vue

<!-- 全厂电量统计 -->
<template>
<div class="app-container">
<el-header>
<div class="left-panel">
<el-date-picker
v-model="search_date"
type="year"
value-format="YYYY"
format="YYYY"
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="1500" cellspacing="0" :key="timeStamp" id="myTable" class="myTable">
<thead class="myTableHead">
<tr>
<th colspan="15">全厂电量月统计</th>
</tr>
<tr>
<th>车间</th>
<th>工段</th>
<th>设备</th>
<th v-for="month in 12" :key="month">{{month}}月</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">{{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" v-if="item[13]!==null&&item[13]!==undefined">{{item[13]}}</td>
<td class="numCell" v-if="item[14]!==null&&item[14]!==undefined">{{item[14]}}</td>
</tr>
</table>
</div>
</div>
</el-card>
</div>
</template>
<script>
export default {
data() {
return {
year:'',
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],//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],//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],//8
['烧成车间','回转窑','高温风机',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],//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],//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],
['烧成车间','空压机3301',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],//20
['烧成车间','空压机3318',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],//25
['烧成车间','烧成车间合计',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],//27
['水泥车间','系统风机',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],//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],
['水泥车间','水泥1#空压机',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],//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],//37
['水泥车间','水泥车间合计',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],//39
['生活区','单元楼',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],//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]
],
tableName:'全厂电量月统计',
sourceData:{}
};
},
mounted() {
let that = this;
var nowDate = new Date();
that.year = nowDate.getFullYear();
that.search_date = that.year+'';
this.getData();
},
methods: {
dateChange(e){
let that = this;
that.year = Number(e);
},
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='month_s';
obj.year_s = that.year;
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 month = item.month_s;
if(wrapArr[month]){
wrapArr[month].push(item)
}else{
wrapArr[month]=[];
wrapArr[month].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<12;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]);
}
})
},
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>