报表优化

This commit is contained in:
何美荣 2026-05-19 16:29:12 +08:00
parent 3ce5307907
commit 8dd1ff1bab

View File

@ -1,7 +1,8 @@
import React from 'react';
import { connect } from 'dva';
import moment from 'moment'
import { initFilter } from '../../../utils/common';
import { Table, Row, Spin, Card, Modal, Col, Button, Form } from 'antd';
import { Table, Row, Spin, Card, Modal, DatePicker,Col, Button, Form ,Select} from 'antd';
import DropDownPagination from '../../common/DropDownPaginationEx';
class BI064FormRunAnalysis extends React.Component {
constructor(props) {
@ -9,6 +10,11 @@ class BI064FormRunAnalysis extends React.Component {
this.state = {
depart: {},
inputText: '',
inputText2: '',
inputText3: '',
startTime:moment(this.getDate(), 'YYYY-MM-DD 00:00:00'),//moment(new Date()).add(-1, "month").format('YYYY-MM-DD 00:00:00'),
endTime:moment(this.getEndDate(), 'YYYY-MM-DD 23:59:59'),
selectForms:[],
retData: [], // 表单运行数据
companyData: [], // 公司数据
loading: true,
@ -65,7 +71,50 @@ class BI064FormRunAnalysis extends React.Component {
],
};
}
getDate=()=>{
let date = new Date()
let y = date.getFullYear()
let m = date.getMonth() + 1
let d = date.getDate();
// 当前日期
let nowDate = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
// 一月的时候年份要减一
// if(m == 1) {
// y--
// m = 12
// }else if(m == 3 && d > 28) {
// //三月要考虑是否为闰年
// m--
// if(y%4 == 0 && y%100!=0 || y%400 == 0) {
// d = 29
// }else {
// d-28
// }
// }else if((m != 12 || m != 8 )&& d == 31) {
// //31号的月份要考虑上个月是否有31号
// m--
// d = 30
// }else {
// m--
// }
// 一个月前的日期(默认月份)
//let pastDate = y + (m < 10 ? "0" + m : m) + (d < 10 ? "0" + d : d)
let pastDate = moment(nowDate).add(-1, "day").format('YYYY-MM-DD 00:00:00')
return pastDate;
}
getEndDate=()=>{
let date = new Date()
let y = date.getFullYear()
let m = date.getMonth() + 1
let d = date.getDate();
// 当前日期
let nowDate = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
let pastDate = moment(nowDate).add(-1, "day").add(23,'hour').add(59,'m').add(59,'s')//format('YYYY-MM-DD 23:59:59')
return pastDate;
}
componentDidMount() {
this.loadData();
}
@ -84,6 +133,239 @@ class BI064FormRunAnalysis extends React.Component {
inputText: record ? record?.NAME : this.state.inputText,
});
};
handleSearch2 = (value) => {
let temps = [
{
label: '安全风险辨识与评估计划',
value: '安全风险辨识与评估计划',
},{
label: '安全风险辨识表',
value: '安全风险辨识表',
},{
label: '安全风险辨识结果表',
value: '安全风险辨识结果表',
},{
label: '安全风险辨识结果汇总表',
value: '安全风险辨识结果汇总表',
},{
label: '安全风险评估表',
value: '安全风险评估表',
},{
label: '安全风险评估汇总表',
value: '安全风险评估汇总表',
},{
label: '风险检查关联表',
value: '风险检查关联表',
},
{
label: '安全检查通知',
value: '安全检查通知',
},
{
label: '安全检查记录',
value: '安全检查记录',
},
{
label: '安全检查记录汇总',
value: '安全检查记录汇总',
},
{
label: '隐患上报',
value: '隐患上报',
},
{
label: '手动隐患上报完善',
value: '手动隐患上报完善',
},
{
label: '隐患确认单',
value: '隐患确认单',
},
{
label: '隐患整改通知单',
value: '隐患整改通知单',
},
{
label: '隐患整改记录',
value: '隐患整改记录',
},
{
label: '延期整改申请',
value: '延期整改申请',
}
];
if(value === "双重预防机制" )
{
temps = [
{
label: '安全风险辨识与评估计划',
value: '安全风险辨识与评估计划',
},{
label: '安全风险辨识表',
value: '安全风险辨识表',
},{
label: '安全风险辨识结果表',
value: '安全风险辨识结果表',
},{
label: '安全风险辨识结果汇总表',
value: '安全风险辨识结果汇总表',
},{
label: '安全风险评估表',
value: '安全风险评估表',
},{
label: '安全风险评估汇总表',
value: '安全风险评估汇总表',
},{
label: '风险检查关联表',
value: '风险检查关联表',
},
{
label: '安全检查通知',
value: '安全检查通知',
},
{
label: '安全检查记录',
value: '安全检查记录',
},
{
label: '安全检查记录汇总',
value: '安全检查记录汇总',
},
{
label: '隐患上报',
value: '隐患上报',
},
{
label: '手动隐患上报完善',
value: '手动隐患上报完善',
},
{
label: '隐患确认单',
value: '隐患确认单',
},
{
label: '隐患整改通知单',
value: '隐患整改通知单',
},
{
label: '隐患整改记录',
value: '隐患整改记录',
},
{
label: '延期整改申请',
value: '延期整改申请',
}];
}
if(value === "作业现场安全管理" )
{
temps = [
{
label: '班前会议',
value: '班前会议',
},{
label: '岗位当班记录',
value: '岗位当班记录',
},{
label: '交接班记录',
value: '交接班记录',
},{
label: '班组活动记录',
value: '班组活动记录',
},{
label: '一般作业活动记录',
value: '一般作业活动记录',
},{
label: '作业方案讨论记录',
value: '作业方案讨论记录',
},{
label: '关键许可工作票',
value: '关键许可工作票',
},
{
label: '安全技术交底表',
value: '安全技术交底表',
},
{
label: '关键许可作业活动记录',
value: '关键许可作业活动记录',
},
{
label: '矿山动火作业工作票',
value: '矿山动火作业工作票',
},
{
label: '技术交底表',
value: '技术交底表',
},
{
label: '安全交底表',
value: '安全交底表',
},
{
label: '领导带班下井记录',
value: '领导带班下井记录',
}
];
}
if(value === "安全教育与培训" )
{
temps = [
{
label: '安全意识调查',
value: '安全意识调查',
},{
label: '培训需求调查',
value: '培训需求调查',
},{
label: '培训通知',
value: '培训通知',
},{
label: '培训通知(转训)',
value: '培训通知(转训)',
},{
label: '培训记录',
value: '培训记录',
},{
label: '培训效果评估调查表',
value: '培训效果评估调查表',
},{
label: '三级安全教育培训记录',
value: '三级安全教育培训记录',
},
{
label: '新三级安全教育记录',
value: '新三级安全教育记录',
},
{
label: '新三级安全教育卡',
value: '新三级安全教育卡',
}
];
}
this.setState({
inputText2: value,
selectForms:temps
})
}
handleSearch3 = (value) => {
this.setState({
inputText3: value
})
}
startChange=(value)=>{
this.setState({
startTime:value
})
};
endChange=(value)=>{
this.setState({
endTime:value
})
};
// 获取公司数据
getBaseData = () => {
const json = initFilter(this.props.login.OrgId);
@ -111,7 +393,7 @@ class BI064FormRunAnalysis extends React.Component {
// 获取表单运行数据
getrealData = () => {
// const json = initFilter(this.props.login.OrgId);
let json = initFilter('00300000-0000-0000-0000-000000000000', this.state.inputText);
let json = initFilter('00300000-0000-0000-0000-000000000000', this.state.inputText,"","","",this.state.startTime,this.state.endTime);
this.props.dispatch({
type: 'app/getDataByPost',
url: 'BI/BIStatiscialAnalysisController/GetTaskViewInfo',
@ -119,6 +401,14 @@ class BI064FormRunAnalysis extends React.Component {
onlyData: false,
onComplete: (ret) => {
if (ret && ret.Data) {
if(this.state.inputText2)
{
ret.Data= ret.Data.filter((t) => t.MOULD_NAME === this.state.inputText2);
}
if(this.state.inputText3)
{
ret.Data= ret.Data.filter((t) => t.FORM_NAME === this.state.inputText3);
}
this.setState({ retData: ret.Data, loading: false }, () => {
this.processData();
});
@ -134,6 +424,7 @@ class BI064FormRunAnalysis extends React.Component {
const { retData, companyData, inputText } = this.state;
if (!retData.length || !companyData.length) return;
let companyDataTemp = companyData.filter((t) => t.NAME === inputText);
// 获取所有模块和表单的列表
const modules = [...new Set(retData.map((item) => item.MOULD_NAME))];
const forms = [];
@ -454,7 +745,7 @@ class BI064FormRunAnalysis extends React.Component {
};
render() {
const { tableData, columns, loading } = this.state;
const { tableData, columns, loading,selectForms } = this.state;
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 16 },
@ -516,7 +807,60 @@ class BI064FormRunAnalysis extends React.Component {
/>
</Form.Item>
</Col>
<Col span={1} style={{ marginLeft: '20px' }}>
<Col span={5}>
<Form.Item
label={'模块'}
{...formItemLayout}
>
<Select
style={{ width: '180px' }}
allowClear
onChange={this.handleSearch2}
>
<Option value="双重预防机制">双重预防机制</Option>
<Option value="作业现场安全管理">作业现场安全管理</Option>
<Option value="安全教育与培训">安全教育与培训</Option>
</Select>
</Form.Item>
</Col>
<Col span={5}>
<Form.Item
label={'表单'}
{...formItemLayout}
>
<Select
style={{ width: '180px' }}
allowClear
onChange={this.handleSearch3}
options={selectForms}
/>
</Form.Item>
</Col>
<Col span={5} style={{ marginLeft: "10px" }}>
<Form.Item
label={'开始时间:'}
{...formItemLayout}
>
<DatePicker showTime
// defaultValue={moment(this.state.startTime, 'YYYY-MM-DD 00:00:00')}
value={this.state.startTime}
format="YYYY-MM-DD HH:mm:ss" onChange={this.startChange}/>
</Form.Item>
</Col>
<Col span={5} style={{ marginLeft: "10px" }}>
<Form.Item
label={'结束时间:'}
{...formItemLayout}
>
<DatePicker showTime
// defaultValue={moment(this.state.endTime, 'YYYY-MM-DD 23:59:59')}
value={this.state.endTime}
format="YYYY-MM-DD HH:mm:ss" onChange={this.endChange}/>
</Form.Item>
</Col>
<Col span={2} style={{ marginLeft: '20px' }}>
<Button type="primary" onClick={() => this.getrealData()}>
查询
</Button>