/* eslint-disable */ /* eslint-disable prefer-destructuring,no-loop-func */ import React, { Component } from 'react'; import moment from 'moment'; import { Form } from '@ant-design/compatible'; // import '@ant-design/compatible/assets/index.css'; import EjectRight from '@/assets/eject.svg';/* 弹出图标 */ import { RightOutlined, } from '@ant-design/icons'; import CloseRight from "../../../assets/close.svg"; import { Modal, Layout, Spin, Avatar, Select, message, Button, Tabs, Collapse, Radio, Row, Col, Divider } from 'antd-v4'; import AddIcon from '../../../assets/add.svg'; import DisableAddIcon from '../../../assets/disableadd.svg'; import DelIcon from '../../../assets/delete.svg'; import DisableDelIcon from '../../../assets/disabledelete.svg'; import CopyIcon from '../../../assets/copy.svg'; import CopyAllIcon from '../../../assets/copyall.svg'; import DisableCopyIcon from '../../../assets/disablecopy.svg'; import DisableCopyAllIcon from '../../../assets/disablecopyall.svg'; import MateriallIcon from '../../../assets/material.svg'; import DisableMateriallIcon from '../../../assets/disablematerial.svg'; import ProcessIcon from '../../../assets/process.svg'; import DisableProcessIcon from '../../../assets/disableprocess.svg'; /* 获取图标 */ import ProcessUp from '../../../assets/processUp.svg'; import ProcessDown from '../../../assets/processDown.svg'; import DisableProcessUp from '../../../assets/disableprocessUp.svg'; import DisableProcessDown from '../../../assets/disableprocessDown.svg'; import ProcessTop from '../../../assets/processTop.svg'; import DisableProcessTop from '../../../assets/disableprocessTop.svg'; import ProcessBottom from '../../../assets/processBottom.svg'; import DisableProcessBottom from '../../../assets/disableprocessBottom.svg'; import CommonSales from '../../Common/CommonBillEvent'; /* 继承销售模块业务功能 */ import * as commonFunc from '../../Common/commonFunc'; /* 通用单据方法 */ /* 通用单据方法 */ import Toolbar from '../../Common/ToolBar/ToolBarNew'; import StaticEditTable from '../../Common/CommonTable'; /* 可编辑表格 */ import styles from '../../../index.less'; import selfstyles from '../index.less'; import CommonView from '../../Common/CommonView'; import CommonBase from '../../Common/CommonBase'; /* 获取配置及数据 */ import * as commonUtils from '../../../utils/utils'; /* 通用方法 */ import * as commonBusiness from '../../Common/commonBusiness'; /* 单据业务功能 */ import commonConfig from '../../../utils/config'; import * as commonServices from '../../../services/services'; /* 服务类 */ import CommonListSelect from '../../Common/CommonListSelect'; import CommonListSelectFlex from '../../Common/CommonListSelectFlex';/* 可编辑的选择界面 */ import CommonListSelectTree from '../../Common/CommonListSelectTree';/* 树形选择界面 */ import CommonListSelectMulti from '@/components/Common/CommonListSelectMulti'; // import CommonListSelectParam from '@/components/Common/CommonListSelectParam'; import CommonViewDragable from '@/components/Common/CommonViewDragable'; import CommonPartsInfo from '@/components/Common/CommonPartsInfo'; import StaticEditTree from '../../Common/Tree/StaticTree'; import Close from '../../../assets/closeleft.svg'; import AddChildIcon from '../../../assets/addChild.svg'; import DisableAddChildIcon from '../../../assets/disableaddChild.svg'; import AntdDraggableDiv from '../../Common/AntdDraggableDiv'; import Eject from '../../../assets/ejectleft.svg'; // import SlaveMemo from '../../Common/SlaveMemo'; import SplitPaste from '../WorkOrder/SplitPaste'; /* 选择界面 */ import AntdDraggableModal from '../../Common/AntdDraggableModal'; import ShowType from '../../Common/CommonComponent'; import ContextMenuModal from '../../Common/ContextMenuModal'; import CommonListSelectProductProcess from '../../Common/CommonListSelectAssignment'; import CommonListSelectProductMaterial from '../../Common/CommonListSelectProductMaterial'; import WorkFlow from '@/components/Common/Flows/CommonFlow'; /* 工作流 */ import SvgIcon from "../../SvgIcon"; const { Header, Content, Sider } = Layout; const { Option } = Select; const { confirm } = Modal; const { TabPane } = Tabs; const { Panel } = Collapse; const isQianCai = false; // 千彩s const isYaChang = false; let _this; class ProcessCardPackTableTree extends Component { constructor(props) { super(props); this.state = { fastOrderModalVisible: false, currentTab: 12, currentTab2: 1, activeKey: ['1', '2'], processTableId: `processTableId_${commonUtils.createSid()}`, partsInfoEnabled: false, }; this.isLayout = false; this.isLayout2 = false; _this = this; } async componentWillReceiveProps(nextProps) { let { controlColumn, materialsColumn, processColumn, dailyColumn, colorColumn, packColumn, } = nextProps; const { formData, currentId } = nextProps; if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) { const sId = currentId || nextProps.masterData?.sId || ''; /* 数据Id */ const masterConfig = formData.filter(item => !item.bGrd)[0]; if(masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0]) { this.isLayout = masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0].bVisible; } if(masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout2')[0]) { this.isLayout2 = masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout2')[0].bVisible; } /* bGrd代表是否是表格 */ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0]; const slaveColumn = commonFunc.getHeaderConfig(slaveConfig); let checkConfig ={}; let checkColumn ={}; if(commonUtils.isNotEmptyArr( formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult'))) { checkConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0]; checkColumn = commonFunc.getHeaderConfig(checkConfig); } const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrol'.toUpperCase())[0]; controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn); const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase())[0]; materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn); const finishedMaterialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase() && item.showName === '成品材料')[0]; const finishedMaterialsColumn = finishedMaterialsConfig ? commonFunc.getHeaderConfig(finishedMaterialsConfig) : false; const addState2 ={}; const addStateConfig ={}; /* 取材料组配置放在数组 */ let materialsInfoList = []; let materialsChildInfoList = []; const materialsFormData = formData.filter(item => item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible ); // const materialsFormData = formData.filter(item => item.sTbName !== 'mftworkordermaterials' && item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible ); /* 找到除了材料,成品材料外的其他所有父级材料 */ if(commonUtils.isNotEmptyArr(materialsFormData)) { materialsFormData.forEach((item, index) => { addState2[`materials${index}Config`] = item; addStateConfig[`materials${index}Config`] = item; addState2[`materials${index}Column`] = commonFunc.getHeaderConfig(item); /* 找到该配置的子从表 */ const childFormData = formData.filter(child => child.sGrd === item.sChildTableName ); if(commonUtils.isNotEmptyArr(childFormData)) { childFormData.forEach((child, num) => { addState2[`materials${index}ChildConfig`] = child; addStateConfig[`materials${index}ChildConfig`] = child; addState2[`materials${index}ChildColumn`] = commonFunc.getHeaderConfig(child); // materialsInfoList.push(child.showName); const sChildName = item.showName + num +1; materialsChildInfoList.push(`materials${index}Child`); }); } materialsInfoList.push(`materials${index}`); }); } const addStateMap = addStateConfig; const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase())[0]; const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId'); const finishedProcessConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase() && item.showName === '成品工序')[0]; const finishedProcessColumn = finishedProcessConfig ? commonFunc.getHeaderConfig(finishedProcessConfig) : false; if (iIndex > -1) { processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true; } processColumn = commonFunc.getHeaderConfig(processConfig, processColumn); /* 合版信息表 */ const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrolcombine'.toUpperCase())[0]; const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'sCustomerName' || item.sName === 'sProductId' || item.sName === 'sCustomerId' || item.sName === 'sProductNo' || item.sName === 'sProductName' || item.sName === 'dProductQty' || item.sName === 'sProductStyle' || item.sName === 'sProductUnit')); /* 拼接从表配置,客户名称 ,产品名称,生产数 */ const salveChooseConfigFilter = []; if (commonUtils.isNotEmptyArr(slaveChooseConfig)) { slaveChooseConfig.forEach((item) => { const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName); if (iIndex === -1) { const itemNew = Object.assign({}, item); itemNew.bNotEmpty = false; salveChooseConfigFilter.push(itemNew); } }); } /* 拼接排序 */ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) { let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === 'iOrder'); packFilter = packFilter.concat(salveChooseConfigFilter); const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== 'iOrder'); packFilter = packFilter.concat(packFilterOther); packConfig.gdsconfigformslave = packFilter; } packColumn = commonFunc.getHeaderConfig(packConfig, packColumn); let colorConfigGrdVisible; const colorConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftProductparam'.toUpperCase())[0]; if (commonUtils.isNotEmptyObject(colorConfigTrue)) { colorConfigGrdVisible = colorConfigTrue.bGrdVisible; if (colorConfigGrdVisible) { colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn); } } let dailyConfigGrdVisible; const dailyConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())[0]; if (commonUtils.isNotEmptyObject(dailyConfigTrue)) { dailyConfigGrdVisible = dailyConfigTrue.bGrdVisible; if (dailyConfigGrdVisible) { dailyColumn = commonFunc.getHeaderConfig(dailyConfigTrue, dailyColumn); } } let addState = {}; const dailyConfig = dailyConfigGrdVisible ? dailyConfigTrue : ''; const colorConfig = colorConfigGrdVisible ? colorConfigTrue : ''; if (sId === '') { const config = {}; config.masterConfig = masterConfig; config.slaveConfig = slaveConfig; config.controlConfig = controlConfig; config.materialsConfig = materialsConfig; config.processConfig = processConfig; config.packConfig = packConfig; config.colorConfig = colorConfig; config.dailyConfig = dailyConfig; addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true); } else { this.props.onGetData(masterConfig, slaveConfig, checkConfig); this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, {}, addStateConfig); this.handleGetOtherData(materialsInfoList, materialsChildInfoList, addStateConfig); } this.props.onSaveState({ masterConfig, slaveConfig, slaveColumn, checkConfig, checkColumn, sId, pageLoading: false, controlConfig, controlColumn, materialsConfig, materialsColumn, finishedMaterialsColumn, finishedMaterialsConfig, finishedProcessColumn, finishedProcessConfig, processConfig, processColumn, colorConfig, colorColumn, dailyConfig, dailyColumn, packConfig, packColumn, ...addState, dailyConfigGrdVisible, colorConfigGrdVisible, ...addStateConfig, addStateMap, ...addState2, materialsInfoList, materialsChildInfoList, }); } // // 未清复制到时,产品ID需要再获取动态部件; // const sId = currentId || nextProps.masterData?.sId || ''; // if (sId === '' && commonUtils.isNotEmptyObject(this.props.masterData) && !this.props.bGetPartsData) { // const { sAllPartsName } = this.props.masterData; // if (sAllPartsName !== undefined) { // const allPartsName = sAllPartsName.split(','); // const sPartsName = allPartsName[0]; // if (commonUtils.isEmptyObject(this.props.masterConfig[`dSumPQty${sPartsName}`])) { // this.handleMasterChange('master', 'sProductClassifyName'); // this.props.onSaveState({ bGetPartsData: true }); // } // } // } } shouldComponentUpdate(nextProps) { const { controlColumn, slaveConfig } = nextProps; return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn); } handlePartsInfoConfig = (val) => { this.setState({ partsInfoEnabled: val }); } getMenuStatus = (menu) => { if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnChooseProcess' || menu.sControlName === 'BtnChooseMaterials' || menu.sControlName === 'BtnDraft') { return !this.props.enabled; } }; handleEject = () => { const { currentPane, panes } = this.props.app; if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) { // const index = panes.indexOf(currentPane); const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName); /* 当前页签 */ let currentTab = document.getElementById('navTabWrap').children[index]; if (commonUtils.isEmpty(currentTab)) { const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children; for (const child of oChildren) { if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) { currentTab = child; } } } // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index]; if (!commonUtils.isEmpty(currentTab)) { const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */ if (commonUtils.isNotEmptyArr(filterTreeArr)) { const filterTree = filterTreeArr[0]; if (filterTree.style.display === 'block') { filterTree.style.display = 'none'; } else { filterTree.style.display = 'block'; } } } } }; handleEjectRight = () => { /* 右侧树形弹出展开 */ const { currentPane, panes } = this.props.app; if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) { // const index = panes.indexOf(currentPane); const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName); /* 当前页签 */ let currentTab = document.getElementById('navTabWrap').children[index]; if (commonUtils.isEmpty(currentTab)) { const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children; for (const child of oChildren) { if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) { currentTab = child; } } } // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index]; if (!commonUtils.isEmpty(currentTab)) { const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */ if (commonUtils.isNotEmptyArr(filterTreeArr)) { const filterTree = filterTreeArr[0]; if (filterTree.style.display === 'block') { filterTree.style.display = 'none'; } else { filterTree.style.display = 'block'; const { masterData, slaveData, controlData, materialsData, processData }=this.props; if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyArr(slaveData)) { const totalTreeState = this.handleGetTotalTreeData(masterData, slaveData, controlData, materialsData, processData, true); if (commonUtils.isNotEmptyObject(totalTreeState)) { const totalTreeData = totalTreeState.totalTreeData; const expandedKeys = totalTreeState.expandedKeys; if (commonUtils.isNotEmptyArr(totalTreeData)) { this.props.onSaveState({ totalTreeData, expandedKeys }); } } } } } } } }; handleGetProcessData = (processConfig, addStateControl, addStateProcess) => { if (addStateProcess) { if (Array.isArray(addStateProcess.processData)) { // eslint-disable-next-line array-callback-return addStateProcess.processData.map((itemProcess) => { if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) { itemProcess.sProcessParamStr = ''; // eslint-disable-next-line no-plusplus for (let i = 1; i < 7; i++) { const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) { itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`; } } if (itemProcess.sProcessParamStr === '') { itemProcess.sProcessParamStr = '工艺参数'; } if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) { let iIndex = -1; iIndex = addStateProcess.processData.findIndex(item => item.sId === itemProcess.sId); if (iIndex > -1) { addStateProcess.processData[iIndex] = { ...itemProcess, ...commonUtils.convertStrToObj(itemProcess.sWorkOrderParam) }; } } } }); addStateProcess.processSelectedRowKeys = []; addStateProcess.processSelectedRowKeys = []; if(commonUtils.isNotEmptyArr(addStateProcess.processData) && commonUtils.isNotEmptyArr(addStateControl?.controlSelectedRowKeys)) { const processFilterData = addStateProcess.processData.filter(item => item.sControlId === addStateControl?.controlSelectedRowKeys[0]) if (commonUtils.isNotEmptyArr(processFilterData)) { addStateProcess.processSelectedData = [processFilterData[0]]; addStateProcess.processSelectedRowKeys = [processFilterData[0].sId]; } } } } return { ...addStateProcess || {} }; } handleGetControlData = (addStateControl) => { const { sModelsType } = this.props; /* 当前页签数据 */ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */ const treeState = this.handleGetControlTreeData(controlData, true); const noSelected = sModelsType === 'manufacture/workOrderPackTableTree'; return ({ ...addStateControl, ...treeState, treeSelectedKeys: noSelected ? [] : controlSelectedRowKeys }); } /* 获取表数据 */ handleGetData1 = async (controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, extraState = {}, configMap) => { const { currentId, slaveData, masterData } = this.props; /* 当前页签数据 */ const sId = currentId || this.props.masterData?.sId || ''; /* 数据Id */ const addStateControl = await this.props.handleGetDataSet({ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */ const treeState = this.handleGetControlTreeData(controlData, true); const addStateMaterials = await this.props.handleGetDataSet({ name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); addStateMaterials.materials0Data = addStateMaterials.materialsData; addStateMaterials.materials0SelectedRowKeys = []; /* 如果是材料表 则进行数据拆分 */ // if(commonUtils.isNotEmptyArr(addStateMaterials)) { // const materials0Data = addStateMaterials.materialsData; // if(commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyObject(configMap) ) { // // // if( commonUtils.isNotEmptyObject(configMap.materials1Config)) { // // const addStateMaterials1Data = this.props.onSplitData(materials0Data, configMap.materials1Config, 'materials1' ); // // if(commonUtils.isNotEmptyObject(addStateMaterials1Data)) { // // const materials1Data = addStateMaterials1Data.materials1Data; // // /* 取子集数据 */ // // if(commonUtils.isNotEmptyArr(materials1Data)) { // // const materials1ChildData = materials1Data.filter(item => commonUtils.isNotEmptyObject(item.sInkBOMId) // // && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId) ); // // if(commonUtils.isNotEmptyArr(materials1ChildData)) { // // addStateMaterials.materials1ChildData = materials1ChildData; // // } // // } // // addStateMaterials.materials1Data = materials1Data; // // } // // } // // if( commonUtils.isNotEmptyObject(configMap.materials2Config)) { // // const addStateMaterials2Data = this.props.onSplitData(materials0Data, configMap.materials2Config, 'materials2' ); // // if(commonUtils.isNotEmptyObject(addStateMaterials2Data)) { // // addStateMaterials.materials2Data = addStateMaterials2Data.materials2Data; // // const materials2Data = addStateMaterials2Data.materials2Data; // // /* 取子集数据 */ // // if(commonUtils.isNotEmptyArr(materials2Data)) { // // const materials2ChildData = materials2Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId)); // // if(commonUtils.isNotEmptyArr(materials2ChildData)) { // // addStateMaterials.materials2ChildData = materials2ChildData; // // } // // } // // addStateMaterials.materials2Data = materials2Data; // // } // // } // // /* 取替代料数据 */ // // if(commonUtils.isNotEmptyArr(materials0Data)) { // // /* 是替代料 并且有父级id */ // // const materials0ChildData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId) && item.bAlternative); // // if(commonUtils.isNotEmptyArr(materials0ChildData)) { // // /* 替代料 找到原材料的材料编号,材料名称,物料大类 */ // // materials0ChildData.forEach((child,index) => { // // const iIndex = materials0Data.findIndex(item => item.sId === child.sId); // // if (iIndex > -1) { // // materials0ChildData[index] ={...child, sMaterialsNo1: materials0Data[iIndex].sMaterialsNo, // // sMaterialsName1: materials0Data[iIndex].sMaterialsName, sBclassifyName1: materials0Data[iIndex].sBclassifyName, // // } // // } // // }); // // console.log('111s', materials0ChildData); // // addStateMaterials.materials0ChildData = materials0ChildData; // // } // // } // // } // // } const addStateProcess = await this.props.handleGetDataSet({ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); if (addStateProcess) { if (Array.isArray(addStateProcess.processData)) { // eslint-disable-next-line array-callback-return addStateProcess.processData.map((itemProcess) => { if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) { itemProcess.sProcessParamStr = ''; // eslint-disable-next-line no-plusplus for (let i = 1; i < 7; i++) { const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) { itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`; } } if (itemProcess.sProcessParamStr === '') { itemProcess.sProcessParamStr = '工艺参数'; } if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) { let iIndex = -1; iIndex = addStateProcess.processData.findIndex(item => item.sId === itemProcess.sId); if (iIndex > -1) { addStateProcess.processData[iIndex] = { ...itemProcess, ...commonUtils.convertStrToObj(itemProcess.sWorkOrderParam) }; } } } }); addStateProcess.processSelectedRowKeys = []; if(commonUtils.isNotEmptyArr(addStateProcess.processData) && commonUtils.isNotEmptyArr(addStateControl.controlSelectedRowKeys)) { const processFilterData = addStateProcess.processData.filter(item => item.sControlId === addStateControl.controlSelectedRowKeys[0]) if (commonUtils.isNotEmptyArr(processFilterData)) { addStateProcess.processSelectedData = [processFilterData[0]]; addStateProcess.processSelectedRowKeys = [processFilterData[0].sId]; } } // addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData); } } const addStatePack = await this.props.handleGetDataSet({ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); let addStateColor = {}; if (colorConfig) { addStateColor = await this.props.handleGetDataSet({ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); } /* 合版表合并产品信息 */ if (commonUtils.isNotEmptyArr(slaveData)) { const { packData } = addStatePack; slaveData.forEach((itemSlave) => { const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId); if (commonUtils.isNotEmptyArr(packDataFilter)) { packDataFilter.forEach((itemPack) => { const iIndex = packData.findIndex(child => child.sId === itemPack.sId); if (iIndex > -1) { const packRowAdd = this.handlePackDataAdd(itemSlave); if (commonUtils.isNotEmptyObject(packRowAdd)) { packData[iIndex] = { ...packData[iIndex], ...packRowAdd }; } } }); } }); addStatePack.packData = packData; } /* 获取整体树结构 */ // const { materialsData } = addStateMaterials; /* 工序表 */ // const { processData } = addStateProcess; /* 材料表 */ // const totalTreeState = this.handleGetTotalTreeData(masterData,slaveData,controlData,materialsData,processData, true); let addStateDaily = {}; if (dailyConfig) { addStateDaily = await this.props.handleGetDataSet({ name: 'daily', configData: dailyConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); } this.props.onSaveState({ pageLoading: false, ...addStateControl, ...addStateMaterials, ...addStateProcess, ...addStateColor, ...addStateDaily,...addStatePack, ...treeState, treeSelectedKeys: controlSelectedRowKeys, ...extraState, }); }; /* 全部加载完 界面在结束loading */ handleGetAllData = (controlConfig, processConfig, sId, materialsConfig, colorConfig, dailyConfig, packConfig, extraState) => { const { slaveData } = this.props; /* 当前页签数据 */ const allRequest = []; if (commonUtils.isNotEmptyObject(controlConfig)) { allRequest.push( this.props.handleGetDataSet({ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }), ) } else { allRequest.push(Promise.reject()); } if (commonUtils.isNotEmptyObject(processConfig)) { allRequest.push( this.props.handleGetDataSet({ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }) ) } else { allRequest.push(Promise.reject()); } if (commonUtils.isNotEmptyObject(materialsConfig)) { allRequest.push(this.props.handleGetDataSet({ name: "materials", configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true })); } else { allRequest.push(Promise.reject()); } if (commonUtils.isNotEmptyObject(packConfig)) { allRequest.push(this.props.handleGetDataSet({ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, })); } else { allRequest.push(Promise.reject()); } if (colorConfig) { allRequest.push(this.props.handleGetDataSet({ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, })) } else { allRequest.push(Promise.reject()); } if (dailyConfig) { allRequest.push(this.props.handleGetDataSet({ name: 'daily', configData: dailyConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, })) } else { allRequest.push(Promise.reject()); } Promise.allSettled(allRequest).then( ([ { status: controlStatus, value: addStateControl }, { status: processStatus, value: addStateProcess }, { status: materialsStatus, value: addStateMaterials }, { status: packStatus, value: addStatePack }, { status: colorStatus, value: addStateColor }, { status: dailyStatus, value: addStateDaily }, ]) => { let result = {}; if (controlStatus === 'fulfilled') { const controlValue = this.handleGetControlData(addStateControl); result = { ...result, ...controlValue }; } if (processStatus === 'fulfilled') { const processValue = this.handleGetProcessData(processConfig, addStateControl, addStateProcess); result = { ...result, ...processValue }; } if (materialsStatus === 'fulfilled') { addStateMaterials.materials0Data = addStateMaterials.materialsData; addStateMaterials.materials0SelectedRowKeys = []; result = { ...result, ...addStateMaterials }; } if (packStatus === 'fulfilled') { const { packData } = addStatePack; if (commonUtils.isNotEmptyArr(slaveData)) { slaveData.forEach((itemSlave) => { const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId); if (commonUtils.isNotEmptyArr(packDataFilter)) { packDataFilter.forEach((itemPack) => { const iIndex = packData.findIndex(child => child.sId === itemPack.sId); if (iIndex > -1) { const packRowAdd = this.handlePackDataAdd(itemSlave); if (commonUtils.isNotEmptyObject(packRowAdd)) { packData[iIndex] = { ...packData[iIndex], ...packRowAdd }; } } }); } }); } addStatePack.packData = packData; result = { ...result, ...addStatePack } } if (colorStatus === 'fulfilled') { result = { ...result, ...addStateColor }; } if (dailyStatus === 'fulfilled') { result = { ...result, ...addStateDaily }; } this.props.onSaveState({ ...result, pageLoading: false, ...extraState, }) }) } /* 获取表数据 */ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, extraState = {}, configMap) => { const { currentId, slaveData } = this.props; /* 当前页签数据 */ const sId = currentId || this.props.masterData?.sId || ''; /* 数据Id */ this.handleGetAllData(controlConfig, processConfig, sId, materialsConfig, colorConfig, dailyConfig, packConfig, extraState, configMap); }; handleGetOtherData = async (tableList, childTableList, configMap) => { const { currentId, slaveData, sModelsType, masterData } = this.props; /* 当前页签数据 */ const sId = currentId || this.props.masterData?.sId || ''; /* 数据Id */ if(commonUtils.isNotEmptyObject(configMap)){ for (const configName of Object.keys(configMap)) { const tableName = configName.replace('Config', '').trim(); const childConfig = configMap[configName]; if(childConfig.sTbName !=='noTable') { this.props.handleGetDataSet({ name: tableName, configData: childConfig, condition: { sSqlCondition: { sParentId: sId } }, }); } } } }; /* 获取套件树形全部结构 */ handleGetTotalTreeData= (masterData,slaveData,controlData,materialsData,processData, isWait) => { /* 生成部件树结构 */ let totalTreeData = []; const expandedKeys = []; const addState ={}; // let { totalTreeSelectedKeys } = this.props; if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sProductName1)) { const rootData = [masterData]; /* 找到所有一级树结构 */ rootData.forEach((item) => { const treeDataRoot = {}; const { sId, sProductName1 } = item; treeDataRoot.key = sId; treeDataRoot.showName = sProductName1; treeDataRoot.sAllId = item.sId; treeDataRoot.isRoot = true; expandedKeys.push(sId); /* 添加从表作为二级节点 */ const childrenSlave = []; let bRelation = false; /* 从表与控制表没有关联性 */ if(commonUtils.isNotEmptyArr(slaveData)){ slaveData.forEach((itemSlave,index) => { const { sId, sProductName } = itemSlave; const treeSlaveRow = {}; treeSlaveRow.key = sId; treeSlaveRow.showName ='产品-'+ sProductName; treeSlaveRow.sAllId = itemSlave.sId; /* 获取从表关联的控制表 */ const childrenControl = []; if(commonUtils.isNotEmptyArr(controlData)){ const controlCollection =[]; controlData.forEach((itemControl) => { if(itemControl.sCombinedMemo && itemControl.sCombinedMemo !== '') { const sCombinedMemoArr = commonUtils.isJSON(itemControl.sCombinedMemo) ? JSON.parse(itemControl.sCombinedMemo) : []; const len = sCombinedMemoArr.filter(item => item.sProductNo.indexOf(itemSlave.sProductNo) !== -1).length; if(len > 0) { const sAllId =itemControl.sAllId; /* 找到这个sAllId的第一级 把整个部件挂到产品下面 */ if (commonUtils.isNotEmptyObject(sAllId)) { const arr = sAllId.split(','); if (arr.length > 0){ const firstsId =arr[0]; /* 从sAllId找第一级*/ if(!controlCollection.includes(firstsId)){ controlCollection.push(firstsId) } } } } } }); if(commonUtils.isNotEmptyArr(controlCollection)){ /* 作为子表子级 */ bRelation =true; for (const key of controlCollection) { const iIndex =controlData.findIndex(item => item.sId === key); if(iIndex > -1) { const tableRow = controlData[iIndex]; const { sId,sAllId } = tableRow; const treeControlRow = {} treeControlRow.key = sId + '-' +commonUtils.createSid(); treeControlRow.showName = '部件-' + tableRow.sPartsName; treeControlRow.sAllId = sAllId; /* 控制表根据一级菜单获取子集 */ let childrenChild = []; childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData); let sChildren = '1'; /* 树形结构最后一个节点设置为1 */ if (commonUtils.isNotEmptyArr(childrenChild)) { sChildren = '0'; /* 树形结构其他节点设置为0 */ } treeControlRow.sChildren = sChildren; treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : []; childrenControl.push(treeControlRow); } }; } } treeSlaveRow.children = commonUtils.isNotEmptyArr(childrenControl) ? childrenControl : []; childrenSlave.push(treeSlaveRow); /* 如果从表与控制表没有关联 */ if(!bRelation){ controlData.forEach((itemControl) => { const { sId,sAllId,sPartsName } = itemControl; const treeControlRow = {} treeControlRow.key = sId + '-' +commonUtils.createSid(); treeControlRow.showName = '部件-' + sPartsName; treeControlRow.sAllId = sAllId; treeControlRow.sId =sId; /* 控制表根据一级菜单获取子集 */ let childrenChild = []; childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData); let sChildren = '1'; /* 树形结构最后一个节点设置为1 */ if (commonUtils.isNotEmptyArr(childrenChild)) { sChildren = '0'; /* 树形结构其他节点设置为0 */ } treeControlRow.sChildren = sChildren; treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : []; const filterData =childrenSlave.filter(item => item.sId ===treeControlRow.sId); if(commonUtils.isEmptyArr(filterData)){ childrenSlave.push(treeControlRow); } }); } /* 加载成品材料、成品工序作为从表的同级 */ if(commonUtils.isNotEmptyArr(materialsData)){ const childTree = commonUtils.isNotEmptyArr(materialsData) ? materialsData.filter(item => item.sType === 2) : []; if (commonUtils.isNotEmptyArr(childTree)) { childTree.forEach((child) => { const { sId, sMaterialsName,sPartsName } = child; const treeDataRow = {}; treeDataRow.key = sId; treeDataRow.showName = '成品材料' +'-'+ sMaterialsName; treeDataRow.sAllId = child.sAllId; childrenSlave.push(treeDataRow); }); } } /* 获取工序表 */ if(commonUtils.isNotEmptyArr(processData)){ const childTree = commonUtils.isNotEmptyArr(processData) ? processData.filter(item => item.sType === 3) : []; if (commonUtils.isNotEmptyArr(childTree)) { childTree.forEach((child) => { const { sId, sProcessName,sPartsName } = child; const treeDataRow = {}; treeDataRow.key = sId; treeDataRow.showName = '成品工序' +'-'+ sProcessName; treeDataRow.sAllId = child.sAllId; childrenSlave.push(treeDataRow); }); } } if(!expandedKeys.includes(sId)){ expandedKeys.push(sId); } }); treeDataRoot.children = commonUtils.isNotEmptyArr(childrenSlave) ? childrenSlave : []; } totalTreeData.push(treeDataRoot); }); } else { totalTreeData = []; } addState.totalTreeData=totalTreeData; addState.expandedKeys=expandedKeys; if (isWait) { return { ...addState }; } else { this.props.onSaveState({ totalTreeData, expandedKeys, }); } }; /** 获取部件树 */ handleGetControlTreeData= (controlData, isWait) => { /* 生成部件树结构 */ let treeData = []; if (isWait) { return { treeData }; } else { this.props.onSaveState({ treeData, // expandedKeys, }); } }; handleGetControlTreeDataBak= (controlData, isWait) => { /* 生成部件树结构 */ let treeData = []; const expandedKeys = []; let { treeSelectedKeys } = this.props; if (commonUtils.isNotEmptyArr(controlData)) { const rootData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => commonUtils.isEmpty(item.sControlParentId)) : []; /* 找到所有一级树结构 */ rootData.forEach((item) => { const treeDataRow = {}; const { sId, sPartsName } = item; treeDataRow.key = sId; treeDataRow.showName = sPartsName; treeDataRow.sAllId = item.sAllId; const children = this.handleGetControlTreeChildData(sId, controlData); let sChildren = '1'; /* 树形结构最后一个节点设置为1 */ if (commonUtils.isNotEmptyArr(children)) { sChildren = '0'; /* 树形结构其他节点设置为0 */ } treeDataRow.sChildren = sChildren; /* 添加sChildren,sAllId 值 */ const iIndex = controlData.findIndex(item => item.sId === sId); if (iIndex > -1) { // controlData[iIndex].sAllId = sAllId; controlData[iIndex].sChildren = sChildren; } treeDataRow.children = commonUtils.isNotEmptyArr(children) ? children : []; treeData.push(treeDataRow); }); if (commonUtils.isEmptyArr(treeSelectedKeys)) { expandedKeys.push(treeData[treeData.length - 1].key); } } else { treeSelectedKeys = []; treeData = []; } if (isWait) { return { treeData }; } else { this.props.onSaveState({ treeData, // expandedKeys, }); } }; /** 获取子节点数据 */ handleGetControlTreeChildData= (sParentId, controlData) => { if (commonUtils.isNotEmptyObject(sParentId) && commonUtils.isNotEmptyArr(controlData)) { const childTree = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sControlParentId === sParentId) : []; const children = []; if (commonUtils.isNotEmptyArr(childTree)) { childTree.forEach((child) => { const { sId, sPartsName } = child; const treeDataRow = {}; treeDataRow.key = sId; treeDataRow.showName = sPartsName; treeDataRow.parentKey = sParentId; treeDataRow.sAllId = child.sAllId; const data = this.handleGetControlTreeChildData(sId, controlData); let sChildren = '1'; /* 最后一个节点设置为1 */ if (commonUtils.isNotEmptyArr(data)) { sChildren = '0'; } treeDataRow.sChildren = sChildren; /* 添加sChildren,sAllId 值 */ const iIndex = controlData.findIndex(item => item.sId === sId); if (iIndex > -1) { // controlData[iIndex].sAllId = sAllId; controlData[iIndex].sChildren = sChildren; } treeDataRow.children = commonUtils.isNotEmptyArr(data) ? data : []; children.push(treeDataRow); }); } return children; } }; /** 根据key查找树节点并改变属性 */ handleSearchNodes= (key, data, showNameNew) => { if (commonUtils.isNotEmptyObject(showNameNew)) { data.forEach((item) => { if (item.key === key) { item.showName = showNameNew; } else if (commonUtils.isNotEmptyArr(item.children)) { this.handleSearchNodes(key, item.children, showNameNew); } }); } } handleBackProcessData = async (config, isWait) => { const { token } = this.props.app; const { sModelsId, sBackProcessData } = this.props; const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig; if (sBackProcessData === undefined || sBackProcessData === '') { const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0]; const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`; const values = { sKeyUpFilterName: '', sSqlCondition: {} }; const masterReturn = (await commonServices.postValueService(token, values, url)).data; if (masterReturn.code === 1) { const sBackProcessDataValue = masterReturn.dataset.rows; if (isWait) { return { sBackProcessData: sBackProcessDataValue }; } else { this.props.onSaveState({ sBackProcessData: sBackProcessDataValue }); } } else { message.warn(masterReturn.msg); } } } handleForm = (form) => { this.form = form; }; /* 非列表联动下拉 */ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => { /* 数据集类型,对象型为Map 数组型为List */ const { sModelsId, app, } = this.props; const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData; const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig; const { token } = app; let { sBackProcessClassifyData } = this.props; let { sAllPartsName } = masterData; let backProcessData; if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') { backProcessData = await this.handleBackProcessData(config, true); let allPartsName = []; if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 && (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) { let iIndex; allPartsName.forEach((sPartsName) => { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } if (sBackProcessClassifyData !== '') { sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } }); } }); if (sBackProcessClassifyData !== '') { sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } }); } } let sProductClassifyId; if (changeValue !== null && changeValue !== undefined) { sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId; sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName; } else { sProductClassifyId = masterData.sProductClassifyId; } if (commonUtils.isEmpty(sProductClassifyId)) { return; } const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0]; const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } }; const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data; /* 接收返回值 */ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */ if (dataReturn.code === 1) { /* 成功 */ const { rows } = dataReturn.dataset; allPartsName = []; if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } sBackProcessClassifyData = rows; if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 && sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) { const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : []; const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : []; const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : []; const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : []; const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : []; let ConfigNew; allPartsName.forEach((item) => { ConfigNew = { ...sumPQtyConfig }; ConfigNew.sName = `dSumPQty${item}`; ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`); masterConfig.gdsconfigformslave.push(ConfigNew); ConfigNew = { ...materialsNameConfig }; ConfigNew.sName = `sMaterialsName${item}`; ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`); masterConfig.gdsconfigformslave.push(ConfigNew); ConfigNew = { ...printModePoConfig }; ConfigNew.sName = `iPrintModePo${item}`; ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`); masterConfig.gdsconfigformslave.push(ConfigNew); ConfigNew = { ...positiveColorConfig }; ConfigNew.sName = `iPositiveColor${item}`; ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`); masterConfig.gdsconfigformslave.push(ConfigNew); if (sBackProcessClassifyData !== '') { sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => { ConfigNew = { ...processNameConfig }; ConfigNew.sName = processClassify.sId + item; masterConfig.gdsconfigformslave.push(ConfigNew); }); } }); if (sBackProcessClassifyData !== '') { sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => { ConfigNew = { ...processNameConfig }; ConfigNew.sName = processClassify.sId; masterConfig.gdsconfigformslave.push(ConfigNew); }); } } const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData); const masterDataDefault = commonFunc.getDefaultData(masterConfig, {}); returnChange.masterData = { ...masterDataDefault, ...returnChange.masterData }; if (isWait) { return { ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData, }; } else { this.props.onSaveState({ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData, }); } } else { /* 失败 */ this.props.getServiceError(dataReturn); } } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') { const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true); if (returnChange !== undefined && returnChange.masterData !== undefined) { returnChange.masterData.sProductId = ''; returnChange.masterData.sProductNo = ''; returnChange.masterData.sProductName = ''; } this.props.onSaveState({ ...returnChange }); } else { this.props.onChange(name, sFieldName, changeValue, sId, dropDownData); } }; /* 数据生成按钮 */ handleDataCreate= async (flag) => { let { checkProcessClassifyData } = this.props; const { masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app, } = this.props; const { token } = this.props.app; const paramMap = {}; const { sAllPartsName } = masterData; let allPartsName = []; if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } let cpProcessName = ''; checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; // paramMap.modelName = masterData.modelName; paramMap.sCustomerId = masterData.sCustomerId; paramMap.sCustomerName = masterData.sCustomerName; paramMap.sProductClassifyId = masterData.sProductClassifyId; paramMap.sProductId = masterData.sProductId; paramMap.sProductName = masterData.sProductName; paramMap.sProductStyleId = masterData.sProductStyleId; paramMap.sProductStyle = masterData.sProductStyle; paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; paramMap.dProductHeight = 0; paramMap.dProductQty = masterData.dProductQty; const partsInfo = []; allPartsName.forEach((item) => { const partInfo = {}; partInfo.sPartsName = item; partInfo.dPartsQty = masterData.dProductQty; partInfo.dSumPQty = masterData[`dSumPQty${item}`]; const materialsInfo = []; const material = {}; material.sMaterialsId = masterData[`sMaterialsId${item}`]; material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; materialsInfo.push(material); partInfo.materialsInfo = materialsInfo; partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { const processInfo = []; checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { if (!commonUtils.isEmpty(masterData[card.sId + item])) { if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { partInfo.sPrintProcessId = masterData[card.sId + item]; } else { const process = {}; process.sProductClassifyId = card.sId; process.sProcessId = masterData[card.sId + item]; if (masterData[card.sId + card.sName + item] !== undefined) { process.sProcessName = masterData[card.sId + card.sName + item]; process.sType = masterData[card.sId + card.sType + item]; processInfo.push(process); } } } }); partInfo.processInfo = processInfo; partsInfo.push(partInfo); } }); const productProcess = []; checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { if (!commonUtils.isEmpty(masterData[card.sId])) { const process = {}; process.sProductClassifyId = card.sId; process.sProcessId = masterData[card.sId]; process.sProcessName = masterData[card.sId + card.sName]; if (masterData[card.sId + card.sName] !== undefined) { cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; productProcess.push(process); } } }); paramMap.cpProcessName = cpProcessName; paramMap.productProcessInfo = productProcess; paramMap.partsInfo = partsInfo; if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { // this.props.onSaveState({ fastOrderModalVisible: false }); message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ return; } /* 验证产品规格是否 符合数字*数字格式 */ const sProductStyle = paramMap.sProductStyle; if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ const arr = sProductStyle.split('*'); const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { for (let i = 0; i < arr.length; i += 1) { if (!numCheck.test(arr[i])) { /* 验证是否数字 */ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } } } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } let dataReturn = paramMap; if (!flag) { const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; } if (dataReturn.code === 1 || flag) { const { productClassify, productProcessInfo, partsInfo: partsOldInfo, } = flag ? dataReturn : dataReturn.dataset.rows[0]; let partsNewInfo = []; if (!flag) { partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo; } else { partsNewInfo = partsOldInfo; } const slaveData = []; const controlData = []; const materialsData = []; let processData = []; const tableDataRow = {}; for (const item of slaveConfig.gdsconfigformslave) { tableDataRow[item.sName] = masterData[item.sName]; } tableDataRow.sId = commonUtils.createSid(); tableDataRow.handleType = 'add'; tableDataRow.iOrder = 1; tableDataRow.sParentId = masterData.sId; // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); let productIdDropDown; const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); if (slaveIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); productIdDropDown = sqlDropDownData.dropDownData; } const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); if (iProductIdIndex === -1) { tableDataRow.sProductId = tableDataRow.sProductName; tableDataRow.sProductInfo = JSON.stringify({ sProductId: tableDataRow.sProductName, sProductName: tableDataRow.sProductName, sProductStyle: tableDataRow.sProductStyle, sProductUnit: tableDataRow.sProductUnit, sProductNo: tableDataRow.sProductNo, sCustomerProductNo: tableDataRow.sCustomerProductNo, sProductClassifyId: tableDataRow.sProductClassifyId, sProductClassifyName: tableDataRow.sProductClassifyName, }); } else { tableDataRow.sProductInfo = ''; } slaveData.push(tableDataRow); if (!commonUtils.isEmptyArr(partsOldInfo)) { partsOldInfo.forEach((item) => { if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); } }); } const bProcessAssort = true; let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; } } } const newCopyTo = {}; newCopyTo.master = masterData; newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; partsNewInfo.forEach((partInfo, iIndex) => { const partsDataRow = {}; for (const child of Object.keys(partInfo)) { partsDataRow[child] = partInfo[child]; } partsDataRow.handleType = 'add'; partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ partsDataRow.sId = commonUtils.createSid(); partsDataRow.sParentId = masterData.sId; if (partsDataRow.iPrintMode !== 3) { partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; } delete partsDataRow.dMaterialsKQty; delete partsDataRow.dMaterialsLength; delete partsDataRow.dMaterialsWidth; if (productClassify && productClassify.bSpecialRules) { partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; } controlData.push(partsDataRow); // 材料信息 partInfo.materialsInfo.forEach((materialInfo, iOrder) => { const materialDataRow = {}; for (const item of materialsConfig.gdsconfigformslave) { materialDataRow[item.sName] = materialInfo[item.sName]; } materialDataRow.handleType = 'add'; materialDataRow.sType = '0'; materialDataRow.iPartOrder = iIndex; materialDataRow.iOrder = iOrder + 1; materialDataRow.sPartsName = partsDataRow.sPartsName; materialDataRow.sId = commonUtils.createSid(); materialDataRow.sParentId = masterData.sId; materialDataRow.sControlId = partsDataRow.sId; materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; materialsData.push(materialDataRow); }); // 工序信息 let processPrintDataRow = {}; processPrintDataRow.handleType = 'add'; processPrintDataRow.sProcessId = partInfo.sProcessId || partInfo.sPrintProcessId; const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); if (iProcessPrintIndex > -1) { processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 } processPrintDataRow.sType = partInfo.sType; processPrintDataRow.iPartOrder = iIndex; processPrintDataRow.iOrder = 1; if (partInfo.sProcessName) { processPrintDataRow.sProcessName = partInfo.sProcessName; } processPrintDataRow.sPartsName = partsDataRow.sPartsName; processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; processPrintDataRow.dLossQty = partInfo.dLossQty; processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; processPrintDataRow.sId = commonUtils.createSid(); processPrintDataRow.sParentId = masterData.sId; processPrintDataRow.sControlId = partsDataRow.sId; processData.push(processPrintDataRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = -1; const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = partsDataRow.sId; processRow.sPartsName = partsDataRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } partInfo.processInfo.forEach((process, iOrder) => { let processAfterDataRow = {}; for (const item of processConfig.gdsconfigformslave) { processAfterDataRow[item.sName] = process[item.sName]; } for (const child of Object.keys(process)) { processAfterDataRow[child] = process[child]; } processAfterDataRow.handleType = 'add'; processAfterDataRow.sProcessId = process.sProcessId; const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); if (iProcessAfterIndex > -1) { processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 } processAfterDataRow.sType = process.sType; processAfterDataRow.iPartOrder = iIndex; processAfterDataRow.iOrder = iOrder + 1; processAfterDataRow.sPartsName = partsDataRow.sPartsName; processAfterDataRow.sId = commonUtils.createSid(); processAfterDataRow.sParentId = masterData.sId; processAfterDataRow.sControlId = partsDataRow.sId; processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = -1; const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = partsDataRow.sId; processRow.sPartsName = partsDataRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } }); }); productProcessInfo.forEach((process, iOrder) => { let processProductDataRow = {}; for (const item of processConfig.gdsconfigformslave) { processProductDataRow[item.sName] = process[item.sName]; } for (const child of Object.keys(process)) { processProductDataRow[child] = process[child]; } const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); if (iProductProcessIndex > -1) { processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 } processProductDataRow.handleType = 'add'; processProductDataRow.sType = '3'; processProductDataRow.sPartsName = ''; processProductDataRow.iPartOrder = 999; processProductDataRow.iOrder = iOrder + 1; processProductDataRow.sId = commonUtils.createSid(); processProductDataRow.sParentId = masterData.sId; processData.push(processProductDataRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = -1; const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } }); processData = this.sortData(controlData, processData); const paramObj = { materialsConfig, slaveData, controlData, materialsData, processData, fastOrderModalVisible: false, materialsSelectedRowKeys: [], }; if (flag) { delete paramObj.slaveData; } this.props.onSaveState(paramObj); } if (dataReturn.code !== 1 && !flag) { this.props.getServiceError(dataReturn); } }; /* 勾选工序分类 */ handleProcessChange=(e, value, sPartsName) => { let { checkProcessClassifyData } = this.props; let index = -1; if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) { index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName)); } else { checkProcessClassifyData = []; } if (e.target.checked) { if (index <= -1) { const newvalue = { ...value }; newvalue.sPartsName = sPartsName; checkProcessClassifyData.push(newvalue); } } else if (index > -1) { checkProcessClassifyData.splice(index, 1); } this.props.onSaveState({ checkProcessClassifyData }); }; handleSelectChangeProcess = (sAssignField, value, option) => { const { masterData, sBackProcessClassifyData } = this.props; let { checkProcessClassifyData } = this.props; if (sAssignField !== undefined) { // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype const sAssignFields = sAssignField.split(','); const recordRow = option.props['data-recordrow']; sAssignFields.forEach((item, iAssignIndex) => { const itemsplits = item.split(':'); masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]]; if (iAssignIndex === 0) { let index = -1; const sPartsName = itemsplits[0].replace(recordRow.sParentId, ''); if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) { index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName)); } else { checkProcessClassifyData = []; } if (index <= -1) { const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId); if (iBackProcessIndex > -1) { const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] }; newvalue.sPartsName = sPartsName; checkProcessClassifyData.push(newvalue); } } } }); this.props.onSaveState({ masterData, checkProcessClassifyData }); } } handleA = (sId) => { const { sBackProcessData } = this.props; const data = sBackProcessData.filter(item => item.sParentId === sId); const optionProcess = []; data.forEach((item) => { optionProcess.push(); }); return optionProcess; } handleSave = async (bParts) => { this.form.validateFields((err) => { /* 验证通过与不通过走不同的流程 */ if (err) { /* 验证失败 */ /* 直接渲染显示错误提示 */ for (const key of Object.keys(err)) { message.warning(err[key].errors[0].message); } this.props.onSaveState({ loading: false, }); } else { /* 验证成功 */ const { masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData, materialsConfig, materials0Config, materials0Data: materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,packConfig, packData, packDelData, colorData, colorDelData, dailyConfig, dailyData, dailyDelData, app, addStateMap, } = this.props; if (commonUtils.isEmptyArr(slaveData)) { message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`); this.props.onSaveState({ loading: false, }); return; } if(!bParts) { if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) || (!commonBusiness.validateTable(materials0Config, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) || !commonBusiness.validateTable(colorConfig, colorData, this.props) || !commonBusiness.validateTable(dailyConfig, dailyData, this.props)) { this.props.onSaveState({ loading: false, }); return; } } if (commonUtils.isNotEmptyArr(materialsData) && false) { let flag = true; for (const item of materialsData) { if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) { message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */ flag = false; break; } } if (!flag) { this.props.onSaveState({ loading: false, }); return; } } const data = []; if(masterData.sStatus ==='4' && !bParts) { /* 点保存后 从草稿箱状态变成未审核状态 */ masterData.sStatus = '0'; masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType; } if(!bParts) { masterData.bIsUnCcg = true; } data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData])); data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData)); data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData)); // data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData)); data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData)); data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData)); if(commonUtils.isNotEmptyObject(colorConfig)){ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData)); } if(commonUtils.isNotEmptyObject(dailyConfig)){ data.push(commonBusiness.mergeData('daily', dailyConfig.sTbName, dailyData, dailyDelData)); } if(commonUtils.isNotEmptyObject(addStateMap)){ for (const childConfig of Object.keys(addStateMap)) { const tableName = childConfig.replace('Config', '').trim(); const { [`${tableName}Data`]: tableData,[`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData} = this.props; if(tableConfig.sTbName !== 'noTable') { data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData)); } } } this.props.onSaveData({ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId, }); } }); }; /** 处理选择行发生改变 */ handleTableSelectRowChange = async(name, selectedRowKeys) => { /* 外置处理业务 */ if (name === 'slave') { const { controlData, processData, materials0Data, slaveData } = this.props; const addState = await this.props.onTableSelectRowChange(name, selectedRowKeys, true); const addStateMap ={}; if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1 && commonUtils.isNotEmptyObject(addState)) { addState.controlSelectedRowKeys = [controlData[0].sId]; } else { // addState.controlSelectedRowKeys = []; } if(commonUtils.isNotEmptyArr(selectedRowKeys)) { const iSlaveIndex = slaveData.findIndex(item => item.sId === selectedRowKeys[0]); const iControlIndex = controlData?.findIndex( controlItem => { const sCombinedMemoArr = JSON.parse(controlItem.sCombinedMemo); const sCombinedMemoFilterArr = sCombinedMemoArr.filter(item => item.dCombineQty > 0 && item.sProductNo === slaveData[iSlaveIndex].sProductNo); return commonUtils.isNotEmptyArr(sCombinedMemoFilterArr) }); let controlRowKeys = []; if (iControlIndex > -1) { controlRowKeys = [controlData[iControlIndex].sId]; _this.controlFilterData = [controlData[iControlIndex]]; } /* 切换产品的时候工序和材料自动选择第一行 */ if(commonUtils.isNotEmptyArr(processData)) { const filterData = processData.filter(item => item.sControlId === controlRowKeys[0]); if(commonUtils.isNotEmptyArr(filterData)) { addStateMap.processSelectedRowKeys = [filterData[0].sId]; /* 从表选中时 清空工序的选中 */ } } if(commonUtils.isNotEmptyArr(materials0Data)) { const filterData = materials0Data.filter(item => item.sControlId === controlRowKeys[0]); if(commonUtils.isNotEmptyArr(filterData)) { addStateMap.materials0SelectedRowKeys = [filterData[0].sId]; /* 从表选中时 清空工序的选中 */ } } } this.props.onSaveState(addStateMap); } else if (name === 'control') { const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true); if (commonUtils.isNotEmptyArr(selectedRowKeys)) { const { treeData } = this.props; /* 赋值给树组件节点 */ let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */ if (treeData !== undefined) { treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */ addState.treeSelectedKeys = treeSelectedKeys; } addState.processSelectedRowKeys = []; /* 从表选中时 清空工序的选中 */ } this.props.onSaveState(addState); } else if (name === 'materials' || name === 'process') { const { [`${name}Data`]: tableData, slaveData, packData, masterData} = this.props; const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true); if (commonUtils.isNotEmptyArr(selectedRowKeys)) { const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString()); if (iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) { addState.controlSelectedRowKeys = [tableData[iIndex].sControlId]; if (commonUtils.isNotEmptyArr(slaveData)) { if (slaveData.length === 1) { addState.slaveSelectedRowKeys = [slaveData[0].sId]; } else { if (commonUtils.isNotEmptyArr(packData)) { const packFilterData = packData.filter(item => item.sControlId === tableData[iIndex].sControlId && item.dCombineQty > 0); if (commonUtils.isNotEmptyArr(packFilterData)) { if (commonUtils.isNotEmptyArr(this.props.slaveSelectedRowKeys)) { const iPackIndex = packFilterData.findIndex(item => item.sSlaveId === this.props.slaveSelectedRowKeys[0]); //合版如果选中的工序在选中从表中,就不处理。 if (iPackIndex === -1) { addState.slaveSelectedRowKeys = [packFilterData.sSlaveId]; } } else { addState.slaveSelectedRowKeys = [packFilterData.sSlaveId]; } } } } } } if(name === 'process') { addState.processSelectedData = [tableData[iIndex]]; addState.processSelectedRowKeys = selectedRowKeys; const sTypeName = 'sWorkOrderParam'; /* 把工艺参数塞入masterData */ const sParams = commonUtils.isNotEmptyArr(addState.processSelectedData) ? addState.processSelectedData[0].sParams : ''; const sParamData = commonUtils.isNotEmptyObject(sParams) ? JSON.parse(sParams) : []; tableData[iIndex] = { ... tableData[iIndex], ...commonUtils.convertStrToObj( tableData[iIndex].sWorkOrderParam) }; const viewRow = tableData[iIndex]; /* 把sParams的数据替换到viewRow */ if(commonUtils.isNotEmptyArr(sParamData)) { for (const key of Object.keys(viewRow)) { if(key.includes('sParam')){ const filterData = sParamData.filter(item => item.sParamKey === key); if(commonUtils.isNotEmptyArr(filterData)){ const num = key.replace('sParam', '').trim(); const newKey = `${key}_${sTypeName}_${addState.processSelectedData[0].sId}`; const newDefalut = 'sParamDefault' + num; masterData[newKey] = filterData[0].sParamValue; // masterData[key] = filterData[0].sParamValue; } } } } addState.masterData = masterData; addState.materials0SelectedRowKeys = []; /* 工序表选中 清空全部材料选择 */ } } this.props.onSaveState(addState); } else { this.props.onTableSelectRowChange(name, selectedRowKeys); } }; /** 控制选择控制表时,显示部件工序与成品工序 */ handleFilterData = (name, dataIndex, value, record) => { if (value === undefined) { return true; } if (name === 'process') { return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') || (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase())); } else { return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') || (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase())); } }; /** 控制选择控制表时,显示成品材料与成品工序 */ handleFilterProductData = (name, dataIndex, value, record) => { const { slaveSelectedRowKeys } = this.props; if (value === undefined) { return true; } this.handleTableRowLock(name, record); if (name === 'process') { return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') && ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName); } else { return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') || ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName); } }; /** 控制选择控制表时,显示部件工序与成品工序 */ handleGetFilterData = (name, bFinished) => { const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props; if (data !== undefined && ((commonUtils.isNotEmptyArr(controlSelectedRowKeys) && !bFinished) || bFinished)) { if (name === 'materials' && bFinished) { /* 新增成品材料 */ return data.filter(item => item.sType === '2' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length; } else if (name === 'process' && bFinished) { /* 新增成品工序s */ return data.filter(item => item.sType === '3' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length; } else { const newArr = data.filter((item) => { return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString())); }); return newArr.length; } } }; handleKeyDown = (e, record, sName, name) => { /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) { if (e.key !== 'F12') { e.preventDefault(); } } else { this.props.onKeyDown(e, record, sName, name); } } /** 添加表格空行 */ handleTableAdd = (name, flag, bchild, bFinished, bModalAdd) => { const { masterConfig } = this.props; if(bModalAdd === true) { if(name === 'materials') { let iIndex = -1; if (bFinished) { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials"); if (iIndex > -1) { this.props.onBtnChoose('productMaterials', 'materials', masterConfig.gdsconfigformslave[iIndex]); } } else { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseMaterials"); if (iIndex > -1) { this.props.onBtnChoose('materials', 'materials', masterConfig.gdsconfigformslave[iIndex]); } } } if(name === 'process') { let iIndex = -1; if (bFinished) { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess"); if (iIndex > -1) { this.props.onBtnChoose('productProcess', 'process', masterConfig.gdsconfigformslave[iIndex]); } } else { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProcess"); if (iIndex > -1) { this.props.onBtnChoose('process', 'process', masterConfig.gdsconfigformslave[iIndex]); } } } return; } /* 外置处理业务 */ const { gdsformconst, slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData, } = this.props; let { packData }=this.props; const selectProduct = commonFunc.showLocalMessage(this.props, 'selectProduct', '请先选择产品!'); if (name === 'control') { /* 增加子部件 */ const { [`${name}SelectedRowKeys`]: treeSelectedKeys, } = this.props; if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) { message.warn('请选择部件!'); // 请选择部件 return; } const tableDataRow = this.props.onDataRowAdd(name, true); if (bchild === 'sameNode') { /* 添加同级 */ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]); /* 找到同级子元素的sControlParentId */ if (iIndex > -1) { tableDataRow.sControlParentId = controlData[iIndex].sControlParentId; /* 找到同级父级sAllId */ const pId = controlData[iIndex].sControlParentId; const sControlParentId = controlData.findIndex(item => item.sId === pId); if (sControlParentId > -1) { const sAllId = controlData[sControlParentId].sAllId; if (commonUtils.isEmptyObject(sAllId)) { message.warn('部件数据生成错误![sAllId为空]'); return; } tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sId}`; } else { tableDataRow.sAllId = tableDataRow.sId; } } } if (bchild === 'childNode') { /* 添加子级 */ tableDataRow.sControlParentId = treeSelectedKeys[0]; const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]); if (iIndex > -1) { const sAllId = controlData[iIndex].sAllId; if (commonUtils.isEmptyObject(sAllId)) { message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId return; } tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`; } } if(bchild !== 'sameNode' && bchild !== 'childNode') { /* 列头新增 */ tableDataRow.sAllId = tableDataRow.sId; } let slaveSelectedRow = {}; if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)){ /* 从表有选中行 */ const iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); if(iSlaveIndex > -1){ slaveSelectedRow = slaveData[iSlaveIndex]; } } else{ /* 没有选中行 */ if(slaveData.length ===1){ slaveSelectedRow =slaveData[0]; }else{ message.error('请选择从表!') } } /* 新增工艺卡,部件名称要默认选中从表行的产品名称 */ tableDataRow.sPartsName = slaveSelectedRow.sProductName; /* 部件表新增时,若合版表没有该sControlId 则默认取从表选中行,合拼1 作为一条packData数据 */ if(commonUtils.isEmptyArr(packData)){ packData =[]; } if(false){ packData =[]; } else{ const iIndex =packData.findIndex(item=> item.sControlId === tableDataRow.sId); if(iIndex ===-1){ if(commonUtils.isEmptyObject(slaveSelectedRow.sProductId)) { message.error(selectProduct); return; } if(slaveSelectedRow){ const packDataRow = this.handlePackDataAdd(slaveSelectedRow, 0, tableDataRow.sId, 'add'); packDataRow.dCombineQty = 1; /* 排版数 */ if(commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)){ /* 从表要选择产品 */ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packDataRow; const tableCombineSelectedData =[]; const jsonObj = {}; jsonObj.sId = sId; jsonObj.sProductNo = sProductNo; /* 产品编号 */ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ tableCombineSelectedData.push(jsonObj); const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息'; } packData.push(packDataRow); } } } // let dPartsQty = 0; // if (commonUtils.isNotEmptyArr(slaveData)) { // slaveData.forEach((item) => { // dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0); // }); // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); // if (productIdDropDown) { // const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId); // if (iProductIdIndex > -1) { // tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName; // } // } // } // tableDataRow.dPartsQty = dPartsQty; tableData.push(tableDataRow); const treeState = this.handleGetControlTreeData(tableData, true); this.props.onSaveState({ ...treeState, [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], treeSelectedKeys: [tableDataRow.sId], packData, }); } else if (name === 'materials' || name === 'process') { const tableDataRow = this.props.onDataRowAdd(name, true); if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) { message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件 return; } if(bFinished) { const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); if (iIndex > -1) { tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`; tableDataRow.sCombinePartsName = slaveData[iIndex].sId; if (name === 'materials') { /* 新增成品材料 */ tableDataRow.sType = '2'; } if (name === 'process') { /* 新增成品工序 */ tableDataRow.sType = '3'; } } } else { const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]); if (iIndex > -1) { if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') { message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空 return; } tableDataRow.sControlId = controlData[iIndex].sId; tableDataRow.sPartsName = controlData[iIndex].sPartsName; if (name === 'materials' && bFinished) { /* 新增成品材料 */ tableDataRow.sType = '2'; } if (name === 'process' && bFinished) { /* 新增成品工序 */ tableDataRow.sType = '3'; } } } tableData.push(tableDataRow); this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }); } else if (name === 'slave') { const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app } = this.props; let { expKeys }= this.props; if(commonUtils.isEmptyArr(expKeys)) { expKeys = []; } const tableDataRow = this.props.onDataRowAdd(name, true); if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) { message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo')); return; } if (bchild === 'childNode') { /* 添加子级 */ tableDataRow.sFatherSlaveId = tableSelectedRowKeys[0]; const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]); if (iIndex > -1) { const sAllId = commonUtils.isNotEmptyObject(tableData[iIndex].sAllId)? tableData[iIndex].sAllId : tableData[iIndex].sId; if (commonUtils.isEmptyObject(sAllId)) { message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId return; } tableDataRow.sAllId = `${tableData[iIndex].sAllId},${tableDataRow.sId}`; // tableDataRow.sCustomerId = tableData[iIndex].sCustomerId; // tableDataRow.sCustomerNo= tableData[iIndex].sCustomerNo; // tableDataRow.sCustomerName= tableData[iIndex].sCustomerName; } /* 新增子级时 子级展开 */ expKeys.push(tableSelectedRowKeys[0]); /* 展开只要展开父级即可 */ } if(bchild !=='sameNode' && bchild !=='childNode') { /* 列头新增 */ tableDataRow.sAllId = tableDataRow.sId; } tableData.push(tableDataRow); this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], expKeys }); } else { return this.props.onDataRowAdd(name, flag); } }; /** 删除表格数据 */ otherTableDel = (name, tableSelectedRowKeys) => { const tableData = this.props[`${name}Data`]; let tableDelData = this.props[`${name}DelData`]; tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData; if(commonUtils.isNotEmptyArr(tableData)) { for (const sId of tableSelectedRowKeys) { /* 看看删除集合和从表中是否都存在该条数据 */ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId); while (tableDataIndex > -1) { /* 删除从表中的数据并存入删除集合中 */ const slaveDataFilter = tableData[tableDataIndex]; tableData.splice(tableDataIndex, 1); slaveDataFilter.handleType = 'del'; tableDelData.push(slaveDataFilter); tableDataIndex = tableData.findIndex(item => item.sControlId === sId); } } return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData }; } else { return {}; } } otherControlDel = async (name, tableSelectedRowKeys) => { const slaveData = this.props.slaveData; const tableData = this.props[`${name}Data`]; let tableDelData = this.props[`${name}DelData`]; tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData; let materialsReturnData = {}; let processReturnData = {}; let packReturnData = {}; for (const sId of tableSelectedRowKeys) { let slaveRow = {}; const iIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex(item => item.sId === sId) : -1; if(iIndex > -1) { slaveRow = slaveData[iIndex]; } if(commonUtils.isNotEmptyObject(slaveRow) && commonUtils.isNotEmptyArr(tableData)) { /* 看看删除集合和从表中是否都存在该条数据 */ let tableDataIndex = tableData.findIndex(item => item.sCombinedMemo && item.sCombinedMemo.indexOf(slaveRow.sProductNo) > -1 ); while (tableDataIndex > -1) { /* 删除数据并存入删除集合中 */ const tableDataFilter = tableData[tableDataIndex]; const sControlId = tableData[tableDataIndex].sId; tableData.splice(tableDataIndex, 1); tableDataFilter.handleType = 'del'; tableDelData.push(tableDataFilter); tableDataIndex = tableData.findIndex(item => item.sCombinedMemo && item.sCombinedMemo.includes(slaveRow.sProductNo) === sId); materialsReturnData = this.otherTableDel('materials', sControlId); processReturnData = this.otherTableDel('process', sControlId); packReturnData = this.otherTableDel('pack', sControlId); } } } return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, materialsReturnData, processReturnData, packReturnData }; } otherCommonTableDel = (name, tableSelectedRowKeys, sKey) => { const tableData = this.props[`${name}Data`]; let tableDelData = this.props[`${name}DelData`]; tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData; for (const sId of tableSelectedRowKeys) { /* 看看删除集合和从表中是否都存在该条数据 */ let tableDataIndex = commonUtils.isNotEmptyArr(tableData) ? tableData.findIndex(item => item[sKey] === sId) : -1; while (tableDataIndex > -1) { /* 删除从表中的数据并存入删除集合中 */ const slaveDataFilter = tableData[tableDataIndex]; tableData.splice(tableDataIndex, 1); slaveDataFilter.handleType = 'del'; tableDelData.push(slaveDataFilter); tableDataIndex = tableData.findIndex(item => item[sId] === sId); } } return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] }; }; /** 删除表格数据 */ handleTableDel = async (name, flag, tableSelectedRowKeys) => { if (name === 'slave') { /* 删除sSlaveId关联的合版表 */ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props; if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) { const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys, 'sSlaveId'); const materielReturnData = this.otherTableDel('materials', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品材料 */ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品工序 */ const slaveReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys); this.props.onSaveState({ ...materielReturnData, ...processReturnData, ...packReturnData, ...slaveReturnData, }); return true; } else { message.warn('请选择要删除的部件!'); return false; } } else if (name === 'control') { const { controlData, treeSelectedKeys, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app, } = this.props; if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) { /* 删除该节点及所有子节点 */ const controlChildData = controlData.filter(item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableSelectedRowKeys[0]) > -1 && item.sId !== tableSelectedRowKeys[0]); if (commonUtils.isNotEmptyArr(controlData)) { controlChildData.forEach((itemNew) => { tableSelectedRowKeys.push(itemNew.sId); }); } const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys); const processReturnData = this.otherTableDel('process', tableSelectedRowKeys); const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys); const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys); const treeState = this.handleGetControlTreeData(controlReturnData.controlData, true); this.props.onSaveState({ ...treeState, ...materialsReturnData, ...processReturnData, ...packReturnData, ...controlReturnData, }); return true; } else { message.warn(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择数据 */ return false; } } else if (name === 'process') { const { sModelsId, [`${name}Data`]: tableData, materialsConfig, token, } = this.props; let { materialsDelData, materials0Data:materialsData, } = this.props; if (commonUtils.isEmptyArr(materialsDelData)) { materialsDelData = []; } if (commonUtils.isEmptyArr(materialsData)) { materialsData = []; } const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString()); const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; const tableDelData = []; let returnProcessAssort = []; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; } let iMaterialsIndex = -1; let sProcessId = ''; let processReturnData = []; if(iIndex > -1) { sProcessId = tableData[iIndex].sProcessId; const sControlId = tableData[iIndex].sControlId; processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys); returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => { const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId); if (iProcessIndex > -1) { const slaveDataFilter = processReturnData.processData[iProcessIndex]; tableData.splice(iProcessIndex, 1); slaveDataFilter.handleType = 'del'; tableDelData.push(slaveDataFilter); } })); processReturnData.processDelData.concat(tableDelData); } /* 删除工序对应的材料 */ const materialsFilterDelData = materialsData.filter(item => tableSelectedRowKeys.includes(item.sProcessTbId) && item.sProcessId === sProcessId ); let materialsSelectedDelRowKeys = []; if(commonUtils.isNotEmptyArr(materialsFilterDelData)) { materialsFilterDelData.forEach((item) =>{ const materialsChildFilter = materialsData.filter(row => commonUtils.isNotEmptyObject(row.sParentMaterialsId ) && row.sParentMaterialsId === item.sId); /* 删除对应的替代料 */ if(commonUtils.isNotEmptyArr(materialsChildFilter)) { materialsChildFilter.forEach((child) =>{ materialsSelectedDelRowKeys.push(child.sId); }) } materialsSelectedDelRowKeys.push(item.sId); }) } let materialsReturnData = {}; if (commonUtils.isNotEmptyArr(materialsSelectedDelRowKeys)) { materialsReturnData = this.props.onDataRowDel('materials0', true, materialsSelectedDelRowKeys); if(commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) { materialsReturnData.materials0DelData = materialsReturnData.materials0DelData.concat(materialsDelData); } } this.props.onSaveState({ ...processReturnData, ...materialsReturnData, materialsConfig, materialsSelectedRowKeys: [], }); return true; }else if(name === 'materials0'){ /* 删除全部材料时 对应删除替代料 */ const { sModelsId, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Data`]: tableData, materialsConfig, materials0Data, token, } = this.props; if(commonUtils.isEmptyArr(tableSelectedRowKeys)) { message.error('请选择数据!'); return ; } if(commonUtils.isNotEmptyArr(materials0Data)) { const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId)); if(commonUtils.isNotEmptyArr(materials0ChildData)) { materials0ChildData.forEach((item, index) => { tableSelectedRowKeys.push(item.sId); }); } /* 删除子墨 */ const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId)); if(commonUtils.isNotEmptyArr(materials0InkData)) { materials0InkData.forEach((item) => { tableSelectedRowKeys.push(item.sId); }); } const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId'); /* 全部材料删除 */ const materials0ChildReturnData = this.otherCommonTableDel('materials0Child', tableSelectedRowKeys, 'sId'); /* 替代料删除 */ this.props.onSaveState({ ...materials0ReturnData, ...materials0ChildReturnData, }); } } else if(name ==='materials1'){ /* 删除油墨时 同时删除油墨子集 */ /* 从全部材料里 找到对应数据 进行更改 */ const { sModelsId, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Data`]: tableData, materialsConfig, materials0Data, token, } = this.props; if(commonUtils.isEmptyArr(tableSelectedRowKeys)) { message.error('请选择数据!'); return ; } if(commonUtils.isNotEmptyArr(materials0Data)) { const iIndex = materials0Data.findIndex(item => tableSelectedRowKeys.includes(item.sId) ); let materials1Row = {}; if(iIndex > -1) { materials1Row = materials0Data[iIndex]; } const materials0ChildData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sInkBOMId) && item.sInkBOMId === materials1Row.sInkBOMId && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId) && item.sInkBOMsSlaveId === materials1Row.sInkBOMsSlaveId && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)); if(commonUtils.isNotEmptyArr(materials0ChildData)) { materials0ChildData.forEach((item, index) => { tableSelectedRowKeys.push(item.sId); }); } const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId'); const tableReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys); this.props.onSaveState({ ...materials0ReturnData, ...tableReturnData, }); } } else if(name ==='materials2' || name ==='materials3' || name ==='materials1Child'){ /* 删除电化铝、油墨子集 */ /* 从全部材料里 找到对应数据 进行删除 */ const { sModelsId, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Data`]: tableData, materialsConfig, materials0Data, token, } = this.props; if(commonUtils.isEmptyArr(tableSelectedRowKeys)) { message.error('请选择数据!'); return ; } if(commonUtils.isNotEmptyArr(materials0Data)) { const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId'); const tableReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys); this.props.onSaveState({ ...materials0ReturnData, ...tableReturnData, }); } } else if (name === 'materials0Child') { // 删除替代料 const result = this.props.onDataRowDel('materials0', true, tableSelectedRowKeys) || {}; delete result.materials0SelectedRowKeys; this.props.onSaveState(result); } else { return this.props.onDataRowDel(name, flag, tableSelectedRowKeys); } }; // 删除全部材料 handleDeleteAllMaterials = (materials0FilterData = []) => { if (!materials0FilterData.length) return; const delAll = () => { const { materials0Data = [] } = this.props; const tableSelectedRowKeys = materials0FilterData.map(item => item.sId); const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId)); if(commonUtils.isNotEmptyArr(materials0ChildData)) { materials0ChildData.forEach((item) => { tableSelectedRowKeys.push(item.sId); }); } /* 删除子墨 */ const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId)); if(commonUtils.isNotEmptyArr(materials0InkData)) { materials0InkData.forEach((item) => { tableSelectedRowKeys.push(item.sId); }); } const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId'); /* 全部材料删除 */ const materials0ChildReturnData = this.otherCommonTableDel('materials0Child', tableSelectedRowKeys, 'sId'); /* 替代料删除 */ this.props.onSaveState({ ...materials0ReturnData, ...materials0ChildReturnData, }); } confirm({ title: '确认要删除全部吗?', onOk() { delAll(); }, okText: '确定', cancelText: '取消' }); } handleCalculation = async () => { const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`; const { masterConfig, slaveConfig, controlConfig, materialsConfig, processConfig,packConfig, app, } = this.props; let { slaveData, controlData, materialsData, processData, masterData,packData, } = this.props; const data = []; data.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true)); data.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true)); data.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true)); data.push(commonBusiness.mergeData('materials', `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true)); data.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true)); data.push(commonBusiness.mergeData('pack', `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true)); const value = { data, sClientType: '1', sGuid: masterData.sId }; const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data; if (dataReturn.code === 1) { /* 成功 */ const valueReturn = dataReturn.dataset.rows[0]; const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`]; if (commonUtils.isNotEmptyArr(masterDataArr)) { masterData = masterDataArr[0]; } slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`]; controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`]; materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`]; processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`]; processData = this.sortData(controlData, processData); packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`]; this.props.onSaveState({ slaveData, controlData, materialsData, processData, masterData, loading: false,packData, }); message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess')); } else { /* 失败 */ this.props.onSaveState({ loading: false, }); this.props.getServiceError(dataReturn); } } /** 按钮操作事件 */ handleButtonClick = async (name) => { if (name === 'BtnCalculation') { this.props.onSaveState({ loading: true, }); this.handleCalculation(); } else if (name === 'BtnDraft') { const { masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData, materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig, colorData, colorDelData, packConfig, packData, packDelData, materials0Config, materials0Data, materials0DelData, } = this.props; const data = []; slaveConfig.gdsconfigformslave.forEach((itemConfig) => { slaveData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => { itemData.NoVerify = 'NoVerify'; const firstDataIndex = itemConfig.sName.substring(0, 1); if (commonUtils.isEmpty(itemData[itemConfig.sName])) { itemData[itemConfig.sName] = firstDataIndex === 's' ? '' : firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 : firstDataIndex === 'b' ? false : firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined; } }); }); controlConfig.gdsconfigformslave.forEach((itemConfig) => { controlData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => { itemData.NoVerify = 'NoVerify'; const firstDataIndex = itemConfig.sName.substring(0, 1); if (commonUtils.isEmpty(itemData[itemConfig.sName])) { itemData[itemConfig.sName] = firstDataIndex === 's' ? '' : firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 : firstDataIndex === 'b' ? false : firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined; } }); }); materials0Config.gdsconfigformslave.forEach((itemConfig) => { materials0Data.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => { itemData.NoVerify = 'NoVerify'; const firstDataIndex = itemConfig.sName.substring(0, 1); if (commonUtils.isEmpty(itemData[itemConfig.sName])) { itemData[itemConfig.sName] = firstDataIndex === 's' ? '' : firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 : firstDataIndex === 'b' ? false : firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined; } }); }); processConfig.gdsconfigformslave.forEach((itemConfig) => { processData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => { itemData.NoVerify = 'NoVerify'; const firstDataIndex = itemConfig.sName.substring(0, 1); if (commonUtils.isEmpty(itemData[itemConfig.sName])) { itemData[itemConfig.sName] = firstDataIndex === 's' ? '' : firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 : firstDataIndex === 'b' ? false : firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined; } }); }); if (commonUtils.isNotEmptyObject(packConfig)) { packConfig.gdsconfigformslave.forEach((itemConfig) => { packData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => { itemData.NoVerify = 'NoVerify'; const firstDataIndex = itemConfig.sName.substring(0, 1); if (commonUtils.isEmpty(itemData[itemConfig.sName])) { itemData[itemConfig.sName] = firstDataIndex === 's' ? '' : firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 : firstDataIndex === 'b' ? false : firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined; } }); }); } if (commonUtils.isNotEmptyObject(colorConfig)) { colorConfig.gdsconfigformslave.forEach((itemConfig) => { colorData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => { itemData.NoVerify = 'NoVerify'; const firstDataIndex = itemConfig.sName.substring(0, 1); if (commonUtils.isEmpty(itemData[itemConfig.sName])) { itemData[itemConfig.sName] = firstDataIndex === 's' ? '' : firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 : firstDataIndex === 'b' ? false : firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined; } }); }); } masterData.bIsUnCcg = false; masterData.sStatus = '4'; masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType; data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData])); data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData)); data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData)); data.push(commonBusiness.mergeData('materials', materials0Config.sTbName, materials0Data, materials0DelData)); data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData)); if (commonUtils.isNotEmptyObject(colorConfig)) { data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData)); } if (commonUtils.isNotEmptyObject(packConfig)) { data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData)); } this.props.onSaveData({ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId, bIsUnCcg: false }); } else if (name === 'BtnChooseProcess') { const { slaveData, controlData, slaveSelectedRowKeys, masterConfig, app, } = this.props; if (commonUtils.isEmptyArr(slaveData)) { message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */ return; } const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]); if (commonUtils.isEmptyArr(slaveSelectedData)) { message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */ return; } if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) { message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */ return; } if (commonUtils.isEmptyObject(controlData)) { message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */ return; } const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name); if (iIndex > -1) { this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]); } } else if (name === 'BtnChooseMaterials') { const { slaveData, controlData, slaveSelectedRowKeys, masterConfig, app, } = this.props; if (commonUtils.isEmptyArr(slaveData)) { message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */ return; } const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]); if (commonUtils.isEmptyArr(slaveSelectedData)) { message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */ return; } if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) { message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */ return; } if (commonUtils.isEmptyObject(controlData)) { message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */ return; } const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name); if (iIndex > -1) { this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]); } } else if(name === 'BtnWorkFlow') { const dataUrl = `${commonConfig.server_host}workOrderFlow/getWorkOrderFlow/`; let {token} = this.props.app let { slaveData, controlData, materialsData, processData, packData} = this.props; const value = { slave:slaveData, control:controlData, materials:materialsData, process:processData, pack:packData, sModelsType:'processCardPackTableTree', } let dataReturn = (await commonServices.postValueService(token,value,dataUrl)).data; if (commonUtils.isNotEmptyObject(dataReturn)) { if (dataReturn.code === 1) { const flowData = dataReturn.dataset.rows[0]; if (commonUtils.isNotEmptyObject(flowData)) { this.props.onSaveState({ flowData: flowData,workFlowVisible:true }); // localStorage.setItem('flow', JSON.stringify(flowData)); } } else { this.props.getServiceError(dataReturn); } } } else { this.props.onButtonClick(name); } }; /* 上一条、下一条、首条、末条 */ handleSearchData = async (handleType) => { const { controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, } = this.props; const bReturn = await this.props.onSearchData(handleType); if (bReturn) { // this.handleGetData(controlConfig, materialsConfig, processConfig); this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig); } }; /** 点击修改按钮操作 */ handleEdit = () => { const { controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, addStateMap, } = this.props; this.props.onEdit(() => { this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, { loading: false, enabled: true }, addStateMap); }); }; /* 单据页复制到 */ handleCopyTo =async (name, sActiveId) => { /* 待用数据声明 */ const { masterConfig, masterData, slaveData, controlData, materialsData, materials0Data, processData, colorData, app, token, sModelsId, packData, formRoute, } = this.props; // 从表有sCopyToCondition则不能复制,并提示 if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) { const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition); if (sCopyToConditionIndex !== -1) { message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition); return; } } const copyTo = {}; const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name)); copyTo.name = name; copyTo.config = copyToConfig; copyTo.masterData = masterData; copyTo.slaveData = slaveData; copyTo.controlData = controlData; copyTo.materialsData = materialsData; copyTo.materials0Data = materials0Data; copyTo.processData = processData; copyTo.packData = packData; copyTo.colorData = colorData; copyTo.srcFormRoute = formRoute; const tbSuffix = ''; let sId = ''; if (!commonUtils.isEmpty(slaveData)) { sId = slaveData[0].sId; } const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; const values = { sSlaveId: sId }; const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; if (dataReturn.code === 1) { // eslint-disable-next-line no-underscore-dangle const _this = this; // 解决confirm中this指向问题; if (dataReturn.dataset.rows.length > 0) { confirm({ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ onOk() { _this.handleDispatch(copyTo, sActiveId); }, onCancel() { }, }); } else { this.handleDispatch(copyTo, sActiveId); } } }; handleDispatch = (copyTo, sActiveId) => { const { dispatch } = this.props; dispatch({ type: 'content/onRouter', payload: { url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */ sSrcModelsId: this.props.sModelsId, copyTo, }, }); } /* 确定要删除 */ handleOkDel = async (props) => { /* 数据参数 */ const { token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, } = props; const value = { sClientType: '1', data: { sMasterTable: masterConfig.sTbName, sId: [masterData.sId], sSlaveTable: [ { tableName: slaveConfig.sTbName, relationName: 'sParentId', }, { tableName: checkConfig.sTbName, relationName: 'sBillId', }, { tableName: controlConfig.sTbName, relationName: 'sParentId', }, { tableName: materialsConfig.sTbName, relationName: 'sParentId', }, { tableName: processConfig.sTbName, relationName: 'sParentId', }], }, }; const { sBillNo, sId } = masterData || {}; const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`; /* 接收返回值 */ const { data } = await commonServices.postValueService(token, value, url); if (data.code === 1) { /* 数据删除成功 */ if (this.props.app.currentPane.refresh !== undefined) { this.props.app.currentPane.refresh(); } this.props.onDelDataSuccess(props); } else { /* 失败 */ this.props.getServiceError(data); } }; /* 删除 */ handleDel = (obj) => { const props = { ...this.props, ...this.state }; const onOkDel = this.handleOkDel; confirm({ title: obj.title, onOk() { onOkDel(props); }, onCancel() { }, }); }; /* 取消操作 */ handleCancel = (obj) => { /* 待用数据声明 */ const { masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app, colorConfig, dailyConfig, packConfig, } = this.props; const onGetData = this.props.onGetData; const onGetDataOk = this.handleGetData; const onSaveStateOk = this.props.onSaveState; const onSendSocketMessage = this.props.handleSendSocketMessage; const { copyTo } = app.currentPane; const { userinfo } = app; confirm({ title: obj.title, onOk() { onGetData(masterConfig, slaveConfig, checkConfig); onGetDataOk(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig); onSaveStateOk({ enabled: false }); if (commonUtils.isNotEmptyObject(copyTo)) { const { slaveData } = copyTo; const sIdArray = []; slaveData.forEach((item) => { const redisKey = item.sSlaveId; sIdArray.push(redisKey); }); const sId = sIdArray.toString(); onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null); } }, onCancel() { }, }); }; /** 点击新增按钮 */ handleAdd = async (config, copyTo, isWait) => { if (commonUtils.isEmptyObject(config)) { const { masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig, } = this.props; config = config === undefined ? {} : config; config.masterConfig = masterConfig; config.slaveConfig = slaveConfig; config.materialsConfig = materialsConfig; config.controlConfig = controlConfig; config.processConfig = processConfig; config.colorConfig = colorConfig; } let state = await this.props.onAdd(config, copyTo, true); const { masterData, slaveData } = state; const controlData = []; let packData = []; const materialsData = []; let processData = []; const colorData = []; // let materials0ChildData = []; /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */ let bProductQtySelf = false; if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) { const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf'); if (iIndex > -1) { bProductQtySelf = true; } } if (commonUtils.isNotEmptyObject(copyTo)) { const { sModelsId, token, } = this.props; const bCkxCopyFromTechnology = '0'; // 工艺卡不用再取工艺卡。 app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue; if (bCkxCopyFromTechnology === '1' && !copyTo.name.includes('BtnCopyTo.tmpInfo')) { const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId; const sProductIdArray = []; copyTo.slaveData.forEach((slaveItem) => { const sProductId = slaveItem.sProductId; if (commonUtils.isNotEmptyStr(sProductId)) { sProductIdArray.push(sProductId); } }); const sProductIds = sProductIdArray.toString(); const condition = { sCustomerId, sProductIds }; const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; if (dataReturn.code === 1) { const returnData = dataReturn.dataset.rows[0]; const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase()); const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase()); const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase()); const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase()); const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : ''; const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : ''; const bProcessAssort = true; let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField; } } } const newCopyTo = {}; newCopyTo.master = copyTo.masterData; newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; if (commonUtils.isNotEmptyArr(returnData.controlData)) { let dProductQty = 0; slaveData.forEach((item) => { if (bProductQtySelf) { dProductQty += commonUtils.isNull(item.dProductQty, 0); } else { dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); const treeCopyNodes = new Map(); returnData.controlData.forEach((controlItem) => { newCopyTo.control = controlItem; let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值 controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 controlRow.handleType = 'add'; controlRow.sId = commonUtils.createSid(); controlRow.sParentId = masterData.sId; controlRow.dPartsQty = dProductQty; const sAllOldId = controlItem.sAllId; let arr = []; if (commonUtils.isNotEmptyObject(sAllOldId)) { arr = sAllOldId.split(','); } const newId = controlRow.sId; let sOldParentId = ''; let sNewParentAllId = ''; if (arr.length < 2) { /* 根节点复制 */ controlRow.sAllId = newId; sOldParentId = newId; sNewParentAllId = newId; } else { sOldParentId = arr[arr.length - 2]; if (treeCopyNodes.has(sOldParentId)) { sNewParentAllId = treeCopyNodes.get(sOldParentId); } else { const obj = arr[arr.length - 1]; sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); } const sNewArr = sNewParentAllId.split(','); controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; sNewParentAllId = `${sNewParentAllId},${newId}`; controlRow.sAllId = sNewParentAllId; } treeCopyNodes.set(controlItem.sId, sNewParentAllId); controlData.push(controlRow); /* 复制到时增加合版表 */ if (commonUtils.isNotEmptyArr(returnData.packData)) { copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => { newCopyTo.pack = packItem; let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值 packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段 packRow.sOriginalId = packItem.sId;/* 翻单前的sId */ /* sSlaveId赋值 */ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId); if (iSlaveIndex > -1) { const slaveDataRow = slaveData[iSlaveIndex]; const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add'); if (commonUtils.isNotEmptyObject(packRowAdd)) { packRow = { ...packRow, ...packRowAdd }; packData.push(packRow); } } }); } if (commonUtils.isNotEmptyArr(returnData.processData)) { returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; /* 根据合版表的源sOriginalId找到新sId */ let sNewIds = ''; let sNewNames = ''; const sOldIds = processItem.sCombinePartsName; if (commonUtils.isNotEmptyObject(sOldIds)) { const sOldArr = sOldIds.split(','); for (const sId of sOldArr) { const index = packData.findIndex(item => item.sOriginalId === sId); if (index > -1) { const tableDataRow = packData[index]; sNewIds += `${tableDataRow.sId},`; sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`; } } sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; } processRow.sCombinePartsName = sNewIds; processRow.sCombinePartsNameNew = sNewNames; // if (commonUtils.isNotEmptyArr(slaveData)) { // processRow.sSlaveId = slaveData[0].sId; // } processData.push(processRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; // if (commonUtils.isNotEmptyArr(slaveData)) { // processRow.sSlaveId = slaveData[0].sId; // } processData.push(processRow); } })); } }); } if (commonUtils.isNotEmptyArr(returnData.materialsData)) { returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materialsRow.sControlId = controlRow.sId; materialsRow.sPartsName = controlRow.sPartsName; // 材料对应工序的ID要变化 if (commonUtils.isNotEmptyArr(returnData.processData)) { const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId); if (iProcessIndex > -1) { materialsRow.sProcessTbId = processData[iProcessIndex].sId; } } materialsData.push(materialsRow); }); } }); } if (commonUtils.isNotEmptyArr(returnData.materialsData)) { returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materialsData.push(materialsRow); }); } if (commonUtils.isNotEmptyArr(returnData.processData)) { returnData.processData.filter(item => item.sType === '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; /* 根据合版表的源sOriginalId找到新sId */ let sNewIds = ''; let sNewNames = ''; const sOldIds = processItem.sCombinePartsName; if (commonUtils.isNotEmptyObject(sOldIds)) { const sOldArr = sOldIds.split(','); for (const sId of sOldArr) { const index = packData.findIndex(item => item.sOriginalId === sId); if (index > -1) { const tableDataRow = packData[index]; sNewIds += `${tableDataRow.sId},`; sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`; } } sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; } processRow.sCombinePartsName = sNewIds; processRow.sCombinePartsNameNew = sNewNames; processData.push(processRow); // 成品配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { if (itemProcessAssort.sType === 'single') { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } else if (itemProcessAssort.sType === 'all') { controlData.forEach((controlItem) => { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlItem.sId; processRow.sPartsName = controlItem.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); }); } } })); } }); } if (commonUtils.isNotEmptyArr(returnData.colorData)) { if (commonUtils.isNotEmptyObject(config.colorConfig)) { returnData.colorData.forEach((colorItem) => { newCopyTo.color = colorItem; let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值 colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段 colorRow.handleType = 'add'; colorRow.sId = commonUtils.createSid(); colorRow.sParentId = masterData.sId; colorData.push(colorRow); }); } } } else { this.props.getServiceError(dataReturn.msg); } } else { const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase()); const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase()); const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase()); const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase()); const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase()); const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase()); const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : ''; const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : ''; const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : ''; const newCopyTo = {}; newCopyTo.master = copyTo.masterData; newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; console.log('翻单逻辑', copyTo); const bProcessAssort = true; if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) { const { token } = this.props; const sParentId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sParentId) ? copyTo.slaveData[0].sParentId : copyTo.slaveData[0].sId; // const condition = { sSlaveId: copyTo.slaveData[0].sSlaveId }; const condition = { sParentId }; const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`; const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; // bProcessAssort = false; if (dataReturn.code === 1) { const returnData = dataReturn.dataset.rows[0]; copyTo.controlData = returnData.controlData; copyTo.materialsData = returnData.materialsData; copyTo.processData = returnData.processData; copyTo.colorData = returnData.colorData; } else { this.props.getServiceError(dataReturn); } } let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField; } } } if (commonUtils.isNotEmptyArr(copyTo.controlData)) { let dProductQty = 0; /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */ let bProductQtySelf = false; if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) { const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf'); if (iIndex > -1) { bProductQtySelf = true; } } if (commonUtils.isNotEmptyArr(copyTo.slaveData)) { if (slaveData.length === 1 && copyTo.slaveData.length ===1){ /* 从表与返回数据从表只有一条时 替换该从表数据 */ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, copyTo.slaveData[0], newCopyTo) }; // 取赋值字段 slaveData.forEach((item, iSlaveIndex) => { item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, copyTo.slaveData[0], newCopyTo) }; // 取赋值字段 slaveData[iSlaveIndex] = item; if (bProductQtySelf) { dProductQty += commonUtils.isNull(item.dProductQty, 0); } else { dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); } else { copyTo.slaveData.forEach((slaveItem, iIndex) => { /* 从工艺卡数据集 找到从表相同产品ID,客户ID */ const iSameIndex = slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId); if(iSameIndex > -1){ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段 slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */ if (bProductQtySelf) { dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0); } else { dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0) + commonUtils.isNull(slaveItem.dGiveQty, 0) + commonUtils.isNull(slaveItem.dStockupQty, 0); } }else if(commonUtils.isNotEmptyObject(slaveDetailAssignField)){ /* 其他数据 新增 */ newCopyTo.slave = slaveItem; let slaveRow ={}; slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField,slaveItem, newCopyTo) }; // 取赋值字段 slaveRow.handleType = 'add'; slaveRow.sId = commonUtils.createSid(); slaveRow.sParentId = masterData.sId; slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; slaveData.push(slaveRow); } }); } } const treeCopyNodes = new Map(); copyTo.controlData.forEach((controlItem) => { newCopyTo.control = controlItem; let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值 controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 controlRow.handleType = 'add'; controlRow.sId = commonUtils.createSid(); controlRow.sParentId = masterData.sId; controlRow.dPartsQty = dProductQty; if(commonUtils.isEmptyObject(controlRow.sPartsName)) { controlRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0] : ''; } /* CopyTo时sAllId,sControlParentId 设置 */ const sAllOldId = controlItem.sAllId; let arr = []; if (commonUtils.isNotEmptyObject(sAllOldId)) { arr = sAllOldId.split(','); } const newId = controlRow.sId; let sOldParentId = ''; let sNewParentAllId = ''; if (arr.length < 2) { /* 根节点复制 */ controlRow.sAllId = newId; sOldParentId = newId; sNewParentAllId = newId; } else { sOldParentId = arr[arr.length - 2]; if (treeCopyNodes.has(sOldParentId)) { sNewParentAllId = treeCopyNodes.get(sOldParentId); } else { const obj = arr[arr.length - 1]; sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); } const sNewArr = sNewParentAllId.split(','); controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; sNewParentAllId = `${sNewParentAllId},${newId}`; controlRow.sAllId = sNewParentAllId; } treeCopyNodes.set(controlItem.sId, sNewParentAllId); controlData.push(controlRow); /* 复制到时增加合版表 */ if (commonUtils.isNotEmptyArr(copyTo.packData)) { copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => { newCopyTo.pack = packItem; let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值 packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段 packRow.sOriginalId = packItem.sId;/* 翻单前的sId */ /* sSlaveId赋值 */ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId); if (iSlaveIndex > -1) { const slaveDataRow = slaveData[iSlaveIndex]; const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add'); if (commonUtils.isNotEmptyObject(packRowAdd)) { packRow = { ...packRow, ...packRowAdd }; /* 将控制表中的合版备注sId为新的sId */ let JsonData = []; const jsonStr = controlRow.sCombinedMemo; if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) { JsonData = JSON.parse(jsonStr); if (commonUtils.isNotEmptyArr(JsonData)) { let sCombinedMemoNew = ''; JsonData.forEach((item, index) => { if (item.sId === packItem.sId) { JsonData[index].sId = packRow.sId; } }); sCombinedMemoNew = JSON.stringify(JsonData); controlRow.sCombinedMemo = sCombinedMemoNew; const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId); if (icontrolIndex > -1) { controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew }; } } } packData.push(packRow); } } }); } if (commonUtils.isNotEmptyArr(copyTo.processData)) { copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processRow.sType = processItem.sType; /* 根据合版表的源sOriginalId找到新sId */ let sNewIds = ''; let sNewNames = ''; const sOldIds = processItem.sCombinePartsName; if (commonUtils.isNotEmptyObject(sOldIds)) { const sOldArr = sOldIds.split(','); for (const sId of sOldArr) { const index = packData.findIndex(item => item.sOriginalId === sId); if (index > -1) { const tableDataRow = packData[index]; sNewIds += `${tableDataRow.sId},`; sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`; } } sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; } processRow.sCombinePartsName = sNewIds; processRow.sCombinePartsNameNew = sNewNames; // processRow.sSlaveId = ' '; processData.push(processRow); if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } }); } if (commonUtils.isNotEmptyArr(copyTo.materialsData)) { copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materialsRow.sControlId = controlRow.sId; materialsRow.sPartsName = controlRow.sPartsName; materialsRow.sType = materialsItem.sType; materialsRow.sOriginalId = materialsItem.sId; materialsRow.sParentMaterialsId = materialsItem.sParentMaterialsId; materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId; // 材料对应工序的ID要变化 if (commonUtils.isNotEmptyArr(copyTo.processData)) { const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId); if (iProcessIndex > -1) { materialsRow.sProcessTbId = processData[iProcessIndex].sId; } } materialsData.push(materialsRow); }); /* 将 materialsData中sParentMaterialsId替换为最新的sid */ if(commonUtils.isNotEmptyArr(materialsData)) { const materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId)); if(commonUtils.isNotEmptyArr(materialsFilterData)) { materialsFilterData.forEach((filterItem, index) => { const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId); if(iIndex > -1) { // materialsFilterData[index] = {... materialsFilterData[index], sParentMaterialsId: materialsData[iIndex].sId }; const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId); if(iNexIndex > -1) { const addState = {}; addState.sMaterialsNo1 = materialsData[iIndex].sMaterialsNo; /* 原材料编号 */ addState.sMaterialsName1 = materialsData[iIndex].sMaterialsName; /* 原材料名称 */ addState.bAlternative = true; addState.sParentMaterialsId = materialsData[iIndex].sId; materialsData[iNexIndex] = { ...materialsData[iNexIndex], ...addState}; materialsData[iIndex] = { ...materialsData[iIndex], bTidaibs:true }; // materialsData[iNexIndex] = { ...materialsData[iNexIndex], sParentMaterialsId: materialsData[iIndex].sId} } } }); } const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId)); if(commonUtils.isNotEmptyArr(materialsInkFilterData)) { materialsInkFilterData.forEach((filterItem, index) => { const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId); if(iIndex > -1) { const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId); if(iNexIndex > -1) { materialsData[iNexIndex] = { ...materialsData[iNexIndex], sInkFatherMaterialsTbId: materialsData[iIndex].sId} } } }); } // materials0ChildData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId)); } } }); } if (commonUtils.isNotEmptyArr(copyTo.materialsData)) { copyTo.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materialsRow.sType = materialsItem.sType; /* 根据从表源sOriginalId找到新sId */ let sNewIds = ''; let sNewNames = ''; const sOldIds = materialsItem.sCombinePartsName; if (commonUtils.isNotEmptyObject(sOldIds)) { const sOldArr = sOldIds.split(','); for (const sId of sOldArr) { const index = slaveData.findIndex(item => item.sOriginalId === sId); if (index > -1) { const tableDataRow = slaveData[index]; sNewIds += `${tableDataRow.sId},`; sNewNames += `${tableDataRow.sProductName},`; } } sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; } materialsRow.sCombinePartsName = sNewIds; materialsRow.sCombinePartsNameNew = sNewNames; materialsData.push(materialsRow); }); } if (commonUtils.isNotEmptyArr(copyTo.processData)) { copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = processItem.sType; /* 根据从表的源sOriginalId找到新sId */ let sNewIds = ''; let sNewNames = ''; const sOldIds = processItem.sCombinePartsName; if (commonUtils.isNotEmptyObject(sOldIds)) { const sOldArr = sOldIds.split(','); for (const sId of sOldArr) { const index = slaveData.findIndex(item => item.sOriginalId === sId); if (index > -1) { const tableDataRow = slaveData[index]; sNewIds += `${tableDataRow.sId},`; sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`; } } sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; } processRow.sCombinePartsName = sNewIds; processRow.sCombinePartsNameNew = sNewNames; // processRow.sSlaveId = slaveData[0].sId; processData.push(processRow); if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { if (itemProcessAssort.sType === 'single') { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } else if (itemProcessAssort.sType === 'all') { controlData.forEach((controlItem) => { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlItem.sId; processRow.sPartsName = controlItem.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); }); } } })); } }); } if (commonUtils.isNotEmptyArr(copyTo.colorData)) { if (commonUtils.isNotEmptyObject(config.colorConfig)) { copyTo.colorData.forEach((colorItem) => { newCopyTo.color = colorItem; let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值 colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段 colorRow.handleType = 'add'; colorRow.sId = commonUtils.createSid(); colorRow.sParentId = masterData.sId; colorData.push(colorRow); }); } } } if (controlData.length === 0) { if (!commonUtils.isEmpty(slaveData[0].sProductId)) { const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]); const dropDownData = sqlDropDownData.dropDownData; const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId); const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId; if (!commonUtils.isEmpty(sParentId)) { const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName'); if (iIndex > -1) { let dProductQty = 0; slaveData.forEach((item) => { if (bProductQtySelf) { dProductQty += commonUtils.isNull(item.dProductQty, 0); } else { dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]); const dropDownData = sqlDropDownData.dropDownData; const [changeData] = dropDownData.filter(item => item.sId === sParentId); const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName; if (commonUtils.isNotEmptyStr(sAllPartsName)) { const sAssignFieldObj = sAllPartsName.split(','); for (const child of sAssignFieldObj) { let allTableData = {}; allTableData = {}; allTableData.master = masterData; allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData); tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRow.key = tableDataRow.sId; tableDataRow.bDefault = false; tableDataRow.iOrder = 0; tableDataRow.sPartsName = child; tableDataRow.dPartsQty = dProductQty; controlData.push(tableDataRow); } } } } } } } else { processData = this.sortData(controlData, processData); } } else { state.fastOrderModalVisible = this.props.bFastOrderView; const { sModelsId } = this.props; if (commonUtils.isEmpty(masterData.sProductClassifyId)) { const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName'); if (iIndex > -1) { const returnValue = {}; const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex]; const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]); const dropDownData = sqlDropDownData.dropDownData; const [changeData] = dropDownData.filter(item => item.sType === 'huace'); if (!commonUtils.isEmpty(sAssignField)) { /* 赋值数组 */ const sAssignFieldObj = sAssignField.split(','); if (commonUtils.isNotEmptyObject(changeData)) { for (const child of sAssignFieldObj) { if (child.indexOf(':') > -1) { const sFieldName = child.split(':')[0].trim(); const sValueName = child.split(':')[1].trim(); returnValue[sFieldName] = changeData[sValueName]; } } } } const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true); state = { ...state, ...addState }; } } } if (controlData.length === 0 && commonUtils.isEmptyObject(copyTo)) { const allTableData = {}; allTableData.master = masterData; allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData); tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRow.key = tableDataRow.sId; tableDataRow.bDefault = false; tableDataRow.iOrder = 1; tableDataRow.sSlaveId = ' '; tableDataRow.sCombinedMemo = '合版信息'; tableDataRow.sAllId = tableDataRow.sId; if(commonUtils.isEmptyObject(tableDataRow.sPartsName)) { tableDataRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sProductName : ''; } let dProductQty = 0; slaveData.forEach((item) => { if (bProductQtySelf) { dProductQty += commonUtils.isNull(item.dProductQty, 0); } else { dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); tableDataRow.dPartsQty = dProductQty; /* 点击新增按钮 控制表自动默认增一条 同时默认新增一条合版表 */ if(commonUtils.isNotEmptyArr(slaveData) && slaveData.length === 1 && commonUtils.isEmptyArr(packData)){ const packDataRow = this.handlePackDataAdd(slaveData[0], 0, tableDataRow.sId, 'add'); packDataRow.dCombineQty = 1; packData.push(packDataRow); } controlData.push(tableDataRow); } /* 新增时,增加一条合版信息 */ // if (packData.length === 0) { // slaveData.forEach((item, index) => { // const tableDataRow = this.handlePackDataAdd(item, index, controlData[0].sId, 'add'); // if (commonUtils.isNotEmptyObject(tableDataRow)) { // // tableDataRow.dCombineQty = 1; // packData.push(tableDataRow); // } // }); // } const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */ const stateNew = { ...state, ...treeState, slaveData, controlData, controlSelectedRowKeys: [], materialsData, materials0Data: materialsData, // materials0ChildData:materials0ChildData, materialsSelectedRowKeys: [], processData, packData, colorData, processSelectedRowKeys: [], checkProcessClassifyData: [], }; if (isWait) { return stateNew; } else { this.props.onSaveState(stateNew); } }; handleSelect = async (name, selectConfig, selectData) => { if(name === 'materials') { name = 'materials0'; } const { [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, slaveSelectedRowKeys, controlSelectedRowKeys, sModelsId, token, slaveConfig, controlConfig, materialsConfig, materials0Config, processConfig, colorConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld, packData: packDataOld, controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld, materials0Data: materials0DataOld, materials0DelData: materials0DelDataOld, packDelData: packDelDataOld, } = this.props; let { masterData, controlData, packData } = this.props; const config = {}; config.masterConfig = masterConfig; config.slaveConfig = slaveConfig; config.controlConfig = controlConfig; config.materials0Config = materials0Config; config.processConfig = processConfig; config.colorConfig = colorConfig; if (commonUtils.isNotEmptyObject(selectConfig) && selectConfig.sControlName.includes('TmpInfoBySql')) { /* 复制从部件 根据配置下拉sql获取数据源 通过按钮名称是否包含add来判断数据源新增还是删除 */ const addState = {}; let controlData = commonUtils.isEmptyArr(controlDataOld) ? [] : controlDataOld; let materialsData = commonUtils.isEmptyArr(materialsDataOld) ? [] : materialsDataOld; let materials0Data = commonUtils.isEmptyArr(materials0DataOld) ? [] : materials0DataOld; let processData = commonUtils.isEmptyArr(processDataOld) ? [] : processDataOld; let packData = commonUtils.isEmptyArr(packDataOld) ? [] : packDataOld; let colorData = commonUtils.isEmptyArr(colorDataOld) ? [] : colorDataOld; const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`; const sConfigformId = commonUtils.isEmpty(selectConfig) ? '' : selectConfig.sParentId; const sRowData = selectData; const sControlName = selectConfig.sControlName; /* 按钮名称 */ // const sSqlCondition = { sId: selectData[0].sSlaveId }; /* 后台根据rowData自己取 */ const condition = { sConfigformId, sControlName, sRowData }; const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; if (dataReturn.code === 1) { const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName }; const returnDataSet = dataReturn.dataset.rows[0]; const returnData = {}; const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase()); const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.slave`.toLowerCase()); const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.control`.toLowerCase()); const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.materials`.toLowerCase()); const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.process`.toLowerCase()); const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.pack`.toLowerCase()); const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : ''; const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : ''; const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase()); const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : ''; const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : ''; /* 判断是插入 还是删除 */ if(commonUtils.isNotEmptyArr(copyToControlConfig)) { if(commonUtils.isNotEmptyArr(controlSelectedRowKeys)) { if(!copyToControlConfig[0].sControlName.includes('_add') && !copyToControlConfig[0].sControlName.includes('_edit')) { /* 删除 */ controlData = []; const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld; const controlDataFilterData = controlDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sId)); if(commonUtils.isNotEmptyArr(controlDataFilterData)) { controlDataFilterData.forEach((item) => { item.handleType = 'del'; controlDelData.push(item); }); } addState.controlDelData = controlDelData; } } else { message.error('请选择部件!'); return ; } } if(commonUtils.isNotEmptyArr(copyToMaterialsConfig)) { if(!copyToMaterialsConfig[0].sControlName.includes('_add') && !copyToMaterialsConfig[0].sControlName.includes('_edit')) { /* 删除 */ materialsData = []; const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld; const materialsDataFilterData = materialsDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId)); if(commonUtils.isNotEmptyArr(materialsDataFilterData)) { materialsDataFilterData.forEach((item) => { item.handleType = 'del'; materialsDelData.push(item); }); addState.materialsDelData = materialsDelData; } materials0Data = []; const materials0DelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld; const materials0DataFilterData = materialsDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId)); if(commonUtils.isNotEmptyArr(materials0DataFilterData)) { materials0DataFilterData.forEach((item) => { item.handleType = 'del'; materials0DelData.push(item); }); addState.materials0DelData = materials0DelData; } } } if(commonUtils.isNotEmptyArr(copyToProcessConfig)) { if(!copyToProcessConfig[0].sControlName.includes('_add') && !copyToProcessConfig[0].sControlName.includes('_edit')) { /* 删除 */ processData = []; const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld; const processDataFilterData = processDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId)); if(commonUtils.isNotEmptyArr(processDataFilterData)) { processDataFilterData.forEach((item) => { item.handleType = 'del'; processDelData.push(item); }); addState.processDelData = processDelData; } } } if(commonUtils.isNotEmptyArr(copyToPackConfig)) { if(!copyToPackConfig[0].sControlName.includes('_add') && !copyToPackConfig[0].sControlName.includes('_edit')) { /* 删除 */ packData = []; const packDelData = commonUtils.isEmptyArr(packDelDataOld) ? [] : packDelDataOld; const packDataFilterData = packDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId)); if(commonUtils.isNotEmptyArr(packDataFilterData)) { packDataFilterData.forEach((item) => { item.handleType = 'del'; packDelData.push(item); }); addState.packDelData = packDelData; } } } if(commonUtils.isNotEmptyArr(colorAssignField)) { if(!colorAssignField[0].sControlName.includes('_add') && !colorAssignField[0].sControlName.includes('_edit')) { /* 删除 */ colorData = []; const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld; if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) { colorDataOld.forEach((item) => { item.handleType = 'del'; colorDelData.push(item); }); } addState.colorDelData = colorDelData; } } const newCopyTo = {}; newCopyTo.master = copyTo.masterData; newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; let iSlaveIndex = -1; if (!commonUtils.isEmpty(slaveSelectedRowKeys)) { iSlaveIndex = 0; }else { iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString()); } if (iSlaveIndex > -1) { slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段 } if (commonUtils.isNotEmptyArr(selectData)) { masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, selectData[0], newCopyTo) }; // 取赋值字段 } let controlSelectedRow = {}; /* 控制表选中行 */ let iControlIndex = -1; if (!commonUtils.isEmpty(controlSelectedRowKeys)) { iControlIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId)); if(iControlIndex > -1) { controlSelectedRow = controlData[iControlIndex]; } } const bProcessAssort = true; let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField; } } } if(commonUtils.isNotEmptyObject(returnDataSet)) { /* 数据塞到Data中 */ for (const key of Object.keys(returnDataSet)) { const sName = `${key}Data`; returnData[sName] = returnDataSet[key]; } } console.log('returnData', returnData); if (commonUtils.isNotEmptyArr(returnData.controlData)) { let dProductQty = 0; /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */ let bProductQtySelf = false; if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) { const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf'); if (iIndex > -1) { bProductQtySelf = true; } } // if (commonUtils.isNotEmptyArr(returnData.slaveData)) { // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段 // } if(commonUtils.isNotEmptyObject(copyToSlaveDetailConfig)) { slaveData.forEach((item, iSlaveIndex) => { if (commonUtils.isNotEmptyArr(returnData.slaveData)) { item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段 } slaveData[iSlaveIndex] = item; if (bProductQtySelf) { dProductQty += commonUtils.isNull(item.dProductQty, 0); } else { dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); } const treeCopyNodes = new Map(); returnData.controlData.forEach((controlItem) => { newCopyTo.control = controlItem; let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值 if(copyToControlConfig[0].sControlName.includes('_edit')) { controlRow = { ...controlSelectedRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 if(iControlIndex > -1) { controlData[iControlIndex] = { ...controlSelectedRow, ...controlRow}; } } else { controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 controlRow.handleType = 'add'; controlRow.sId = commonUtils.createSid(); controlRow.sParentId = masterData.sId; controlRow.dPartsQty = dProductQty; const sAllOldId = controlItem.sAllId; let arr = []; if (commonUtils.isNotEmptyObject(sAllOldId)) { arr = sAllOldId.split(','); } const newId = controlRow.sId; let sOldParentId = ''; let sNewParentAllId = ''; if (arr.length < 2) { /* 根节点复制 */ controlRow.sAllId = newId; sOldParentId = newId; sNewParentAllId = newId; } else { sOldParentId = arr[arr.length - 2]; if (treeCopyNodes.has(sOldParentId)) { sNewParentAllId = treeCopyNodes.get(sOldParentId); } else { const obj = arr[arr.length - 1]; sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); } const sNewArr = sNewParentAllId.split(','); controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; sNewParentAllId = `${sNewParentAllId},${newId}`; controlRow.sAllId = sNewParentAllId; } treeCopyNodes.set(controlItem.sId, sNewParentAllId); controlData.push(controlRow); /* 复制到时增加合版表 */ if (commonUtils.isNotEmptyArr(returnData.packData)) { returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => { newCopyTo.pack = packItem; let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值 packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段 packRow.sOriginalId = packItem.sId;/* 翻单前的sId */ const slaveDataRow = slaveData[iSlaveIndex]; const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add'); if (commonUtils.isNotEmptyObject(packRowAdd)) { packRow = { ...packRow, ...packRowAdd }; /* 将控制表中的合版备注sId为新的sId */ let JsonData = []; const jsonStr = controlRow.sCombinedMemo; if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) { JsonData = JSON.parse(jsonStr); if (commonUtils.isNotEmptyArr(JsonData)) { let sCombinedMemoNew = ''; JsonData.forEach((item, index) => { if (item.sId === packItem.sId) { JsonData[index].sId = packRow.sId; } }); sCombinedMemoNew = JSON.stringify(JsonData); controlRow.sCombinedMemo = sCombinedMemoNew; const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId); if (icontrolIndex) { controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew }; } } } packData.push(packRow); } }); } } if (commonUtils.isNotEmptyArr(returnData.processData)) { returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processData.push(processRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } }); } if (commonUtils.isNotEmptyArr(returnData.materialsData)) { returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materialsRow.sControlId = controlRow.sId; materialsRow.sPartsName = controlRow.sPartsName; // 材料对应工序的ID要变化 if (commonUtils.isNotEmptyArr(returnData.processData)) { const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId); if (iProcessIndex > -1) { materialsRow.sProcessTbId = processData[iProcessIndex].sId; } } materialsData.push(materialsRow); materials0Data.push(materialsRow); }); } }); } if (commonUtils.isNotEmptyArr(returnData.materialsData)) { returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materialsData.push(materialsRow); }); } if (commonUtils.isNotEmptyArr(returnData.processData)) { returnData.processData.filter(item => item.sType === '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processData.push(processRow); // 成品配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { if (itemProcessAssort.sType === 'single') { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } else if (itemProcessAssort.sType === 'all') { controlData.forEach((controlItem) => { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlItem.sId; processRow.sPartsName = controlItem.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); }); } } })); } }); } if (commonUtils.isNotEmptyArr(returnData.colorData)) { if (commonUtils.isNotEmptyObject(config.colorConfig)) { returnData.colorData.forEach((colorItem) => { newCopyTo.color = colorItem; let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值 colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段 colorRow.handleType = 'add'; colorRow.sId = commonUtils.createSid(); colorRow.sParentId = masterData.sId; colorData.push(colorRow); }); } } const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */ addState.materials0Data = materials0Data; addState.packData = packData; this.props.onSaveState({ [`${name}ChooseVisible`]: false, processData, materialsData, controlData, ...treeState, colorData, masterData, controlSelectedRowKeys: [], materialsSelectedRowKeys: [], processSelectedRowKeys: [], ...addState, }); } else { this.props.getServiceError(dataReturn.msg); } } else if (name === 'productProcessInfo') { /* 复制从产品 */ if (commonUtils.isNotEmptyArr(selectData)) { let { materials0Data, processData, colorData }= this.props; // const controlData = []; // const materials0Data = []; // const processData = []; // const colorData = []; let packData = []; const addState = {}; const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld; const materials0DelData = commonUtils.isEmptyArr(materials0DelDataOld) ? [] : materials0DelDataOld; const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld; const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld; const packDelData = commonUtils.isEmptyArr(packDelDataOld) ? [] : packDelDataOld; let iSlaveIndex = -1; if (!commonUtils.isEmpty(slaveSelectedRowKeys)) { iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString()); } if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) { iSlaveIndex = 0; } /* 选择产品工艺卡 如果选择的从表的packData合拼的其他的 则不删除 没有合拼产品的 或是合拼产品为1的删除 删除新增增加的第一条数据*/ const controlDelRowKeys = []; if(iSlaveIndex > -1 && commonUtils.isNotEmptyArr(controlDataOld)) { controlDataOld.forEach((item) => { const jsonArr = commonUtils.isEmptyObject(item.sCombinedMemo) || item.sCombinedMemo ==='合版信息' ? []: JSON.parse(item.sCombinedMemo); if((jsonArr.length ===1 && jsonArr[0].sProductNo === slaveData[iSlaveIndex].sProductNo)){ item.handleType = 'del'; controlDelData.push(item); controlDelRowKeys.push(item.sId); /* 删除部件时 同步删除材料与工序 */ let tableDataIndex = controlData.findIndex(itemOld => itemOld.sId === item.sId); if(tableDataIndex > -1) { /* 同步删除合版表 */ const iIndexPack = packData.findIndex(itemDel =>itemDel.sControlId === controlData[tableDataIndex].sId ); if (iIndexPack > -1) { const packDataDelRow = packData[iIndexPack]; packDataDelRow.handleType = 'del'; packDelData.push(packDataDelRow); packData.splice(iIndexPack, 1); } controlData.splice(tableDataIndex, 1); } } }); } let materialsReturnData = {}; let processReturnData ={}; if(commonUtils.isNotEmptyArr(controlDelRowKeys)) { materialsReturnData = this.otherTableDel('materials0', controlDelRowKeys); processReturnData = this.otherTableDel('process', controlDelRowKeys); } addState.controlDelData = controlDelData; if(commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) { addState.materials0DelData= materialsReturnData.materials0DelData; materials0Data= materialsReturnData.materials0Data; } else { addState.materials0DelData = materials0DelData; } if(commonUtils.isNotEmptyObject(processReturnData) && commonUtils.isNotEmptyArr(processReturnData.processDelData)) { addState.processDelData= processReturnData.processDelData; processData = processReturnData.processData; } else { addState.processDelData = processDelData; } addState.colorDelData = colorDelData; addState.packDelData = packDelData; console.log('addState删除:', addState); // controlDataOld.forEach((item) => { // item.handleType = 'del'; // controlDelData.push(item); // }); // addState.controlDelData = controlDelData; // materials0DataOld.forEach((item) => { // item.handleType = 'del'; // materials0DelData.push(item); // }); // addState.materials0DelData = materials0DelData; // processDataOld.forEach((item) => { // item.handleType = 'del'; // processDelData.push(item); // }); // addState.processDelData = processDelData; // if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) { // colorDataOld.forEach((item) => { // item.handleType = 'del'; // colorDelData.push(item); // }); // } // addState.colorDelData = colorDelData; // addState.processDelData = processDelData; const config = {}; config.masterConfig = masterConfig; config.slaveConfig = slaveConfig; config.controlConfig = controlConfig; config.materials0Config = materials0Config; config.processConfig = processConfig; config.colorConfig = colorConfig; const condition = { sCardId: selectData[0].sId, sRowData: selectData }; const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; if (dataReturn.code === 1) { const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName }; const returnData = dataReturn.dataset.rows[0]; const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase()); const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase()); const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase()); const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase()); const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase()); const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase()); const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : ''; const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : ''; const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase()); const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : ''; const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : ''; const newCopyTo = {}; newCopyTo.master = copyTo.masterData; newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; if (iSlaveIndex > -1) { slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段 } const bProcessAssort = true; let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField; } } } if (commonUtils.isNotEmptyArr(returnData.controlData)) { let dProductQty = 0; /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */ let bProductQtySelf = false; if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) { const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf'); if (iIndex > -1) { bProductQtySelf = true; } } if (commonUtils.isNotEmptyArr(returnData.slaveData)) { masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段 } slaveData.forEach((item, iSlaveIndex) => { if (commonUtils.isNotEmptyArr(returnData.slaveData)) { item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段 } slaveData[iSlaveIndex] = item; if (bProductQtySelf) { dProductQty += commonUtils.isNull(item.dProductQty, 0); } else { dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); const treeCopyNodes = new Map(); returnData.controlData.forEach((controlItem) => { newCopyTo.control = controlItem; let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值 controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 controlRow.handleType = 'add'; controlRow.sId = commonUtils.createSid(); controlRow.sParentId = masterData.sId; controlRow.dPartsQty = dProductQty; controlRow.sPartsName = slaveData[iSlaveIndex].sProductName; controlRow.iOrder = slaveData[iSlaveIndex].iOrder; const sAllOldId = controlItem.sAllId; let arr = []; if (commonUtils.isNotEmptyObject(sAllOldId)) { arr = sAllOldId.split(','); } const newId = controlRow.sId; let sOldParentId = ''; let sNewParentAllId = ''; if (arr.length < 2) { /* 根节点复制 */ controlRow.sAllId = newId; sOldParentId = newId; sNewParentAllId = newId; } else { sOldParentId = arr[arr.length - 2]; if (treeCopyNodes.has(sOldParentId)) { sNewParentAllId = treeCopyNodes.get(sOldParentId); } else { const obj = arr[arr.length - 1]; sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); } const sNewArr = sNewParentAllId.split(','); controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; sNewParentAllId = `${sNewParentAllId},${newId}`; controlRow.sAllId = sNewParentAllId; } treeCopyNodes.set(controlItem.sId, sNewParentAllId); controlData.push(controlRow); /* 增加合版表 */ if (true) { let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值 /* sSlaveId赋值 */ if (iSlaveIndex > -1) { const slaveDataRow = slaveData[iSlaveIndex]; const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add'); if (commonUtils.isNotEmptyObject(packRowAdd)) { packRow = { ...packRow, ...packRowAdd }; packRow.dCombineQty = commonUtils.isNull(controlRow.dSinglePQty, 1); /* 默认是控制表的排版数 */ packRow.dProductQty = commonUtils.isNull(slaveDataRow.dProductQty, 0); packRow.dFactProductQty = commonUtils.isNull(slaveDataRow.dProductQty, 0); if(commonUtils.isNotEmptyObject(packRow) && commonUtils.isNotEmptyObject(packRow.sProductId)){ /* 从表要选择产品 */ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packRow; const tableCombineSelectedData =[]; const jsonObj = {}; jsonObj.sId = sId; jsonObj.sProductNo = sProductNo; /* 产品编号 */ jsonObj.dCombineQty = dCombineQty; /* 排版数 */ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ tableCombineSelectedData.push(jsonObj); const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ controlRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息'; } packData.push(packRow); } } } if (commonUtils.isNotEmptyArr(returnData.processData)) { returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processData.push(processRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } }); } if (commonUtils.isNotEmptyArr(returnData.materialsData)) { returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materialsRow.sControlId = controlRow.sId; materialsRow.sPartsName = controlRow.sPartsName; materialsRow.sOriginalId = materialsItem.sId; materialsRow.sParentMaterialsId = materialsItem.sParentMaterialsId; materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId; // 材料对应工序的ID要变化 if (commonUtils.isNotEmptyArr(returnData.processData)) { const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId); if (iProcessIndex > -1) { materialsRow.sProcessTbId = processData[iProcessIndex].sId; } } materials0Data.push(materialsRow); }); /* 将 materialsData中sParentMaterialsId替换为最新的sid */ if(commonUtils.isNotEmptyArr(materials0Data)) { const materialsFilterData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId)); if(commonUtils.isNotEmptyArr(materialsFilterData)) { materialsFilterData.forEach((filterItem, index) => { const iIndex = materials0Data.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId); if(iIndex > -1) { // materialsFilterData[index] = {... materialsFilterData[index], sParentMaterialsId: materialsData[iIndex].sId }; const iNexIndex = materials0Data.findIndex(item => item.sId === filterItem.sId); if(iNexIndex > -1) { const addState = {}; addState.sMaterialsNo1 = materials0Data[iIndex].sMaterialsNo; /* 原材料编号 */ addState.sMaterialsName1 = materials0Data[iIndex].sMaterialsName; /* 原材料名称 */ addState.bAlternative = true; addState.sParentMaterialsId = materials0Data[iIndex].sId; materials0Data[iNexIndex] = { ...materials0Data[iNexIndex], ...addState}; materials0Data[iIndex] = { ...materials0Data[iIndex], bTidaibs:true }; } } }); } const materialsInkFilterData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId)); if(commonUtils.isNotEmptyArr(materialsInkFilterData)) { materialsInkFilterData.forEach((filterItem, index) => { const iIndex = materials0Data.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId); if(iIndex > -1) { const iNexIndex = materials0Data.findIndex(item => item.sId === filterItem.sId); if(iNexIndex > -1) { materials0Data[iNexIndex] = { ...materials0Data[iNexIndex], sInkFatherMaterialsTbId: materials0Data[iIndex].sId} } } }); } } } }); } if (commonUtils.isNotEmptyArr(returnData.materialsData)) { returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sParentId = masterData.sId; materials0Data.push(materialsRow); }); } if (commonUtils.isNotEmptyArr(returnData.processData)) { returnData.processData.filter(item => item.sType === '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processData.push(processRow); // 成品配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { if (itemProcessAssort.sType === 'single') { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } else if (itemProcessAssort.sType === 'all') { controlData.forEach((controlItem) => { let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sControlId = controlItem.sId; processRow.sPartsName = controlItem.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); }); } } })); } }); } if (commonUtils.isNotEmptyArr(returnData.colorData)) { if (commonUtils.isNotEmptyObject(config.colorConfig)) { returnData.colorData.forEach((colorItem) => { newCopyTo.color = colorItem; let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值 colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段 colorRow.handleType = 'add'; colorRow.sId = commonUtils.createSid(); colorRow.sParentId = masterData.sId; colorData.push(colorRow); }); } } const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */ this.props.onSaveState({ [`${name}ChooseVisible`]: false, processData, materials0Data, controlData, ...treeState, colorData, masterData, packData, controlSelectedRowKeys: [], materialsSelectedRowKeys: [], processSelectedRowKeys: [], ...addState, }); } else { this.props.getServiceError(dataReturn.msg); } } } else { const addState ={}; const { controlData } = this.props; const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; if (commonUtils.isNotEmptyArr(selectData)) { for (const item of selectData) { const newCopyTo = {}; newCopyTo.master = masterData; if (iControlIndex > -1) { newCopyTo.control = controlData[iControlIndex]; } let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值 tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData.sId; if (name === 'process') { /* 设置工单参数下拉 */ tableDataRow.sParams = item.sParams; ['sProcess', 'sReport', 'sWorkOrder', 'sNorm', 'sTest'].forEach(key => { // 将各种参数的默认值保存到sParams中 const sKeyParam = commonUtils.convertStrToObj(tableDataRow[`${key}Param`] || item[`${key}Param`], {}); if (commonUtils.isNotEmptyObject(sKeyParam)) { const sKeyParamDefaultValues = Object.keys(sKeyParam).filter( item => item.startsWith('sParamDefault') && commonUtils.isNotEmptyObject(sKeyParam[item]) ).reduce((result, item) => { const sParamsName = item.replace('Default', ''); result[sParamsName] = sKeyParam[item]; return result; }, {}); const sParams = commonUtils.convertStrToObj(tableDataRow.sParams, []); const sKeyJsonIndex = sParams.findIndex(item => item.sParamType === key); if (sKeyJsonIndex === -1) { sParams.push({ sParamType: key, data: sKeyParamDefaultValues }); } else { const { data: sWorkOrderData = {} } = sParams[sKeyJsonIndex]; sParams[sKeyJsonIndex].data = { ...sWorkOrderData, ...sKeyParamDefaultValues }; } tableDataRow.sParams = JSON.stringify(sParams); } }); // if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) { // tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) }; // } const value = { sSqlCondition: { sParentId: item.sId } }; const configDataId = '11811781131121915166093023980'; const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`; const returnData = (await commonServices.postValueService(token, value, dataUrl)).data; if (returnData.code === 1) { const eleprocessmachineData = returnData.dataset.rows[0].dataSet; const newData = eleprocessmachineData.filter(item => item.bDefault); if (commonUtils.isNotEmptyArr(newData)) { tableDataRow.sMachineId = newData[0].sMachineId; } } const bProcessAssort = true; let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; } } } // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); if (iIndex > -1) { const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; if (iControlIndex > -1 && processRow.sType !== '3') { processRow.sControlId = controlData[iControlIndex].sId; processRow.sPartsName = controlData[iControlIndex].sPartsName; } tableData.push(processRow); if (itemProcessAssort.sType === 'all') { controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => { const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId); if (iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; if (iControlIndex > -1 && processRow.sType !== '3') { processRow.sControlId = controlTableRow.sId; processRow.sPartsName = controlTableRow.sPartsName; } tableData.push(processRow); } }); } } } })); } addState.processSelectedRowKeys = [tableDataRow.sId] } if (iControlIndex > -1 && tableDataRow.sType !== '3') { tableDataRow.sControlId = controlData[iControlIndex].sId; tableDataRow.sPartsName = controlData[iControlIndex].sPartsName; tableData.push(tableDataRow); } else if (tableDataRow.sType === '3') { tableData.push(tableDataRow); } } } const tableDataNew = this.sortData(controlData, tableData); this.props.onSaveState({ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [], ...addState }); } }; /* 选择成品工序点击确定业务处理 */ handleSelectProductMaterial = async (name, selectConfig, selectData, slaveFinalSelectedData) => { // 选择成品材料,将sType改为2 if (name === 'productMaterials') { selectData = selectData.map(val => ({ ...val, sType: '2' })); name = 'materials'; } const { [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, controlSelectedRowKeys, materialsConfig,masterConfig, } = this.props; const { masterData } = this.props; const { controlData } = this.props; const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; /* 取选择工序从表配置 */ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : ''; let slaveSelectConfig = {}; let slaveIndex = -1; if (commonUtils.isNotEmptyObject(masterConfig)) { slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName); if (slaveIndex > -1) { slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex]; } } if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) { for (const slaveObj of slaveFinalSelectedData) { if (commonUtils.isNotEmptyArr(selectData)) { for (const item of selectData) { const newCopyTo = {}; newCopyTo.master = masterData; if (iControlIndex > -1) { newCopyTo.control = controlData[iControlIndex]; } let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值 tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 if (commonUtils.isNotEmptyObject(slaveSelectConfig)) { tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段 } tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData.sId; tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品材料sCombinePartsName 为从表id */ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; // tableDataRow.sSlaveProductId = slaveObj.sId; if (iControlIndex > -1 && tableDataRow.sType !== '2') { tableDataRow.sControlId = controlData[iControlIndex].sId; tableDataRow.sPartsName = controlData[iControlIndex].sPartsName; tableData.push(tableDataRow); } else if (tableDataRow.sType === '2') { tableData.push(tableDataRow); } } } } } else { message.error('请选择产品!'); return; } const tableDataNew = this.sortData(controlData, tableData); this.props.onSaveState({ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [], }); } /* 选择成品工序点确定 */ /* 工单从表选中selectedRowKeys */ handleSelectFinalProcess = async (name, selectConfig, selectData, slaveFinalSelectedData) => { const targetname = 'process'; const { [`${targetname}Data`]: tableData, [`${targetname}Config`]: tableConfig, controlSelectedRowKeys, sModelsId, token, materialsConfig, processConfig,masterConfig, } = this.props; const { masterData } = this.props; if (name === 'chooseProductProcess') { const { controlData } = this.props; const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; /* 取选择工序从表配置 */ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : ''; let slaveSelectConfig = {}; let slaveIndex = -1; if (commonUtils.isNotEmptyObject(masterConfig)) { slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName); if (slaveIndex > -1) { slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex]; } } /* 通过slaveFinalSelectedRowKeys找到slaveData数据 */ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) { for (const slaveObj of slaveFinalSelectedData) { if (commonUtils.isNotEmptyArr(selectData)) { for (const item of selectData) { const newCopyTo = {}; newCopyTo.master = masterData; if (iControlIndex > -1) { newCopyTo.control = controlData[iControlIndex]; } let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值 tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 if (commonUtils.isNotEmptyObject(slaveSelectConfig)) { tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段 } tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData.sId; tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */ // tableDataRow.sSlaveProductId = slaveObj.sId; tableDataRow.sType = '3'; if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) { tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) }; } if (targetname === 'process') { const value = { sSqlCondition: { sParentId: item.sId } }; const configDataId = '11811781131121915166093023980'; const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`; const returnData = (await commonServices.postValueService(token, value, dataUrl)).data; if (returnData.code === 1) { const eleprocessmachineData = returnData.dataset.rows[0].dataSet; const newData = eleprocessmachineData.filter(item => item.bDefault); if (commonUtils.isNotEmptyArr(newData)) { tableDataRow.sMachineId = newData[0].sMachineId; } } const bProcessAssort = true; let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; } } } // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); if (iIndex > -1) { const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iNewProcessIndex = tableDataRow.sType === '3' ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId); if (iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; if (iControlIndex > -1 && processRow.sType !== '3') { processRow.sControlId = controlData[iControlIndex].sId; processRow.sPartsName = controlData[iControlIndex].sPartsName; } tableData.push(processRow); if (itemProcessAssort.sType === 'all') { controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => { const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId); if (iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; if (iControlIndex > -1 && processRow.sType !== '3') { processRow.sControlId = controlTableRow.sId; processRow.sPartsName = controlTableRow.sPartsName; } tableData.push(processRow); } }); } } } })); } } // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length; // tableDataRow.iOrder = processLen; if (iControlIndex > -1 && tableDataRow.sType !== '3') { tableDataRow.sControlId = controlData[iControlIndex].sId; tableDataRow.sPartsName = controlData[iControlIndex].sPartsName; tableData.push(tableDataRow); } else if (tableDataRow.sType === '3') { tableData.push(tableDataRow); } } } } } else { message.error('请选择产品!'); return; } const tableDataNew = this.sortData(controlData, tableData); this.props.onSaveState({ [`${targetname}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [], }); } } handleViewChoose= (name, sName, record) => { const { sId } = record; /* 控制表主键 */ const { enabled, slaveData } = this.props; let { packData } = this.props; if (name === 'control' && sName === 'sCombinedMemo') { const packSelectedRowKeys = []; /* 合并从表相同客户、产品数据 */ const slaveDataMerge = []; slaveData.forEach((item) => { const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId); if (iIndex === -1) { const itemNew = JSON.parse(JSON.stringify(item)); slaveDataMerge.push(itemNew); } else if (iIndex > -1) { const dProductQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */ const dStockupQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */ slaveDataMerge[iIndex].dProductQty = dProductQtyNew; slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew; slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew; } }); /* 合并合版表相同客户、产品数据 */ const packDataMerge = []; if(commonUtils.isNotEmptyArr(packData)) { packData.forEach((item) => { const iIndex = packDataMerge.findIndex(child => commonUtils.isNotEmptyObject(item.sCombinePartsName) && child.sCombinePartsName === item.sCombinePartsName && commonUtils.isNotEmptyObject(item.sProductId) && child.sProductId === item.sProductId); if (iIndex === -1) { const itemNew = JSON.parse(JSON.stringify(item)); packDataMerge.push(itemNew); } else if (iIndex > -1) { const dProductQtyNew = commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */ const dStockupQtyNew = commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */ packDataMerge[iIndex].dProductQty = dProductQtyNew; packDataMerge[iIndex].dGiveQty = dGiveQtyNew; packDataMerge[iIndex].dStockupQty = dStockupQtyNew; } }); } if (commonUtils.isNotEmptyArr(packDataMerge)) { packData = packDataMerge; } /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */ if (commonUtils.isNotEmptyArr(slaveDataMerge)) { slaveDataMerge.forEach((item, index) => { const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId); if (commonUtils.isNotEmptyArr(packDataFilter)) { packDataFilter.forEach((itemPack) => { const iIndex = packData.findIndex(child => child.sId === itemPack.sId); if (iIndex > -1) { const packRowAdd = this.handlePackDataAdd(item); if (commonUtils.isNotEmptyObject(packRowAdd)) { packData[iIndex] = { ...packData[iIndex], ...packRowAdd }; if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) { packSelectedRowKeys.push(itemPack.sId); } } } }); } else { const tableDataRow = this.handlePackDataAdd(item, index, sId, 'add'); if (commonUtils.isNotEmptyObject(tableDataRow)) { packData.push(tableDataRow); } } }); } this.props.onSaveState({ productCombinationVisible: true, sCombinationsControlId: sId, /* 合版产品控制表sId */ enabled, packSelectedRowKeys, packData, }); } else if (name === 'control' && sName === 'sPositiveColor' || sName === 'sOppositeColor') { this.props.onViewChoose(name, sName, record); } else if (name === 'process' && sName === 'sCombinePartsNameNew') { const { [`${name}Data`]: tableData } = this.props; const iIndex = tableData.findIndex(item => item.sId === sId); let packDataFilter = []; const combinePartsSelectedRowKeys = []; if (iIndex > -1) { if (commonUtils.isNotEmptyArr(slaveData)) { if (tableData[iIndex].sType === '3') { /* 成品工序跟着从表走 */ packDataFilter = JSON.parse(JSON.stringify(slaveData)); packDataFilter.forEach((itemPack, index) => { const packRowAdd = {}; packRowAdd.sSlaveOldId = packRowAdd.sSlaveId; packRowAdd.sSlaveId = commonUtils.createSid(); packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd }; }); } else { /* 成品工序跟着合版表走 */ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0); if (commonUtils.isNotEmptyArr(packDataFilter)) { packDataFilter.forEach((itemPack, index) => { let slaveDataRow = {}; let packRowAdd = {}; const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId); if (iIndex > -1) { slaveDataRow = slaveData[iIndex]; } if (commonUtils.isNotEmptyObject(slaveDataRow)) { packRowAdd = this.handlePackDataAdd(slaveDataRow); } packRowAdd.sSlaveOldId = packRowAdd.sSlaveId; packRowAdd.sSlaveId = commonUtils.createSid(); packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd }; }); } } } const sCombinePartsIds = tableData[iIndex].sCombinePartsName; if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) { const DataIds = sCombinePartsIds.split(','); for (const sId of DataIds) { const index = packDataFilter.findIndex(item => item.sId === sId); if (index > -1) { const rowKey = packDataFilter[index].sSlaveId; combinePartsSelectedRowKeys.push(rowKey); } } } } this.props.onSaveState({ combinePartsChooseVisible: true, combinePartsData: packDataFilter, processSelectedRowId: sId, /* 工序表选中行sId */ combinePartsSelectedRowKeys, }); } else if (name === 'materials' && sName === 'sCombinePartsNameNew') { const { [`${name}Data`]: tableData } = this.props; const iIndex = tableData.findIndex(item => item.sId === sId); let packDataFilter = []; const combinePartsSelectedRowKeys = []; if (iIndex > -1) { if (commonUtils.isNotEmptyArr(slaveData)) { if (tableData[iIndex].sType === '2') { /* 成品材料跟着从表走 */ packDataFilter = JSON.parse(JSON.stringify(slaveData)); packDataFilter.forEach((itemPack, index) => { const packRowAdd = {}; packRowAdd.sSlaveOldId = packRowAdd.sSlaveId; packRowAdd.sSlaveId = commonUtils.createSid(); packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd }; }); } } const sCombinePartsIds = tableData[iIndex].sCombinePartsName; if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) { const DataIds = sCombinePartsIds.split(','); for (const sId of DataIds) { const index = packDataFilter.findIndex(item => item.sId === sId); if (index > -1) { const rowKey = packDataFilter[index].sSlaveId; combinePartsSelectedRowKeys.push(rowKey); } } } } this.props.onSaveState({ combinePartsChooseVisible: true, combinePartsData: packDataFilter, materialsSelectedRowId: sId, /* 工序表选中行sId */ openTable: 'materials', combinePartsSelectedRowKeys, }); } else if (name === 'process' && sName === 'sColorSerialMemo') { this.props.onViewChoose(name, sName, record); } else if (name === 'sParam' && sName === 'sParamValue') { this.props.onViewChoose(name, sName, record); } else if(name === 'process' && (sName === 'sParams' || sName ==='sQuoParams')) { this.props.onViewClick(name, sName, record); } } handlePackDataAdd= (item, index, sControlId, handleType) => { const tableDataRow = {}; if (handleType === 'add') { tableDataRow.sId = commonUtils.createSid(); tableDataRow.handleType = 'add'; tableDataRow.sSlaveId = item.sId; tableDataRow.iOrder = item.iOrder; } tableDataRow.sParentId = item.sParentId; if (commonUtils.isNotEmptyObject(sControlId)) { tableDataRow.sControlId = sControlId; } // if (commonUtils.isNotEmptyObject(index)) { // tableDataRow.iOrder = index + 1; // } tableDataRow.sProductId = item.sProductId; /* 产品id */ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */ tableDataRow.sProductName = item.sProductName; /* 产品名称 */ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */ tableDataRow.dProductWidth = item.dProductWidth; /* 产品宽 */ tableDataRow.dProductLength = item.dProductLength; /* 产品长 */ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */ let bProductQtySelf = false; if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) { const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf'); if (iIndex > -1) { bProductQtySelf = true; } } if (bProductQtySelf) { tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0); } else { tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */ } tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */ return tableDataRow; } sortData = (tableData, processData) => { processData.sort((g1, g2) => { const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId); if (g1.iOrder === undefined) { g1.iOrder = ''; } if (g2.iOrder === undefined) { g2.iOrder = ''; } let sPartOrder1 = `0000${iIndex1}`; sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3); let sOrder1 = `00000${g1.iOrder.toString()}`; sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`; sOrder1 = sOrder1.replace('.', ''); sOrder1 = sOrder1.substring(sOrder1.length - 5); const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId); let sPartOrder2 = `0000${iIndex2}`; sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3); let sOrder2 = `00000${g2.iOrder.toString()}`; sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`; sOrder2 = sOrder2.replace('.', ''); sOrder2 = sOrder2.substring(sOrder2.length - 5); return parseFloat(sPartOrder1 + sOrder1) - parseFloat(sPartOrder2 + sOrder2); // return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2); }); return processData; }; /* 控制排序 */ orderData = (e, name, type) => { const { [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app, } = this.props; let { [`${name}Data`]: processData } = this.props; if (name === 'process') { if (commonUtils.isEmptyArr(tableselectedRowKeys)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */ return; } if (commonUtils.isEmptyArr(processData)) { message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */ return; } const processNew = processData.filter((item) => { /* 获取勾选数据集 */ return tableselectedRowKeys.indexOf(item.sId) > -1; }); if (commonUtils.isEmptyArr(processNew)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */ return; } const len = processData.length; const newLen = processNew.length; let num = 0.01;/* 循环增加体 */ let targetiOrder = -1; if (type === 1) { /* 上移 */ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */ if (iIndex === 0) { message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */ return; } else { targetiOrder = processData[iIndex - 1].iOrder - 1; /* 目标排序号 */ } } else if (type === 2) { /* 下移 */ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */ if (iIndex === len - 1) { message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */ return; } else { targetiOrder = processData[iIndex + 1].iOrder; } } else if (type === 0) { /* 置顶 */ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */ if (iIndex === 0) { message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */ return; } else { targetiOrder = processData[0].iOrder - 1; } } else if (type === 3) { /* 置底 */ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */ if (iIndex === len - 1) { message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */ return; } else { targetiOrder = processData[len - 1].iOrder + 1; } } processNew.forEach((item) => { if (commonUtils.isEmptyObject(item.sType)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */ return; } const index1 = processData.findIndex(item1 => item1.sId === item.sId); processData[index1] = { ...item, iOrder: targetiOrder + num }; num += 0.01; }); processData = this.sortData(controlData, processData); const processSortData = this.props.orderNum(processData, controlSelectedRowKeys); if (commonUtils.isNotEmptyArr(processSortData)) { processData = processSortData; } this.props.onSaveState({ [`${name}Data`]: processData }); } }; /** 表格数据更改 */ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData) handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => { /* 从CommonBase获取默认参数 */ if (name === 'slave') { const { sModelsId, [`${name}Data`]: tableData, masterConfig, controlConfig, controlData: controlDataOld, masterData, packData, } = this.props; const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); if (tableDataRow === undefined) return; const iIndex = tableData.findIndex(item => item.sId === sId); tableData[iIndex] = tableDataRow; const addState = {}; /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */ let bProductQtySelf = false; if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) { const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf'); if (iIndex > -1) { bProductQtySelf = true; } } if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') { let dPartsQty = 0; tableData.forEach((item) => { if (bProductQtySelf) { dPartsQty += commonUtils.isNull(item.dProductQty, 0); } else { dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); const controlData = []; controlDataOld.forEach((item) => { const itemNew = { ...item }; itemNew.dPartsQty = dPartsQty; controlData.push(itemNew); }); addState.controlData = controlData; } if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') { // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []); // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []); // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []); tableDataRow.sProductId = ''; tableDataRow.sProductNo = ''; tableDataRow.sProductName = ''; tableData[iIndex] = tableDataRow; } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName')) { const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId); if ( tableDataRow.handleType === 'add' && iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) { const changeData = dropDownData[iProductIdIndex]; const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId; if (!commonUtils.isEmpty(sParentId)) { const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName'); if (iIndex > -1) { let dProductQty = 0; tableData.forEach((item) => { if (bProductQtySelf) { dProductQty += commonUtils.isNull(item.dProductQty, 0); } else { dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); } }); const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]); const dropDownData = sqlDropDownData.dropDownData; const [changeData] = dropDownData.filter(item => item.sId === sParentId); const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName; if (commonUtils.isNotEmptyStr(sAllPartsName)) { const sAssignFieldObj = sAllPartsName.split(','); const controlData = []; for (const child of sAssignFieldObj) { let allTableData = {}; allTableData = {}; allTableData.master = masterData; allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0]; const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData); tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRow.key = tableDataRow.sId; tableDataRow.bDefault = false; tableDataRow.iOrder = controlData.length + 1; tableDataRow.sPartsName = child; tableDataRow.dPartsQty = dProductQty; controlData.push(tableDataRow); } addState.controlData = controlData; } } } // else if (sFieldName === 'sProductName') { // const controlData = []; // controlDataOld.forEach((item) => { // const itemNew = { ...item }; // controlData.push(itemNew); // }); // if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmpty(controlData[0].sPartsName)) { // controlData[0].sPartsName = tableDataRow.sProductName; // addState.controlData = controlData; // } // } } /* 从表产品改变带动合版表产品与部件表合版信息 同步改变 */ const controlDataNew = commonUtils.isNotEmptyArr(addState.controlData) ? addState.controlData : controlDataOld; /* 如果packData只有一条数据 则同步合版数据 及增加控制表合版备注 */ if (commonUtils.isNotEmptyArr(packData) && packData.length === 1 && packData[0].sSlaveId === tableDataRow.sId) { let packDataRow = packData[0]; const sControlId = packDataRow.sControlId; packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId); packDataRow.dCombineQty = 1; packData[0] = { ...packData[0], ...packDataRow } if (commonUtils.isNotEmptyObject(packData[0])) { const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[0]; const tableCombineSelectedData = []; const jsonObj = {}; jsonObj.sId = sId; jsonObj.sProductNo = sProductNo; /* 产品编号 */ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ tableCombineSelectedData.push(jsonObj); const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ // const controlDataNew =commonUtils.isNotEmptyArr(addState.controlData)? addState.controlData: controlDataOld; if (commonUtils.isNotEmptyArr(controlDataNew)) { const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId); if (iControlIndex > -1) { controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo; controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName; } addState.controlData = controlDataNew; } } } else if (packData.length > 1) { const packFilterData = packData.filter(item => item.sSlaveId === tableDataRow.sId); if (commonUtils.isNotEmptyArr(packFilterData)) { packFilterData.forEach((itemPack, index) => { let packDataRow = itemPack; const sControlId = packDataRow.sControlId; packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId); const iPIndex = packData.findIndex(child => child.sId === itemPack.sId); packData[iPIndex] = { ...packData[iPIndex], ...packDataRow }; if (iPIndex > -1 && commonUtils.isNotEmptyObject(packData[iPIndex])) { const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[iPIndex]; const tableCombineSelectedData = []; const jsonObj = {}; jsonObj.sId = sId; jsonObj.sProductNo = sProductNo; /* 产品编号 */ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ tableCombineSelectedData.push(jsonObj); const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ if (commonUtils.isNotEmptyArr(controlDataNew)) { const iControlIndex = controlDataNew.findIndex(controlItem => { const sCombinedMemoArr = JSON.parse(controlItem.sCombinedMemo); const sCombinedMemoFilterArr = sCombinedMemoArr.filter(item => item.dCombineQty > 0 && item.sProductNo === itemPack.sProductNo); return commonUtils.isNotEmptyArr(sCombinedMemoFilterArr) }); // controlDataNew.findIndex(item => item.sId === sControlId); if (iControlIndex > -1) { controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo; controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName; } } } }); addState.controlData = controlDataNew; } } addState.packData = packData; } this.props.onSaveState({ [`${name}Data`]: tableData, ...addState }); } else if (name === 'control') { const { [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsId, sModelsType, slaveData, packData, } = this.props; let { masterData } = this.props; let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); if (tableDataRow === undefined) return; if (sFieldName === 'dSinglePQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') { if (sFieldName === 'iPrintModePo') { if (tableDataRow.iPrintModePo === 0) { tableDataRow.iPrintMode = 3; if (tableDataRow.iPositiveColor === 0) { tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; tableDataRow.iOppositeColor = 0; tableDataRow.iOppositeSpecialColor = 0; } else { tableDataRow.iOppositeColor = 0; tableDataRow.iOppositeSpecialColor = 0; } } else if (tableDataRow.iPrintModePo === 1) { tableDataRow.iPrintMode = 3; if (tableDataRow.iPositiveColor === 0) { tableDataRow.iPositiveColor = 0; tableDataRow.iPositiveSpecialColor = 0; tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor; } else { tableDataRow.iPositiveColor = 0; tableDataRow.iPositiveSpecialColor = 0; } } else { tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor; } } else if (sFieldName === 'iPrintMode') { if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) { tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; tableDataRow.iOppositeColor = tableDataRow.iPositiveColor; tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor; } else if (tableDataRow.iPrintMode === 2) { tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor; } else if (tableDataRow.iPrintMode === 3) { tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; tableDataRow.iOppositeColor = 0; tableDataRow.iOppositeSpecialColor = 0; } else if (tableDataRow.iPrintMode === 4) { tableDataRow.iPositiveColor = 0; tableDataRow.iPositiveSpecialColor = 0; tableDataRow.iOppositeColor = 0; tableDataRow.iOppositeSpecialColor = 0; } } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') { if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) { tableDataRow.iOppositeColor = tableDataRow.iPositiveColor; tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor; } }else if ( sFieldName === 'dSinglePQty' ) { /* 排版数改变时 如果该控制表合版数据只有一条 则改变packData该条的拼版数 改变备注 */ if(commonUtils.isNotEmptyArr(packData)){ const packFilterData = packData.filter(item => item.sControlId === tableDataRow.sId); console.log('1222', packFilterData); if (commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length ===1 ) { const iIndex = packData.findIndex(itemPack => itemPack.sId === packFilterData[0].sId); const addState ={}; if(tableDataRow.dSinglePQty > 0){ addState.dCombineQty = tableDataRow.dSinglePQty; addState.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; tableDataRow.iCombineNum = tableDataRow.dSinglePQty; if(iIndex > -1) { packData[iIndex] ={ ...packData[iIndex] , ...addState}; const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packData[iIndex]; const tableCombineSelectedData =[]; const jsonObj = {}; jsonObj.sId = sId; jsonObj.sProductNo = sProductNo; /* 产品编号 */ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ tableCombineSelectedData.push(jsonObj); const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息'; } } } } } tableDataRow = this.singlePQtyChange(tableDataRow); } /* 膜内工艺卡算法逻辑 */ if (sModelsType === 'manufacture/workOrder3' && sModelsId === '101251240115016046551448370') { /* 排版数dSinglePQty=列数iCol*iRow个数 */ const iCol = commonUtils.isNull(tableDataRow.iCol, 0); const iRow = commonUtils.isNull(tableDataRow.iRow, 0); const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); const dCutEdge = commonUtils.isNull(tableDataRow.dCutEdge, 0); const dColGap = commonUtils.isNull(tableDataRow.dColGap, 0); const dRowGap = commonUtils.isNull(tableDataRow.dRowGap, 0); const dScraperGap = commonUtils.isNull(tableDataRow.dScraperGap, 0); const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); const dSinglePQty = commonUtils.isNull(tableDataRow.dSinglePQty, 0); if (sFieldName === 'iCol' || sFieldName === 'iRow') { tableDataRow.dSinglePQty = iCol * iRow; } /* 膜宽dMaterialsWidth =图文尺寸dMachineWidth*列数iCol+图文到膜边尺寸 dCutEdge*2+图文到图文的尺寸dColGap*(列数iCol-1) */ if (sFieldName === 'dMachineWidth' || sFieldName === 'iCol' || sFieldName === 'dCutEdge' || sFieldName === 'dColGap') { tableDataRow.dMaterialsWidth = (dMachineWidth * iCol) + (dCutEdge * 2) + (dColGap * (iCol - 1)); } /* 版周长 dMaterialsLength=(版周长图文尺寸dMachineLength+图文到图文尺寸dRowGap)*版周长个数iRow+dScraperGap刮刀距离 */ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap') { tableDataRow.dMaterialsLength = ((dMachineLength + dRowGap) * iRow) + dScraperGap; } if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap' || sFieldName === 'dMaterialsLength') { let dPlatediameter = dMaterialsLength / Math.PI; dPlatediameter = commonUtils.convertFixNum(dPlatediameter, 2); const addState = {}; addState.dPlatediameter = dPlatediameter; addState.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType; masterData = { ...masterData, ...addState }; } /* 1款拼版 从表产品折算率=版周长*膜宽/1000000 */ if (commonUtils.isNotEmptyArr(slaveData)) { if (slaveData.length === 1) { /* 只有一条从表数据 */ const addState = {}; addState.dConversionRate = (dMaterialsLength * dMaterialsWidth) / 1000000; addState.dCombineCoefficient = dSinglePQty; addState.handleType = commonUtils.isEmpty(slaveData[0].handleType) ? 'update' : slaveData[0].handleType; slaveData[0] = { ...slaveData[0], ...addState }; } else if (slaveData.length > 1) { /* 多款产品合拼的 折算率 */ let sumTotal = 0; slaveData.forEach((itemNew) => { const singleSum = itemNew.dProductLength * itemNew.dProductWidth * itemNew.dCombineCoefficient; sumTotal += singleSum; }); slaveData.forEach((item, index) => { const addState = {}; /* 多产品折算率 */ const dConversionRate = ((dMaterialsLength * dMaterialsWidth) * (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) / sumTotal / item.dCombineCoefficient / 1000000; addState.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6); addState.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType; slaveData[index] = { ...item, ...addState }; }); } } } const materialsData = []; const processData = []; materialsDataOld.forEach((item) => { const itemNew = { ...item }; if (itemNew.sControlId === sId) { itemNew.sPartsName = tableDataRow.sPartsName; } materialsData.push(itemNew); }); processDataOld.forEach((item) => { const itemNew = { ...item }; if (itemNew.sControlId === sId) { itemNew.sPartsName = tableDataRow.sPartsName; } processData.push(itemNew); }); const materialsDataNew = this.sortData(tableData, materialsData); const processDataNew = this.sortData(tableData, processData); if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */ const { sPartsName } = tableDataRow; const { treeSelectedKeys, treeData } = this.props; if (commonUtils.isNotEmptyArr(treeSelectedKeys)) { this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName); } } const iIndex = tableData.findIndex(item => item.sId === sId); tableData[iIndex] = tableDataRow; this.props.onSaveState({ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, slaveData, masterData, packData, }); } else if (name === 'materials') { const { [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, } = this.props; const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); if (tableDataRow === undefined) return; const iIndex = tableData.findIndex(item => item.sId === sId); if (iIndex > -1) { tableData[iIndex] = tableDataRow; } if (sFieldName === 'sType') { if (tableData[iIndex].sType === '2') { tableData[iIndex].sControlId = ''; tableData[iIndex].sPartsName = ''; } else { const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]); if (iControlIndex > -1) { tableData[iIndex].sControlId = controlData[iControlIndex].sId; tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName; } } } this.props.onSaveState({ [`${name}Data`]: tableData }); } else if (name === 'materials0' || name === 'materials1' || name === 'materials2' || name === 'materials3' || name === 'materials1Child') { name = 'materials0'; const { [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, materials0Data, materials0SelectedRowKeys, masterData, } = this.props; // let oldRowMap = {}; // if(sFieldName === 'sInkBOM') { // const iOldIndex = tableData.findIndex(item => item.sId === sId); // if(iOldIndex > -1) { // const tableDataOldRow = JSON.parse(JSON.stringify(tableData[iOldIndex])); // oldRowMap ={ // sInkBOMId : tableDataOldRow.sInkBOMId, // sInkBOMsSlaveId : tableDataOldRow.sInkBOMsSlaveId, // sInkBOMsMaterialsId : tableDataOldRow.sInkBOMsMaterialsId, // } // } // } const tableDataRow = await this.props.onDataChange('materials0', sFieldName, changeValue, sId, dropDownData, true); if (sFieldName === 'dPackageQty') { if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) { const iControlIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]); if (iControlIndex > -1) { if(masterData?.sBusinessType ==='MergeVersion'){ tableDataRow.dAuxiThousheetQty = (controlData[iControlIndex].iCombineNum * 1000.0 / tableDataRow.dPackageQty).toFixed(3); }else { tableDataRow.dAuxiThousheetQty = (controlData[iControlIndex].dSinglePQty * 1000.0 / tableDataRow.dPackageQty).toFixed(3); } } } } if (tableDataRow === undefined) return; // tableDataRow.oldRowMap = oldRowMap; const iIndex = tableData.findIndex(item => item.sId === sId); if (iIndex > -1) { tableData[iIndex] = tableDataRow; } // /* 从全部材料数据集中找到该数据集 */ // if(commonUtils.isNotEmptyArr(materials0Data)) { // const iIndex = materials0Data.findIndex(item => item.sId === tableDataRow.sId); // if(iIndex > -1) { // materials0Data[iIndex] = {...materials0Data[iIndex], ...tableDataRow}; // } // // } this.props.onSaveState({ [`${name}Data`]: tableData }); }else if ( name === 'materials0Child') { /* 替代料 */ name = 'materials0'; const { [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, materials0Data, materials0SelectedRowKeys, } = this.props; const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); if (sFieldName === 'dPackageQty') { if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) { const iControlIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]); if (iControlIndex > -1) { tableDataRow.dAuxiThousheetQty = (controlData[iControlIndex].dSinglePQty * 1000.0 / tableDataRow.dPackageQty).toFixed(3); } } } if (tableDataRow === undefined) return; const iIndex = tableData.findIndex(item => item.sId === sId); if (iIndex > -1) { tableData[iIndex] = tableDataRow; } // /* 根据替代料定位全部材料数据集中该数据父级 */ // if(commonUtils.isNotEmptyArr(materials0Data)) { // const iIndex = materials0Data.findIndex(item => item.sId === tableDataRow.sId); // if( iIndex > -1) { // let { handleType } = materials0Data[iIndex]; // handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; // materials0Data[iIndex] = {...materials0Data[iIndex], ...changeValue, handleType}; // } // // } this.props.onSaveState({ [`${name}Data`]: tableData }); } else if (name === 'process') { const { [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, materials0Data, processConfig, token, } = this.props; let { processDelData, materialsDelData } = this.props; const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); if (tableDataRow === undefined) return; let iIndex = tableData.findIndex(item => item.sId === sId); let tableDataRowOld = {}; // let iMaterialsIndex = -1; let sControlId = ''; if (iIndex > -1) { // iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId); tableDataRowOld = tableData[iIndex]; tableData[iIndex] = tableDataRow; sControlId = tableData[iIndex].sControlId; } const addState = {}; if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) { const bProcessAssort = true; let returnProcessAssort = []; let processAssignAssort = ''; let dropDownDataProcessName; const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible); if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) { tableData[iIndex].sProcessParamStr = '工艺参数'; } else if (sProcessParamStriIndex > -1) { tableData[iIndex].sProcessParamStr = ''; } /* 设置工单参数下拉 */ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) { tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) }; } if (bProcessAssort) { const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; if (dataProcessAssort.code === 1) { returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); if (iIndex > -1) { const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); dropDownDataProcessName = sqlDropDownData.dropDownData; processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; } } } const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]); // 配套工序 if (bProcessAssort) { const newCopyTo = {}; newCopyTo.master = masterData; if (commonUtils.isNotEmptyArr(slaveData)) { newCopyTo.slave = slaveData[0]; } /* 切换工序时 先删除原工序配套工序 */ if (commonUtils.isEmptyArr(processDelData)) { processDelData = []; } if (commonUtils.isEmptyArr(materialsDelData)) { materialsDelData = []; } returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => { const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId); if (iProcessIndex > -1) { const processDataRow = tableData[iProcessIndex]; tableData.splice(iProcessIndex, 1); processDataRow.handleType = 'del'; processDelData.push(processDataRow); /* 删除配套材料 */ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId); if (iMaterialsIndex > -1) { const materialsDataRow = materialsData[iMaterialsIndex]; materialsData.splice(iMaterialsIndex, 1); materialsDataRow.handleType = 'del'; materialsDelData.push(materialsDataRow); } } })); if (commonUtils.isNotEmptyArr(processDelData)) { addState.processDelData = processDelData; } if (commonUtils.isNotEmptyArr(materialsDelData)) { addState.materialsDelData = materialsDelData; } iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId); returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); if (iIndex > -1) { const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId); if (iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; if (iControlIndex > -1 && processRow.sType !== '3') { processRow.sControlId = controlData[iControlIndex].sId; processRow.sPartsName = controlData[iControlIndex].sPartsName; } tableData.push(processRow); if (itemProcessAssort.sType === 'all') { controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => { const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId); if (iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; processRow.sType = dropDownDataProcessName[iIndex].sType; if (iControlIndex > -1 && processRow.sType !== '3') { processRow.sControlId = controlTableRow.sId; processRow.sPartsName = controlTableRow.sPartsName; } tableData.push(processRow); } }); } } } })); } if (tableData[iIndex].sType === '3') { tableData[iIndex].sControlId = ''; tableData[iIndex].sPartsName = ''; } else if (iControlIndex > -1) { tableData[iIndex].sControlId = controlData[iControlIndex].sId; tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName; materials0Data.forEach(materialsItem => { if (materialsItem.sControlId === tableData[iIndex].sControlId && materialsItem.sProcessTbId === tableData[iIndex].sId) { materialsItem.sProcessId = tableData[iIndex].sProcessId; materialsItem.sProcessName = tableData[iIndex].sProcessName; materialsItem.sProcessNo = tableData[iIndex].sProcessNo; materialsItem.sMaterialsProcessNameOrder = tableData[iIndex].iRowNum + '-' + tableData[iIndex].sProcessName; materialsItem.handleType = commonUtils.isEmpty(materialsItem.handleType) ? 'update' : materialsItem.handleType; } }); // if (iMaterialsIndex > -1) { // materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId; // materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId; // materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName; // } addState.materials0Data = materials0Data; } } this.props.onSaveState({ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState }); } else if(name === 'pack'){ const { [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, materials0Data, processConfig, token, } = this.props; const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); if (sFieldName === 'dCombineQty') { if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) { const dCurrentSqure = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dProductWidth,0) * commonUtils.isNull(tableDataRow.dProductLength,0) * commonUtils.isNull(tableDataRow.dCombineQty,0), 2); tableDataRow.dSReserve1 = commonUtils.convertFixNum(dCurrentSqure, 2); if(tableSelectedRowKeys.length === 1) { tableDataRow.dCoefficient = 100; /* 单拼 系数= 100% */ } else { const filterData = tableData.filter(child => tableSelectedRowKeys.includes(child.sId) && child.sId !==tableDataRow.sId); let dSumSqure = dCurrentSqure; /* 算面积之和 */ if(commonUtils.isNotEmptyArr(filterData)) { filterData.forEach((item) => { const iFIndex = tableData.findIndex(key => key.sId === item.sId); const dSqure =commonUtils.isNull(tableData[iFIndex].dProductWidth,0) * commonUtils.isNull(tableData[iFIndex].dProductLength,0) * commonUtils.isNull(tableData[iFIndex].dCombineQty, 0); dSumSqure += dSqure; }); } tableDataRow.dCoefficient = Math.round(commonUtils.convertFixNum(dCurrentSqure / dSumSqure, 2) * 100); console.log('当前系数', Math.round(tableDataRow.dCoefficient)); /* 算其他系数 */ if(commonUtils.isNotEmptyArr(filterData)) { filterData.forEach((row, index) => { const iFIndex = tableData.findIndex(key => key.sId === row.sId); const dSqure = tableData[iFIndex].dProductWidth * tableData[iFIndex].dProductLength * tableData[iFIndex].dCombineQty; const dCoefficient = commonUtils.convertFixNum(dSqure / dSumSqure, 2) * 100; const addState = {}; addState.dCoefficient = Math.round(dCoefficient) ; console.log('其他系数', Math.round(dCoefficient)); if(iFIndex > -1) { tableData[iFIndex] ={...tableData[iFIndex], ...addState}; } }) } } } } if (tableDataRow === undefined) return; const iIndex = tableData.findIndex(item => item.sId === sId); if (iIndex > -1) { tableData[iIndex] = tableDataRow; } this.props.onSaveState({ [`${name}Data`]: tableData}); } else { this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData); } }; // 限制编辑 otherlimitDisabled = (params) => { let { enabledNew, record, sName } = params; if (!['101251240115016082594412050'].includes(this.props.sModelsId)) return enabledNew; if (enabledNew && ['dAuxiThousheetQty'].includes(sName)) { if (record.dPackageQty > 0) { enabledNew = false } } return enabledNew; }; /* 重新计算实际生产数 */ handleGetdFactProductQty = (selectedRowKeys, tableData) => { const maxArr = []; if (commonUtils.isNotEmptyArr(selectedRowKeys)) { const tableFilter = tableData.filter(item => selectedRowKeys.includes(item.sId) && item.dCombineQty > 0); if (selectedRowKeys.length === 1 || tableFilter.length === 1) { /* 当选中行只有一行时,实际生产数等于生产数 */ const iSlaveIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]); if (iSlaveIndex > -1) { const dProductQty = tableData[iSlaveIndex].dProductQty; tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty: dProductQty }; } } else { for (const sId of selectedRowKeys) { const iSlaveIndex = tableData.findIndex(item => item.sId === sId); if (iSlaveIndex > -1) { const slaveDataRow = tableData[iSlaveIndex]; const { dCombineQty, dProductQty } = slaveDataRow; if (dCombineQty > 0) { let dNum = commonUtils.convertFixNum(dCombineQty !== 0 ? dProductQty / dCombineQty : 0, 2); /* 生产数/排版数 取最大值 */ dNum = Math.ceil(dNum); maxArr.push(dNum); } } } let dMax = 0; if (commonUtils.isNotEmptyArr(maxArr)) { dMax = Math.max(...maxArr); } dMax = commonUtils.isNotNum(dMax) ? 0 : dMax; for (const sId of selectedRowKeys) { const iSlaveIndex = tableData.findIndex(item => item.sId === sId); if (iSlaveIndex > -1) { const slaveDataRow = tableData[iSlaveIndex]; let { dCombineQty } = slaveDataRow; if (dCombineQty > 0) { dCombineQty = commonUtils.isNotNum(dCombineQty) ? 0 : dCombineQty; const dFactProductQty = commonUtils.convertFixNum(dCombineQty * dMax, 2); /* 实际生产数 =最大值 * 排版数 */ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty }; } } } } this.props.onSaveState({ packData: tableData }); } } handleCancelFastOrderModal = () => { this.props.onSaveState({ fastOrderModalVisible: false }); }; handleCancelProcessChooseModal = () => { this.props.onSaveState({ processChooseVisible: false }); }; handleCancelMaterialsChooseModal = () => { this.props.onSaveState({ materialsChooseVisible: false }); }; handleCancelProductProcessInfoChooseModal = () => { this.props.onSaveState({ productProcessInfoChooseVisible: false }); }; handleCancelProductCombinationChooseModal = () => { this.props.onSaveState({ productCombinationVisible: false }); }; handleSelectProductCombination= () => { const { controlData, sCombinationsControlId, packData, enabled, app, } = this.props; let { packSelectedRowKeys: selectedRowKeys } = this.props; let sCombinedMemo = ''; const tableCombineSelectedData = []; selectedRowKeys = commonUtils.isNotEmptyArr(selectedRowKeys) ? selectedRowKeys : []; const maxArr = []; const maxMap = new Map(); let dSumCombineQty = 0; const packFilterData = packData.filter(item => item.sControlId === sCombinationsControlId); for (const tableDataRow of packFilterData) { const { sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName, } = tableDataRow; if (dCombineQty > 0) { /* 排版数大于0时,把数据带回到控制表 */ const jsonObj = {}; jsonObj.sId = sId; jsonObj.sProductNo = sProductNo; /* 产品编号 */ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ dSumCombineQty += dCombineQty; tableCombineSelectedData.push(jsonObj); maxMap.set(Math.floor(dProductQty / dCombineQty), jsonObj); maxArr.push(Math.floor(dProductQty / dCombineQty)); } } /* 没勾选的合版数据 合拼排版数置为0 */ // const packNoChooseData = packData.filter(item => item.sControlId === sCombinationsControlId && !selectedRowKeys.includes(item.sId)); // if (commonUtils.isNotEmptyArr(packNoChooseData) && packNoChooseData.length > 0) { // packNoChooseData.forEach((item) => { // const iIndex = packData.findIndex(child => child.sId === item.sId); // if (iIndex > -1) { // packData[iIndex].dCombineQty = 0; // packData[iIndex].handleType = commonUtils.isEmpty(packData[iIndex].handleType) ? 'update' : packData[iIndex].handleType; // } // }); // } let iMax = 0; if (commonUtils.isNotEmptyArr(maxArr)) { iMax = Math.max(...maxArr); } sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ const iControlIndex = controlData.findIndex(item => item.sId === sCombinationsControlId); if (iControlIndex > -1 && enabled) { const addState = {}; const maxObj = maxMap.get(iMax); let { handleType } = controlData[iControlIndex]; handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; addState.handleType = handleType; addState.sCombinedMemo = sCombinedMemo; if(commonUtils.isNotEmptyObject(maxObj)) { addState.dSinglePQty = commonUtils.isNotEmptyObject(maxObj) ? maxObj.dCombineQty : 0; } else { const packFilterData = packData.findIndex(item => item.sControlId === sCombinationsControlId); if(commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length === 1) { addState.dSinglePQty = packFilterData[0].dCombineQty; } else { addState.dSinglePQty = 1; /* 没合拼给默认值1 */ } } addState.iCombineNum = dSumCombineQty; controlData[iControlIndex] = { ...controlData[iControlIndex], ...addState }; } this.props.onSaveState({ productCombinationVisible: false, packData, controlData, }); }; handleCancelCombinePartsChooseModal = () => { this.props.onSaveState({ combinePartsChooseVisible: false }); }; /* 选择合版部件名称 */ handleSelectCombineParts = (name, selectConfig, selectData) => { const { processData, processSelectedRowId, materialsData, materialsSelectedRowId, openTable, } = this.props; let sCombinedStr = ''; let sCombinedId = ''; if (selectData !== undefined) { if (commonUtils.isNotEmptyArr(selectData)) { selectData.forEach((item) => { const { sId } = item; let { sProductName } = item; let { sCombinePartsName } = item; sProductName = commonUtils.isNotEmptyObject(sProductName) ? sProductName : ''; sCombinePartsName = commonUtils.isNotEmptyObject(sCombinePartsName) ? sCombinePartsName : ''; // sCombinedStr += `${sCustomerName}-${sProductName}-${sCombinePartsName},`; if (commonUtils.isNotEmptyObject(sCombinePartsName)) { sCombinedStr += `${sProductName}-${sCombinePartsName},`; sCombinedId += `${sId},`; } else { sCombinedStr += `${sProductName},`; sCombinedId += `${sId},`; } }); // sCombinedStr = `${selectData.length.toString()} `; if (commonUtils.isNotEmptyObject(sCombinedStr)) { sCombinedStr = commonUtils.isNotEmptyObject(sCombinedStr) ? sCombinedStr.substr(0, sCombinedStr.length - 1) : ''; } if (commonUtils.isNotEmptyObject(sCombinedId)) { sCombinedId = commonUtils.isNotEmptyObject(sCombinedId) ? sCombinedId.substr(0, sCombinedId.length - 1) : ''; } } if (commonUtils.isNotEmptyObject(openTable) && openTable === 'materials') { const iIndex = materialsData.findIndex(item => item.sId === materialsSelectedRowId); if (iIndex > -1) { const addState = {}; let { handleType } = processData[iIndex]; handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; addState.handleType = handleType; addState.sCombinePartsNameNew = sCombinedStr; addState.sCombinePartsName = sCombinedId; materialsData[iIndex] = { ...materialsData[iIndex], ...addState }; } this.props.onSaveState({ materialsData, combinePartsChooseVisible: false }); } else { const iIndex = processData.findIndex(item => item.sId === processSelectedRowId); if (iIndex > -1) { const addState = {}; let { handleType } = processData[iIndex]; handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; addState.handleType = handleType; addState.sCombinePartsNameNew = sCombinedStr; addState.sCombinePartsName = sCombinedId; processData[iIndex] = { ...processData[iIndex], ...addState }; } this.props.onSaveState({ processData, combinePartsChooseVisible: false }); } } // this.props.onSaveState({ processData, combinePartsChooseVisible: false }); }; handleCancelModal = (modelVisible) => { this.props.onSaveState({ [modelVisible]: false, }); } /** 复制 */ handleTableCopy = (name, isWait) => { /* 部件树节点复制功能 */ const { [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination,slaveData, } = this.props; if (name === 'control') { const { [`${name}SelectedRowKeys`]: treeSelectedKeys, } = this.props; if (commonUtils.isEmptyArr(treeSelectedKeys)) { message.warn('请选择部件!'); // 请选择部件 return; } /* 获取复制节点下的所有子节点 */ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]); if (commonUtils.isNotEmptyArr(tableData)) { controlChildData.forEach((itemNew) => { tableSelectedRowKeys.push(itemNew.sId); }); } const treeCopyNodes = new Map(); for (const sId of tableSelectedRowKeys) { const tableDataIndex = tableData.findIndex(item => item.sId === sId); if (tableDataIndex > -1) { const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex])); const sAllOldId = tableData[tableDataIndex].sAllId; const arr = sAllOldId.split(','); const newId = commonUtils.createSid(); tableDataRow.sId = newId; let sOldParentId = ''; let sNewParentAllId = ''; if (arr.length < 2) { /* 根节点复制 */ tableDataRow.sAllId = newId; sOldParentId = newId; sNewParentAllId = newId; } else { sOldParentId = arr[arr.length - 2]; if (treeCopyNodes.has(sOldParentId)) { sNewParentAllId = treeCopyNodes.get(sOldParentId); } else { const obj = arr[arr.length - 1]; sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); } const sNewArr = sNewParentAllId.split(','); tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1]; sNewParentAllId = `${sNewParentAllId},${newId}`; tableDataRow.sAllId = sNewParentAllId; } treeCopyNodes.set(sId, sNewParentAllId); tableDataRow.handleType = 'add'; tableDataRow.key = tableDataRow.sId; tableDataRow.sSrcSlaveId = ''; tableDataRow.sSrcId = ''; tableDataRow.dSrcQty = null; const iOrderArr = []; tableData.forEach((item) => { const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */ iOrderArr.push(iOrder); }); const iOrderMax = Math.max(...iOrderArr); tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0; if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) { tableDataRow.sMaterialsMemo = ''; } if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) { tableDataRow.sProcessMemo = ''; } if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) { tableDataRow.sCombinedMemo = ''; } tableData.push(tableDataRow); const tableSelectedNewRowKeys = []; const treeState = this.handleGetControlTreeData(tableData, true); if (commonUtils.isNotEmptyObject(newId)) { tableSelectedNewRowKeys.push(newId); } if (commonUtils.isNotEmptyArr(slaveData)) { slaveData.forEach((item, index) => { /* 合版信息表增加一条从表数据 */ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add'); if (commonUtils.isNotEmptyObject(packDataRow)) { // packDataRow.dCombineQty = 1; packData.push(packDataRow); } }); } this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys, treeSelectedKeys: tableSelectedNewRowKeys, ...treeState, }); } } } else if (name === 'slave') { const { packData, controlData } = this.props; if (commonUtils.isEmptyArr(tableSelectedRowKeys)) { message.warn('请选择数据!'); // 请选择从表数据 return; } for (const sId of tableSelectedRowKeys) { const tableDataIndex = tableData.findIndex(item => item.sId === sId); if (tableDataIndex > -1) { const tableDataRow = this.props.onDataRowCopy(name, true); if (commonUtils.isNotEmptyArr(controlData)) { controlData.forEach((item) => { /* 合版信息表增加一条从表数据 */ const packDataRow = this.handlePackDataAdd(tableDataRow, tableData.length, item.sId, 'add'); if (commonUtils.isNotEmptyObject(packDataRow)) { // packDataRow.dCombineQty = 1; packData.push(packDataRow); } }); } tableData.push(tableDataRow); this.props.onSaveState({ [`${name}Data`]: tableData, packData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, }); } } } else { this.props.onDataRowCopy(name, isWait); } } /** 复制全部 */ handleTableCopyAll = (name, isWait) => { const { [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData,packData, slaveData, app, } = this.props; let { processData } = this.props; if (name === 'control') { const { [`${name}SelectedRowKeys`]: treeSelectedKeys, } = this.props; if (commonUtils.isEmptyArr(tableSelectedRowKeys)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */ } else { /* 获取复制节点下的所有子节点 */ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]); if (commonUtils.isNotEmptyArr(tableData)) { controlChildData.forEach((itemNew) => { tableSelectedRowKeys.push(itemNew.sId); }); } const treeCopyNodes = new Map(); for (const sId of tableSelectedRowKeys) { const tableDataIndex = tableData.findIndex(item => item.sId === sId); if (tableDataIndex > -1) { const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex])); tableDataRow.sId = commonUtils.createSid(); tableDataRow.handleType = 'add'; tableDataRow.key = tableDataRow.sId; tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`; const sAllOldId = tableData[tableDataIndex].sAllId; const arr = sAllOldId.split(','); const newId = tableDataRow.sId; let sOldParentId = ''; let sNewParentAllId = ''; if (arr.length < 2) { /* 根节点复制 */ tableDataRow.sAllId = newId; sOldParentId = newId; sNewParentAllId = newId; } else { sOldParentId = arr[arr.length - 2]; if (treeCopyNodes.has(sOldParentId)) { sNewParentAllId = treeCopyNodes.get(sOldParentId); } else { const obj = arr[arr.length - 1]; sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); } const sNewArr = sNewParentAllId.split(','); tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1]; sNewParentAllId = `${sNewParentAllId},${newId}`; tableDataRow.sAllId = sNewParentAllId; } treeCopyNodes.set(sId, sNewParentAllId); const iOrderArr = []; tableData.forEach((item) => { const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */ iOrderArr.push(iOrder); }); const iOrderMax = Math.max(...iOrderArr); tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0; if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) { tableDataRow.sCombinedMemo = ''; } if (isWait) { return tableDataRow; } else if (commonUtils.isNotEmptyObject(tableDataRow)) { tableData.push(tableDataRow); processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => { const processRow = JSON.parse(JSON.stringify(item)); processRow.sId = commonUtils.createSid(); processRow.handleType = 'add'; processRow.sControlId = tableDataRow.sId; processRow.sPartsName = tableDataRow.sPartsName; processRow.sSrcProcessTbId = item.sId; processData.push(processRow); }); processData = this.sortData(tableData, processData); materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => { const materialsRow = JSON.parse(JSON.stringify(materialsItem)); materialsRow.sId = commonUtils.createSid(); materialsRow.handleType = 'add'; materialsRow.sControlId = tableDataRow.sId; materialsRow.sPartsName = tableDataRow.sPartsName; // 材料对应工序的ID要变化 if (commonUtils.isNotEmptyArr(processData)) { const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId); if (iProcessIndex > -1) { materialsRow.sProcessTbId = processData[iProcessIndex].sId; } } materialsData.push(materialsRow); }); const treeState = this.handleGetControlTreeData(tableData, true); const tableSelectedNewRowKeys = []; if (commonUtils.isNotEmptyObject(newId)) { tableSelectedNewRowKeys.push(newId); } if (commonUtils.isNotEmptyArr(slaveData)) { slaveData.forEach((item, index) => { /* 合版信息表增加一条从表数据 */ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add'); if (commonUtils.isNotEmptyObject(packDataRow)) { // packDataRow.dCombineQty = 1; packData.push(packDataRow); } }); } this.props.onSaveState({ ...treeState, [`${name}Data`]: tableData, [`${name}Pagination`]: { total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys, treeSelectedKeys: tableSelectedNewRowKeys, materialsSelectedRowKeys: [], materialsData, processData, }); } } } } } }; singlePQtyChange = (tableDataRow) => { const bZfZf = tableDataRow.iPrintMode === 2; // 正反版 const bSample = tableDataRow.dSumPQty >= 4; // 样本 tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1; if (bSample) { if (tableDataRow.dSinglePQty > 0) { tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty); } if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反 if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么 tableDataRow.dPlateQty = 2; tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2); tableDataRow.dSumPlateQty = tableDataRow.iStick * ( commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); } else { if (tableDataRow.iPrintModePo !== 2) { // 单面样本 tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty; tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty); tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0)); } else { tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1); tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2); } tableDataRow.dSumPlateQty = tableDataRow.iStick * ( commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); } } else { if (tableDataRow.iPrintModePo !== 2) { // 单面样本 tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty; } else { tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1); } tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty); tableDataRow.dSumPlateQty = tableDataRow.iStick * ( commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0)); } if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) { tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0); tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick; } } else { tableDataRow.iStick = 1; tableDataRow.dSumPlateQty = tableDataRow.iStick * ( commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); if (bZfZf && tableDataRow.iPrintModePo === 2) { tableDataRow.dPlateQty = 2; tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); } else { tableDataRow.dPlateQty = 1; tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0)); } if (tableDataRow.dSinglePQty > 0) { if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数 tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0); } else { tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0); tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick; } } } return tableDataRow; }; /** 树节点选中 */ handleTreeSelect = (name, checkedKeys, e) => { let { controlSelectedRowKeys } = this.props; controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */ this.props.onTreeSelect(name, checkedKeys, e); this.props.onSaveState({ controlSelectedRowKeys, }); }; /* 主产品选中时 清除所有表格选中 */ handleTotalTreeSelect = (name, checkedKeys, e) => { const bMainProduct = (e && e.node && e.node.treeNode) ? e.node.treeNode.isRoot: false; /* 主产品 */ this.props.onTreeSelect(name, checkedKeys, e); if(bMainProduct){ this.props.onSaveState({ slaveSelectedRowKeys:[], controlSelectedRowKeys:[], }); } }; handleTabChange = (value) => { this.setState({ currentTab: +value }); } handleTabChange2 = (value) => { this.setState({ currentTab2: +value }); } handleActiveKey = (value) => { this.setState({ activeKey: value }); } handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失 this.props.onSaveState({ sProcessParamsModalVisible: false, }); } handleDrag = (data, tableName) => { let { controlSelectedRowKeys, controlData } = this.props; if(this.props.enabled && controlSelectedRowKeys.length) { if(tableName === 'process' || tableName === 'materialsO') { if(commonUtils.isNotEmptyArr(data)) { let allData = this.props.processData; /* 控制表选中行 移动排序 */ const filterData = data.filter(item => item.sType !== '3' && item.sControlId === this.props.controlSelectedRowKeys[0]); if(commonUtils.isNotEmptyArr(filterData)) { filterData.forEach((item, iIndex) => { item.iOrder = iIndex + 1; const iFilterIndex = commonUtils.isNotEmptyArr(allData) ? allData.findIndex(row => item.sId === row.sId) : -1; if(iFilterIndex > -1) { allData[iFilterIndex] = {...item, iOrder: iIndex + 1} } }); } /* 找到所属控制表的iOrder * 10000 */ allData.forEach((item, iIndex) => { const iControlIndex = commonUtils.isNotEmptyArr(controlData) ? controlData.findIndex(row => item.sControlId === row.sId) : -1; if(iControlIndex > -1) { const iControlOrder = controlData[iControlIndex].iOrder * 10000; allData[iIndex].iControlOrder = iControlOrder; allData[iIndex].iOrder = iControlOrder + item.iOrder; } }); allData = allData.sort((a, b) => a.iOrder - b.iOrder); allData.forEach((item, iIndex) => { allData[iIndex] = {...item, iOrder: iIndex + 1, handleType : commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType}; }); this.props.onSaveState({ processData: allData }); } } else if(true) { // process : 0-1-2 部品工序 : 3成品工序; let processData = this.props.processData.slice(0); let preDataIndex = 0; let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => { preDataIndex = preDataIndex + 1; return {...item, iOrder: preDataIndex} }); let afterDataIndex = 0; let afterData = data.filter(item => item.sType !== '3' && item.sType !== '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => { afterDataIndex = afterDataIndex + 1; return {...item, iOrder: afterDataIndex} }); let allData = preData.concat(afterData); allData.forEach((item, index) => { if(item.sControlId === this.props.controlSelectedRowKeys[0]) { if(!allData[index].handleType) { allData[index].handleType = 'update'; } } }); processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]); processData = processData.concat(allData); this.props.onSaveState({ processData}); } else { // process : 0-1-2 部品工序 : 3成品工序; let processData = this.props.processData.slice(0); let preDataIndex = 0; let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => { preDataIndex = preDataIndex + 1; return {...item, iOrder: preDataIndex} }); let inDataIndex = 0; let inData = data.filter(item => item.sType === '1' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => { inDataIndex = inDataIndex + 1; return {...item, iOrder: inDataIndex} }); let afterDataIndex = 0; let afterData = data.filter(item => item.sType === '2' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => { afterDataIndex = afterDataIndex + 1; return {...item, iOrder: afterDataIndex} }); let allData = preData.concat(inData, afterData); allData.forEach((item, index) => { if(item.sControlId === this.props.controlSelectedRowKeys[0]) { if(!allData[index].handleType) { allData[index].handleType = 'update'; } } }); processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]); processData = processData.concat(allData); this.props.onSaveState({ processData}); } } } handleProductDrag = (data) => { if(this.props.enabled) { // process : 0-1-2 部品工序 : 3成品工序; let processData = this.props.processData.slice(0); let dataIndex = 0; const allData = data.filter(item => item.sType === '3' && item.sCombinePartsName === this.props.slaveSelectedRowKeys[0]).map((item) => { dataIndex = dataIndex + 1; return {...item, iOrder: dataIndex, handleType: item.handleType ? item.handleType : 'update'}; }); processData = processData.filter(item => item.sCombinePartsName !== this.props.slaveSelectedRowKeys[0]); processData = processData.concat(allData); this.props.onSaveState({ processData }); } } /* 拖拽表格树形节点 */ handleMoveRow = (dragIndex, hoverIndex,dragKey,hoverKey) => { const { controlData: data} = this.props; if(commonUtils.isNotEmptyArr(data) && this.props.enabled) { // const dragRow = data[dragIndex]; const dragObject = commonUtils.isNotEmptyArr(data.filter(ele => ele.sId === dragKey)) ? data.filter(ele => ele.sId === dragKey)[0] : {}; const hoverObject = commonUtils.isNotEmptyArr(data.filter(ele => ele.sId === hoverKey)) ? data.filter(ele => ele.sId === hoverKey)[0] : {}; if (dragObject.sControlParentId === hoverObject.sControlParentId) { // 同级菜单的移动 let newData = data.filter(ele => ele.sId !== dragKey); let insertIndex = 0 if (commonUtils.isNotEmptyArr(newData)) { newData.forEach((ele, index) => { if (ele.sId === hoverKey) { if (dragIndex > hoverIndex) { // 上移:dragKey表示的元素 放到 hoverKey表示的元素之前 insertIndex = index; } else { // 下移 dragKey表示的元素 放到 hoverKey表示的元素之后 insertIndex = index + 1; } } }); newData.splice(insertIndex, 0, dragObject); if(commonUtils.isNotEmptyObject(dragObject)) { dragObject.handleType=dragObject.handleType ? dragObject.handleType : 'update'; } this.props.onSaveState({ controlData: newData }) } } else { let newData = data.filter(ele => ele.sId !== dragKey) let insertIndex = 0; if (commonUtils.isNotEmptyArr(newData)) { newData.forEach((ele, index) => { if (ele.sId === hoverKey) { if (dragIndex > hoverIndex) { // 上移:dragKey表示的元素 放到 hoverKey表示的元素之前 insertIndex = index; } else { // 下移 dragKey表示的元素 放到 hoverKey表示的元素之后 insertIndex = index + 1; } } }); dragObject.sControlParentId = hoverObject.sControlParentId; if(commonUtils.isNotEmptyObject(dragObject)) { dragObject.handleType = dragObject.handleType ? dragObject.handleType : 'update'; } newData.splice(insertIndex, 0, dragObject); this.props.onSaveState({ controlData: newData }) } } } else { message.error('请在可编辑状态下进行移动!'); } } handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮 const { processData, processRecord, processConfig, } = this.props; if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) { const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId); if (processSelectDataIndex > -1) { let sProcessParamStr = ''; // eslint-disable-next-line no-plusplus for (let i = 1; i < 7; i++) { const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) { sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`; } } processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr }; } } this.props.onSaveState({ processData, sProcessParamsModalVisible: false, }); } render() { const { pageLoading, masterData, fastOrderModalVisible, sModelsType, app } = this.props; const imgSrc = commonBusiness.handleAddIcon(masterData, sModelsType, app ); return ( ); } } const ProcessCardComponent = Form.create({ mapPropsToFields(props) { const { masterData, masterConfig } = props; const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig); return obj; }, })((props) => { const { form, onReturnForm, masterConfig: masterConfigOld, slaveData, slavePagination, sModelsId, sTabId, app, colorConfigGrdVisible, dailyConfigGrdVisible, sisColorChooseVisible,productCombinationVisible, combinePartsChooseVisible, finishedMaterialsColumn, finishedMaterialsConfig, finishedProcessColumn, finishedProcessConfig, isLayout, isLayout2, sModelsType, processConfig, sTableType, formData, materialsInfoList, materialsChildInfoList, } = props; // 关联slave合版进行筛选control的数据 let controlTableData = []; if(commonBusiness.getTableTypes('control', props).data && commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.slaveData)) { const iSlaveIndex = props.slaveData.findIndex(item => item.sId === props.slaveSelectedRowKeys[0]); const slaveSelectedRow = props.slaveData[iSlaveIndex] || {sProductNo: 0}; if(iSlaveIndex !== -1) { commonBusiness.getTableTypes('control', props).data.forEach(item => { if(item.sCombinedMemo && item.sCombinedMemo !== '' && item.sCombinedMemo !== '合版信息') { const sCombinedMemoArr = commonUtils.isJSON(item.sCombinedMemo) ? JSON.parse(item.sCombinedMemo) : []; const getSlaveSelectedRowChildren = (allData, sId) => { let result = []; allData.forEach(item => { if (item.sFatherSlaveId === sId) { result.push(item); result = [...result, ...getSlaveSelectedRowChildren(allData, item.sId)] } }); return result; }; const slaveSelectedRowChildren = getSlaveSelectedRowChildren(props.slaveData, slaveSelectedRow.sId); const slaveRows = [slaveSelectedRow, ...slaveSelectedRowChildren]; const len = sCombinedMemoArr.filter(item => item.sProductNo && slaveRows.some(slaveRow => slaveRow.sProductNo === item.sProductNo)).length; if(len) { controlTableData.push(item); } } else { controlTableData.push(item); } }) } else { controlTableData = commonBusiness.getTableTypes('control', props).data.slice(0); } } // 之前代码默认会选中第一行,第一行可能已经被筛选掉,需要判断 if(controlTableData.length && props.controlSelectedRowKeys[0] !== controlTableData[0].sId && controlTableData.map(item => item.sId).indexOf(props.controlSelectedRowKeys[0]) === -1) { if(commonUtils.isNotEmptyArr(props.slaveSelectedRowKeys)) { props.onSaveState({ controlSelectedRowKeys: [controlTableData[0].sId] }); } } const layoutChange = isLayout && isLayout2; // 计算控制表记录数量,计算sticky高度 const controlLen = props.controlData ? props.controlData.length : 0; const slaveLen = props.slaveData ? props.slaveData.length : 0; let stickyHeight = 0; let stickyTabHeight = 0; if(layoutChange) { if (controlLen && controlLen < 5) { stickyTabHeight += (slaveLen * 29) + 40; stickyHeight += (controlLen * 29) + 40 + 30 - 4; } else { stickyHeight += 162; } stickyHeight += 40; } else { if(props.currentTab === 1) { if (controlLen && controlLen < 5) { stickyHeight = (controlLen * 29) + 40 + 30 - 4; // 153 } else { stickyHeight = 162 + 30; } } else { if (slaveLen && slaveLen < 5) { stickyHeight = (slaveLen * 29) + 40 + 30 - 4; stickyTabHeight = (slaveLen * 29) + 40; } else { stickyHeight = 162 + 30; stickyTabHeight = 162; } } } /* 回带表单 */ onReturnForm(form); const addProps = {}; if (commonUtils.isNotEmptyObject(masterConfigOld)) { const masterConfig = JSON.parse(JSON.stringify(masterConfigOld)); let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty'); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName'); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName'); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle'); if (iIndex > -1) { masterConfig.gdsconfigformslave.splice(iIndex, 1); } addProps.masterConfig = masterConfig; } const propsType = { ...props, ...addProps, onChange: props.onMasterChange, }; const pagination = { total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length, current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current, size: 'large', pageSize: commonConfig.pageSize, showQuickJumper: true, hideOnSinglePage: true, }; const width = '16px'; const height = '16px'; const setAdd = { title: '增加', img: , disableimg: , }; const setAddChild = { title: '增加', img: , disableimg: , }; const setCopy = { title: '复制', img: , disableimg: , }; const setCopyAll = { title: '复制部件', img: , disableimg: , }; const setDelete = { title: '删除', img: , disableimg: , }; const setProcess = { title: '工序', img: , disableimg: , }; const setMaterial = { title: '材料', img: , disableimg: , }; const processUp = { title: '上移', width: { width }, height: { height }, img: 上移, disableimg: 上移, }; const processDown = { title: '下移', width: { width }, height: { height }, img: 下移, disableimg: 下移, }; const processTop = { title: '置顶', width: { width }, height: { height }, img: 置顶, disableimg: 置顶, }; const processBottom = { title: '置底', width: { width }, height: { height }, img: 置底, disableimg: 置底, }; let bSplitMaterials = true; /* 默认拆分材料*/ if (commonUtils.isNotEmptyObject(masterConfigOld)) { const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitMaterials'); if (iIndex > -1) { bSplitMaterials = props.masterConfig.gdsconfigformslave[iIndex].bVisible; } } let bSplitProcess = true; /* 默认拆分工序 */ if (commonUtils.isNotEmptyObject(masterConfigOld)) { const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitProcess'); if (iIndex > -1) { bSplitProcess = props.masterConfig.gdsconfigformslave[iIndex].bVisible; } } let chooseProcessConfigRow; let onChooseProcessIndex; /* 获取toolbar 选择工序 */ if (commonUtils.isNotEmptyObject(masterConfigOld)) { onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess'); if (onChooseProcessIndex > -1) { chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex]; } } /* 获取toolbar 选择材料 */ let chooseMaterialsConfigRow; if (commonUtils.isNotEmptyObject(masterConfigOld)) { const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials'); if (iIndex > -1) { chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex]; } } /* 获取toolbar 选择成品工序 */ let bShowProductProcess = false; let chooseProductProcessConfigRow = {}; let onChooseProductProcessIndex; if (commonUtils.isNotEmptyObject(masterConfigOld)) { onChooseProductProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess'); if (onChooseProductProcessIndex > -1) { chooseProductProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductProcessIndex];/* 配置了成品工序按钮 */ bShowProductProcess = true;/* 配置了成品工序按钮 */ } } /* 获取toolbar 选择成品材料 */ let bShowProductMaterials = false; let chooseProductMaterialsConfigRow = {}; let onChooseProductMaterialsIndex; if (commonUtils.isNotEmptyObject(masterConfigOld)) { onChooseProductMaterialsIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials'); if (onChooseProductMaterialsIndex > -1) { chooseProductMaterialsConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductMaterialsIndex];/* 配置了成品工序按钮 */ bShowProductMaterials = true;/* 配置了成品材料按钮 */ } } /* 做树形 */ let slaveTreeData = []; const bTree = sTableType === 'single' && commonUtils.isNotEmptyArr(slaveData) && slaveData.findIndex(item => commonUtils.isNotEmptyObject(item.sFatherSlaveId)); /* 树形展示 */ if (bTree) { slaveTreeData = commonUtils.genTreeByArr(slaveData, 'sId', 'sFatherSlaveId'); } else { slaveTreeData = slaveData; } const slaveTableProps = { ...commonBusiness.getTableTypes('slave', props), onKeyDown: props.onKeyDown, data: slaveTreeData, tableProps: { rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%', bShowTreeAddChild: true, }, onExpand: props.onExpandTreeSingle, onTreeAdd: props.onDataRowAdd, onTreeAddChild: props.onDataRowAdd, onTreeCopyAll: props.onDataRowCopyAll, onTreeDel: props.onDataRowDel, }; /* 表格是否可以拖拽层级 */ let bDragConfig = false; if (commonUtils.isNotEmptyObject(masterConfigOld)) { const iIndex = props.controlConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bTableDrag'); if (iIndex > -1) { bDragConfig = props.controlConfig.gdsconfigformslave[iIndex].bVisible;/* 配置了成品工序按钮 */ } } let bShowMaterials = true; const iMaterialsIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials') : -1; bShowMaterials = iMaterialsIndex > -1; let bShowProcess = true; const iProcessIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess') : -1; bShowProcess = iProcessIndex > -1; const controlPropsType = { ...commonBusiness.getTableTypes('control', props), data: commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId'), onKeyDown: props.onKeyDown, tableProps: { // rowSelection: null, // setAdd, // setCopyAll, // setDelete, setCopy, setProcess: bShowProcess, setMaterial : bShowMaterials, bShowTreeAdd: true, bShowTreeAddChild: true, bShowTreeDel: true, bShowTreeCopyAll: true, setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */ // bShowProductProcess, /* 是否显示成品工序 */ // bShowProductMaterials, /* 是否显示成品工序 */ chooseProcessConfigRow, chooseMaterialsConfigRow, // chooseProductProcessConfigRow, /* 成品工序按钮配置 */ // chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */ AutoTableHeight: 232, // onRow: (record) => { // return { // onClick: () => { props.onRowClick('control', record); }, // onDoubleClick: () => { props.onDoubleClick('control', record); }, // onMouseEnter: () => { props.onRowMouseEnter('control', record); }, // }; // }, }, onTreeAdd: props.onDataRowAdd, onTreeAddChild: props.onDataRowAdd, onTreeCopyAll: props.onDataRowCopyAll, onTreeDel: props.onDataRowDel, onMoveRow: props.onMoveRow, isDragAndDrop: bDragConfig, /* 拖动层级 */ bRowClickRepeat: true }; const name = 'controlTree'; const treeProps = { ...commonBusiness.getTreeTypes('tree', props), isSearch: false, checkable: false, disabled: false, checkedAll: false, unChecked: false, [`${name}Column`]: props[`${name}Column`], [`${name}Config`]: props[`${name}Config`], [`${name}Data`]: props[`${name}Data`], getFloatNum: props.getFloatNum, getSqlDropDownData: props.getSqlDropDownData, getSqlCondition: props.getSqlCondition, handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord, getDateFormat: props.getDateFormat, onDoubleClick: props.onDoubleClick, onSelect: props.onSelectTree, expandedKeys: props.expandedKeys, showLine: true, }; /* 整体树结构 */ const totalname = 'totalTree'; const totalTreeProps = { ...commonBusiness.getTreeTypes('totalTree', props), isSearch: false, checkable: false, disabled: false, checkedAll: false, unChecked: false, [`${totalname}Column`]: props[`${totalname}Column`], [`${totalname}Config`]: props[`${totalname}Config`], [`${totalname}Data`]: props[`${totalname}Data`], getFloatNum: props.getFloatNum, getSqlDropDownData: props.getSqlDropDownData, getSqlCondition: props.getSqlCondition, handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord, getDateFormat: props.getDateFormat, onDoubleClick: props.onDoubleClick, onSelect: props.onSelectTotalTree, expandedKeys: props.expandedKeys, showLine: true, }; const dataFilter = (data, type, bFinal) => { // materials : 0-1部件材料 : 2成品材料; // process : 0-1-2 部品工序 : 3成品工序; // bfinal: 是否成品 const { slaveSelectedRowKeys, controlSelectedRowKeys } = props; const oriData = data.data || []; if (data.data) { let res = []; switch (type) { case 'materials': if (bSplitMaterials && finishedMaterialsColumn) { if (bFinal) { /* 成品材料 */ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) { res = oriData.filter((val) => { return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName); }); } else { res = oriData.filter((val) => { return val.sType === '2'; }); } } else { /* 部件材料 */ res = oriData.filter((val) => { return val.sType !== '2'; }); } } else { res = oriData; } break; case 'process': if (true) { if (bFinal) { /* 成品工序 */ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) { res = oriData.filter((val) => { return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName); }); } else { res = oriData.filter((val) => { return val.sType === '3'; }); } } else { /* 部件工序 */ if (controlSelectedRowKeys && controlSelectedRowKeys.length) { res = oriData.filter((val) => { return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId); }); } else { res = oriData.filter((val) => { return val.sType !== '3'; }); } if(isQianCai) { const pre = res.filter(item => item.sType == '0').sort((a, b) => a.iOrder - b.iOrder); const after = res.filter(item => (item.sType == '1' || item.sType == '2')).sort((a, b) => a.iOrder - b.iOrder); res = pre.concat(after); } } } else { res = oriData; } break; default: res = oriData; } return res; } else { return oriData || []; } }; /* 根据业务过滤全部材料,油墨 电化铝数据 去重根据sMateriaslId+ sMaterialsStyle */ const materialsFilter = (data, type, bFinal) => { // materials : 0-1部件材料 : 2成品材料; // process : 0-1-2 部品工序 : 3成品工序; // bfinal: 是否成品 const { slaveSelectedRowKeys, controlSelectedRowKeys, materials0Data, materials1Data, materials1ChildData, materials2Data, materials2ChildData, materialsOtherData } = props; if (true) { let oriData = commonUtils.isNotEmptyArr(data.data) ? data.data : []; let res = []; switch (type) { case 'materials2': /* 电化铝 */ if (commonUtils.isNotEmptyArr(materials2ChildData)) { const newData = []; materials2ChildData.forEach((val) => { const iIndex = newData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle); if(iIndex === -1){ newData.push(val); } }); res = newData; if (bFinal) { /* 成品材料 */ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) { res = oriData.filter((val) => { return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName); }); } else { res = oriData.filter((val) => { return val.sType === '2'; }); } } else { /* 部件材料 */ res = newData.filter((val) => { return val.sType !== '2'; }); } } else { res = oriData; } break; case 'materials0': /* 全部材料 */ if (true) { let newData0 = commonUtils.isNotEmptyArr(materials1Data) ? materials1Data : []; /* 专色墨 */ let newData1 = commonUtils.isNotEmptyArr(materials1ChildData) ? materials1ChildData : []; /* 油墨 */ let newDataChild = commonUtils.isNotEmptyArr(materials2ChildData) ? materials2ChildData : []; /* 电化铝明细 */ const newDhlData = []; /* 电化铝汇总 */ newDataChild.forEach((val) => { const iIndex = newDhlData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle); if(iIndex === -1){ newDhlData.push(val); } }); let newOtherData = commonUtils.isNotEmptyArr(materialsOtherData) ? materialsOtherData : []; /* 其他子集 */ /* 如果其他子级是空的 取不是油墨。电化铝、专色墨部分 */ if(commonUtils.isNotEmptyArr(newOtherData) && commonUtils.isNotEmptyArr(materials0Data)) { newOtherData = materials0Data.filter(item => item.sZmldlName !== '油墨' && item.sZmldlName !== '自调专色墨' && item.sZmldlName !== '电化铝' ); } const newDataTemp = (newData0.concat(newData1)).concat(newDhlData); let allData = newDataTemp.concat(newOtherData); if (bFinal) { /* 成品材料 */ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) { res = allData.filter((val) => { return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName); }); } else { res = allData.filter((val) => { return val.sType === '3'; }); } } else { /* 部件材料 */ // if (controlSelectedRowKeys && controlSelectedRowKeys.length) { // res = oriData.filter((val) => { // return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId); // }); // } else { // res = allData.filter((val) => { // return val.sType !== '3'; // }); // } res = allData; } } else { res = oriData; } break; default: res = oriData; } return res; } else { return []; } }; const materialsFilterNew = (data, type, bFinal) => { // materials : 0-1部件材料 : 2成品材料; // process : 0-1-2 部品工序 : 3成品工序; // bfinal: 是否成品 const { materials0Data, processSelectedRowKeys, processData, controlSelectedRowKeys, controlData } = props; let oriData = materials0Data; // commonUtils.isNotEmptyArr(data.data) ? data.data : []; let res = []; let newData = []; let processRow = {}; let controlRow = {}; if(commonUtils.isNotEmptyArr(controlData) && commonUtils.isNotEmptyArr(controlSelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */ const iIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId)); if(iIndex > -1) { controlRow = controlData[iIndex]; } } if(commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyArr(processSelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */ const iIndex = processData.findIndex(item => processSelectedRowKeys.includes(item.sId)); if(iIndex > -1) { processRow = processData[iIndex]; } } if (type === 'materials0') { /* 根据工序表选中行的部件id +工序id 过滤全部材料数据 */ if(commonUtils.isNotEmptyObject(processRow)){ const filterData = oriData.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId)); if (commonUtils.isNotEmptyArr(filterData)) { newData = filterData.filter(item => (commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) || (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId)) ); } res = newData; } else if(commonUtils.isNotEmptyObject(controlRow)){ const filterData = oriData.filter(item => item.sControlId === controlRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId)); if (commonUtils.isNotEmptyArr(filterData)) { newData = filterData.filter(item => (commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) || (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId)) ); } res = newData; } else { res = commonUtils.isEmptyArr(oriData) ? oriData : oriData.filter(item => commonUtils.isEmptyObject(item.sParentMaterialsId)); res = commonUtils.isEmptyArr(oriData) ? oriData : res.filter(item => (commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) || (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId)) ); } } else if (type === 'materials1' || type === 'materials2' || type === 'materials3') { /* 过滤后的 materials0Data */ let materials0FilterData = []; if(commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)){ const filterData = materials0Data.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId)); if (commonUtils.isNotEmptyArr(filterData)) { materials0FilterData = filterData; } }else if(commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)){ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId)); if (commonUtils.isNotEmptyArr(filterData)) { materials0FilterData = filterData; } } else { materials0FilterData = materials0Data; } if (commonUtils.isNotEmptyArr(materials0FilterData)) { const config = data.config; const sSqlCondition = config ? config.sSqlCondition : 'materials0.sBclassifyName.油墨'; if (sSqlCondition) { let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */ if(commonUtils.isEmptyObject(targetTbName)) { targetTbName = 'materials0'; } let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ /* 双重条件 */ if(commonUtils.isEmptyObject(targetTbName)){ if(type === 'materials1') { /* materials0.sBclassifyName.油墨 */ filteredValue = 'sBclassifyName'; sParentKey = '油墨'; } else if(type ==='materials2') { /* materials0.sBclassifyName.电化铝 */ filteredValue = 'sBclassifyName'; sParentKey = '电化铝'; } } if (targetTbName === 'materials0') { let filterData = []; if(type === 'materials1') { /* 油墨 */ filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) && ( (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId)) || (commonUtils.isEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId)) )); }else if(type === 'materials2') { /* 电化铝 */ filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId)); } else if(type === 'materials3') { /* 包材 */ filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId)); } newData = filterData; } } } res = newData; } else if( type === 'materials1Child') { /* 过滤油墨子集 */ /* 过滤后的 materials0Data */ let materials0FilterData = []; if(commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)){ const filterData = materials0Data.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId ); if (commonUtils.isNotEmptyArr(filterData)) { materials0FilterData = filterData; } }else if(commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)){ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId); if (commonUtils.isNotEmptyArr(filterData)) { materials0FilterData = filterData; } } else { materials0FilterData = materials0Data; } if (commonUtils.isNotEmptyArr(materials0FilterData)) { const config = data.config; const sSqlCondition = config && commonUtils.isNotEmptyObject(config.sSqlCondition) ? config.sSqlCondition : 'materials0.sBclassifyName.油墨'; if (sSqlCondition) { let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */ if(commonUtils.isEmptyObject(targetTbName)) { targetTbName = 'materials0'; } let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ if(commonUtils.isEmptyObject(targetTbName)){ if(type === 'materials1') { /* materials0.sBclassifyName.油墨 */ filteredValue = 'sBclassifyName'; sParentKey = '油墨'; } else if(type ==='materials2') { /* materials0.sBclassifyName.电化铝 */ filteredValue = 'sBclassifyName'; sParentKey = '电化铝'; } } if (targetTbName === 'materials0') { const filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId)); if (commonUtils.isNotEmptyArr(filterData)) { newData = filterData; } } } } if( type ==='materials1Child') { /* 油墨过滤子集 相同sInkBOMId, sInkBOMsSlaveId, 有sInkBOMsMaterialsId是父集 */ const { materials0Data, materials1SelectedRowKeys } = props; let materials1Row ={}; /* 油墨子级 */ if(commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyArr(materials1SelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */ const iIndex = materials0Data.findIndex(item => materials1SelectedRowKeys.includes(item.sId)); if(iIndex > -1) { materials1Row = materials0Data[iIndex]; } } res = newData.filter(item => item.sInkFatherMaterialsTbId === materials1Row.sId); // res = newData.filter(item => commonUtils.isNotEmptyObject(item.sInkBOMId) && item.sInkBOMId === materials1Row.sInkBOMId // && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId) && item.sInkBOMsSlaveId === materials1Row.sInkBOMsSlaveId && // commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)); } } else if(type ==='materials0Child') { /* 全部材料 过滤替代料 */ const { materials0Data, materials0SelectedRowKeys } = props; let materials0Row ={}; /* 油墨子级 */ if(commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyArr(materials0SelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */ const iIndex = materials0Data.findIndex(item => materials0SelectedRowKeys.includes(item.sId)); if(iIndex > -1) { materials0Row = materials0Data[iIndex]; } } if(commonUtils.isNotEmptyObject(materials0Row)) { /* 根据工序过滤所有替代料 */ if(commonUtils.isNotEmptyObject(materials0Row.sAluminumBomId)) { /* 电化铝替代料过滤 */ res = oriData.filter(item => item.sParentMaterialsId === materials0Row.sId || ( commonUtils.isNotEmptyObject(item.sParentMaterialsId) && commonUtils.isNotEmptyObject(item.sMaterialsNo) && item.sMaterialsNo1 === materials0Row.sMaterialsNo) ); } else { res = oriData.filter(item => item.sParentMaterialsId === materials0Row.sId); } } else if(commonUtils.isNotEmptyObject(processRow)) { /* 根据工序过滤所有替代料 */ res = oriData.filter(item => item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId && commonUtils.isNotEmptyObject(item.sParentMaterialsId)); } else if(commonUtils.isNotEmptyObject(controlRow)){ res = oriData.filter(item => item.sControlId=== controlRow.sId && commonUtils.isNotEmptyObject(item.sParentMaterialsId)); } } else { res = oriData; } return res; } const materialsPropsType = { ...commonBusiness.getTableTypes('materials', props), data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials'), filteredValue: props.controlSelectedRowKeys, onFilterData: props.onFilterData, OnGetFilterData: props.OnGetFilterData, onKeyDown: props.onKeyDown, tableProps: { rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%', sticky: layoutChange ? { offsetHeader: stickyHeight } : true, }, }; /* 选择成品材料 */ const finishedMaterialsPropsType = { ...commonBusiness.getTableTypes('materials', props), configName: 'finishedMaterials', data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials', true), headerColumn: finishedMaterialsColumn, config: finishedMaterialsConfig, filteredValue: props.controlSelectedRowKeys, // onFilterData: props.onFilterProductData, OnGetFilterData: props.OnGetFilterData, onKeyDown: props.onKeyDown, tableProps: { rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%', bShowProductMaterials, chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */ sticky: layoutChange ? { offsetHeader: stickyHeight } : true, }, }; const materialsTablePropsList = {}; if (commonUtils.isNotEmptyArr(materialsInfoList)) { materialsInfoList.forEach((item, index) => { // const slaveTablePagination = { // pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize, // ...slavePagination, // size: isSmall ? 'small' : 'large', // pageSizeOptions: commonConfig.pageSizeOptions, // showSizeChanger: !isSmall, // showQuickJumper: !isSmall, // hideOnSinglePage: true, // }; materialsTablePropsList[`materialsTable${index}Props`] = { ...commonBusiness.getTableTypes(`materials${index}`, props), onKeyDown: props.onKeyDown, // data: materialsFilter(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false), data: materialsFilterNew(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false), // tableBelone: 'list', tableProps: { setAdd, setCopy, setDelete, AutoTableHeight: '100%', }, }; }); } const materialsChildTablePropsList = {}; if (commonUtils.isNotEmptyArr(materialsChildInfoList)) { materialsChildInfoList.forEach((item, index) => { materialsChildTablePropsList[`${item}TableProps`] = { ...commonBusiness.getTableTypes(`${item}`, props), data: materialsFilterNew(commonBusiness.getTableTypes(item, props), item, false), // tableBelone: 'list', tableProps: { setAdd, setCopy, setDelete, AutoTableHeight: '100%', }, onDrag: props.onDrag, }; }); } /* 是否有拖动功能 是通过配置有没有handleSort功能 */ const bProcessSort = commonUtils.isNotEmptyObject(processConfig) && commonUtils.isNotEmptyArr(processConfig.gdsconfigformslave) && commonUtils.isNotEmptyArr(processConfig.gdsconfigformslave.filter(item => item.sControlName === 'handleSort' && item.bVisible)) ? true : false ; const processPropsType = { ...commonBusiness.getTableTypes('process', props), data: dataFilter(commonBusiness.getTableTypes('process', props), 'process'), filteredValue: props.controlSelectedRowKeys, onFilterData: props.onFilterData, OnGetFilterData: props.OnGetFilterData, onKeyDown: props.onKeyDown, tableProps: { rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%', sticky: layoutChange ? { offsetHeader: stickyHeight } : true, }, onDrag: props.onDrag, isDragAndDrop: false, }; let processShowLeft = {}; let processShowTitle = ''; let processTitleWidth = ""; if (commonUtils.isNotEmptyObject(props.processConfig)) { const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft'); if (iIndex > -1) { processShowLeft = props.processConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */ if(commonUtils.isNotEmptyObject(processShowLeft)) { if(processShowLeft.bVisible) { processShowTitle = processShowLeft.showName; } } } const iIndex1 = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'titleWidth'); if (iIndex1 > -1) { const processTitleWidthConfig = props.processConfig.gdsconfigformslave[iIndex1]; processTitleWidth = processTitleWidthConfig.sDefault; } } // const bShowProcessLeft = commonUtils.isNotEmptyObject(props) && props.good /* 选择成品材料 */ const finishedProcessPropsType = { ...commonBusiness.getTableTypes('process', props), configName: 'finishedProcess', data: dataFilter(commonBusiness.getTableTypes('process', props), 'process', true), headerColumn: finishedProcessColumn, config: finishedProcessConfig, filteredValue: props.controlSelectedRowKeys, // onFilterData: props.onFilterProductData, OnGetFilterData: props.OnGetFilterData, onKeyDown: props.onKeyDown, onDrag: props.onProductDrag, tableProps: { rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%', bShowProductProcess, chooseProductProcessConfigRow, /* 成品工序按钮配置s */ sticky: layoutChange ? { offsetHeader: stickyHeight } : true, }, }; let finalProcessShowLeft = {}; if (commonUtils.isNotEmptyObject(finishedProcessConfig)) { const iIndex = finishedProcessConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft'); if (iIndex > -1) { finalProcessShowLeft = finishedProcessConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */ } } let colorTableProps = {}; // let cProps = {}; if (colorConfigGrdVisible) { colorTableProps = { ...commonBusiness.getTableTypes('color', props), onKeyDown: props.onKeyDown, tableProps: { rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%', }, }; // cProps = { ...commonBusiness.createMemoProps('color', props) }; } let dailyRecordTableProps = {}; if (dailyConfigGrdVisible) { dailyRecordTableProps = { ...commonBusiness.getTableTypes('daily', props), onKeyDown: props.onKeyDown, tableProps: { rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%', }, }; } let searchProcessType = {}; let chooseProcessConfig = {}; if (commonUtils.isNotEmptyObject(props.processChooseData)) { const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess'); if (iIndex > -1) { chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex]; } searchProcessType = { app: { ...props.app, currentPane: { name: 'process', config: chooseProcessConfig, conditonValues: props.getSqlCondition(chooseProcessConfig), title: props.processChooseData.sMenuName, route: props.processChooseData.sName, formId: props.processChooseData.sId, key: sModelsId + props.processChooseData.sId, sModelsType: props.processChooseData.sModelType, select: props.onSelect, selectCancel: props.onSelectCancel, }, }, processData : props.processData, controlSelectedRowKeys: props.controlSelectedRowKeys, dispatch: props.dispatch, fatherModelsType: props.sModelsType, content: props.content, id: new Date().getTime().toString(), }; } /* 选择成品工序 */ let chooseProdutProcessType = {}; let chooseProdutProcessConfig = {}; if (commonUtils.isNotEmptyObject(props.productProcessChooseData)) { const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess'); if (iIndex > -1) { chooseProdutProcessConfig = props.masterConfig.gdsconfigformslave[iIndex]; } let slaveFinalData = []; let slaveFinalSelectedRowKeys =[]; if (commonUtils.isNotEmptyArr(props.slaveData)) { slaveFinalData = JSON.parse(JSON.stringify(props.slaveData)); if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) { slaveFinalData.forEach((item) => { item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */ }); } /* 选择成品工序 只有一条从表 则默认选中 */ if(slaveFinalData.length ===1){ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId); } } let slaveFinalConfig = {}; if (commonUtils.isNotEmptyObject(props.slaveConfig)) { slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig)); slaveFinalConfig.bMutiSelect = true; } chooseProdutProcessType = { app: { ...props.app, currentPane: { name: 'chooseProductProcess', config: chooseProdutProcessConfig, conditonValues: props.getSqlCondition(chooseProdutProcessConfig), title: props.productProcessChooseData.sMenuName, route: props.productProcessChooseData.sName, formId: props.productProcessChooseData.sId, key: sModelsId + props.productProcessChooseData.sId, sModelsType: 'search/finalProcess', select: props.onSelectFinalProcess, /* 选择成品工序 */ selectCancel: props.onCancelModal.bind(this, 'productProcessChooseVisible'), }, }, slaveFinalConfig, slaveFinalColumn: props.slaveColumn, slaveFinalData, slaveFinalSelectedRowKeys, dispatch: props.dispatch, fatherModelsType: props.sModelsType, content: props.content, id: new Date().getTime().toString(), }; } /* 选择成品材料 */ let chooseProductMaterialsType = {}; let chooseProductMaterialsConfig = {}; if (commonUtils.isNotEmptyObject(props.productMaterialsChooseData)) { const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials'); if (iIndex > -1) { chooseProductMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex]; } let slaveFinalData = []; let slaveFinalSelectedRowKeys =[]; if (commonUtils.isNotEmptyArr(props.slaveData)) { slaveFinalData = JSON.parse(JSON.stringify(props.slaveData)); if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) { slaveFinalData.forEach((item) => { item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表s */ }); } /* 选择成品材料 只有一条从表 则默认选中 */ if(slaveFinalData.length ===1){ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId); } } let slaveFinalConfig = {}; if (commonUtils.isNotEmptyObject(props.slaveConfig)) { slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig)); slaveFinalConfig.bMutiSelect = true; } chooseProductMaterialsType = { app: { ...props.app, currentPane: { name: 'productMaterials', config: chooseProductMaterialsConfig, conditonValues: props.getSqlCondition(chooseProductMaterialsConfig), title: props.productMaterialsChooseData.sMenuName, route: props.productMaterialsChooseData.sName, formId: props.productMaterialsChooseData.sId, key: sModelsId + props.productMaterialsChooseData.sId, sModelsType: 'search/finalMaterials', select: props.onSelectProductMaterial, selectCancel: props.onCancelModal.bind(this, 'productMaterialsChooseVisible'), }, }, slaveFinalConfig, slaveFinalColumn: props.slaveColumn, slaveFinalData, slaveFinalSelectedRowKeys, dispatch: props.dispatch, fatherModelsType: props.sModelsType, content: props.content, id: new Date().getTime().toString(), }; } let searchMaterialsType = {}; let chooseMaterialsConfig = {}; if (commonUtils.isNotEmptyObject(props.materialsChooseData)) { const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials'); if (iIndex > -1) { chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex]; } searchMaterialsType = { app: { ...props.app, currentPane: { name: 'materials', config: chooseMaterialsConfig, conditonValues: props.getSqlCondition(chooseMaterialsConfig), title: props.materialsChooseData.sMenuName, route: props.materialsChooseData.sName, formId: props.materialsChooseData.sId, key: sModelsId + props.materialsChooseData.sId, sModelsType: props.materialsChooseData.sModelType, select: props.onSelect, selectCancel: props.onSelectCancel, }, }, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString(), }; } const packTableProps = { ...commonBusiness.getTableTypes('pack', props), filteredValue: props.controlSelectedRowKeys, onFilterData: props.onFilterData, onKeyDown: props.onKeyDown, tableProps: { setCopy, setDelete, CalLastWidth: '1150', AutoTableHeight: '300px', }, bRowClick: true, }; let combinePartsConfig = {}; if (commonUtils.isNotEmptyObject(props.packConfig)) { combinePartsConfig = JSON.parse(JSON.stringify(props.packConfig)); const gdsconfigformslaveFilter = combinePartsConfig.gdsconfigformslave.filter(item => (item.sName === 'sId' || item.sName === 'sCustomerName' || item.sName === 'sProductName' || item.sName === 'sCombinePartsName')); combinePartsConfig.gdsconfigformslave = gdsconfigformslaveFilter; combinePartsConfig.bMutiSelect = false; } let combinePartsColumn = []; if (commonUtils.isNotEmptyObject(props.packColumn)) { combinePartsColumn = JSON.parse(JSON.stringify(props.packColumn)); const packColumnFilter = props.packColumn.filter(item => (item.dataIndex === 'sId' || item.dataIndex === 'sCustomerName' || item.dataIndex === 'sProductName' || item.dataIndex === 'sCombinePartsName')); combinePartsColumn = packColumnFilter; } const combinePartsTableProps = { app: { ...props.app, currentPane: { ...props.app.currentPane, formRoute: '/indexPage/commonList', route: '/indexPage/commonList', name: 'combineParts', config: combinePartsConfig, select: props.onSelectCombinePartsChoose, selectCancel: props.onCancelModal.bind(this, 'combinePartsChooseVisible'), }, }, formRoute: '/indexPage/commonList', slaveConfig: combinePartsConfig, slaveColumn: combinePartsColumn, slaveData: props.combinePartsData, slaveSelectedRowKeys: props.combinePartsSelectedRowKeys, selectedRowKeys: props.combinePartsSelectedRowKeys, pageLoading: false, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString(), realizeHeight: props.realizeHeight, /* 拖动偏移高度 */ }; let productProcessInfoType = {}; let productProcessInfoConfig = {}; let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) { const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey; const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey); if (iIndex > -1) { productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex]; processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult; } productProcessInfoType = { app: { ...props.app, currentPane: { name: 'productProcessInfo', config: productProcessInfoConfig, conditonValues: props.getSqlCondition(productProcessInfoConfig), title: props.productProcessInfoChooseData.sMenuName, route: props.productProcessInfoChooseData.sName, formId: props.productProcessInfoChooseData.sId, key: sModelsId + props.productProcessInfoChooseData.sId, sModelsType: props.productProcessInfoChooseData.sModelType, select: props.onSelect, selectCancel: props.onSelectCancel, }, }, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString(), }; } /* 工序表选择颜色 */ let chooseColorsConfig = {}; let searchColorsType = {}; if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) { const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors'); if (iIndex > -1) { chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex]; } searchColorsType = { app: { ...props.app, currentPane: { name: 'sisColor', config: chooseColorsConfig, conditonValues: props.getSqlCondition(chooseColorsConfig), title: '选择颜色', route: '/indexPage/commonList', formRoute: '/indexPage/commonList', formId: chooseColorsConfig.sActiveId, key: sModelsId + chooseColorsConfig.sId, sModelsType: 'search/sisColor', select: props.onSelectSisColor, selectCancel: props.onSelectCancel, bEdit: props.enabled, }, }, enabled: props.enabled, sisColorSelectedData: props.sisColorSelectedData, slaveSelectedRowKeys: props.sisColorSelectedRowKeys, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString(), }; searchColorsType.app = { ...searchColorsType.app, ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {}, }; } /* 新方式的工艺参数 */ const sParamProps = { ...commonBusiness.getTableTypes('sParam', props), tableProps: { rowKey: 'sId', // pagination, onChange: props.onTitleChange, sModelsType, AutoTableHeight: 350, }, bRowClick: true, }; /* 带拖动信息的工艺参数 */ // const sCommonParamProps = { // ...props, // sParamType :'sWorkOrder', /* 参数类型 */ // slaveData: props.processSelectedData, // }; const tabChange = (e) => { props.onTabChange(e); }; const tabChange2 = (e) => { props.onTabChange2(e); }; const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0]; const productInfo = commonFunc.showMessage(app.commonConst, 'productInfo');/* 产品信息 */ const materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */ const productMaterialsInfo = commonFunc.showMessage(app.commonConst, 'productMaterialsInfo');/* 成品材料 */ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */ const productProcessInfo = commonFunc.showMessage(app.commonConst, 'productProcessInfo');/* 成品工序 */ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */ const dailyInfo = commonFunc.showMessage(app.commonConst, 'dailyInfo');/* 日志信息 */ const setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */ const setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */ const setProductCombinationTitle = commonFunc.showMessage(app.commonConst, 'setProductCombination');/* 选择合拼产品标题 */ const setProductProcessTitle = commonFunc.showMessage(app.commonConst, 'setProductProcess');/* 选择成品工序标题 */ const setProductMaterialsTitle = commonFunc.showMessage(app.commonConst, 'setProductMaterials');/* 选择成品材料标题 */ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 */ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底 */ let sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */ if(commonUtils.isNotEmptyObject(props) && props.sParamModalType) { if(props.sParamModalType === 'sQuo') { console.log('选择工艺参数标题', props.sParamModalType) sProcessParams = commonFunc.showMessage(app.commonConst, 'sQuoParams');/* 选择报价参数标题 */ if(commonUtils.isEmpty(sProcessParams)) { sProcessParams = '报价参数标准'; } } } // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateAdd = {props.enabled ? setAdd.img : setAdd.disableimg} ; // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateAddChild = {props.enabled ? setAddChild.img : setAddChild.disableimg }; // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateCopy = {props.enabled ? setCopy.img : setCopy.disableimg}; // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateUpdate = {props.enabled ? setCopyAll.img : setCopyAll.disableimg }; // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateDel = {props.enabled ? setDelete.img : setDelete.disableimg}; let bControlShow = true; /* 控制表 */ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) { const iIndexControl = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbControl'); if (iIndexControl > -1) { bControlShow = props.masterConfig.gdsconfigformslave[iIndexControl].bVisible; } } let bMaterialShow = true; /* 材料表 */ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) { const iIndexMaterial = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbMaterial'); if (iIndexMaterial > -1) { bMaterialShow = props.masterConfig.gdsconfigformslave[iIndexMaterial].bVisible; } } let bProcessShow = true; /* 工序表 */ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) { const iIndexProcess = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbProcess'); if (iIndexProcess > -1) { bProcessShow = props.masterConfig.gdsconfigformslave[iIndexProcess].bVisible; } } const bFinalMaterialsTabShow = commonUtils.isEmptyObject(finishedMaterialsConfig) ? false :(bSplitMaterials ? true : false); /* 没有成品材料配置 则材料Tab不展示 */ const bFinalProcessTabShow = commonUtils.isEmptyObject(finishedProcessConfig) ? false : (bSplitProcess ? true : false); /* 没有成品工序配置 则工序Tab不展示 */ const panelExtra1 = (type) => { let str = '' if (type === 'material') { str = (
tabChange(e.target.value)}> {materialsInfo} {bSplitMaterials ? {productMaterialsInfo} : ''}
) } else if (type === 'process') { str = (
tabChange2(e.target.value)}> {processInfo} {bSplitProcess ? {productProcessInfo} : ''}
) } else if (type === 'daily') { str = (
{dailyInfo}
) } return str; } const panelExtra = (type) => { let str = ''; /* 根据materials找到其组所有配置头 */ let radioConfigArr = []; if(commonUtils.isNotEmptyArr(formData)) { // radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) ); radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) && item.bGrdVisible ); // console.log('radioConfigArr:', radioConfigArr); } if (type === 'material') { str = (
tabChange(e.target.value)}> {/*{materialsInfo}*/} {/*{bSplitMaterials ? {productMaterialsInfo} : ''}*/} {/*{dhlInfo}*/} {/*{materialsFlInfo}*/} { radioConfigArr.map((child, index) => { const radioTitle = child.showName; const radioValue = index + 2 + 10; // console.log('radioValue', radioTitle, radioValue); return( {radioTitle} ) }) }
) } else if (type === 'process') { str = (
tabChange2(e.target.value)}> {processInfo} {bSplitProcess ? {productProcessInfo} : ''}
) }else if (type === 'daily') { str = (
tabChange2(e.target.value)}> {dailyInfo}
) } return str; } const activeKeyChange = (e) => { props.onActiveKey(e); }; const okButtonStyle ={ style:{ display:"none", backgroundColor:"red" } } const cancelButtonStyle = { htmlType:"退出", style: { width: 70, height: 50, } } const deleteAll = commonFunc.showMessage(props.app.commonConst, 'deleteAll') || '删除' ; const autoHeight = `calc( 100vh - 92px )`; const renderByLayout = () => { let res = ''; if (isLayout) { res = (
{bFinalMaterialsTabShow ? :''} {bFinalProcessTabShow? :''} {props.currentTab === 4 && bMaterialShow ? : '' } {finishedMaterialsColumn && props.currentTab === 2 ? : '' } {props.currentTab === 5 && bProcessShow ? : '' } {finishedProcessColumn && props.currentTab === 3? : '' } {dailyConfigGrdVisible ? {dailyInfo} : '' }
); } else if (isLayout2) { res = ( )} showArrow={false} extra={materialsInfo} key="1" > { bSplitMaterials ? )} showArrow={false} extra={productMaterialsInfo} key="3" > : '' } )} showArrow={false} extra={processInfo} key="2" > { bProcessShow ? )} showArrow={false} extra={productProcessInfo} key="4" > : '' } )} showArrow={false} extra={dailyInfo} key="5" > ) } else { res = ( )} showArrow={false} extra={panelExtra('process')} key="2" > { props.currentTab2 === 1 && commonUtils.isNotEmptyObject(processShowLeft) ?
{commonUtils.isNotEmptyObject(processShowTitle) ? {processShowTitle} : '' } { [''].map(() => { const commonViewDragableProps = { ...props, hideTabsNav: true, processTitleWidth, comparedTableId: props.processTableId, sParamData: [ { sParamType: 'sWorkOrder', sParamName: '工单参数', } ], tableName: 'process', } return ; }) } {/* */}
: } { props.currentTab2 === 3 && bSplitProcess && }
)} showArrow={false} extra={panelExtra('material')} key="1" > {/*{ props.currentTab === 11 && }*/} { props.materialsInfoList?.map((item, index) => { let num = 12 + index; const materialsOtherPropsType = materialsTablePropsList[`materialsTable${index}Props`]; let sWidth = '100%'; let sRightWidth = '100%'; /* 全部材料 是否可排序 */ let bMaterialsSort = false; bMaterialsSort = commonUtils.isNotEmptyObject(materialsOtherPropsType) && commonUtils.isNotEmptyObject(materialsOtherPropsType.config) && commonUtils.isNotEmptyArr(materialsOtherPropsType.config.gdsconfigformslave) && commonUtils.isNotEmptyArr(materialsOtherPropsType.config.gdsconfigformslave.filter(item => item.sControlName === 'handleSort' && item.bVisible)) ? true : false ; /* 找到子级 左右列 */ let materialsChildTableProps ={}; let materialsChildTableTitle = '子表记录'; if(commonUtils.isNotEmptyArr(materialsChildInfoList)) { const iIndex = materialsChildInfoList.findIndex(child => child.includes(item)); if(iIndex > -1) { materialsChildTableProps = materialsChildTablePropsList[`${item}ChildTableProps`]; sWidth = '58.5%'; sRightWidth = '42%'; materialsChildTableTitle = commonUtils.isNotEmptyObject(materialsChildTableProps) && commonUtils.isNotEmptyObject(materialsChildTableProps.config) ? materialsChildTableProps.config.showName : ''; } else { sWidth = '100%'; } }else { sWidth = '100%'; } if (index === 0 || index === 3) { materialsOtherPropsType.otherlimitDisabled = props.otherlimitDisabled; } return ( props.currentTab === num &&
{index === 0 ?
: ""}
{ commonUtils.isNotEmptyObject(materialsChildTableProps)?
{materialsChildTableTitle}
: '' }
) }) } {/*{ props.currentTab === 13 &&*/} {/*
*/} {/*
*/} {/*
*/} {/*
*/} {/*
*/} {/*
}*/} {/*{ props.currentTab === 14 && bSplitMaterials && }*/}
)} showArrow={false} extra={panelExtra('daily')} key="3" >
) } return res; } const handlePartsInfoSubmit = () => { props.onCancelModal("partsInfoModalVisible"); props.handlePartsInfoConfig(false); props.onSubmit(true); } const handleFooter = () => { if (props.enabled || props.masterData?.partsInfoLock) { return []; } return [, ]; }; return (
{ renderByLayout() }
{ colorConfigGrdVisible ?
{colorInfo}
: '' }
{ (pane.notCurrentPane ? false : props.processChooseVisible) ? {/**/} : '' } { /* 选择成品工序Modal */ (pane.notCurrentPane ? false : props.productProcessChooseVisible) ? : '' } { /* 选择成品材料Modal */ (pane.notCurrentPane ? false : props.productMaterialsChooseVisible) ? : '' } { (pane.notCurrentPane ? false : props.materialsChooseVisible) ? : '' } { productCombinationVisible ?
: '' } { combinePartsChooseVisible ? : '' } { sisColorChooseVisible ? : '' } { props.productProcessInfoChooseVisible ? : '' } { (pane.notCurrentPane ? false : props.fastOrderModalVisible) ? 确认下单} onCancel={props.onCancelFastOrderModal} > : '' } { props.workFlowVisible ? : '' } { props.contextMenuModalVisible ? : '' } {/*{commonUtils.isEmptyArr(treeProps.treeData) || !commonUtils.isEmpty(props.routing) || true ? '' :*/} {/**/} {/* /!* eslint-disable-next-line jsx-a11y/anchor-is-valid *!/*/} {/* eject*/} {/**/} {/*}*/} {/*{commonUtils.isEmptyArr(treeProps.treeData) || !commonUtils.isEmpty(props.routing) ? '' :*/} {/*
*/} {/* */} {/*
*/} {/* /!* eslint-disable-next-line jsx-a11y/anchor-is-valid *!/*/} {/* close*/} {/*
*/} {/*
*/} {/*}*/} { props.sProcessParamsModalVisible ?
{ commonUtils.isNotEmptyArr(props.sProcessParamsSelects) ? props.sProcessParamsSelects.map((child) => { const sMemo = child.sName.toLowerCase().endsWith('memo'); let enabledNew = !child.bReadonly; if (child.iTag === 1) { enabledNew = false; } else if (child.iTag === 3) { enabledNew = true; } // const slaveSelectOneDataIndex = slaveData.findIndex(item => item.sId === selectedRowKeys[selectedRowKeys.length - 1]); // 多选选择最后一个 const showTypeProps = { name: 'process', form: props.form, record: props.processRecord, sId: props.processRecord.sId, getSqlDropDownData: props.getSqlDropDownData, getSqlCondition: props.getSqlCondition, handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord, getFloatNum: props.getFloatNum, onChange: props.onDataChange, showConfig: child, formItemLayout: {}, textArea: sMemo, enabled: enabledNew, dataValue: props.processRecord[child.sName], bTable: true, formRoute: props.formRoute, }; return (
{`${child.showName} : `}
); }) : '' }
: '' } { props.sParamsModalVisible ?
: '' } { props.commonParamVisible ? 确定 } > { [''].map(() => { const commonViewDragableProps = { ...props, hideTabsNav: false, sParamData: [ { sParamType: 'sProcess', sParamName: '工序参数', }, { sParamType: 'sReport', sParamName: '上报参数' }, { sParamType: 'sWorkOrder', sParamName: '工单参数' }, { sParamType: 'sNorm', sParamName: '标准书参数' }, { sParamType: 'sTest', sParamName: '测试参数' } ], tableName: 'process', } return ; }) } : '' } { props.partsInfoModalVisible ? { props.onCancelModal("partsInfoModalVisible"); props.handlePartsInfoConfig(false); }} footer={[ ...handleFooter() ]} > : '' }
{ true ? '' : eject } { true ? '' :
{/* eslint-disable-next-line jsx-a11y/anchor-is-valid */} close
}
); }); export default CommonBase(CommonSales(ProcessCardPackTableTree));