|
|
|
import { HttpClient } from '@angular/common/http';
|
|
|
|
import { Component, OnInit } from '@angular/core';
|
|
|
|
import { MethodService } from 'src/app/service/method.service';
|
|
|
|
import { TreeService } from 'src/app/service/tree.service';
|
|
|
|
import * as moment from 'moment';
|
|
|
|
import * as echarts from 'echarts';
|
|
|
|
import { Router } from '@angular/router';
|
|
|
|
import { NzMessageService } from 'ng-zorro-antd/message';
|
|
|
|
@Component({
|
|
|
|
selector: 'app-examine',
|
|
|
|
templateUrl: './examine.component.html',
|
|
|
|
styleUrls: ['./examine.component.scss']
|
|
|
|
})
|
|
|
|
export class ExamineComponent implements OnInit {
|
|
|
|
|
|
|
|
constructor(private http: HttpClient, private toTree: TreeService, private methodService: MethodService, private router: Router, private message: NzMessageService) { }
|
|
|
|
|
|
|
|
|
|
|
|
echartsOfBar
|
|
|
|
echartsOfBarOption = {
|
|
|
|
grid: {
|
|
|
|
left: '2%',
|
|
|
|
right: '2%',
|
|
|
|
top: '18%',
|
|
|
|
bottom: '16%'
|
|
|
|
},
|
|
|
|
legend: {
|
|
|
|
top: '3%',
|
|
|
|
left: 'center',
|
|
|
|
itemGap: 15,
|
|
|
|
itemWidth: 10,
|
|
|
|
itemHeight: 10,
|
|
|
|
orient: 'horizontal'
|
|
|
|
},
|
|
|
|
tooltip: {
|
|
|
|
trigger: 'axis',
|
|
|
|
axisPointer: {
|
|
|
|
type: 'shadow'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
xAxis: {
|
|
|
|
type: 'category',
|
|
|
|
data: [],
|
|
|
|
axisTick: { //x轴刻度尺
|
|
|
|
show: false
|
|
|
|
},
|
|
|
|
axisLine: {//x轴线条颜色
|
|
|
|
show: false,
|
|
|
|
lineStyle: {
|
|
|
|
color: '#C7CAD0'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
axisLabel: {
|
|
|
|
show: true,
|
|
|
|
interval: 0,//使x轴上的文字显示完全,
|
|
|
|
//设置一行显示几个字,自己设置
|
|
|
|
formatter: function (params) {
|
|
|
|
var newParamsName = "";
|
|
|
|
var paramsNameNumber = params.length;
|
|
|
|
var provideNumber = 6;
|
|
|
|
var rowNumber = Math.ceil(paramsNameNumber / provideNumber);
|
|
|
|
if (paramsNameNumber > provideNumber) {
|
|
|
|
for (var p = 0; p < rowNumber; p++) {
|
|
|
|
var tempStr = "";
|
|
|
|
var start = p * provideNumber;
|
|
|
|
var end = start + provideNumber;
|
|
|
|
if (p == rowNumber - 1) {
|
|
|
|
tempStr = params.substring(start, paramsNameNumber);
|
|
|
|
} else {
|
|
|
|
tempStr = params.substring(start, end) + "\n";
|
|
|
|
}
|
|
|
|
newParamsName += tempStr;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
newParamsName = params;
|
|
|
|
}
|
|
|
|
return newParamsName;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
yAxis: {
|
|
|
|
type: 'value',
|
|
|
|
splitLine: {//网格线
|
|
|
|
lineStyle: {
|
|
|
|
type: 'solid', //设置网格线类型 dotted:虚线 solid:实线
|
|
|
|
color: '#ECEFF1' //网格线颜色
|
|
|
|
},
|
|
|
|
},
|
|
|
|
axisLine: {//y轴线条颜色
|
|
|
|
show: false,
|
|
|
|
lineStyle: {
|
|
|
|
color: '#C7CAD0'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
series: [
|
|
|
|
{
|
|
|
|
name: '隐患数',
|
|
|
|
type: 'bar',
|
|
|
|
barWidth: 16, // 柱子宽度
|
|
|
|
label: {
|
|
|
|
show: false
|
|
|
|
},
|
|
|
|
emphasis: {
|
|
|
|
focus: 'series'
|
|
|
|
},
|
|
|
|
data: []
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '当场整改',
|
|
|
|
type: 'bar',
|
|
|
|
barWidth: 16, // 柱子宽度
|
|
|
|
label: {
|
|
|
|
show: false
|
|
|
|
},
|
|
|
|
emphasis: {
|
|
|
|
focus: 'series'
|
|
|
|
},
|
|
|
|
data: []
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '推送大队',
|
|
|
|
type: 'bar',
|
|
|
|
barWidth: 16, // 柱子宽度
|
|
|
|
label: {
|
|
|
|
show: false
|
|
|
|
},
|
|
|
|
emphasis: {
|
|
|
|
focus: 'series'
|
|
|
|
},
|
|
|
|
data: []
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '社会单位数量',
|
|
|
|
type: 'bar',
|
|
|
|
barWidth: 16, // 柱子宽度
|
|
|
|
label: {
|
|
|
|
show: false
|
|
|
|
},
|
|
|
|
emphasis: {
|
|
|
|
focus: 'series'
|
|
|
|
},
|
|
|
|
data: []
|
|
|
|
}
|
|
|
|
]
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
searchForm = {
|
|
|
|
or: '',
|
|
|
|
date: null
|
|
|
|
}
|
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.searchForm.date = this.methodService.getDateOf30()
|
|
|
|
this.getAllOrganization()
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
this.echartsOfBar = echarts.init(document.getElementById('echarts'), null, { devicePixelRatio: 2 });
|
|
|
|
}, 0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isLoading = false
|
|
|
|
expandKeys
|
|
|
|
defaultOrId: string
|
|
|
|
//获取所有组织机构
|
|
|
|
nodes: any = []
|
|
|
|
getAllOrganization() {
|
|
|
|
this.isLoading = true
|
|
|
|
let organizationId = JSON.parse(sessionStorage.getItem('userData')).organizationId
|
|
|
|
let params = {
|
|
|
|
ContainsChildren: "true",
|
|
|
|
PageNumber: 1,
|
|
|
|
PageSize: 9999,
|
|
|
|
code: '0000'
|
|
|
|
}
|
|
|
|
this.http.get('/api/Organizations', {
|
|
|
|
params: params
|
|
|
|
}).subscribe((data: any) => {
|
|
|
|
console.log(data.items)
|
|
|
|
data.items.forEach(element => {
|
|
|
|
if (element.id == organizationId) {
|
|
|
|
element.parentId = null
|
|
|
|
}
|
|
|
|
element.key = element.id
|
|
|
|
element.title = element.name
|
|
|
|
if (element.level == 'squadron') {
|
|
|
|
element.isLeaf = true
|
|
|
|
}
|
|
|
|
});
|
|
|
|
this.nodes = [...this.toTree.toTree(data.items)]
|
|
|
|
this.searchForm.or = JSON.parse(sessionStorage.getItem('userData')).organizationId
|
|
|
|
|
|
|
|
|
|
|
|
this.getRecord()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
search() {
|
|
|
|
this.getRecord()
|
|
|
|
}
|
|
|
|
reset() {
|
|
|
|
this.searchForm = {
|
|
|
|
date: this.methodService.getDateOf30(),
|
|
|
|
or: JSON.parse(sessionStorage.getItem('userData')).organizationId
|
|
|
|
}
|
|
|
|
this.getRecord()
|
|
|
|
}
|
|
|
|
|
|
|
|
listOfData = [];
|
|
|
|
|
|
|
|
getRecord() {
|
|
|
|
this.isLoading = true
|
|
|
|
this.http.get('/api/PlanTasks/GetOrgRecheckStat', {
|
|
|
|
params: {
|
|
|
|
OrganizationId: this.searchForm.or,
|
|
|
|
CheckStartTime: moment(this.searchForm.date[0]).format('yyyy-MM-DD') + ' 00:00:00',
|
|
|
|
CheckEndTime: moment(this.searchForm.date[1]).format('yyyy-MM-DD') + ' 23:59:59'
|
|
|
|
}
|
|
|
|
}).subscribe({
|
|
|
|
next: (data: any) => {
|
|
|
|
this.listOfData = [...data]
|
|
|
|
console.log('统计表格', data)
|
|
|
|
this.isLoading = false
|
|
|
|
setTimeout(() => {
|
|
|
|
this.echartsSetData(this.listOfData)
|
|
|
|
}, 0);
|
|
|
|
|
|
|
|
},
|
|
|
|
error: (err) => {
|
|
|
|
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
echartsSetData(data) {
|
|
|
|
this.echartsOfBar.clear();
|
|
|
|
|
|
|
|
let barData = data
|
|
|
|
let Barx = []
|
|
|
|
let Bary1 = []
|
|
|
|
let Bary2 = []
|
|
|
|
let Bary3 = []
|
|
|
|
let Bary4 = []
|
|
|
|
barData.forEach(element => {
|
|
|
|
Barx.push(element['组织机构'].name)
|
|
|
|
Bary1.push(element['总隐患数'])//已完成
|
|
|
|
Bary2.push(element['当场整改数'])//未完成
|
|
|
|
Bary3.push(element['上报数量'])//已完成
|
|
|
|
Bary4.push(element['单位数量'])//未完成
|
|
|
|
});
|
|
|
|
this.echartsOfBarOption.xAxis.data = Barx
|
|
|
|
this.echartsOfBarOption.series[0].data = Bary1
|
|
|
|
this.echartsOfBarOption.series[1].data = Bary2
|
|
|
|
this.echartsOfBarOption.series[2].data = Bary3
|
|
|
|
this.echartsOfBarOption.series[3].data = Bary4
|
|
|
|
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
this.echartsOfBar && this.echartsOfBar.setOption(this.echartsOfBarOption);
|
|
|
|
}, 0);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
isSubordinate = false
|
|
|
|
openSubordinate(item) {
|
|
|
|
if (item.id != this.searchForm.or && item.level === 'battalion') {
|
|
|
|
this.isSubordinate = true
|
|
|
|
this.searchForm.or = item.id
|
|
|
|
this.getRecord()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
tableBack() {
|
|
|
|
this.isSubordinate = false
|
|
|
|
this.searchForm.or = JSON.parse(sessionStorage.getItem('userData')).organizationId
|
|
|
|
this.getRecord()
|
|
|
|
}
|
|
|
|
|
|
|
|
goback() {
|
|
|
|
this.router.navigate(['/statistic/home'])
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
exportExcel() {
|
|
|
|
const httpOptions = {
|
|
|
|
responseType: 'blob' as 'json',
|
|
|
|
params: {
|
|
|
|
OrganizationId: this.searchForm.or,
|
|
|
|
CheckStartTime: moment(this.searchForm.date[0]).format('yyyy-MM-DD') + ' 00:00:00',
|
|
|
|
CheckEndTime: moment(this.searchForm.date[1]).format('yyyy-MM-DD') + ' 23:59:59',
|
|
|
|
RecheckStaType: '检查情况'
|
|
|
|
}
|
|
|
|
};
|
|
|
|
this.http.get(`/api/PlanTasks/ExportOrgRecheckStat`, httpOptions).subscribe({
|
|
|
|
next: (data: any) => {
|
|
|
|
const link = document.createElement('a');
|
|
|
|
const blob = new Blob([data], { type: 'application/vnd.ms-excel' });
|
|
|
|
link.setAttribute('href', window.URL.createObjectURL(blob));
|
|
|
|
link.setAttribute('download', '检查情况统计' + '.xls');
|
|
|
|
link.style.visibility = 'hidden';
|
|
|
|
document.body.appendChild(link);
|
|
|
|
link.click();
|
|
|
|
document.body.removeChild(link);
|
|
|
|
this.message.create('success', `导出成功`);
|
|
|
|
},
|
|
|
|
error: err => {
|
|
|
|
this.message.create('error', `导出失败`);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|