mh_jy_safe_web/src/components/CustomPages/SO/ShowMrpByProposalPage.js

304 lines
11 KiB
JavaScript
Raw Normal View History

2025-08-25 10:08:30 +08:00
import React from 'react';
import { connect } from 'dva';
import { Button, Row, Col, Form, Input,Select,Checkbox,Modal,Transfer,Spin ,Table,InputNumber,DatePicker,message} from 'antd';
import { extend, extendRule, initFilter, initQueryFilter, getOnlyPropertyData, extendInclude,getDataFieldValue,setDataFieldValue,empty} from "../../../utils/common";
import moment from 'moment';
import DropDownPagination from '../../common/DropDownPaginationEx';
const FormItem = Form.Item;
const Option = Select.Option;
//查看依据工程方案MRP单
class ShowMrpByProposalPage extends React.Component {
constructor(props) {
super(props);
this.state = {
data: {},
btns:[],
checked:true,
};
};
componentDidMount() {
this.props.form.resetFields();
this.loadData();
}
componentWillReceiveProps(NextProps) {
const {data}=this.props;
let {id}=data?data:{};
if(!id)
id='';
if (NextProps.custom['showMrpByProposalClick'+id] ) {
this.props.form.resetFields();
this.loadData();
this.props.dispatch({
type: 'custom/save',
payload: {
['showMrpByProposalClick'+id]:false
},
});
}
}
loadData=()=> {
const {data,formId,login,dispatch}=this.props;
const {id}=data?data:{};
if(id){
const json = initFilter(this.props.login.OrgId);
extendRule(json, 'ID', 1, id);
extendInclude(json,'Nav_Product');
extendInclude(json,'Nav_EmProposals.Nav_Product');
this.props.dispatch({
type: 'SOMrpEdit/getMrp',
payload: json,
onComplete: (ret) => {
if(ret){
if(ret.Nav_EmProposals){
ret.Nav_EmProposals.sort((x, y) => (x.PROPOSAL_TYPE > y.PROPOSAL_TYPE) ? 1 : -1)
}
this.setState({
data: ret
});
}
}
});
}
else{
this.setState({
data:{}
});
}
};
render() {
const {form, location, dispatch, match,loading} = this.props;
const {getFieldValue, getFieldDecorator, validateFields, validateFieldsAndScroll, setFieldsValue} = form;
const enums=this.props.app.enums;
const renderProposal=(field,record)=>{
if(record.PROPOSAL_TYPE==0) {
if (field == 'SPLIT_QTY' || field == 'SET' || field == 'SPLIT_QTY' || field == 'FEED_QTY' || field == 'PCS' ||
field == 'OUTPUT_PCS_QTY'||field=='FEED_AREA_QTY') {
return;
}
return getDataFieldValue(record, field);
}
if(field=='INVENTORY_QTY'||field=='Nav_Product.INVENTORY_MIN_LIMIT_NUMBER'||field=='PURCHASE_QTY')
return;
return getDataFieldValue(record,field);
}
const tableColumns=[
{title: '', dataIndex: '', key: '',width:100, render: (text, record, index)=>{return renderProposal('DESCRIPTION',record)}},
{title: '长度', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('LENGTH',record)}},
{title: '宽度', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('WIDTH',record)}},
{title: 'PCS/拼版', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('PCS',record)}},
{title: 'SET/拼版', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('SET',record)}},
{title: '可切割数', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('SPLIT_QTY',record)}},
{title: '库存数量', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('INVENTORY_QTY',record)}},
{title: '投料数量', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('FEED_QTY',record)}},
{title: '投料面积', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('FEED_AREA_QTY',record)}},
{title: '产出PCS', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('OUTPUT_PCS_QTY',record)}},
{title: '最低库存数', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('Nav_Product.INVENTORY_MIN_LIMIT_NUMBER',record)}},
{title: '申请采购数', dataIndex: '', key: '', render: (text, record, index)=>{return renderProposal('PURCHASE_QTY',record)}},
]
const formItemLayout = {
labelCol: {span: 6},
wrapperCol: {span: 14},
};
return (
<div>
<Form>
<Row>
<Col span={12}>
<Form.Item
label={'产品名称'}
{...formItemLayout}
>
{getFieldDecorator('PRODUCT_NAME', {
initialValue: (this.state.data.Nav_Product==null?'':this.state.data.Nav_Product.NAME),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'产品编号'}
{...formItemLayout}
>
{getFieldDecorator('PRODUCT_CODE', {
initialValue: (this.state.data.Nav_Product==null?'':this.state.data.Nav_Product.CODE),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'交货方式'}
{...formItemLayout}
>
{getFieldDecorator('PRODUCT_SPLIT_QTY', {
initialValue: (this.state.data.Nav_Product==null?'':this.state.data.Nav_Product.SPLIT_QTY),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'单PCS尺寸'}
{...formItemLayout}
>
{getFieldDecorator('PRODUCT_PCS_SIZE', {
initialValue: (this.state.data.Nav_Product==null?'':this.state.data.Nav_Product.PCS_SIZE),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'拼版尺寸'}
{...formItemLayout}
>
{getFieldDecorator('PRODUCT_SPLIT_SIZE', {
initialValue: (this.state.data.Nav_Product==null?'':this.state.data.Nav_Product.SPLIT_SIZE),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'产品损耗率'}
{...formItemLayout}
>
{getFieldDecorator('ProductLossRaitoStr', {
initialValue:(this.state.data.Nav_Product==null?'':((this.state.data.Nav_Product.LOSS_RATIO*100).toFixed(2)+'%')),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'订单数量'}
{...formItemLayout}
>
{getFieldDecorator('QTY', {
initialValue: this.state.data.QTY,
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'当前库存数量'}
{...formItemLayout}
>
{getFieldDecorator('INVENTORY_QTY', {
initialValue: this.state.data.INVENTORY_QTY,
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'本次使用库存数量'}
{...formItemLayout}
>
<InputNumber value={this.state.data.CUR_USE_INVENTORY_QTY} disabled={true} />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={<span><span style={{color:'red'}}>*</span></span> }
{...formItemLayout}
>
<InputNumber value={this.state.data.WORK_QTY} disabled={true}/>
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'订单交期'}
{...formItemLayout}
>
{getFieldDecorator('DELIVERY_TMIE', {
initialValue: (this.state.data.DELIVERY_TMIE?this.state.data.DELIVERY_TMIE.toString().substring(0,10):''),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={<span><span style={{color:'red'}}>*</span></span> }
{...formItemLayout}
>
{getFieldDecorator('PDT_ORDER_DUE_TIME', {
initialValue: (this.state.data.PDT_ORDER_DUE_TIME?this.state.data.PDT_ORDER_DUE_TIME.toString().substring(0,10):''),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'采购期望交期'}
{...formItemLayout}
>
{getFieldDecorator('PURCHASE_PLAN_DELIVERY_TIME', {
initialValue: (this.state.data.PURCHASE_PLAN_DELIVERY_TIME?this.state.data.PURCHASE_PLAN_DELIVERY_TIME.toString().substring(0,10):''),
})(<Input disabled={true}/>)}
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label={'紧急程度'}
{...formItemLayout}
>
<Select value={this.state.data.EMERGENCY_DEGREE_TYPE} disabled={true}>
{
enums&&enums.WOPdtOrderEmergencyDegreeTypeEnum&&enums.WOPdtOrderEmergencyDegreeTypeEnum.options?enums.WOPdtOrderEmergencyDegreeTypeEnum.options.map(t=>{
return <Option value={t.value}>{t.label}</Option>
}):null
}
</Select>
</Form.Item>
</Col>
</Row>
<Row style={{marginTop:'20px'}}>
<Table
rowKey="ID"
pagination={false}
dataSource={this.state.data.Nav_EmProposals}
columns={tableColumns}
/>
</Row>
</Form>
</div>
);
}
}
ShowMrpByProposalPage.propTypes = {
};
export default connect(({ login, loading, SOMrp,custom,app }) => ({ login, loading,SOMrp,custom,app }))(Form.create()(ShowMrpByProposalPage));