/* eslint-disable */ /* eslint-disable prefer-destructuring,no-await-in-loop,radix,,no-loop-func */ /** * Created by mar105 on 2019-01-08. */ import React, { Component } from 'react'; import { Toast } from 'antd-mobile-v2'; import * as commonUtils from '../../utils/utils'; import * as commonFunc from '../../components/Common/commonFunc'; import * as commonBusiness from '../../components/Common/commonBusiness'; import commonConfig from '../../utils/config'; import * as commonServices from '../../services/services'; import BarCodeUtil from './BarCodeUtil'; export default (ChildComponent) => { return class extends Component { constructor(props) { super(props); this.state = {}; } async componentWillReceiveProps(nextProps) { const { formData, currentId, masterConfig: masterConfigOld, sModelsId, } = nextProps; if (commonUtils.isEmptyObject(masterConfigOld) && formData.length > 0) { const sId = currentId || nextProps.masterData?.sId || ''; /* 数据Id */ const masterConfig = formData.filter(item => !item.bGrd)[0]; const slaveConfig = formData.filter(item => item.bGrd)[0]; /* 判断是否有汇总表 */ const slaveSumConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sGrd && item.sGrd.includes('sumTable') )) ? formData.filter(item => item.bGrd && item.sGrd && item.sGrd.includes('sumTable') )[0] : {}; let addStateMaster = {}; let userEntrustData = []; /* 委托人 */ let addState = {}; let addStateSum = {}; if (sId === '') { const config = {}; config.masterConfig = masterConfig; config.slaveConfig = slaveConfig; config.slaveSumConfig = slaveSumConfig; addState = await this.handleAdd(config, nextProps.copyTo, true); } else { addStateMaster = await this.props.handleGetDataOne({ name: 'master', configData: masterConfig, condition: { sId, pageSize: '', pageNum: '' }, isWait: true, }); if (location.pathname === '/indexMobile/examine') { const masterDataNew = addStateMaster.masterData; const sParamsArr = commonUtils.isNotEmptyObject(masterDataNew) && commonUtils.isNotEmptyObject(masterDataNew.sTableParams) ? JSON.parse(masterDataNew.sTableParams) : ''; const sParamsValueArr = commonUtils.isNotEmptyObject(masterDataNew) && commonUtils.isNotEmptyObject(masterDataNew.sTableParamsValue) ? JSON.parse(masterDataNew.sTableParamsValue) : ''; /* 塞入配置 */ if (commonUtils.isNotEmptyObject(sParamsArr) && commonUtils.isNotEmptyObject(masterDataNew) && commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave)) { /* 移除最后一位元素 */ for (const key of Object.keys(sParamsArr)) { const newConfig = { iOrder: 300, sId: commonUtils.createSid(), bVisible: true, sParamsArr: key, showName: sParamsArr[key], sName: key, }; const len = masterConfig.gdsconfigformslave.length; masterConfig.gdsconfigformslave.splice(len - 1, 0, newConfig); if (commonUtils.isNotEmptyArr(sParamsValueArr)) { masterDataNew[key] = sParamsValueArr[key]; } } } /* 拉委托人员的下拉数据源 */ const iUserIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName && item.sControlName.includes('BtnEntrust')); if (iUserIndex > -1) { userEntrustData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iUserIndex], masterDataNew); } } addState = await this.props.handleGetDataSet({ name: 'slave', configData: slaveConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); if(commonUtils.isNotEmptyObject(slaveSumConfig) && slaveSumConfig.sGrd && slaveSumConfig.sGrd.includes('sumTableSelect')) { addStateSum = await this.props.handleGetDataSet({ name: 'slaveSum', configData: slaveSumConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, }); } if (commonUtils.isNotEmptyArr(addState.slaveData)) { if (commonUtils.isNotEmptyObject(addState.slaveData[0].sReportParam)) { addState.slaveData[0] = { ...addState.slaveData[0], ...commonUtils.convertStrToObj(addState.slaveData[0].sReportParam) }; // eslint-disable-next-line no-plusplus for (let i = 1; i < 7; i++) { const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); if (iIndex > -1 && !commonUtils.isEmpty(addState.slaveData[0][`sParam${i.toString()}`])) { slaveConfig.gdsconfigformslave[iIndex].showName = addState.slaveData[0][`sParam${i.toString()}`]; slaveConfig.gdsconfigformslave[iIndex].bVisible = !addState.slaveData[0][`sParam${i.toString()}`].includes('参数值'); } else if (iIndex > -1) { slaveConfig.gdsconfigformslave[iIndex].bVisible = false; } } } else { // eslint-disable-next-line no-plusplus for (let i = 1; i < 7; i++) { const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); if (iIndex > -1) { slaveConfig.gdsconfigformslave[iIndex].bVisible = false; } } } } } this.props.onSaveState({ masterConfig, slaveConfig, sId, pageLoading: false, ...addState, ...addStateMaster, userEntrustData, slaveSumConfig, ...addStateSum, }); } } shouldComponentUpdate(nextProps) { const { masterConfig } = nextProps; return commonUtils.isNotEmptyObject(masterConfig); } /** 点击新增按钮 */ handleAdd = async (config, copyTo, isWait) => { /* 外置处理业务 */ const { sModelsId, token, sModelsType, formRoute, peopleInfosId, peopleInfoData, app, } = this.props; let masterConfig = commonUtils.isEmptyObject(config) ? {} : config.masterConfig; if (!isWait) { masterConfig = this.props.masterConfig; } let configNew = {}; if (commonUtils.isEmptyObject(config)) { const { slaveConfig } = this.props; configNew.slaveConfig = slaveConfig; } else { configNew = config; } let masterData; if (commonUtils.isNotEmptyObject(masterConfig)) { masterData = commonFunc.getDefaultData(masterConfig); } masterData.handleType = 'add'; masterData.sId = commonUtils.createSid(); masterData.sFormId = sModelsId; masterData.maxBillNo = 'sBillNo'; if (formRoute === '/contactsInfo') { if (commonUtils.isNotEmptyArr(peopleInfoData) && peopleInfosId !== '') { const peopleInfo = peopleInfoData.filter(item => item.sId === peopleInfosId); masterData = { ...masterData, ...peopleInfo[0] }; } } let slaveData = []; const slaveSumData = []; const employeeData = []; // const slaveTotal = []; // const tableDataTotal = {}; let slaveAssignField = ''; if (commonUtils.isNotEmptyObject(copyTo)) { const copyToMasterConfig = copyTo.config.filter(item => item.sControlName === copyTo.name); const masterAssignField = commonUtils.isNotEmptyArr(copyToMasterConfig) ? copyToMasterConfig[0].sAssignField : ''; const newCopyTo = {}; newCopyTo.master = copyTo.masterData; newCopyTo.slave = commonUtils.isEmpty(copyTo.slaveData) ? [] : copyTo.slaveData[0]; masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterAssignField, copyTo.masterData, newCopyTo) }; const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase()); slaveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : ''; if (sModelsType === 'production/productionReport') { copyTo.slaveData = commonUtils.isEmptyArr(copyTo.slaveData) ? [] : [copyTo.slaveData[0]]; } if (slaveAssignField !== '') { for (const slaveItem of copyTo.slaveData) { const newCopyTo = {}; newCopyTo.master = copyTo.masterData; newCopyTo.slave = slaveItem; let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo); // 取默认值 slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段 slaveRow.handleType = 'add'; slaveRow.sId = commonUtils.createSid(); slaveRow.sParentId = masterData.sId; if (sModelsType === 'production/productionReport') { if (!commonUtils.isEmpty(slaveRow.sWageId)) { slaveRow.dWageMoney = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow: slaveRow, sComputeId: slaveRow.sWageId, }); } if (!commonUtils.isEmpty(slaveRow.sConversionFormulaId)) { slaveRow.dConversionQty = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow: slaveRow, sComputeId: slaveRow.sConversionFormulaId, }); } if (commonUtils.isNotEmptyObject(slaveRow.sReportParam)) { slaveRow = { ...slaveRow, ...commonUtils.convertStrToObj(slaveRow.sReportParam) }; // eslint-disable-next-line no-plusplus for (let i = 1; i < 7; i++) { const iIndex = configNew.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); if (iIndex > -1 && !commonUtils.isEmpty(slaveRow[`sParam${i.toString()}`])) { configNew.slaveConfig.gdsconfigformslave[iIndex].showName = slaveRow[`sParam${i.toString()}`]; configNew.slaveConfig.gdsconfigformslave[iIndex].bVisible = !slaveRow[`sParam${i.toString()}`].includes('参数值'); } else if (iIndex > -1) { configNew.slaveConfig.gdsconfigformslave[iIndex].bVisible = false; } } } else { // eslint-disable-next-line no-plusplus for (let i = 1; i < 7; i++) { const iIndex = configNew.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); if (iIndex > -1) { configNew.slaveConfig.gdsconfigformslave[iIndex].bVisible = false; } } } const sMachineId = app.sMachineId; if (sMachineId) { const sSessionTeamId = localStorage.getItem(`${commonConfig.prefix}mobile_${sMachineId}`); if (sSessionTeamId) { slaveRow.sTeamId = sSessionTeamId; } } let returnData = JSON.parse(localStorage.getItem(`${commonConfig.prefix}employeeData`)); if (!commonUtils.isEmpty(slaveRow.sTeamId)) { if (commonUtils.isEmptyArr(returnData)) { const url = `${commonConfig.server_host}eleteamemployee/getEleteamemployee?sModelsId=${sModelsId}&sTeamId=${slaveRow.sTeamId}&sSlaveId=${slaveRow.sId}&sParentId=${slaveRow.sParentId}`; const dataReturn = (await commonServices.getService(token, url)).data; if (dataReturn.code === 1) { returnData = dataReturn.dataset.rows; } else { /* 失败 */ this.props.getServiceError(dataReturn); } } returnData.forEach((child) => { employeeData.push({ sId: commonUtils.createSid(), sParentId: masterData.sId, sSlaveId: slaveRow.sId, sEmployeeId: child.sEmployeeId, sEmployeeName: child.sEmployeeName, dProportion: child.dProportion !== 0 ? child.dProportion : commonUtils.convertFixNum(1 / returnData.length, 6), handleType: 'add', }); }); /* 班组变化时,算每个工作人员计件工资 */ const dWageMoneyTotal = slaveRow.dWageMoney; if (commonUtils.isNotEmptyNumber(dWageMoneyTotal)) { let dProportionTotal = 0; employeeData.forEach((item) => { if (commonUtils.isNotEmptyNumber(item.dProportion) && item.dProportion !== 0) { item.dProportion = parseFloat(item.dProportion); dProportionTotal += commonUtils.convertFixNum(item.dProportion, 6); dProportionTotal = commonUtils.convertFixNum(dProportionTotal, 6); } }); employeeData.forEach((item) => { if (commonUtils.isNotEmptyNumber(item.dProportion)) { const index1 = employeeData.findIndex(item1 => item1.sId === item.sId); employeeData[index1] = { ...item, dWageMoney: commonUtils.convertFixNum((item.dProportion / dProportionTotal) * dWageMoneyTotal, 6), handleType: commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType, }; } }); } const dWageMoney = commonUtils.isNotEmptyNumber(slaveRow.dWageMoney) ? commonUtils.convertFixNum(slaveRow.dWageMoney, 6) : 0; const dTimeMoney = commonUtils.isNotEmptyNumber(slaveRow.dTimeMoney) ? commonUtils.convertFixNum(slaveRow.dTimeMoney, 6) : 0; const dLossMoney = commonUtils.isNotEmptyNumber(slaveRow.dLossMoney) ? commonUtils.convertFixNum(slaveRow.dLossMoney, 6) : 0; slaveRow.dAllMoney = commonUtils.convertFixNum((dWageMoney + dTimeMoney) - dLossMoney, 6); } } slaveData.push(slaveRow); } } if (!commonUtils.isEmpty(masterData.sTestStandardId)) { const dataUrl = `${commonConfig.server_host}eleteamemployee/getObtainInspectionStandards?sModelsId=${sModelsId}&sParentId=${masterData.sTestStandardId}`; const dataReturn = (await commonServices.getService(this.props.app.token, dataUrl)).data; const slaveDelData = []; if (dataReturn.code === 1) { const returnSlaveData = dataReturn.dataset.rows; slaveData.forEach((item) => { item.handleType = 'del'; slaveDelData.push(item); }); slaveData = []; const newCopyTo = {}; newCopyTo.master = masterData; const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'sTestStandardName'); const slaveConfig = commonUtils.isEmptyObject(config) ? {} : config.slaveConfig; if (!isWait) { masterConfig = this.props.slaveConfig; } const iSqlIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sActValue'); returnSlaveData.forEach((item, iIndex) => { let tableDataRow = commonFunc.getDefaultData(config.slaveConfig, {}); tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRow.key = tableDataRow.sId; tableDataRow.iOrder = iIndex; if (iConfigIndex > -1) { tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(masterConfig.gdsconfigformslave[iConfigIndex].sAssignField, item, newCopyTo) }; // 取赋值字段 // tableDataRow.sTestReference = '15S|20S'; const sTestReference = tableDataRow.sTestReference; const sParamObj = {}; if (commonUtils.isNotEmptyObject(sTestReference)) { /* 若数据有值 渲染下拉框 */ if (sTestReference.indexOf('|') >= 0) { sTestReference.split('|').forEach((itemField) => { sParamObj[itemField] = itemField; }); tableDataRow.sParamDropDownsActValue = sParamObj; if (iSqlIndex > -1) { slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = 'sql'; } else { slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = ''; } } } else { /* 若数据没有值 则渲染文本框 */ tableDataRow.isText = true; } } slaveData.push(tableDataRow); }); } } } /* 剔除订单到收款单新增空行(2022.7.8朱总要求)) */ if (slaveData.length === 0 && commonUtils.isNotEmptyObject(slaveAssignField)) { const allTableData = {}; allTableData.master = masterData; allTableData.slave = slaveData; let tableDataRowAdd = {}; if (commonUtils.isNotEmptyObject(configNew.slaveConfig)) { tableDataRowAdd = commonFunc.getDefaultData(configNew.slaveConfig, allTableData); tableDataRowAdd.handleType = 'add'; tableDataRowAdd.sId = commonUtils.createSid(); tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRowAdd.key = tableDataRowAdd.sId; tableDataRowAdd.bDefault = false; tableDataRowAdd.iOrder = 0; slaveData.push(tableDataRowAdd); } } const state = { masterData, slaveData, slaveSumData, employeeData, slaveTotal: [], slaveSelectedRowKeys: [], searchUpDownData: {}, enabled: true, }; state.sUseInfo = ''; if (isWait) { return state; } else { this.props.onSaveState(state); return true; } }; /** toolbar保存 */ handleSaveData = async (params) => { const { token, sModelsId, currentId, masterData, masterConfig, slaveConfig, employeeConfig, billnosetting, app, sModelsType, copyTo, dispatch, } = this.props; const { userinfo } = app; const onSendSocketMessage = this.props.handleSendSocketMessage; const BtnSave = commonFunc.showMessage(app.commonConst, 'BtnSave');/* 保存 */ params.optName = BtnSave; const returnData = await commonBusiness.saveData({ token, value: params, sModelsId }); if (commonUtils.isNotEmptyObject(returnData)) { 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); } onSendSocketMessage('release', 'noAction', currentId, userinfo.sId, null, null); this.props.onSaveState({ enabled: false, currentId: masterData.sId, }); let btnSaveConfigArr = []; const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName && item.sControlName.includes('BtnExamine')); if (iIndex > -1) { btnSaveConfigArr = masterConfig.gdsconfigformslave[iIndex]; } console.log('btnSaveConfigArr', btnSaveConfigArr); const interfaceArr = commonUtils.isNotEmptyObject(btnSaveConfigArr) ? btnSaveConfigArr.interface :[]; let bSucess = true; if (billnosetting.bAutoCheck) { /* 根据接口返回是之前调用还是之后调用 */ if (false && commonUtils.isNotEmptyArr(interfaceArr)) { const beforeInterfaceArr = interfaceArr.filter(item => item.sInterfaceCallMethod === '1'); const afterInterfaceArr = interfaceArr.filter(item => item.sInterfaceCallMethod === '2'); if(commonUtils.isNotEmptyArr(beforeInterfaceArr)) { /* 之前调用 */ let flag = 0; const asyncFunc = async () => { for (let i = 0; i < beforeInterfaceArr.length; i ++) { const data = await this.handleInterfaceCall(beforeInterfaceArr[i]); if (!data) { flag += 1; } } } if (flag == 0) { await this.handleAudit(1); } else { this.props.onSaveState({ loading: false, }); } } if(commonUtils.isNotEmptyArr(afterInterfaceArr)) { /* 之后调用 */ const result = await this.handleAudit(1); if(result) { /* 只有审核成功 才能调用接口 -5代表审核失败 */ const asyncFunc = async () => { for (let i = 0; i < afterInterfaceArr.length; i++) { await this.handleInterfaceCall(afterInterfaceArr[i]); } } await asyncFunc(); } } } else { await this.handleAudit(1); } } else { await this.handleGetData(masterConfig, slaveConfig); if (sModelsType === 'production/productionReport' && !commonUtils.isEmpty(employeeConfig)) { await this.handleGetMemoData(employeeConfig); } if (this.props.refresh !== undefined) { this.props.refresh(); } /* 通过onRouterMobile路由跳转 */ if (sModelsType === 'production/productionReport' && commonUtils.isNotEmptyObject(copyTo) && commonUtils.isNotEmptyObject(copyTo.listModelsId) && copyTo.listUrl && copyTo.listUrl.includes('commobileList')) { const sModelsId = copyTo.listModelsId; const sModelsType = copyTo.listModelsType; const url = '/indexMobile/commobileList'; const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sModelsId}?sModelsId=${sModelsId}`; dispatch({ type: 'content/onRouterMobile', payload: { url, /* 接口地址 */ urlKey: sNameUrl, sModelsId, sModelsType, copyTo, listFilterCondition: copyTo.listFilterCondition, }, }); } else { window.history.back(-1); } } this.props.onSaveState({ loading: false, }); return true; } else { this.props.onSaveState({ loading: false, }); return false; } }; /** toolbar校验保存 */ handleValidateSave = async () => { const { masterConfig, masterData, slaveConfig, slaveData, slaveDelData, sModelsType, employeeConfig, employeeData, employeeDelData, token, sModelsId, app, slaveSumConfig, slaveSumData, slaveSumDelData, } = this.props; if (!commonBusiness.validateMaster(masterConfig, masterData, this.props) || !commonBusiness.validateTable(slaveConfig, slaveData, this.props)) { this.props.onSaveState({ loading: false, }); return; } if (slaveConfig && slaveConfig.bNotCanEmpty && commonUtils.isEmptyArr(slaveData)) { Toast.info(commonFunc.showMessage(app.commonConst, 'slaveNotNull')); // 从表不能为空! this.props.onSaveState({ loading: false, }); return; } const data = []; data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData])); if (sModelsType === 'production/productionReport') { for (const tableDataRow of slaveData) { const sWageId = tableDataRow.sWageId; tableDataRow.dWageMoney = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId: sWageId, }); const dWageMoneyTotal = tableDataRow.dWageMoney; let dProportionTotal = 0; const employeeSlaveData = employeeData.filter(item => item.sSlaveId === tableDataRow.sId); employeeSlaveData.forEach((item) => { if (commonUtils.isNotEmptyNumber(item.dProportion) && item.dProportion !== 0) { dProportionTotal += commonUtils.convertFixNum(item.dProportion, 6); } }); employeeSlaveData.forEach((item) => { if (commonUtils.isNotEmptyNumber(item.dProportion)) { const index1 = employeeData.findIndex(item1 => item1.sId === item.sId); employeeData[index1] = { ...item, dWageMoney: commonUtils.convertFixNum((item.dProportion / dProportionTotal) * commonUtils.isNull(tableDataRow.dWageMoney, 0), 6), dTimeMoney: commonUtils.convertFixNum((item.dProportion / dProportionTotal) * commonUtils.isNull(tableDataRow.dTimeMoney, 0), 6), dLossMoney: commonUtils.convertFixNum((item.dProportion / dProportionTotal) * commonUtils.isNull(tableDataRow.dLossMoney, 0), 6), dOtherMoney: commonUtils.convertFixNum((item.dProportion / dProportionTotal) * commonUtils.isNull(tableDataRow.dOtherMoney, 0), 6), dJobMoney: commonUtils.convertFixNum((item.dProportion / dProportionTotal) * commonUtils.isNull(tableDataRow.dJobMoney, 0), 6), handleType: commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType, }; } }); /* 选择计件方案后 算总金额 */ const dWageMoney = commonUtils.isNotEmptyNumber(dWageMoneyTotal) ? commonUtils.convertFixNum(dWageMoneyTotal, 6) : 0; const dTimeMoney = commonUtils.isNotEmptyNumber(tableDataRow.dTimeMoney) ? commonUtils.convertFixNum(tableDataRow.dTimeMoney, 6) : 0; const dLossMoney = commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney) ? commonUtils.convertFixNum(tableDataRow.dLossMoney, 6) : 0; tableDataRow.dAllMoney = commonUtils.convertFixNum((dWageMoney + dTimeMoney) - dLossMoney, 6); tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; } } data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData)); if (sModelsType === 'production/productionReport' && !commonUtils.isEmpty(employeeConfig)) { data.push(commonBusiness.mergeData('employee', employeeConfig.sTbName, employeeData, employeeDelData)); localStorage.setItem(`${commonConfig.prefix}sTeamId`, slaveData[0].sTeamId); localStorage.setItem(`${commonConfig.prefix}employeeData`, JSON.stringify(employeeData)); /* 手机端报产选了机台后,进去报产,选了班组,确认之后,在返回去报第二个的时候,默认班组 */ if (commonUtils.isNotEmptyObject(slaveData[0])) { const sMachineId = slaveData[0].sMachineId; const sTeamId = slaveData[0].sTeamId; if (sMachineId && sTeamId) { localStorage.setItem(`${commonConfig.prefix}mobile_${sMachineId}`, sTeamId); } } } if(commonUtils.isNotEmptyObject(slaveSumConfig) && slaveSumConfig.sGrd && slaveSumConfig.sGrd.includes('sumTableSelect')) { data.push(commonBusiness.mergeData('slaveSum', slaveSumConfig.sTbName, slaveSumData, slaveSumDelData)); } this.handleSaveData({ data, sClientType: '1', sSysLogSrcId: masterData.sId }); }; /** toolbar审核(消审) */ handleAudit = async (flag) => { /* 待用数据声明 */ const { masterData, gdsformconst } = this.props; let bResult = true; /* 作废订单不能审核 */ if (masterData.bInvalid) { Toast.info(gdsformconst.filter(item => (item.sName === 'sToVoid'))[0].showName); return ''; } /** 数据审核 */ bResult = await this.dataAudit(flag); return bResult; }; /** 数据审核 */ dataAudit = async (flag, tmpCheck, isWait) => { /* 待用数据声明 */ const { sModelsId, masterData, app, masterConfig, slaveConfig, token, sModelsType, slaveData, employeeConfig, copyTo, dispatch, } = this.props; const sSlaveIdArray = []; if (commonUtils.isNotEmptyArr(slaveData)) { slaveData.forEach((item) => { sSlaveIdArray.push(commonUtils.isNotEmptyObject(item.sId) ? item.sId : item.sSlaveId); }); } const slaveId = sSlaveIdArray.toString(); /* 数据参数 */ const value = { sClientType: '1', paramsMap: { iFlag: flag, iTmpCheck: commonUtils.isEmptyNumber(tmpCheck) ? 0 : tmpCheck, sFormGuid: sModelsId, sGuid: masterData.sId, sSlaveId: slaveId, sBillNo: commonUtils.isNotEmptyObject(masterData.sBillNo) ? masterData.sBillNo : '', }, }; /* 数据审核 */ const url = `${commonConfig.server_host}business/doExamine?sModelsId=${sModelsId}`; const returnData = (await commonServices.postValueService(app.token, value, url)).data; if (isWait) { return returnData; } else { /* 接收返回值 */ await this.handleGetData(masterConfig, slaveConfig); const check = commonFunc.showMessage(app.commonConst, 'BtnExamine');/* 审核 */ const BtnCancelExamine = commonFunc.showMessage(app.commonConst, 'BtnCancelExamine');/* 销审 */ if (sModelsType === 'production/productionReport' && !commonUtils.isEmpty(employeeConfig)) { await this.handleGetMemoData(employeeConfig); } if (this.props.refresh !== undefined) { this.props.refresh(); } if (returnData.code === 1) { /* 成功 */ this.props.onSaveState({ loading: false, }); if (flag === 1) { /* 审核 */ const { outData } = returnData.dataset.rows[0].dataSet; if (commonUtils.isNotEmptyStr(outData[0].sReturn)) { const sReturnArray = outData[0].sReturn.split('|'); if (outData[0].sReturn.split('-').length < 2) { // 正常业务提示,非审核模板 // if (this.props.app.currentPane.refresh !== undefined) { // this.props.app.currentPane.refresh(); // } Toast.fail(check + outData[0].sReturn); return; } const checkConditions = []; let checkPersonData = {}; sReturnArray.forEach((item) => { const checkCondition = item.split('-')[2]; checkConditions.push({ key: commonUtils.createSid(), condition: checkCondition, }); }); const sCheckModelId = sReturnArray[0].split('-')[1]; if (commonUtils.isNotEmptyStr(sCheckModelId)) { const urlCheck = `${commonConfig.server_host}checkModel/getUserListByModelId/${sCheckModelId}?sModelsId=${sModelsId}`; const dataReturn = (await commonServices.getService(token, urlCheck)).data; if (dataReturn.code === 1) { checkPersonData = dataReturn.dataset.rows; checkPersonData.forEach((item) => { item.key = commonUtils.createSid(); }); this.props.onSaveState({ checkConditions, checkPersonData, sCheckModelId, visible: true, }); } else { /* 失败 */ this.props.getServiceError({ msg: check + dataReturn }); return false; } } } else { Toast.success(check + returnData.msg); if (sModelsType === 'production/productionReport' && commonUtils.isNotEmptyObject(copyTo) && commonUtils.isNotEmptyObject(copyTo.listModelsId) && copyTo.listUrl && copyTo.listUrl.includes('commobileList')) { const sModelsId = copyTo.listModelsId; const sModelsType = copyTo.listModelsType; const url = '/indexMobile/commobileList'; const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sModelsId}?sModelsId=${sModelsId}`; dispatch({ type: 'content/onRouterMobile', payload: { url, /* 接口地址 */ urlKey: sNameUrl, sModelsId, sModelsType, copyTo, returnFilterCondition: copyTo.listFilterCondition, }, }); } else { window.history.back(-1); } } } else { /* 消审 */ const { outData } = returnData.dataset.rows[0].dataSet; if (commonUtils.isNotEmptyStr(outData[0].sReturn)) { Toast.fail(outData[0].sReturn); return false; } else { // if (this.props.app.currentPane.refresh !== undefined) { // this.props.app.currentPane.refresh(); // } Toast.success(BtnCancelExamine + returnData.msg); window.history.back(-1); } } } else { /* 失败 */ this.props.getServiceError(returnData); this.props.onSaveState({ loading: false, }); return false; } return true; } }; /* 调用后台配置的接口 */ handleThirdInterfaceCall = async (obj, showTip, key, sListSlaveId) => { let bResult = false; const { app, sModelsId, masterData, slaveSelectedRowKeys, } = this.props; const sInterfaceName = obj.sInterfaceName; const value = { sId: commonUtils.isNotEmptyObject(sListSlaveId) ? sListSlaveId : masterData.sId, userInfo: app.userinfo }; const url = `${commonConfig.interface_host}interfaceDefine/callthirdparty/${sInterfaceName}?sModelsId=${sModelsId}`; const returnData = (await commonServices.postValueService(app.token, value, url, app)).data; if (returnData.code === 1) { bResult = true; } else if (returnData.code === -8) { Modal.info({ title: '温馨提示:', width: 200, content: (
{this.handleGetMsg(returnData.msg)}
), okText: '确认', onOk() {}, }); bResult = true; } else { bResult = false; this.props.getServiceError(returnData); } return bResult; } handleForm = (form) => { this.form = form; }; /** 点击修改按钮操作 */ handleEdit = () => { const { slaveConfig, masterConfig, app, dispatch, currentId, } = this.props; const { userinfo } = app; let timValue = 0; if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) { this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); timValue = 3000; } setTimeout(() => { this.props.app.webSocket.onmessage = (msg) => { const rtmsg = JSON.parse(msg.data); if (rtmsg.action === 'showMsg') { Toast.info(rtmsg.msg); this.props.onSaveState({ loading: false }); } else if (rtmsg.action === 'loginOut') { if (location.pathname.indexOf('/indexOee') > -1) { dispatch({ type: 'app/throwErrorOee', payload: { code: -2, msg: rtmsg.msg } }); } else if (location.pathname.indexOf('/indexMobile') > -1) { dispatch({ type: 'app/throwErrorMobile', payload: { code: -2, msg: rtmsg.msg } }); } else { dispatch({ type: 'app/throwError', payload: { code: -2, msg: rtmsg.msg } }); } } else if (rtmsg.action === 'update') { this.handleGetData(masterConfig, slaveConfig); this.props.onSaveState({ enabled: true, loading: false }); } else if (this.props.app.webSocket.homeAction) { this.props.app.webSocket.homeAction(msg); } }; this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }, timValue); }; /** 获取主表、从表、审核表数据 */ handleGetData = async (masterConfig, slaveConfig) => { const { currentId } = this.props; /* 当前页签数据 */ const sId = currentId || this.props.masterData?.sId || ''; await this.props.handleGetDataOne({ name: 'master', configData: masterConfig, condition: { sId, pageSize: '', pageNum: '' } }); if (!commonUtils.isEmptyObject(slaveConfig)) { this.props.handleGetDataSet({ name: 'slave', configData: slaveConfig, condition: { sSqlCondition: { sParentId: sId } }, }); } }; handleGetMemoData = async (employeeConfig) => { const { currentId } = this.props; /* 当前页签数据 */ const sId = currentId || this.props.masterData?.sId || ''; /* 数据Id */ this.props.handleGetDataSet({ name: 'employee', configData: employeeConfig, condition: { sSqlCondition: { sParentId: sId } }, }); }; handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait, masterDataNew) => { // this.handleCustomerChange(name, changeValue); const { sModelsId, sModelsType: sModelsTypeOld, masterData: masterDataOld, slaveData, app, masterConfig, slaveConfig, token, } = this.props; const addState = {}; const sModelsType = commonUtils.isEmpty(sModelsTypeOld) ? '' : sModelsTypeOld; const masterData = masterDataNew === undefined ? masterDataOld === undefined ? {} : masterDataOld : masterDataNew; let bNewSlaveData = false; if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') { if (commonUtils.isNotEmptyArr(slaveData)) { // 从表有数据,请删除后修改客户!不能去掉 if (slaveData.length === 1 && commonUtils.isEmpty(slaveData[0].sProductId)) { bNewSlaveData = true; } else { Toast.info(commonFunc.showMessage(app.commonConst, 'slaveHasDataPleaseDel')); return; } } changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue }); // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []); // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []); // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []); // // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductId', []); // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductNo', []); // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductName', []); } else if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName') { changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue }); } else if (sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName') { commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsId', []); commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsNo', []); commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsName', []); if (sModelsType === 'materialsStock/materialsCheck' || sModelsType === 'productStock/productCheck') { let value = {}; if (sModelsType === 'materialsStock/materialsCheck') { value = { sProName: 'Sp_System_AccountSquareCheck', paramsMap: { iType2: 1, sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : '', }, }; } else if (sModelsType === 'productStock/productCheck') { value = { sProName: 'Sp_System_AccountSquareCheck', paramsMap: { iType2: 2, sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : '', }, }; } const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; const returnData = (await commonServices.postValueService(app.token, value, url)).data; if (returnData.code === 1) { const outData = returnData.dataset.rows[0].dataSet.outData[0]; if (outData.sCode === -1) { Toast.fail(outData.sReturn); return; } } else { this.props.getServiceError(returnData); return; } } } else if (sModelsType.includes('cashier/') && sFieldName === 'sBillType') { commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerId', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerNo', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerName', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyId', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyNo', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyName', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyId', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyNo', []); commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyName', []); changeValue.sCustomerId = ''; const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerId'); if (iIndex > -1) { masterConfig.gdsconfigformslave[iIndex].bReGetDropDown = true; } changeValue.sSupplyId = ''; const iSupplyIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sSupplyId'); if (iSupplyIndex > -1) { masterConfig.gdsconfigformslave[iSupplyIndex].bReGetDropDown = true; } /* 财务调整中切换调整类型后,对象名称清空 */ const sBillTypeIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sFamilyName'); if (sBillTypeIndex > -1) { masterData.sFamilyName = ''; } this.props.onSaveState({ masterConfig }); } else if (sFieldName === 'sGetPayId') { changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue }); } else if (sFieldName === 'sSettlementId') { if (changeValue.sSettlementId === 'cash') { const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount'); if (sBankAccountIndex > -1) { masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1; masterData.sBankAccount = ''; } const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo'); if (sInvoiceNoIndex > -1) { masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1; masterData.sInvoiceNo = ''; } const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId' || item.sName === 'sBankName'); if (sBankIdIndex > -1) { masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 1; masterData.sBankId = ''; masterData.sBankName = ''; } const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'tDueDate'); if (tDueDateIndex > -1) { masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 1; delete masterData.tDueDate; } } if (changeValue.sSettlementId === 'bank') { const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo'); if (sInvoiceNoIndex > -1) { masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1; masterData.sInvoiceNo = ''; } const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount'); if (sBankAccountIndex > -1) { masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 0; } const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId' || item.sName === 'sBankName'); if (sBankIdIndex > -1) { masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0; } const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'tDueDate'); if (tDueDateIndex > -1) { masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 1; delete masterData.tDueDate; } } if (changeValue.sSettlementId === 'bill') { const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount'); if (sBankAccountIndex > -1) { masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1; masterData.sBankAccount = ''; } const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo'); if (sInvoiceNoIndex > -1) { masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 0; } const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId'); if (sBankIdIndex > -1) { masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0; } const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'tDueDate'); if (tDueDateIndex > -1) { masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 0; } } } let returnData = this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData); const masterDataAfter = commonBusiness.getKeyUpEvent(name, sFieldName, masterConfig, returnData.masterData, {}, true); if (commonUtils.isNotEmptyObject(masterDataAfter)) { returnData.masterData = masterDataAfter; } if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName' || sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' || sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' || sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName' || sFieldName === 'tDeliverDate') { const slaveDataNew = []; for (const item of slaveData) { let tableDataRow = ((sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' || sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' || sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') && (sModelsType.includes('materialsStock/productionmaterialsadjust'))) ? { ...item } : { ...item, [sFieldName]: changeValue[sFieldName] }; if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName') { tableDataRow.sTaxId = changeValue.sTaxId; tableDataRow.sTaxNo = changeValue.sTaxNo; tableDataRow.sTaxName = changeValue.sTaxName; tableDataRow.dTaxRate = changeValue.dTaxRate; tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'sTaxId', masterData, tableDataRow); let dMaterialsMoney = ''; if (sModelsType.includes('outside/')) { /* 工序发外 */ let sComputeId = ''; const sSupplyId = changeValue.sSupplyId; const sProcessId = tableDataRow.sProcessId; /* 根据客户id,工序id获取公式ID */ if (commonUtils.isNotEmptyObject(sSupplyId) && commonUtils.isNotEmptyObject(sProcessId)) { sComputeId = await commonBusiness.getOutSideProcessFormula({ token, sModelsId, sSupplyId, sProcessId, }); if (commonUtils.isNotEmptyObject(sComputeId)) { dMaterialsMoney = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId, }); tableDataRow.dMaterialsMoney = dMaterialsMoney; tableDataRow = commonBusiness.getCalculateMoney(app, masterData, tableDataRow, 'Materials'); } } } } if ((sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' || sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' || sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') && (!sModelsType.includes('materialsStock/productionmaterialsadjust'))) { if (sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName') { tableDataRow.sWareHouseId = changeValue.sWareHouseId; tableDataRow.sWarehouseId = changeValue.sWareHouseId; tableDataRow.sWareHouseNo = changeValue.sWareHouseNo; tableDataRow.sWareHouseName = changeValue.sWareHouseName; } else if (sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName') { tableDataRow.sLocationId = changeValue.sLocationId; tableDataRow.sLocationNo = changeValue.sLocationNo; tableDataRow.sLocationName = changeValue.sLocationName; } else if (sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') { tableDataRow.sWareHouseLocationId = changeValue.sWareHouseLocationId; tableDataRow.sWareHouseLocationNo = changeValue.sWareHouseLocationNo; tableDataRow.sWareHouseLocationName = changeValue.sWareHouseLocationName; } tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; } slaveDataNew.push(tableDataRow); } addState.slaveData = slaveDataNew; // this.props.onSaveState({ slaveData: slaveDataNew }); } else if ((sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName')) { if (bNewSlaveData) { const slaveDataNew = []; const allTableData = {}; allTableData.master = returnData.masterData; const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData); tableDataRowAdd.handleType = 'add'; tableDataRowAdd.sId = commonUtils.createSid(); tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRowAdd.key = tableDataRowAdd.sId; tableDataRowAdd.bDefault = false; tableDataRowAdd.iOrder = 1; slaveDataNew.push(tableDataRowAdd); addState.slaveData = slaveDataNew; // this.props.onSaveState({ slaveData: slaveDataNew }); } else if (sModelsType.includes('sales/') || sModelsType.includes('cashier/') || sModelsType.includes('manufacture/')) { // 获取应收款 if (commonUtils.isNotEmptyObject(masterData)) { this.getCustomerReceipt({ masterData: returnData.masterData }); } } } else if (sFieldName === 'sTestStandardId' || sFieldName === 'sTestStandardName') { const { slaveDelData: slaveDelDataOld, slaveConfig, masterConfig } = this.props; const dataUrl = `${commonConfig.server_host}eleteamemployee/getObtainInspectionStandards?sModelsId=${sModelsId}&sParentId=${returnData.masterData.sTestStandardId}`; const dataReturn = (await commonServices.getService(this.props.app.token, dataUrl)).data; const slaveDelData = commonUtils.isEmptyArr(slaveDelDataOld) ? [] : slaveDelDataOld; if (dataReturn.code === 1) { const returnSlaveData = dataReturn.dataset.rows; slaveData.forEach((item) => { item.handleType = 'del'; slaveDelData.push(item); }); const slaveDataNew = []; const newCopyTo = {}; newCopyTo.master = masterData; const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'sTestStandardName'); const iSqlIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sActValue'); returnSlaveData.forEach((item, iIndex) => { let tableDataRow = commonFunc.getDefaultData(slaveConfig, {}); tableDataRow.handleType = 'add'; tableDataRow.sId = commonUtils.createSid(); tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null; tableDataRow.key = tableDataRow.sId; tableDataRow.iOrder = iIndex; if (iConfigIndex > -1) { tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(masterConfig.gdsconfigformslave[iConfigIndex].sAssignField, item, newCopyTo) }; // 取赋值字段 // tableDataRow.sTestReference = '15S|20S'; const sTestReference = tableDataRow.sTestReference; const sParamObj = {}; if (commonUtils.isNotEmptyObject(sTestReference)) { if (sTestReference.indexOf('|') >= 0) { sTestReference.split('|').forEach((itemField) => { sParamObj[itemField] = itemField; }); tableDataRow.sParamDropDownsActValue = sParamObj; if (iSqlIndex > -1) { slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = 'sql'; } else { slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = ''; } } } else { /* 若数据没有值 则渲染文本框 */ tableDataRow.isText = true; } } slaveDataNew.push(tableDataRow); }); addState.slaveData = slaveDataNew; } else { Toast.fail(dataReturn.msg); } } const models = name === 'materials' ? 'Materials' : sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('print/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; if (sModelsType.includes('purchase/') || sModelsType.includes('print/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/') || sModelsType.includes('quality/')) { let masterData = await this.handleMaterialsChange(returnData.masterData, sModelsId, masterData, changeValue, sFieldName, app, token, models); masterData = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, masterData); if (sFieldName !== 'dPackQty') { if (changeValue.dPackQty !== this.state.dPackQtyChange && changeValue.dPackQty !== undefined) { masterData = commonBusiness.getCalculateAllMoney(app, models, 'dPackQty', masterData, masterData); this.setState({ dPackQtyChange: changeValue.dPackQty }); } } returnData = { ...returnData, masterData }; } if (isWait) { return { ...returnData, ...addState, enabled: true }; } else { this.props.onSaveState({ ...returnData, ...addState, enabled: true }); return returnData; } } /** 表格数据更改 */ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData) handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait) => { /* 从CommonBase获取默认参数 */ const { [`${name}Data`]: tableData, sModelsType, sModelsId, token, app, } = this.props; if (name === 'control' && sModelsType === 'sales/salesOrder') { const { [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld } = 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; } } tableDataRow = this.singlePQtyChange(tableDataRow); } 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); const iIndex = tableData.findIndex(item => item.sId === sId); tableData[iIndex] = tableDataRow; this.props.onSaveState({ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew }); } else { let { masterData } = this.props; const iIndex = tableData.findIndex(item => item.sId === sId); // if (sFieldName.substring(0, 1) === 'd' && commonUtils.convertToNum(tableData[iIndex][sFieldName]) === commonUtils.convertToNum(changeValue[sFieldName])) { // if (!(tableData[iIndex][sFieldName] === undefined && commonUtils.convertToNum(changeValue[sFieldName]) === 0)) return; // } if (sFieldName === 'sProductName' && name === 'slave' && (sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder') || sModelsType.includes('quotation/quotation'))) { if (commonUtils.isNotEmptyObject(changeValue) && Object.keys(changeValue).length === 1 && Object.keys(changeValue)[0] === sFieldName) { changeValue.sProductId = changeValue.sProductName; } } let tableDataRow = this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); if ((sFieldName === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductStyle' || sFieldName === 'sProductUnit' || sFieldName === 'sProductNo' || sFieldName === 'sCustomerProductNo' || sFieldName === 'sProductClassifyId' || sFieldName === 'sProductClassifyName') && !commonUtils.isEmpty(tableDataRow.sProductId)) { const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', sFieldName); const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); if (iProductIdIndex === -1) { 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 = ''; } if ((sFieldName === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductNo') && !commonUtils.isEmpty(changeValue.sProductId)) { const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; const value = { sProName: 'Sp_Cashier_GetProductPrice', paramsMap: { sProductGuid: changeValue.sProductId, }, }; const returnData = (await commonServices.postValueService(app.token, value, url)).data; if (returnData.code === 1) { tableDataRow.dProductPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice; } const models = name === 'materials' ? 'Materials' : sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) { tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, 'dProductQty', app, token, models); } tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow); // else { // this.props.getServiceError(returnData); // } } } else if (sModelsType === 'sales/salesOrder' && (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductClassifyName') && name === 'slave') { const { controlData } = this.props; if (controlData !== undefined && !commonUtils.isEmpty(tableData.sProductInfo)) { const controlDataFilter = controlData.filter(item => item.sSlaveId === tableData[iIndex].sId); const tableSelectedRowKeys = []; controlDataFilter.forEach((item) => { tableSelectedRowKeys.push(item.sId); }); const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys); const processReturnData = this.otherTableDel('process', tableSelectedRowKeys); const controlReturnData = this.props.onDataRowDel('control', true, tableSelectedRowKeys); this.props.onSaveState({ ...materialsReturnData, ...processReturnData, ...controlReturnData, }); } } else if (sModelsType.includes('cashier/') && sFieldName === 'dTotalMoney') { /* 付款单、收款单,从表付款/收款金额改变,会自动汇总到主表付款金额中 */ const addStata = {}; addStata.dTotalMoney = 0; if (iIndex > -1) { /* 选中行 */ let dMoney = commonUtils.isNotEmptyNumber(tableDataRow.dTotalMoney) ? tableDataRow.dTotalMoney : 0; dMoney = commonUtils.convertStrToNumber(dMoney); addStata.dTotalMoney = dMoney + commonUtils.convertStrToNumber(addStata.dTotalMoney); } tableData.forEach((item, index) => { /* 非选中行 */ if (index !== iIndex) { const dMoney = commonUtils.isNotEmptyNumber(item.dTotalMoney) ? item.dTotalMoney : 0; addStata.dTotalMoney = commonUtils.convertFixNum(dMoney, 6) + commonUtils.convertFixNum(addStata.dTotalMoney, 6); } }); masterData = { ...masterData, ...addStata }; this.props.onSaveState({ masterData }); } // 取工艺卡数据 if (sModelsType === 'sales/salesOrder' && (sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && name === 'slave') { const { controlConfig, materialsConfig, processConfig, } = this.props; let { controlData, materialsData, processData } = this.props; const sId = tableData[iIndex].sId; const bCkxCopyFromTechnology = '1'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue; if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) { const controlSelectedData = controlData.filter(item => item.sSlaveId === sId); if (commonUtils.isNotEmptyObject(controlSelectedData)) { const materialsReturnData = this.otherTableDel('materials', controlSelectedData); const processReturnData = this.otherTableDel('process', controlSelectedData); const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedData); controlData = controlReturnData.controlData; materialsData = materialsReturnData.materialsData; processData = processReturnData.processData; this.props.onSaveState({ ...materialsReturnData, ...processReturnData, ...controlReturnData, }); } const sCustomerId = masterData.sCustomerId; const sProductId = changeValue.sProductId; const sProductIdArray = []; 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; const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnCopyFrom.ActProcessCard')); if (dataReturn.code === 1) { const returnData = dataReturn.dataset.rows[0]; const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Control'.toLowerCase()); const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Materials'.toLowerCase()); const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Process'.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 newCopyTo = {}; newCopyTo.master = masterData; newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData; if (commonUtils.isNotEmptyArr(returnData.controlData)) { // eslint-disable-next-line no-loop-func returnData.controlData.forEach((controlItem) => { newCopyTo.control = controlItem; let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo); // 取默认值 controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 controlRow.handleType = 'add'; controlRow.sId = commonUtils.createSid(); controlRow.sSlaveId = tableDataRow.sId; controlRow.sParentId = masterData.sId; controlData.push(controlRow); if (commonUtils.isNotEmptyArr(returnData.materialsData)) { returnData.materialsData.filter(item => item.sControlId === controlItem.sId).forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sSlaveId = tableDataRow.sId; materialsRow.sParentId = masterData.sId; materialsRow.sControlId = controlRow.sId; materialsRow.sPartsName = controlRow.sPartsName; materialsData.push(materialsRow); }); } if (commonUtils.isNotEmptyArr(returnData.processData)) { returnData.processData.filter(item => item.sControlId === controlItem.sId).forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sSlaveId = tableDataRow.sId; processRow.sParentId = masterData.sId; processRow.sControlId = controlRow.sId; processRow.sPartsName = controlRow.sPartsName; processData.push(processRow); }); } }); } if (commonUtils.isNotEmptyArr(returnData.materialsData)) { // eslint-disable-next-line no-loop-func returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { newCopyTo.materials = materialsItem; let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值 materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 materialsRow.handleType = 'add'; materialsRow.sId = commonUtils.createSid(); materialsRow.sSlaveId = tableDataRow.sId; materialsRow.sParentId = masterData.sId; materialsData.push(materialsRow); }); } if (commonUtils.isNotEmptyArr(returnData.processData)) { // eslint-disable-next-line no-loop-func returnData.processData.filter(item => item.sType === '3').forEach((processItem) => { newCopyTo.process = processItem; let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sSlaveId = tableDataRow.sId; processRow.sParentId = masterData.sId; processData.push(processRow); }); } this.props.onSaveState({ controlData, materialsData, processData }); } } } else if (sModelsType === 'sales/salesOrder' && (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') && name === 'slave') { const { controlData, slaveSelectedRowKeys, } = this.props; const controlSelectedData = controlData.filter(item => item.sSlaveId === slaveSelectedRowKeys[0]); for (const one of controlSelectedData) { one.handleType = commonUtils.isEmpty(one.handleType) ? 'update' : one.handleType; one.dPartsQty = commonUtils.isNull(tableDataRow.dProductQty, 0) + commonUtils.isNull(tableDataRow.dGiveQty, 0); } this.props.onSaveState({ controlData }); } else if (sModelsType.includes('purchase/') && (sFieldName === 'sMaterialsId' || sFieldName === 'sMaterialsNo' || sFieldName === 'sMaterialsName') && name === 'slave') { const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; const value = { sProName: 'Sp_Cashier_GetMaterialsPrice', paramsMap: { sMaterialsGuid: changeValue.sMaterialsId, sSupplyGuid: masterData.sSupplyId, }, }; const returnData = (await commonServices.postValueService(app.token, value, url)).data; if (returnData.code === 1) { tableDataRow.dMaterialsPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice; } const models = name === 'materials' ? 'Materials' : sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) { tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, 'dAuxiliaryQty', app, token, models); } tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow); if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) { const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; const valueMaterialsStock = { sProName: 'Sp_Inventory_MaterialsInventoryV56', paramsMap: { sMaterialsGuid: tableDataRow.sMaterialsId, sMaterialsStyle: tableDataRow.sMaterialsStyle, sWarehouseGuid: tableDataRow.sWarehouseId, sLocationalGuid: tableDataRow.sLocationId, sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId, sDefine_no: tableDataRow.sDefineNo, sDefine_no2: tableDataRow.sDefineNo2, iGetQty: 1, iHasZero: 1, }, }; const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data; if (returnDataMaterialsStock.code === 1) { tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; } } if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) { const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; const valueMaterialsAvailableQty = { sProName: 'Sp_Inventory_MaterialsInventoryV56', paramsMap: { sMaterialsGuid: tableDataRow.sMaterialsId, sMaterialsStyle: tableDataRow.sMaterialsStyle, sWarehouseGuid: tableDataRow.sWarehouseId, sLocationalGuid: tableDataRow.sLocationId, sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId, sDefine_no: tableDataRow.sDefineNo, sDefine_no2: tableDataRow.sDefineNo2, iGetQty: 2, iHasZero: 1, }, }; const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data; if (returnDataMaterialsAvailableQty.code === 1) { tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; } } // else { // this.props.getServiceError(returnData); // } } else if (sModelsType === 'sales/salesCheck' && sFieldName === 'dLossMoney' && name === 'slave') { if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) { const dPprice = this.props.getFloatNum('dProductPrice'); /* 获取系统设定小数位 */ tableDataRow.dProductMoney = commonUtils.convertFixNum(tableDataRow.dSrcMoney - tableDataRow.dLossMoney, dPprice); } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) { tableDataRow.dProductMoney = tableDataRow.dSrcMoney; tableDataRow.dLossMoney = 0; } } /* 各种金额,税额,价格计算 */ const models = name === 'materials' ? 'Materials' : sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) { tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models); } tableDataRow = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, tableDataRow); let dMaterialsMoney = ''; if (sModelsType.includes('outside/')) { /* 工序发外 && (sFieldName === 'sSupplyName' || sFieldName === 'sProcessName' || sFieldName === 'dAuxiliaryQty') */ let sComputeId = {}; const sSupplyId = masterData.sSupplyId; const sProcessId = tableDataRow.sProcessId; /* 根据客户id,工序id获取公式ID */ sComputeId = await commonBusiness.getOutSideProcessFormula({ token, sModelsId, sSupplyId, sProcessId, }); if (!commonUtils.isEmpty(sComputeId)) { dMaterialsMoney = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId, }); tableDataRow.dMaterialsMoney = dMaterialsMoney; tableDataRow = commonBusiness.getCalculateMoney(app, masterData, tableDataRow, 'Materials'); } } if (isWait) { return tableDataRow; } else { tableData[iIndex] = tableDataRow; this.props.onSaveState({ [`${name}Data`]: tableData, enabled: true }); } } }; handleMaterialsChange = async (tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models) => { const { sComputeId, sConversionComputeId, sReConversionComputeId } = tableDataRow; if (sFieldName === 'sMaterialsNo' || sFieldName === 'sMaterialsName' || sFieldName === 'dAuxiliaryQty' || sFieldName === 'dReelAuxiliaryQty' || sFieldName === 'dConversionQty' || sFieldName === 'sMaterialsStyle') { if (sFieldName === 'dReelAuxiliaryQty') { if (tableDataRow.sMaterialsUnit === '吨' && tableDataRow.bReel && tableDataRow.dGramWeight > 0) { tableDataRow = commonBusiness.getMaterialsQty(app, { ...tableDataRow, sMaterialsStyle: tableDataRow.sReelMaterialsStyle }, 'dReelAuxiliaryQty', 'dMaterialsQty'); tableDataRow.dAuxiliaryQty = tableDataRow.dMaterialsQty; tableDataRow.sMaterialsStyle = tableDataRow.sMaterialsStyle !== undefined && tableDataRow.sMaterialsStyle.split('*').length > 1 ? tableDataRow.sMaterialsStyle.split('*')[0] : tableDataRow.sMaterialsStyle; tableDataRow.sAuxiliaryUnit = tableDataRow.sMaterialsUnit; } else if (tableDataRow.sMaterialsUnit.toUpper() === 'M2' && tableDataRow.bReel) { tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dReelAuxiliaryQty', 'dMaterialsQty'); tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; } else { tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; } } if (commonUtils.isEmpty(sComputeId) && sFieldName !== 'dConversionQty') { tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dAuxiliaryQty', 'dMaterialsQty'); } else if (!commonUtils.isEmpty(sComputeId)) { tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId, }); } if (sFieldName !== 'dConversionQty' && !commonUtils.isEmpty(sConversionComputeId)) { tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId: sConversionComputeId, }); } } else if (sFieldName === 'dMaterialsQty') { const { sReComputeId } = tableDataRow; if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) { tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, 'dAuxiliaryQty'); } else if (tableDataRow.bInverse) { tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId: sReComputeId, }); } if (!commonUtils.isEmpty(sReConversionComputeId)) { tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId: sReConversionComputeId, }); } } else if (sFieldName === 'dAuxiliaryLossQty') { if (commonUtils.isEmpty(sComputeId)) { tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, sFieldName, 'dLossQty'); } else { tableDataRow.dLossQty = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId, }); } if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; tableDataRow.dMaterialsQty = commonUtils.convertFixNum(tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty, 6); } } else if (sFieldName === 'dLossQty') { const { sReComputeId } = tableDataRow; if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) { tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, 'dAuxiliaryLossQty'); } else if (tableDataRow.bInverse) { tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({ token, sModelsId, masterData, tableDataRow, sComputeId: sReComputeId, }); } if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; tableDataRow.dMaterialsQty = tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty; } } else if (sFieldName === 'sProcessId' || sFieldName === 'sProcessNo' || sFieldName === 'sProcessName') { const sProcessId = changeValue.sProcessId; const url = `${commonConfig.server_host}process/outsideprocess?sModelsId=${sModelsId}&sProcessId=${sProcessId}`; const dataReturn = (await commonServices.getService(token, url)).data; if (dataReturn.code === 1) { if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) { tableDataRow.dMaterialsPrice = dataReturn.dataset.rows[0].dMaterialsPrice; } tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dMaterialsPrice', masterData, tableDataRow); } } return tableDataRow; } handleCustomerChange = (name, changeValue) => { if (commonUtils.isNotEmptyObject(changeValue)) { if (changeValue.sCustomerId !== this.state.changleCustomerId) { const sCustomerId = []; sCustomerId.push(changeValue.sCustomerId); this.handleTableSelectRowChange(name, sCustomerId, changeValue); } } this.setState({ changleCustomerId: changeValue.sCustomerId }); } handleMobileScan = (fieldConfig, tbName, record) => { if (commonUtils.isNotEmptyObject(fieldConfig)) { const sFieldName = fieldConfig.sName; const newTableName = 'master'; BarCodeUtil.startScan(async (type, code) => { const { slaveConfig, sModelsId, masterData, slaveData, sModelsType, masterConfig, } = this.props; /* 规则定义 材料 sDefineNo: codeArr[0], --唯一码 sMaterialsName: codeArr[1], --材料名称 sMaterialsStyle: codeArr[2], --材料规格 dAuxiliaryQty: codeArr[3], --数量 sWareHouseName: codeArr[4], --仓库名称 sLocationName: codeArr[5], --名称 sDefineNo2: codeArr[6], --二维码 tInStoreDate: codeArr[7], --入库日期 sMaterialsId: codeArr[8], --材料ID sWareHouseId: codeArr[9], --仓库ID sLocationId: codeArr[10], --sLocationId 成品 sDefineNo: codeArr[0], --唯一码 sProductName: codeArr[1], --产品名称 sProductStyle: codeArr[2], --产品规格 dProductQty: codeArr[3], --产品数量 sWarehouseName: codeArr[4], --仓库名称 sLocationName: codeArr[5], --仓库名称 sDefineNo2: codeArr[6], --二维码 tInStoreDate: codeArr[7], --入库日期 sProductId: codeArr[8], --产品ID sWareHouseId: codeArr[9], --仓库ID sLocationId: codeArr[10], sCustomerName: codeArr[11], --客户名称 sCustomerShort: codeArr[12], sOrderNo: codeArr[13], --订单号 sWorkOrderNo: codeArr[14], --工单号 sCustomerOrderNo: codeArr[15], --客户编号 sCustomerProductNo: codeArr[16], --客户产品编号 */ // const slaveData = []; let slaveDataObj = {}; let masterdataObj = {}; let slaveDataObjAdd = {}; const masterDataObjAdd = {}; if (commonUtils.isEmptyObject(code)) { Toast.fail('二维码扫码失败!', 1); return; } const codeArr = code.split('|'); let models = ''; if (codeArr.length === 12) { /* 材料 */ models = 'Materials'; } else if (codeArr.length === 17) { /* 成品 */ models = 'Product'; } else { models = 'Single'; /* 单一的 */ } if (models === 'Single') { /* sModelsType === 'purchase/purchaseInstore' 扫码入库、扫码领料(唯一码) */ /* 取第一条码 */ const sCode = codeArr.length > 0 ? codeArr[0] : ''; /* 如果条码已存在,提示 */ // const iIndex = slaveData.findIndex(item => commonUtils.isNotEmptyObject(item.sDefineNo) && item.sDefineNo === sDefineNo); // if (iIndex > -1) { // Toast.fail('条码已存在!!!', 1); // return; // } if (tbName === 'master') { masterData[sFieldName] = sCode; } if (tbName === 'master') { masterdataObj = { ...masterData, [sFieldName]: sCode, }; } else if(tbName === 'slave') { if(commonUtils.isNotEmptyArr(slaveData)) { /* 如果是从表的字段配置了扫码 那么则将值赋值到字段上 */ const iIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex(item => item.sId === record.sId) : -1; if (iIndex > -1) { const newType = commonUtils.isEmpty(slaveData[iIndex].handleType) ? 'update' : slaveData[iIndex].handleType; slaveData[iIndex] = { ...slaveData[iIndex], [sFieldName]: sCode, handleType :newType }; } } } /* 读取扫码配置 */ // const btnScanConfigs = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.sControlName.indexOf('BtnScan') > -1); // const AssignField = commonUtils.isNotEmptyArr(btnScanConfigs) ? btnScanConfigs[0].sAssignField : ''; // /* 唯一码调接口 */ // let sqlDataRow ={}; // if(commonUtils.isNotEmptyArr(btnScanConfigs)) { // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', btnScanConfigs[0], masterdataObj); // if(commonUtils.isNotEmptyArr(sqlDropDownData)) { // sqlDataRow = sqlDropDownData[0]; // } // } // slaveDataObj = { ...slaveDataObj, ...commonFunc.getAssignFieldValue(AssignField, masterdataObj) }; // 取主表赋值字段 // if(commonUtils.isNotEmptyObject(sqlDataRow)) { // slaveDataObj = { ...slaveDataObj, ...commonFunc.getAssignFieldValue(AssignField, sqlDataRow) }; // 取接口数据源赋值字段 // } // slaveDataObj.sParentId = masterdataObj.sId; // if (commonUtils.isNotEmptyArr(slaveData)) { // const len = slaveData.length; // const sDefineNoNew = slaveData[len - 1].sDefineNo; // const { handleType } = slaveData[len - 1]; // /* 若slaveData 最后一条数据没有条形码,则赋值条形码;否则新增一条数据 */ // if (commonUtils.isEmptyArr(sDefineNoNew)) { // slaveDataObj.handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; // // slaveData[len - 1] = slaveDataObj; // slaveData[len - 1] = { ...slaveData[len-1], ...slaveDataObj}; // } else { // slaveDataObj.sId = commonUtils.createSid(); // slaveDataObj.handleType = 'add'; // slaveData.push(slaveDataObj); // } // } else { // slaveDataObj.sId = commonUtils.createSid(); // slaveDataObj.handleType = 'add'; // slaveData.push(slaveDataObj); // } if (sModelsType === 'scan/productionmaterials') { /* 只有扫码领料连续扫码 */ this.handleClick('slave', 'scan'); /* 连续扫码 */ } } else { Toast.fail('二维码不存在!!!', 1); } if (models !== 'Single') { slaveData.push(slaveDataObj); } this.props.onSaveState({ slaveData, masterData: masterdataObj }); }); } } render() { return ( ); } }; };