352 lines
13 KiB
JavaScript
352 lines
13 KiB
JavaScript
import React from 'react'
|
||
import { connect } from 'dva'
|
||
import { initFilter, extendRule, extendInclude, getIsPC, openNotificationMobile } from "../../../utils/common"
|
||
import { ChartBarShow_Vertical, LineShow } from "../../../utils/commonEcharsShow"
|
||
import { notification, Button, Descriptions } from 'antd';
|
||
import echarts from 'echarts';
|
||
import styles from '../HI/StepForm.css';
|
||
|
||
const formItemLayout = {
|
||
labelCol: { span: 6 },
|
||
wrapperCol: { span: 14 },
|
||
};
|
||
|
||
// 部门级 2023年度安全检查情况综合统计分析
|
||
class BI053BSSafeCheckYear extends React.Component {
|
||
|
||
constructor(props) {
|
||
super(props);
|
||
this.state = {
|
||
data: {
|
||
titleDate: ' ',
|
||
countPlan: ' ',
|
||
countFinishIntTime: ' ',
|
||
countFinishOutTime: ' ',
|
||
countNotFinish: ' ',
|
||
count1: 0,
|
||
count2: 0,
|
||
count3: 0,
|
||
count4: 0,
|
||
parm7: "",
|
||
parm8: "",
|
||
|
||
count21: 0,
|
||
count22: 0,
|
||
count23: 0,
|
||
parm27: "",
|
||
count10: 7,//选矿安全检查数量
|
||
count20: 3,//尾矿安全检查数量
|
||
year: (new Date()).getFullYear(),
|
||
depName: '选矿部'
|
||
},
|
||
listSafeCheckTypeYear: [],
|
||
listCheckTypeYear: [],
|
||
};
|
||
|
||
};
|
||
|
||
componenthidMount() {
|
||
if (!getIsPC()) {
|
||
openNotificationMobile('bottomRight', notification)
|
||
this.state.displayStr = 'none';
|
||
this.state.displayNum = 24;
|
||
//alert('手机');
|
||
} else {
|
||
this.state.displayStr = '';
|
||
this.state.displayNum = 16;
|
||
//alert('PC');
|
||
}
|
||
this.loadData()
|
||
|
||
//定时器功能,暂时不开启
|
||
// this.timerID = setInterval(() => this.getBaseInfoData(1, this.state.tableKey, 5), 120000);
|
||
|
||
};
|
||
componentDidMount() {
|
||
this.loadData()
|
||
}
|
||
componentWillUnmount() {
|
||
// this.timerID && clearTimeout(this.timerID);
|
||
}
|
||
|
||
//加载数据赋值
|
||
loadData = () => {
|
||
var orgId = this.props.login ? this.props.login.OrgId : '';
|
||
var parm = this.props.login.currActivatedMenu.MENU_FORM_PARAMS
|
||
if (parm == null || parm == undefined)
|
||
parm = 'MineType=10_20'
|
||
let json = initFilter(orgId, parm);
|
||
this.props.dispatch({
|
||
type: 'app/getDataByPost',
|
||
payload: json,
|
||
url: 'BI/BISafeYear/BIDepartmentSafeYearShow',
|
||
onComplete: (result) => {
|
||
if (result) {
|
||
var count1 = 0
|
||
var count2 = 0
|
||
var count3 = 0
|
||
var count4 = 0
|
||
var parm7 = ""
|
||
var parm8 = ""
|
||
|
||
var count21 = 0
|
||
var count22 = 0
|
||
var count23 = 0
|
||
var parm27 = ""
|
||
var count10 = 0//选矿数量
|
||
var count20 = 0//尾矿数量
|
||
|
||
var depName = "部门级"
|
||
//数量赋值
|
||
if (result.listSummary != null && result.listSummary.length == 2) {
|
||
result.listSummary.forEach((item) => {
|
||
if (item.PART == 1) {
|
||
count1 = item.Count1
|
||
count2 = item.Count2
|
||
count3 = item.Count3
|
||
count4 = item.Count4
|
||
parm7 = item.Parameter7
|
||
parm8 = item.Parameter8
|
||
if (item.Parameter9 != null)
|
||
depName = item.Parameter9//部门名称
|
||
} else if (item.PART == 3) {
|
||
count21 = item.Count1
|
||
count22 = item.Count2
|
||
count23 = item.Count3
|
||
parm27 = item.Parameter7
|
||
}
|
||
});
|
||
}
|
||
var year = (new Date()).getFullYear()
|
||
if (result.listSafeCheckTypeYear != null && result.listSafeCheckTypeYear.length > 0) {
|
||
year = result.listSafeCheckTypeYear[0].YEAR
|
||
|
||
result.listSafeCheckTypeYear.forEach(e => {
|
||
if (e.MineType == 10) { count10++ } else if (e.MineType == 20) { count20++ }
|
||
});
|
||
}
|
||
|
||
this.setState({
|
||
data: {
|
||
count1: count1,
|
||
count2: count2,
|
||
count3: count3,
|
||
count4: count4,
|
||
parm7: parm7,
|
||
parm8: parm8,
|
||
|
||
count21: count21,
|
||
count22: count22,
|
||
count23: count23,
|
||
parm27: parm27,
|
||
count10: count10,
|
||
count20: count20,
|
||
listSafeCheckTypeYear: result.listSafeCheckTypeYear,
|
||
listCheckTypeYear: result.listCheckTypeYear,
|
||
year: year,
|
||
depName: depName
|
||
}
|
||
})
|
||
|
||
ChartBarShow_Vertical(echarts, 'divRisk', result.listCheckTypeYear, '安全检查隐患整改统计图(近12个月)')
|
||
|
||
var dataXAxis = []
|
||
var dataSeries = []
|
||
if (result.listCheckTypeYear != null && result.listCheckTypeYear != undefined && result.listCheckTypeYear.length > 0) {
|
||
result.listCheckTypeYear.forEach((item) => {
|
||
dataXAxis.push(item.YEAR + "-" + item.MONTH)
|
||
dataSeries.push(item.FINISHPERCENT)
|
||
})
|
||
}
|
||
|
||
LineShow(echarts, 'divRiskPercent', '安全检查隐患整改率(近12个月)', dataXAxis, dataSeries)
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
// 搜索
|
||
handleSearch = (item) => {
|
||
this.getBaseInfoData(1, item, null);
|
||
}
|
||
|
||
closeModal = () => {
|
||
this.setState({
|
||
searchVisible: false,
|
||
searchTodayVisible: false,
|
||
})
|
||
}
|
||
|
||
render() {
|
||
const { data } = this.state;
|
||
return <div>
|
||
<div className={styles.routeHome}>
|
||
<h1 className={styles.showPrintHead}> {data.depName} <a href='#' style={{ fontWeight: '600', color: 'black' }}>{data.year}年度</a>安全检查情况综合统计分析</h1> {/* {this.props?.login?.currActivatedMenu?.MENU_FORM_PARAMS == "30" ? "矿山部" : "选矿部"} */}
|
||
{/* <h3 style={{ textAlign: 'center' }}>({data.titleDate})</h3> */}
|
||
<div style={{ width: '100%', height: '80px' }}>
|
||
<ul className={styles.menuPie} >
|
||
<li>计划检查数<br />{data.count1}</li>
|
||
<li>按时已办<br />{data.count2}</li>
|
||
<li>超时已办<br />{data.count3}</li>
|
||
<li>未完成数<br /><a href='#' style={{ color: 'red' }}>{data.count4}</a></li>
|
||
<li>完成率<br /><a href='#' style={{ color: 'red' }}>{data.parm7}</a></li>
|
||
<li>及时完成率<br /><a href='#' style={{ color: 'red' }}>{data.parm8}</a></li>
|
||
</ul>
|
||
</div>
|
||
<hr />
|
||
{/* 表一 */}
|
||
<div>
|
||
<div style={{ float: 'left' }} >
|
||
{
|
||
data?.listSafeCheckTypeYear ? (
|
||
<ul className={styles.menuPie} >
|
||
{
|
||
data.listSafeCheckTypeYear.map((item) => {
|
||
if (item.NAME != '合计') {
|
||
return <li>
|
||
{item.NAME} <br /> {item.COUNTTOTAL}
|
||
</li>
|
||
}
|
||
})
|
||
}
|
||
</ul>
|
||
) : (
|
||
<ul className={styles.menuPie} >
|
||
<li>巡回检查</li>
|
||
<li>例行检查</li>
|
||
<li>专业检查</li>
|
||
<li>季节性检查</li>
|
||
<li>节假日检查</li>
|
||
<li>复产前检查</li>
|
||
<li>上级布置</li>
|
||
</ul>
|
||
)
|
||
}
|
||
|
||
</div>
|
||
<div style={{ float: 'left', marginLeft: '26px' }}>
|
||
<table className={styles.tableRow}>
|
||
<tbody>
|
||
<tr>
|
||
<th>序号</th>
|
||
<th>检查层级</th>
|
||
<th>1月</th>
|
||
<th>2月</th>
|
||
<th>3月</th>
|
||
<th>4月</th>
|
||
<th>5月</th>
|
||
<th>6月</th>
|
||
<th>7月</th>
|
||
<th>8月</th>
|
||
<th>9月</th>
|
||
<th>10月</th>
|
||
<th>11月</th>
|
||
<th>12月</th>
|
||
<th>合计</th>
|
||
<th>备注</th>
|
||
|
||
</tr>
|
||
{
|
||
data?.listSafeCheckTypeYear ? (data.listSafeCheckTypeYear.map((item, i) => {
|
||
if (item.NAME == '合计') {
|
||
return <tr>
|
||
<td colSpan={2}>{item.NAME}</td>
|
||
<td>{item.COUNTJANUARY == 0 ? '' : item.COUNTJANUARY}</td>
|
||
<td>{item.COUNTFEBRUARY == 0 ? '' : item.COUNTFEBRUARY}</td>
|
||
<td>{item.COUNTMARCH == 0 ? '' : item.COUNTMARCH}</td>
|
||
<td>{item.COUNTAPRIL == 0 ? '' : item.COUNTAPRIL}</td>
|
||
<td>{item.COUNTMAY == 0 ? '' : item.COUNTMAY}</td>
|
||
<td>{item.COUNTJUNE == 0 ? '' : item.COUNTJUNE}</td>
|
||
<td>{item.COUNTJULY == 0 ? '' : item.COUNTJULY}</td>
|
||
<td>{item.COUNTAUGUST == 0 ? '' : item.COUNTAUGUST}</td>
|
||
<td>{item.COUNTSEPTEMBER == 0 ? '' : item.COUNTSEPTEMBER}</td>
|
||
<td>{item.COUNTOCTOBER == 0 ? '' : item.COUNTOCTOBER}</td>
|
||
<td>{item.COUNTNOVEMBER == 0 ? '' : item.COUNTNOVEMBER}</td>
|
||
<td>{item.COUNTDECEMBER == 0 ? '' : item.COUNTDECEMBER}</td>
|
||
<td>{item.COUNTTOTAL == 0 ? '' : item.COUNTTOTAL}</td>
|
||
<td></td>
|
||
</tr>
|
||
}
|
||
else if (item.ROW_NO == 0) {
|
||
return <tr>
|
||
{/* <td>{item.ROW_NO + 1}</td> */}
|
||
<td>{i + 1}</td>
|
||
<td>{item.NAME}</td>
|
||
<td>{item.COUNTJANUARY == 0 ? '' : item.COUNTJANUARY}</td>
|
||
<td>{item.COUNTFEBRUARY == 0 ? '' : item.COUNTFEBRUARY}</td>
|
||
<td>{item.COUNTMARCH == 0 ? '' : item.COUNTMARCH}</td>
|
||
<td>{item.COUNTAPRIL == 0 ? '' : item.COUNTAPRIL}</td>
|
||
<td>{item.COUNTMAY == 0 ? '' : item.COUNTMAY}</td>
|
||
<td>{item.COUNTJUNE == 0 ? '' : item.COUNTJUNE}</td>
|
||
<td>{item.COUNTJULY == 0 ? '' : item.COUNTJULY}</td>
|
||
<td>{item.COUNTAUGUST == 0 ? '' : item.COUNTAUGUST}</td>
|
||
<td>{item.COUNTSEPTEMBER == 0 ? '' : item.COUNTSEPTEMBER}</td>
|
||
<td>{item.COUNTOCTOBER == 0 ? '' : item.COUNTOCTOBER}</td>
|
||
<td>{item.COUNTNOVEMBER == 0 ? '' : item.COUNTNOVEMBER}</td>
|
||
<td>{item.COUNTDECEMBER == 0 ? '' : item.COUNTDECEMBER}</td>
|
||
<td>{item.COUNTTOTAL}</td>
|
||
{/* {item.MineType == 10 ? <td rowSpan={data.count10}>选矿</td> : <td rowSpan={data.count20}>尾矿</td>} */}
|
||
{item.MineType == 10 ? (i==0?<td rowSpan={data.count10}>选矿</td> :null):( (i ==data.count10)? <td rowSpan={data.count20}>尾矿</td>:null)}
|
||
</tr>
|
||
}
|
||
else {
|
||
return <tr>
|
||
{/* <td>{item.ROW_NO + 1}</td> */}
|
||
<td>{i + 1}</td>
|
||
<td>{item.NAME}</td>
|
||
<td>{item.COUNTJANUARY == 0 ? '' : item.COUNTJANUARY}</td>
|
||
<td>{item.COUNTFEBRUARY == 0 ? '' : item.COUNTFEBRUARY}</td>
|
||
<td>{item.COUNTMARCH == 0 ? '' : item.COUNTMARCH}</td>
|
||
<td>{item.COUNTAPRIL == 0 ? '' : item.COUNTAPRIL}</td>
|
||
<td>{item.COUNTMAY == 0 ? '' : item.COUNTMAY}</td>
|
||
<td>{item.COUNTJUNE == 0 ? '' : item.COUNTJUNE}</td>
|
||
<td>{item.COUNTJULY == 0 ? '' : item.COUNTJULY}</td>
|
||
<td>{item.COUNTAUGUST == 0 ? '' : item.COUNTAUGUST}</td>
|
||
<td>{item.COUNTSEPTEMBER == 0 ? '' : item.COUNTSEPTEMBER}</td>
|
||
<td>{item.COUNTOCTOBER == 0 ? '' : item.COUNTOCTOBER}</td>
|
||
<td>{item.COUNTNOVEMBER == 0 ? '' : item.COUNTNOVEMBER}</td>
|
||
<td>{item.COUNTDECEMBER == 0 ? '' : item.COUNTDECEMBER}</td>
|
||
<td>{item.COUNTTOTAL}</td>
|
||
</tr>
|
||
}
|
||
})) : (
|
||
<tr>
|
||
<td colSpan={16}>数据加载中...</td>
|
||
</tr>
|
||
)
|
||
}
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
{/* 表一 */}
|
||
|
||
<div >
|
||
<div style={{ width: '100%', height: '450px', float: 'left', marginTop: '15px' }}> {/* */}
|
||
<div style={{ height: '2px', width: '100%', border: '1px dashed rgba(0, 0, 0, 0.65)' }} ></div>
|
||
|
||
<div style={{ float: 'left', width: '150px' }}>
|
||
<ul className={styles.menuPie2} style={{ marginTop: '80px' }} >
|
||
<li>隐患数<br />{data.count21}</li>
|
||
<li>延期整改数<br />{data.count22}</li>
|
||
<li>按期整改数<br />{data.count23}</li>
|
||
<li>整改率<br />{data.parm27}</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div id='divRisk' style={{ width: '40%', height: '430px', float: 'left', marginTop: '20px' }}>
|
||
</div>
|
||
|
||
<div id='divRiskPercent' style={{ width: '40%', height: '430px', float: 'left', marginTop: '20px' }}>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div >
|
||
}
|
||
}
|
||
export default connect(({ login, app }) => ({ login, app }))(BI053BSSafeCheckYear)
|