From 6d54586fbb69e48f3973108a16d531f404703e78 Mon Sep 17 00:00:00 2001 From: zhangzhen <525765282@qq.com> Date: Wed, 3 Dec 2025 17:24:01 +0800 Subject: [PATCH] 优化websocket功能; --- src/components/Common/CommonBillDeliverEvent.js | 49 ++++++++++--------------------------------------- src/components/Common/CommonBillEvent.js | 57 ++++++++++++++------------------------------------------- src/components/Common/CommonCheckBillEvent.js | 49 ++++++++++--------------------------------------- src/components/Common/CommonClassifyEvent.js | 47 +++++++++-------------------------------------- src/components/Common/CommonElementEvent.js | 62 ++++++++++++++++---------------------------------------------- src/components/Common/CommonGroupBillEvent.js | 63 +++++++++++++++++---------------------------------------------- src/components/Common/CommonListEditEvent.js | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------ src/components/Common/CommonListEvent.js | 272 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/Common/CommonListTabEvent.js | 260 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/Common/CommonListTreeEvent.js | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------- src/components/Common/CommonNewBillEvent.js | 49 ++++++++++--------------------------------------- src/components/Common/CommonNewTabBillEvent.js | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------- src/components/Common/CommonSubBillEvent.js | 61 ++++++++++++++++--------------------------------------------- src/components/Manufacture/WorkOrder/WorkOrder.js | 709 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/Manufacture/WorkOrderPack/WorkOrderPack.js | 719 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js | 749 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js | 749 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/QuoQuotation/Quotation/Quotation.js | 735 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/QuoQuotation/QuotationPack/QuotationPack.js | 743 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/components/QuoQuotation/QuotationPackTableTree/QuotationPackTableTree.js | 753 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/mobile/common/CommobileBillEvent.js | 41 ++++++++++++----------------------------- src/mobile/common/CommobileClassifyEvent.js | 37 +++++++++---------------------------- src/mobile/common/CommobileListEvent.js | 115 +++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------- src/mobile/common/CommobileSubBillEvent.js | 51 +++++++++++++++++---------------------------------- src/models/app.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- src/routes/indexPage.js | 31 ++++++++++++++++++++++++++++++- 26 files changed, 3220 insertions(+), 3757 deletions(-) diff --git a/src/components/Common/CommonBillDeliverEvent.js b/src/components/Common/CommonBillDeliverEvent.js index ff7d5f0..b546330 100644 --- a/src/components/Common/CommonBillDeliverEvent.js +++ b/src/components/Common/CommonBillDeliverEvent.js @@ -1418,46 +1418,17 @@ export default (ChildComponent) => { }); return; } - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); + this.props.app.webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + await this.handleGetData(masterConfig, slaveConfig, checkConfig, 'update'); + this.props.onSaveState({ enabled: true, calculated: false, loading: false }); + } }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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') { - await this.handleGetData(masterConfig, slaveConfig, checkConfig, 'update'); - this.props.onSaveState({ enabled: true, calculated: false, 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); + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 表单回带 */ handleForm = (form) => { diff --git a/src/components/Common/CommonBillEvent.js b/src/components/Common/CommonBillEvent.js index a7c2a51..a926e9a 100644 --- a/src/components/Common/CommonBillEvent.js +++ b/src/components/Common/CommonBillEvent.js @@ -2046,50 +2046,21 @@ export default (ChildComponent) => { }); return; } - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); - }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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') { - await this.handleGetData(masterConfig, slaveConfig, checkConfig,'update'); - if (cb && typeof cb === 'function') { - this.props.onSaveState({ enabled: false, calculated: false }, () => { cb(); }); - } else { - this.props.onSaveState({ enabled: true, calculated: false, loading: false }); - } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); + this.props.app.webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + await this.handleGetData(masterConfig, slaveConfig, checkConfig,'update'); + if (cb && typeof cb === 'function') { + this.props.onSaveState({ enabled: false, calculated: false }, () => { cb(); }); + } else { + this.props.onSaveState({ enabled: true, calculated: false, loading: false }); } - }; - this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); - }, timValue); + } + }; + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 表单回带 */ handleForm = (form) => { diff --git a/src/components/Common/CommonCheckBillEvent.js b/src/components/Common/CommonCheckBillEvent.js index 6a9ad88..795d261 100644 --- a/src/components/Common/CommonCheckBillEvent.js +++ b/src/components/Common/CommonCheckBillEvent.js @@ -1649,46 +1649,17 @@ export default (ChildComponent) => { }); return; } - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); + this.props.app.webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + await this.handleGetData(masterConfig, slaveConfig, checkConfig, 'update'); + this.props.onSaveState({ enabled: true, calculated: false, loading: false }); + } }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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') { - await this.handleGetData(masterConfig, slaveConfig, checkConfig, 'update'); - this.props.onSaveState({ enabled: true, calculated: false, 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); + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 表单回带 */ handleForm = (form) => { diff --git a/src/components/Common/CommonClassifyEvent.js b/src/components/Common/CommonClassifyEvent.js index 7468007..1e5ed37 100644 --- a/src/components/Common/CommonClassifyEvent.js +++ b/src/components/Common/CommonClassifyEvent.js @@ -362,45 +362,16 @@ export default (ChildComponent) => { return; } this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, iPageSize, slaveOrderBy); - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + this.props.onSaveState({ enabled: true, loading: false }); + } }; - setTimeout(() => { - this.props.app.webSocket.onmessage = (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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.props.onSaveState({ enabled: true, loading: false }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - this.props.handleSendSocketMessage('update', 'showMsg', sModelsId, userinfo.sId, null, null); // 分类型不能以Id来,涉及到多条修改 - }, timValue); + this.props.handleSendSocketMessage('update', 'showMsg', sModelsId, userinfo.sId, null, null); // 分类型不能以Id来,涉及到多条修改 }; /** 点击新增按钮操作 */ handleAdd = () => { diff --git a/src/components/Common/CommonElementEvent.js b/src/components/Common/CommonElementEvent.js index a302530..ef3f390 100644 --- a/src/components/Common/CommonElementEvent.js +++ b/src/components/Common/CommonElementEvent.js @@ -1990,53 +1990,23 @@ export default (ChildComponent) => { // sId: [sId], // }; // this.props.onSaveState({ pageLoading: true }); - const { masterData, bUserModel, dispatch } = this.props; - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); + const { masterData, bUserModel } = this.props; + this.props.app.webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + await this.handleGetTableData('update'); + this.props.onSaveState({ + enabled: true, + bUserModel, + isEnabledPlcNo: (masterData?.iPlcNo === undefined || masterData?.iPlcNo === 0), + loading: false, + }); + } }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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') { - await this.handleGetTableData('update'); - this.props.onSaveState({ - enabled: true, - bUserModel, - isEnabledPlcNo: (masterData?.iPlcNo === undefined || masterData?.iPlcNo === 0), - loading: false, - }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - // this.props.onSaveState({ pageLoading: false }); - }; - this.props.handleSendSocketMessage('update', 'showMsg', this.props.currentId, this.props.app.userinfo.sId, null, null); - }, timValue); + this.props.handleSendSocketMessage('update', 'showMsg', this.props.currentId, this.props.app.userinfo.sId, null, null); // const url = `${commonConfig.server_host}business/addSysLocking?sModelsId=${sModelsId}`; // /* 接收返回值 */ // const { data } = await commonServices.postValueService(token, value, url); diff --git a/src/components/Common/CommonGroupBillEvent.js b/src/components/Common/CommonGroupBillEvent.js index 27291ff..5455dcc 100644 --- a/src/components/Common/CommonGroupBillEvent.js +++ b/src/components/Common/CommonGroupBillEvent.js @@ -1112,53 +1112,24 @@ export default (ChildComponent) => { } } } - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); - }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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') { - await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, 'update'); - this.props.onSaveState({ enabled: true, loading: false }); - const { slaveData } = this.props; - if (commonUtils.isNotEmptyArr(slaveData)) { - const selectRowKey = slaveData[0].sId; - const selectRowKeyArr = []; - selectRowKeyArr.push(selectRowKey); - this.handleTableSelectRowChange('slave', selectRowKeyArr, slaveData); - } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); + this.props.app.webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, 'update'); + this.props.onSaveState({ enabled: true, loading: false }); + const { slaveData } = this.props; + if (commonUtils.isNotEmptyArr(slaveData)) { + const selectRowKey = slaveData[0].sId; + const selectRowKeyArr = []; + selectRowKeyArr.push(selectRowKey); + this.handleTableSelectRowChange('slave', selectRowKeyArr, slaveData); } - }; - this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); - }, timValue); + } + }; + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 表单回带 */ diff --git a/src/components/Common/CommonListEditEvent.js b/src/components/Common/CommonListEditEvent.js index 5e6bee0..5182d08 100644 --- a/src/components/Common/CommonListEditEvent.js +++ b/src/components/Common/CommonListEditEvent.js @@ -821,22 +821,14 @@ export default (ChildComponent) => { /* 消息列表双击打开时 调用获取websocket消息 */ if (sModelsType === 'commonList/msg') { const { webSocket, userinfo } = app; - const timValue = 2000; - if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) { - this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); - } - setTimeout(() => { - webSocket.onmessage = async (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showImg') { - const msgData = JSON.parse(msg.data); - dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); - }, timValue); + webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showImg') { + const msgData = JSON.parse(msg.data); + dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); + } + }; + this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); if (this.props.app.currentPane.refresh !== undefined) { this.props.app.currentPane.refresh(); } @@ -1420,75 +1412,58 @@ export default (ChildComponent) => { sIdArray.push(item.sSlaveId); } }); - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - const { formRoute } = this.state; - if (commonUtils.isNotEmptyArr(copyToData)) { - const copyTo = {}; - copyTo.name = name; - copyTo.config = copyToConfig; - copyTo.masterData = copyToData[0]; - copyTo.slaveData = copyToData; - copyTo.copyOtherData = addcopyOther; - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ - dispatch({ - type: 'content/onRouter', - payload: { - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), - sSrcModelsId: this.props.sModelsId, - }, - }); - } else { - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 - } - } else { - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ - } - } 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 } }); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + const { formRoute } = this.state; + if (commonUtils.isNotEmptyArr(copyToData)) { + const copyTo = {}; + copyTo.name = name; + copyTo.config = copyToConfig; + copyTo.masterData = copyToData[0]; + copyTo.slaveData = copyToData; + copyTo.copyOtherData = addcopyOther; + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), + sSrcModelsId: this.props.sModelsId, + }, + }); } else { - dispatch({ type: 'app/throwError', payload: { code: -2, msg: rtmsg.msg } }); + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - const sId = sIdArray.toString(); - const getData = this.handleGetData; - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; - const values = { sSlaveId: sId }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - const sendSocketMessage = this.props.handleSendSocketMessage; - if (dataReturn.dataset.rows.length > 0) { - confirm({ - title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ - onOk() { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - }, - onCancel() { - }, - }); } else { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ } + } + }; + const sId = sIdArray.toString(); + const getData = this.handleGetData; + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const sendSocketMessage = this.props.handleSendSocketMessage; + if (dataReturn.dataset.rows.length > 0) { + confirm({ + title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + onOk() { + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + }, + onCancel() { + }, + }); } else { - this.props.getServiceError(dataReturn); + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } - }, timValue); + } else { + this.props.getServiceError(dataReturn); + } } else { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } @@ -1564,84 +1539,67 @@ export default (ChildComponent) => { sIdArray.push(item.sSlaveId); } }); - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - const { formRoute } = this.state; - if (commonUtils.isNotEmptyArr(copyToData)) { - const copyTo = {}; - copyTo.name = name; - copyTo.config = copyToConfig; - copyTo.masterData = copyToData[0]; - copyTo.slaveData = copyToData; - copyTo.copyOtherData = addcopyOther; - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ - dispatch({ - type: 'content/onRouter', - payload: { - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), - sSrcModelsId: this.props.sModelsId, - }, - }); - } else { - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 - } - } else { - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ - } - } 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 } }); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + const { formRoute } = this.state; + if (commonUtils.isNotEmptyArr(copyToData)) { + const copyTo = {}; + copyTo.name = name; + copyTo.config = copyToConfig; + copyTo.masterData = copyToData[0]; + copyTo.slaveData = copyToData; + copyTo.copyOtherData = addcopyOther; + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), + sSrcModelsId: this.props.sModelsId, + }, + }); } else { - dispatch({ type: 'app/throwError', payload: { code: -2, msg: rtmsg.msg } }); + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - const sId = sIdArray.toString(); - const getData = this.handleGetData; - - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName='/indexOee/commonOeeBill'`; - const values = { sSlaveId: sId }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - const sendSocketMessage = this.props.handleSendSocketMessage; - if (dataReturn.dataset.rows.length > 0) { - const { sId } = dataReturn.dataset.rows[0]; - if (commonUtils.isNotEmptyObject(sId)) { /* 查看 */ - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - this.props.onSaveOeeState({ checkedId: sId }); - } - // confirm({ - // title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ - // onOk() { - // sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - // }, - // onCancel() { - // }, - // }); } else { + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ + } + } + }; + const sId = sIdArray.toString(); + const getData = this.handleGetData; + + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName='/indexOee/commonOeeBill'`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const sendSocketMessage = this.props.handleSendSocketMessage; + if (dataReturn.dataset.rows.length > 0) { + const { sId } = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(sId)) { /* 查看 */ sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + this.props.onSaveOeeState({ checkedId: sId }); } + // confirm({ + // title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + // onOk() { + // sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + // }, + // onCancel() { + // }, + // }); } else { - this.props.getServiceError(dataReturn); - } - if (callBack) { - callBack(); + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } - }, timValue); + } else { + this.props.getServiceError(dataReturn); + } + if (callBack) { + callBack(); + } } else { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } diff --git a/src/components/Common/CommonListEvent.js b/src/components/Common/CommonListEvent.js index 09a946d..6c40fe1 100644 --- a/src/components/Common/CommonListEvent.js +++ b/src/components/Common/CommonListEvent.js @@ -787,22 +787,14 @@ export default (ChildComponent) => { /* 消息列表双击打开时 调用获取websocket消息 */ if (sModelsType === 'commonList/msg') { const { webSocket, userinfo } = app; - const timValue = 2000; - if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) { - this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); - } - setTimeout(() => { - webSocket.onmessage = async (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showImg') { - const msgData = JSON.parse(msg.data); - dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); - }, timValue); + webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showImg') { + const msgData = JSON.parse(msg.data); + dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); + } + }; + this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); if (this.props.app.currentPane.refresh !== undefined) { this.props.app.currentPane.refresh(); } @@ -1809,83 +1801,66 @@ export default (ChildComponent) => { } }); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - const { formRoute } = this.state; - if (commonUtils.isNotEmptyArr(copyToData)) { - copyTo.name = name; - copyTo.config = copyToConfig; - if (name !== 'BtnCopyTo.workOrderToWorkOrder' && !name.includes('BtnCopyTo.tmpInfo') && !name.includes('btncopyto.tmpinfobysql')) { - copyTo.masterData = copyToData[0]; - copyTo.slaveData = copyToData; - copyTo.copyOtherData = addcopyOther; - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ - } - copyTo.copyToDataSid = sId?.split(','); - dispatch({ - type: 'content/onRouter', - payload: { - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), - sSrcModelsId: this.props.sModelsId, - }, - }); - } else { - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + const { formRoute } = this.state; + if (commonUtils.isNotEmptyArr(copyToData)) { + copyTo.name = name; + copyTo.config = copyToConfig; + if (name !== 'BtnCopyTo.workOrderToWorkOrder' && !name.includes('BtnCopyTo.tmpInfo') && !name.includes('btncopyto.tmpinfobysql')) { + copyTo.masterData = copyToData[0]; + copyTo.slaveData = copyToData; + copyTo.copyOtherData = addcopyOther; + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ } + copyTo.copyToDataSid = sId?.split(','); + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), + sSrcModelsId: this.props.sModelsId, + }, + }); } else { - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ - } - } 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 } }); + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let sId = sIdArray.toString(); - const getData = this.handleGetData; - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; - const values = { sSlaveId: sId }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - const sendSocketMessage = this.props.handleSendSocketMessage; - if (sIdArray?.length > 10) { - sId = sIdArray?.[0]; - } - if (dataReturn.dataset.rows.length > 0) { - confirm({ - title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ - onOk() { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - }, - onCancel() { - }, - }); } else { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ } + } + }; + let sId = sIdArray.toString(); + const getData = this.handleGetData; + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const sendSocketMessage = this.props.handleSendSocketMessage; + if (sIdArray?.length > 10) { + sId = sIdArray?.[0]; + } + if (dataReturn.dataset.rows.length > 0) { + confirm({ + title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + onOk() { + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + }, + onCancel() { + }, + }); } else { - this.props.getServiceError(dataReturn); + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } - this.props.onSaveState({ - loading: false, - }); - }, timValue); + } else { + this.props.getServiceError(dataReturn); + } + this.props.onSaveState({ + loading: false, + }); } else { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 this.props.onSaveState({ @@ -1964,84 +1939,67 @@ export default (ChildComponent) => { sIdArray.push(item.sSlaveId); } }); - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - const { formRoute } = this.state; - if (commonUtils.isNotEmptyArr(copyToData)) { - const copyTo = {}; - copyTo.name = name; - copyTo.config = copyToConfig; - copyTo.masterData = copyToData[0]; - copyTo.slaveData = copyToData; - copyTo.copyOtherData = addcopyOther; - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ - dispatch({ - type: 'content/onRouter', - payload: { - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), - sSrcModelsId: this.props.sModelsId, - }, - }); - } else { - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 - } - } else { - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ - } - } 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 } }); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + const { formRoute } = this.state; + if (commonUtils.isNotEmptyArr(copyToData)) { + const copyTo = {}; + copyTo.name = name; + copyTo.config = copyToConfig; + copyTo.masterData = copyToData[0]; + copyTo.slaveData = copyToData; + copyTo.copyOtherData = addcopyOther; + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), + sSrcModelsId: this.props.sModelsId, + }, + }); } else { - dispatch({ type: 'app/throwError', payload: { code: -2, msg: rtmsg.msg } }); + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - const sId = sIdArray.toString(); - const getData = this.handleGetData; - - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName='/indexOee/commonOeeBill'`; - const values = { sSlaveId: sId }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - const sendSocketMessage = this.props.handleSendSocketMessage; - if (dataReturn.dataset.rows.length > 0) { - const { sId } = dataReturn.dataset.rows[0]; - if (commonUtils.isNotEmptyObject(sId)) { /* 查看 */ - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - this.props.onSaveOeeState({ checkedId: sId }); - } - // confirm({ - // title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ - // onOk() { - // sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - // }, - // onCancel() { - // }, - // }); } else { + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ + } + } + }; + const sId = sIdArray.toString(); + const getData = this.handleGetData; + + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName='/indexOee/commonOeeBill'`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const sendSocketMessage = this.props.handleSendSocketMessage; + if (dataReturn.dataset.rows.length > 0) { + const { sId } = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(sId)) { /* 查看 */ sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + this.props.onSaveOeeState({ checkedId: sId }); } + // confirm({ + // title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + // onOk() { + // sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + // }, + // onCancel() { + // }, + // }); } else { - this.props.getServiceError(dataReturn); + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } - if (callBack) { - callBack(); - } - }, timValue); + } else { + this.props.getServiceError(dataReturn); + } + if (callBack) { + callBack(); + } } else { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } diff --git a/src/components/Common/CommonListTabEvent.js b/src/components/Common/CommonListTabEvent.js index dab0106..d36a3e2 100644 --- a/src/components/Common/CommonListTabEvent.js +++ b/src/components/Common/CommonListTabEvent.js @@ -1195,22 +1195,14 @@ export default (ChildComponent) => { /* 消息列表双击打开时 调用获取websocket消息 */ if (sModelsType === 'commonList/msg') { const { webSocket, userinfo } = app; - const timValue = 2000; - if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) { - this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); - } - setTimeout(() => { - webSocket.onmessage = async (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showImg') { - const msgData = JSON.parse(msg.data); - dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); - }, timValue); + webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showImg') { + const msgData = JSON.parse(msg.data); + dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); + } + }; + this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); if (this.props.app.currentPane.refresh !== undefined) { this.props.app.currentPane.refresh(); } @@ -1853,77 +1845,60 @@ export default (ChildComponent) => { sIdArray.push(item.sSlaveId); } }); - 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(async () => { - const tempData = JSON.parse(JSON.stringify(copyToData || [])); - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - const { formRoute } = this.state; - if (commonUtils.isNotEmptyArr(tempData)) { - copyTo.name = name; - copyTo.config = copyToConfig; - if(name !== 'ActOutsideProcessTemp') { - copyTo.masterData = tempData[0]; - copyTo.slaveData = tempData; - copyTo.copyOtherData = addcopyOther; - } - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ - dispatch({ - type: 'content/onRouter', - payload: { - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), - sSrcModelsId: this.props.sModelsId, - }, - }); - } else { - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 + const tempData = JSON.parse(JSON.stringify(copyToData || [])); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + const { formRoute } = this.state; + if (commonUtils.isNotEmptyArr(tempData)) { + copyTo.name = name; + copyTo.config = copyToConfig; + if(name !== 'ActOutsideProcessTemp') { + copyTo.masterData = tempData[0]; + copyTo.slaveData = tempData; + copyTo.copyOtherData = addcopyOther; } + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), + sSrcModelsId: this.props.sModelsId, + }, + }); } else { - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ - } - } 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 } }); + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - const sId = sIdArray.toString(); - const getData = this.handleGetData; - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; - const values = { sSlaveId: sId }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - const sendSocketMessage = this.props.handleSendSocketMessage; - if (dataReturn.dataset.rows.length > 0) { - confirm({ - title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ - onOk() { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - }, - onCancel() { - }, - }); } else { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ } + } + }; + const sId = sIdArray.toString(); + const getData = this.handleGetData; + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const sendSocketMessage = this.props.handleSendSocketMessage; + if (dataReturn.dataset.rows.length > 0) { + confirm({ + title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + onOk() { + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + }, + onCancel() { + }, + }); } else { - this.props.getServiceError(dataReturn); + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } - }, timValue); + } else { + this.props.getServiceError(dataReturn); + } } else { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } @@ -1999,84 +1974,67 @@ export default (ChildComponent) => { sIdArray.push(item.sSlaveId); } }); - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - const { formRoute } = this.state; - if (commonUtils.isNotEmptyArr(copyToData)) { - const copyTo = {}; - copyTo.name = name; - copyTo.config = copyToConfig; - copyTo.masterData = copyToData[0]; - copyTo.slaveData = copyToData; - copyTo.copyOtherData = addcopyOther; - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ - dispatch({ - type: 'content/onRouter', - payload: { - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), - sSrcModelsId: this.props.sModelsId, - }, - }); - } else { - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 - } - } else { - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ - } - } 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 } }); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + const { formRoute } = this.state; + if (commonUtils.isNotEmptyArr(copyToData)) { + const copyTo = {}; + copyTo.name = name; + copyTo.config = copyToConfig; + copyTo.masterData = copyToData[0]; + copyTo.slaveData = copyToData; + copyTo.copyOtherData = addcopyOther; + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), + sSrcModelsId: this.props.sModelsId, + }, + }); } else { - dispatch({ type: 'app/throwError', payload: { code: -2, msg: rtmsg.msg } }); - } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - const sId = sIdArray.toString(); - const getData = this.handleGetData; - - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName='/indexOee/commonOeeBill'`; - const values = { sSlaveId: sId }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - const sendSocketMessage = this.props.handleSendSocketMessage; - if (dataReturn.dataset.rows.length > 0) { - const { sId } = dataReturn.dataset.rows[0]; - if (commonUtils.isNotEmptyObject(sId)) { /* 查看 */ - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - this.props.onSaveOeeState({ checkedId: sId }); + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } - // confirm({ - // title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ - // onOk() { - // sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - // }, - // onCancel() { - // }, - // }); } else { + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ + } + } + }; + const sId = sIdArray.toString(); + const getData = this.handleGetData; + + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName='/indexOee/commonOeeBill'`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const sendSocketMessage = this.props.handleSendSocketMessage; + if (dataReturn.dataset.rows.length > 0) { + const { sId } = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(sId)) { /* 查看 */ sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + this.props.onSaveOeeState({ checkedId: sId }); } + // confirm({ + // title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + // onOk() { + // sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + // }, + // onCancel() { + // }, + // }); } else { - this.props.getServiceError(dataReturn); - } - if (callBack) { - callBack(); + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } - }, timValue); + } else { + this.props.getServiceError(dataReturn); + } + if (callBack) { + callBack(); + } } else { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } diff --git a/src/components/Common/CommonListTreeEvent.js b/src/components/Common/CommonListTreeEvent.js index 2fbdec1..8ddf5d7 100644 --- a/src/components/Common/CommonListTreeEvent.js +++ b/src/components/Common/CommonListTreeEvent.js @@ -434,22 +434,14 @@ export default (ChildComponent) => { /* 消息列表双击打开时 调用获取websocket消息 */ if (sModelsType === 'commonList/msg') { const { webSocket, userinfo } = app; - const timValue = 2000; - if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) { - this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); - } - setTimeout(() => { - webSocket.onmessage = async (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showImg') { - const msgData = JSON.parse(msg.data); - dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); - }, timValue); + webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showImg') { + const msgData = JSON.parse(msg.data); + dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); + } + }; + this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); if (this.props.app.currentPane.refresh !== undefined) { this.props.app.currentPane.refresh(); } @@ -1243,76 +1235,59 @@ export default (ChildComponent) => { sIdArray.push(item.sId); } }); - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - const { formRoute } = this.state; - if (commonUtils.isNotEmptyArr(copyToData)) { - copyTo.name = name; - copyTo.config = copyToConfig; - if (!name.includes('BtnCopyTo.copyToOrder') && !name.includes('BtnCopyTo.tmpInfo')) { - copyTo.masterData = copyToData[0]; - copyTo.slaveData = copyToData; - copyTo.copyOtherData = addcopyOther; - } - copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ - dispatch({ - type: 'content/onRouter', - payload: { - url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), - sSrcModelsId: this.props.sModelsId, - }, - }); - } else { - message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + const { formRoute } = this.state; + if (commonUtils.isNotEmptyArr(copyToData)) { + copyTo.name = name; + copyTo.config = copyToConfig; + if (!name.includes('BtnCopyTo.copyToOrder') && !name.includes('BtnCopyTo.tmpInfo')) { + copyTo.masterData = copyToData[0]; + copyTo.slaveData = copyToData; + copyTo.copyOtherData = addcopyOther; } + copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */ + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */ + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition), + sSrcModelsId: this.props.sModelsId, + }, + }); } else { - message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ - } - } 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 } }); + message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - const sId = sIdArray.toString(); - const getData = this.handleGetData; - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; - const values = { sSlaveId: sId }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - const sendSocketMessage = this.props.handleSendSocketMessage; - if (dataReturn.dataset.rows.length > 0) { - confirm({ - title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ - onOk() { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); - }, - onCancel() { - }, - }); } else { - sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */ } + } + }; + const sId = sIdArray.toString(); + const getData = this.handleGetData; + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const sendSocketMessage = this.props.handleSendSocketMessage; + if (dataReturn.dataset.rows.length > 0) { + confirm({ + title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + onOk() { + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); + }, + onCancel() { + }, + }); } else { - this.props.getServiceError(dataReturn); + sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null); } - }, timValue); + } else { + this.props.getServiceError(dataReturn); + } } else { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } diff --git a/src/components/Common/CommonNewBillEvent.js b/src/components/Common/CommonNewBillEvent.js index 5cc37bb..9de283d 100644 --- a/src/components/Common/CommonNewBillEvent.js +++ b/src/components/Common/CommonNewBillEvent.js @@ -1436,46 +1436,17 @@ export default ChildComponent => { } } } - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: "test" }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); + this.props.app.webSocket.onmessageTmp = async msg => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === "showMsg") { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === "update") { + await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, "update"); + this.props.onSaveState({ enabled: true, loading: false }); + } }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async msg => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === "showMsg") { - message.warning(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") { - await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, "update"); - 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); + this.props.handleSendSocketMessage("update", "showMsg", currentId, userinfo.sId, null, null); }; /** 表单回带 */ diff --git a/src/components/Common/CommonNewTabBillEvent.js b/src/components/Common/CommonNewTabBillEvent.js index 739c99d..ee60ec4 100644 --- a/src/components/Common/CommonNewTabBillEvent.js +++ b/src/components/Common/CommonNewTabBillEvent.js @@ -1517,98 +1517,69 @@ export default (ChildComponent) => { } } } - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); - }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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') { - if (formRoute === '/indexPage/commonCostomTabBill') { - if(commonUtils.isNotEmptyArr(configArr)) { - const queryConfigArr = configArr.filter(([_, config]) => config.sSqlStr !== 'noQuery'); - addState.queryConfigArr = queryConfigArr; - addReturn = this.handleGetData1(queryConfigArr,undefined, { type: 'init'}, true); - const materialsConfigArr = formData.filter(item => item.sTbName === 'salsalesordermaterials' && - (item.showName === "工序物料" || item.showName === "全部材料")) || []; - /* 获取物料数据 */ - if(commonUtils.isNotEmptyArr(materialsConfigArr)) { - this.handleGetTableData(this.props, 'materials'); - } - const revisionArr = formData.filter(item => item.sTbName === 'salsalesorderrevision' && item.showName === "改版处") || []; - /* 获取物料数据 */ - if(commonUtils.isNotEmptyArr(revisionArr)) { - this.handleGetTableData(this.props, 'revision'); + this.props.app.webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + if (formRoute === '/indexPage/commonCostomTabBill') { + if(commonUtils.isNotEmptyArr(configArr)) { + const queryConfigArr = configArr.filter(([_, config]) => config.sSqlStr !== 'noQuery'); + addState.queryConfigArr = queryConfigArr; + addReturn = this.handleGetData1(queryConfigArr,undefined, { type: 'init'}, true); + const materialsConfigArr = formData.filter(item => item.sTbName === 'salsalesordermaterials' && + (item.showName === "工序物料" || item.showName === "全部材料")) || []; + /* 获取物料数据 */ + if(commonUtils.isNotEmptyArr(materialsConfigArr)) { + this.handleGetTableData(this.props, 'materials'); + } + const revisionArr = formData.filter(item => item.sTbName === 'salsalesorderrevision' && item.showName === "改版处") || []; + /* 获取物料数据 */ + if(commonUtils.isNotEmptyArr(revisionArr)) { + this.handleGetTableData(this.props, 'revision'); + } + const dataRelationJson = {}; + const relateRelationJson = {}; + const noQueryConfigArr = configArr.filter(([_, config]) => config.sSqlStr === 'noQuery'); + noQueryConfigArr.forEach(item => { + const [name, config] = item; + const { sTbName } = config; + const iIndex = queryConfigArr.findIndex(item => item[1].sTbName === sTbName); + if (iIndex !== -1) { + dataRelationJson[name] = queryConfigArr[iIndex][0]; } - const dataRelationJson = {}; - const relateRelationJson = {}; - const noQueryConfigArr = configArr.filter(([_, config]) => config.sSqlStr === 'noQuery'); - noQueryConfigArr.forEach(item => { - const [name, config] = item; - const { sTbName } = config; + }); + const childMaterialsInfoArr = formData.filter(item => item.sSqlStr === 'noQuery' && item.showName.includes("物料信息") )|| []; + if(commonUtils.isNotEmptyArr(childMaterialsInfoArr)) { + relateRelationJson['slave3Child0'] = 'materials'; + } + /* 上批数据逻辑处理 */ + const childNoQueryConfigArr = formData.filter(item => item.sSqlStr === 'noQuery' && (item.showName.includes("对比") || item.showName.includes("上批"))) || []; + if(commonUtils.isNotEmptyArr(childNoQueryConfigArr)) { + childNoQueryConfigArr.forEach(itemChild => { + const { sTbName } = itemChild; const iIndex = queryConfigArr.findIndex(item => item[1].sTbName === sTbName); if (iIndex !== -1) { + const arr = itemChild.sGrd.split('_'); + const num = arr.length > 0 && Number(arr[1]) -1; + const name = arr[0]+'Child'+ num +'Child0'; dataRelationJson[name] = queryConfigArr[iIndex][0]; } }); - const childMaterialsInfoArr = formData.filter(item => item.sSqlStr === 'noQuery' && item.showName.includes("物料信息") )|| []; - if(commonUtils.isNotEmptyArr(childMaterialsInfoArr)) { - relateRelationJson['slave3Child0'] = 'materials'; - } - /* 上批数据逻辑处理 */ - const childNoQueryConfigArr = formData.filter(item => item.sSqlStr === 'noQuery' && (item.showName.includes("对比") || item.showName.includes("上批"))) || []; - if(commonUtils.isNotEmptyArr(childNoQueryConfigArr)) { - childNoQueryConfigArr.forEach(itemChild => { - const { sTbName } = itemChild; - const iIndex = queryConfigArr.findIndex(item => item[1].sTbName === sTbName); - if (iIndex !== -1) { - const arr = itemChild.sGrd.split('_'); - const num = arr.length > 0 && Number(arr[1]) -1; - const name = arr[0]+'Child'+ num +'Child0'; - dataRelationJson[name] = queryConfigArr[iIndex][0]; - } - }); - } - addState.dataRelationJson = dataRelationJson; - addState.relateRelationJson = relateRelationJson; - addState.processCardUpdate = true; - // addState.slave3Child0InfoData = []; } - }else { - await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, 'update'); + addState.dataRelationJson = dataRelationJson; + addState.relateRelationJson = relateRelationJson; + addState.processCardUpdate = true; + // addState.slave3Child0InfoData = []; } - this.props.onSaveState({ enabled: true, loading: false , ...addReturn, ...addState }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); + }else { + await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, 'update'); } - }; - this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); - }, timValue); + this.props.onSaveState({ enabled: true, loading: false , ...addReturn, ...addState }); + } + }; + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 表单回带 */ diff --git a/src/components/Common/CommonSubBillEvent.js b/src/components/Common/CommonSubBillEvent.js index c685c38..80fc478 100644 --- a/src/components/Common/CommonSubBillEvent.js +++ b/src/components/Common/CommonSubBillEvent.js @@ -1829,52 +1829,23 @@ export default (ChildComponent) => { }); return; } - 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; - } - const reset = (ws, config1) => { - clearTimeout(config1.timerServer); - clearTimeout(config1.serverTimer); - start(ws, config1); - }; - const start = (ws, config1) => { - config1.timerServer = setTimeout(() => { - const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 - ws.send(JSON.stringify(message)); - }, config1.timeoutServer); - }; - setTimeout(() => { - this.props.app.webSocket.onmessage = async (msg) => { - reset(this.props.app.webSocket, commonConfig); - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showMsg') { - message.warning(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') { - await this.handleGetData(masterConfig, slaveConfig, checkConfig, 'update'); - if(commonUtils.isNotEmptyObject(slaveChildConfig)) { - await this.handleGetOneMemoData('slaveChild', slaveChildConfig); - } - if(commonUtils.isNotEmptyObject(slave0Config)) { - await this.handleGetOneMemoData('slave0', slave0Config); - } - this.props.onSaveState({ enabled: true, calculated: false, loading: false }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); + this.props.app.webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + await this.handleGetData(masterConfig, slaveConfig, checkConfig, 'update'); + if(commonUtils.isNotEmptyObject(slaveChildConfig)) { + await this.handleGetOneMemoData('slaveChild', slaveChildConfig); } - }; - this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); - }, timValue); + if(commonUtils.isNotEmptyObject(slave0Config)) { + await this.handleGetOneMemoData('slave0', slave0Config); + } + this.props.onSaveState({ enabled: true, calculated: false, loading: false }); + } + }; + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 表单回带 */ handleForm = (form) => { diff --git a/src/components/Manufacture/WorkOrder/WorkOrder.js b/src/components/Manufacture/WorkOrder/WorkOrder.js index b165e32..94fd87c 100644 --- a/src/components/Manufacture/WorkOrder/WorkOrder.js +++ b/src/components/Manufacture/WorkOrder/WorkOrder.js @@ -462,292 +462,318 @@ class WorkOrder extends Component { if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'workOrderAllprogress') { - this.props.onSaveState({ - workOrderAllprogress: rtmsg.msg, - }); - } 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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let cpProcessName = ''; - checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; - // paramMap.modelName = masterData.modelName; - paramMap.sCustomerId = masterData.sCustomerId; - paramMap.sCustomerName = masterData.sCustomerName; - paramMap.sProductClassifyId = masterData.sProductClassifyId; - paramMap.sProductId = masterData.sProductId; - paramMap.sProductName = masterData.sProductName; - paramMap.sProductStyleId = masterData.sProductStyleId; - paramMap.sProductStyle = masterData.sProductStyle; - paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; - paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; - paramMap.dProductHeight = 0; - paramMap.dProductQty = masterData.dProductQty; - const partsInfo = []; - allPartsName.forEach((item) => { - const partInfo = {}; - partInfo.sPartsName = item; - partInfo.dPartsQty = masterData.dProductQty; - partInfo.dSumPQty = masterData[`dSumPQty${item}`]; - const materialsInfo = []; - const material = {}; - material.sMaterialsId = masterData[`sMaterialsId${item}`]; - material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; - material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; - materialsInfo.push(material); - partInfo.materialsInfo = materialsInfo; - partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; - partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; - if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { - const processInfo = []; - checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId + item])) { - if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { - partInfo.sPrintProcessId = masterData[card.sId + item]; - } else { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId + item]; + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'workOrderAllprogress') { + this.props.onSaveState({ + workOrderAllprogress: rtmsg.msg, + }); + } + }; + let cpProcessName = ''; + checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; + // paramMap.modelName = masterData.modelName; + paramMap.sCustomerId = masterData.sCustomerId; + paramMap.sCustomerName = masterData.sCustomerName; + paramMap.sProductClassifyId = masterData.sProductClassifyId; + paramMap.sProductId = masterData.sProductId; + paramMap.sProductName = masterData.sProductName; + paramMap.sProductStyleId = masterData.sProductStyleId; + paramMap.sProductStyle = masterData.sProductStyle; + paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; + paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; + paramMap.dProductHeight = 0; + paramMap.dProductQty = masterData.dProductQty; + const partsInfo = []; + allPartsName.forEach((item) => { + const partInfo = {}; + partInfo.sPartsName = item; + partInfo.dPartsQty = masterData.dProductQty; + partInfo.dSumPQty = masterData[`dSumPQty${item}`]; + const materialsInfo = []; + const material = {}; + material.sMaterialsId = masterData[`sMaterialsId${item}`]; + material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; + material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; + materialsInfo.push(material); + partInfo.materialsInfo = materialsInfo; + partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; + partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; + if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { + const processInfo = []; + checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId + item])) { + if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { + partInfo.sPrintProcessId = masterData[card.sId + item]; + } else { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId + item]; - if (masterData[card.sId + card.sName + item] !== undefined) { - process.sProcessName = masterData[card.sId + card.sName + item]; - process.sType = masterData[card.sId + card.sType + item]; - processInfo.push(process); - } + if (masterData[card.sId + card.sName + item] !== undefined) { + process.sProcessName = masterData[card.sId + card.sName + item]; + process.sType = masterData[card.sId + card.sType + item]; + processInfo.push(process); } } - }); - partInfo.processInfo = processInfo; - partsInfo.push(partInfo); - } - }); - const productProcess = []; - checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId])) { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId]; - process.sProcessName = masterData[card.sId + card.sName]; - if (masterData[card.sId + card.sName] !== undefined) { - cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; - productProcess.push(process); } + }); + partInfo.processInfo = processInfo; + partsInfo.push(partInfo); + } + }); + const productProcess = []; + checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId])) { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId]; + process.sProcessName = masterData[card.sId + card.sName]; + if (masterData[card.sId + card.sName] !== undefined) { + cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; + productProcess.push(process); } - }); - paramMap.cpProcessName = cpProcessName; - paramMap.productProcessInfo = productProcess; - paramMap.partsInfo = partsInfo; - let numErr = false; - let numName = ''; - let num = 0; + } + }); + paramMap.cpProcessName = cpProcessName; + paramMap.productProcessInfo = productProcess; + paramMap.partsInfo = partsInfo; + let numErr = false; + let numName = ''; + let num = 0; - // eslint-disable-next-line array-callback-return - paramMap.partsInfo.map((item) => { - if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { - num = item.dSumPQty; - numName = item.sPartsName; - } - if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { - numErr = true; - numName = item.sPartsName; - } - }); - if (numErr) { - message.error(`${numName}P数必须是2的倍数!`); - return; + // eslint-disable-next-line array-callback-return + paramMap.partsInfo.map((item) => { + if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { + num = item.dSumPQty; + numName = item.sPartsName; } - if (num === 2) { - message.error(`${numName}P数必须大于4P!`); - return; + if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { + numErr = true; + numName = item.sPartsName; } + }); + if (numErr) { + message.error(`${numName}P数必须是2的倍数!`); + return; + } + if (num === 2) { + message.error(`${numName}P数必须大于4P!`); + return; + } - if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || - commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { - // this.props.onSaveState({ fastOrderModalVisible: false }); - message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ - return; - } - /* 验证产品规格是否 符合数字*数字格式 */ - const sProductStyle = paramMap.sProductStyle; - if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ - const arr = sProductStyle.split('*'); - const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; - if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { - for (let i = 0; i < arr.length; i += 1) { - if (!numCheck.test(arr[i])) { /* 验证是否数字 */ - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; - } + if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || + commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { + // this.props.onSaveState({ fastOrderModalVisible: false }); + message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ + return; + } + /* 验证产品规格是否 符合数字*数字格式 */ + const sProductStyle = paramMap.sProductStyle; + if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ + const arr = sProductStyle.split('*'); + const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; + if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { + for (let i = 0; i < arr.length; i += 1) { + if (!numCheck.test(arr[i])) { /* 验证是否数字 */ + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; } - } else { - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; } - /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } - if (flag === false) { - return; + /* 验证*两边是否是数字 */ + } else { + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; + } + if (flag === false) { + return; + } + this.props.onSaveState({ + Loading: true, + }); + const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + if (dataReturn.code === 1) { + const { + productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, + } = dataReturn.dataset.rows[0]; + const slaveData = []; + const controlData = []; + const materialsData = []; + let processData = []; + const tableDataRow = {}; + for (const item of slaveConfig.gdsconfigformslave) { + tableDataRow[item.sName] = masterData[item.sName]; } - this.props.onSaveState({ - Loading: true, - }); - const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; - const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; - if (dataReturn.code === 1) { - const { - productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, - } = dataReturn.dataset.rows[0]; - const slaveData = []; - const controlData = []; - const materialsData = []; - let processData = []; - const tableDataRow = {}; - for (const item of slaveConfig.gdsconfigformslave) { - tableDataRow[item.sName] = masterData[item.sName]; + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.iOrder = 1; + tableDataRow.sParentId = masterData.sId; + // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); + productIdDropDown = sqlDropDownData.dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1) { + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + slaveData.push(tableDataRow); + const sInfoArr = []; + if (!commonUtils.isEmptyArr(partsOldInfo)) { + partsOldInfo.forEach((item) => { + if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { + this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); + } + }); + } + if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ + partsNewInfo.forEach((item) => { + const { sPartsName, sInfo } = item; + const sInfoObj = {}; + sInfoObj.sPartsName = sPartsName; + sInfoObj.sInfo = sInfo; + sInfoArr.push(sInfoObj); + }); + } + const bProcessAssort = true; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + } } - tableDataRow.sId = commonUtils.createSid(); - tableDataRow.handleType = 'add'; - tableDataRow.iOrder = 1; - tableDataRow.sParentId = masterData.sId; - // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); - let productIdDropDown; - const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); - if (slaveIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); - productIdDropDown = sqlDropDownData.dropDownData; + } + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; + partsNewInfo.forEach((partInfo, iIndex) => { + const partsDataRow = {}; + for (const child of Object.keys(partInfo)) { + partsDataRow[child] = partInfo[child]; } - const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); - if (iProductIdIndex === -1) { - tableDataRow.sProductId = tableDataRow.sProductName; - tableDataRow.sProductInfo = JSON.stringify({ - sProductId: tableDataRow.sProductName, - sProductName: tableDataRow.sProductName, - sProductStyle: tableDataRow.sProductStyle, - sProductUnit: tableDataRow.sProductUnit, - sProductNo: tableDataRow.sProductNo, - sCustomerProductNo: tableDataRow.sCustomerProductNo, - sProductClassifyId: tableDataRow.sProductClassifyId, - sProductClassifyName: tableDataRow.sProductClassifyName, - }); - } else { - tableDataRow.sProductInfo = ''; + partsDataRow.handleType = 'add'; + partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ + partsDataRow.sId = commonUtils.createSid(); + partsDataRow.sParentId = masterData.sId; + if (partsDataRow.iPrintMode !== 3) { + partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; } - slaveData.push(tableDataRow); - const sInfoArr = []; - if (!commonUtils.isEmptyArr(partsOldInfo)) { - partsOldInfo.forEach((item) => { - if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { - this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); - } - }); + delete partsDataRow.dMaterialsKQty; + delete partsDataRow.dMaterialsLength; + delete partsDataRow.dMaterialsWidth; + if (productClassify.bSpecialRules) { + partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; + partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; } - if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ - partsNewInfo.forEach((item) => { - const { sPartsName, sInfo } = item; - const sInfoObj = {}; - sInfoObj.sPartsName = sPartsName; - sInfoObj.sInfo = sInfo; - sInfoArr.push(sInfoObj); - }); + controlData.push(partsDataRow); + // 材料信息 + partInfo.materialsInfo.forEach((materialInfo, iOrder) => { + const materialDataRow = {}; + for (const item of materialsConfig.gdsconfigformslave) { + materialDataRow[item.sName] = materialInfo[item.sName]; + } + materialDataRow.handleType = 'add'; + materialDataRow.sType = '0'; + materialDataRow.iPartOrder = iIndex; + materialDataRow.iOrder = iOrder + 1; + materialDataRow.sPartsName = partsDataRow.sPartsName; + materialDataRow.sId = commonUtils.createSid(); + materialDataRow.sParentId = masterData.sId; + materialDataRow.sControlId = partsDataRow.sId; + materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; + materialsData.push(materialDataRow); + }); + // 工序信息 + let processPrintDataRow = {}; + processPrintDataRow.handleType = 'add'; + processPrintDataRow.sProcessId = partInfo.sProcessId; + const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); + if (iProcessPrintIndex > -1) { + processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 } - const bProcessAssort = true; - let returnProcessAssort = []; - let processAssignAssort = ''; - let dropDownDataProcessName; + processPrintDataRow.sType = partInfo.sType; + processPrintDataRow.iPartOrder = iIndex; + processPrintDataRow.iOrder = 1; + processPrintDataRow.sProcessName = partInfo.sProcessName; + processPrintDataRow.sPartsName = partsDataRow.sPartsName; + processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; + processPrintDataRow.dLossQty = partInfo.dLossQty; + processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; + processPrintDataRow.sId = commonUtils.createSid(); + processPrintDataRow.sParentId = masterData.sId; + processPrintDataRow.sControlId = partsDataRow.sId; + processData.push(processPrintDataRow); + // 配套工序 if (bProcessAssort) { - const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; - const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; - if (dataProcessAssort.code === 1) { - returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; - const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); - if (iIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); - dropDownDataProcessName = sqlDropDownData.dropDownData; - processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); } - } + })); } - const newCopyTo = {}; - newCopyTo.master = masterData; - newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; - partsNewInfo.forEach((partInfo, iIndex) => { - const partsDataRow = {}; - for (const child of Object.keys(partInfo)) { - partsDataRow[child] = partInfo[child]; - } - partsDataRow.handleType = 'add'; - partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ - partsDataRow.sId = commonUtils.createSid(); - partsDataRow.sParentId = masterData.sId; - if (partsDataRow.iPrintMode !== 3) { - partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + + partInfo.processInfo.forEach((process, iOrder) => { + let processAfterDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processAfterDataRow[item.sName] = process[item.sName]; } - delete partsDataRow.dMaterialsKQty; - delete partsDataRow.dMaterialsLength; - delete partsDataRow.dMaterialsWidth; - if (productClassify.bSpecialRules) { - partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; - partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + for (const child of Object.keys(process)) { + processAfterDataRow[child] = process[child]; } - controlData.push(partsDataRow); - // 材料信息 - partInfo.materialsInfo.forEach((materialInfo, iOrder) => { - const materialDataRow = {}; - for (const item of materialsConfig.gdsconfigformslave) { - materialDataRow[item.sName] = materialInfo[item.sName]; - } - materialDataRow.handleType = 'add'; - materialDataRow.sType = '0'; - materialDataRow.iPartOrder = iIndex; - materialDataRow.iOrder = iOrder + 1; - materialDataRow.sPartsName = partsDataRow.sPartsName; - materialDataRow.sId = commonUtils.createSid(); - materialDataRow.sParentId = masterData.sId; - materialDataRow.sControlId = partsDataRow.sId; - materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; - materialsData.push(materialDataRow); - }); - // 工序信息 - let processPrintDataRow = {}; - processPrintDataRow.handleType = 'add'; - processPrintDataRow.sProcessId = partInfo.sProcessId; - const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); - if (iProcessPrintIndex > -1) { - processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 + processAfterDataRow.handleType = 'add'; + processAfterDataRow.sProcessId = process.sProcessId; + const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); + if (iProcessAfterIndex > -1) { + processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 } - processPrintDataRow.sType = partInfo.sType; - processPrintDataRow.iPartOrder = iIndex; - processPrintDataRow.iOrder = 1; - processPrintDataRow.sProcessName = partInfo.sProcessName; - processPrintDataRow.sPartsName = partsDataRow.sPartsName; - processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; - processPrintDataRow.dLossQty = partInfo.dLossQty; - processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; - processPrintDataRow.sId = commonUtils.createSid(); - processPrintDataRow.sParentId = masterData.sId; - processPrintDataRow.sControlId = partsDataRow.sId; - processData.push(processPrintDataRow); + processAfterDataRow.sType = process.sType; + processAfterDataRow.iPartOrder = iIndex; + processAfterDataRow.iOrder = iOrder + 1; + processAfterDataRow.sPartsName = partsDataRow.sPartsName; + processAfterDataRow.sId = commonUtils.createSid(); + processAfterDataRow.sParentId = masterData.sId; + processAfterDataRow.sControlId = partsDataRow.sId; + processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { @@ -767,115 +793,72 @@ class WorkOrder extends Component { } })); } - - partInfo.processInfo.forEach((process, iOrder) => { - let processAfterDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processAfterDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processAfterDataRow[child] = process[child]; - } - processAfterDataRow.handleType = 'add'; - processAfterDataRow.sProcessId = process.sProcessId; - const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); - if (iProcessAfterIndex > -1) { - processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 - } - processAfterDataRow.sType = process.sType; - processAfterDataRow.iPartOrder = iIndex; - processAfterDataRow.iOrder = iOrder + 1; - processAfterDataRow.sPartsName = partsDataRow.sPartsName; - processAfterDataRow.sId = commonUtils.createSid(); - processAfterDataRow.sParentId = masterData.sId; - processAfterDataRow.sControlId = partsDataRow.sId; - processData.push(processAfterDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - }); }); - productProcessInfo.forEach((process, iOrder) => { - let processProductDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processProductDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processProductDataRow[child] = process[child]; - } - const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); - if (iProductProcessIndex > -1) { - processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 - } - processProductDataRow.handleType = 'add'; - processProductDataRow.sType = '3'; - processProductDataRow.sPartsName = ''; - processProductDataRow.iPartOrder = 999; - processProductDataRow.iOrder = iOrder + 1; - processProductDataRow.sId = commonUtils.createSid(); - processProductDataRow.sParentId = masterData.sId; - processData.push(processProductDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - }); - processData = this.sortData(controlData, processData); - const addState = {}; - if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { - addState.controlSelectedRowKeys = [controlData[0].sId]; - } else { - addState.controlSelectedRowKeys = []; + }); + productProcessInfo.forEach((process, iOrder) => { + let processProductDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processProductDataRow[item.sName] = process[item.sName]; } - this.props.onSaveState({ - slaveData, - controlData, - materialsData, - processData, - fastOrderModalVisible: false, - workOrderAllprogress: 0, - ...addState, - materialsSelectedRowKeys: [], - sInfoArr, - bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), - Loading: false, - }); + for (const child of Object.keys(process)) { + processProductDataRow[child] = process[child]; + } + const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); + if (iProductProcessIndex > -1) { + processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + } + processProductDataRow.handleType = 'add'; + processProductDataRow.sType = '3'; + processProductDataRow.sPartsName = ''; + processProductDataRow.iPartOrder = 999; + processProductDataRow.iOrder = iOrder + 1; + processProductDataRow.sId = commonUtils.createSid(); + processProductDataRow.sParentId = masterData.sId; + processData.push(processProductDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); + } + })); + } + }); + processData = this.sortData(controlData, processData); + const addState = {}; + if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { + addState.controlSelectedRowKeys = [controlData[0].sId]; } else { - this.props.getServiceError(dataReturn); - this.props.onSaveState({ - Loading: false, - }); + addState.controlSelectedRowKeys = []; } - }, timValue); + this.props.onSaveState({ + slaveData, + controlData, + materialsData, + processData, + fastOrderModalVisible: false, + workOrderAllprogress: 0, + ...addState, + materialsSelectedRowKeys: [], + sInfoArr, + bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), + Loading: false, + }); + } else { + this.props.getServiceError(dataReturn); + this.props.onSaveState({ + Loading: false, + }); + } }; /* 勾选工序分类 */ diff --git a/src/components/Manufacture/WorkOrderPack/WorkOrderPack.js b/src/components/Manufacture/WorkOrderPack/WorkOrderPack.js index 500c370..d6da125 100644 --- a/src/components/Manufacture/WorkOrderPack/WorkOrderPack.js +++ b/src/components/Manufacture/WorkOrderPack/WorkOrderPack.js @@ -674,289 +674,315 @@ class WorkOrderPack extends Component { if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'workOrderAllprogress') { - this.props.onSaveState({ - workOrderAllprogress: rtmsg.msg, - }); - } 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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let cpProcessName = ''; - checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; - // paramMap.modelName = masterData.modelName; - paramMap.sCustomerId = masterData.sCustomerId; - paramMap.sCustomerName = masterData.sCustomerName; - paramMap.sProductClassifyId = masterData.sProductClassifyId; - paramMap.sProductId = masterData.sProductId; - paramMap.sProductName = masterData.sProductName; - paramMap.sProductStyleId = masterData.sProductStyleId; - paramMap.sProductStyle = masterData.sProductStyle; - paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; - paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; - paramMap.dProductHeight = 0; - paramMap.dProductQty = masterData.dProductQty; - const partsInfo = []; - allPartsName.forEach((item) => { - const partInfo = {}; - partInfo.sPartsName = item; - partInfo.dPartsQty = masterData.dProductQty; - partInfo.dSumPQty = masterData[`dSumPQty${item}`]; - const materialsInfo = []; - const material = {}; - material.sMaterialsId = masterData[`sMaterialsId${item}`]; - material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; - material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; - materialsInfo.push(material); - partInfo.materialsInfo = materialsInfo; - partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; - partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; - if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { - const processInfo = []; - checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId + item])) { - if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { - partInfo.sPrintProcessId = masterData[card.sId + item]; - } else { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId + item]; - - if (masterData[card.sId + card.sName + item] !== undefined) { - process.sProcessName = masterData[card.sId + card.sName + item]; - process.sType = masterData[card.sId + card.sType + item]; - processInfo.push(process); - } + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'workOrderAllprogress') { + this.props.onSaveState({ + workOrderAllprogress: rtmsg.msg, + }); + } + }; + let cpProcessName = ''; + checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; + // paramMap.modelName = masterData.modelName; + paramMap.sCustomerId = masterData.sCustomerId; + paramMap.sCustomerName = masterData.sCustomerName; + paramMap.sProductClassifyId = masterData.sProductClassifyId; + paramMap.sProductId = masterData.sProductId; + paramMap.sProductName = masterData.sProductName; + paramMap.sProductStyleId = masterData.sProductStyleId; + paramMap.sProductStyle = masterData.sProductStyle; + paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; + paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; + paramMap.dProductHeight = 0; + paramMap.dProductQty = masterData.dProductQty; + const partsInfo = []; + allPartsName.forEach((item) => { + const partInfo = {}; + partInfo.sPartsName = item; + partInfo.dPartsQty = masterData.dProductQty; + partInfo.dSumPQty = masterData[`dSumPQty${item}`]; + const materialsInfo = []; + const material = {}; + material.sMaterialsId = masterData[`sMaterialsId${item}`]; + material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; + material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; + materialsInfo.push(material); + partInfo.materialsInfo = materialsInfo; + partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; + partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; + if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { + const processInfo = []; + checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId + item])) { + if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { + partInfo.sPrintProcessId = masterData[card.sId + item]; + } else { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId + item]; + + if (masterData[card.sId + card.sName + item] !== undefined) { + process.sProcessName = masterData[card.sId + card.sName + item]; + process.sType = masterData[card.sId + card.sType + item]; + processInfo.push(process); } } - }); - partInfo.processInfo = processInfo; - partsInfo.push(partInfo); - } - }); - const productProcess = []; - checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId])) { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId]; - process.sProcessName = masterData[card.sId + card.sName]; - if (masterData[card.sId + card.sName] !== undefined) { - cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; - productProcess.push(process); } + }); + partInfo.processInfo = processInfo; + partsInfo.push(partInfo); + } + }); + const productProcess = []; + checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId])) { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId]; + process.sProcessName = masterData[card.sId + card.sName]; + if (masterData[card.sId + card.sName] !== undefined) { + cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; + productProcess.push(process); } - }); - paramMap.cpProcessName = cpProcessName; - paramMap.productProcessInfo = productProcess; - paramMap.partsInfo = partsInfo; - let numErr = false; - let numName = ''; - let num = 0; - - // eslint-disable-next-line array-callback-return - paramMap.partsInfo.map((item) => { - if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { - num = item.dSumPQty; - numName = item.sPartsName; - } - if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { - numErr = true; - numName = item.sPartsName; - } - }); - if (numErr) { - message.error(`${numName}P数必须是2的倍数!`); - return; } - if (num === 2) { - message.error(`${numName}P数必须大于4P!`); - return; + }); + paramMap.cpProcessName = cpProcessName; + paramMap.productProcessInfo = productProcess; + paramMap.partsInfo = partsInfo; + let numErr = false; + let numName = ''; + let num = 0; + + // eslint-disable-next-line array-callback-return + paramMap.partsInfo.map((item) => { + if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { + num = item.dSumPQty; + numName = item.sPartsName; + } + if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { + numErr = true; + numName = item.sPartsName; } + }); + if (numErr) { + message.error(`${numName}P数必须是2的倍数!`); + return; + } + if (num === 2) { + message.error(`${numName}P数必须大于4P!`); + return; + } - if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || - commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { - // this.props.onSaveState({ fastOrderModalVisible: false }); - message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ - return; - } - /* 验证产品规格是否 符合数字*数字格式 */ - const sProductStyle = paramMap.sProductStyle; - if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ - const arr = sProductStyle.split('*'); - const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; - if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { - for (let i = 0; i < arr.length; i += 1) { - if (!numCheck.test(arr[i])) { /* 验证是否数字 */ - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; - } + if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || + commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { + // this.props.onSaveState({ fastOrderModalVisible: false }); + message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ + return; + } + /* 验证产品规格是否 符合数字*数字格式 */ + const sProductStyle = paramMap.sProductStyle; + if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ + const arr = sProductStyle.split('*'); + const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; + if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { + for (let i = 0; i < arr.length; i += 1) { + if (!numCheck.test(arr[i])) { /* 验证是否数字 */ + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; } - } else { - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; } - /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } - this.props.onSaveState({ - Loading: true, - }); - const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; - const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; - if (dataReturn.code === 1) { - const { - productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, - } = dataReturn.dataset.rows[0]; - const slaveData = []; - const controlData = []; - const materialsData = []; - let processData = []; - const tableDataRow = {}; - for (const item of slaveConfig.gdsconfigformslave) { - tableDataRow[item.sName] = masterData[item.sName]; - } - tableDataRow.sId = commonUtils.createSid(); - tableDataRow.handleType = 'add'; - tableDataRow.iOrder = 1; - tableDataRow.sParentId = masterData.sId; - // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); - let productIdDropDown; - const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); - if (slaveIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); - productIdDropDown = sqlDropDownData.dropDownData; - } - const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); - if (iProductIdIndex === -1) { - tableDataRow.sProductId = tableDataRow.sProductName; - tableDataRow.sProductInfo = JSON.stringify({ - sProductId: tableDataRow.sProductName, - sProductName: tableDataRow.sProductName, - sProductStyle: tableDataRow.sProductStyle, - sProductUnit: tableDataRow.sProductUnit, - sProductNo: tableDataRow.sProductNo, - sCustomerProductNo: tableDataRow.sCustomerProductNo, - sProductClassifyId: tableDataRow.sProductClassifyId, - sProductClassifyName: tableDataRow.sProductClassifyName, - }); - } else { - tableDataRow.sProductInfo = ''; - } - slaveData.push(tableDataRow); - const sInfoArr = []; - if (!commonUtils.isEmptyArr(partsOldInfo)) { - partsOldInfo.forEach((item) => { - if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { - this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); - } - }); - } - if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ - partsNewInfo.forEach((item) => { - const { sPartsName, sInfo } = item; - const sInfoObj = {}; - sInfoObj.sPartsName = sPartsName; - sInfoObj.sInfo = sInfo; - sInfoArr.push(sInfoObj); - }); + /* 验证*两边是否是数字 */ + } else { + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; + } + this.props.onSaveState({ + Loading: true, + }); + const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + if (dataReturn.code === 1) { + const { + productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, + } = dataReturn.dataset.rows[0]; + const slaveData = []; + const controlData = []; + const materialsData = []; + let processData = []; + const tableDataRow = {}; + for (const item of slaveConfig.gdsconfigformslave) { + tableDataRow[item.sName] = masterData[item.sName]; + } + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.iOrder = 1; + tableDataRow.sParentId = masterData.sId; + // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); + productIdDropDown = sqlDropDownData.dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1) { + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + slaveData.push(tableDataRow); + const sInfoArr = []; + if (!commonUtils.isEmptyArr(partsOldInfo)) { + partsOldInfo.forEach((item) => { + if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { + this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); + } + }); + } + if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ + partsNewInfo.forEach((item) => { + const { sPartsName, sInfo } = item; + const sInfoObj = {}; + sInfoObj.sPartsName = sPartsName; + sInfoObj.sInfo = sInfo; + sInfoArr.push(sInfoObj); + }); + } + const bProcessAssort = true; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + } } - const bProcessAssort = true; - let returnProcessAssort = []; - let processAssignAssort = ''; - let dropDownDataProcessName; + } + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; + partsNewInfo.forEach((partInfo, iIndex) => { + const partsDataRow = {}; + for (const child of Object.keys(partInfo)) { + partsDataRow[child] = partInfo[child]; + } + partsDataRow.handleType = 'add'; + partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ + partsDataRow.sId = commonUtils.createSid(); + partsDataRow.sParentId = masterData.sId; + if (partsDataRow.iPrintMode !== 3) { + partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + } + delete partsDataRow.dMaterialsKQty; + delete partsDataRow.dMaterialsLength; + delete partsDataRow.dMaterialsWidth; + if (productClassify.bSpecialRules) { + partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; + partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + } + controlData.push(partsDataRow); + // 材料信息 + partInfo.materialsInfo.forEach((materialInfo, iOrder) => { + const materialDataRow = {}; + for (const item of materialsConfig.gdsconfigformslave) { + materialDataRow[item.sName] = materialInfo[item.sName]; + } + materialDataRow.handleType = 'add'; + materialDataRow.sType = '0'; + materialDataRow.iPartOrder = iIndex; + materialDataRow.iOrder = iOrder + 1; + materialDataRow.sPartsName = partsDataRow.sPartsName; + materialDataRow.sId = commonUtils.createSid(); + materialDataRow.sParentId = masterData.sId; + materialDataRow.sControlId = partsDataRow.sId; + materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; + materialsData.push(materialDataRow); + }); + // 工序信息 + let processPrintDataRow = {}; + processPrintDataRow.handleType = 'add'; + processPrintDataRow.sProcessId = partInfo.sProcessId; + const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); + if (iProcessPrintIndex > -1) { + processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 + } + processPrintDataRow.sType = partInfo.sType; + processPrintDataRow.iPartOrder = iIndex; + processPrintDataRow.iOrder = 1; + processPrintDataRow.sProcessName = partInfo.sProcessName; + processPrintDataRow.sPartsName = partsDataRow.sPartsName; + processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; + processPrintDataRow.dLossQty = partInfo.dLossQty; + processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; + processPrintDataRow.sId = commonUtils.createSid(); + processPrintDataRow.sParentId = masterData.sId; + processPrintDataRow.sControlId = partsDataRow.sId; + processData.push(processPrintDataRow); + // 配套工序 if (bProcessAssort) { - const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; - const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; - if (dataProcessAssort.code === 1) { - returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; - const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); - if (iIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); - dropDownDataProcessName = sqlDropDownData.dropDownData; - processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); } - } + })); } - const newCopyTo = {}; - newCopyTo.master = masterData; - newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; - partsNewInfo.forEach((partInfo, iIndex) => { - const partsDataRow = {}; - for (const child of Object.keys(partInfo)) { - partsDataRow[child] = partInfo[child]; - } - partsDataRow.handleType = 'add'; - partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ - partsDataRow.sId = commonUtils.createSid(); - partsDataRow.sParentId = masterData.sId; - if (partsDataRow.iPrintMode !== 3) { - partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + + partInfo.processInfo.forEach((process, iOrder) => { + let processAfterDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processAfterDataRow[item.sName] = process[item.sName]; } - delete partsDataRow.dMaterialsKQty; - delete partsDataRow.dMaterialsLength; - delete partsDataRow.dMaterialsWidth; - if (productClassify.bSpecialRules) { - partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; - partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + for (const child of Object.keys(process)) { + processAfterDataRow[child] = process[child]; } - controlData.push(partsDataRow); - // 材料信息 - partInfo.materialsInfo.forEach((materialInfo, iOrder) => { - const materialDataRow = {}; - for (const item of materialsConfig.gdsconfigformslave) { - materialDataRow[item.sName] = materialInfo[item.sName]; - } - materialDataRow.handleType = 'add'; - materialDataRow.sType = '0'; - materialDataRow.iPartOrder = iIndex; - materialDataRow.iOrder = iOrder + 1; - materialDataRow.sPartsName = partsDataRow.sPartsName; - materialDataRow.sId = commonUtils.createSid(); - materialDataRow.sParentId = masterData.sId; - materialDataRow.sControlId = partsDataRow.sId; - materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; - materialsData.push(materialDataRow); - }); - // 工序信息 - let processPrintDataRow = {}; - processPrintDataRow.handleType = 'add'; - processPrintDataRow.sProcessId = partInfo.sProcessId; - const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); - if (iProcessPrintIndex > -1) { - processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 + processAfterDataRow.handleType = 'add'; + processAfterDataRow.sProcessId = process.sProcessId; + const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); + if (iProcessAfterIndex > -1) { + processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 } - processPrintDataRow.sType = partInfo.sType; - processPrintDataRow.iPartOrder = iIndex; - processPrintDataRow.iOrder = 1; - processPrintDataRow.sProcessName = partInfo.sProcessName; - processPrintDataRow.sPartsName = partsDataRow.sPartsName; - processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; - processPrintDataRow.dLossQty = partInfo.dLossQty; - processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; - processPrintDataRow.sId = commonUtils.createSid(); - processPrintDataRow.sParentId = masterData.sId; - processPrintDataRow.sControlId = partsDataRow.sId; - processData.push(processPrintDataRow); + processAfterDataRow.sType = process.sType; + processAfterDataRow.iPartOrder = iIndex; + processAfterDataRow.iOrder = iOrder + 1; + processAfterDataRow.sPartsName = partsDataRow.sPartsName; + processAfterDataRow.sId = commonUtils.createSid(); + processAfterDataRow.sParentId = masterData.sId; + processAfterDataRow.sControlId = partsDataRow.sId; + processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { @@ -976,116 +1002,73 @@ class WorkOrderPack extends Component { } })); } - - partInfo.processInfo.forEach((process, iOrder) => { - let processAfterDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processAfterDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processAfterDataRow[child] = process[child]; - } - processAfterDataRow.handleType = 'add'; - processAfterDataRow.sProcessId = process.sProcessId; - const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); - if (iProcessAfterIndex > -1) { - processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 - } - processAfterDataRow.sType = process.sType; - processAfterDataRow.iPartOrder = iIndex; - processAfterDataRow.iOrder = iOrder + 1; - processAfterDataRow.sPartsName = partsDataRow.sPartsName; - processAfterDataRow.sId = commonUtils.createSid(); - processAfterDataRow.sParentId = masterData.sId; - processAfterDataRow.sControlId = partsDataRow.sId; - processData.push(processAfterDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - }); }); - productProcessInfo.forEach((process, iOrder) => { - let processProductDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processProductDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processProductDataRow[child] = process[child]; - } - const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); - if (iProductProcessIndex > -1) { - processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 - } - processProductDataRow.handleType = 'add'; - processProductDataRow.sType = '3'; - processProductDataRow.sPartsName = ''; - processProductDataRow.iPartOrder = 999; - processProductDataRow.iOrder = iOrder + 1; - processProductDataRow.sId = commonUtils.createSid(); - processProductDataRow.sParentId = masterData.sId; - processData.push(processProductDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - }); - processData = this.sortData(controlData, processData); - const addState = {}; - if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { - addState.controlSelectedRowKeys = [controlData[0].sId]; - } else { - addState.controlSelectedRowKeys = []; + }); + productProcessInfo.forEach((process, iOrder) => { + let processProductDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processProductDataRow[item.sName] = process[item.sName]; + } + for (const child of Object.keys(process)) { + processProductDataRow[child] = process[child]; + } + const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); + if (iProductProcessIndex > -1) { + processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + } + processProductDataRow.handleType = 'add'; + processProductDataRow.sType = '3'; + processProductDataRow.sPartsName = ''; + processProductDataRow.iPartOrder = 999; + processProductDataRow.iOrder = iOrder + 1; + processProductDataRow.sId = commonUtils.createSid(); + processProductDataRow.sParentId = masterData.sId; + processData.push(processProductDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); + } + })); } - this.props.onSaveState({ - materialsConfig, - slaveData, - controlData, - materialsData, - processData, - fastOrderModalVisible: false, - workOrderAllprogress: 0, - ...addState, - materialsSelectedRowKeys: [], - sInfoArr, - bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), - Loading: false, - }); + }); + processData = this.sortData(controlData, processData); + const addState = {}; + if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { + addState.controlSelectedRowKeys = [controlData[0].sId]; } else { - this.props.getServiceError(dataReturn); - this.props.onSaveState({ - Loading: false, - }); + addState.controlSelectedRowKeys = []; } - }, timValue); + this.props.onSaveState({ + materialsConfig, + slaveData, + controlData, + materialsData, + processData, + fastOrderModalVisible: false, + workOrderAllprogress: 0, + ...addState, + materialsSelectedRowKeys: [], + sInfoArr, + bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), + Loading: false, + }); + } else { + this.props.getServiceError(dataReturn); + this.props.onSaveState({ + Loading: false, + }); + } }; /* 勾选工序分类 */ diff --git a/src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js b/src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js index 55b1a29..d284c6f 100644 --- a/src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js +++ b/src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js @@ -1099,431 +1099,414 @@ class WorkOrderPack extends Component { if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'workOrderAllprogress') { - this.props.onSaveState({ - workOrderAllprogress: rtmsg.msg, - }); - } 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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let cpProcessName = ''; - checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; - // paramMap.modelName = masterData.modelName; - paramMap.sCustomerId = masterData.sCustomerId; - paramMap.sCustomerName = masterData.sCustomerName; - paramMap.sProductClassifyId = masterData.sProductClassifyId; - paramMap.sProductId = masterData.sProductId; - paramMap.sProductName = masterData.sProductName; - paramMap.sProductStyleId = masterData.sProductStyleId; - paramMap.sProductStyle = masterData.sProductStyle; - paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; - paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; - paramMap.dProductHeight = 0; - paramMap.dProductQty = masterData.dProductQty; - const partsInfo = []; - allPartsName.forEach((item) => { - const partInfo = {}; - partInfo.sPartsName = item; - partInfo.dPartsQty = masterData.dProductQty; - partInfo.dSumPQty = masterData[`dSumPQty${item}`]; - const materialsInfo = []; - const material = {}; - material.sMaterialsId = masterData[`sMaterialsId${item}`]; - material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; - material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; - materialsInfo.push(material); - partInfo.materialsInfo = materialsInfo; - partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; - partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; - if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { - const processInfo = []; - checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId + item])) { - if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { - partInfo.sPrintProcessId = masterData[card.sId + item]; - } else { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId + item]; - - if (masterData[card.sId + card.sName + item] !== undefined) { - process.sProcessName = masterData[card.sId + card.sName + item]; - process.sType = masterData[card.sId + card.sType + item]; - processInfo.push(process); - } + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'workOrderAllprogress') { + this.props.onSaveState({ + workOrderAllprogress: rtmsg.msg, + }); + } + }; + let cpProcessName = ''; + checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; + // paramMap.modelName = masterData.modelName; + paramMap.sCustomerId = masterData.sCustomerId; + paramMap.sCustomerName = masterData.sCustomerName; + paramMap.sProductClassifyId = masterData.sProductClassifyId; + paramMap.sProductId = masterData.sProductId; + paramMap.sProductName = masterData.sProductName; + paramMap.sProductStyleId = masterData.sProductStyleId; + paramMap.sProductStyle = masterData.sProductStyle; + paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; + paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; + paramMap.dProductHeight = 0; + paramMap.dProductQty = masterData.dProductQty; + const partsInfo = []; + allPartsName.forEach((item) => { + const partInfo = {}; + partInfo.sPartsName = item; + partInfo.dPartsQty = masterData.dProductQty; + partInfo.dSumPQty = masterData[`dSumPQty${item}`]; + const materialsInfo = []; + const material = {}; + material.sMaterialsId = masterData[`sMaterialsId${item}`]; + material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; + material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; + materialsInfo.push(material); + partInfo.materialsInfo = materialsInfo; + partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; + partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; + if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { + const processInfo = []; + checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId + item])) { + if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { + partInfo.sPrintProcessId = masterData[card.sId + item]; + } else { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId + item]; + + if (masterData[card.sId + card.sName + item] !== undefined) { + process.sProcessName = masterData[card.sId + card.sName + item]; + process.sType = masterData[card.sId + card.sType + item]; + processInfo.push(process); } } - }); - partInfo.processInfo = processInfo; - partsInfo.push(partInfo); - } - }); - const productProcess = []; - checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId])) { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId]; - process.sProcessName = masterData[card.sId + card.sName]; - if (masterData[card.sId + card.sName] !== undefined) { - cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; - productProcess.push(process); } + }); + partInfo.processInfo = processInfo; + partsInfo.push(partInfo); + } + }); + const productProcess = []; + checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId])) { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId]; + process.sProcessName = masterData[card.sId + card.sName]; + if (masterData[card.sId + card.sName] !== undefined) { + cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; + productProcess.push(process); } - }); - paramMap.cpProcessName = cpProcessName; - paramMap.productProcessInfo = productProcess; - paramMap.partsInfo = partsInfo; - let numErr = false; - let numName = ''; - let num = 0; - - // eslint-disable-next-line array-callback-return - paramMap.partsInfo.map((item) => { - if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { - num = item.dSumPQty; - numName = item.sPartsName; - } - if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { - numErr = true; - numName = item.sPartsName; - } - }); - if (numErr) { - message.error(`${numName}P数必须是2的倍数!`); - return; } - if (num === 2) { - message.error(`${numName}P数必须大于4P!`); - return; + }); + paramMap.cpProcessName = cpProcessName; + paramMap.productProcessInfo = productProcess; + paramMap.partsInfo = partsInfo; + let numErr = false; + let numName = ''; + let num = 0; + + // eslint-disable-next-line array-callback-return + paramMap.partsInfo.map((item) => { + if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { + num = item.dSumPQty; + numName = item.sPartsName; + } + if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { + numErr = true; + numName = item.sPartsName; } + }); + if (numErr) { + message.error(`${numName}P数必须是2的倍数!`); + return; + } + if (num === 2) { + message.error(`${numName}P数必须大于4P!`); + return; + } - if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || - commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { - // this.props.onSaveState({ fastOrderModalVisible: false }); - message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ - return; - } - /* 验证产品规格是否 符合数字*数字格式 */ - const sProductStyle = paramMap.sProductStyle; - if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ - const arr = sProductStyle.split('*'); - const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; - if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { - for (let i = 0; i < arr.length; i += 1) { - if (!numCheck.test(arr[i])) { /* 验证是否数字 */ - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; - } + if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || + commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { + // this.props.onSaveState({ fastOrderModalVisible: false }); + message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ + return; + } + /* 验证产品规格是否 符合数字*数字格式 */ + const sProductStyle = paramMap.sProductStyle; + if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ + const arr = sProductStyle.split('*'); + const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; + if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { + for (let i = 0; i < arr.length; i += 1) { + if (!numCheck.test(arr[i])) { /* 验证是否数字 */ + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; } - } else { - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; } - /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } - this.props.onSaveState({ - Loading: true, - }); + /* 验证*两边是否是数字 */ + } else { + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; + } + this.props.onSaveState({ + Loading: true, + }); - let dataReturn = paramMap; + let dataReturn = paramMap; + if (!flag) { + const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; + dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + } + if (dataReturn.code === 1 || flag) { + const { + productClassify, productProcessInfo, partsInfo: partsOldInfo, + } = flag ? dataReturn : dataReturn.dataset.rows[0]; + let partsNewInfo = []; if (!flag) { - const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; - dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo; + } else { + partsNewInfo = partsOldInfo; } - if (dataReturn.code === 1 || flag) { - const { - productClassify, productProcessInfo, partsInfo: partsOldInfo, - } = flag ? dataReturn : dataReturn.dataset.rows[0]; - let partsNewInfo = []; - if (!flag) { - partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo; - } else { - partsNewInfo = partsOldInfo; - } - const slaveData = []; - const controlData = []; - const materialsData = []; - let processData = []; - const tableDataRow = {}; - for (const item of slaveConfig.gdsconfigformslave) { - tableDataRow[item.sName] = masterData[item.sName]; - } - tableDataRow.sId = commonUtils.createSid(); - tableDataRow.handleType = 'add'; - tableDataRow.iOrder = 1; - tableDataRow.sParentId = masterData.sId; - // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); - let productIdDropDown; - const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); - if (slaveIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); - productIdDropDown = sqlDropDownData.dropDownData; - } - const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); - if (iProductIdIndex === -1) { - tableDataRow.sProductId = tableDataRow.sProductName; - tableDataRow.sProductInfo = JSON.stringify({ - sProductId: tableDataRow.sProductName, - sProductName: tableDataRow.sProductName, - sProductStyle: tableDataRow.sProductStyle, - sProductUnit: tableDataRow.sProductUnit, - sProductNo: tableDataRow.sProductNo, - sCustomerProductNo: tableDataRow.sCustomerProductNo, - sProductClassifyId: tableDataRow.sProductClassifyId, - sProductClassifyName: tableDataRow.sProductClassifyName, - }); - } else { - tableDataRow.sProductInfo = ''; - } - slaveData.push(tableDataRow); - const sInfoArr = []; - if (!commonUtils.isEmptyArr(partsOldInfo)) { - partsOldInfo.forEach((item) => { - if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { - this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); - } - }); - } - if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ - partsNewInfo.forEach((item) => { - const { sPartsName, sInfo } = item; - const sInfoObj = {}; - sInfoObj.sPartsName = sPartsName; - sInfoObj.sInfo = sInfo; - sInfoArr.push(sInfoObj); - }); - } - const bProcessAssort = false; - let returnProcessAssort = []; - let processAssignAssort = ''; - let dropDownDataProcessName; + const slaveData = []; + const controlData = []; + const materialsData = []; + let processData = []; + const tableDataRow = {}; + for (const item of slaveConfig.gdsconfigformslave) { + tableDataRow[item.sName] = masterData[item.sName]; + } + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.iOrder = 1; + tableDataRow.sParentId = masterData.sId; + // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); + productIdDropDown = sqlDropDownData.dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1) { + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + slaveData.push(tableDataRow); + const sInfoArr = []; + if (!commonUtils.isEmptyArr(partsOldInfo)) { + partsOldInfo.forEach((item) => { + if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { + this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); + } + }); + } + if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ + partsNewInfo.forEach((item) => { + const { sPartsName, sInfo } = item; + const sInfoObj = {}; + sInfoObj.sPartsName = sPartsName; + sInfoObj.sInfo = sInfo; + sInfoArr.push(sInfoObj); + }); + } + const bProcessAssort = false; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + } + } + } + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; + partsNewInfo.forEach((partInfo, iIndex) => { + const partsDataRow = {}; + for (const child of Object.keys(partInfo)) { + partsDataRow[child] = partInfo[child]; + } + partsDataRow.handleType = 'add'; + partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ + partsDataRow.sId = commonUtils.createSid(); + partsDataRow.sParentId = masterData.sId; + if (partsDataRow.iPrintMode !== 3) { + partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + } + delete partsDataRow.dMaterialsKQty; + delete partsDataRow.dMaterialsLength; + delete partsDataRow.dMaterialsWidth; + if (productClassify && productClassify.bSpecialRules) { + partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; + partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + } + controlData.push(partsDataRow); + // 材料信息 + partInfo.materialsInfo.forEach((materialInfo, iOrder) => { + const materialDataRow = {}; + for (const item of materialsConfig.gdsconfigformslave) { + materialDataRow[item.sName] = materialInfo[item.sName]; + } + materialDataRow.handleType = 'add'; + materialDataRow.sType = '0'; + materialDataRow.iPartOrder = iIndex; + materialDataRow.iOrder = iOrder + 1; + materialDataRow.sPartsName = partsDataRow.sPartsName; + materialDataRow.sId = commonUtils.createSid(); + materialDataRow.sParentId = masterData.sId; + materialDataRow.sControlId = partsDataRow.sId; + materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; + materialsData.push(materialDataRow); + }); + // 工序信息 + let processPrintDataRow = {}; + processPrintDataRow.handleType = 'add'; + processPrintDataRow.sProcessId = partInfo.sProcessId || partInfo.sPrintProcessId; + const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); + if (iProcessPrintIndex > -1) { + processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 + } + processPrintDataRow.sType = partInfo.sType; + processPrintDataRow.iPartOrder = iIndex; + processPrintDataRow.iOrder = 1; + if (partInfo.sProcessName) { + processPrintDataRow.sProcessName = partInfo.sProcessName; + } + processPrintDataRow.sPartsName = partsDataRow.sPartsName; + processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; + processPrintDataRow.dLossQty = partInfo.dLossQty; + processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; + processPrintDataRow.sId = commonUtils.createSid(); + processPrintDataRow.sParentId = masterData.sId; + processPrintDataRow.sControlId = partsDataRow.sId; + processData.push(processPrintDataRow); + // 配套工序 if (bProcessAssort) { - const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; - const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; - if (dataProcessAssort.code === 1) { - returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; - const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); - if (iIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); - dropDownDataProcessName = sqlDropDownData.dropDownData; - processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); } - } + })); } - const newCopyTo = {}; - newCopyTo.master = masterData; - newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; - partsNewInfo.forEach((partInfo, iIndex) => { - const partsDataRow = {}; - for (const child of Object.keys(partInfo)) { - partsDataRow[child] = partInfo[child]; - } - partsDataRow.handleType = 'add'; - partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ - partsDataRow.sId = commonUtils.createSid(); - partsDataRow.sParentId = masterData.sId; - if (partsDataRow.iPrintMode !== 3) { - partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; - } - delete partsDataRow.dMaterialsKQty; - delete partsDataRow.dMaterialsLength; - delete partsDataRow.dMaterialsWidth; - if (productClassify && productClassify.bSpecialRules) { - partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; - partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; - } - controlData.push(partsDataRow); - // 材料信息 - partInfo.materialsInfo.forEach((materialInfo, iOrder) => { - const materialDataRow = {}; - for (const item of materialsConfig.gdsconfigformslave) { - materialDataRow[item.sName] = materialInfo[item.sName]; - } - materialDataRow.handleType = 'add'; - materialDataRow.sType = '0'; - materialDataRow.iPartOrder = iIndex; - materialDataRow.iOrder = iOrder + 1; - materialDataRow.sPartsName = partsDataRow.sPartsName; - materialDataRow.sId = commonUtils.createSid(); - materialDataRow.sParentId = masterData.sId; - materialDataRow.sControlId = partsDataRow.sId; - materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; - materialsData.push(materialDataRow); - }); - // 工序信息 - let processPrintDataRow = {}; - processPrintDataRow.handleType = 'add'; - processPrintDataRow.sProcessId = partInfo.sProcessId || partInfo.sPrintProcessId; - const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); - if (iProcessPrintIndex > -1) { - processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 - } - processPrintDataRow.sType = partInfo.sType; - processPrintDataRow.iPartOrder = iIndex; - processPrintDataRow.iOrder = 1; - if (partInfo.sProcessName) { - processPrintDataRow.sProcessName = partInfo.sProcessName; - } - processPrintDataRow.sPartsName = partsDataRow.sPartsName; - processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; - processPrintDataRow.dLossQty = partInfo.dLossQty; - processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; - processPrintDataRow.sId = commonUtils.createSid(); - processPrintDataRow.sParentId = masterData.sId; - processPrintDataRow.sControlId = partsDataRow.sId; - processData.push(processPrintDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - partInfo.processInfo.forEach((process, iOrder) => { - let processAfterDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processAfterDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processAfterDataRow[child] = process[child]; - } - processAfterDataRow.handleType = 'add'; - processAfterDataRow.sProcessId = process.sProcessId; - const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); - if (iProcessAfterIndex > -1) { - processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 - } - processAfterDataRow.sType = process.sType; - processAfterDataRow.iPartOrder = iIndex; - processAfterDataRow.iOrder = iOrder + 1; - processAfterDataRow.sPartsName = partsDataRow.sPartsName; - processAfterDataRow.sId = commonUtils.createSid(); - processAfterDataRow.sParentId = masterData.sId; - processAfterDataRow.sControlId = partsDataRow.sId; - processData.push(processAfterDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - }); - }); - productProcessInfo.forEach((process, iOrder) => { - let processProductDataRow = {}; + partInfo.processInfo.forEach((process, iOrder) => { + let processAfterDataRow = {}; for (const item of processConfig.gdsconfigformslave) { - processProductDataRow[item.sName] = process[item.sName]; + processAfterDataRow[item.sName] = process[item.sName]; } for (const child of Object.keys(process)) { - processProductDataRow[child] = process[child]; - } - const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); - if (iProductProcessIndex > -1) { - processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 - } - processProductDataRow.handleType = 'add'; - processProductDataRow.sType = '3'; - processProductDataRow.sPartsName = ''; - processProductDataRow.iPartOrder = 999; - processProductDataRow.iOrder = iOrder + 1; - processProductDataRow.sId = commonUtils.createSid(); - processProductDataRow.sParentId = masterData.sId; - processData.push(processProductDataRow); + processAfterDataRow[child] = process[child]; + } + processAfterDataRow.handleType = 'add'; + processAfterDataRow.sProcessId = process.sProcessId; + const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); + if (iProcessAfterIndex > -1) { + processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 + } + processAfterDataRow.sType = process.sType; + processAfterDataRow.iPartOrder = iIndex; + processAfterDataRow.iOrder = iOrder + 1; + processAfterDataRow.sPartsName = partsDataRow.sPartsName; + processAfterDataRow.sId = commonUtils.createSid(); + processAfterDataRow.sParentId = masterData.sId; + processAfterDataRow.sControlId = partsDataRow.sId; + processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } }); - processData = this.sortData(controlData, processData); - const addState = {}; - if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { - addState.controlSelectedRowKeys = [controlData[0].sId]; - } else { - addState.controlSelectedRowKeys = []; + }); + productProcessInfo.forEach((process, iOrder) => { + let processProductDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processProductDataRow[item.sName] = process[item.sName]; + } + for (const child of Object.keys(process)) { + processProductDataRow[child] = process[child]; + } + const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); + if (iProductProcessIndex > -1) { + processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + } + processProductDataRow.handleType = 'add'; + processProductDataRow.sType = '3'; + processProductDataRow.sPartsName = ''; + processProductDataRow.iPartOrder = 999; + processProductDataRow.iOrder = iOrder + 1; + processProductDataRow.sId = commonUtils.createSid(); + processProductDataRow.sParentId = masterData.sId; + processData.push(processProductDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); + } + })); } - this.props.onSaveState({ - materialsConfig, - slaveData, - controlData, - materialsData, - processData, - fastOrderModalVisible: false, - workOrderAllprogress: 0, - ...addState, - materialsSelectedRowKeys: [], - sInfoArr, - bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), - Loading: false, - }); - } - if (dataReturn.code !== 1 && !flag) { - this.props.getServiceError(dataReturn); - this.props.onSaveState({ - Loading: false, - }); + }); + processData = this.sortData(controlData, processData); + const addState = {}; + if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { + addState.controlSelectedRowKeys = [controlData[0].sId]; + } else { + addState.controlSelectedRowKeys = []; } - }, timValue); + this.props.onSaveState({ + materialsConfig, + slaveData, + controlData, + materialsData, + processData, + fastOrderModalVisible: false, + workOrderAllprogress: 0, + ...addState, + materialsSelectedRowKeys: [], + sInfoArr, + bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), + Loading: false, + }); + } + if (dataReturn.code !== 1 && !flag) { + this.props.getServiceError(dataReturn); + this.props.onSaveState({ + Loading: false, + }); + } }; /* 勾选工序分类 */ diff --git a/src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js b/src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js index 4a63013..c0d0cfd 100644 --- a/src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js +++ b/src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js @@ -1018,431 +1018,414 @@ class WorkOrderPack extends Component { if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'workOrderAllprogress') { - this.props.onSaveState({ - workOrderAllprogress: rtmsg.msg, - }); - } 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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let cpProcessName = ''; - checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; - // paramMap.modelName = masterData.modelName; - paramMap.sCustomerId = masterData.sCustomerId; - paramMap.sCustomerName = masterData.sCustomerName; - paramMap.sProductClassifyId = masterData.sProductClassifyId; - paramMap.sProductId = masterData.sProductId; - paramMap.sProductName = masterData.sProductName; - paramMap.sProductStyleId = masterData.sProductStyleId; - paramMap.sProductStyle = masterData.sProductStyle; - paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; - paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; - paramMap.dProductHeight = 0; - paramMap.dProductQty = masterData.dProductQty; - const partsInfo = []; - allPartsName.forEach((item) => { - const partInfo = {}; - partInfo.sPartsName = item; - partInfo.dPartsQty = masterData.dProductQty; - partInfo.dSumPQty = masterData[`dSumPQty${item}`]; - const materialsInfo = []; - const material = {}; - material.sMaterialsId = masterData[`sMaterialsId${item}`]; - material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; - material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; - materialsInfo.push(material); - partInfo.materialsInfo = materialsInfo; - partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; - partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; - if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { - const processInfo = []; - checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId + item])) { - if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { - partInfo.sPrintProcessId = masterData[card.sId + item]; - } else { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId + item]; - - if (masterData[card.sId + card.sName + item] !== undefined) { - process.sProcessName = masterData[card.sId + card.sName + item]; - process.sType = masterData[card.sId + card.sType + item]; - processInfo.push(process); - } + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'workOrderAllprogress') { + this.props.onSaveState({ + workOrderAllprogress: rtmsg.msg, + }); + } + }; + let cpProcessName = ''; + checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; + // paramMap.modelName = masterData.modelName; + paramMap.sCustomerId = masterData.sCustomerId; + paramMap.sCustomerName = masterData.sCustomerName; + paramMap.sProductClassifyId = masterData.sProductClassifyId; + paramMap.sProductId = masterData.sProductId; + paramMap.sProductName = masterData.sProductName; + paramMap.sProductStyleId = masterData.sProductStyleId; + paramMap.sProductStyle = masterData.sProductStyle; + paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; + paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; + paramMap.dProductHeight = 0; + paramMap.dProductQty = masterData.dProductQty; + const partsInfo = []; + allPartsName.forEach((item) => { + const partInfo = {}; + partInfo.sPartsName = item; + partInfo.dPartsQty = masterData.dProductQty; + partInfo.dSumPQty = masterData[`dSumPQty${item}`]; + const materialsInfo = []; + const material = {}; + material.sMaterialsId = masterData[`sMaterialsId${item}`]; + material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; + material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; + materialsInfo.push(material); + partInfo.materialsInfo = materialsInfo; + partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; + partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; + if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { + const processInfo = []; + checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId + item])) { + if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { + partInfo.sPrintProcessId = masterData[card.sId + item]; + } else { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId + item]; + + if (masterData[card.sId + card.sName + item] !== undefined) { + process.sProcessName = masterData[card.sId + card.sName + item]; + process.sType = masterData[card.sId + card.sType + item]; + processInfo.push(process); } } - }); - partInfo.processInfo = processInfo; - partsInfo.push(partInfo); - } - }); - const productProcess = []; - checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId])) { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId]; - process.sProcessName = masterData[card.sId + card.sName]; - if (masterData[card.sId + card.sName] !== undefined) { - cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; - productProcess.push(process); } + }); + partInfo.processInfo = processInfo; + partsInfo.push(partInfo); + } + }); + const productProcess = []; + checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId])) { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId]; + process.sProcessName = masterData[card.sId + card.sName]; + if (masterData[card.sId + card.sName] !== undefined) { + cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; + productProcess.push(process); } - }); - paramMap.cpProcessName = cpProcessName; - paramMap.productProcessInfo = productProcess; - paramMap.partsInfo = partsInfo; - let numErr = false; - let numName = ''; - let num = 0; - - // eslint-disable-next-line array-callback-return - paramMap.partsInfo.map((item) => { - if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { - num = item.dSumPQty; - numName = item.sPartsName; - } - if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { - numErr = true; - numName = item.sPartsName; - } - }); - if (numErr) { - message.error(`${numName}P数必须是2的倍数!`); - return; } - if (num === 2) { - message.error(`${numName}P数必须大于4P!`); - return; + }); + paramMap.cpProcessName = cpProcessName; + paramMap.productProcessInfo = productProcess; + paramMap.partsInfo = partsInfo; + let numErr = false; + let numName = ''; + let num = 0; + + // eslint-disable-next-line array-callback-return + paramMap.partsInfo.map((item) => { + if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { + num = item.dSumPQty; + numName = item.sPartsName; + } + if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { + numErr = true; + numName = item.sPartsName; } + }); + if (numErr) { + message.error(`${numName}P数必须是2的倍数!`); + return; + } + if (num === 2) { + message.error(`${numName}P数必须大于4P!`); + return; + } - if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || - commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { - // this.props.onSaveState({ fastOrderModalVisible: false }); - message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ - return; - } - /* 验证产品规格是否 符合数字*数字格式 */ - const sProductStyle = paramMap.sProductStyle; - if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ - const arr = sProductStyle.split('*'); - const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; - if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { - for (let i = 0; i < arr.length; i += 1) { - if (!numCheck.test(arr[i])) { /* 验证是否数字 */ - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; - } + if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || + commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { + // this.props.onSaveState({ fastOrderModalVisible: false }); + message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ + return; + } + /* 验证产品规格是否 符合数字*数字格式 */ + const sProductStyle = paramMap.sProductStyle; + if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ + const arr = sProductStyle.split('*'); + const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; + if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { + for (let i = 0; i < arr.length; i += 1) { + if (!numCheck.test(arr[i])) { /* 验证是否数字 */ + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; } - } else { - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; } - /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } - this.props.onSaveState({ - Loading: true, - }); + /* 验证*两边是否是数字 */ + } else { + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; + } + this.props.onSaveState({ + Loading: true, + }); - let dataReturn = paramMap; + let dataReturn = paramMap; + if (!flag) { + const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; + dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + } + if (dataReturn.code === 1 || flag) { + const { + productClassify, productProcessInfo, partsInfo: partsOldInfo, + } = flag ? dataReturn : dataReturn.dataset.rows[0]; + let partsNewInfo = []; if (!flag) { - const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; - dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo; + } else { + partsNewInfo = partsOldInfo; } - if (dataReturn.code === 1 || flag) { - const { - productClassify, productProcessInfo, partsInfo: partsOldInfo, - } = flag ? dataReturn : dataReturn.dataset.rows[0]; - let partsNewInfo = []; - if (!flag) { - partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo; - } else { - partsNewInfo = partsOldInfo; - } - const slaveData = []; - const controlData = []; - const materialsData = []; - let processData = []; - const tableDataRow = {}; - for (const item of slaveConfig.gdsconfigformslave) { - tableDataRow[item.sName] = masterData[item.sName]; - } - tableDataRow.sId = commonUtils.createSid(); - tableDataRow.handleType = 'add'; - tableDataRow.iOrder = 1; - tableDataRow.sParentId = masterData.sId; - // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); - let productIdDropDown; - const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); - if (slaveIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); - productIdDropDown = sqlDropDownData.dropDownData; - } - const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); - if (iProductIdIndex === -1) { - tableDataRow.sProductId = tableDataRow.sProductName; - tableDataRow.sProductInfo = JSON.stringify({ - sProductId: tableDataRow.sProductName, - sProductName: tableDataRow.sProductName, - sProductStyle: tableDataRow.sProductStyle, - sProductUnit: tableDataRow.sProductUnit, - sProductNo: tableDataRow.sProductNo, - sCustomerProductNo: tableDataRow.sCustomerProductNo, - sProductClassifyId: tableDataRow.sProductClassifyId, - sProductClassifyName: tableDataRow.sProductClassifyName, - }); - } else { - tableDataRow.sProductInfo = ''; - } - slaveData.push(tableDataRow); - const sInfoArr = []; - if (!commonUtils.isEmptyArr(partsOldInfo)) { - partsOldInfo.forEach((item) => { - if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { - this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); - } - }); - } - if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ - partsNewInfo.forEach((item) => { - const { sPartsName, sInfo } = item; - const sInfoObj = {}; - sInfoObj.sPartsName = sPartsName; - sInfoObj.sInfo = sInfo; - sInfoArr.push(sInfoObj); - }); - } - const bProcessAssort = true; - let returnProcessAssort = []; - let processAssignAssort = ''; - let dropDownDataProcessName; + const slaveData = []; + const controlData = []; + const materialsData = []; + let processData = []; + const tableDataRow = {}; + for (const item of slaveConfig.gdsconfigformslave) { + tableDataRow[item.sName] = masterData[item.sName]; + } + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.iOrder = 1; + tableDataRow.sParentId = masterData.sId; + // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); + productIdDropDown = sqlDropDownData.dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1) { + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + slaveData.push(tableDataRow); + const sInfoArr = []; + if (!commonUtils.isEmptyArr(partsOldInfo)) { + partsOldInfo.forEach((item) => { + if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { + this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); + } + }); + } + if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ + partsNewInfo.forEach((item) => { + const { sPartsName, sInfo } = item; + const sInfoObj = {}; + sInfoObj.sPartsName = sPartsName; + sInfoObj.sInfo = sInfo; + sInfoArr.push(sInfoObj); + }); + } + const bProcessAssort = true; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + } + } + } + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; + partsNewInfo.forEach((partInfo, iIndex) => { + const partsDataRow = {}; + for (const child of Object.keys(partInfo)) { + partsDataRow[child] = partInfo[child]; + } + partsDataRow.handleType = 'add'; + partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ + partsDataRow.sId = commonUtils.createSid(); + partsDataRow.sParentId = masterData.sId; + if (partsDataRow.iPrintMode !== 3) { + partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + } + delete partsDataRow.dMaterialsKQty; + delete partsDataRow.dMaterialsLength; + delete partsDataRow.dMaterialsWidth; + if (productClassify && productClassify.bSpecialRules) { + partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; + partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + } + controlData.push(partsDataRow); + // 材料信息 + partInfo.materialsInfo.forEach((materialInfo, iOrder) => { + const materialDataRow = {}; + for (const item of materialsConfig.gdsconfigformslave) { + materialDataRow[item.sName] = materialInfo[item.sName]; + } + materialDataRow.handleType = 'add'; + materialDataRow.sType = '0'; + materialDataRow.iPartOrder = iIndex; + materialDataRow.iOrder = iOrder + 1; + materialDataRow.sPartsName = partsDataRow.sPartsName; + materialDataRow.sId = commonUtils.createSid(); + materialDataRow.sParentId = masterData.sId; + materialDataRow.sControlId = partsDataRow.sId; + materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; + materialsData.push(materialDataRow); + }); + // 工序信息 + let processPrintDataRow = {}; + processPrintDataRow.handleType = 'add'; + processPrintDataRow.sProcessId = partInfo.sProcessId || partInfo.sPrintProcessId; + const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); + if (iProcessPrintIndex > -1) { + processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 + } + processPrintDataRow.sType = partInfo.sType; + processPrintDataRow.iPartOrder = iIndex; + processPrintDataRow.iOrder = 1; + if (partInfo.sProcessName) { + processPrintDataRow.sProcessName = partInfo.sProcessName; + } + processPrintDataRow.sPartsName = partsDataRow.sPartsName; + processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; + processPrintDataRow.dLossQty = partInfo.dLossQty; + processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; + processPrintDataRow.sId = commonUtils.createSid(); + processPrintDataRow.sParentId = masterData.sId; + processPrintDataRow.sControlId = partsDataRow.sId; + processData.push(processPrintDataRow); + // 配套工序 if (bProcessAssort) { - const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; - const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; - if (dataProcessAssort.code === 1) { - returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; - const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); - if (iIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); - dropDownDataProcessName = sqlDropDownData.dropDownData; - processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); } - } + })); } - const newCopyTo = {}; - newCopyTo.master = masterData; - newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; - partsNewInfo.forEach((partInfo, iIndex) => { - const partsDataRow = {}; - for (const child of Object.keys(partInfo)) { - partsDataRow[child] = partInfo[child]; - } - partsDataRow.handleType = 'add'; - partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ - partsDataRow.sId = commonUtils.createSid(); - partsDataRow.sParentId = masterData.sId; - if (partsDataRow.iPrintMode !== 3) { - partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; - } - delete partsDataRow.dMaterialsKQty; - delete partsDataRow.dMaterialsLength; - delete partsDataRow.dMaterialsWidth; - if (productClassify && productClassify.bSpecialRules) { - partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; - partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; - } - controlData.push(partsDataRow); - // 材料信息 - partInfo.materialsInfo.forEach((materialInfo, iOrder) => { - const materialDataRow = {}; - for (const item of materialsConfig.gdsconfigformslave) { - materialDataRow[item.sName] = materialInfo[item.sName]; - } - materialDataRow.handleType = 'add'; - materialDataRow.sType = '0'; - materialDataRow.iPartOrder = iIndex; - materialDataRow.iOrder = iOrder + 1; - materialDataRow.sPartsName = partsDataRow.sPartsName; - materialDataRow.sId = commonUtils.createSid(); - materialDataRow.sParentId = masterData.sId; - materialDataRow.sControlId = partsDataRow.sId; - materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; - materialsData.push(materialDataRow); - }); - // 工序信息 - let processPrintDataRow = {}; - processPrintDataRow.handleType = 'add'; - processPrintDataRow.sProcessId = partInfo.sProcessId || partInfo.sPrintProcessId; - const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); - if (iProcessPrintIndex > -1) { - processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 - } - processPrintDataRow.sType = partInfo.sType; - processPrintDataRow.iPartOrder = iIndex; - processPrintDataRow.iOrder = 1; - if (partInfo.sProcessName) { - processPrintDataRow.sProcessName = partInfo.sProcessName; - } - processPrintDataRow.sPartsName = partsDataRow.sPartsName; - processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; - processPrintDataRow.dLossQty = partInfo.dLossQty; - processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; - processPrintDataRow.sId = commonUtils.createSid(); - processPrintDataRow.sParentId = masterData.sId; - processPrintDataRow.sControlId = partsDataRow.sId; - processData.push(processPrintDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - partInfo.processInfo.forEach((process, iOrder) => { - let processAfterDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processAfterDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processAfterDataRow[child] = process[child]; - } - processAfterDataRow.handleType = 'add'; - processAfterDataRow.sProcessId = process.sProcessId; - const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); - if (iProcessAfterIndex > -1) { - processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 - } - processAfterDataRow.sType = process.sType; - processAfterDataRow.iPartOrder = iIndex; - processAfterDataRow.iOrder = iOrder + 1; - processAfterDataRow.sPartsName = partsDataRow.sPartsName; - processAfterDataRow.sId = commonUtils.createSid(); - processAfterDataRow.sParentId = masterData.sId; - processAfterDataRow.sControlId = partsDataRow.sId; - processData.push(processAfterDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processData.push(processRow); - } - })); - } - }); - }); - productProcessInfo.forEach((process, iOrder) => { - let processProductDataRow = {}; + partInfo.processInfo.forEach((process, iOrder) => { + let processAfterDataRow = {}; for (const item of processConfig.gdsconfigformslave) { - processProductDataRow[item.sName] = process[item.sName]; + processAfterDataRow[item.sName] = process[item.sName]; } for (const child of Object.keys(process)) { - processProductDataRow[child] = process[child]; - } - const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); - if (iProductProcessIndex > -1) { - processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 - } - processProductDataRow.handleType = 'add'; - processProductDataRow.sType = '3'; - processProductDataRow.sPartsName = ''; - processProductDataRow.iPartOrder = 999; - processProductDataRow.iOrder = iOrder + 1; - processProductDataRow.sId = commonUtils.createSid(); - processProductDataRow.sParentId = masterData.sId; - processData.push(processProductDataRow); + processAfterDataRow[child] = process[child]; + } + processAfterDataRow.handleType = 'add'; + processAfterDataRow.sProcessId = process.sProcessId; + const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); + if (iProcessAfterIndex > -1) { + processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 + } + processAfterDataRow.sType = process.sType; + processAfterDataRow.iPartOrder = iIndex; + processAfterDataRow.iOrder = iOrder + 1; + processAfterDataRow.sPartsName = partsDataRow.sPartsName; + processAfterDataRow.sId = commonUtils.createSid(); + processAfterDataRow.sParentId = masterData.sId; + processAfterDataRow.sControlId = partsDataRow.sId; + processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; processData.push(processRow); } })); } }); - processData = this.sortData(controlData, processData); - const addState = {}; - if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { - addState.controlSelectedRowKeys = [controlData[0].sId]; - } else { - addState.controlSelectedRowKeys = []; + }); + productProcessInfo.forEach((process, iOrder) => { + let processProductDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processProductDataRow[item.sName] = process[item.sName]; + } + for (const child of Object.keys(process)) { + processProductDataRow[child] = process[child]; + } + const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); + if (iProductProcessIndex > -1) { + processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + } + processProductDataRow.handleType = 'add'; + processProductDataRow.sType = '3'; + processProductDataRow.sPartsName = ''; + processProductDataRow.iPartOrder = 999; + processProductDataRow.iOrder = iOrder + 1; + processProductDataRow.sId = commonUtils.createSid(); + processProductDataRow.sParentId = masterData.sId; + processData.push(processProductDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processData.push(processRow); + } + })); } - this.props.onSaveState({ - materialsConfig, - slaveData, - controlData, - materialsData, - processData, - fastOrderModalVisible: false, - workOrderAllprogress: 0, - ...addState, - materialsSelectedRowKeys: [], - sInfoArr, - bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), - Loading: false, - }); - } - if (dataReturn.code !== 1 && !flag) { - this.props.getServiceError(dataReturn); - this.props.onSaveState({ - Loading: false, - }); + }); + processData = this.sortData(controlData, processData); + const addState = {}; + if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) { + addState.controlSelectedRowKeys = [controlData[0].sId]; + } else { + addState.controlSelectedRowKeys = []; } - }, timValue); + this.props.onSaveState({ + materialsConfig, + slaveData, + controlData, + materialsData, + processData, + fastOrderModalVisible: false, + workOrderAllprogress: 0, + ...addState, + materialsSelectedRowKeys: [], + sInfoArr, + bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), + Loading: false, + }); + } + if (dataReturn.code !== 1 && !flag) { + this.props.getServiceError(dataReturn); + this.props.onSaveState({ + Loading: false, + }); + } }; /* 勾选工序分类 */ diff --git a/src/components/QuoQuotation/Quotation/Quotation.js b/src/components/QuoQuotation/Quotation/Quotation.js index 87bc9bf..540910c 100644 --- a/src/components/QuoQuotation/Quotation/Quotation.js +++ b/src/components/QuoQuotation/Quotation/Quotation.js @@ -423,300 +423,328 @@ class Quotation extends Component { if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'quotationAllprogress') { - this.props.onSaveState({ - quotationAllprogress: rtmsg.msg, - }); - } 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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let cpProcessName = ''; - checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; - // paramMap.modelName = masterData.modelName; - paramMap.bQuotation = true; - paramMap.sCustomerId = masterData.sCustomerId; - paramMap.sCustomerName = masterData.sCustomerName; - paramMap.sProductClassifyId = masterData.sProductClassifyId; - paramMap.sProductId = masterData.sProductId; - paramMap.sProductName = masterData.sProductName; - paramMap.sProductStyleId = masterData.sProductStyleId; - paramMap.sProductStyle = masterData.sProductStyle; - paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; - paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; - paramMap.dProductHeight = 0; - paramMap.dProductQty = masterData.dProductQty; - const partsInfo = []; - allPartsName.forEach((item) => { - const partInfo = {}; - partInfo.sPartsName = item; - partInfo.dPartsQty = masterData.dProductQty; - partInfo.dSumPQty = masterData[`dSumPQty${item}`]; + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'quotationAllprogress') { + this.props.onSaveState({ + quotationAllprogress: rtmsg.msg, + }); + } + }; + let cpProcessName = ''; + checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; + // paramMap.modelName = masterData.modelName; + paramMap.bQuotation = true; + paramMap.sCustomerId = masterData.sCustomerId; + paramMap.sCustomerName = masterData.sCustomerName; + paramMap.sProductClassifyId = masterData.sProductClassifyId; + paramMap.sProductId = masterData.sProductId; + paramMap.sProductName = masterData.sProductName; + paramMap.sProductStyleId = masterData.sProductStyleId; + paramMap.sProductStyle = masterData.sProductStyle; + paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; + paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; + paramMap.dProductHeight = 0; + paramMap.dProductQty = masterData.dProductQty; + const partsInfo = []; + allPartsName.forEach((item) => { + const partInfo = {}; + partInfo.sPartsName = item; + partInfo.dPartsQty = masterData.dProductQty; + partInfo.dSumPQty = masterData[`dSumPQty${item}`]; - const materialsInfo = []; - const material = {}; - material.sMaterialsId = masterData[`sMaterialsId${item}`]; - material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; - material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; - materialsInfo.push(material); - partInfo.materialsInfo = materialsInfo; - partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; - partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; - if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { - const processInfo = []; - checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId + item])) { - if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { - partInfo.sPrintProcessId = masterData[card.sId + item]; - } else { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId + item]; - if (masterData[card.sId + card.sName + item] !== undefined) { - process.sProcessName = masterData[card.sId + card.sName + item]; - process.sType = masterData[card.sId + card.sType + item]; - processInfo.push(process); - } + const materialsInfo = []; + const material = {}; + material.sMaterialsId = masterData[`sMaterialsId${item}`]; + material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; + material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; + materialsInfo.push(material); + partInfo.materialsInfo = materialsInfo; + partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; + partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; + if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { + const processInfo = []; + checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId + item])) { + if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { + partInfo.sPrintProcessId = masterData[card.sId + item]; + } else { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId + item]; + if (masterData[card.sId + card.sName + item] !== undefined) { + process.sProcessName = masterData[card.sId + card.sName + item]; + process.sType = masterData[card.sId + card.sType + item]; + processInfo.push(process); } } - }); - partInfo.processInfo = processInfo; - partsInfo.push(partInfo); - } - }); - const productProcess = []; - checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId])) { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId]; - process.sProcessName = masterData[card.sId + card.sName]; - if (masterData[card.sId + card.sName] !== undefined) { - cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; - productProcess.push(process); } + }); + partInfo.processInfo = processInfo; + partsInfo.push(partInfo); + } + }); + const productProcess = []; + checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId])) { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId]; + process.sProcessName = masterData[card.sId + card.sName]; + if (masterData[card.sId + card.sName] !== undefined) { + cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; + productProcess.push(process); } - }); - paramMap.cpProcessName = cpProcessName; - paramMap.productProcessInfo = productProcess; - paramMap.partsInfo = partsInfo; - let numErr = false; - let numName = ''; - let num = 0; + } + }); + paramMap.cpProcessName = cpProcessName; + paramMap.productProcessInfo = productProcess; + paramMap.partsInfo = partsInfo; + let numErr = false; + let numName = ''; + let num = 0; - // eslint-disable-next-line array-callback-return - paramMap.partsInfo.map((item) => { - if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { - num = item.dSumPQty; - numName = item.sPartsName; - } - if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { - numErr = true; - numName = item.sPartsName; - } - }); - if (numErr) { - message.error(`${numName}P数必须是2的倍数!`); - return; + // eslint-disable-next-line array-callback-return + paramMap.partsInfo.map((item) => { + if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { + num = item.dSumPQty; + numName = item.sPartsName; } - if (num === 2) { - message.error(`${numName}P数必须大于4P!`); - return; + if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { + numErr = true; + numName = item.sPartsName; } + }); + if (numErr) { + message.error(`${numName}P数必须是2的倍数!`); + return; + } + if (num === 2) { + message.error(`${numName}P数必须大于4P!`); + return; + } - if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || - commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { - // this.props.onSaveState({ fastOrderModalVisible: false }); - message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ - return; - } - /* 验证产品规格是否 符合数字*数字格式 */ - const sProductStyle = paramMap.sProductStyle; - if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ - const arr = sProductStyle.split('*'); - const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; - if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { - for (let i = 0; i < arr.length; i += 1) { - if (!numCheck.test(arr[i])) { /* 验证是否数字 */ - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; - } + if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || + commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { + // this.props.onSaveState({ fastOrderModalVisible: false }); + message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ + return; + } + /* 验证产品规格是否 符合数字*数字格式 */ + const sProductStyle = paramMap.sProductStyle; + if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ + const arr = sProductStyle.split('*'); + const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; + if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { + for (let i = 0; i < arr.length; i += 1) { + if (!numCheck.test(arr[i])) { /* 验证是否数字 */ + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; } - } else { - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; } - /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } - this.props.onSaveState({ - Loading: true, - }); - // onSendSocketMessage('quotationSplitPaste', 'noAction', masterData.sId, userinfo.sId, null, null); + /* 验证*两边是否是数字 */ + } else { + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; + } + this.props.onSaveState({ + Loading: true, + }); + // onSendSocketMessage('quotationSplitPaste', 'noAction', masterData.sId, userinfo.sId, null, null); - const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; - const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; - if (dataReturn.code === 1) { - const { - productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, - } = dataReturn.dataset.rows[0]; - const slaveData = []; - const controlData = []; - const materialsData = []; - let processData = []; - const tableDataRow = {}; - for (const item of slaveConfig.gdsconfigformslave) { - tableDataRow[item.sName] = masterData[item.sName]; + const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + if (dataReturn.code === 1) { + const { + productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, + } = dataReturn.dataset.rows[0]; + const slaveData = []; + const controlData = []; + const materialsData = []; + let processData = []; + const tableDataRow = {}; + for (const item of slaveConfig.gdsconfigformslave) { + tableDataRow[item.sName] = masterData[item.sName]; + } + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.iOrder = 1; + tableDataRow.sParentId = masterData.sId; + // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); + productIdDropDown = sqlDropDownData.dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1) { + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + slaveData.push(tableDataRow); + const sInfoArr = []; + if (!commonUtils.isEmptyArr(partsOldInfo)) { + partsOldInfo.forEach((item) => { + if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { + this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); + } + }); + } + if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ + partsNewInfo.forEach((item) => { + const { sPartsName, sInfo } = item; + const sInfoObj = {}; + sInfoObj.sPartsName = sPartsName; + sInfoObj.sInfo = sInfo; + sInfoArr.push(sInfoObj); + }); + } + + const bProcessAssort = true; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + if (commonUtils.isEmptyObject(dropDownDataProcessName)) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + } + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + } } - tableDataRow.sId = commonUtils.createSid(); - tableDataRow.handleType = 'add'; - tableDataRow.iOrder = 1; - tableDataRow.sParentId = masterData.sId; - // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); - let productIdDropDown; - const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); - if (slaveIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); - productIdDropDown = sqlDropDownData.dropDownData; + } + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; + await partsNewInfo.forEach(async (partInfo, iIndex) => { + const partsDataRow = {}; + for (const child of Object.keys(partInfo)) { + partsDataRow[child] = partInfo[child]; } - const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); - if (iProductIdIndex === -1) { - tableDataRow.sProductId = tableDataRow.sProductName; - tableDataRow.sProductInfo = JSON.stringify({ - sProductId: tableDataRow.sProductName, - sProductName: tableDataRow.sProductName, - sProductStyle: tableDataRow.sProductStyle, - sProductUnit: tableDataRow.sProductUnit, - sProductNo: tableDataRow.sProductNo, - sCustomerProductNo: tableDataRow.sCustomerProductNo, - sProductClassifyId: tableDataRow.sProductClassifyId, - sProductClassifyName: tableDataRow.sProductClassifyName, - }); - } else { - tableDataRow.sProductInfo = ''; + partsDataRow.handleType = 'add'; + partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ + partsDataRow.sId = commonUtils.createSid(); + partsDataRow.sParentId = masterData.sId; + partsDataRow.sSlaveId = tableDataRow.sId; + if (partsDataRow.iPrintMode !== 3) { + partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; } - slaveData.push(tableDataRow); - const sInfoArr = []; - if (!commonUtils.isEmptyArr(partsOldInfo)) { - partsOldInfo.forEach((item) => { - if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { - this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); - } - }); + delete partsDataRow.dMaterialsKQty; + delete partsDataRow.dMaterialsLength; + delete partsDataRow.dMaterialsWidth; + if (productClassify.bSpecialRules) { + partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; + partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; } - if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ - partsNewInfo.forEach((item) => { - const { sPartsName, sInfo } = item; - const sInfoObj = {}; - sInfoObj.sPartsName = sPartsName; - sInfoObj.sInfo = sInfo; - sInfoArr.push(sInfoObj); - }); + controlData.push(partsDataRow); + // 材料信息 + await partInfo.materialsInfo.forEach(async (materialInfo, iOrder) => { + let materialDataRow = {}; + for (const item of materialsConfig.gdsconfigformslave) { + materialDataRow[item.sName] = materialInfo[item.sName]; + } + materialDataRow.handleType = 'add'; + materialDataRow.sType = '0'; + materialDataRow.iPartOrder = iIndex; + materialDataRow.iOrder = iOrder + 1; + materialDataRow.sPartsName = partsDataRow.sPartsName; + materialDataRow.sId = commonUtils.createSid(); + materialDataRow.sParentId = masterData.sId; + materialDataRow.sControlId = partsDataRow.sId; + materialDataRow.sSlaveId = tableDataRow.sId; + materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; + const models = 'Materials'; + materialDataRow = await this.props.onMaterialsChange(materialDataRow, sModelsId, masterData, [], 'dAuxiliaryQty', app, token, models); + materialDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, materialDataRow); + materialsData.push(materialDataRow); + }); + // 工序信息 + let processPrintDataRow = {}; + processPrintDataRow.handleType = 'add'; + processPrintDataRow.sProcessId = partInfo.sProcessId; + const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); + if (iProcessPrintIndex > -1) { + processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 } - - const bProcessAssort = true; - let returnProcessAssort = []; - let processAssignAssort = ''; - let dropDownDataProcessName; + processPrintDataRow.sType = partInfo.sType; + processPrintDataRow.iPartOrder = iIndex; + processPrintDataRow.iOrder = 1; + processPrintDataRow.sProcessName = partInfo.sProcessName; + processPrintDataRow.sPartsName = partsDataRow.sPartsName; + processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; + processPrintDataRow.dLossQty = partInfo.dLossQty; + processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; + processPrintDataRow.sId = commonUtils.createSid(); + processPrintDataRow.sParentId = masterData.sId; + processPrintDataRow.sControlId = partsDataRow.sId; + processPrintDataRow.sSlaveId = tableDataRow.sId; + processData.push(processPrintDataRow); + // 配套工序 if (bProcessAssort) { - const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; - const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; - if (dataProcessAssort.code === 1) { - returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; - const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); - if (iIndex > -1) { - if (commonUtils.isEmptyObject(dropDownDataProcessName)) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); - dropDownDataProcessName = sqlDropDownData.dropDownData; - } - processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processRow.sSlaveId = tableDataRow.sId; + processData.push(processRow); } - } + })); } - const newCopyTo = {}; - newCopyTo.master = masterData; - newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; - await partsNewInfo.forEach(async (partInfo, iIndex) => { - const partsDataRow = {}; - for (const child of Object.keys(partInfo)) { - partsDataRow[child] = partInfo[child]; + + partInfo.processInfo.forEach((process, iOrder) => { + let processAfterDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processAfterDataRow[item.sName] = process[item.sName]; } - partsDataRow.handleType = 'add'; - partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ - partsDataRow.sId = commonUtils.createSid(); - partsDataRow.sParentId = masterData.sId; - partsDataRow.sSlaveId = tableDataRow.sId; - if (partsDataRow.iPrintMode !== 3) { - partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + for (const child of Object.keys(process)) { + processAfterDataRow[child] = process[child]; } - delete partsDataRow.dMaterialsKQty; - delete partsDataRow.dMaterialsLength; - delete partsDataRow.dMaterialsWidth; - if (productClassify.bSpecialRules) { - partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; - partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + processAfterDataRow.handleType = 'add'; + processAfterDataRow.sProcessId = process.sProcessId; + const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); + if (iProcessAfterIndex > -1) { + processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 } - controlData.push(partsDataRow); - // 材料信息 - await partInfo.materialsInfo.forEach(async (materialInfo, iOrder) => { - let materialDataRow = {}; - for (const item of materialsConfig.gdsconfigformslave) { - materialDataRow[item.sName] = materialInfo[item.sName]; - } - materialDataRow.handleType = 'add'; - materialDataRow.sType = '0'; - materialDataRow.iPartOrder = iIndex; - materialDataRow.iOrder = iOrder + 1; - materialDataRow.sPartsName = partsDataRow.sPartsName; - materialDataRow.sId = commonUtils.createSid(); - materialDataRow.sParentId = masterData.sId; - materialDataRow.sControlId = partsDataRow.sId; - materialDataRow.sSlaveId = tableDataRow.sId; - materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; - const models = 'Materials'; - materialDataRow = await this.props.onMaterialsChange(materialDataRow, sModelsId, masterData, [], 'dAuxiliaryQty', app, token, models); - materialDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, materialDataRow); - materialsData.push(materialDataRow); - }); - // 工序信息 - let processPrintDataRow = {}; - processPrintDataRow.handleType = 'add'; - processPrintDataRow.sProcessId = partInfo.sProcessId; - const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); - if (iProcessPrintIndex > -1) { - processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 - } - processPrintDataRow.sType = partInfo.sType; - processPrintDataRow.iPartOrder = iIndex; - processPrintDataRow.iOrder = 1; - processPrintDataRow.sProcessName = partInfo.sProcessName; - processPrintDataRow.sPartsName = partsDataRow.sPartsName; - processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; - processPrintDataRow.dLossQty = partInfo.dLossQty; - processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; - processPrintDataRow.sId = commonUtils.createSid(); - processPrintDataRow.sParentId = masterData.sId; - processPrintDataRow.sControlId = partsDataRow.sId; - processPrintDataRow.sSlaveId = tableDataRow.sId; - processData.push(processPrintDataRow); + processAfterDataRow.sType = process.sType; + processAfterDataRow.iPartOrder = iIndex; + processAfterDataRow.iOrder = iOrder + 1; + processAfterDataRow.sPartsName = partsDataRow.sPartsName; + processAfterDataRow.sId = commonUtils.createSid(); + processAfterDataRow.sParentId = masterData.sId; + processAfterDataRow.sControlId = partsDataRow.sId; + processAfterDataRow.sSlaveId = tableDataRow.sId; + processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { @@ -737,118 +765,73 @@ class Quotation extends Component { } })); } - - partInfo.processInfo.forEach((process, iOrder) => { - let processAfterDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processAfterDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processAfterDataRow[child] = process[child]; - } - processAfterDataRow.handleType = 'add'; - processAfterDataRow.sProcessId = process.sProcessId; - const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); - if (iProcessAfterIndex > -1) { - processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 - } - processAfterDataRow.sType = process.sType; - processAfterDataRow.iPartOrder = iIndex; - processAfterDataRow.iOrder = iOrder + 1; - processAfterDataRow.sPartsName = partsDataRow.sPartsName; - processAfterDataRow.sId = commonUtils.createSid(); - processAfterDataRow.sParentId = masterData.sId; - processAfterDataRow.sControlId = partsDataRow.sId; - processAfterDataRow.sSlaveId = tableDataRow.sId; - processData.push(processAfterDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processRow.sSlaveId = tableDataRow.sId; - processData.push(processRow); - } - })); - } - }); }); - productProcessInfo.forEach((process, iOrder) => { - let processProductDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processProductDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processProductDataRow[child] = process[child]; - } - const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); - if (iProductProcessIndex > -1) { - processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 - } - processProductDataRow.handleType = 'add'; - processProductDataRow.sType = '3'; - processProductDataRow.sPartsName = ''; - processProductDataRow.iPartOrder = 999; - processProductDataRow.iOrder = iOrder + 1; - processProductDataRow.sId = commonUtils.createSid(); - processProductDataRow.sParentId = masterData.sId; - processProductDataRow.sSlaveId = tableDataRow.sId; - processData.push(processProductDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sType = dropDownDataProcessName[iIndex].sType; - processRow.sSlaveId = tableDataRow.sId; - processData.push(processRow); - } - })); - } - }); - processData = this.sortData(controlData, processData); - const addState = { controlSelectedRowKeys: ['0000000'] }; - if (!commonUtils.isEmptyArr(slaveData)) { - addState.slaveSelectedRowKeys = [slaveData[0].sId]; + }); + productProcessInfo.forEach((process, iOrder) => { + let processProductDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processProductDataRow[item.sName] = process[item.sName]; } - this.props.onSaveState({ - materialsConfig, - slaveData, - controlData, - materialsData, - processData, - fastOrderModalVisible: false, - quotationAllprogress: 0, - materialsSelectedRowKeys: [], - ...addState, - sInfoArr, - bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), - Loading: false, - }); - } else { - this.props.getServiceError(dataReturn); - this.props.onSaveState({ - Loading: false, - }); + for (const child of Object.keys(process)) { + processProductDataRow[child] = process[child]; + } + const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); + if (iProductProcessIndex > -1) { + processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + } + processProductDataRow.handleType = 'add'; + processProductDataRow.sType = '3'; + processProductDataRow.sPartsName = ''; + processProductDataRow.iPartOrder = 999; + processProductDataRow.iOrder = iOrder + 1; + processProductDataRow.sId = commonUtils.createSid(); + processProductDataRow.sParentId = masterData.sId; + processProductDataRow.sSlaveId = tableDataRow.sId; + processData.push(processProductDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + processRow.sSlaveId = tableDataRow.sId; + processData.push(processRow); + } + })); + } + }); + processData = this.sortData(controlData, processData); + const addState = { controlSelectedRowKeys: ['0000000'] }; + if (!commonUtils.isEmptyArr(slaveData)) { + addState.slaveSelectedRowKeys = [slaveData[0].sId]; } - }, timValue); + this.props.onSaveState({ + materialsConfig, + slaveData, + controlData, + materialsData, + processData, + fastOrderModalVisible: false, + quotationAllprogress: 0, + materialsSelectedRowKeys: [], + ...addState, + sInfoArr, + bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), + Loading: false, + }); + } else { + this.props.getServiceError(dataReturn); + this.props.onSaveState({ + Loading: false, + }); + } }; /* 勾选工序分类 */ diff --git a/src/components/QuoQuotation/QuotationPack/QuotationPack.js b/src/components/QuoQuotation/QuotationPack/QuotationPack.js index 0e16632..d2aae7c 100644 --- a/src/components/QuoQuotation/QuotationPack/QuotationPack.js +++ b/src/components/QuoQuotation/QuotationPack/QuotationPack.js @@ -652,397 +652,340 @@ class QuotationPack extends Component { if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'quotationAllprogress') { - this.props.onSaveState({ - quotationAllprogress: rtmsg.msg, - }); - } 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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let cpProcessName = ''; - checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; - // paramMap.modelName = masterData.modelName; - paramMap.bQuotation = true; - paramMap.sCustomerId = masterData.sCustomerId; - paramMap.sCustomerName = masterData.sCustomerName; - paramMap.sProductClassifyId = masterData.sProductClassifyId; - paramMap.sProductId = masterData.sProductId; - paramMap.sProductName = masterData.sProductName; - paramMap.sProductStyleId = masterData.sProductStyleId; - paramMap.sProductStyle = masterData.sProductStyle; - paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; - paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; - paramMap.dProductHeight = 0; - paramMap.dProductQty = masterData.dProductQty; - const partsInfo = []; - allPartsName.forEach((item) => { - const partInfo = {}; - partInfo.sPartsName = item; - partInfo.dPartsQty = masterData.dProductQty; - partInfo.dSumPQty = masterData[`dSumPQty${item}`]; - - const materialsInfo = []; - const material = {}; - material.sMaterialsId = masterData[`sMaterialsId${item}`]; - material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; - material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; - materialsInfo.push(material); - partInfo.materialsInfo = materialsInfo; - partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; - partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; - if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { - const processInfo = []; - checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId + item])) { - if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { - partInfo.sPrintProcessId = masterData[card.sId + item]; - } else { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId + item]; - if (masterData[card.sId + card.sName + item] !== undefined) { - process.sProcessName = masterData[card.sId + card.sName + item]; - process.sType = masterData[card.sId + card.sType + item]; - processInfo.push(process); - } + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'quotationAllprogress') { + this.props.onSaveState({ + quotationAllprogress: rtmsg.msg, + }); + } + }; + let cpProcessName = ''; + checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; + // paramMap.modelName = masterData.modelName; + paramMap.bQuotation = true; + paramMap.sCustomerId = masterData.sCustomerId; + paramMap.sCustomerName = masterData.sCustomerName; + paramMap.sProductClassifyId = masterData.sProductClassifyId; + paramMap.sProductId = masterData.sProductId; + paramMap.sProductName = masterData.sProductName; + paramMap.sProductStyleId = masterData.sProductStyleId; + paramMap.sProductStyle = masterData.sProductStyle; + paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; + paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; + paramMap.dProductHeight = 0; + paramMap.dProductQty = masterData.dProductQty; + const partsInfo = []; + allPartsName.forEach((item) => { + const partInfo = {}; + partInfo.sPartsName = item; + partInfo.dPartsQty = masterData.dProductQty; + partInfo.dSumPQty = masterData[`dSumPQty${item}`]; + + const materialsInfo = []; + const material = {}; + material.sMaterialsId = masterData[`sMaterialsId${item}`]; + material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; + material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; + materialsInfo.push(material); + partInfo.materialsInfo = materialsInfo; + partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; + partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; + if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { + const processInfo = []; + checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId + item])) { + if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { + partInfo.sPrintProcessId = masterData[card.sId + item]; + } else { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId + item]; + if (masterData[card.sId + card.sName + item] !== undefined) { + process.sProcessName = masterData[card.sId + card.sName + item]; + process.sType = masterData[card.sId + card.sType + item]; + processInfo.push(process); } } - }); - partInfo.processInfo = processInfo; - partsInfo.push(partInfo); - } - }); - const productProcess = []; - checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId])) { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId]; - process.sProcessName = masterData[card.sId + card.sName]; - if (masterData[card.sId + card.sName] !== undefined) { - cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; - productProcess.push(process); } + }); + partInfo.processInfo = processInfo; + partsInfo.push(partInfo); + } + }); + const productProcess = []; + checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId])) { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId]; + process.sProcessName = masterData[card.sId + card.sName]; + if (masterData[card.sId + card.sName] !== undefined) { + cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; + productProcess.push(process); } - }); - paramMap.cpProcessName = cpProcessName; - paramMap.productProcessInfo = productProcess; - paramMap.partsInfo = partsInfo; - let numErr = false; - let numName = ''; - let num = 0; - - // eslint-disable-next-line array-callback-return - paramMap.partsInfo.map((item) => { - if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { - num = item.dSumPQty; - numName = item.sPartsName; - } - if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { - numErr = true; - numName = item.sPartsName; - } - }); - if (numErr) { - message.error(`${numName}P数必须是2的倍数!`); - return; } - if (num === 2) { - message.error(`${numName}P数必须大于4P!`); - return; + }); + paramMap.cpProcessName = cpProcessName; + paramMap.productProcessInfo = productProcess; + paramMap.partsInfo = partsInfo; + let numErr = false; + let numName = ''; + let num = 0; + + // eslint-disable-next-line array-callback-return + paramMap.partsInfo.map((item) => { + if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { + num = item.dSumPQty; + numName = item.sPartsName; } - - if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || - commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { - // this.props.onSaveState({ fastOrderModalVisible: false }); - message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ - return; + if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { + numErr = true; + numName = item.sPartsName; } - /* 验证产品规格是否 符合数字*数字格式 */ - const sProductStyle = paramMap.sProductStyle; - if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ - const arr = sProductStyle.split('*'); - const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; - if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { - for (let i = 0; i < arr.length; i += 1) { - if (!numCheck.test(arr[i])) { /* 验证是否数字 */ - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; - } + }); + if (numErr) { + message.error(`${numName}P数必须是2的倍数!`); + return; + } + if (num === 2) { + message.error(`${numName}P数必须大于4P!`); + return; + } + + if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || + commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { + // this.props.onSaveState({ fastOrderModalVisible: false }); + message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ + return; + } + /* 验证产品规格是否 符合数字*数字格式 */ + const sProductStyle = paramMap.sProductStyle; + if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ + const arr = sProductStyle.split('*'); + const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; + if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { + for (let i = 0; i < arr.length; i += 1) { + if (!numCheck.test(arr[i])) { /* 验证是否数字 */ + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; } - } else { - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; } - /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } - this.props.onSaveState({ - Loading: true, - }); - // onSendSocketMessage('quotationSplitPaste', 'noAction', masterData.sId, userinfo.sId, null, null); + /* 验证*两边是否是数字 */ + } else { + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; + } + this.props.onSaveState({ + Loading: true, + }); + // onSendSocketMessage('quotationSplitPaste', 'noAction', masterData.sId, userinfo.sId, null, null); - const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; - const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; - if (dataReturn.code === 1) { - const { - productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, - } = dataReturn.dataset.rows[0]; - const slaveData = []; - const controlData = []; - const materialsData = []; - let processData = []; - const tableDataRow = {}; - for (const item of slaveConfig.gdsconfigformslave) { - tableDataRow[item.sName] = masterData[item.sName]; - } - tableDataRow.sId = commonUtils.createSid(); - tableDataRow.handleType = 'add'; - tableDataRow.iOrder = 1; - tableDataRow.sParentId = masterData.sId; - // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); - let productIdDropDown; - const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); - if (slaveIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); - productIdDropDown = sqlDropDownData.dropDownData; - } - const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); - if (iProductIdIndex === -1) { - tableDataRow.sProductId = tableDataRow.sProductName; - tableDataRow.sProductInfo = JSON.stringify({ - sProductId: tableDataRow.sProductName, - sProductName: tableDataRow.sProductName, - sProductStyle: tableDataRow.sProductStyle, - sProductUnit: tableDataRow.sProductUnit, - sProductNo: tableDataRow.sProductNo, - sCustomerProductNo: tableDataRow.sCustomerProductNo, - sProductClassifyId: tableDataRow.sProductClassifyId, - sProductClassifyName: tableDataRow.sProductClassifyName, - }); - } else { - tableDataRow.sProductInfo = ''; - } - slaveData.push(tableDataRow); - const sInfoArr = []; - if (!commonUtils.isEmptyArr(partsOldInfo)) { - partsOldInfo.forEach((item) => { - if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { - this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); - } - }); - } - if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ - partsNewInfo.forEach((item) => { - const { sPartsName, sInfo } = item; - const sInfoObj = {}; - sInfoObj.sPartsName = sPartsName; - sInfoObj.sInfo = sInfo; - sInfoArr.push(sInfoObj); - }); - } + const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + if (dataReturn.code === 1) { + const { + productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, + } = dataReturn.dataset.rows[0]; + const slaveData = []; + const controlData = []; + const materialsData = []; + let processData = []; + const tableDataRow = {}; + for (const item of slaveConfig.gdsconfigformslave) { + tableDataRow[item.sName] = masterData[item.sName]; + } + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.iOrder = 1; + tableDataRow.sParentId = masterData.sId; + // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); + productIdDropDown = sqlDropDownData.dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1) { + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + slaveData.push(tableDataRow); + const sInfoArr = []; + if (!commonUtils.isEmptyArr(partsOldInfo)) { + partsOldInfo.forEach((item) => { + if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { + this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); + } + }); + } + if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ + partsNewInfo.forEach((item) => { + const { sPartsName, sInfo } = item; + const sInfoObj = {}; + sInfoObj.sPartsName = sPartsName; + sInfoObj.sInfo = sInfo; + sInfoArr.push(sInfoObj); + }); + } - const bProcessAssort = true; - let returnProcessAssort = []; - let processAssignAssort = ''; - let dropDownDataProcessName; - if (bProcessAssort) { - const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; - const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; - if (dataProcessAssort.code === 1) { - returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; - const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); - if (iIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); - dropDownDataProcessName = sqlDropDownData.dropDownData; - processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; - } + const bProcessAssort = true; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; } } - const newCopyTo = {}; - newCopyTo.master = masterData; - newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; - await partsNewInfo.forEach(async (partInfo, iIndex) => { - const partsDataRow = {}; - for (const child of Object.keys(partInfo)) { - partsDataRow[child] = partInfo[child]; - } - partsDataRow.handleType = 'add'; - partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ - partsDataRow.sId = commonUtils.createSid(); - partsDataRow.sParentId = masterData.sId; - // partsDataRow.sSlaveId = ' '; - if (partsDataRow.iPrintMode !== 3) { - partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; - } - delete partsDataRow.dMaterialsKQty; - delete partsDataRow.dMaterialsLength; - delete partsDataRow.dMaterialsWidth; - if (productClassify.bSpecialRules) { - partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; - partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + } + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; + await partsNewInfo.forEach(async (partInfo, iIndex) => { + const partsDataRow = {}; + for (const child of Object.keys(partInfo)) { + partsDataRow[child] = partInfo[child]; + } + partsDataRow.handleType = 'add'; + partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ + partsDataRow.sId = commonUtils.createSid(); + partsDataRow.sParentId = masterData.sId; + // partsDataRow.sSlaveId = ' '; + if (partsDataRow.iPrintMode !== 3) { + partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + } + delete partsDataRow.dMaterialsKQty; + delete partsDataRow.dMaterialsLength; + delete partsDataRow.dMaterialsWidth; + if (productClassify.bSpecialRules) { + partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; + partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + } + controlData.push(partsDataRow); + // 材料信息 + await partInfo.materialsInfo.forEach(async (materialInfo, iOrder) => { + let materialDataRow = {}; + for (const item of materialsConfig.gdsconfigformslave) { + materialDataRow[item.sName] = materialInfo[item.sName]; } - controlData.push(partsDataRow); - // 材料信息 - await partInfo.materialsInfo.forEach(async (materialInfo, iOrder) => { - let materialDataRow = {}; - for (const item of materialsConfig.gdsconfigformslave) { - materialDataRow[item.sName] = materialInfo[item.sName]; + materialDataRow.handleType = 'add'; + materialDataRow.sType = '0'; + materialDataRow.iPartOrder = iIndex; + materialDataRow.iOrder = iOrder + 1; + materialDataRow.sPartsName = partsDataRow.sPartsName; + materialDataRow.sId = commonUtils.createSid(); + materialDataRow.sParentId = masterData.sId; + materialDataRow.sControlId = partsDataRow.sId; + // materialDataRow.sSlaveId = ' '; + materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; + const models = 'Materials'; + materialDataRow = await this.props.onMaterialsChange(materialDataRow, sModelsId, masterData, [], 'dAuxiliaryQty', app, token, models); + materialDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, materialDataRow); + materialsData.push(materialDataRow); + }); + // 工序信息 + let processPrintDataRow = {}; + processPrintDataRow.handleType = 'add'; + processPrintDataRow.sProcessId = partInfo.sProcessId; + const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); + if (iProcessPrintIndex > -1) { + processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 + } + processPrintDataRow.sType = partInfo.sType; + processPrintDataRow.iPartOrder = iIndex; + processPrintDataRow.iOrder = 1; + processPrintDataRow.sProcessName = partInfo.sProcessName; + processPrintDataRow.sPartsName = partsDataRow.sPartsName; + processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; + processPrintDataRow.dLossQty = partInfo.dLossQty; + processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; + processPrintDataRow.sId = commonUtils.createSid(); + processPrintDataRow.sParentId = masterData.sId; + processPrintDataRow.sControlId = partsDataRow.sId; + // processPrintDataRow.sSlaveId = ' '; + processData.push(processPrintDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; + processRow.sType = dropDownDataProcessName[iIndex].sType; + // processRow.sSlaveId = ' '; + processData.push(processRow); } - materialDataRow.handleType = 'add'; - materialDataRow.sType = '0'; - materialDataRow.iPartOrder = iIndex; - materialDataRow.iOrder = iOrder + 1; - materialDataRow.sPartsName = partsDataRow.sPartsName; - materialDataRow.sId = commonUtils.createSid(); - materialDataRow.sParentId = masterData.sId; - materialDataRow.sControlId = partsDataRow.sId; - // materialDataRow.sSlaveId = ' '; - materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; - const models = 'Materials'; - materialDataRow = await this.props.onMaterialsChange(materialDataRow, sModelsId, masterData, [], 'dAuxiliaryQty', app, token, models); - materialDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, materialDataRow); - materialsData.push(materialDataRow); - }); - // 工序信息 - let processPrintDataRow = {}; - processPrintDataRow.handleType = 'add'; - processPrintDataRow.sProcessId = partInfo.sProcessId; - const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); - if (iProcessPrintIndex > -1) { - processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 - } - processPrintDataRow.sType = partInfo.sType; - processPrintDataRow.iPartOrder = iIndex; - processPrintDataRow.iOrder = 1; - processPrintDataRow.sProcessName = partInfo.sProcessName; - processPrintDataRow.sPartsName = partsDataRow.sPartsName; - processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; - processPrintDataRow.dLossQty = partInfo.dLossQty; - processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; - processPrintDataRow.sId = commonUtils.createSid(); - processPrintDataRow.sParentId = masterData.sId; - processPrintDataRow.sControlId = partsDataRow.sId; - // processPrintDataRow.sSlaveId = ' '; - processData.push(processPrintDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - // processRow.sSlaveId = ' '; - processData.push(processRow); - } - })); - } + })); + } - partInfo.processInfo.forEach((process, iOrder) => { - let processAfterDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processAfterDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processAfterDataRow[child] = process[child]; - } - processAfterDataRow.handleType = 'add'; - processAfterDataRow.sProcessId = process.sProcessId; - const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); - if (iProcessAfterIndex > -1) { - processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 - } - processAfterDataRow.sType = process.sType; - processAfterDataRow.iPartOrder = iIndex; - processAfterDataRow.iOrder = iOrder + 1; - processAfterDataRow.sPartsName = partsDataRow.sPartsName; - processAfterDataRow.sId = commonUtils.createSid(); - processAfterDataRow.sParentId = masterData.sId; - processAfterDataRow.sControlId = partsDataRow.sId; - // processAfterDataRow.sSlaveId = ' '; - processData.push(processAfterDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - // processRow.sSlaveId = ' '; - processData.push(processRow); - } - })); - } - }); - }); - productProcessInfo.forEach((process, iOrder) => { - let processProductDataRow = {}; + partInfo.processInfo.forEach((process, iOrder) => { + let processAfterDataRow = {}; for (const item of processConfig.gdsconfigformslave) { - processProductDataRow[item.sName] = process[item.sName]; + processAfterDataRow[item.sName] = process[item.sName]; } for (const child of Object.keys(process)) { - processProductDataRow[child] = process[child]; + processAfterDataRow[child] = process[child]; } - const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); - if (iProductProcessIndex > -1) { - processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + processAfterDataRow.handleType = 'add'; + processAfterDataRow.sProcessId = process.sProcessId; + const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); + if (iProcessAfterIndex > -1) { + processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 } - processProductDataRow.handleType = 'add'; - processProductDataRow.sType = '3'; - processProductDataRow.sPartsName = ''; - processProductDataRow.iPartOrder = 999; - processProductDataRow.iOrder = iOrder + 1; - processProductDataRow.sId = commonUtils.createSid(); - processProductDataRow.sParentId = masterData.sId; - // processProductDataRow.sSlaveId = ' '; - processData.push(processProductDataRow); + processAfterDataRow.sType = process.sType; + processAfterDataRow.iPartOrder = iIndex; + processAfterDataRow.iOrder = iOrder + 1; + processAfterDataRow.sPartsName = partsDataRow.sPartsName; + processAfterDataRow.sId = commonUtils.createSid(); + processAfterDataRow.sParentId = masterData.sId; + processAfterDataRow.sControlId = partsDataRow.sId; + // processAfterDataRow.sSlaveId = ' '; + processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; // processRow.sSlaveId = ' '; processData.push(processRow); @@ -1050,32 +993,72 @@ class QuotationPack extends Component { })); } }); - processData = this.sortData(controlData, processData); - const addState = { controlSelectedRowKeys: ['0000000'] }; - if (!commonUtils.isEmptyArr(slaveData)) { - addState.slaveSelectedRowKeys = [slaveData[0].sId]; + }); + productProcessInfo.forEach((process, iOrder) => { + let processProductDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processProductDataRow[item.sName] = process[item.sName]; + } + for (const child of Object.keys(process)) { + processProductDataRow[child] = process[child]; + } + const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); + if (iProductProcessIndex > -1) { + processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + } + processProductDataRow.handleType = 'add'; + processProductDataRow.sType = '3'; + processProductDataRow.sPartsName = ''; + processProductDataRow.iPartOrder = 999; + processProductDataRow.iOrder = iOrder + 1; + processProductDataRow.sId = commonUtils.createSid(); + processProductDataRow.sParentId = masterData.sId; + // processProductDataRow.sSlaveId = ' '; + processData.push(processProductDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + // processRow.sSlaveId = ' '; + processData.push(processRow); + } + })); } - this.props.onSaveState({ - materialsConfig, - slaveData, - controlData, - materialsData, - processData, - fastOrderModalVisible: false, - quotationAllprogress: 0, - materialsSelectedRowKeys: [], - ...addState, - sInfoArr, - bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), - Loading: false, - }); - } else { - this.props.getServiceError(dataReturn); - this.props.onSaveState({ - Loading: false, - }); + }); + processData = this.sortData(controlData, processData); + const addState = { controlSelectedRowKeys: ['0000000'] }; + if (!commonUtils.isEmptyArr(slaveData)) { + addState.slaveSelectedRowKeys = [slaveData[0].sId]; } - }, timValue); + this.props.onSaveState({ + materialsConfig, + slaveData, + controlData, + materialsData, + processData, + fastOrderModalVisible: false, + quotationAllprogress: 0, + materialsSelectedRowKeys: [], + ...addState, + sInfoArr, + bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), + Loading: false, + }); + } else { + this.props.getServiceError(dataReturn); + this.props.onSaveState({ + Loading: false, + }); + } }; /* 勾选工序分类 */ diff --git a/src/components/QuoQuotation/QuotationPackTableTree/QuotationPackTableTree.js b/src/components/QuoQuotation/QuotationPackTableTree/QuotationPackTableTree.js index 1a6c235..d08d1f8 100644 --- a/src/components/QuoQuotation/QuotationPackTableTree/QuotationPackTableTree.js +++ b/src/components/QuoQuotation/QuotationPackTableTree/QuotationPackTableTree.js @@ -1221,399 +1221,342 @@ class QuotationPackTableTree extends Component { if (sAllPartsName !== undefined) { allPartsName = sAllPartsName.split(','); } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'quotationAllprogress') { - this.props.onSaveState({ - quotationAllprogress: rtmsg.msg, - }); - } 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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - let cpProcessName = ''; - checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; - // paramMap.modelName = masterData.modelName; - paramMap.bQuotation = true; - paramMap.sCustomerId = masterData.sCustomerId; - paramMap.sCustomerName = masterData.sCustomerName; - paramMap.sProductClassifyId = masterData.sProductClassifyId; - paramMap.sProductId = masterData.sProductId; - paramMap.sProductName = masterData.sProductName; - paramMap.sProductStyleId = masterData.sProductStyleId; - paramMap.sProductStyle = masterData.sProductStyle; - paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; - paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; - paramMap.dProductHeight = 0; - paramMap.dProductQty = masterData.dProductQty; - const partsInfo = []; - allPartsName.forEach((item) => { - const partInfo = {}; - partInfo.sPartsName = item; - partInfo.dPartsQty = masterData.dProductQty; - partInfo.dSumPQty = masterData[`dSumPQty${item}`]; - partInfo.dPartsLength = masterData[`dPartsLength${item}`]; /* 部件长 */ - partInfo.dPartsWidth = masterData[`dPartsWidth${item}`]; /* 部件宽 */ - - const materialsInfo = []; - const material = {}; - material.sMaterialsId = masterData[`sMaterialsId${item}`]; - material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; - material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; - materialsInfo.push(material); - partInfo.materialsInfo = materialsInfo; - partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; - partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; - if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { - const processInfo = []; - checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId + item])) { - if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { - partInfo.sPrintProcessId = masterData[card.sId + item]; - } else { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId + item]; - if (masterData[card.sId + card.sName + item] !== undefined) { - process.sProcessName = masterData[card.sId + card.sName + item]; - process.sType = masterData[card.sId + card.sType + item]; - processInfo.push(process); - } + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'quotationAllprogress') { + this.props.onSaveState({ + quotationAllprogress: rtmsg.msg, + }); + } + }; + let cpProcessName = ''; + checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData; + // paramMap.modelName = masterData.modelName; + paramMap.bQuotation = true; + paramMap.sCustomerId = masterData.sCustomerId; + paramMap.sCustomerName = masterData.sCustomerName; + paramMap.sProductClassifyId = masterData.sProductClassifyId; + paramMap.sProductId = masterData.sProductId; + paramMap.sProductName = masterData.sProductName; + paramMap.sProductStyleId = masterData.sProductStyleId; + paramMap.sProductStyle = masterData.sProductStyle; + paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0; + paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0; + paramMap.dProductHeight = 0; + paramMap.dProductQty = masterData.dProductQty; + const partsInfo = []; + allPartsName.forEach((item) => { + const partInfo = {}; + partInfo.sPartsName = item; + partInfo.dPartsQty = masterData.dProductQty; + partInfo.dSumPQty = masterData[`dSumPQty${item}`]; + partInfo.dPartsLength = masterData[`dPartsLength${item}`]; /* 部件长 */ + partInfo.dPartsWidth = masterData[`dPartsWidth${item}`]; /* 部件宽 */ + + const materialsInfo = []; + const material = {}; + material.sMaterialsId = masterData[`sMaterialsId${item}`]; + material.sMaterialsNo = masterData[`sMaterialsNo${item}`]; + material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`]; + materialsInfo.push(material); + partInfo.materialsInfo = materialsInfo; + partInfo.iPositiveColor = masterData[`iPositiveColor${item}`]; + partInfo.iPrintModePo = masterData[`iPrintModePo${item}`]; + if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') { + const processInfo = []; + checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId + item])) { + if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') { + partInfo.sPrintProcessId = masterData[card.sId + item]; + } else { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId + item]; + if (masterData[card.sId + card.sName + item] !== undefined) { + process.sProcessName = masterData[card.sId + card.sName + item]; + process.sType = masterData[card.sId + card.sType + item]; + processInfo.push(process); } } - }); - partInfo.processInfo = processInfo; - partsInfo.push(partInfo); - } - }); - const productProcess = []; - checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { - if (!commonUtils.isEmpty(masterData[card.sId])) { - const process = {}; - process.sProductClassifyId = card.sId; - process.sProcessId = masterData[card.sId]; - process.sProcessName = masterData[card.sId + card.sName]; - if (masterData[card.sId + card.sName] !== undefined) { - cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; - productProcess.push(process); } + }); + partInfo.processInfo = processInfo; + partsInfo.push(partInfo); + } + }); + const productProcess = []; + checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => { + if (!commonUtils.isEmpty(masterData[card.sId])) { + const process = {}; + process.sProductClassifyId = card.sId; + process.sProcessId = masterData[card.sId]; + process.sProcessName = masterData[card.sId + card.sName]; + if (masterData[card.sId + card.sName] !== undefined) { + cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`; + productProcess.push(process); } - }); - paramMap.cpProcessName = cpProcessName; - paramMap.productProcessInfo = productProcess; - paramMap.partsInfo = partsInfo; - let numErr = false; - let numName = ''; - let num = 0; - - // eslint-disable-next-line array-callback-return - paramMap.partsInfo.map((item) => { - if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { - num = item.dSumPQty; - numName = item.sPartsName; - } - if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { - numErr = true; - numName = item.sPartsName; - } - }); - if (numErr) { - message.error(`${numName}P数必须是2的倍数!`); - return; } - if (num === 2) { - message.error(`${numName}P数必须大于4P!`); - return; + }); + paramMap.cpProcessName = cpProcessName; + paramMap.productProcessInfo = productProcess; + paramMap.partsInfo = partsInfo; + let numErr = false; + let numName = ''; + let num = 0; + + // eslint-disable-next-line array-callback-return + paramMap.partsInfo.map((item) => { + if (masterData.sProductClassifyId === '15736273370008507016374163380000' && item.dSumPQty < 4) { + num = item.dSumPQty; + numName = item.sPartsName; + } + if (item.dSumPQty % 2 !== 0 && item.dSumPQty !== undefined) { + numErr = true; + numName = item.sPartsName; } + }); + if (numErr) { + message.error(`${numName}P数必须是2的倍数!`); + return; + } + if (num === 2) { + message.error(`${numName}P数必须大于4P!`); + return; + } - if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || - commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { - // this.props.onSaveState({ fastOrderModalVisible: false }); - message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ - return; - } - /* 验证产品规格是否 符合数字*数字格式 */ - const sProductStyle = paramMap.sProductStyle; - if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ - const arr = sProductStyle.split('*'); - const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; - if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { - for (let i = 0; i < arr.length; i += 1) { - if (!numCheck.test(arr[i])) { /* 验证是否数字 */ - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; - } + if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) || + commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) { + // this.props.onSaveState({ fastOrderModalVisible: false }); + message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */ + return; + } + /* 验证产品规格是否 符合数字*数字格式 */ + const sProductStyle = paramMap.sProductStyle; + if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */ + const arr = sProductStyle.split('*'); + const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/; + if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) { + for (let i = 0; i < arr.length; i += 1) { + if (!numCheck.test(arr[i])) { /* 验证是否数字 */ + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; } - } else { - message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); - return; } - /* 验证*两边是否是数字 */ } else { message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); return; } - this.props.onSaveState({ - Loading: true, - }); - // onSendSocketMessage('quotationSplitPaste', 'noAction', masterData.sId, userinfo.sId, null, null); + /* 验证*两边是否是数字 */ + } else { + message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr')); + return; + } + this.props.onSaveState({ + Loading: true, + }); + // onSendSocketMessage('quotationSplitPaste', 'noAction', masterData.sId, userinfo.sId, null, null); - const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; - const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; - if (dataReturn.code === 1) { - const { - productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, - } = dataReturn.dataset.rows[0]; - const slaveData = []; - const controlData = []; - const materialsData = []; - let processData = []; - const tableDataRow = {}; - for (const item of slaveConfig.gdsconfigformslave) { - tableDataRow[item.sName] = masterData[item.sName]; - } - tableDataRow.sId = commonUtils.createSid(); - tableDataRow.handleType = 'add'; - tableDataRow.iOrder = 1; - tableDataRow.sParentId = masterData.sId; - // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); - let productIdDropDown; - const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); - if (slaveIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); - productIdDropDown = sqlDropDownData.dropDownData; - } - const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); - if (iProductIdIndex === -1) { - tableDataRow.sProductId = tableDataRow.sProductName; - tableDataRow.sProductInfo = JSON.stringify({ - sProductId: tableDataRow.sProductName, - sProductName: tableDataRow.sProductName, - sProductStyle: tableDataRow.sProductStyle, - sProductUnit: tableDataRow.sProductUnit, - sProductNo: tableDataRow.sProductNo, - sCustomerProductNo: tableDataRow.sCustomerProductNo, - sProductClassifyId: tableDataRow.sProductClassifyId, - sProductClassifyName: tableDataRow.sProductClassifyName, - }); - } else { - tableDataRow.sProductInfo = ''; - } - slaveData.push(tableDataRow); - const sInfoArr = []; - if (!commonUtils.isEmptyArr(partsOldInfo)) { - partsOldInfo.forEach((item) => { - if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { - this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); - } - }); - } - if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ - partsNewInfo.forEach((item) => { - const { sPartsName, sInfo } = item; - const sInfoObj = {}; - sInfoObj.sPartsName = sPartsName; - sInfoObj.sInfo = sInfo; - sInfoArr.push(sInfoObj); - }); - } + const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, paramMap, url)).data; + if (dataReturn.code === 1) { + const { + productClassify, partsNewInfo, productProcessInfo, partsInfo: partsOldInfo, + } = dataReturn.dataset.rows[0]; + const slaveData = []; + const controlData = []; + const materialsData = []; + let processData = []; + const tableDataRow = {}; + for (const item of slaveConfig.gdsconfigformslave) { + tableDataRow[item.sName] = masterData[item.sName]; + } + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.iOrder = 1; + tableDataRow.sParentId = masterData.sId; + // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName'); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow); + productIdDropDown = sqlDropDownData.dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1) { + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + slaveData.push(tableDataRow); + const sInfoArr = []; + if (!commonUtils.isEmptyArr(partsOldInfo)) { + partsOldInfo.forEach((item) => { + if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) { + this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` }); + } + }); + } + if (this.props.app.userinfo.sType === 'sysadmin') { /* 超级管理员,弹窗显示接口返回的sInfo */ + partsNewInfo.forEach((item) => { + const { sPartsName, sInfo } = item; + const sInfoObj = {}; + sInfoObj.sPartsName = sPartsName; + sInfoObj.sInfo = sInfo; + sInfoArr.push(sInfoObj); + }); + } - const bProcessAssort = true; - let returnProcessAssort = []; - let processAssignAssort = ''; - let dropDownDataProcessName; + const bProcessAssort = true; + let returnProcessAssort = []; + let processAssignAssort = ''; + let dropDownDataProcessName; + if (bProcessAssort) { + const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; + const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; + if (dataProcessAssort.code === 1) { + returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); + dropDownDataProcessName = sqlDropDownData.dropDownData; + processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + } + } + } + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; + await partsNewInfo.forEach(async (partInfo, iIndex) => { + const partsDataRow = {}; + for (const child of Object.keys(partInfo)) { + partsDataRow[child] = partInfo[child]; + } + partsDataRow.handleType = 'add'; + partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ + partsDataRow.sId = commonUtils.createSid(); + partsDataRow.sParentId = masterData.sId; + // partsDataRow.sSlaveId = ' '; + if (partsDataRow.iPrintMode !== 3) { + partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; + } + delete partsDataRow.dMaterialsKQty; + delete partsDataRow.dMaterialsLength; + delete partsDataRow.dMaterialsWidth; + if (productClassify.bSpecialRules) { + partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; + partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; + } + controlData.push(partsDataRow); + // 材料信息 + await partInfo.materialsInfo.forEach(async (materialInfo, iOrder) => { + let materialDataRow = {}; + for (const item of materialsConfig.gdsconfigformslave) { + materialDataRow[item.sName] = materialInfo[item.sName]; + } + materialDataRow.handleType = 'add'; + materialDataRow.sType = '0'; + materialDataRow.iPartOrder = iIndex; + materialDataRow.iOrder = iOrder + 1; + materialDataRow.sPartsName = partsDataRow.sPartsName; + materialDataRow.sId = commonUtils.createSid(); + materialDataRow.sParentId = masterData.sId; + materialDataRow.sControlId = partsDataRow.sId; + // materialDataRow.sSlaveId = ' '; + materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; + const models = 'Materials'; + materialDataRow = await this.props.onMaterialsChange(materialDataRow, sModelsId, masterData, [], 'dAuxiliaryQty', app, token, models); + materialDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, materialDataRow); + materialsData.push(materialDataRow); + }); + // 工序信息 + let processPrintDataRow = {}; + processPrintDataRow.handleType = 'add'; + processPrintDataRow.sProcessId = partInfo.sProcessId; + const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); + if (iProcessPrintIndex > -1) { + processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 + } + processPrintDataRow.sType = partInfo.sType; + processPrintDataRow.iPartOrder = iIndex; + processPrintDataRow.iOrder = 1; + processPrintDataRow.sProcessName = partInfo.sProcessName; + processPrintDataRow.sPartsName = partsDataRow.sPartsName; + processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; + processPrintDataRow.dLossQty = partInfo.dLossQty; + processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; + processPrintDataRow.sId = commonUtils.createSid(); + processPrintDataRow.sParentId = masterData.sId; + processPrintDataRow.sControlId = partsDataRow.sId; + // processPrintDataRow.sSlaveId = ' '; + processData.push(processPrintDataRow); + // 配套工序 if (bProcessAssort) { - const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`; - const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data; - if (dataProcessAssort.code === 1) { - returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort; - const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); - if (iIndex > -1) { - const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]); - dropDownDataProcessName = sqlDropDownData.dropDownData; - processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField; + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; + processRow.sType = dropDownDataProcessName[iIndex].sType; + // processRow.sSlaveId = ' '; + processData.push(processRow); } - } + })); } - const newCopyTo = {}; - newCopyTo.master = masterData; - newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0]; - await partsNewInfo.forEach(async (partInfo, iIndex) => { - const partsDataRow = {}; - for (const child of Object.keys(partInfo)) { - partsDataRow[child] = partInfo[child]; - } - partsDataRow.handleType = 'add'; - partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */ - partsDataRow.sId = commonUtils.createSid(); - partsDataRow.sParentId = masterData.sId; - // partsDataRow.sSlaveId = ' '; - if (partsDataRow.iPrintMode !== 3) { - partsDataRow.iOppositeColor = partsDataRow.iPositiveColor; - } - delete partsDataRow.dMaterialsKQty; - delete partsDataRow.dMaterialsLength; - delete partsDataRow.dMaterialsWidth; - if (productClassify.bSpecialRules) { - partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength; - partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth; - } - controlData.push(partsDataRow); - // 材料信息 - await partInfo.materialsInfo.forEach(async (materialInfo, iOrder) => { - let materialDataRow = {}; - for (const item of materialsConfig.gdsconfigformslave) { - materialDataRow[item.sName] = materialInfo[item.sName]; - } - materialDataRow.handleType = 'add'; - materialDataRow.sType = '0'; - materialDataRow.iPartOrder = iIndex; - materialDataRow.iOrder = iOrder + 1; - materialDataRow.sPartsName = partsDataRow.sPartsName; - materialDataRow.sId = commonUtils.createSid(); - materialDataRow.sParentId = masterData.sId; - materialDataRow.sControlId = partsDataRow.sId; - // materialDataRow.sSlaveId = ' '; - materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial; - const models = 'Materials'; - materialDataRow = await this.props.onMaterialsChange(materialDataRow, sModelsId, masterData, [], 'dAuxiliaryQty', app, token, models); - materialDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, materialDataRow); - materialsData.push(materialDataRow); - }); - // 工序信息 - let processPrintDataRow = {}; - processPrintDataRow.handleType = 'add'; - processPrintDataRow.sProcessId = partInfo.sProcessId; - const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId); - if (iProcessPrintIndex > -1) { - processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段 - } - processPrintDataRow.sType = partInfo.sType; - processPrintDataRow.iPartOrder = iIndex; - processPrintDataRow.iOrder = 1; - processPrintDataRow.sProcessName = partInfo.sProcessName; - processPrintDataRow.sPartsName = partsDataRow.sPartsName; - processPrintDataRow.dProcessInQty = partInfo.dProcessInQty; - processPrintDataRow.dLossQty = partInfo.dLossQty; - processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty; - processPrintDataRow.sId = commonUtils.createSid(); - processPrintDataRow.sParentId = masterData.sId; - processPrintDataRow.sControlId = partsDataRow.sId; - // processPrintDataRow.sSlaveId = ' '; - processData.push(processPrintDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - // processRow.sSlaveId = ' '; - processData.push(processRow); - } - })); - } - partInfo.processInfo.forEach((process, iOrder) => { - let processAfterDataRow = {}; - for (const item of processConfig.gdsconfigformslave) { - processAfterDataRow[item.sName] = process[item.sName]; - } - for (const child of Object.keys(process)) { - processAfterDataRow[child] = process[child]; - } - processAfterDataRow.handleType = 'add'; - processAfterDataRow.sProcessId = process.sProcessId; - const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); - if (iProcessAfterIndex > -1) { - processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 - } - processAfterDataRow.sType = process.sType; - processAfterDataRow.iPartOrder = iIndex; - processAfterDataRow.iOrder = iOrder + 1; - processAfterDataRow.sPartsName = partsDataRow.sPartsName; - processAfterDataRow.sId = commonUtils.createSid(); - processAfterDataRow.sParentId = masterData.sId; - processAfterDataRow.sControlId = partsDataRow.sId; - // processAfterDataRow.sSlaveId = ' '; - processData.push(processAfterDataRow); - // 配套工序 - if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { - const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); - const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); - if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { - let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 - processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 - processRow.handleType = 'add'; - processRow.sId = commonUtils.createSid(); - processRow.sParentId = masterData.sId; - processRow.sControlId = partsDataRow.sId; - processRow.sPartsName = partsDataRow.sPartsName; - processRow.sType = dropDownDataProcessName[iIndex].sType; - // processRow.sSlaveId = ' '; - processData.push(processRow); - } - })); - } - }); - }); - productProcessInfo.forEach((process, iOrder) => { - let processProductDataRow = {}; + partInfo.processInfo.forEach((process, iOrder) => { + let processAfterDataRow = {}; for (const item of processConfig.gdsconfigformslave) { - processProductDataRow[item.sName] = process[item.sName]; + processAfterDataRow[item.sName] = process[item.sName]; } for (const child of Object.keys(process)) { - processProductDataRow[child] = process[child]; - } - const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); - if (iProductProcessIndex > -1) { - processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 - } - processProductDataRow.handleType = 'add'; - processProductDataRow.sType = '3'; - processProductDataRow.sPartsName = ''; - processProductDataRow.iPartOrder = 999; - processProductDataRow.iOrder = iOrder + 1; - processProductDataRow.sId = commonUtils.createSid(); - processProductDataRow.sParentId = masterData.sId; - // processProductDataRow.sSlaveId = ' '; - processData.push(processProductDataRow); + processAfterDataRow[child] = process[child]; + } + processAfterDataRow.handleType = 'add'; + processAfterDataRow.sProcessId = process.sProcessId; + const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId); + if (iProcessAfterIndex > -1) { + processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段 + } + processAfterDataRow.sType = process.sType; + processAfterDataRow.iPartOrder = iIndex; + processAfterDataRow.iOrder = iOrder + 1; + processAfterDataRow.sPartsName = partsDataRow.sPartsName; + processAfterDataRow.sId = commonUtils.createSid(); + processAfterDataRow.sParentId = masterData.sId; + processAfterDataRow.sControlId = partsDataRow.sId; + // processAfterDataRow.sSlaveId = ' '; + processData.push(processAfterDataRow); // 配套工序 if (bProcessAssort) { - returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => { const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); const iProcessIndex = -1; - const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId); if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 processRow.handleType = 'add'; processRow.sId = commonUtils.createSid(); processRow.sParentId = masterData.sId; + processRow.sControlId = partsDataRow.sId; + processRow.sPartsName = partsDataRow.sPartsName; processRow.sType = dropDownDataProcessName[iIndex].sType; // processRow.sSlaveId = ' '; processData.push(processRow); @@ -1621,32 +1564,72 @@ class QuotationPackTableTree extends Component { })); } }); - processData = this.sortData(controlData, processData); - const addState = { controlSelectedRowKeys: ['0000000'] }; - if (!commonUtils.isEmptyArr(slaveData)) { - addState.slaveSelectedRowKeys = [slaveData[0].sId]; + }); + productProcessInfo.forEach((process, iOrder) => { + let processProductDataRow = {}; + for (const item of processConfig.gdsconfigformslave) { + processProductDataRow[item.sName] = process[item.sName]; + } + for (const child of Object.keys(process)) { + processProductDataRow[child] = process[child]; + } + const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId); + if (iProductProcessIndex > -1) { + processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段 + } + processProductDataRow.handleType = 'add'; + processProductDataRow.sType = '3'; + processProductDataRow.sPartsName = ''; + processProductDataRow.iPartOrder = 999; + processProductDataRow.iOrder = iOrder + 1; + processProductDataRow.sId = commonUtils.createSid(); + processProductDataRow.sParentId = masterData.sId; + // processProductDataRow.sSlaveId = ' '; + processData.push(processProductDataRow); + // 配套工序 + if (bProcessAssort) { + returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => { + const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId); + const iProcessIndex = -1; + const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId); + if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) { + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sParentId = masterData.sId; + processRow.sType = dropDownDataProcessName[iIndex].sType; + // processRow.sSlaveId = ' '; + processData.push(processRow); + } + })); } - this.props.onSaveState({ - materialsConfig, - slaveData, - controlData, - materialsData, - processData, - fastOrderModalVisible: false, - quotationAllprogress: 0, - materialsSelectedRowKeys: [], - ...addState, - sInfoArr, - bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), - Loading: false, - }); - } else { - this.props.getServiceError(dataReturn); - this.props.onSaveState({ - Loading: false, - }); + }); + processData = this.sortData(controlData, processData); + const addState = { controlSelectedRowKeys: ['0000000'] }; + if (!commonUtils.isEmptyArr(slaveData)) { + addState.slaveSelectedRowKeys = [slaveData[0].sId]; } - }, timValue); + this.props.onSaveState({ + materialsConfig, + slaveData, + controlData, + materialsData, + processData, + fastOrderModalVisible: false, + quotationAllprogress: 0, + materialsSelectedRowKeys: [], + ...addState, + sInfoArr, + bVisiblesInfo: !!commonUtils.isNotEmptyArr(sInfoArr), + Loading: false, + }); + } else { + this.props.getServiceError(dataReturn); + this.props.onSaveState({ + Loading: false, + }); + } }; /* 勾选工序分类 */ diff --git a/src/mobile/common/CommobileBillEvent.js b/src/mobile/common/CommobileBillEvent.js index 171be4a..9c0f708 100644 --- a/src/mobile/common/CommobileBillEvent.js +++ b/src/mobile/common/CommobileBillEvent.js @@ -740,38 +740,21 @@ export default (ChildComponent) => { /** 点击修改按钮操作 */ handleEdit = () => { const { - slaveConfig, masterConfig, app, dispatch, currentId, + slaveConfig, masterConfig, app, 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); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + Toast.info(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + this.handleGetData(masterConfig, slaveConfig); + this.props.onSaveState({ enabled: true, loading: false }); + } + }; + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 获取主表、从表、审核表数据 */ diff --git a/src/mobile/common/CommobileClassifyEvent.js b/src/mobile/common/CommobileClassifyEvent.js index 29afb37..0e4ef0b 100644 --- a/src/mobile/common/CommobileClassifyEvent.js +++ b/src/mobile/common/CommobileClassifyEvent.js @@ -148,34 +148,15 @@ export default (ChildComponent) => { } = this.props; const { userinfo } = app; this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slaveOrderBy); - 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') { - message.warning(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 (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - this.props.onSaveState({ enabled: true, loading: false }); - } - }; - this.props.handleSendSocketMessage('update', 'showMsg', sModelsId, userinfo.sId, null, null); // 分类型不能以Id来,涉及到多条修改 - }, timValue); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } + this.props.onSaveState({ enabled: true, loading: false }); + }; + this.props.handleSendSocketMessage('update', 'showMsg', sModelsId, userinfo.sId, null, null); // 分类型不能以Id来,涉及到多条修改 }; /** 点击新增按钮操作 */ handleAdd = () => { diff --git a/src/mobile/common/CommobileListEvent.js b/src/mobile/common/CommobileListEvent.js index 1986f6e..173db0c 100644 --- a/src/mobile/common/CommobileListEvent.js +++ b/src/mobile/common/CommobileListEvent.js @@ -199,65 +199,48 @@ export default (ChildComponent) => { return; } } - 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(async () => { - this.props.app.webSocket.onmessage = (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'execute') { - if (rtmsg.msg === 'continue') { - if (commonUtils.isNotEmptyArr(copyToData)) { - dispatch({ - type: 'content/onRouterMobile', - payload: { - urlKey: sNameUrl, - sModelsId: sActiveId, - copyToData, - copyTo, - refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slaveOrderBy), /* 刷新方法 */ - }, - }); - } else { - Toast.fail(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择相同 - } - } else { - Toast.fail(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation')); /* 在操作,请稍后再操作! */ - } - } 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 } }); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'execute') { + if (rtmsg.msg === 'continue') { + if (commonUtils.isNotEmptyArr(copyToData)) { + dispatch({ + type: 'content/onRouterMobile', + payload: { + urlKey: sNameUrl, + sModelsId: sActiveId, + copyToData, + copyTo, + refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slaveOrderBy), /* 刷新方法 */ + }, + }); } else { - dispatch({ type: 'app/throwError', payload: { code: -2, msg: rtmsg.msg } }); + Toast.fail(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择相同 } - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - const tbSuffix = ''; - const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}`; - const values = { sSlaveId: slaveSelectedRowKeys.toString() }; - const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; - if (dataReturn.code === 1) { - if (dataReturn.dataset.rows.length > 0) { - alert('Warn', commonFunc.showMessage(app.commonConst, 'beUsedToNew'), [ - { - text: 'Ok', - onPress: () => { - sendSocketMessage('copy', 'execute', slaveSelectedRowKeys.toString(), app.userinfo.sId, null, null); - }, - }, - { text: 'Cancel' }, - ]); } else { - sendSocketMessage('copy', 'execute', slaveSelectedRowKeys.toString(), app.userinfo.sId, null, null); + Toast.fail(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation')); /* 在操作,请稍后再操作! */ } } - }, timValue); + }; + const tbSuffix = ''; + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}`; + const values = { sSlaveId: slaveSelectedRowKeys.toString() }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + if (dataReturn.dataset.rows.length > 0) { + alert('Warn', commonFunc.showMessage(app.commonConst, 'beUsedToNew'), [ + { + text: 'Ok', + onPress: () => { + sendSocketMessage('copy', 'execute', slaveSelectedRowKeys.toString(), app.userinfo.sId, null, null); + }, + }, + { text: 'Cancel' }, + ]); + } else { + sendSocketMessage('copy', 'execute', slaveSelectedRowKeys.toString(), app.userinfo.sId, null, null); + } + } } else { Toast.fail(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据 } @@ -289,22 +272,14 @@ export default (ChildComponent) => { /* 消息列表双击打开时 调用获取websocket消息 */ if (sModelsType === 'commonList/msg') { const { webSocket, userinfo } = app; - const timValue = 2000; - if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) { - this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); - } - setTimeout(() => { - webSocket.onmessage = async (msg) => { - const rtmsg = JSON.parse(msg.data); - if (rtmsg.action === 'showImg') { - const msgData = JSON.parse(msg.data); - dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); - } - }; - this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); - }, timValue); + webSocket.onmessageTmp = async (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showImg') { + const msgData = JSON.parse(msg.data); + dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } }); + } + }; + this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null); if (this.props.app.currentPane.refresh !== undefined) { this.props.app.currentPane.refresh(); } diff --git a/src/mobile/common/CommobileSubBillEvent.js b/src/mobile/common/CommobileSubBillEvent.js index 1648a42..50624f0 100644 --- a/src/mobile/common/CommobileSubBillEvent.js +++ b/src/mobile/common/CommobileSubBillEvent.js @@ -917,41 +917,24 @@ export default (ChildComponent) => { } = 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); - if(commonUtils.isNotEmptyObject(slave0Config) && this.isOutsourcedProcesses) { - this.handleGetMemoData(slave0Config); - } - if(commonUtils.isNotEmptyObject(slaveChildConfig) ) { - this.handleGetMemoData(slaveChildConfig); - } - // - this.props.onSaveState({ enabled: true, loading: false }); - } else if (this.props.app.webSocket.homeAction) { - this.props.app.webSocket.homeAction(msg); + this.props.app.webSocket.onmessageTmp = (msg) => { + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + Toast.info(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'update') { + this.handleGetData(masterConfig, slaveConfig); + if(commonUtils.isNotEmptyObject(slave0Config) && this.isOutsourcedProcesses) { + this.handleGetMemoData(slave0Config); + } + if(commonUtils.isNotEmptyObject(slaveChildConfig) ) { + this.handleGetMemoData(slaveChildConfig); } - }; - this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); - }, timValue); + // + this.props.onSaveState({ enabled: true, loading: false }); + } + }; + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); }; /** 获取主表、从表、审核表数据 */ diff --git a/src/models/app.js b/src/models/app.js index 327a909..d04d018 100644 --- a/src/models/app.js +++ b/src/models/app.js @@ -578,9 +578,9 @@ export default { // if (webSocket === null) { // return null; // } - url = `${config.ws_host}websocket/${userinfo.sId}?reStart=true`; + url = `${config.ws_host}websocket/${userinfo.sId}?reStart=true&createTime=${new Date().getTime()}`; if (userinfo.sUserLoginType) { - url = `${config.ws_host}websocket/${userinfo.sId}?reStart=true&sLoginType=${userinfo.sUserLoginType}`; + url = `${config.ws_host}websocket/${userinfo.sId}?reStart=true&createTime=${new Date().getTime()}&sLoginType=${userinfo.sUserLoginType}`; } } const reset = (ws, config1) => { @@ -589,15 +589,56 @@ export default { start(ws, config1); }; const start = (ws, config1) => { + if (!ws.originalSend) { + ws.originalSend = ws.send.bind(ws); + } + ws.send = (...args) => { + const value = utils.convertStrToObj(args[0], {}); + const { + key, + flag, + sendFrom, + sId, + } = value; + if ((key && flag && !['release', 'noAction'].includes(flag) && sendFrom && sId) || flag === 'connectTest') { + // 3s内没返回消息,则重新创建ws,重新发送 + clearTimeout(window.wsTimer); + window.wsTimer = setTimeout(() => { + console.log('================超时未收到WebSocket消息,重新创建ws并发送信息======================'); + window.wsHistoryArgs = args; + ws.onmessageTmp && (window.onmessageTmp = ws.onmessageTmp); + dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); + }, 3000); + } + ws.originalSend.apply(ws, args); + }; + + if (window.wsHistoryArgs) { + ws.send(...window.wsHistoryArgs); + window.wsHistoryArgs = undefined; + } + if (window.onmessageTmp) { + ws.onmessageTmp = window.onmessageTmp; + window.onmessageTmp = undefined; + } config1.timerServer = setTimeout(() => { const message = { sendFrom: userinfo.sId, connectTest: "test" }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 ws.send(JSON.stringify(message)); }, config1.timeoutServer); }; + const oldWebSocket = yield select(state => state.app.webSocket); const ws = new WebSocket(url); ws.onopen = function (e) { console.log("连接上 webscoket 服务端了", e); start(ws, config); + if (oldWebSocket && oldWebSocket !== ws) { + try { + oldWebSocket.close(); + console.log('================已关闭旧的WebSocket连接======================'); + } catch (error) { + console.log('================关闭旧WebSocket连接时出错======================', error); + } + } }; // 全局通用的自定义onmessage的方法 ws.homeAction = msg => { @@ -663,7 +704,10 @@ export default { } }; ws.onmessage = msg => { + clearTimeout(window.wsTimer); + window.xlyWsTimerFun && window.xlyWsTimerFun(); reset(ws, config); + ws.onmessageTmp?.(msg); ws.homeAction(msg); }; ws.onclose = e => { diff --git a/src/routes/indexPage.js b/src/routes/indexPage.js index dd09a76..5c03e6d 100644 --- a/src/routes/indexPage.js +++ b/src/routes/indexPage.js @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { connect } from 'umi'; import { ConfigProvider, Layout } from 'antd-v4'; import zhCN from 'antd-v4/lib/locale-provider/zh_CN'; @@ -26,6 +26,35 @@ function IndexPage({ app }) { }; }, []); + const { webSocket, userinfo } = app; + const { sId } = userinfo; + const testMsg = JSON.stringify({ flag: "connectTest", sId: "test", sendFrom: sId }); + + const timer = useRef(null); + + const { url } = webSocket || {}; + const wsRef = useRef(webSocket); + const xlyWsTimerFun = () => { + clearInterval(timer.current); + // 重新启动定时器 + timer.current = setInterval(() => { + if (wsRef.current && wsRef.current.readyState === WebSocket.OPEN) { + wsRef.current.send(testMsg); + } + }, 20000); + } + useEffect(() => { + if (url) { + wsRef.current = webSocket; + xlyWsTimerFun(); + window.xlyWsTimerFun = xlyWsTimerFun; + } + return () => { + window.xlyWsTimerFun = null; + clearInterval(timer.current); + }; + }, [url]); + // 根据用户语言选择对应的语言包 const getLocale = () => { switch(currentLanguage) { -- libgit2 0.22.2