diff --git a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js index ff9e840..3c0195a 100644 --- a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js +++ b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js @@ -1065,10 +1065,10 @@ const ProcessCardPackTableTreeNewEvent = props => { // 弹窗选择确定 const handleSelect = async (name, selectConfig, selectData) => { const bTmpInfoBySql = selectConfig?.sControlName?.toLowerCase().includes("tmpinfobysql"); - if (name === "productProcessInfo" && !bTmpInfoBySql) { - message.info("productProcessInfo已废弃,请改成TmpInfoBySql!"); - return; - } + // if (name === "productProcessInfo" && !bTmpInfoBySql) { + // message.info("productProcessInfo已废弃,请改成TmpInfoBySql!"); + // return; + // } if (name === "materials") { name = "materials0"; } @@ -1409,8 +1409,39 @@ const ProcessCardPackTableTreeNewEvent = props => { 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 = props.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.packData)) { + if (false && 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); // 取默认值 @@ -1627,6 +1658,375 @@ const ProcessCardPackTableTreeNewEvent = props => { } else { props.getServiceError(dataReturn.msg); } + } else if (name === 'productProcessInfo') { /* 复制从产品 */ + if (commonUtils.isNotEmptyArr(selectData)) { + const controlData = []; + const materialsData = []; + const processData = []; + const colorData = []; + const addState = {}; + const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld; + const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld; + const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld; + const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld; + controlDataOld.forEach((item) => { + item.handleType = 'del'; + controlDelData.push(item); + }); + addState.controlDelData = controlDelData; + materialsDataOld.forEach((item) => { + item.handleType = 'del'; + materialsDelData.push(item); + }); + addState.materialsDelData = materialsDelData; + 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.materialsConfig = materialsConfig; + config.processConfig = processConfig; + config.colorConfig = colorConfig; + + let iSlaveIndex = -1; + if (!commonUtils.isEmpty(slaveSelectedRowKeys)) { + iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString()); + } + + const condition = { sCardId: selectData[0].sId }; + const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + console.log('ddddataReturnd', dataReturn); + 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].sOriginalId = commonUtils.isNotEmptyObject(item.sSlaveId) ? item.sSlaveId : item.sId; /* 原始sId */ + } + 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; + 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 = props.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 (false && 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 */ + /* 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(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); + }); + } + }); + } + 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); /* 加载树形结构数据 */ + this.props.onSaveState({ + [`${name}ChooseVisible`]: false, + processData, + materialsData, + controlData, + ...treeState, + colorData, + masterData, + packData, + controlSelectedRowKeys: [], + materialsSelectedRowKeys: [], + processSelectedRowKeys: [], + ...addState, + }); + } else { + this.props.getServiceError(dataReturn.msg); + } + } } else { const addState = {}; const { controlData } = props;