From d631f64ffd58d871c5f4eba9810336d0969445c3 Mon Sep 17 00:00:00 2001
From: 陈鑫涛 <10125295+chen-xintao97@user.noreply.gitee.com>
Date: Thu, 20 Mar 2025 17:04:16 +0800
Subject: [PATCH] 新增页面
---
.umirc.ts | 31 ++++++++++++++++++++++++++++++-
package.json | 5 +++++
src/components/Charts/Bar/index.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/BrokenLine/index.js | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/ColorBlock/index.js | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/Columnar/index.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/ColumnarGroup/index.js | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/ColumnarStack/index.js | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/EqualColumnarStack/index.js | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/Gantt/Gantt.css | 3 +++
src/components/Charts/Gantt/MessageArea/Message.js | 24 ++++++++++++++++++++++++
src/components/Charts/Gantt/MessageArea/MessageArea.css | 18 ++++++++++++++++++
src/components/Charts/Gantt/MessageArea/index.js | 4 ++++
src/components/Charts/Gantt/index.js | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/Gauge/index.js | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/Pie/index.js | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/Pie/index.less | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/PieGroup/index.js | 31 +++++++++++++++++++++++++++++++
src/components/Charts/TimeLineGroup/index.js | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/TimelineChart/index.js | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/TimelineChart/index.less | 3 +++
src/components/Charts/WaterWave/index.js | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Charts/WaterWave/index.less | 29 +++++++++++++++++++++++++++++
src/components/Charts/equal.js | 17 +++++++++++++++++
src/components/Charts/index.js | 33 +++++++++++++++++++++++++++++++++
src/components/Charts/index.less | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonCheckBill/index.css | 14 ++++++++++++++
src/components/Common/CommonCheckBill/index.js | 2187 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonCheckBill/index.less | 16 ++++++++++++++++
src/components/Common/CommonCheckBillEvent.js | 5606 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonColumnList.js | 275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListA.js | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListEvent.js | 2 +-
src/components/Common/CommonListLeft/index.js | 500 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListLeft/index.less | 241 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListSelectAssignment.js | 376 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListSelectMulti/index.js | 1009 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListSelectMulti/index.less | 19 +++++++++++++++++++
src/components/Common/CommonListSelectProductMaterial.js | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListTab/index.js | 1317 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListTab/index.less | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListTabEvent.js | 3237 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonListTree/index.js | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonPartsInfo/index.js | 380 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonPartsInfo/index.less | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonSystemSettingEvent.js | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonTableNew/index.css | 4 ++++
src/components/Common/CommonTableNew/index.less | 4 ++--
src/components/Common/CommonTableNew/index.tsx | 25 ++++++++++++++++++++-----
src/components/Common/CommonViewFlex/index.js | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/CommonViewFlex/index.less | 0
src/components/Common/Flows/CommonFlow.js | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/Flows/OverviewFlow.js | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/Flows/flows.less | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/Flows/initial-elements-X.js | 478 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/Flows/initial-elements-Y.js | 420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/Gatte/CommonGatte.js | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/Gatte/index.less | 13 +++++++++++++
src/components/Common/MaterialRequirementsPlanning.js | 259 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/SearchComponent/index.js | 6 +++---
src/components/Common/SlavesInfo.js | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Common/baseChar.js | 310 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/CommonElementEvent/StatementInfo.js | 2 +-
src/components/CommonSystemSettingEvent/CommonSystemSetting.js | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/CommonSystemSettingEvent/TabFinanceOffer.js | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/CommonSystemSettingEvent/TabFinancePeriod.js | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/CommonSystemSettingEvent/TabSalesBuyer.js | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/CommonSystemSettingEvent/TabSysParam.js | 271 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/CommonSystemSettingEvent/TabSysParamsIcon.js | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/CommonSystemSettingEvent/index.less | 5 +++++
src/components/Manufacture/CommonPackEvent.js | 1790 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/ProcessCard/ProcessCard.js | 3658 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/ProcessCardPack/ProcessCardPack.js | 5826 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/ProcessCardPack/ProcessCardPackTableTree.js | 8966 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/ProcessCardPackTableTreeNew/index.js | 4170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/ProcessCardPackTableTreeNew/index.less | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/SplitPaste.less | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/WorkOrder/SplitPaste.js | 441 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/WorkOrder/WorkOrder.js | 4520 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/WorkOrderPack/WorkOrderPack.js | 6855 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js | 9501 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js | 8986 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/WorkOrderPackTableTreeNew/index.js | 4695 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/WorkOrderPackTableTreeNew/index.less | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/Manufacture/index.less | 283 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/components/NumberInfo/index.js | 34 ++++++++++++++++++++++++++++++++++
src/components/NumberInfo/index.less | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/index.less | 2 +-
src/routes/basicInfoSetting/checkModel/checkModel.js | 32 ++++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/checkPhase/checkPhase.js | 32 ++++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/commonStyle/commonStyle.js | 31 +++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/customerInfo/customerInfo.js | 32 ++++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/employee/employee.js | 32 ++++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/materiel/materiel.js | 37 +++++++++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/printInfo/printInfo.js | 31 +++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/processInfo/processInfo.js | 31 +++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/productClassify/productClassify.js | 31 +++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/sftLoginInfo/sftLoginInfo.js | 31 +++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/supplyInfo/supplyInfo.js | 32 ++++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/systemSetting/systemSetting.js | 31 +++++++++++++++++++++++++++++++
src/routes/basicInfoSetting/teststandInfo/teststandInfo.js | 32 ++++++++++++++++++++++++++++++++
src/routes/common/commonCheckBill.js | 23 +++++++++++++++++++++++
src/routes/commonColumnList/commonColumnList.js | 24 ++++++++++++++++++++++++
src/routes/commonGatte/commonGatte.js | 24 ++++++++++++++++++++++++
src/routes/commonList/commonListA.js | 2 +-
src/routes/commonList/commonListLeft.js | 2 +-
src/routes/commonList/commonListTab.js | 5 ++---
src/routes/commonListTree/commonListTree.js | 23 +++++++++++++++++++++++
src/routes/manufacture/processCard/processCardInfo.js | 23 +++++++++++++++++++++++
src/routes/manufacture/processCardPack/processCardInfoPack.js | 23 +++++++++++++++++++++++
src/routes/manufacture/processCardPackTableTree/processCardPackTableTree.js | 22 ++++++++++++++++++++++
src/routes/manufacture/processCardPackTableTreeNew/processCardPackTableTreeNew.js | 21 +++++++++++++++++++++
src/routes/manufacture/workOrder/workOrder.js | 23 +++++++++++++++++++++++
src/routes/manufacture/workOrderPack/workOrderPack.js | 23 +++++++++++++++++++++++
src/routes/manufacture/workOrderPackTableTree/workOrderPackTableTree.js | 23 +++++++++++++++++++++++
src/routes/manufacture/workOrderResearchTableTree/workOrderResearchTableTree.js | 23 +++++++++++++++++++++++
src/routes/materialRequirementsPlanning/materialRequirementsPlanning.js | 23 +++++++++++++++++++++++
src/routes/tab/tab.js | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
118 files changed, 82996 insertions(+), 20 deletions(-)
create mode 100644 src/components/Charts/Bar/index.js
create mode 100644 src/components/Charts/BrokenLine/index.js
create mode 100644 src/components/Charts/ColorBlock/index.js
create mode 100644 src/components/Charts/Columnar/index.js
create mode 100644 src/components/Charts/ColumnarGroup/index.js
create mode 100644 src/components/Charts/ColumnarStack/index.js
create mode 100644 src/components/Charts/EqualColumnarStack/index.js
create mode 100644 src/components/Charts/Gantt/Gantt.css
create mode 100644 src/components/Charts/Gantt/MessageArea/Message.js
create mode 100644 src/components/Charts/Gantt/MessageArea/MessageArea.css
create mode 100644 src/components/Charts/Gantt/MessageArea/index.js
create mode 100644 src/components/Charts/Gantt/index.js
create mode 100644 src/components/Charts/Gauge/index.js
create mode 100644 src/components/Charts/Pie/index.js
create mode 100644 src/components/Charts/Pie/index.less
create mode 100644 src/components/Charts/PieGroup/index.js
create mode 100644 src/components/Charts/TimeLineGroup/index.js
create mode 100644 src/components/Charts/TimelineChart/index.js
create mode 100644 src/components/Charts/TimelineChart/index.less
create mode 100644 src/components/Charts/WaterWave/index.js
create mode 100644 src/components/Charts/WaterWave/index.less
create mode 100644 src/components/Charts/equal.js
create mode 100644 src/components/Charts/index.js
create mode 100644 src/components/Charts/index.less
create mode 100644 src/components/Common/CommonCheckBill/index.css
create mode 100644 src/components/Common/CommonCheckBill/index.js
create mode 100644 src/components/Common/CommonCheckBill/index.less
create mode 100644 src/components/Common/CommonCheckBillEvent.js
create mode 100644 src/components/Common/CommonColumnList.js
create mode 100644 src/components/Common/CommonListA.js
create mode 100644 src/components/Common/CommonListLeft/index.js
create mode 100644 src/components/Common/CommonListLeft/index.less
create mode 100644 src/components/Common/CommonListSelectAssignment.js
create mode 100644 src/components/Common/CommonListSelectMulti/index.js
create mode 100644 src/components/Common/CommonListSelectMulti/index.less
create mode 100644 src/components/Common/CommonListSelectProductMaterial.js
create mode 100644 src/components/Common/CommonListTab/index.js
create mode 100644 src/components/Common/CommonListTab/index.less
create mode 100644 src/components/Common/CommonListTabEvent.js
create mode 100644 src/components/Common/CommonListTree/index.js
create mode 100644 src/components/Common/CommonPartsInfo/index.js
create mode 100644 src/components/Common/CommonPartsInfo/index.less
create mode 100644 src/components/Common/CommonSystemSettingEvent.js
create mode 100644 src/components/Common/CommonTableNew/index.css
create mode 100644 src/components/Common/CommonViewFlex/index.js
create mode 100644 src/components/Common/CommonViewFlex/index.less
create mode 100644 src/components/Common/Flows/CommonFlow.js
create mode 100644 src/components/Common/Flows/OverviewFlow.js
create mode 100644 src/components/Common/Flows/flows.less
create mode 100644 src/components/Common/Flows/initial-elements-X.js
create mode 100644 src/components/Common/Flows/initial-elements-Y.js
create mode 100644 src/components/Common/Gatte/CommonGatte.js
create mode 100644 src/components/Common/Gatte/index.less
create mode 100644 src/components/Common/MaterialRequirementsPlanning.js
create mode 100644 src/components/Common/SlavesInfo.js
create mode 100644 src/components/Common/baseChar.js
create mode 100644 src/components/CommonSystemSettingEvent/CommonSystemSetting.js
create mode 100644 src/components/CommonSystemSettingEvent/TabFinanceOffer.js
create mode 100644 src/components/CommonSystemSettingEvent/TabFinancePeriod.js
create mode 100644 src/components/CommonSystemSettingEvent/TabSalesBuyer.js
create mode 100644 src/components/CommonSystemSettingEvent/TabSysParam.js
create mode 100644 src/components/CommonSystemSettingEvent/TabSysParamsIcon.js
create mode 100644 src/components/CommonSystemSettingEvent/index.less
create mode 100644 src/components/Manufacture/CommonPackEvent.js
create mode 100644 src/components/Manufacture/ProcessCard/ProcessCard.js
create mode 100644 src/components/Manufacture/ProcessCardPack/ProcessCardPack.js
create mode 100644 src/components/Manufacture/ProcessCardPack/ProcessCardPackTableTree.js
create mode 100644 src/components/Manufacture/ProcessCardPackTableTreeNew/index.js
create mode 100644 src/components/Manufacture/ProcessCardPackTableTreeNew/index.less
create mode 100644 src/components/Manufacture/SplitPaste.less
create mode 100644 src/components/Manufacture/WorkOrder/SplitPaste.js
create mode 100644 src/components/Manufacture/WorkOrder/WorkOrder.js
create mode 100644 src/components/Manufacture/WorkOrderPack/WorkOrderPack.js
create mode 100644 src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js
create mode 100644 src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js
create mode 100644 src/components/Manufacture/WorkOrderPackTableTreeNew/index.js
create mode 100644 src/components/Manufacture/WorkOrderPackTableTreeNew/index.less
create mode 100644 src/components/Manufacture/index.less
create mode 100644 src/components/NumberInfo/index.js
create mode 100644 src/components/NumberInfo/index.less
create mode 100644 src/routes/basicInfoSetting/checkModel/checkModel.js
create mode 100644 src/routes/basicInfoSetting/checkPhase/checkPhase.js
create mode 100644 src/routes/basicInfoSetting/commonStyle/commonStyle.js
create mode 100644 src/routes/basicInfoSetting/customerInfo/customerInfo.js
create mode 100644 src/routes/basicInfoSetting/employee/employee.js
create mode 100644 src/routes/basicInfoSetting/materiel/materiel.js
create mode 100644 src/routes/basicInfoSetting/printInfo/printInfo.js
create mode 100644 src/routes/basicInfoSetting/processInfo/processInfo.js
create mode 100644 src/routes/basicInfoSetting/productClassify/productClassify.js
create mode 100644 src/routes/basicInfoSetting/sftLoginInfo/sftLoginInfo.js
create mode 100644 src/routes/basicInfoSetting/supplyInfo/supplyInfo.js
create mode 100644 src/routes/basicInfoSetting/systemSetting/systemSetting.js
create mode 100644 src/routes/basicInfoSetting/teststandInfo/teststandInfo.js
create mode 100644 src/routes/common/commonCheckBill.js
create mode 100644 src/routes/commonColumnList/commonColumnList.js
create mode 100644 src/routes/commonGatte/commonGatte.js
create mode 100644 src/routes/commonListTree/commonListTree.js
create mode 100644 src/routes/manufacture/processCard/processCardInfo.js
create mode 100644 src/routes/manufacture/processCardPack/processCardInfoPack.js
create mode 100644 src/routes/manufacture/processCardPackTableTree/processCardPackTableTree.js
create mode 100644 src/routes/manufacture/processCardPackTableTreeNew/processCardPackTableTreeNew.js
create mode 100644 src/routes/manufacture/workOrder/workOrder.js
create mode 100644 src/routes/manufacture/workOrderPack/workOrderPack.js
create mode 100644 src/routes/manufacture/workOrderPackTableTree/workOrderPackTableTree.js
create mode 100644 src/routes/manufacture/workOrderResearchTableTree/workOrderResearchTableTree.js
create mode 100644 src/routes/materialRequirementsPlanning/materialRequirementsPlanning.js
diff --git a/.umirc.ts b/.umirc.ts
index e16ca53..892a464 100644
--- a/.umirc.ts
+++ b/.umirc.ts
@@ -9,11 +9,40 @@ export default defineConfig({
component: '@/routes/indexPage',
routes: [
{ path: '/indexPage/CommonList' },
+ { path: '/indexPage/CommonListA' },
{ path: '/indexPage/CommonNewBill' },
{ path: '/indexPage/CommonBill' },
{ path: '/indexPage/CommonListEdit' },
{ path: '/indexPage/CommonClassify' },
- { path: '/indexPage/eleknifemould'}
+ { path: '/indexPage/eleknifemould'},
+ { path: '/indexPage/elecustomer'},
+ { path: '/indexPage/CommonListTab'},
+ { path: '/indexPage/commonColumnList'},
+ { path: '/indexPage/commonListTree'},
+ { path: '/indexPage/commonListLeft'},
+ { path: '/indexPage/commonGatte'},
+ { path: '/indexPage/materialRequirementsPlanning'},
+ { path: '/indexPage/eleteststand'},
+ { path: '/indexPage/eleemployee'},
+ { path: '/indexPage/elematerials'},
+ { path: '/indexPage/eleproduct'},
+ { path: '/indexPage/syssystemsettings'},
+ { path: '/indexPage/elesupply'},
+ { path: '/indexPage/eleprocess'},
+ { path: '/indexPage/elecheckmodel'},
+ { path: '/indexPage/sischeckphase'},
+ { path: '/indexPage/sftlogininfo'},
+ { path: '/indexPage/siscommonstyle'},
+ { path: '/indexPage/sisproductclassify'},
+ { path: '/indexPage/commonCheckBill'},
+ { path: '/indexPage/workOrderNew'},
+ { path: '/indexPage/workOrderPack'},
+ { path: '/indexPage/workOrderPackTableTree'},
+ { path: '/indexPage/workOrderResearchTableTree'},
+ { path: '/indexPage/processCard'},
+ { path: '/indexPage/processCardPack'},
+ { path: '/indexPage/processCardPackTableTree'},
+ { path: '/indexPage/processCardPackTableTreeNew'},
],
},
],
diff --git a/package.json b/package.json
index 8b8705d..c2a14a0 100644
--- a/package.json
+++ b/package.json
@@ -11,22 +11,27 @@
"dependencies": {
"@ant-design/compatible": "^1.1.2",
"@ant-design/icons": "^5.6.1",
+ "@antv/g2": "^5.2.12",
"@js-preview/docx": "^1.6.4",
"@js-preview/excel": "^1.7.14",
"antd": "^5.24.3",
"antd-mobile": "2.3.4",
"antd-v4": "npm:antd@4.24.16",
"braft-editor": "^2.3.9",
+ "dhtmlx-gantt": "^9.0.6",
"immutability-helper": "^3.1.1",
"lodash": "^4.17.21",
+ "lodash-decorators": "^6.0.1",
"moment": "^2.30.1",
"react-dnd": "^14.0.5",
"react-dnd-html5-backend": "^14.1.0",
+ "react-flow-renderer": "^10.3.17",
"react-grid-layout": "^1.5.1",
"react-highlight-words": "^0.21.0",
"react-pdf": "^9.2.1",
"react-resizable": "^3.0.5",
"react-sortable-hoc": "^2.0.0",
+ "react-to-print": "^3.0.5",
"umi": "^4.4.6"
},
"devDependencies": {
diff --git a/src/components/Charts/Bar/index.js b/src/components/Charts/Bar/index.js
new file mode 100644
index 0000000..700bb3c
--- /dev/null
+++ b/src/components/Charts/Bar/index.js
@@ -0,0 +1,103 @@
+import React, { PureComponent } from 'react';
+import { Chart } from '@antv/g2';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+
+class Bar extends PureComponent {
+ componentDidMount() {
+ this.renderChart(this.props.data);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart([]);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(data) {
+ if (this.node.offsetWidth === 0) {
+ return;
+ }
+ const {
+ xUnit = '', yUnit = '', height, style,
+ } = this.props;
+ const textMyStyle = {};
+ if (style !== undefined) {
+ if (style.color !== undefined) {
+ textMyStyle.fill = style.color;
+ }
+ }
+ if (!data || (data && data.length < 1)) return;
+ // clean
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.node.innerHTML = '';
+ const chart = new Chart({
+ container: this.node,
+ autoFit: true, /* 图标自适应 */
+ height,
+ padding: 'auto',
+ });
+ chart.axis('x', {
+ label: {
+ formatter: (val) => {
+ return `${val}${xUnit}`;
+ },
+ textStyle: textMyStyle,
+ },
+ });
+ chart.axis('y', {
+ label: {
+ formatter: (val) => {
+ return `${val}${yUnit}`;
+ },
+ textStyle: textMyStyle,
+ },
+ });
+ chart.data(data);
+ chart.tooltip({
+ showTitle: false,
+ });
+ chart.coord().transpose();
+ chart.interval().position('y*x').tooltip('y*x', (name, value) => {
+ return {
+ name: `${name}${xUnit}`,
+ value: `${value}${yUnit}`,
+ };
+ });
+ chart.render();
+ this.chart = chart;
+ }
+
+ render() {
+ return (
+
+ );
+ }
+}
+
+export default Bar;
diff --git a/src/components/Charts/BrokenLine/index.js b/src/components/Charts/BrokenLine/index.js
new file mode 100644
index 0000000..3ed8069
--- /dev/null
+++ b/src/components/Charts/BrokenLine/index.js
@@ -0,0 +1,121 @@
+/* eslint-disable no-undef */
+import React, { PureComponent } from 'react';
+import { Chart } from '@antv/g2';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+
+class BrokenLine extends PureComponent {
+ componentDidMount() {
+ this.renderChart(this.props.data);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart([]);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(data) {
+ if (this.node.offsetWidth === 0) {
+ return;
+ }
+ const {
+ xUnit = '', yUnit = '', height, style,
+ } = this.props;
+ const textMyStyle = {};
+ if (style !== undefined) {
+ if (style.color !== undefined) {
+ textMyStyle.fill = style.color;
+ }
+ }
+ if (!data || (data && data.length < 1)) return;
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.node.innerHTML = '';
+ const chart = new Chart({
+ container: this.node,
+ autoFit: true, /* 图标自适应 */
+ height,
+ padding: 'auto',
+ });
+ chart.axis('x', {
+ label: {
+ formatter: (val) => {
+ return `${val}${xUnit}`;
+ },
+ textStyle: textMyStyle,
+ },
+ });
+ chart.axis('y', {
+ label: {
+ formatter: (val) => {
+ return `${val}${yUnit}`;
+ },
+ textStyle: textMyStyle,
+ },
+ });
+ chart.option('slider', {
+ start: 0.9,
+ end: 1,
+ trendCfg: {
+ isArea: false,
+ },
+ });
+ chart.data(data);
+ chart.tooltip({
+ showCrosshairs: true,
+ shared: true,
+ });
+ chart.line().position('x*y').color('type').tooltip('x*y*type', (name, value, type) => {
+ return {
+ title: `${name}${xUnit}`,
+ name: type,
+ value: `${value}${yUnit}`,
+ };
+ });
+ chart
+ .point()
+ .position('x*y')
+ .color('type')
+ .size(4)
+ .shape('circle')
+ .style({ stroke: '#fff', lineWidth: 1 });
+ chart.render();
+ this.chart = chart;
+ }
+
+ render() {
+ const { height } = this.props;
+ return (
+
+ );
+ }
+}
+
+export default BrokenLine;
diff --git a/src/components/Charts/ColorBlock/index.js b/src/components/Charts/ColorBlock/index.js
new file mode 100644
index 0000000..14e4945
--- /dev/null
+++ b/src/components/Charts/ColorBlock/index.js
@@ -0,0 +1,147 @@
+/* eslint-disable no-undef */
+import React, { PureComponent } from 'react';
+
+// import G2 from '@antv/g2/build/g2';
+import { Chart } from '@antv/g2';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+
+class ColorBlock extends PureComponent {
+ componentDidMount() {
+ this.renderChart(this.props.data);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart([]);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(data) {
+ if (this.node.offsetWidth === 0) {
+ return;
+ }
+ if (this.chart) {
+ this.chart.destroy();
+ }
+
+ this.node.innerHTML = '';
+ const { day, sMachines, height } = this.props;
+
+ const source = data.map((arr) => {
+ return {
+ xValue: arr[0],
+ yValue: arr[1],
+ value: arr[2],
+ };
+ });
+
+ const chart = new Chart({
+ container: this.node,
+ autoFit: true,
+ height,
+ });
+
+ chart.data(source);
+
+ chart.scale('xValue', {
+ type: 'cat',
+ values: day,
+ });
+ chart.scale('yValue', {
+ type: 'cat',
+ values: sMachines,
+ });
+ chart.scale('value', {
+ nice: true,
+ });
+
+ chart.axis('xValue', {
+ tickLine: null,
+ grid: {
+ alignTick: false,
+ line: {
+ style: {
+ lineWidth: 1,
+ lineDash: null,
+ stroke: '#f0f0f0',
+ },
+ },
+ },
+ });
+
+ chart.axis('yValue', {
+ title: null,
+ grid: {
+ alignTick: false,
+ line: {
+ style: {
+ lineWidth: 1,
+ lineDash: null,
+ stroke: '#f0f0f0',
+ },
+ },
+ },
+ });
+
+ chart.tooltip({
+ showMarkers: false,
+ });
+
+ chart
+ .polygon()
+ .position('xValue*yValue')
+ .color('value', '#f6ffed-#389e0d-#135200')
+ .label('value', {
+ offset: -2,
+ style: {
+ fill: '#fff',
+ shadowBlur: 2,
+ shadowColor: 'rgba(0, 0, 0, .45)',
+ },
+ })
+ .style({
+ lineWidth: 1,
+ stroke: '#fff',
+ });
+
+ chart.interaction('element-active');
+
+ chart.render();
+ this.chart = chart;
+ }
+
+ render() {
+ const { height } = this.props;
+ return (
+
+ );
+ }
+}
+
+export default ColorBlock;
diff --git a/src/components/Charts/Columnar/index.js b/src/components/Charts/Columnar/index.js
new file mode 100644
index 0000000..11edd81
--- /dev/null
+++ b/src/components/Charts/Columnar/index.js
@@ -0,0 +1,103 @@
+/* eslint-disable no-undef */
+import React, { PureComponent } from 'react';
+import { Chart } from '@antv/g2';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+
+class Columnar extends PureComponent {
+ componentDidMount() {
+ this.renderChart(this.props.data);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart([]);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(data) {
+ const {
+ xUnit = '', yUnit = '', height, style,
+ } = this.props;
+ const textMyStyle = {};
+ if (style !== undefined) {
+ if (style.color !== undefined) {
+ textMyStyle.fill = style.color;
+ }
+ }
+ if (!data || (data && data.length < 1)) return;
+ // clean
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.node.innerHTML = '';
+ const chart = new Chart({
+ container: this.node,
+ autoFit: true, /* 图标自适应 */
+ height,
+ padding: 'auto',
+ });
+ chart.axis('x', {
+ label: {
+ formatter: (val) => {
+ return `${val}${xUnit}`;
+ },
+ textStyle: textMyStyle,
+ },
+ });
+ chart.axis('y', {
+ label: {
+ formatter: (val) => {
+ return `${val}${yUnit}`;
+ },
+ textStyle: textMyStyle,
+ },
+ });
+ chart.data(data);
+ chart.tooltip({
+ showTitle: false,
+ });
+ chart.interval().position('x*y').tooltip('x*y', (name, value) => {
+ return {
+ name: `${name}${xUnit}`,
+ value: `${value}${yUnit}`,
+ };
+ });
+ chart.render();
+ this.chart = chart;
+ }
+
+ render() {
+ const { height } = this.props;
+ return (
+
+ );
+ }
+}
+
+export default Columnar;
diff --git a/src/components/Charts/ColumnarGroup/index.js b/src/components/Charts/ColumnarGroup/index.js
new file mode 100644
index 0000000..859d306
--- /dev/null
+++ b/src/components/Charts/ColumnarGroup/index.js
@@ -0,0 +1,96 @@
+/* eslint-disable no-undef */
+import React, { PureComponent } from 'react';
+import { Chart } from '@antv/g2';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+
+class ColumnarGroup extends PureComponent {
+ componentDidMount() {
+ this.renderChart(this.props.data);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart([]);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(data) {
+ const { xUnit = '', yUnit = '', height } = this.props;
+ if (!data || (data && data.length < 1)) return;
+ // clean
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.node.innerHTML = '';
+ const chart = new Chart({
+ container: this.node,
+ autoFit: true, /* 图标自适应s */
+ height,
+ padding: 'auto',
+ });
+ chart.axis('x', {
+ label: {
+ formatter: (val) => {
+ return `${val}${xUnit}`;
+ },
+ },
+ });
+ chart.axis('y', {
+ label: {
+ formatter: (val) => {
+ return `${val}${yUnit}`;
+ },
+ },
+ });
+ chart.data(data);
+ chart
+ .interval()
+ .position('x*y')
+ .color('type')
+ .adjust([{
+ type: 'dodge',
+ marginRatio: 1 / 32,
+ }])
+ .tooltip('x*y*type', (name, value, type) => {
+ return {
+ title: `${name}${xUnit}`,
+ name: type,
+ value: `${value}${yUnit}`,
+ };
+ });
+ chart.render();
+ this.chart = chart;
+ }
+
+ render() {
+ return (
+
+ );
+ }
+}
+
+export default ColumnarGroup;
diff --git a/src/components/Charts/ColumnarStack/index.js b/src/components/Charts/ColumnarStack/index.js
new file mode 100644
index 0000000..fc454b5
--- /dev/null
+++ b/src/components/Charts/ColumnarStack/index.js
@@ -0,0 +1,98 @@
+import React, { PureComponent } from 'react';
+import { Chart } from '@antv/g2';
+import DataSet from '@antv/data-set';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+
+class ColumnarStack extends PureComponent {
+ componentDidMount() {
+ this.renderChart(this.props.data);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart([]);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(data) {
+ const { xUnit = '', yUnit = '', height } = this.props;
+ if (!data || (data && data.length < 1)) return;
+ // clean
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.node.innerHTML = '';
+ const chart = new Chart({
+ container: this.node,
+ autoFit: true, /* 图标自适应 */
+ height,
+ padding: 'auto',
+ });
+ // 计算每个柱子的占比
+ const ds = new DataSet();
+ const dv = ds.createView().source(data).transform({
+ type: 'percent',
+ field: 'y', // 统计销量
+ dimension: 'type', // 每年的占比
+ groupBy: ['x'], // 以不同产品类别为分组
+ as: 'percent',
+ });
+ chart.data(dv.rows, {
+ percent: {
+ min: 0,
+ formatter: (val) => {
+ return `${(val * 100).toFixed(2)}${yUnit}`;
+ },
+ },
+ });
+ chart.axis('x', {
+ label: {
+ formatter: (val) => {
+ return `${val}${xUnit}`;
+ },
+ },
+ });
+ chart.interval().adjust('stack').position('x*percent').color('type')
+ .tooltip('x*y*type', (name, value, type) => {
+ return {
+ title: `${name}${xUnit}`,
+ name: type,
+ value: `${value}`,
+ };
+ });
+ chart.render();
+ this.chart = chart;
+ }
+
+ render() {
+ return (
+
+ );
+ }
+}
+
+export default ColumnarStack;
diff --git a/src/components/Charts/EqualColumnarStack/index.js b/src/components/Charts/EqualColumnarStack/index.js
new file mode 100644
index 0000000..7d722f0
--- /dev/null
+++ b/src/components/Charts/EqualColumnarStack/index.js
@@ -0,0 +1,95 @@
+import React, { PureComponent } from 'react';
+import { Chart } from '@antv/g2';
+import DataSet from '@antv/data-set';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+
+class EqualColumnarStack extends PureComponent {
+ componentDidMount() {
+ this.renderChart(this.props);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart(this.props);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(props) {
+ const {
+ fields, yName: value, xName: currkey, onChartClick, chartName, height,
+ } = props;
+ const ds = new DataSet();
+ const dv = ds.createView().source(props.data);
+ dv.transform({
+ type: 'fold',
+ fields,
+ key: currkey,
+ value,
+ });
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.node.innerHTML = '';
+ const chart = new Chart({
+ container: this.node,
+ autoFit: true,
+ height,
+ });
+ chart.data(dv.rows);
+ chart.axis(currkey, {
+ label: {
+ autoHide: false, // 关闭label默认的自动隐藏
+ autoEllipsis: false, // 关闭lable自动省略
+ autoRotate: true, // 关闭默认的label超长自动旋转 默认时右下45度旋转
+ formatter: (val) => {
+ return `${val}`;
+ },
+ },
+ });
+ chart.interval().adjust('stack')
+ .position(`${currkey}*${value}`)
+ .color('name');
+ /* .active(true)
+ .tooltip(false); */
+ chart.on('interval:dblclick', (ev) => {
+ const cdata = ev.data;
+ if (cdata) {
+ const { data } = cdata;
+ onChartClick(chartName, data);
+ }
+ });
+ chart.render();
+ this.chart = chart;
+ }
+ render() {
+ return (
+
+ );
+ }
+}
+
+export default EqualColumnarStack;
diff --git a/src/components/Charts/Gantt/Gantt.css b/src/components/Charts/Gantt/Gantt.css
new file mode 100644
index 0000000..3d991ce
--- /dev/null
+++ b/src/components/Charts/Gantt/Gantt.css
@@ -0,0 +1,3 @@
+.gantt-container {
+ height: 100%;
+}
diff --git a/src/components/Charts/Gantt/MessageArea/Message.js b/src/components/Charts/Gantt/MessageArea/Message.js
new file mode 100644
index 0000000..cc47bc7
--- /dev/null
+++ b/src/components/Charts/Gantt/MessageArea/Message.js
@@ -0,0 +1,24 @@
+import React, { Component } from 'react';
+
+class MessageArea extends Component {
+ render() {
+ const messages = this.props.messages.map(({ message }) => {
+ return {message};
+ });
+
+ return (
+
+ );
+ }
+}
+
+MessageArea.defaultProps = {
+ messages: [],
+};
+
+export default MessageArea;
diff --git a/src/components/Charts/Gantt/MessageArea/MessageArea.css b/src/components/Charts/Gantt/MessageArea/MessageArea.css
new file mode 100644
index 0000000..5afea0d
--- /dev/null
+++ b/src/components/Charts/Gantt/MessageArea/MessageArea.css
@@ -0,0 +1,18 @@
+.message-area {
+ background: #ebebeb;
+ height: 200px;
+ overflow: auto;
+ padding: 10px;
+ box-sizing:border-box;
+}
+
+.message-area ul{
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.message-area li:before {
+ content: "\003e";
+ padding-right: 10px;
+}
diff --git a/src/components/Charts/Gantt/MessageArea/index.js b/src/components/Charts/Gantt/MessageArea/index.js
new file mode 100644
index 0000000..34151e8
--- /dev/null
+++ b/src/components/Charts/Gantt/MessageArea/index.js
@@ -0,0 +1,4 @@
+import MessageArea from './MessageArea';
+import './MessageArea.css';
+
+export default MessageArea;
diff --git a/src/components/Charts/Gantt/index.js b/src/components/Charts/Gantt/index.js
new file mode 100644
index 0000000..b5a8a7e
--- /dev/null
+++ b/src/components/Charts/Gantt/index.js
@@ -0,0 +1,167 @@
+import React, { Component } from 'react';
+import { gantt } from 'dhtmlx-gantt';
+import { DoubleRightOutlined } from '@ant-design/icons';
+import 'dhtmlx-gantt/codebase/dhtmlxgantt.css';
+import './Gantt.css';
+
+/* eslint-disable */
+class Gantt extends Component {
+
+ state = { expanded: true };
+ tableHeight = 60;
+
+ componentDidMount() {
+ gantt.plugins({
+ tooltip: true, // 鼠标划过任务是否显示明细
+ // auto_scheduling: true,//根据任务之间的关系自动安排任务
+ // multiselect: true, //为任务激活多任务选择
+ });
+ gantt.config.xml_date = '%Y-%m-%d %H:%i'; /* 时间格式 年月日 时分 */
+ gantt.config.reorder_grid_columns = true; /* 左侧列可拖动 */
+ gantt.config.grid_elastic_columns = true;
+ gantt.config.drag_mode = { ignore: 'ignore'};
+ gantt.config.scale_height = this.tableHeight;
+ gantt.i18n.setLocale('cn');
+ // gantt.config.readonly = true;// 只读模式的甘特图
+ const { tasks } = this.props;
+ this.setTemplate();
+ gantt.init(this.ganttContainer);
+ this.initGanttDataProcessor();
+ gantt.parse(tasks);
+ }
+
+
+ shouldComponentUpdate(nextProps, nextState) {
+ // const { tasks } = nextProps;
+ // return tasks !== undefined;
+ return this.props.zoom !== nextProps.zoom || this.state.expanded !== nextState.expanded;
+ }
+ componentDidUpdate() {
+ gantt.clearAll();
+ const { tasks } = this.props;
+ this.setTemplate();
+ gantt.init(this.ganttContainer);
+ this.initGanttDataProcessor();
+ gantt.parse(tasks);
+ }
+ componentWillUnmount() {
+ if (this.dataProcessor) {
+ this.dataProcessor.destructor();
+ this.dataProcessor = null;
+ }
+ }
+ setZoom = (value) => {
+ const scale = value.scale !== undefined ? value.scale : 'Minutes';
+ const step = value.step !== undefined ? value.step : 10;
+ switch (scale) {
+ case 'Minutes':
+ gantt.config.duration_unit = 'minute';
+ gantt.config.scale_unit = 'day';
+ gantt.config.date_scale = '%Y-%m-%d';
+ gantt.setWorkTime({ hours: ['00:30-03:30'] });
+ gantt.config.scale_height = 60;
+ gantt.config.min_column_width = 40;
+ gantt.config.subscales = [
+ { unit: 'minute', step, date: '%H:%i' },
+ ];
+ break;
+ case 'Hours':
+ gantt.config.scale_unit = 'day';
+ gantt.config.date_scale = '%M %d';
+
+ gantt.config.scale_height = 60;
+ gantt.config.min_column_width = 30;
+ gantt.config.subscales = [
+ { unit: 'hour', step, date: '%H' },
+ ];
+ break;
+ case 'Days':
+ gantt.config.min_column_width = 70;
+ gantt.config.scale_unit = 'week';
+ gantt.config.date_scale = '%Y-%m-%d';
+ gantt.config.subscales = [
+ { unit: 'day', step, date: '%M %d' },
+ ];
+ gantt.config.scale_height = 60;
+ break;
+ case 'Months':
+ gantt.config.min_column_width = 70;
+ gantt.config.scale_unit = 'month';
+ gantt.config.date_scale = '%F';
+ gantt.config.scale_height = 60;
+ gantt.config.subscales = [
+ { unit: 'week', step, date: '#%W' },
+ ];
+ break;
+ default:
+ break;
+ }
+ }
+ initGanttDataProcessor =() => {
+ // eslint-disable-next-line prefer-destructuring
+ const onDataUpdated = this.props.onDataUpdated;
+ if (this.dataProcessor) {
+ this.dataProcessor.destructor();
+ this.dataProcessor = null;
+ }
+ this.dataProcessor = gantt.createDataProcessor((type, action, item, id) => {
+ return new Promise((resolve) => {
+ if (onDataUpdated) {
+ onDataUpdated(type, action, item, id);
+ }
+
+ // if onDataUpdated changes returns a permanent id of the created item, you can return it from here so dhtmlxGantt could apply it
+ // resolve({id: databaseId});
+ return resolve();
+ });
+ });
+ }
+
+ setTemplate = () => {
+ const { tasks } = this.props;
+ if (Array.isArray(tasks?.columns)) {
+ gantt.config.columns = tasks?.columns;
+ }
+ gantt.config.show_grid = this.state.expanded;
+ gantt.templates.tooltip_text = function (start, end, task) {
+ return (
+ '标题: ' +
+ task.text +
+ '
开始: ' +
+ gantt.templates.tooltip_date_format(start) +
+ '
结束: ' +
+ gantt.templates.tooltip_date_format(end) +
+ '
进度: ' +
+ Math.round(task.progress * 100) +
+ '%'
+ );
+ };
+ }
+
+ render() {
+ const { zoom } = this.props;
+ this.setZoom(zoom);
+ return (
+
+
{
+ this.setState({ expanded: !this.state.expanded });
+ }}
+ />
+ { this.ganttContainer = input; }}
+ style={{ width: '100%', height: '100%' }}
+ />
+
+ );
+ }
+}
+export default Gantt;
diff --git a/src/components/Charts/Gauge/index.js b/src/components/Charts/Gauge/index.js
new file mode 100644
index 0000000..56bd634
--- /dev/null
+++ b/src/components/Charts/Gauge/index.js
@@ -0,0 +1,235 @@
+import React, { PureComponent } from 'react';
+import G2 from '@antv/g2';
+import Bind from 'lodash-decorators/bind';
+import Debounce from 'lodash-decorators/debounce';
+import equal from '../equal';
+
+const { Shape } = G2;
+
+const primaryColor = '#2F9CFF';
+const backgroundColor = '#F0F2F5';
+
+/* eslint no-underscore-dangle: 0 */
+class Gauge extends PureComponent {
+ componentDidMount() {
+ setTimeout(() => {
+ this.renderChart();
+ }, 10);
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ setTimeout(() => {
+ this.renderChart(nextProps);
+ }, 10);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ // if (this.chart) {
+ // console.log('data', this.chart);
+ // this.chart.destroy();
+ // }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(200)
+ resize() {
+ if (!this.node) {
+ return;
+ }
+ this.renderChart([]);
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ initChart(nextProps) {
+ const { xUnit, color = primaryColor } = nextProps || this.props;
+
+ Shape.registShape('point', 'dashBoard', {
+ drawShape(cfg, group) {
+ const originPoint = cfg.points[0];
+ const point = this.parsePoint({ x: originPoint.x, y: 0.4 });
+
+ const center = this.parsePoint({
+ x: 0,
+ y: 0,
+ });
+
+ const shape = group.addShape('polygon', {
+ attrs: {
+ points: [
+ [center.x, center.y],
+ [point.x + 8, point.y],
+ [point.x + 8, point.y - 2],
+ [center.x, center.y - 2],
+ ],
+ radius: 2,
+ lineWidth: 2,
+ arrow: false,
+ fill: color,
+ },
+ });
+
+ group.addShape('Marker', {
+ attrs: {
+ symbol: 'circle',
+ lineWidth: 2,
+ fill: color,
+ radius: 8,
+ x: center.x,
+ y: center.y,
+ },
+ });
+ group.addShape('Marker', {
+ attrs: {
+ symbol: 'circle',
+ lineWidth: 2,
+ fill: '#fff',
+ radius: 5,
+ x: center.x,
+ y: center.y,
+ },
+ });
+
+ const { origin } = cfg;
+ group.addShape('text', {
+ attrs: {
+ x: center.x,
+ y: center.y + 80,
+ text: `${origin._origin.value}%`,
+ textAlign: 'center',
+ fontSize: 24,
+ fill: 'rgba(0, 0, 0, 0.85)',
+ },
+ });
+ group.addShape('text', {
+ attrs: {
+ x: center.x,
+ y: center.y + 45,
+ text: xUnit,
+ textAlign: 'center',
+ fontSize: 14,
+ fill: 'rgba(0, 0, 0, 0.43)',
+ },
+ });
+
+ return shape;
+ },
+ });
+ }
+
+ renderChart(nextProps) {
+ if (this.node.offsetWidth === 0) {
+ return;
+ }
+ const {
+ height, color = primaryColor, bgColor = backgroundColor, xUnit,
+ } = nextProps || this.props;
+ const data = [{ name: xUnit, value: this.props.data }];
+
+ if (this.chart) {
+ this.chart.clear();
+ }
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ if (this.node) {
+ this.node.innerHTML = '';
+ }
+
+ this.initChart(nextProps);
+ const chart = new G2.Chart({
+ container: this.node,
+ forceFit: true,
+ height,
+ animate: false,
+ plotCfg: {
+ margin: [10, 10, 30, 10],
+ },
+ });
+
+ chart.source(data);
+
+ chart.tooltip(false);
+
+ chart.coord('gauge', {
+ startAngle: -1.2 * Math.PI,
+ endAngle: 0.20 * Math.PI,
+ });
+ chart.col('value', {
+ type: 'linear',
+ nice: true,
+ min: 0,
+ max: 100,
+ tickCount: 6,
+ });
+ chart.axis('value', {
+ subTick: false,
+ tickLine: {
+ stroke: color,
+ lineWidth: 2,
+ value: -14,
+ },
+ labelOffset: -12,
+ formatter: (val) => {
+ switch (parseInt(val, 10)) {
+ case 20:
+ return '差';
+ case 40:
+ return '中';
+ case 60:
+ return '良';
+ case 80:
+ return '优';
+ default:
+ return '';
+ }
+ },
+ });
+ chart.point().position('value').shape('dashBoard');
+ draw(data);
+
+ /* eslint no-shadow: 0 */
+ function draw(data) {
+ const val = data[0].value;
+ const lineWidth = 12;
+ chart.guide().clear();
+
+ chart.guide().arc(() => {
+ return [0, 0.95];
+ }, () => {
+ return [val, 0.95];
+ }, {
+ stroke: color,
+ lineWidth,
+ });
+
+ chart.guide().arc(() => {
+ return [val, 0.95];
+ }, (arg) => {
+ return [arg.max, 0.95];
+ }, {
+ stroke: bgColor,
+ lineWidth,
+ });
+
+ chart.changeData(data);
+ }
+
+ this.chart = chart;
+ }
+
+ render() {
+ return (
+
+ );
+ }
+}
+
+export default Gauge;
diff --git a/src/components/Charts/Pie/index.js b/src/components/Charts/Pie/index.js
new file mode 100644
index 0000000..e36067e
--- /dev/null
+++ b/src/components/Charts/Pie/index.js
@@ -0,0 +1,279 @@
+/* eslint-disable no-undef, jsx-a11y/no-noninteractive-element-interactions */
+import React, { Component } from 'react';
+import G2 from '@antv/g2';
+import { Divider } from 'antd';
+import classNames from 'classnames';
+import ReactFitText from 'react-fittext';
+import Debounce from 'lodash-decorators/debounce';
+import Bind from 'lodash-decorators/bind';
+import equal from '../equal';
+import styles from './index.less';
+import Charts from '../index.js';
+
+/* eslint react/no-danger:0 */
+class Pie extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ legendData: [],
+ legendBlock: true,
+ };
+ }
+
+ componentDidMount() {
+ this.renderChart();
+ this.resize();
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (!equal(this.props, nextProps)) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('resize', this.resize);
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ this.resize.cancel();
+ }
+
+ @Bind()
+ @Debounce(300)
+ resize() {
+ const { hasLegend } = this.props;
+ if (!hasLegend || !this.root) {
+ window.removeEventListener('resize', this.resize);
+ return;
+ }
+ if (this.root.parentNode.clientWidth <= 380) {
+ if (!this.state.legendBlock) {
+ this.setState({
+ legendBlock: true,
+ }, () => {
+ this.renderChart();
+ });
+ }
+ } else if (this.state.legendBlock) {
+ this.setState({
+ legendBlock: false,
+ }, () => {
+ this.renderChart();
+ });
+ }
+ }
+
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ handleRoot = (n) => {
+ this.root = n;
+ };
+
+ handleLegendClick = (item, i) => {
+ const newItem = item;
+ newItem.checked = !newItem.checked;
+
+ const { legendData } = this.state;
+ legendData[i] = newItem;
+
+ if (this.chart) {
+ const filterItem = legendData.filter(l => l.checked).map(l => l.x);
+ this.chart.filter('x', filterItem);
+ this.chart.repaint();
+ }
+
+ this.setState({
+ legendData,
+ });
+ };
+
+ renderChart(d) {
+ if (this.node.offsetWidth === 0) {
+ return;
+ }
+ let data = d || this.props.data;
+
+ const {
+ height = 0,
+ hasLegend,
+ fit = true,
+ margin = [12, 0, 12, 0], percent, color,
+ inner = 0.75,
+ animate = true,
+ colors,
+ lineWidth = 0,
+ } = this.props;
+
+ const defaultColors = colors;
+
+ let selected = this.props.selected || true;
+ let tooltip = this.props.tooltips || true;
+
+ let formatColor;
+ if (percent) {
+ selected = false;
+ tooltip = false;
+ formatColor = (value) => {
+ if (value === '占比') {
+ return color || 'rgba(24, 144, 255, 0.85)';
+ } else {
+ return '#F0F2F5';
+ }
+ };
+
+ /* eslint no-param-reassign: */
+ data = [
+ {
+ x: '占比',
+ y: parseFloat(percent),
+ },
+ {
+ x: '反比',
+ y: 100 - parseFloat(percent),
+ },
+ ];
+ }
+
+ if (!data || (data && data.length < 1)) {
+ return;
+ }
+
+ // clean
+ this.node.innerHTML = '';
+
+ const { Stat } = G2;
+
+ const chart = new G2.Chart({
+ container: this.node,
+ forceFit: fit,
+ height,
+ plotCfg: {
+ margin,
+ },
+ animate,
+ });
+
+ if (!tooltip) {
+ chart.tooltip(false);
+ } else {
+ chart.tooltip({
+ title: null,
+ });
+ }
+
+ chart.axis(false);
+ chart.legend(false);
+ chart.source(data, {
+ x: {
+ type: 'cat',
+ range: [0, 1],
+ },
+ y: {
+ min: 0,
+ },
+ });
+
+ chart.coord('theta', {
+ inner,
+ });
+ // chart.changeSize(180, 216);// 设置图标的高度
+ chart
+ .intervalStack()
+ .position(Stat.summary.percent('y'))
+ .style({ lineWidth, stroke: '#fff' })
+ .color('x', percent ? formatColor : defaultColors)
+ .selected(selected);
+
+ chart.render();
+
+ this.chart = chart;
+
+ let legendData = [];
+ if (hasLegend) {
+ const geom = chart.getGeoms()[0]; // 获取所有的图形
+ const items = geom.getData(); // 获取图形对应的数据
+ legendData = items.map((item) => {
+ /* eslint no-underscore-dangle:0 */
+ const origin = item._origin;
+ origin.color = item.color;
+ origin.checked = true;
+ return origin;
+ });
+ }
+
+ this.setState({
+ legendData,
+ });
+ }
+
+ render() {
+ const {
+ valueFormat, subTitle, hasLegend, className, style, data = [],
+ } = this.props;
+ let { projectName } = this.props; /* 项目名称 */
+ projectName = projectName === undefined || projectName === null ? '' : projectName;
+ const { yuan } = Charts;
+ // const total = hasLegend ? yuan(data.reduce((pre, now) => now.y + pre, 0)) : this.props.total;
+ const total = hasLegend ? data.reduce((pre, now) => now.y + pre, 0).toFixed(2) : this.props.total; /* 保留两位小数 */
+ const { legendData, legendBlock } = this.state;
+ const pieClassName = classNames(styles.pie, className, {
+ [styles.hasLegend]: !!hasLegend,
+ [styles.legendBlock]: legendBlock,
+ });
+ return (
+
+
+
+
+ {
+ (subTitle || total) && (
+
+ {subTitle &&
{subTitle}
}
+ {
+ // eslint-disable-next-line
+ total &&
+ }
+
+ )
+ }
+
+
+
+ {
+ hasLegend && (
+
-1 ? styles.legendBigScreen : styles.legend}
+ style={location.pathname.indexOf('indexMobile') > -1 ? { width: '48%' } : { width: '48%' }}
+ >
+ {
+ legendData.map((item, i) => (
+ - this.handleLegendClick(item, i)}>
+
+ -1 ? styles.spanStyle : ''}`}>{item.x}
+
+ {location.pathname.indexOf('indexMobile') > -1 ? '' : ''
+ // {`${(item['..percent'] * 100).toFixed(2)}%`}
+ }
+
+
+ ))
+ }
+
+ )
+ }
+
+ );
+ }
+}
+
+export default Pie;
diff --git a/src/components/Charts/Pie/index.less b/src/components/Charts/Pie/index.less
new file mode 100644
index 0000000..47da292
--- /dev/null
+++ b/src/components/Charts/Pie/index.less
@@ -0,0 +1,126 @@
+@import "~antd-v4/lib/style/themes/default.less";
+
+.pie {
+ position: relative;
+ .chart {
+ position: relative;
+ }
+ &.hasLegend .chart {
+ width: ~"calc(47%)"!important;
+ }
+ .legend {
+ position: absolute!important;
+ right: 0;
+ min-width: 48%;
+ top: 50%;
+ transform: translateY(-50%)!important;
+ margin: 0 0 0 10px;
+ list-style: none;
+ padding: 0;
+ li {
+ width: 100%;
+ cursor: pointer;
+ margin-bottom: 0;
+ height: 16px;
+ line-height: 16px;
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ .legendBigScreen { /* 大屏纵向排列 */
+ position: relative!important;
+ right: 0;
+ min-width: 48%;
+ top: 50%;
+ transform: translateY(-50%)!important;
+ margin: 0;
+ list-style: none;
+ padding: 0;
+ li {
+ width: 100%;
+ cursor: pointer;
+ margin-bottom: 0;
+ height: 22px;
+ line-height: 22px;
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+ .dot {
+ border-radius: 8px;
+ display: inline-block;
+ margin-right: 8px;
+ position: relative;
+ top: -1px;
+ height: 8px;
+ width: 8px;
+ }
+ .line {
+ background-color: @border-color-split;
+ display: inline-block;
+ margin-right: 8px;
+ width: 1px;
+ height: 16px;
+ }
+ .legendTitle {
+ color: @text-color;
+ }
+ .spanStyle{
+ width: 50%;
+ display: inline-block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .percent {
+ color: @text-color-secondary;
+ }
+ .value {
+ position: absolute;
+ right: 0;
+ }
+ .title {
+ margin-bottom: 8px;
+ }
+ .total {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ text-align: center;
+ height: 62px;
+ transform: translate(-50%, -50%);
+ & > div {
+ font-size: 24px;
+ }
+ & > h4 {
+ color: @text-color-secondary;
+ font-size: 14px;
+ line-height: 22px;
+ height: 22px;
+ margin-bottom: 8px;
+ font-weight: normal;
+ }
+ & > p {
+ color: @heading-color;
+ display: block;
+ font-size: 1.2em;
+ height: 32px;
+ line-height: 32px;
+ white-space: nowrap;
+ }
+ }
+}
+
+.legendBlock {
+ &.hasLegend .chart {
+ width: 100%;
+ margin: 0 0 32px 0;
+ }
+ .legend {
+ position: relative;
+ transform: none;
+ }
+}
diff --git a/src/components/Charts/PieGroup/index.js b/src/components/Charts/PieGroup/index.js
new file mode 100644
index 0000000..2d6cb73
--- /dev/null
+++ b/src/components/Charts/PieGroup/index.js
@@ -0,0 +1,31 @@
+import React, { Component } from 'react';
+import { Row, Col } from 'antd';
+import { getTheme } from '@antv/g2';
+import Pie from '../Pie';
+
+class PieGroup extends Component {
+ render() {
+ const { data, height } = this.props;
+ const column = 24 / data.length;
+ const { colors10: colors } = getTheme();
+ return (
+
+ {
+ data.map((child, i) => {
+ const { sId } = child;
+ child.height = height;
+ child.color = colors[i];
+ return (
+
+
+
+ );
+ })
+ }
+
+ );
+ }
+}
+
+export default PieGroup;
+
diff --git a/src/components/Charts/TimeLineGroup/index.js b/src/components/Charts/TimeLineGroup/index.js
new file mode 100644
index 0000000..1f147b9
--- /dev/null
+++ b/src/components/Charts/TimeLineGroup/index.js
@@ -0,0 +1,81 @@
+/* eslint-disable object-curly-newline */
+import React, { Component } from 'react';
+import { Row, Col, Tabs } from 'antd';
+import TimeLineChart from '../TimelineChart';
+import NumberInfo from '../../NumberInfo';
+import Pie from '../Pie';
+import styles from '../index.less';
+import * as utils from '../../../utils/utils';
+
+const { TabPane } = Tabs;
+
+class TimeLineGroup extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ offlineCard: styles.offlineCard,
+ tabGroup: styles.tabGroup,
+ currentTabKey: utils.isNotEmptyArr(props.data) ? props.data[0].x : '',
+ };
+ }
+
+ handleTabChange = (key) => {
+ this.setState({
+ currentTabKey: key,
+ });
+ };
+
+ render() {
+ const { offlineCard, currentTabKey, tabGroup } = this.state;
+ const { data, titleMap, subTitle, yUnit } = this.props;
+ const TabGroup = ({ tabData, currentTabKey: currentKey }) => (
+
+
+
+
+
+
+
+
+ );
+ return (
+
+ {
+ data.map(item => (
+ }
+ key={item.x}
+ >
+
+ ))
+ }
+
+ );
+ }
+}
+
+export default TimeLineGroup;
+
diff --git a/src/components/Charts/TimelineChart/index.js b/src/components/Charts/TimelineChart/index.js
new file mode 100644
index 0000000..5a0d3ea
--- /dev/null
+++ b/src/components/Charts/TimelineChart/index.js
@@ -0,0 +1,139 @@
+import React, { Component } from 'react';
+import G2 from 'g2';
+import Slider from 'g2-plugin-slider';
+import styles from './index.less';
+
+class TimelineChart extends Component {
+ componentDidMount() {
+ this.renderChart(this.props.data);
+ }
+
+ componentWillReceiveProps(nextProps) {
+ if (nextProps.data !== this.props.data) {
+ this.renderChart(nextProps.data);
+ }
+ }
+
+ componentWillUnmount() {
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ if (this.slider) {
+ this.slider.destroy();
+ }
+ }
+
+ sliderId = `timeline-chart-slider-${Math.random() * 1000}`;
+ handleRef = (n) => {
+ this.node = n;
+ };
+
+ renderChart(data) {
+ const {
+ height = 400, margin = [60, 20, 40, 70], titleMap, borderWidth = 2, yUnit = '',
+ } = this.props;
+ if (!data || (data && data.length < 1)) {
+ return;
+ }
+
+ // clean
+ if (this.sliderId) {
+ // eslint-disable-next-line no-undef
+ document.getElementById(this.sliderId).innerHTML = '';
+ }
+ if (this.chart) {
+ this.chart.destroy();
+ }
+ if (this.slider) {
+ this.slider.destroy();
+ }
+ this.node.innerHTML = '';
+ const chart = new G2.Chart({
+ container: this.node,
+ forceFit: true,
+ height,
+ plotCfg: {
+ margin,
+ },
+ });
+
+ chart.axis('x', {
+ title: false,
+ });
+ chart.axis('y1', {
+ title: false,
+ });
+ chart.axis('y2', false);
+
+ chart.legend({
+ mode: false,
+ position: 'top',
+ marker: 'square',
+ });
+
+ let max;
+ if (data[0] && data[0].y1 && data[0].y2) {
+ max = Math.max(
+ data.sort((a, b) => b.y1 - a.y1)[0].y1,
+ data.sort((a, b) => b.y2 - a.y2)[0].y2,
+ );
+ }
+
+ chart.source(data, {
+ x: {
+ type: 'timeCat',
+ tickCount: 20,
+ mask: 'mm-dd',
+ range: [0, 1],
+ },
+ y1: {
+ alias: titleMap.y1,
+ max,
+ min: 0,
+ formatter: (val) => {
+ return `${val}${yUnit}`;
+ },
+ },
+ y2: {
+ alias: titleMap.y2,
+ max,
+ min: 0,
+ formatter: (val) => {
+ return `${val}${yUnit}`;
+ },
+ },
+ });
+
+ chart.line().position('x*y1').color('#1890FF').size(borderWidth);
+ chart.line().position('x*y2').color('#2FC25B').size(borderWidth);
+
+ this.chart = chart;
+
+ /* eslint new-cap:0 */
+ const slider = new Slider({
+ domId: this.sliderId,
+ height: 26,
+ xDim: 'x',
+ yDim: 'y1',
+ charts: [chart],
+ });
+ slider.render();
+
+ this.slider = slider;
+ }
+
+ render() {
+ const { height, title } = this.props;
+ return (
+
+
+ { title &&
{title}
}
+
+
+
+
+ );
+ }
+}
+
+export default TimelineChart;
diff --git a/src/components/Charts/TimelineChart/index.less b/src/components/Charts/TimelineChart/index.less
new file mode 100644
index 0000000..1751975
--- /dev/null
+++ b/src/components/Charts/TimelineChart/index.less
@@ -0,0 +1,3 @@
+.timelineChart {
+ background: #fff;
+}
diff --git a/src/components/Charts/WaterWave/index.js b/src/components/Charts/WaterWave/index.js
new file mode 100644
index 0000000..56509f4
--- /dev/null
+++ b/src/components/Charts/WaterWave/index.js
@@ -0,0 +1,205 @@
+/* eslint-disable object-curly-newline,no-return-assign */
+import React, { PureComponent } from 'react';
+import styles from './index.less';
+
+class WaterWave extends PureComponent {
+ constructor(props) {
+ super(props);
+ this.state = {
+ radio: 1,
+ waterWave: styles.waterWave,
+ waterWaveCanvasWrapper: styles.waterWaveCanvasWrapper,
+ text: styles.text,
+ };
+ }
+
+ componentDidMount() {
+ this.renderChart();
+ this.resize();
+ window.addEventListener('resize', this.resize);
+ }
+
+ componentWillUnmount() {
+ cancelAnimationFrame(this.timer);
+ if (this.node) {
+ this.node.innerHTML = '';
+ }
+ window.removeEventListener('resize', this.resize);
+ }
+
+ resize = () => {
+ const { height } = this.props;
+ const { offsetWidth } = this.root.parentNode;
+ this.setState({
+ radio: offsetWidth < height ? offsetWidth / height : 1,
+ });
+ };
+
+ renderChart() {
+ const { color = '#1890FF' } = this.props;
+ const data = (this.props.data / 100);
+ // const self = this;
+
+ if (!this.node || !data) {
+ return;
+ }
+ if (this.timer) {
+ cancelAnimationFrame(this.timer);
+ if (this.node) {
+ this.node.innerHTML = '';
+ }
+ }
+
+ const canvas = this.node;
+ const ctx = canvas.getContext('2d');
+
+ const canvasWidth = canvas.width;
+ const canvasHeight = canvas.height;
+ const radius = canvasWidth / 2;
+ const lineWidth = 2;
+ const cR = radius - (lineWidth);
+
+ ctx.beginPath();
+ ctx.lineWidth = lineWidth * 2;
+
+ const axisLength = canvasWidth - (lineWidth);
+ const unit = axisLength / 8;
+ const range = 0.2; // 振幅
+ let currRange = range;
+ const xOffset = lineWidth;
+ let sp = 0; // 周期偏移量
+ let currData = 0;
+ const waveupsp = 0.005; // 水波上涨速度
+
+ let arcStack = [];
+ const bR = radius - (lineWidth);
+ const circleOffset = -(Math.PI / 2);
+ let circleLock = true;
+
+ for (let i = circleOffset; i < circleOffset + (2 * Math.PI); i += 1 / (8 * Math.PI)) {
+ arcStack.push([
+ radius + (bR * Math.cos(i)),
+ radius + (bR * Math.sin(i)),
+ ]);
+ }
+
+ const cStartPoint = arcStack.shift();
+ ctx.strokeStyle = color;
+ ctx.moveTo(cStartPoint[0], cStartPoint[1]);
+
+ function drawSin() {
+ ctx.beginPath();
+ ctx.save();
+
+ const sinStack = [];
+ for (let i = xOffset; i <= xOffset + axisLength; i += Math.ceil(20 / axisLength)) {
+ const x = sp + ((xOffset + i) / unit);
+ const y = Math.sin(x) * currRange;
+ const dx = i;
+ const dy = ((2 * cR * (1 - currData)) + (radius - cR)) - (unit * y);
+ ctx.lineTo(dx, dy);
+ sinStack.push([dx, dy]);
+ }
+
+ const startPoint = sinStack.shift();
+
+ ctx.lineTo(xOffset + axisLength, canvasHeight);
+ ctx.lineTo(xOffset, canvasHeight);
+ ctx.lineTo(startPoint[0], startPoint[1]);
+
+ const gradient = ctx.createLinearGradient(0, 0, 0, canvasHeight);
+ gradient.addColorStop(0, '#ffffff');
+ gradient.addColorStop(1, '#1890FF');
+ ctx.fillStyle = gradient;
+ ctx.fill();
+ ctx.restore();
+ }
+
+ function render1() {
+ ctx.clearRect(0, 0, canvasWidth, canvasHeight);
+ if (circleLock) {
+ if (arcStack.length) {
+ const temp = arcStack.shift();
+ ctx.lineTo(temp[0], temp[1]);
+ ctx.stroke();
+ } else {
+ circleLock = false;
+ ctx.lineTo(cStartPoint[0], cStartPoint[1]);
+ ctx.stroke();
+ arcStack = null;
+
+ ctx.globalCompositeOperation = 'destination-over';
+ ctx.beginPath();
+ ctx.lineWidth = lineWidth;
+ ctx.arc(radius, radius, bR, 0, 2 * Math.PI, 1);
+
+ ctx.beginPath();
+ ctx.save();
+ ctx.arc(radius, radius, radius - (3 * lineWidth), 0, 2 * Math.PI, 1);
+
+ ctx.restore();
+ ctx.clip();
+ ctx.fillStyle = '#1890FF';
+ }
+ } else {
+ if (data >= 0.85) {
+ if (currRange > range / 4) {
+ const t = range * 0.01;
+ currRange -= t;
+ }
+ } else if (data <= 0.1) {
+ if (currRange < range * 1.5) {
+ const t = range * 0.01;
+ currRange += t;
+ }
+ } else {
+ if (currRange <= range) {
+ const t = range * 0.01;
+ currRange += t;
+ }
+ if (currRange >= range) {
+ const t = range * 0.01;
+ currRange -= t;
+ }
+ }
+ if ((data - currData) > 0) {
+ currData += waveupsp;
+ }
+ if ((data - currData) < 0) {
+ currData -= waveupsp;
+ }
+
+ sp += 0.07;
+ drawSin();
+ }
+ // self.timer = requestAnimationFrame(render1); //此句直接导致死循环
+ }
+
+ render1();
+ }
+
+ render() {
+ const { radio, waterWave, waterWaveCanvasWrapper, text } = this.state;
+ const { data, xUnit, height } = this.props;
+ return (
+ (this.root = n)} style={{ transform: `scale(${radio})` }}>
+
+
+
+ {
+ xUnit && {xUnit}
+ }
+
{data}%
+
+
+ );
+ }
+}
+
+export default WaterWave;
diff --git a/src/components/Charts/WaterWave/index.less b/src/components/Charts/WaterWave/index.less
new file mode 100644
index 0000000..be35c21
--- /dev/null
+++ b/src/components/Charts/WaterWave/index.less
@@ -0,0 +1,29 @@
+@import "~antd-v4/lib/style/themes/default.less";
+
+.waterWave {
+ display: block;
+ position: relative;
+ transform-origin: left;
+ padding: 12px 0;
+ .text {
+ position: absolute;
+ left: 0;
+ top: 20%;
+ text-align: center;
+ width: 100%;
+ span {
+ color: @text-color-secondary;
+ font-size: 14px;
+ line-height: 22px;
+ }
+ h4 {
+ color: @heading-color;
+ line-height: 32px;
+ font-size: 24px;
+ }
+ }
+ .waterWaveCanvasWrapper {
+ transform: scale(.5);
+ transform-origin: 0 0;
+ }
+}
diff --git a/src/components/Charts/equal.js b/src/components/Charts/equal.js
new file mode 100644
index 0000000..ff3a4c7
--- /dev/null
+++ b/src/components/Charts/equal.js
@@ -0,0 +1,17 @@
+/* eslint eqeqeq: 0 */
+
+function equal(old, target) {
+ let r = true;
+ for (const prop in old) {
+ if (typeof old[prop] === 'function' && typeof target[prop] === 'function') {
+ if (old[prop].toString() != target[prop].toString()) {
+ r = false;
+ }
+ } else if (old[prop] != target[prop]) {
+ r = false;
+ }
+ }
+ return r;
+}
+
+export default equal;
diff --git a/src/components/Charts/index.js b/src/components/Charts/index.js
new file mode 100644
index 0000000..8b483a3
--- /dev/null
+++ b/src/components/Charts/index.js
@@ -0,0 +1,33 @@
+import numeral from 'numeral';
+import Bar from './Bar';
+import Columnar from './Columnar';
+import ColumnarGroup from './ColumnarGroup';
+import BrokenLine from './BrokenLine';
+import WaterWave from './WaterWave';
+import Gauge from './Gauge';
+import ColumnarStack from './ColumnarStack';
+import PieGroup from './PieGroup';
+import Pie from './Pie';
+import TimeLineChart from './TimelineChart';
+import TimeLineGroup from './TimeLineGroup';
+import EqualColumnarStack from './EqualColumnarStack';
+import ColorBlock from './ColorBlock';
+/* update by zz 20201227 */
+// const yuan = val => `¥ ${numeral(val).format('0,0')}`;
+const yuan = val => `${numeral(val).format('0,0')}`;
+export default {
+ yuan,
+ Bar,
+ Columnar,
+ ColumnarGroup,
+ BrokenLine,
+ WaterWave,
+ Gauge,
+ ColumnarStack,
+ PieGroup,
+ Pie,
+ TimeLineChart,
+ TimeLineGroup,
+ EqualColumnarStack,
+ ColorBlock,
+};
diff --git a/src/components/Charts/index.less b/src/components/Charts/index.less
new file mode 100644
index 0000000..95f7056
--- /dev/null
+++ b/src/components/Charts/index.less
@@ -0,0 +1,72 @@
+@import "~antd-v4/lib/style/themes/default.less";
+.char {
+ margin: 24px;
+}
+
+.commonChar {
+ // padding-top: 10px;
+ padding-bottom: 10px;
+ background: #888;
+ :global{
+ .ant-col-18{
+ padding-right: 24px;
+ }
+ .ant-card-body{
+ overflow: hidden;
+ }
+ }
+ .commonCharContainer {
+ margin-bottom: 24px;
+ overflow: hidden;
+ canvas + div {
+ display: none;
+ }
+ :global {
+ .ant-card-extra {
+ padding: 12px 24px!important;
+ }
+ }
+ .commonRollChar{
+ .xly-list > .ant-layout{
+ margin: 0 !important;
+ }
+ }
+ }
+}
+
+.commonCharPage{
+ padding: 105px 20px 0 20px;
+ background: #888;
+}
+
+.offlineCard {
+ :global {
+ .ant-tabs-ink-bar {
+ bottom: auto;
+ }
+ .ant-tabs-bar {
+ border-bottom: none;
+ }
+ .ant-tabs-nav-container-scrolling {
+ padding-left: 40px;
+ padding-right: 40px;
+ }
+ .ant-tabs-tab-prev-icon:before {
+ position: relative;
+ left: 6px;
+ }
+ .ant-tabs-tab-next-icon:before {
+ position: relative;
+ right: 6px;
+ }
+ .ant-tabs-tab-active h4 {
+ color: @primary-color;
+ }
+ }
+ .tabGroup {
+ width: 138px;
+ margin: 8px 0!important;
+ }
+}
+
+
diff --git a/src/components/Common/CommonCheckBill/index.css b/src/components/Common/CommonCheckBill/index.css
new file mode 100644
index 0000000..09a0410
--- /dev/null
+++ b/src/components/Common/CommonCheckBill/index.css
@@ -0,0 +1,14 @@
+.pdfContainer {
+ width: 100%;
+ height: 300px;
+}
+/* 处理分隔符间距 */
+:global {
+ /* 主表分隔符间距 */
+}
+:global .commonCheckBillContainer .ant-divider-horizontal.ant-divider-with-text {
+ margin: 5px 0 10px 0!important;
+}
+:global .commonCheckBillContainer .flexArea .ant-divider-horizontal.ant-divider-with-text {
+ margin: -8px 0 !important;
+}
diff --git a/src/components/Common/CommonCheckBill/index.js b/src/components/Common/CommonCheckBill/index.js
new file mode 100644
index 0000000..96d5b11
--- /dev/null
+++ b/src/components/Common/CommonCheckBill/index.js
@@ -0,0 +1,2187 @@
+/* eslint-disable prefer-destructuring */
+import React, { Component } from 'react';
+import { UploadOutlined } from '@ant-design/icons';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import {
+ Row,
+ Col,
+ Checkbox,
+ Layout,
+ Spin,
+ Avatar,
+ Button,
+ Table,
+ Upload,
+ Input,
+ Divider,
+ Collapse,
+} from 'antd';
+import { message } from '@/utils/common/message';
+import CommonSales from '@/components/Common/CommonCheckBillEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import CommonView from '@/components/Common/CommonView';
+import CommonViewFlex from '@/components/Common/CommonViewFlex';
+import CommonViewTable from '@/components/Common/CommonViewTable';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import commonConfig from '@/utils/config';
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+import * as commonServices from '@/services/services';/* 服务类 */
+import CommonListSelect from '@/components/Common/CommonListSelect';
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
+import AddIcon from '@/assets/add.svg';
+import DisableAddIcon from '@/assets/disableadd.svg';
+import CopyIcon from '@/assets/copy.svg';
+import CopyAllIcon from '@/assets/copyall.svg';
+import DisableCopyIcon from '@/assets/disablecopy.svg';
+import DisableCopyAllIcon from '@/assets/disablecopyall.svg';
+import DelIcon from '@/assets/delete.svg';
+import DisableDelIcon from '@/assets/disabledelete.svg';/* 获取配置及数据 */
+import MaterialRemarkIcon from '@/assets/materialremark.svg';
+import DisMaRemarklIcon from '@/assets/disablematerialremark.svg';
+import ProcessIcon from '@/assets/process.svg';
+import DisableProcessIcon from '@/assets/disableprocess.svg';
+import MateriallIcon from '@/assets/material.svg';
+import DisableMateriallIcon from '@/assets/disablematerial.svg';
+// import SlaveMemo from './SlaveMemo';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import AddChildIcon from '@/assets/addChild.svg';
+import DisableAddChildIcon from '@/assets/disableaddChild.svg';
+import ContextMenuModal from '@/components/Common/ContextMenuModal';
+import PrintPdf from '@/components/PrintPdf/PrintPdf';
+import customStyles from './index.less';
+
+const width = '18px';
+const height = '18px';
+const setAdd = {
+ title: '增加',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+};
+const setAddChild = {
+ title: '增加',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+};
+const setCopy = {
+ title: '复制',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+};
+const setCopyAll = {
+ title: '复制部件',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+};
+const setDelete = {
+ title: '删除',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+};
+const setProcess = {
+ title: '工序',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+};
+const setMaterial = {
+ title: '材料',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+};
+
+
+const { Header, Content, Sider } = Layout;
+const { Panel } = Collapse;
+class CommonBill extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ /** 行选择 */
+ onRowClick = (name, record) => {
+ if (name === 'control') {
+ this.props.onTableSelectRowChange(name, [record.sId]);
+ }
+ };
+
+ onChange = (checkedValues) => {
+ this.props.onSaveState({
+ dataPersonArray: checkedValues,
+ });
+ };
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnImport') {
+ return !this.props.enabled;
+ }
+ };
+ /** 上传后执行函数 */
+ handleUploadChangeFile = async (info) => {
+ const { file } = info;
+ const {
+ masterData, sModelsId, app, token, sModelsType, slaveConfig, slaveData,
+ } = this.props;
+ if (file.response) {
+ if (file.response.code === 1) {
+ /* 数据查询成功 */
+ const errorInfo = file.response.dataset.rows[0].nocanbeInsert;
+ if (commonUtils.isNotEmptyObject(errorInfo)) {
+ message.error(errorInfo[0].sReason);
+ return;
+ }
+ /* 把之前存放的数据删除 */
+ const slaveDelData = [];
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.handleType)) {
+ item.handleType = 'del';
+ slaveDelData.push(item);
+ }
+ });
+ }
+ const returnData = file.response.dataset.rows[0].canbeInsert;
+ let iCount = 0;
+ let productIdDropDown;
+ if (productIdDropDown === undefined && commonUtils.isNotEmptyArr(returnData)) { /* 无论导入多少条数据 都只调用1次接口,获取产品下拉数据集 */
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex], returnData[0]);
+ productIdDropDown = sqlDropDownData.dropDownData;
+ }
+ }
+ await returnData.forEach(async (tableDataRow) => {
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ tableDataRow.key = tableDataRow.sId;
+ /* 若导入模板没有序号,则序号从1自增 */
+ if (commonUtils.isEmptyObject(tableDataRow.iOrder)) {
+ iCount += 1;
+ tableDataRow.iOrder = iCount;
+ }
+ for (const child of Object.keys(tableDataRow)) {
+ const index = child.indexOf('_sRealValue_');
+ if (index > -1) {
+ const property = child.substring(0, child.length - 12);
+ tableDataRow[property] = tableDataRow[child];
+ }
+ }
+ if (productIdDropDown !== undefined) {
+ const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
+ if (iProductIdIndex === -1 && commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('sales/salesOrder')) { /* 只有销售模块生成新产品 盘点 ,期间 不生成新的产品 */
+ 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,
+ });
+ }
+ }
+ if (!tableDataRow.dNProductPrice) {
+ tableDataRow.dNProductPrice = tableDataRow.dProductForeignPrice;
+ }
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) {
+ tableDataRow = await this.props.onMaterialsChange(tableDataRow, sModelsId, masterData, {}, 'dAuxiliaryQty', app, token, models);
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow);
+ } else {
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow);
+ }
+ });
+ this.props.onSaveState({ slaveData: returnData, slaveDelData });
+ } else { /* 失败s */
+ this.props.getServiceError(file.response);
+ }
+ }
+ };
+ handleUploadPropsSales = () => {
+ const { masterData, sModelsType } = this.props;
+ if (commonUtils.isNotEmptyObject(masterData)) {
+ const sCustomerId = commonUtils.isEmptyStr(masterData.sCustomerId) ? undefined : masterData.sCustomerId;
+ let existCustomerId = false;
+ if (sModelsType.includes('sales/') && commonUtils.isNotEmptyStr(sCustomerId)) {
+ existCustomerId = true;
+ } else if (!sModelsType.includes('sales/')) {
+ existCustomerId = true;
+ }
+ return {
+ disabled: !this.props.enabled || !existCustomerId, /* 是否可用 */
+ style: { display: commonUtils.convertBooleanToDisplayBlock(true) }, /* 是否显示 */
+ };
+ }
+ };
+
+ /** 上传后执行函数 */
+ handleBeforeUpload = () => {
+ // const isLt10M = file.size / 1024 / 1024 < 10;
+ // if (!isLt10M) {
+ // message.error(commonFunc.showMessage(this.props.app.commonConst, 'picMax'));/* 图片大小需小于10MB! */
+ // }
+ };
+ /** 图片上传后执行函数 */
+ handleUploadChange = (info, name) => {
+ const { file } = info;
+ if (file.response && file.response.code === 1) {
+ const sPicturePath = file.response.dataset.rows[0].savePathStr;
+ const spicture = sPicturePath;
+ const uploadInfo = {
+ sPicturePath,
+ sFileName: file.name,
+ };
+ const { [`${name}Column`]: tableColumn, masterData, [`${name}Data`]: tableData } = this.props;
+ if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isEmpty(tableData[tableData.length - 1].sPicturePath)) {
+ tableData[tableData.length - 1].sPicturePath = uploadInfo.sPicturePath;
+ tableData[tableData.length - 1].spicture = spicture;
+ tableData[tableData.length - 1] = {
+ ...tableData[tableData.length - 1],
+ sPicturePath: uploadInfo.sPicturePath,
+ sFileName: uploadInfo.sFileName,
+ spicture,
+ handleType: commonUtils.isEmpty(tableData[tableData.length - 1].handleType) ? 'update' : tableData[tableData.length - 1].handleType,
+ };
+ } else {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ tableColumn.forEach((slaveChild) => {
+ const ckey = slaveChild.dataIndex;
+ if (ckey === 'sProductNo' || ckey === 'sProductName') {
+ tableDataRow[ckey] = masterData[ckey] !== undefined ? masterData[ckey] : '';
+ } else if (ckey === 'iOrder') {
+ tableDataRow[ckey] = '';
+ } else if (file.response && file.response.code === 1) {
+ if (uploadInfo[ckey] !== undefined) {
+ tableDataRow[ckey] = uploadInfo[ckey];
+ }
+ }
+ });
+ tableData.push(tableDataRow);
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, enabled: true });
+ } else if (file.response && file.response.code === -1) {
+ message.error(file.response.msg);
+ }
+ };
+ handleOk = async (flag, tmpCheck, isWait) => {
+ const {
+ sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig, sCheckRemark,
+ } = this.props;
+ const { currentPane } = app;
+ const bCkxTmpCheck = app.systemData.filter(item => item.sName === 'CkxTmpCheck')[0].sValue;
+ if (bCkxTmpCheck === '1') {
+ const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait);
+ if (returnData.code === 1) {
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ } else {
+ const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray;
+ if (commonUtils.isEmptyObject(dataPersonArray)) {
+ checkPersonData.forEach((item) => {
+ dataPersonArray.push(item.sUserId);
+ });
+ }
+ const dataPersonString = dataPersonArray.join(',');
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const value = {
+ sProName: 'Sp_System_AutoSendCheckMsg',
+ paramsMap: {
+ sFormGuid: sModelsId,
+ sBillKey: currentPane.sProcName,
+ sTbName: masterConfig.sTbName,
+ sGuid: masterData.sId,
+ sBillNo: masterData.sBillNo,
+ sCheckCondition: checkConditions,
+ sMemo: sCheckRemark,
+ sCheckModelGuid: sCheckModelId,
+ sCheckPerson: dataPersonString,
+ },
+ };
+
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ const noCheckMsg = commonFunc.showMessage(app.commonConst, 'NoCheckMsg'); /* 您有消息待审核 */
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.handleSendSocketMessage('examine', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`;
+ const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId };
+ const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data;
+ if (returnCanCheckBill.code === 1) {
+ if (returnCanCheckBill.dataset.rows[0].iCount === 1) {
+ this.props.onDataAudit(1, 1);
+ this.props.onSaveState({
+ visible: false,
+ });
+ return;
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnCanCheckBill);
+ }
+ this.props.handleSendSocketMessage('reflush', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ }
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+ handleCancel = () => {
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+ handleTableModal = async () => {
+ const {
+ sModelsId, controlData, masterData, slaveData, controlConfig, slaveSelectedRowKeys, enabled, slaveConfig, sModelsType,
+ } = this.props;
+ const addState = {};
+ let treeState = {};
+ if (this.props.sModelsType.includes('sales/salesOrder')) {
+ const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ const iIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]);
+ if (iIndex === -1 && iSlaveIndex > -1 && enabled) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slaveData = slaveData;
+ let dropdownProductClassifyId;
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyId');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex]);
+ dropdownProductClassifyId = sqlDropDownData.dropDownData;
+ }
+ if (commonUtils.isEmptyArr(dropdownProductClassifyId)) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex]);
+ dropdownProductClassifyId = sqlDropDownData.dropDownData;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(dropdownProductClassifyId)) {
+ const iProductClassifyIdIndex = dropdownProductClassifyId.findIndex(item => item.sId === slaveData[iSlaveIndex].sProductClassifyId);
+ if (commonUtils.isNotEmptyObject(dropdownProductClassifyId[iProductClassifyIdIndex])) {
+ const sAllPartsName = dropdownProductClassifyId[iProductClassifyIdIndex].sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ const tableDataRowAdd = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRowAdd.handleType = 'add';
+ tableDataRowAdd.sId = commonUtils.createSid();
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.sSlaveId = slaveSelectedRowKeys[0];
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 0;
+ tableDataRowAdd.sPartsName = child;
+ tableDataRowAdd.dPartsQty = commonUtils.isNull(slaveData[iSlaveIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dGiveQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dStockupQty, 0);
+ tableDataRowAdd.sAllId = tableDataRowAdd.sId;
+ tableDataRowAdd.sControlParentId = '';
+ controlData.push(tableDataRowAdd);
+ }
+ }
+ }
+ }
+ addState.controlData = controlData;
+ }
+
+ if (controlData !== undefined) {
+ const iControlIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ addState.controlSelectedRowKeys = [controlData[iControlIndex].sId];
+ }
+ }
+ if (sModelsType === 'sales/salesOrderPack') {
+ const sSlaveId = slaveSelectedRowKeys[0];
+ if (commonUtils.isNotEmptyObject(sSlaveId)) {
+ treeState = this.props.onGetControlTreeData(controlData, true, sSlaveId);
+ }
+ }
+ }
+
+ this.props.onSaveState({
+ visibleModal: true,
+ ...addState,
+ ...treeState,
+ });
+ };
+ handleTableChooseProcess = () => {
+ const { processConfig } = this.props;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', 'BtnChooseProcess', processConfig.gdsconfigformslave[iIndex]);
+ }
+ };
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ };
+ handleOkModal = async () => {
+ const {
+ controlData, materialsData, processData, slaveData, slaveSelectedRowKeys,
+ } = this.props;
+ const ctData = controlData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]);
+ const mtData = materialsData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]);
+ const pData = processData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType !== '3');
+ const p3Data = processData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType === '3'); /* 成品工序 */
+ if (commonUtils.isNotEmptyArr(ctData)) {
+ let mDetail = '';
+ let pDetail = '';
+ const slaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ await ctData.forEach((controlItem, n) => {
+ if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) {
+ const qz = n === 0 ? '' : ' ';
+ if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) {
+ const yDetail = `${mDetail}${qz}#${controlItem.sPartsName}:`;
+ const gDetail = `${pDetail}${qz}#${controlItem.sPartsName}:`;
+ let imDetail = '';
+ let ipDetail = '';
+ const materials = mtData.filter(materialsItem => (materialsItem.sControlId === controlItem.sId));
+ // let materialsIdDropDown;
+ // const materialsIndex = materialsConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMaterialsName');
+ // if (materialsIndex > -1) {
+ // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'materials', materialsConfig.gdsconfigformslave[materialsIndex]);
+ // materialsIdDropDown = sqlDropDownData.dropDownData;
+ // }
+ materials.forEach((mItem, i) => {
+ const fh = i === 0 ? '' : ',';
+ imDetail = `${imDetail}${fh} ${mItem.sMaterialsName}`;
+ });
+ // processPropsType
+ const process = pData.filter(processItem => (processItem.sControlId === controlItem.sId));
+ // let processIdDropDown;
+ // const processIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ // if (processIndex > -1) {
+ // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'process', processConfig.gdsconfigformslave[processIndex]);
+ // processIdDropDown = sqlDropDownData.dropDownData;
+ // }
+ // const processIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'process', 'sProcessName');
+ process.forEach((pItem, i) => {
+ const fh = i === 0 ? '' : ',';
+ ipDetail = `${ipDetail}${fh} ${pItem.sProcessName}`;
+ });
+ if (commonUtils.isNotEmptyObject(imDetail)) {
+ mDetail = `${yDetail}${imDetail}`;
+ }
+ if (commonUtils.isNotEmptyObject(ipDetail)) {
+ pDetail = `${gDetail}${ipDetail}`;
+ }
+ }
+ }
+ });
+ /* 成品工序 */
+ let ip3Detail = '';
+ if (commonUtils.isNotEmptyArr(p3Data)) {
+ p3Data.forEach((pItem, i) => {
+ const fh = i === 0 ? '' : ',';
+ ip3Detail = `${ip3Detail}${fh} ${pItem.sProcessName}`;
+ });
+ }
+ if (commonUtils.isNotEmptyObject(ip3Detail)) {
+ if (commonUtils.isNotEmptyObject(pDetail)) {
+ pDetail = `${pDetail},${ip3Detail}`;
+ } else {
+ pDetail = ip3Detail;
+ }
+ }
+ slaveData[slaveIndex].sMaterialsMemo = mDetail;
+ slaveData[slaveIndex].sProcessMemo = pDetail;
+ slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? 'update' : slaveData[slaveIndex].handleType;
+ } else if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmptyArr(ctData)) {
+ const sSlaveId = controlData[0].sSlaveId;
+ const slaveIndex = slaveData.findIndex(item => item.sId === sSlaveId);
+ slaveData[slaveIndex].sMaterialsMemo = '';
+ slaveData[slaveIndex].sProcessMemo = '';
+ slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? 'update' : slaveData[slaveIndex].handleType;
+ }
+ this.props.onSaveState({
+ visibleModal: false,
+ controlData,
+ materialsData,
+ processData,
+ slaveData,
+ });
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterSlaveData = (name, dataIndex, value, record) => {
+ return (commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(value.toLowerCase()));
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ const { slaveSelectedRowKeys } = this.props;
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3' &&
+ commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) &&
+ commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2' &&
+ commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) &&
+ commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase()));
+ }
+ // (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ };
+ /* 控制表过滤材料表 工序表数据 */
+ handleGetFilterData = (name) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props;
+ if (data !== undefined) {
+ const newArr = data.filter((item) => {
+ if (name === 'control') {
+ return (commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString()));
+ } else {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()) &&
+ commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString()));
+ }
+ });
+ return newArr.length;
+ }
+ };
+ /* 包装工单过滤行 */ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterDataPack = (name, dataIndex, value, record) => {
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /* 控制表过滤材料表 工序表数据 */
+ handleGetFilterDataPack = (name) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys } = this.props;
+ if (data !== undefined && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ };
+ /** 添加表格空行 */
+ handleTableAdd = async (name, flag, bchild) => {
+ /* 外置处理业务 */
+ const {
+ sModelsId, sModelsType, gdsformconst, slaveData, controlData, controlSelectedRowKeys, [`${name}Data`]: tableData, slaveSelectedRowKeys, slaveConfig,
+ } = this.props;
+ let tableDataRow = {};
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyObject(tableDataRow)) {
+ return;
+ }
+ let dPartsQty = 0;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item) => {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ 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]);
+ productIdDropDown = sqlDropDownData.dropDownData;
+ }
+ if (productIdDropDown) {
+ const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId);
+ if (iProductIdIndex > -1) {
+ tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName;
+ }
+ }
+ }
+ const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ if (sModelsType.includes('sales/salesOrder')) {
+ if (!commonUtils.isEmpty(slaveData[iSlaveIndex].dProductQty)) {
+ tableDataRow.dPartsQty = commonUtils.isNull(slaveData[iSlaveIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dGiveQty, 0);
+ }
+ } else {
+ tableDataRow.dPartsQty = dPartsQty;
+ }
+ tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId;
+ }
+ /* 树形部件节点增加同级部件、增加子级部件 */
+ if (sModelsType === 'sales/salesOrderPack') {
+ if (bchild === 'sameNode') { /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item.sId === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('部件数据生成错误![sAllId为空]');
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sId}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ }
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sControlParentId = treeSelectedKeys[0];
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = controlData[iIndex].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`;
+ }
+ }
+ }
+ tableData.push(tableDataRow);
+ let treeState = [];
+ if (sModelsType === 'sales/salesOrderPack') {
+ treeState = this.props.onGetControlTreeData(tableData, true, tableDataRow.sSlaveId);
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], ...treeState });
+ } else if (name === 'materials' || name === 'process') {
+ tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys)) {
+ const msg = commonFunc.showMessage(gdsformconst, 'pleaseChooseParts');
+ message.warn(msg === '' ? '请选择部件' : msg); // 请选择部件
+ return;
+ }
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1 && iSlaveIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId;
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else {
+ this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = (name, tableSelectedRowKeys) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ };
+ /** 删除表格数据 */
+ handleTableDel = (name, isWait, tableSelectedRowKeys, isTree) => {
+ if (name === 'control') {
+ // const tableSelectedRowKeys = this.props[`${name}SelectedRowKeys`]; /* 删除时,选中行取删除参数传过来的 */
+ const {
+ controlData, treeSelectedKeys, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, sModelsType, slaveSelectedRowKeys, slaveData,
+ } = this.props;
+ if (isTree) {
+ /* 删除该节点及所有子节点 */
+ const controlChildData = controlData.filter(item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ }
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
+ let treeState = [];
+ if (sModelsType === 'sales/salesOrderPack') {
+ const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ const sSlaveId = slaveData[iSlaveIndex].sId;
+ treeState = this.props.onGetControlTreeData(controlReturnData.controlData, true, sSlaveId);
+ }
+ }
+ this.props.onSaveState({
+ ...materialsReturnData,
+ ...processReturnData,
+ ...controlReturnData,
+ ...treeState,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else {
+ return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
+ }
+ };
+ /** 销售订单删除从表数据时也删除控制材料工序表数据 */
+ handleSlaveTableDel = (name, isWait, tableSelectedRowKeys) => {
+ const {
+ sModelsType, controlData, processData, materialsData,
+ } = this.props;
+ if (sModelsType === 'sales/salesOrder' && name === 'slave') {
+ const controlDataDel = controlData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]);
+ const controlDataSelectedRowKeys = [];
+ if (!commonUtils.isEmpty(controlDataDel)) {
+ for (const item of controlDataDel) {
+ const materialsDataSelectedRowKey = item.sId;
+ controlDataSelectedRowKeys.push(materialsDataSelectedRowKey);
+ }
+ if (commonUtils.isNotEmptyArr(controlDataSelectedRowKeys)) {
+ this.props.onDataRowDel('control', isWait, controlDataSelectedRowKeys, true);
+ }
+ const materialsDataDel = materialsData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]);
+ const materialsDataSelectedRowKeys = [];
+ if (!commonUtils.isEmpty(materialsDataDel)) {
+ for (const item of materialsDataDel) {
+ const materialsDataSelectedRowKey = item.sId;
+ materialsDataSelectedRowKeys.push(materialsDataSelectedRowKey);
+ }
+ }
+ if (commonUtils.isNotEmptyArr(materialsDataSelectedRowKeys)) {
+ this.props.onDataRowDel('materials', isWait, materialsDataSelectedRowKeys, true);
+ }
+ const processDataDel = processData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]);
+ const processDataSelectedRowKeys = [];
+ if (!commonUtils.isEmpty(processDataDel)) {
+ for (const item of processDataDel) {
+ const processDataSelectedRowKey = item.sId;
+ processDataSelectedRowKeys.push(processDataSelectedRowKey);
+ }
+ }
+ if (commonUtils.isNotEmptyArr(processDataSelectedRowKeys)) {
+ this.props.onDataRowDel('process', isWait, processDataSelectedRowKeys, true);
+ }
+ }
+ }
+ return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
+ };
+ handleSelect = async (name, selectConfig, selectData) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterData, masterConfig, controlSelectedRowKeys, sModelsId, token, app, tableName, sModelsType,
+ } = this.props;
+ const tableSelectedRowKeys = [];
+ if (sModelsType !== '' && sModelsType.includes('sales/') && name === 'productProcessInfo') { /* 销售订单调用工艺卡 */
+ const {
+ controlConfig, materialsConfig, processConfig, slaveSelectedRowKeys, slaveData,
+ } = this.props;
+ const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if (iIndex > -1 && commonUtils.isNotEmptyArr(selectData)) {
+ const tableDataRow = slaveData[iIndex]; /* 从表选中行 */
+ let { controlData, materialsData, processData } = this.props;
+ const sId = tableDataRow.sId;
+ const bCkxCopyFromTechnology = '1'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) {
+ const controlSelectedData = controlData.filter(item => item.sSlaveId === sId);
+ if (commonUtils.isNotEmptyObject(controlSelectedData)) {
+ const controlSelectedRowKeys = [];
+ controlSelectedData.forEach((item) => {
+ controlSelectedRowKeys.push(item.sId);
+ });
+ const materialsReturnData = this.otherTableDel('materials', controlSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', controlSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedRowKeys);
+ controlData = controlReturnData.controlData;
+ materialsData = materialsReturnData.materialsData;
+ processData = processReturnData.processData;
+ this.props.onSaveState({
+ ...materialsReturnData,
+ ...processReturnData,
+ ...controlReturnData,
+ });
+ }
+ const sCustomerId = selectData[0].sCustomerId;
+ const sProductId = selectData[0].sProductId;
+ const sProductIdArray = [];
+ sProductIdArray.push(sProductId);
+ const sProductIds = sProductIdArray.toString();
+ const condition = {
+ sCustomerId, sProductIds,
+ };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnCopyFrom.productProcessInfo'));
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase().includes('.control'));
+ const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase().includes('.materials'));
+ const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase().includes('.process'));
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData;
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ const treeCopyNodes = new Map();
+ // eslint-disable-next-line no-loop-func
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sSlaveId = tableDataRow.sId;
+ controlRow.sParentId = masterData.sId;
+ if (sModelsType === 'sales/salesOrderPack') { /* 树形 */
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ }
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId)
+ .forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sSlaveId = tableDataRow.sId;
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId)
+ .forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sSlaveId = tableDataRow.sId;
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ // eslint-disable-next-line no-loop-func
+ returnData.materialsData.filter(item => item.sType === '2')
+ .forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sSlaveId = tableDataRow.sId;
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ // eslint-disable-next-line no-loop-func
+ returnData.processData.filter(item => item.sType === '3')
+ .forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sSlaveId = tableDataRow.sId;
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ });
+ }
+ /* 包装订单 生成树形 */
+ let treeState = {};
+ if (sModelsType === 'sales/salesOrderPack') {
+ treeState = this.props.onGetControlTreeData(controlData, true);
+ }
+ this.props.onSaveState({
+ controlData,
+ materialsData,
+ processData,
+ ...treeState,
+ });
+ }
+ }
+ }
+ } else if (name === 'productProcessInfoAbandon') { /* 暂未使用的调用工艺卡功能 */
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ let slaveData = [];
+ let controlData = [];
+ let materialsData = [];
+ let processData = [];
+ let sConfigMasterIdSlave = '';
+ let sConfigMasterIdControl = '';
+ let sConfigMasterIdMaterials = '';
+ let sConfigMasterIdProcess = '';
+ const selectRowData = selectData[0];
+ const sConfigIdString = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sConfigId')[0].showDropDown;
+ if (commonUtils.isNotEmptyStr(sConfigIdString)) {
+ const sConfigId = JSON.parse(sConfigIdString);
+ sConfigMasterIdSlave = sConfigId.sConfigMasterIdSlave;
+ sConfigMasterIdControl = sConfigId.sConfigMasterIdControl;
+ sConfigMasterIdMaterials = sConfigId.sConfigMasterIdMaterials;
+ sConfigMasterIdProcess = sConfigId.sConfigMasterIdProcess;
+ }
+ if (commonUtils.isEmptyStr(sConfigMasterIdSlave)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'slaveParameterErro'));
+ }
+ if (commonUtils.isEmptyStr(sConfigMasterIdControl)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'controlParameterErro'));
+ }
+ if (commonUtils.isEmptyStr(sConfigMasterIdMaterials)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'materialsParameterErro'));
+ }
+ if (commonUtils.isEmptyStr(sConfigMasterIdProcess)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'processParameterErro'));
+ }
+ const slaveUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdSlave}?sModelsId=${sModelsId}`;
+ const value = { sSqlCondition: { sParentId: selectRowData.sId } };
+ const slaveReturnData = (await commonServices.postValueService(token, value, slaveUrl)).data;
+ if (slaveReturnData.code === 1) {
+ slaveData = slaveReturnData.dataset.rows[0].dataSet;
+ slaveData.forEach((item) => {
+ item.handleType = 'add';
+ item.sId = commonUtils.createSid();
+ item.sParentId = masterData.sId;
+ });
+ } else {
+ this.props.getServiceError(slaveReturnData);
+ }
+
+ const controlUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdControl}?sModelsId=${sModelsId}`;
+ const controlReturnData = (await commonServices.postValueService(token, value, controlUrl)).data;
+ if (controlReturnData.code === 1) {
+ controlData = controlReturnData.dataset.rows[0].dataSet;
+ controlData.forEach((item) => {
+ item.handleType = 'add';
+ item.sId = commonUtils.createSid();
+ item.sParentId = masterData.sId;
+ });
+ } else {
+ this.props.getServiceError(controlReturnData);
+ }
+ const materialsUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdMaterials}?sModelsId=${sModelsId}`;
+ const materialsReturnData = (await commonServices.postValueService(token, value, materialsUrl)).data;
+ if (materialsReturnData.code === 1) {
+ materialsData = materialsReturnData.dataset.rows[0].dataSet;
+ materialsData.forEach((item) => {
+ item.handleType = 'add';
+ item.sId = commonUtils.createSid();
+ item.sParentId = masterData.sId;
+ });
+ } else {
+ this.props.getServiceError(materialsReturnData);
+ }
+ const processUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdProcess}?sModelsId=${sModelsId}`;
+ const processReturnData = (await commonServices.postValueService(token, value, processUrl)).data;
+ if (processReturnData.code === 1) {
+ processData = processReturnData.dataset.rows[0].dataSet;
+ processData.forEach((item) => {
+ item.handleType = 'add';
+ item.sId = commonUtils.createSid();
+ item.sParentId = masterData.sId;
+ });
+ } else {
+ this.props.getServiceError(processReturnData);
+ }
+ this.props.onSaveState({
+ processData, materialsData, controlData, slaveData, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys,
+ });
+ }
+ } else if (tableName === 'slave' && selectConfig.sControlName === 'BtnChooseMaterials') {
+ this.props.onSelect('slave', selectConfig, selectData);
+ } else if (sModelsType.includes('cashier/') && selectConfig.sControlName === 'BtnImportFormData') {
+ const { slaveData } = this.props;
+ let tableDataNew = [];
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ tableDataNew = slaveData;
+ tableDataNew.forEach((item, index) => {
+ const handleType = item.handleType;
+ if (commonUtils.isEmptyObject(handleType) || handleType === 'update') {
+ tableDataNew[index] = { ...item, handleType: 'del' };
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ let tableDataRow = {}; // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ tableDataNew.push(tableDataRow);
+ });
+ this.props.onSaveState({ slaveData: tableDataNew, importFormDataVisible: false });
+ }
+ } else {
+ const { controlData, slaveData, slaveSelectedRowKeys } = this.props;
+ const iIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iIndex > -1) {
+ newCopyTo.control = controlData[iIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (this.props.sModelsType.includes('sales/salesOrder')) {
+ const iSlaveIndex = commonUtils.isNotEmptyArr(slaveSelectedRowKeys) ? slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]) : -1;
+ if (iSlaveIndex > -1) {
+ tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId;
+ }
+ }
+ if (iIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ tableData.push(tableDataRow);
+ }
+ tableSelectedRowKeys.push(tableDataRow.sId);
+ });
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys });
+ }
+ };
+
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ let { controlSelectedRowKeys } = this.props;
+ controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ this.props.onTreeSelect(name, checkedKeys, e);
+ this.props.onSaveState({
+ controlSelectedRowKeys,
+ });
+ };
+
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `000${g1.iOrder}`;
+ sOrder1 = sOrder1.substring(sOrder1.length - 3);
+
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `000${g2.iOrder}`;
+ sOrder2 = sOrder2.substring(sOrder2.length - 3);
+ return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10);
+ });
+ return processData;
+ };
+ handleGetDataOk = () => {
+ this.props.onDataImport('zero');
+ }
+ handleGetDataCancel = () => {
+ this.props.onDataImport('all');
+ }
+ colseGetDataVisible = () => {
+ this.props.onSaveState({ isGetDataVisible: false });
+ }
+
+ /* 审核备注文本框改变事件 */
+ textChange= (e, record) => {
+ const sCheckRemark = commonUtils.isNotEmptyObject(record) && commonUtils.isNotEmptyObject(e.target.value) ? e.target.value : '';
+ this.props.onSaveState({ sCheckRemark });/* 审核备注 */
+ }
+ // ----------------------------数据修改回带end ---------------------------- //
+
+ render() {
+ const {
+ pageLoading, masterConfig, visible, checkConditions, checkPersonData, visibleModal, processChooseVisible, materialsChooseVisible, app, sTabId, sModelsType, enabled, slaveSelectedRowKeys,
+ } = this.props;
+ const checkCondition = commonFunc.showMessage(app.commonConst, 'checkCondition');/* 审核条件 */
+ const checkSmemo = commonFunc.showMessage(app.commonConst, 'checkSmemo');/* 备注 */
+ const columns = [{
+ title: checkCondition,
+ dataIndex: 'condition',
+ key: 'condition',
+ }, {
+ title: checkSmemo,
+ dataIndex: 'sMemo',
+ key: 'sMemo',
+ render: (text, record) => {
+ return (
+
+ );
+ },
+ }];
+ let chooseProcessConfig;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ onChooseProcessIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfig = this.props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfig;
+ const modalWidth = '1132';
+ const fixedAutoHeight = sModelsType === 'sales/salesOrderPack' ? 120 : 66;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+ /* 若销售订单从表选中行被工单或其他调用 则材料与工艺只能查看不能操作s */
+ let bUsed = enabled;
+ if (sModelsType.includes('sales/salesOrder') && enabled && commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ const { slaveData } = this.props;
+ const iSlaveDataIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if (iSlaveDataIndex > -1) {
+ const sWorkOrderUsed = slaveData[iSlaveDataIndex].sWorkOrderUsed;
+ if (commonUtils.isNotEmptyObject(sWorkOrderUsed)) {
+ bUsed = false;
+ }
+ }
+ }
+
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', this.props),
+ tableProps: {
+ CalLastWidth: modalWidth, AutoTableHeight: fixedAutoHeight, setCopyAll, setProcess, setMaterial, chooseProcessConfigRow: chooseProcessConfig, chooseMaterialsConfigRow: chooseMaterialsConfig, onRow: (record) => { return { onClick: () => { this.onRowClick('control', record); } }; },
+ },
+ filteredValue: this.props.slaveSelectedRowKeys,
+ onFilterData: this.handleFilterSlaveData,
+ OnGetFilterData: this.handleGetFilterData,
+ onAddRow: this.handleTableAdd,
+ onDelRow: this.handleTableDel,
+ onKeyDown: this.props.onKeyDown,
+ enabled: bUsed,
+ };
+ const name = 'controlTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', this.props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: this.props[`${name}Column`],
+ [`${name}Config`]: this.props[`${name}Config`],
+ [`${name}Data`]: this.props[`${name}Data`],
+ getFloatNum: this.props.getFloatNum,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getDateFormat: this.props.getDateFormat,
+ onDoubleClick: this.props.onDoubleClick,
+ onSelect: this.handleTreeSelect,
+ expandedKeys: this.props.expandedKeys,
+ showLine: true,
+ };
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', this.props),
+ tableProps: { CalLastWidth: modalWidth, AutoTableHeight: fixedAutoHeight },
+ filteredValue: this.props.controlSelectedRowKeys,
+ onFilterData: this.handleFilterData,
+ OnGetFilterData: this.handleGetFilterData,
+ onAddRow: this.handleTableAdd,
+ onKeyDown: this.props.onKeyDown,
+ enabled: bUsed,
+ };
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', this.props),
+ tableProps: { CalLastWidth: modalWidth, AutoTableHeight: 132 },
+ filteredValue: this.props.controlSelectedRowKeys,
+ onFilterData: this.handleFilterData,
+ OnGetFilterData: this.handleGetFilterData,
+ onAddRow: this.handleTableAdd,
+ onChooseProcessRow: this.handleTableChooseProcess,
+ onKeyDown: this.props.onKeyDown,
+ enabled: bUsed,
+ };
+ let searchProcessType = {};
+ // let chooseProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(this.props.processChooseData)) {
+ // const iIndex = this.props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ // if (iIndex > -1) {
+ // chooseProcessConfig = this.props.processConfig.gdsconfigformslave[iIndex];
+ // }
+
+ searchProcessType = {
+ app: {
+ ...this.props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: this.props.getSqlCondition(chooseProcessConfig),
+ title: this.props.processChooseData.sMenuName,
+ route: this.props.processChooseData.sName,
+ formId: this.props.processChooseData.sId,
+ key: this.props.sModelsId + this.props.processChooseData.sId,
+ sModelsType: this.props.processChooseData.sModelType,
+ select: this.handleSelect,
+ selectCancel: this.props.onSelectCancel,
+ },
+ },
+ dispatch: this.props.dispatch,
+ content: this.props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: this.props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+
+
+ let searchMaterialsType = {};
+ // let chooseMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(this.props.materialsChooseData) && this.props.tableName !== 'slave') {
+ // const iIndex = this.props.materialsConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ // if (iIndex > -1) {
+ // chooseMaterialsConfig = this.props.materialsConfig.gdsconfigformslave[iIndex];
+ // }
+
+ searchMaterialsType = {
+ app: {
+ ...this.props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: this.props.getSqlCondition(chooseMaterialsConfig),
+ title: this.props.materialsChooseData.sMenuName,
+ route: this.props.materialsChooseData.sName,
+ formId: this.props.materialsChooseData.sId,
+ key: this.props.sModelsId + this.props.materialsChooseData.sId,
+ sModelsType: this.props.materialsChooseData.sModelsType,
+ select: this.handleSelect,
+ selectCancel: this.props.onSelectCancel,
+ },
+ },
+ dispatch: this.props.dispatch,
+ content: this.props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: this.props.realizeHeight,
+ };
+ }
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const setMaterailRemark = commonFunc.showMessage(app.commonConst, 'setMaterailRemark');/* 选择材料与工艺 */
+ const setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ const setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ const btnSure = commonFunc.showMessage(app.commonConst, 'btnSure');/* 确认 */
+ const check = commonFunc.showMessage(app.commonConst, 'check');/* 审核 */
+ const BtnClose = commonFunc.showMessage(app.commonConst, 'BtnClose');/* 关闭 */
+ const checkPerson = commonFunc.showMessage(app.commonConst, 'checkPerson');/* 审核人 */
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAdd = {this.props.enabled ? setAdd.img : setAdd.disableimg} ;
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAddChild = {this.props.enabled ? setAddChild.img : setAddChild.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateCopy = {this.props.enabled ? setCopy.img : setCopy.disableimg};
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateUpdate = {this.props.enabled ? setCopyAll.img : setCopyAll.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateDel = {this.props.enabled ? setDelete.img : setDelete.disableimg};
+ return (
+
+
+
+
+ {
+ visible ?
+
{BtnClose},
+ ,
+ ]}
+ >
+
+ {checkPerson}
+
+
+
+ { commonUtils.isNotEmptyObject(checkPersonData) ?
+ checkPersonData.map((item) => {
+ return (
+
+ {item.sUserName}
+
+ );
+ })
+ : ''
+ }
+
+
+
+
+ : ''
+ }
+ {
+ visibleModal ?
+
{BtnClose},
+ ,
+ ]}
+ >
+ {
+ (pane.notCurrentPane ? false : processChooseVisible) ?
+
+
+
+ : ''
+ }
+ {
+ (pane.notCurrentPane ? false : materialsChooseVisible) ?
+
+
+
+ : ''
+ }
+
+
+ : ''}
+
+
+
+ );
+ }
+}
+
+const BillComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ slaveData,
+ slavePagination,
+ onlyMaster,
+ sModelsId,
+ app,
+ masterConfig,
+ slaveConfig,
+ isSmall,
+ isGetDataVisible,
+ onGetDataCancel,
+ onGetDataOk,
+ colseGetDataVisible,
+ sModelsType,
+ masterData,
+ previewUrl,
+ slaveSelectedRowKeys,
+ } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ ...slavePagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const templateProps = props.formData.filter(item => item.sGrd === 'importTemplate')[0];
+ let setMaterialRemark = {
+ title: '材料与工艺',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ /* 获取toolbar 选择材料 */
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(slaveConfig)) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = slaveConfig.gdsconfigformslave[iIndex];
+ }
+ }
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+
+ /* 调用产品工艺卡 */
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+
+ /* 导入收付款未清数据 */
+ let importPopupProps = {};
+ let importPopupTitle = '导入未清数据';
+ if (commonUtils.isNotEmptyObject(props)) {
+ let importPopupConfig = {};
+ const {
+ masterConfig, sModelsId,
+ } = props;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnImportFormData' && item.bVisible);
+ if (iIndex > -1) {
+ importPopupConfig = masterConfig.gdsconfigformslave[iIndex];
+ importPopupTitle = commonUtils.isNotEmptyObject(importPopupConfig) && commonUtils.isNotEmptyObject(importPopupConfig.sActiveName) ? importPopupConfig.sActiveName : importPopupTitle;
+ importPopupProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'commonPopup',
+ config: importPopupConfig,
+ conditonValues: {},
+ title: importPopupTitle,
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: importPopupConfig.sActiveId,
+ key: sModelsId + importPopupConfig.sId,
+ sModelsType: 'search/importFormData',
+ select: props.onSelect,
+ selectCancel: props.handleCancelModal.bind(this, 'importFormDataVisible'),
+ bFilterProName: props.bFilterProName, /* 存储过程查询ID */
+ bFilterProValue: props.bFilterProValue, /* 存储过程查询VALUE */
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+ }
+ }
+
+ // const saleOrder = commonFunc.showMessage(app.commonConst, 'saleOrder');/* 销售订单 s*/
+ setMaterialRemark = props.sModelsType !== undefined && props.sModelsType.includes('sales/salesOrder') ? setMaterialRemark : null;
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, pagination, onChange: props.onTitleChange,
+ },
+ templateProps,
+ onKeyDown: props.onKeyDown,
+ onContextMenu: props.onContextMenu,
+ masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息)
+ };
+
+
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, pagination, onChange: props.onTitleChange,
+ },
+ templateProps,
+ onKeyDown: props.onKeyDown,
+ onContextMenu: props.onContextMenu,
+ masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息)
+ };
+
+
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, pagination, onChange: props.onTitleChange,
+ },
+ templateProps,
+ onKeyDown: props.onKeyDown,
+ onContextMenu: props.onContextMenu,
+ masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息)
+ };
+
+
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, pagination, onChange: props.onTitleChange,
+ },
+ templateProps,
+ onKeyDown: props.onKeyDown,
+ onContextMenu: props.onContextMenu,
+ masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息)
+ };
+
+ const packPropsType = {
+ ...commonBusiness.getTableTypes('pack', props),
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, pagination, onChange: props.onTitleChange,
+ },
+ onKeyDown: props.onKeyDown,
+ onContextMenu: props.onContextMenu,
+ masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息)
+ };
+
+ let gdsconfigformmasterId = '';
+ if (templateProps !== undefined) {
+ gdsconfigformmasterId = templateProps.sId;
+ }
+
+ const sNotEmpty = 'sParentId,sProductId';
+ let uploadUrl = `${commonConfig.server_host}import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&token=${app.token}`;
+ /* 送货单需要传客户id */
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType === 'sales/salesSgoods' && commonUtils.isNotEmptyObject(masterData)) {
+ const sCustomerId = masterData.sCustomerId;
+ if (commonUtils.isNotEmptyObject(sCustomerId)) {
+ uploadUrl = `${commonConfig.server_host}import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&sCustomerId=${sCustomerId}&token=${app.token}`;
+ }
+ }
+ const outProps = {
+ action: uploadUrl,
+ onChange: props.onUploadChangeFile, /* 文件上传 */
+ accept: 'xls/*',
+ showUploadList: false,
+ beforeUpload: () => {
+ /* 查看时不可上传 */
+ if (!props.enabled) return false;
+ },
+ };
+ const uploadPropsSales = props.onUploadPropsSales();
+ const isGetData = commonFunc.showMessage(app.commonConst, 'isGetData');/* 确认获取库存为零的数据吗 */
+ const isFilterGetDataZero = commonFunc.showMessage(app.commonConst, 'isFilterGetDataZero');
+ const isAllGetData = commonFunc.showMessage(app.commonConst, 'isAllGetData');
+ // const CheckInfo = commonFunc.showMessage(app.commonConst, 'CheckInfo');/* 审批信息 */
+ const BtnimportData = commonFunc.showMessage(app.commonConst, 'importData');/* 导入数据 */
+ const ImportData = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('ImportData') && item.bVisible) : '';/* 后台是否配置导入 */
+
+ /* 取 masterConfig中有多少个分割符配置 */
+ const masterShowConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '') : [];
+ const diliverConfigTypeArr = []; /* 有分隔符的配置 */
+ masterShowConfig.forEach((child) => {
+ if (child.sControlName.indexOf('_') > -1) {
+ const tableType = child.sControlName.split('_')[1];
+ const isIndex = diliverConfigTypeArr.findIndex(item => item === tableType);
+ if (isIndex === -1) {
+ diliverConfigTypeArr.push(tableType);
+ }
+ }
+ });
+ /* ----从表设置------- */
+ /* 取区域间隔符 */
+ // eslint-disable-next-line no-unused-vars
+ const areaShowConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sControlName !== '' && item.sControlName.toLowerCase().indexOf('dividerarea') > -1) : [];
+
+ // eslint-disable-next-line no-unused-vars
+ let listConfig = {}; /* 从表区域 列表显示设置 */
+ if (commonUtils.isNotEmptyObject(slaveConfig)) {
+ listConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && (item.iTag !== 2 && item.iTag !== 3)) : [];
+ }
+
+ /* commonView显示区域 */
+ const ableConfigs = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+ /* 选中行 */
+ let showAll = true; /* 只显示表格 */
+ let bShowLeft = true; /* 表格显示在左侧 */
+ let iColValueView = 12;
+ let iColValueTable = 12;
+
+ let showAll2 = true; /* 只显示表格 */
+ let bShowLeft2 = true; /* 表格显示在左侧 */
+ let iColValueView2 = 12;
+ const iColValueTable2 = 12;
+
+ let slaveRow = {};
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ slaveRow = slaveData[iIndex];
+ } else {
+ slaveRow = slaveData[0];
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveRow = slaveData[0];
+ }
+ if (commonUtils.isNotEmptyObject(props.slaveConfig) && commonUtils.isNotEmptyArr(props.slaveConfig.gdsconfigformslave)) {
+ const iIndexArea = props.slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll = false;
+ }
+ if (commonUtils.isNotEmptyObject(props.slaveConfig) && commonUtils.isNotEmptyArr(props.slaveConfig.gdsconfigformslave)) {
+ const iShowLeft = props.slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight = props.slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft > -1) {
+ bShowLeft = true;
+ iColValueTable = props.slaveConfig.gdsconfigformslave[iShowLeft].iColValue;
+ } else if (iShowRight > -1) {
+ bShowLeft = false;
+ iColValueTable = props.slaveConfig.gdsconfigformslave[iShowRight].iColValue;
+ }
+ }
+ }
+ iColValueView = commonUtils.isNotEmptyNumber(iColValueTable) ? 24 - iColValueTable : 12;
+ iColValueView2 = commonUtils.isNotEmptyNumber(iColValueTable2) ? 24 - iColValueTable2 : 12;
+ const iShowOrder = bShowLeft ? 1 : 100;
+
+ const iShowOrder2 = bShowLeft2 ? 1 : 100;
+
+ let areaShow1 = true; /* 区域1 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexArea = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'DividerArea1' && item.bVisible);
+ if (iIndexArea > -1) {
+ areaShow1 = props.masterConfig.gdsconfigformslave[iIndexArea].showName;
+ }
+ }
+ let areaShow2 = true; /* 区域2 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexArea = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'DividerArea2' && item.bVisible);
+ if (iIndexArea > -1) {
+ areaShow2 = props.masterConfig.gdsconfigformslave[iIndexArea].showName;
+ }
+ }
+
+ if (commonUtils.isNotEmptyObject(props.controlConfig) && commonUtils.isNotEmptyArr(props.controlConfig.gdsconfigformslave)) {
+ const iIndexArea = props.controlConfig.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll2 = false;
+ }
+ if (commonUtils.isNotEmptyObject(props.controlConfig) && commonUtils.isNotEmptyArr(props.controlConfig.gdsconfigformslave)) {
+ const iShowLeft = props.controlConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight = props.controlConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft > -1) {
+ bShowLeft2 = true;
+ iColValueTable = props.controlConfig.gdsconfigformslave[iShowLeft].iColValue;
+ } else if (iShowRight > -1) {
+ bShowLeft2 = false;
+ iColValueTable = props.controlConfig.gdsconfigformslave[iShowRight].iColValue;
+ }
+ }
+ }
+
+ let areaShow3 = true; /* 区域3 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexArea = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'DividerArea3' && item.bVisible);
+ if (iIndexArea > -1) {
+ areaShow3 = props.masterConfig.gdsconfigformslave[iIndexArea].showName;
+ }
+ }
+
+ let areaShow4 = true; /* 区域4 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexArea = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'DividerArea4' && item.bVisible);
+ if (iIndexArea > -1) {
+ areaShow4 = props.masterConfig.gdsconfigformslave[iIndexArea].showName;
+ }
+ }
+ let areaShow5 = true; /* 区域5 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexArea = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'DividerArea5' && item.bVisible);
+ if (iIndexArea > -1) {
+ areaShow5 = props.masterConfig.gdsconfigformslave[iIndexArea].showName;
+ }
+ }
+ let bShowReport = true; /* 显示报表区域 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexArea = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRepoprt');
+ if (iIndexArea > -1) {
+ bShowReport = props.masterConfig.gdsconfigformslave[iIndexArea].bVisible;
+ }
+ }
+
+ const bControlShow = commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.controlConfig); /* 控制表 */
+
+ const bMaterialShow = commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.materialsConfig); /* 材料表 */
+
+ const bProcessShow = commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig); /* 工序表 */
+
+ const bPackShow = commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.packConfig); /* 工序表 */
+ /* 从表view */
+ const slaveViewProps = {
+ ...props,
+ viewConfigs: ableConfigs,
+ tableConfig: slaveConfig,
+ iColValueView,
+ viewRow: slaveRow,
+ tableName: 'slave',
+ };
+
+ /* 控制表view */
+ const controlViewProps = {
+ ...props,
+ viewConfigs: ableConfigs,
+ tableConfig: slaveConfig,
+ iColValueView2,
+ viewRow: {},
+ tableName: 'control',
+ };
+ /* 从表view */
+ const materialsViewProps = {
+ ...props,
+ viewConfigs: ableConfigs,
+ tableConfig: slaveConfig,
+ iColValueView2,
+ viewRow: {},
+ };
+ /* 从表view */
+ const processViewProps = {
+ ...props,
+ viewConfigs: ableConfigs,
+ tableConfig: slaveConfig,
+ iColValueView2,
+ viewRow: {},
+ };
+
+ /* pack表view */
+ const packViewProps = {
+ ...props,
+ viewConfigs: ableConfigs,
+ tableConfig: slaveConfig,
+ iColValueView2,
+ viewRow: {},
+ };
+
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSales(CommonBill));
diff --git a/src/components/Common/CommonCheckBill/index.less b/src/components/Common/CommonCheckBill/index.less
new file mode 100644
index 0000000..78e7803
--- /dev/null
+++ b/src/components/Common/CommonCheckBill/index.less
@@ -0,0 +1,16 @@
+.pdfContainer{
+ width: 100%;
+ height: 300px;
+}
+/* 处理分隔符间距 */
+:global{
+ .commonCheckBillContainer .ant-divider-horizontal.ant-divider-with-text{
+ margin: 5px 0 10px 0!important;
+ }
+ /* 主表分隔符间距 */
+ .commonCheckBillContainer .flexArea .ant-divider-horizontal.ant-divider-with-text{
+ margin: -8px 0!important;
+ }
+}
+
+
diff --git a/src/components/Common/CommonCheckBillEvent.js b/src/components/Common/CommonCheckBillEvent.js
new file mode 100644
index 0000000..94f72e0
--- /dev/null
+++ b/src/components/Common/CommonCheckBillEvent.js
@@ -0,0 +1,5606 @@
+/* eslint-disable */
+import React, { Component } from 'react';
+import { Modal, Progress } from 'antd';
+import { message } from '@/utils/common/message';
+import moment from 'moment';
+import * as commonUtils from '@/utils/utils'; /* 通用方法 */
+import * as commonBusiness from '@/components/Common/commonBusiness'; /* 单据业务功能 */
+import * as commonServices from '@/services/services'; /* 服务类 */
+import commonConfig from '@/utils/config';
+import * as commonFunc from '@/components/Common/commonFunc';
+import styles from '@/components/Common/ToolBar/index.less';
+
+const { confirm } = Modal;
+
+/* 可配置多表格单据事件层 */
+export default (ChildComponent) => {
+ return class extends Component {
+ constructor(props) {
+ super(props);
+ // this.state = {
+ // masterConfig: {}, /* 主表配置 */
+ // slaveConfig: {}, /* 从表配置 */
+ // slaveColumn: [], /* 显示的从表表头 */
+ // checkConfig: {}, /* 审核配置 */
+ // checkColumn: [], /* 显示的审核表表头 */
+ //
+ // billnosetting: {}, /* 是否自动审核 */
+ // report: [], /* 打印模板 */
+ // masterData: {}, /* 主表数据 */
+ // slaveData: [], /* 从表数据 */
+ // dataTotal: {}, /* 合计字段 */
+ // checkData: [], /* 审核表数据 */
+ // masterFlag: false, /* 是否获取主表数据 */
+ // slaveFlag: false, /* 是否获取从表数据 */
+ // checkFlag: false, /* 是否获取审核表数据 */
+ // sId: '', /* 数据Id */
+ // enabled: false, /* 页面是否可编辑 */
+ // slaveSelectedRowKeys: [], /* 已选择的数据行(数据格式:数组) */
+ // slaveDelData: [], /* 已删除的数据集合,保存的时候会与从表一并传给服务器(数据格式:数组) */
+ // expand: false, /* 默认主表只显示2行 */
+ // imgSrc: '', /* Avatar组件中的img中src的资源路径 */
+ // currentIndexFlag: false, /* 默认不显示当前的数据在主表页的位置序号 */
+ // };
+ this.state = {
+ changleCustomerId: '',
+ dPackQtyChange: 0,
+ };
+ this.copyName = '';
+ this.form = {}; /* 表单对象 */
+ const { sModelsId, sModelsType } = props;
+ if (sModelsType.includes('cashier/')) {
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerName', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyName', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyName', []);
+ }
+ commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sSrcNo', []);
+ }
+ async componentWillReceiveProps(nextProps) {
+ const {
+ formData, currentId, sModelsType, formRoute,
+ } = nextProps;
+ const {
+ slaveConfig: slaveConfigOld,
+ masterConfig: masterConfigOld,
+ app,
+ employeeConfig: employeeConfigOld,
+ } = nextProps;
+ if (commonUtils.isEmptyObject(slaveConfigOld) && formData.length > 0 && (sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment' && sModelsType !== 'quality/accident' && sModelsType !== 'purchase/purchaseEnquiry' && sModelsType !== 'complaint/complaint' && sModelsType !== 'print/printLabel' && sModelsType !== 'commonBill/onlyMaster' && (formRoute.indexOf('indexOee') === -1 || formRoute === '/indexOee/commonOeeBill'))) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ const BtnDesignFunctionConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'BtnBsOperation.BtnDesignFunction') : {};
+ const reportDesign = commonFunc.showMessage(app.commonConst, 'reportDesign');/* 报表设计 */
+ if (commonUtils.isEmptyObject(BtnDesignFunctionConfig)) {
+ masterConfig.gdsconfigformslave.push({
+ bCanInput: false,
+ bEntireLine: false,
+ bFilter: false,
+ bFind: false,
+ bFirstEmpty: false,
+ bIsOther: false,
+ bMultipleChoice: false,
+ bNewRecord: false,
+ bNotEmpty: false,
+ bNotRepeat: false,
+ bReadonly: false,
+ bSum: false,
+ bTree: false,
+ bVisible: true,
+ iColValue: 1,
+ iFitWidth: 120,
+ /* iIncrement: 26154, */
+ iOrder: 1,
+ iTag: 0,
+ iVisCount: 0,
+ iconName: 'menu-unfold',
+ sActiveKey: '',
+ sAssignField: '',
+ sBig5: '',
+ sBig5DropDown: '',
+ sBrandsId: '1111111111',
+ sChinese: '报表设计',
+ sChineseDropDown: '',
+ sColor: '',
+ sColorTerms: '',
+ sControlName: 'BtnBsOperation.BtnDesignFunction',
+ sDateFormat: '',
+ sDefault: '',
+ sDropDownType: '',
+ sEnglish: '',
+ sEnglishDropDown: '',
+ sFilterSql: '',
+ /* sId: '19211681019715580740769130', */
+ sKeyUpFilter: '',
+ sMaxValue: '',
+ sMinValue: '',
+ sName: '',
+ sNotRepeatColumn: '',
+ /* sParentId: '19211681019715428730724240', */
+ sRelation: '',
+ sSelectRelation: '',
+ sSqlCondition: '',
+ sSubsidiaryId: '1111111111',
+ showDropDown: '',
+ showName: reportDesign,
+ });
+ }
+ /* bGrd代表是否是表格 */
+ let slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ let slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ let checkConfig = {};
+ if (formRoute === '/indexOee/commonOeeBill') { /* OEE单据没有审核表 */
+ checkConfig = undefined;
+ } else {
+ checkConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0];
+ }
+ let checkColumn = [];
+ if (commonUtils.isNotEmptyObject(checkConfig)) {
+ checkColumn = commonFunc.getHeaderConfig(checkConfig);
+ }
+ let addState = {};
+ if (formRoute === '/indexPage/commonBill' && sModelsType === 'cost/cosexpenseshare') {
+ const { sModelsId } = this.props;
+ const { sId, sParentId } = slaveConfig;
+ let sAssignStandardConfig = {};
+ const filterData = slaveConfig.gdsconfigformslave.filter(item => item.sName === 'sAssignStandard');
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ sAssignStandardConfig = filterData[0];
+ }
+ const url = `${commonConfig.server_host}costCenter/getCostCenterConfig?sModelsId=${sModelsId}`;
+ const body = {
+ sId,
+ sParentId,
+ sAssignStandardConfig,
+ };
+ const dataReturn = (await commonServices.postValueService(app.token, body, url)).data;
+ if (dataReturn.code === 1) {
+ /* 获取数据集 */
+ const { rows } = dataReturn.dataset;/* 获取费用分摊单据配置 */
+ if (commonUtils.isNotEmptyArr(rows) && rows.length > 0) {
+ slaveConfig = rows[0];
+ slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ }
+ } else { /* 失败s */
+ this.props.getServiceError(dataReturn);
+ return [];
+ }
+ }
+ if (formRoute === '/indexPage/commonBill' || formRoute === '/indexPage/commonCheckBill' || formRoute === '/indexOee/commonOeeBill') {
+ if (sId === '') {
+ const config = {};
+ let addState1 = {};
+ if (sModelsType.includes('sales/salesOrder')) {
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrol'.toUpperCase())[0];
+ const controlColumn = commonFunc.getHeaderConfig(controlConfig);
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordermaterials'.toUpperCase())[0];
+ const materialsColumn = commonFunc.getHeaderConfig(materialsConfig);
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderprocess'.toUpperCase())[0];
+ const processColumn = commonFunc.getHeaderConfig(processConfig);
+ const colorConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderparam'.toUpperCase())[0];
+ let colorColumn;
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfig);
+ }
+ const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrolcombine'.toUpperCase())[0];
+ let packColumn;
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packColumn = commonFunc.getHeaderConfig(packConfig);
+ }
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ addState1 = {
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ packConfig,
+ packColumn,
+ };
+ } else if (sModelsType.includes('sales/autoView') && commonUtils.isNotEmptyArr(formData)) { /* 自定义布局(多层级) */
+ /* 第二级 */
+ console.log('fff::', formData);
+ const controlConfig = formData.length > 2 && commonUtils.isNotEmptyObject(formData[2]) && formData[2].bGrd && formData[2].bGrdVisible ? formData[2] : {};
+ const controlColumn = commonUtils.isNotEmptyObject(controlConfig) ? commonFunc.getHeaderConfig(controlConfig) : [];
+ const materialsConfig = formData.length > 3 && commonUtils.isNotEmptyObject(formData[3]) && formData[3].bGrd && formData[3].bGrdVisible ? formData[3] : {};
+ const materialsColumn = commonUtils.isNotEmptyObject(materialsConfig) ? commonFunc.getHeaderConfig(materialsConfig) : [];
+ const processConfig = formData.length > 4 && commonUtils.isNotEmptyObject(formData[4]) && formData[4].bGrd && formData[4].bGrdVisible ? formData[4] : {};
+ const processColumn = commonUtils.isNotEmptyObject(processConfig) ? commonFunc.getHeaderConfig(processConfig) : [];
+ const packConfig = formData.length > 5 && commonUtils.isNotEmptyObject(formData[5]) && formData[5].bGrd && formData[5].bGrdVisible ? formData[5] : {};
+ let packColumn;
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packColumn = commonFunc.getHeaderConfig(packConfig);
+ }
+ const colorConfig = {};
+ let colorColumn;
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfig);
+ }
+
+ if (commonUtils.isNotEmptyObject(controlConfig)) {
+ config.controlConfig = controlConfig;
+ }
+ if (commonUtils.isNotEmptyObject(materialsConfig)) {
+ config.materialsConfig = materialsConfig;
+ }
+ if (commonUtils.isNotEmptyObject(processConfig)) {
+ config.processConfig = processConfig;
+ }
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ config.colorConfig = colorConfig;
+ }
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ config.packConfig = packConfig;
+ }
+ addState1 = {
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ packConfig,
+ packColumn,
+ };
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ addState = { ...addState, ...addState1 };
+ // if (sModelsType.includes('sales/salesOrder') || sModelsType === 'purchase/purchaseOrder') {
+ // this.props.onSaveState(addState1);
+ // }
+ } else if (sModelsType === 'purchase/purchaseOrder') {
+ const orderDetailConfig = formData.filter(item => item.sTbName.toUpperCase() === 'purpurchaseorderDetail'.toUpperCase())[0];
+ const orderDetailColumn = commonFunc.getHeaderConfig(orderDetailConfig);
+ config.orderDetailConfig = orderDetailConfig;
+ this.handleGetOneMemoData('orderDetail', orderDetailConfig);
+ addState1 = {
+ orderDetailConfig,
+ orderDetailColumn,
+ };
+ }
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ addState = { ...addState, ...addState1 };
+ } else {
+ this.handleGetData(masterConfig, slaveConfig, checkConfig);
+ if (sModelsType.includes('sales/salesOrder')) {
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrol'.toUpperCase())[0];
+ const controlColumn = commonFunc.getHeaderConfig(controlConfig);
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordermaterials'.toUpperCase())[0];
+ const materialsColumn = commonFunc.getHeaderConfig(materialsConfig);
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderprocess'.toUpperCase())[0];
+ const processColumn = commonFunc.getHeaderConfig(processConfig);
+ const colorConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderparam'.toUpperCase())[0];
+ let colorColumn;
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfig);
+ }
+ const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrolcombine'.toUpperCase())[0];
+ let packColumn;
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packColumn = commonFunc.getHeaderConfig(packConfig);
+ }
+ this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ this.props.onSaveState({
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ packConfig,
+ packColumn,
+ });
+ } else if (sModelsType.includes('sales/autoView')) {
+ const controlConfig = formData.length > 2 && commonUtils.isNotEmptyObject(formData[2]) && formData[2].bGrd && formData[2].bGrdVisible ? formData[2] : {};
+ const controlColumn = commonUtils.isNotEmptyObject(controlConfig) ? commonFunc.getHeaderConfig(controlConfig) : [];
+ const materialsConfig = formData.length > 3 && commonUtils.isNotEmptyObject(formData[3]) && formData[3].bGrd && formData[3].bGrdVisible ? formData[3] : {};
+ const materialsColumn = commonUtils.isNotEmptyObject(materialsConfig) ? commonFunc.getHeaderConfig(materialsConfig) : [];
+ const processConfig = formData.length > 4 && commonUtils.isNotEmptyObject(formData[4]) && formData[4].bGrd && formData[4].bGrdVisible ? formData[4] : {};
+ const processColumn = commonUtils.isNotEmptyObject(processConfig) ? commonFunc.getHeaderConfig(processConfig) : [];
+ const packConfig = formData.length > 5 && commonUtils.isNotEmptyObject(formData[5]) && formData[5].bGrd && formData[5].bGrdVisible ? formData[5] : {};
+ let packColumn;
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packColumn = commonFunc.getHeaderConfig(packConfig);
+ }
+ const colorConfig = {};
+ let colorColumn;
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfig);
+ }
+
+ this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig, masterConfig);
+ this.props.onSaveState({
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ packConfig,
+ packColumn,
+ });
+ } else if (sModelsType === 'manufacture/workOrder3') {
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrol'.toUpperCase())[0];
+ const controlColumn = commonFunc.getHeaderConfig(controlConfig);
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase())[0];
+ const materialsColumn = commonFunc.getHeaderConfig(materialsConfig);
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase())[0];
+ const processColumn = commonFunc.getHeaderConfig(processConfig);
+ this.handleGetMemoData(controlConfig, materialsConfig, processConfig);
+ this.props.onSaveState({
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ processConfig,
+ processColumn,
+ });
+ } else if (sModelsType === 'purchase/purchaseOrder') {
+ const orderDetailConfig = formData.filter(item => item.sTbName.toUpperCase() === 'purpurchaseorderDetail'.toUpperCase())[0];
+ const orderDetailColumn = commonFunc.getHeaderConfig(orderDetailConfig);
+ this.handleGetOneMemoData('orderDetail', orderDetailConfig);
+ this.props.onSaveState({
+ orderDetailConfig,
+ orderDetailColumn,
+ });
+ }
+ }
+ }
+ this.props.onSaveState({
+ masterConfig, slaveConfig, slaveColumn, checkConfig, checkColumn, sId, pageLoading: false, ...addState,
+ });
+ } else if (commonUtils.isEmptyObject(masterConfigOld) && formData.length === 1 && (sModelsType === 'cashier/financialTransfer' || sModelsType === 'purchase/purchaseEnquiry' || sModelsType === 'cashier/financialAdjustment' || sModelsType === 'print/printLabel' || sModelsType === 'complaint/complaint' || sModelsType === 'commonBill/onlyMaster') && formRoute.indexOf('indexOee') === -1) {
+ const config = {};
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ let addState = {};
+ if (formRoute === '/indexPage/commonBill' || formRoute === '/indexPage/commonCheckBill') {
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.handleGetData(masterConfig, undefined, undefined);
+ }
+ }
+ addState.onlyMaster = true;
+ if (formRoute === '/indexPage/printlabel') {
+ config.masterConfig = masterConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ }
+ this.props.onSaveState({
+ masterConfig, sId, pageLoading: false, ...addState,
+ });
+ } else if (commonUtils.isEmptyObject(slaveConfigOld) && commonUtils.isEmptyObject(masterConfigOld) && formData.length === 2 && (sModelsType === 'quality/accident') && formRoute.indexOf('indexOee') === -1) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName === 'mftqualityaccidentSlave')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ let addState = {};
+ if (formRoute === '/indexPage/commonBill' || formRoute === '/indexPage/commonCheckBill') {
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.handleGetData(masterConfig, slaveConfig, undefined);
+ }
+ }
+ addState.onlyMaster = true;
+ addState.onlyMasterAndSlave = true;
+ this.props.onSaveState({
+ masterConfig, sId, slaveConfig, slaveColumn, pageLoading: false, ...addState,
+ });
+ } else if (formRoute.indexOf('indexOee') > -1 && commonUtils.isEmptyObject(employeeConfigOld) && commonUtils.isEmptyObject(slaveConfigOld) && formData.length > 0) {
+ // const employeeConfig = formData.filter(item => item.bGrd && item.sTbName === 'mftmachineworkemployee')[0];
+ // const employeeColumn = commonFunc.getHeaderConfig(employeeConfig);
+ // const masterConfig = formData.filter(item => item.bGrd && item.sTbName === 'MftMachineWork')[0];
+ // const addState = (await this.props.handleGetDataOne({
+ // name: 'master', configData: masterConfig, condition: {}, isWait: true,
+ // }));
+ // if (commonUtils.isNotEmptyObject(addState.masterData)) {
+ // addState.masterData.handleType = 'update';
+ // }
+ // this.props.onSaveState({
+ // employeeConfig, employeeColumn, masterConfig, ...addState,
+ // });
+ if (formRoute === '/indexOee/labelPrint' && commonUtils.isEmpty(slaveConfigOld)) { /* 入库标签打印 */
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData[0];
+ const slaveConfig = formData[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ // this.props.handleGetDataOne({ name: 'master', configData: masterConfig, condition: { sSqlCondition: { sParentId: sId } } });
+ this.handleGetOneMemoData('slave', slaveConfig);
+ this.props.onSaveState({
+ masterConfig, sId, slaveConfig, slaveColumn, pageLoading: false,
+ });
+ }
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { slaveColumn, masterConfig } = nextProps;
+ return commonUtils.isNotEmptyArr(slaveColumn) || commonUtils.isNotEmptyObject(masterConfig);
+ }
+
+ /*
+ 修改日期:2021-03-18
+ 修改人:吕杰
+ 区域:以下onKeyDown函数
+ 需求变更:为解决bug 2031添加
+ */
+ /** 键盘事件监听 */
+ onKeyDown = (e, record, sName, name) => {
+ const { [`${name}Data`]: tableData, [`${name}Column`]: tableColumn, [`${name}Config`]: tableConfig } = this.props;
+
+ let keyCode = e.keyCode;
+ let firstName;
+ let bEnter = false;
+ if (keyCode === 13) {
+ // 判断当前单元格是否是最后,不是则跳到下一格,是则跳到下一行第一格
+ bEnter = true;
+ const uniqueTableId = `table_${this.props.sModelsId}_${tableConfig.sId}`;
+ const currentTable = document.getElementById(uniqueTableId);
+ const currentTr = currentTable.querySelector(`tr[data-row-key="${record.sId}"]`);
+ const allInput = currentTr.querySelectorAll(`input[id*="${record.sId}"]`);
+ const iIndex = Array.from(allInput).findIndex(item => item.getAttribute('id') === `${sName}${record.sId}`);
+ if (iIndex < allInput.length - 1) {
+ keyCode = 39;
+ } else {
+ const oFirstInput = allInput[0];
+ firstName = oFirstInput.getAttribute('id').replace(record.sId, '');
+ keyCode = 40;
+ }
+ }
+
+ // 以下if条件为 为解决bug2031问题入口 需求:收款单里输入的收款金额,上下键操作把加减金额改为选择上下行(通过上下方向键切换行数)
+ if ([38, 40].includes(keyCode)) { // 上键、下键
+ e.preventDefault();
+ if (tableData.length > 1) { // 当从表行数大于一行时才有上下移动的意义
+ const index = tableData.findIndex(item => item.sId === record.sId); // 获取当前编辑行的下标
+ if (index > -1) {
+ if (keyCode === 38 && index > 0) { // 方向键上键 且 当前编辑行下标大于0时,为0时无法向上
+ const lastSid = tableData[index - 1].sId; // 获取上一个id
+ this.props.onSaveState({ [`${name}SelectedRowKeys`]: [lastSid] }, () => commonUtils.focus(`${sName}${lastSid}`));
+ }
+ if (keyCode === 40 && index < tableData.length - 1) { // 方向键下键 且 当前编辑行下标小于最大值时,为最大值时无法向下
+ const nextSid = tableData[index + 1].sId; // 获取下一个id
+ this.props.onSaveState({ [`${name}SelectedRowKeys`]: [nextSid] }, () => commonUtils.focus(`${firstName || sName}${nextSid}`));
+ }
+ }
+ }
+ }
+ const move = (keyCode, cursortPosition, columnIndex, currentElement) => {
+ const inputType = currentElement.getAttribute('type');
+ const value = currentElement.value;
+ if (keyCode === 37 && columnIndex > 0 && cursortPosition < 1) { // 左移 则 列下标必须大于0, 且光标在最左侧
+ const lastId = `${tableColumn[columnIndex - 1].dataIndex}${record.sId}`;
+ if (!commonUtils.focus(lastId, e)) move(keyCode, cursortPosition, columnIndex - 1, currentElement); // 递归
+ }
+ if (keyCode === 39 && columnIndex < tableColumn.length - 1) { // 右移 则 列下标必须小于列数量-1
+ if (!record[sName] || cursortPosition >= value.length || inputType === 'search' || bEnter) { // 当前列为空 或 光标位置不小于当前值的长度
+ const nextId = `${tableColumn[columnIndex + 1].dataIndex}${record.sId}`;
+ if (!commonUtils.focus(nextId, e)) move(keyCode, cursortPosition, columnIndex + 1, currentElement); // 递归
+ }
+ }
+ };
+ if ([37, 39].includes(keyCode)) { // 左键、右键
+ const currentElement = document.getElementById(`${sName}${record.sId}`); // 当前编辑框对象
+ if (currentElement) {
+ const cursortPosition = commonUtils.getCursortPosition(currentElement); // 光标位置
+ const columnIndex = tableColumn.findIndex(item => item.dataIndex === sName); // 当前列下标
+ move(keyCode, cursortPosition, columnIndex, currentElement);
+ }
+ }
+ }
+
+ /* 单击右键全部更新,弹出窗选择后,更新此列所有数据 (只更新非只读字段) */
+ onContextMenu = (e, record, showConfig, tbName) => {
+ const contextMenuConfig = [];
+ const showConfigNew = JSON.parse(JSON.stringify(showConfig)); /* 深拷贝配置 */
+ contextMenuConfig.push(showConfigNew);
+ this.props.onSaveState({
+ contextMenuModalVisible: true, /* 右击全部更新弹窗 */
+ contextMenuConfig, /* 右击字段配置 数组形式 */
+ contextMenuRecord: record, /* 右击数据 */
+ contextMenuName: showConfig.showName, /* 右击字段 */
+ contextMenuTbName: tbName, /* 右击字段 */
+ });
+ }
+
+ /** 获取应收账款 */
+ getCustomerReceipt = async (masterData) => {
+ const { sModelsId } = this.props;
+ if (!commonUtils.isEmpty(masterData.sCustomerId)) {
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const value = { sProName: 'Sp_Receivables_AR', paramsMap: { sStatistics: masterData.sCustomerId } };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, url)).data;
+ if (dataReturn.code === 1) {
+ /* 数据查询成功 */
+ const [returnData] = dataReturn.dataset.rows[0].dataSet.outData;
+ const masterDataNew = {
+ ...masterData,
+ dNoReceiptMoney: returnData.dNoReceiptMoney,
+ dDueReceiptMoney: returnData.dNoReceiptMoney,
+ };
+ this.props.onSaveState({ masterData: masterDataNew });
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ };
+
+ /** 获取上查下查数据 */
+ getSearchUpDownData = async (showConfig) => {
+ const { sModelsId } = this.props;
+ const url = `${commonConfig.server_host}searchupdown/getSearchUpDown/${showConfig.sId}?sModelsId=${sModelsId}`;
+ const conditonValues = this.props.getSqlCondition(showConfig);
+ if (commonUtils.isNotEmptyObject(conditonValues)) {
+ const iIndex = Object.keys(conditonValues).findIndex(item => commonUtils.isEmpty(conditonValues[item]));
+ if (iIndex === -1) {
+ /* 调用后台接口 */
+ const body = {
+ sSqlCondition: commonUtils.isEmptyObject(conditonValues) ? '' : conditonValues, /* 查询条件 */
+ };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, body, url)).data;
+ if (dataReturn.code === 1) {
+ /* 数据查询成功 */
+ return dataReturn.dataset.rows;
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ return [];
+ }
+ }
+ }
+ };
+ handlePackDataAdd= (item, index, sControlId) => {
+ const tableDataRow = {};
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.sSlaveId = item.sId;
+ tableDataRow.sParentId = item.sParentId;
+ tableDataRow.sControlId = sControlId;
+ tableDataRow.iOrder = item.iOrder;
+ tableDataRow.sProductId = item.sProductId; /* 产品id */
+ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */
+ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */
+ tableDataRow.sProductName = item.sProductName; /* 产品名称 */
+ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */ /* 生产数量 */
+ tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */
+ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */
+ return tableDataRow;
+ }
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `000${g1.iOrder}`;
+ sOrder1 = sOrder1.substring(sOrder1.length - 3);
+
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `000${g2.iOrder}`;
+ sOrder2 = sOrder2.substring(sOrder2.length - 3);
+ return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10);
+ });
+ return processData;
+ };
+
+ /** 获取主表、从表、审核表数据 */
+ handleGetData = async (masterConfig, slaveConfig, checkConfig, bEditClick) => {
+ const { currentId } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : '';
+ const addStateMaster = await this.props.handleGetDataOne({
+ name: 'master', configData: masterConfig, condition: { sId, pageSize: '', pageNum: '' }, isWait: true, bEditClick,
+ });
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ if (!commonUtils.isEmptyObject(slaveConfig)) {
+ const getData = await this.props.handleGetDataSet({
+ name: 'slave', configData: slaveConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ if (commonUtils.isNotEmptyObject(getData) && commonUtils.isNotEmptyArr(getData.slaveData)) {
+ getData.slaveData.forEach((item, iIndex) => {
+ if (commonUtils.isNotEmptyObject(item.sReportParam)) {
+ item = { ...item, ...commonUtils.convertStrToObj(item.sReportParam) };
+ getData.slaveData[iIndex] = item;
+ }
+ });
+ this.props.onSaveState({ ...getData, ...addStateMaster });
+ } else {
+ this.props.onSaveState({ ...addStateMaster });
+ }
+ // if (commonUtils.isNotEmptyStr(getData.slaveData)) {
+ // const selectRowKey = getData.slaveData[0].sId;
+ // const selectRowKeyArr = [];
+ // selectRowKeyArr.push(selectRowKey);
+ // this.handleTableSelectRowChange('slave', selectRowKeyArr);
+ // }
+ }
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ let bShowReport = true; /* 显示报表区域 */
+ if (commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave)) {
+ const iIndexArea = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRepoprt');
+ if (iIndexArea > -1) {
+ bShowReport = masterConfig.gdsconfigformslave[iIndexArea].bVisible;
+ }
+ }
+ if (bShowReport) {
+ this.handleBtnPreview(false, addStateMaster.masterData);
+ }
+ }
+
+ if (!commonUtils.isEmptyObject(checkConfig)) {
+ this.props.handleGetDataSet({
+ name: 'check', configData: checkConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ };
+ /* 获取表数据 */
+ handleGetMemoData = async (controlConfig, materialsConfig, processConfig, colorConfig, packConfig) => {
+ const { currentId, sModelsType } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ let addStateControl = {};
+ if (commonUtils.isNotEmptyObject(controlConfig)) {
+ addStateControl = await this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */
+ let treeState = [];
+ if (sModelsType === 'sales/salesOrderPack') {
+ treeState = this.handleGetControlTreeData(controlData, true);
+ }
+ if (commonUtils.isNotEmptyObject(materialsConfig)) {
+ this.props.handleGetDataSet({
+ name: 'materials',
+ configData: materialsConfig,
+ condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ let addStateProcess = {};
+ if (commonUtils.isNotEmptyObject(processConfig)) {
+ addStateProcess = await this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(sModelsType.includes('quotation/') ? itemProcess.sProcessParam : sModelsType.includes('manufacture/') ? itemProcess.sWorkOrderParam : itemProcess.sProcessParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ }
+ });
+ addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ }
+ }
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ this.props.handleGetDataSet({
+ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ this.props.onSaveState({
+ pageLoading: false, ...addStateControl, ...addStateProcess, ...treeState, treeSelectedKeys: controlSelectedRowKeys,
+ });
+ };
+ /* 获取单张表数据 */
+ handleGetOneMemoData = (memoName, memoConfig) => {
+ const { currentId } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ if (commonUtils.isNotEmptyObject(sId)) { /* 解决detail数据没有问题 */
+ this.props.handleGetDataSet({
+ name: memoName, configData: memoConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ };
+ /** 获取部件树 */
+ handleGetControlTreeData= (controlDataOld, isWait, sSlaveId) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ const expandedKeys = [];
+ let { treeSelectedKeys } = this.props;
+ let controlData = [];
+ if (commonUtils.isNotEmptyObject(sSlaveId)) {
+ controlData = controlDataOld.filter(item => item.sSlaveId === sSlaveId);
+ } else {
+ controlData = controlDataOld;
+ }
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ const rootData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => commonUtils.isEmpty(item.sControlParentId)) : []; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRow = {};
+ const { sId, sPartsName } = item;
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.sAllId = item.sAllId;
+ const children = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(children)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(children) ? children : [];
+ treeData.push(treeDataRow);
+ });
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ expandedKeys.push(treeData[treeData.length - 1].key);
+ }
+ } else {
+ treeSelectedKeys = [];
+ treeData = [];
+ }
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+
+ /** 获取子节点数据 */
+ handleGetControlTreeChildData= (sParentId, controlData) => {
+ if (commonUtils.isNotEmptyObject(sParentId) && commonUtils.isNotEmptyArr(controlData)) {
+ const childTree = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sControlParentId === sParentId) : [];
+ const children = [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.parentKey = sParentId;
+ treeDataRow.sAllId = child.sAllId;
+ const data = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(data)) {
+ sChildren = '0';
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(data) ? data : [];
+ children.push(treeDataRow);
+ });
+ }
+ return children;
+ }
+ };
+
+ /** 根据key查找树节点并改变属性 */
+ handleSearchNodes= (key, data, showNameNew) => {
+ if (commonUtils.isNotEmptyObject(showNameNew)) {
+ data.forEach((item) => {
+ if (item.key === key) {
+ item.showName = showNameNew;
+ } else if (commonUtils.isNotEmptyArr(item.children)) {
+ this.handleSearchNodes(key, item.children, showNameNew);
+ }
+ });
+ }
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ /* 外置处理业务 */
+ const {
+ sModelsId, sModelsType, app, token,
+ } = this.props;
+ if (sModelsType.includes('cashier/')) {
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerName', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyName', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyName', []);
+ }
+ let masterConfig = commonUtils.isEmptyObject(config) ? {} : config.masterConfig;
+ if (!isWait) {
+ masterConfig = this.props.masterConfig;
+ }
+ let configNew = {};
+ if (commonUtils.isEmptyObject(config)) {
+ const { slaveConfig } = this.props;
+ configNew.slaveConfig = slaveConfig;
+ } else {
+ configNew = config;
+ }
+ let masterData = commonFunc.getDefaultData(masterConfig);
+ masterData.handleType = 'add';
+ masterData.sId = commonUtils.createSid();
+ masterData.sFormId = sModelsId;
+ masterData.maxBillNo = 'sBillNo';
+ let slaveData = [];
+ const controlData = [];
+ const materialsData = [];
+ const processData = [];
+ const orderDetailData = [];
+ const dailyData = [];
+ const packData = [];
+ const colorData = [];
+ // const slaveTotal = [];
+ // const tableDataTotal = {};
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const copyToMasterConfig = copyTo.config.filter(item => item.sControlName === copyTo.name);
+ const masterAssignField = commonUtils.isNotEmptyArr(copyToMasterConfig) ? copyToMasterConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmpty(copyTo.slaveData) ? [] : copyTo.slaveData[0];
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterAssignField, copyTo.masterData, newCopyTo) };
+ if (commonBusiness.getGeyPayDate(masterData) !== undefined) {
+ masterData.tGetPayDate = commonBusiness.getGeyPayDate(masterData);
+ }
+ let sWareHouseNameDropDown;
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWareHouseName');
+ if (iIndex > -1 && commonUtils.isEmptyObject(masterData.sWareHouseId)) {
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ let dataUrl;
+ let condition;
+ if (models === 'Product') {
+ dataUrl = `${commonConfig.server_host}eleProductStock/getProductWareHouse?sModelsId=${sModelsId}`;
+ condition = { sProductId: copyTo.slaveData[0].sProductId };
+ } else {
+ dataUrl = `${commonConfig.server_host}eleMaterialsStock/getMaterialsWareHouse?sModelsId=${sModelsId}`;
+ condition = { sMaterialsId: copyTo.slaveData[0].sMaterialsId, sMaterialsStyle: copyTo.slaveData[0].sMaterialsStyle };
+ }
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const sWareHouseId = dataReturn.dataset.rows.length > 0 ? dataReturn.dataset.rows[0].sWareHouseId : '';
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ sWareHouseNameDropDown = sqlDropDownData.dropDownData;
+ if (commonUtils.isNotEmptyArr(sWareHouseNameDropDown) && !sModelsType.includes('materialsStock/productionmaterialsadjust')) {
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const iWareHouseNameIndex = sWareHouseNameDropDown.findIndex(item => item.sId === sWareHouseId);
+ if (iWareHouseNameIndex > -1) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(sAssignField, sWareHouseNameDropDown[iWareHouseNameIndex]) };
+ }
+ }
+ }
+ }
+
+ const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const slaveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : '';
+ if (slaveAssignField !== '') {
+ let iCount = 0;
+ let flagCopyTo = false;
+ if (commonUtils.isEmptyArr(copyTo.controlData)) {
+ flagCopyTo = true;
+ }
+ for (const slaveItem of copyTo.slaveData) {
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = slaveItem;
+ let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo); // 取默认值
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ if ((!commonUtils.isEmpty(slaveRow.dProductQty) && slaveRow.dProductQty !== slaveRow.dSrcQty) ||
+ (!commonUtils.isEmpty(slaveRow.dAuxiliaryQty) && slaveRow.dAuxiliaryQty !== slaveRow.dSrcAuxiliaryQty)) {
+ let models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ let sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty';
+
+ /* 20210901标板问题 未清新增时,材料销售模块需要用换算数量进行业务计算 */
+ if (sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') { /* 如果是材料销售模块/销售对账 如果是材料 则用换算数量*单价 算金额 */
+ slaveRow.dAuxiliaryQty = slaveRow.dProductQty;
+ /* 材料逻辑计算 */
+ if (commonUtils.isNotEmptyNumber('dMaterialsQty') && slaveRow.dMaterialsQty !== 0 && commonUtils.isNotEmptyObject(slaveRow.sMaterialsUnit)) {
+ let modelsNew = '';
+ if (models === 'Product') { /* 计算前将Product替换为Materials */
+ modelsNew = 'Materials';
+
+ const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
+ const { dNetPrice } = app.decimals;
+ const dForeignPrice = slaveRow[`d${models}ForeignPrice`];
+ if (commonUtils.isNotEmptyNumber(dForeignPrice)) {
+ /* 只有外币单价情況下 要算本位币单价 */
+ const dProductPrice = commonUtils.convertFixNum(dForeignPrice * dCurrencyRate, dNetPrice);
+ slaveRow[`d${models}Price`] = dProductPrice;
+ }
+
+ slaveRow[`dN${modelsNew}Price`] = slaveRow[`d${models}ForeignPrice`];
+ slaveRow[`d${modelsNew}ForeignPrice`] = slaveRow[`d${models}ForeignPrice`];
+ slaveRow[`d${modelsNew}Price`] = slaveRow[`d${models}Price`];
+ slaveRow[`dN${modelsNew}Money`] = slaveRow[`dN${models}Price`];
+ slaveRow[`dN${modelsNew}Money`] = slaveRow[`d${models}ForeignMoney`];
+ slaveRow[`d${modelsNew}ForeignMoney`] = slaveRow[`d${models}ForeignMoney`];
+ slaveRow[`d${modelsNew}Money`] = slaveRow[`d${models}Money`];
+ slaveRow.bSalesMaterials = true;/* 材料销售 销售对账 材料计算 */
+ models = 'Materials';
+ sFieldName = commonUtils.isNotEmptyObject(sFieldName) ? sFieldName.replace('Product', 'Materials') : sFieldName;
+ }
+ }
+ }
+ commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, slaveRow);
+ }
+ if (commonUtils.isNotEmptyObject(slaveRow.sReportParam)) {
+ slaveRow = { ...slaveRow, ...commonUtils.convertStrToObj(slaveRow.sReportParam) };
+ }
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sWareHouseId = masterData.sWareHouseId;
+ slaveRow.sWareHouseNo = masterData.sWareHouseNo;
+ slaveRow.sWareHouseName = masterData.sWareHouseName;
+ slaveRow.sLocationId = masterData.sLocationId;
+ slaveRow.sLocationNo = masterData.sLocationNo;
+ slaveRow.sLocationName = masterData.sLocationName;
+ slaveRow.sWareHouseLocationId = masterData.sWareHouseLocationId;
+ slaveRow.sWareHouseLocationNo = masterData.sWareHouseLocationNo;
+ slaveRow.sWareHouseLocationName = masterData.sWareHouseLocationName;
+ slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId;/* 翻单前的sId */
+ /* 若复制到没有序号,则序号从1自增 */
+ if (commonUtils.isEmptyNumber(slaveRow.iOrder)) {
+ iCount += 1;
+ slaveRow.iOrder = iCount;
+ }
+ if (sModelsType === 'purchase/purchaseInstore') {
+ const iIndex = app.systemData.findIndex(item => item.sName === 'CbxMaterialsDefine');
+ if (iIndex > -1) {
+ const sCbxMaterialsDefine = app.systemData[iIndex].sValue;
+ if (sCbxMaterialsDefine === 'datenum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDD');
+ } else if (sCbxMaterialsDefine === 'datetimenum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDDHHmm');
+ } else if (sCbxMaterialsDefine === 'yearnum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYY');
+ } else if (sCbxMaterialsDefine === 'yearmonthnum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYYMM');
+ } else if (sCbxMaterialsDefine === 'worknum') {
+ slaveRow.sDefineNo = slaveRow.sWorkOrderNo;
+ } else if (sCbxMaterialsDefine === 'manuualno') {
+ slaveRow.sDefineNo = slaveRow.sManualNo;
+ } else if (sCbxMaterialsDefine === 'createnownum') { /* 批号根据生产日期+当前日期 */
+ slaveRow.sDefineNo = moment(slaveRow.tProductionDate).format('YYYYMMDDHHmm') + moment(new Date()).format('YYYYMMDDHHmm');
+ }
+ }
+ } else if (sModelsType === 'productStock/productInStore' || sModelsType === 'outside/outsideinstoreAll') { /* 成品入库、整单发外入库 */
+ const iIndex = app.systemData.findIndex(item => item.sName === 'CbxProductDefine');
+ if (iIndex > -1) {
+ const sCbxProductDefine = app.systemData[iIndex].sValue;
+ if (sCbxProductDefine === 'datenum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDD');
+ } else if (sCbxProductDefine === 'datetimenum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDDHHmm');
+ } else if (sCbxProductDefine === 'yearnum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYY');
+ } else if (sCbxProductDefine === 'yearmonthnum') {
+ slaveRow.sDefineNo = moment(new Date()).format('YYYYMM');
+ } else if (sCbxProductDefine === 'worknum') {
+ slaveRow.sDefineNo = slaveRow.sWorkOrderNo;
+ } else if (sCbxProductDefine === 'manuualno') {
+ slaveRow.sDefineNo = slaveRow.sManualNo;
+ } else if (sCbxProductDefine === 'worktimenum') { /* 批号根据工单号码+日期时间批号 */
+ slaveRow.sDefineNo = slaveRow.sWorkOrderNo + moment(new Date()).format('YYYYMMDDHH');
+ } else if (sCbxProductDefine === 'yearToDate') { /* 2259 批号根据工单制单日期年月日,年取两位 */
+ slaveRow.sDefineNo = moment(copyTo.masterData.tCreateDate || new Date()).format('YYMMDD');
+ }
+ }
+ } else if (sModelsType === 'sales/salesCheck') {
+ slaveRow.dSrcNoCheckMoney = slaveRow.dProductForeignMoney;
+ } else if (sModelsType === 'purchase/purchasecheck') {
+ slaveRow.dSrcNoCheckMoney = slaveRow.dMaterialsMoney;
+ } else if (sModelsType === 'purchase/purchaseOrder') { // bug 2171 修正 吕杰 2021-03-26
+ const dProcurementCycle = commonUtils.isNull(slaveRow.dProcurementCycle, 0);
+ const tCreateDate = masterData && commonUtils.isNotEmptyObject(masterData.tCreateDate) ? masterData.tCreateDate : new Date();
+ const tDeliverDate = moment(tCreateDate).add(dProcurementCycle, 'days').format(commonUtils.dateFormatA);
+ slaveRow.tDeliverDate = tDeliverDate;
+ slaveRow.dProcurementCycle = dProcurementCycle;
+ }
+ slaveData.push(slaveRow);
+
+ if (sModelsType.includes('sales/salesOrder') && flagCopyTo && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = this.props;
+ const sSlaveId = commonUtils.isNotEmptyStr(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId;
+ const sParentId = commonUtils.isNotEmptyStr(slaveItem.sParentId) ? slaveItem.sParentId : slaveItem.sId;
+ let condition = {};
+ if (sModelsType === 'sales/salesOrderPack') {
+ condition = { sParentId };
+ } else {
+ condition = { sSlaveId };
+ }
+ /* 通用报价单:101251240115016244276286330 */
+ const dataUrl = slaveItem.sFormId === '19211681019715780306452560' || slaveItem.sFormId === '101251240115016076506222050'
+ || slaveItem.sFormId === '101251240115016036175782700' || slaveItem.sFormId === '101251240115016002356125200' || slaveItem.sFormId === '101251240115016244276286330' ?
+ `${commonConfig.server_host}salesorder/getQuotationPartsInfo?sModelsId=${sModelsId}` :
+ `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ slaveItem.sId = sSlaveId;
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.packData = returnData.packData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ if (controlAssignField !== '') {
+ if (commonUtils.isNotEmptyObject(copyTo.controlData)) {
+ const treeCopyNodes = new Map();
+ let controlFilterData = [];
+ const srcFormRoute = copyTo.srcFormRoute;
+ if (srcFormRoute === '/indexPage/quotationPack' || slaveItem.sFormId === '101251240115016076506222050') {
+ controlFilterData = copyTo.controlData;
+ } else {
+ controlFilterData = copyTo.controlData.filter(controlItem => controlItem.sSlaveId === slaveItem.sId);
+ }
+ await controlFilterData.forEach(async (controlItem) => {
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ if ((!commonUtils.isEmpty(controlRow.dProductQty) && controlRow.dProductQty !== controlRow.dSrcQty) ||
+ (!commonUtils.isEmpty(controlRow.dAuxiliaryQty) && controlRow.dAuxiliaryQty !== controlRow.dSrcAuxiliaryQty)) {
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty';
+ commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, controlRow);
+ }
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sOriginalId = controlItem.sId; /* 复制前的部件表sId */
+ controlRow.sParentId = masterData.sId;
+ controlRow.sSlaveId = slaveRow.sId;
+ if (sModelsType === 'sales/salesOrderPack') {
+ /* 如果有树形结构 则sAllId,sControlParentId赋值 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ }
+ controlData.push(controlRow);
+
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ if (materialsAssignField !== '') {
+ if (commonUtils.isNotEmptyObject(copyTo.materialsData)) {
+ let materialsFilterData = [];
+ const srcFormRoute = copyTo.srcFormRoute;
+ if (srcFormRoute === '/indexPage/quotationPack' || slaveItem.sFormId === '101251240115016076506222050') {
+ materialsFilterData = copyTo.materialsData.filter(materialsItem => materialsItem.sControlId === controlItem.sId);
+ } else {
+ materialsFilterData = copyTo.materialsData.filter(materialsItem => materialsItem.sSlaveId === slaveItem.sId && materialsItem.sControlId === controlItem.sId);
+ }
+ await materialsFilterData.forEach(async (materialsItem) => {
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ if ((!commonUtils.isEmpty(materialsRow.dProductQty) && materialsRow.dProductQty !== materialsRow.dSrcQty) ||
+ (!commonUtils.isEmpty(materialsRow.dAuxiliaryQty) && materialsRow.dAuxiliaryQty !== materialsRow.dSrcAuxiliaryQty)) {
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty';
+ commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, materialsRow);
+ }
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sSlaveId = slaveRow.sId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ }
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ if (processAssignField !== '') {
+ if (commonUtils.isNotEmptyObject(copyTo.processData)) {
+ let processFilterData = [];
+ const srcFormRoute = copyTo.srcFormRoute;
+ if (srcFormRoute === '/indexPage/quotationPack' || slaveItem.sFormId === '101251240115016076506222050') {
+ processFilterData = copyTo.processData.filter(processItem => processItem.sControlId === controlItem.sId);
+ } else {
+ processFilterData = copyTo.processData.filter(processItem => processItem.sSlaveId === slaveItem.sId && processItem.sControlId === controlItem.sId);
+ }
+ processFilterData.forEach((processItem) => {
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ if ((!commonUtils.isEmpty(processRow.dProductQty) && processRow.dProductQty !== processRow.dSrcQty) ||
+ (!commonUtils.isEmpty(processRow.dAuxiliaryQty) && processRow.dAuxiliaryQty !== processRow.dSrcAuxiliaryQty)) {
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'process';
+ const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty';
+ commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, processRow);
+ }
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sSlaveId = slaveRow.sId;
+ processData.push(processRow);
+ });
+ }
+ }
+ /* 合版表复制到 */
+ if (sModelsType === 'sales/salesOrderPack') {
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ if (commonUtils.isNotEmptyObject(packAssignField)) {
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ await copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ /* sSlaveId赋值 */
+ const packRowAdd = this.handlePackDataAdd(slaveRow, 0, controlRow.sId);
+ packRow = { ...packRow, ...packRowAdd };
+ packRow.sOrderSlaveId = slaveRow.sId;
+
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+
+
+ packData.push(packRow);
+ });
+ }
+ }
+ }
+ });
+ }
+
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ if (materialsAssignField !== '') {
+ if (commonUtils.isNotEmptyObject(copyTo.materialsData)) {
+ let materialsFilterData = [];
+ const srcFormRoute = copyTo.srcFormRoute;
+ if (srcFormRoute === '/indexPage/quotationPack' || slaveItem.sFormId === '101251240115016076506222050') {
+ materialsFilterData = copyTo.materialsData.filter(item => item.sType === '2');
+ } else {
+ materialsFilterData = copyTo.materialsData.filter(item => item.sSlaveId === slaveItem.sId && item.sType === '2');
+ }
+ await materialsFilterData.forEach(async (materialsItem) => {
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ if ((!commonUtils.isEmpty(materialsRow.dProductQty) && materialsRow.dProductQty !== materialsRow.dSrcQty) ||
+ (!commonUtils.isEmpty(materialsRow.dAuxiliaryQty) && materialsRow.dAuxiliaryQty !== materialsRow.dSrcAuxiliaryQty)) {
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty';
+ commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, materialsRow);
+ }
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sSlaveId = slaveRow.sId;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ }
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ if (processAssignField !== '') {
+ if (commonUtils.isNotEmptyObject(copyTo.processData)) {
+ let processFilterData = [];
+ const srcFormRoute = copyTo.srcFormRoute;
+ if (srcFormRoute === '/indexPage/quotationPack' || slaveItem.sFormId === '101251240115016076506222050') {
+ processFilterData = copyTo.processData.filter(item => item.sType === '3');
+ } else {
+ processFilterData = copyTo.processData.filter(item => item.sSlaveId === slaveItem.sId && item.sType === '3');
+ }
+ processFilterData.forEach((processItem) => {
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ if ((!commonUtils.isEmpty(processRow.dProductQty) && processRow.dProductQty !== processRow.dSrcQty) ||
+ (!commonUtils.isEmpty(processRow.dAuxiliaryQty) && processRow.dAuxiliaryQty !== processRow.dSrcAuxiliaryQty)) {
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'process';
+ const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty';
+ commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, processRow);
+ }
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sSlaveId = slaveRow.sId;
+ /* 通用报价单的合版部件名称换成新生成的控制表sId */
+ if (commonUtils.isNotEmptyObject(processRow.sCombinePartsName)) {
+ /* 新的sCombinePartsName赋值 */
+ let sCombinePartsNameStr = ''; /* 新生成合版部件名称 */
+ const sCombinePartsNameOldArr = processRow.sCombinePartsName.split(',');
+ if (commonUtils.isNotEmptyArr(sCombinePartsNameOldArr)) {
+ const controlFilterData = controlData.filter(item => sCombinePartsNameOldArr.includes(item.sOriginalId));
+ if (commonUtils.isNotEmptyArr(controlFilterData)) {
+ controlFilterData.forEach((item) => {
+ sCombinePartsNameStr += `${item.sId},`;
+ });
+ }
+ sCombinePartsNameStr = commonUtils.isNotEmptyObject(sCombinePartsNameStr) ? sCombinePartsNameStr.substr(0, sCombinePartsNameStr.length - 1) : '';
+ processRow.sCombinePartsName = sCombinePartsNameStr;
+ }
+ }
+ processData.push(processRow);
+ });
+ }
+ }
+ /* 颜色表 */
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ if (colorAssignField !== '') {
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+ if (!commonUtils.isEmpty(masterData.sTestStandardId)) {
+ const dataUrl = `${commonConfig.server_host}eleteamemployee/getObtainInspectionStandards?sModelsId=${sModelsId}&sParentId=${masterData.sTestStandardId}`;
+ const dataReturn = (await commonServices.getService(this.props.app.token, dataUrl)).data;
+ const slaveDelData = [];
+ if (dataReturn.code === 1) {
+ const returnSlaveData = dataReturn.dataset.rows;
+ slaveData.forEach((item) => {
+ item.handleType = 'del';
+ slaveDelData.push(item);
+ });
+ slaveData = [];
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'sTestStandardName');
+ const slaveConfig = commonUtils.isEmptyObject(config) ? {} : config.slaveConfig;
+ if (!isWait) {
+ masterConfig = this.props.slaveConfig;
+ }
+ const iSqlIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sActValue');
+ returnSlaveData.forEach((item, iIndex) => {
+ let tableDataRow = commonFunc.getDefaultData(config.slaveConfig, {});
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.iOrder = iIndex;
+ if (iConfigIndex > -1) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(masterConfig.gdsconfigformslave[iConfigIndex].sAssignField, item, newCopyTo) }; // 取赋值字段
+ const sTestReference = tableDataRow.sTestReference;
+ const sParamObj = {};
+ if (commonUtils.isNotEmptyObject(sTestReference)) {
+ if (sTestReference.indexOf('|') >= 0) {
+ sTestReference.split('|').forEach((itemField) => {
+ sParamObj[itemField] = itemField;
+ });
+ tableDataRow.sParamDropDownsActValue = sParamObj;
+ if (iSqlIndex > -1) {
+ slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = 'sql';
+ } else {
+ slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = '';
+ }
+ }
+ }
+ }
+ slaveData.push(tableDataRow);
+ });
+ }
+ }
+ }
+ if (sModelsType === 'purchase/purchaseOrder' && !commonUtils.isEmpty(copyTo) && commonUtils.isNotEmptyArr(copyTo.copyOtherData)) {
+ const copyToDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.detail`.toLowerCase());
+ const detailAssignField = commonUtils.isNotEmptyArr(copyToDetailConfig) ? copyToDetailConfig[0].sAssignField : '';
+ if (detailAssignField !== '') {
+ const copyDetail = copyTo.copyOtherData.filter(item => item.name === 'detail')[0];
+ const detail = copyDetail.data;
+ detail.forEach((detailItem) => {
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.detail = detailItem;
+ let tempDetail = commonFunc.getDefaultData(config.orderDetailConfig, newCopyTo); // 取默认值
+ tempDetail = { ...tempDetail, ...commonFunc.getAssignFieldValue(detailAssignField, detailItem, newCopyTo) }; // 取赋值字段
+ const iIndex = slaveData.findIndex(slaveItem => slaveItem.sMaterialsId + slaveItem.sMaterialsStyle === detailItem.sMaterialsGS);
+ if (iIndex !== -1) {
+ slaveData[iIndex].sWorkOrderNo = commonUtils.isEmptyObject(slaveData[iIndex].sWorkOrderNo) ? detailItem.sWorkOrderNo : `${slaveData[iIndex].sWorkOrderNo},${detailItem.sWorkOrderNo}`;
+ }
+ tempDetail.handleType = 'add';
+ tempDetail.sId = commonUtils.createSid();
+ tempDetail.sParentId = masterData.sId;
+ orderDetailData.push(tempDetail);
+ });
+ }
+ }
+ /* 剔除订单到收款单,费用分摊单据新增空行 */
+ if (slaveData.length === 0 && commonUtils.isNotEmptyObject(configNew.slaveConfig) && this.props.sModelsType !== 'cashier/receipt' && this.props.sModelsType !== 'cashier/payment' && this.props.sModelsType !== 'cost/cosexpenseshare'
+ && sModelsType !== 'sales/salesInvoice' && sModelsType !== 'purchase/purchaseInvoice' && sModelsType !== 'purchase/outsideInvoice') {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = slaveData;
+ const tableDataRowAdd = commonFunc.getDefaultData(configNew.slaveConfig, allTableData);
+ tableDataRowAdd.handleType = 'add';
+ tableDataRowAdd.sId = commonUtils.createSid();
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 1;
+ slaveData.push(tableDataRowAdd);
+ }
+ if (sModelsType === 'sales/salesSgoods') { /* 送货单中如果只有一个仓库,默认带这个仓库 */
+ // const sWareHouseNameDropDown = commonUtils.getStoreDropDownData(sModelsId, 'master', 'sWareHouseName');
+ let sWareHouseNameDropDown;
+ const masterIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWareHouseName');
+ if (masterIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[masterIndex]);
+ sWareHouseNameDropDown = sqlDropDownData.dropDownData;
+ }
+ if (commonUtils.isNotEmptyArr(sWareHouseNameDropDown) && sWareHouseNameDropDown.length === 1) {
+ const addStata = {};
+ addStata.sWareHouseId = sWareHouseNameDropDown[0].sId;
+ addStata.sWareHouseNo = sWareHouseNameDropDown[0].sNo;
+ addStata.sWareHouseName = sWareHouseNameDropDown[0].sName;
+ addStata.sLocationId = sWareHouseNameDropDown[0].sLocationId;
+ addStata.sLocationNo = sWareHouseNameDropDown[0].sLocationNo;
+ addStata.sLocationName = sWareHouseNameDropDown[0].sLocationName;
+ addStata.sWareHouseLocationId = sWareHouseNameDropDown[0].sWareHouseLocationId;
+ addStata.sWareHouseLocationNo = sWareHouseNameDropDown[0].sWareHouseLocationNo;
+ addStata.sWareHouseLocationName = sWareHouseNameDropDown[0].sWareHouseLocationName;
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWareHouseName');
+ if (iIndex > -1) {
+ masterData = { ...masterData, ...addStata }; /* 主表赋默认仓库 */
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) { /* 从表赋默认仓库 */
+ slaveData.forEach((item, index) => {
+ slaveData[index] = { ...item, ...addStata };
+ });
+ }
+ }
+ }
+ }
+ // if (sModelsType === 'cost/cosexpenseshare') { /* 新建费用分摊单据,从表的数据自动获取 */
+ // const { sModelsId } = this.props;
+ // const url = `${commonConfig.server_host}costCenter/getCostCenterData?sModelsId=${sModelsId}`;
+ // const dataReturn = (await commonServices.postValueService(app.token, {}, url)).data;
+ // if (dataReturn.code === 1) {
+ // /* 获取数据集 */
+ // const { rows } = dataReturn.dataset;
+ // rows.forEach((row) => {
+ // const tableDataRowAdd = row;
+ // tableDataRowAdd.handleType = 'add';
+ // tableDataRowAdd.sId = commonUtils.createSid();
+ // tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ // tableDataRowAdd.key = tableDataRowAdd.sId;
+ // tableDataRowAdd.bDefault = false;
+ // slaveData.push(tableDataRowAdd);
+ // });
+ // } else { /* 失败 */
+ // this.props.getServiceError(dataReturn);
+ // return [];
+ // }
+ // }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ const state = {
+ masterData,
+ slaveData,
+ slaveTotal: [],
+ slaveSelectedRowKeys: [],
+ checkData: [],
+ checkSelectedRowKeys: [],
+ searchUpDownData: {},
+ enabled: true,
+ controlData,
+ materialsData,
+ processData,
+ dailyData,
+ packData,
+ colorData,
+ orderDetailData,
+ ...treeState,
+ processSelectedRowKeys: [],
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ calculated: false,
+ };
+ state.sUseInfo = '';
+ if (isWait) {
+ return state;
+ } else {
+ this.props.onSaveState(state);
+ return true;
+ }
+ };
+ /** 点击修改按钮操作 */
+ handleEdit = async () => {
+ const {
+ masterConfig, slaveConfig, checkConfig, currentId, app, masterData, dispatch, billnosetting,
+ } = this.props;
+ const { userinfo, systemData } = app;
+ const { sMakePerson } = masterData; /* 本单据制单人 */
+ const { sUserName, sType } = userinfo;/* 登录用户 */
+ // 判断是否全局都有配置
+ const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson');
+ let sValue = 0;
+ if (iIndex > -1) {
+ sValue = systemData[iIndex].sValue; // 全局配置的值; 1为开启:所有人都可以编辑,0是关闭;
+ }
+ const bModify = billnosetting.bModify; /* 勾选了可修改及代表普通用户非制单人可以修改单据 */
+ if (!+sValue && !bModify && sType !== 'sysadmin' && sUserName !== sMakePerson) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoUpdateByNoMakePerson'));
+ this.props.onSaveState({
+ loading: false
+ });
+ 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');
+ 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);
+ };
+ /** 表单回带 */
+ handleForm = (form) => {
+ this.form = form;
+ };
+ /** toolbar审核(消审) */
+ handleAudit = async (flag) => {
+ /* 待用数据声明 */
+ const { masterData, gdsformconst } = this.props;
+ if (!commonUtils.isEmpty(masterData)) {
+ /* 作废订单不能审核 */
+ if (masterData.bInvalid) {
+ message.warning(gdsformconst.filter(item => (item.sName === 'sToVoid'))[0].showName);
+ return '';
+ }
+ /** 数据审核 */
+ await this.dataAudit(flag);
+ } else {
+ this.props.onSaveState({
+ loading: false,
+ });
+ }
+ };
+
+ /** 数据审核 */
+ dataAudit = async (flag, tmpCheck, isWait) => {
+ message.destroy();
+ /* 待用数据声明 */
+ const {
+ sModelsId, masterData, app, masterConfig, slaveConfig, checkConfig, token, sModelsType, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, slaveData, orderDetailConfig,
+ } = this.props;
+ const sSlaveIdArray = [];
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item) => {
+ sSlaveIdArray.push(commonUtils.isNotEmptyObject(item.sId) ? item.sId : item.sSlaveId);
+ });
+ }
+ const slaveId = sSlaveIdArray.toString();
+ /* 数据参数 */
+ const value = {
+ sClientType: '1',
+ paramsMap: {
+ iFlag: flag,
+ iTmpCheck: commonUtils.isEmptyNumber(tmpCheck) ? 0 : tmpCheck,
+ sFormGuid: sModelsId,
+ sGuid: masterData.sId,
+ sSlaveId: slaveId,
+ sBillNo: commonUtils.isNotEmptyObject(masterData.sBillNo) ? masterData.sBillNo : '',
+ },
+ };
+ let clearFlag = false;
+ if (sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder')) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ for (const item of slaveData) {
+ if (commonUtils.isNotEmptyStr(item.sProductInfo)) {
+ clearFlag = true;
+ break;
+ }
+ }
+ } else {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ /* 数据审核 */
+ const url = `${commonConfig.server_host}business/doExamine?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (isWait) {
+ return returnData;
+ } else {
+ /* 接收返回值 */
+ const check = commonFunc.showMessage(app.commonConst, 'BtnExamine');/* 审核 */
+ const BtnCancelExamine = commonFunc.showMessage(app.commonConst, 'BtnCancelExamine');/* 销审 */
+ if (returnData.code === 1) { /* 成功 */
+ this.props.onSaveState({
+ loading: false,
+ });
+ if (flag === 1) {
+ /* 审核 */
+ if (clearFlag && (sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder'))) {
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductName', []);
+ }
+ let outData;
+ if (commonUtils.isNotEmptyObject(returnData.dataset)) {
+ outData = returnData.dataset.rows[0].dataSet.outData;
+ }
+ if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
+ const sReturnArray = outData[0].sReturn.split('|');
+ if (outData[0].sReturn.split('-').length < 2) {
+ // 正常业务提示,非审核模板
+ // if (this.props.app.currentPane.refresh !== undefined) {
+ // this.props.app.currentPane.refresh();
+ // }
+ message.error(check + outData[0].sReturn);
+ return;
+ }
+ const checkConditions = [];
+ let checkPersonData = {};
+ sReturnArray.forEach((item) => {
+ const checkCondition = item.split('-')[2];
+ const iIndex = checkConditions.findIndex(itemCondition => itemCondition.condition === checkCondition);
+ if (iIndex <= -1) {
+ checkConditions.push({
+ key: commonUtils.createSid(),
+ condition: checkCondition,
+ });
+ }
+ });
+ const sCheckModelId = sReturnArray[0].split('-')[1];
+ if (commonUtils.isNotEmptyStr(sCheckModelId)) {
+ const urlCheck = `${commonConfig.server_host}checkModel/getUserListByModelId/${sCheckModelId}?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.getService(token, urlCheck)).data;
+ if (dataReturn.code === 1) {
+ checkPersonData = dataReturn.dataset.rows;
+ checkPersonData.forEach((item) => {
+ item.key = commonUtils.createSid();
+ });
+ this.props.onSaveState({
+ checkConditions, checkPersonData, sCheckModelId, visible: true,
+ });
+ return true;
+ } else { /* 失败 */
+ this.props.getServiceError({ msg: check + dataReturn });
+ }
+ }
+ } else {
+ message.success(check + returnData.msg);
+ }
+ } else {
+ /* 消审 */
+ const { outData } = returnData.dataset.rows[0].dataSet;
+ if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
+ message.error(outData[0].sReturn);
+ } else {
+ // if (this.props.app.currentPane.refresh !== undefined) {
+ // this.props.app.currentPane.refresh();
+ // }
+ message.success(BtnCancelExamine + returnData.msg);
+ }
+ }
+ await this.handleGetData(masterConfig, slaveConfig, checkConfig);
+ if ((sModelsType.includes('sales/salesOrder') || sModelsType === 'manufacture/workOrder3') && !commonUtils.isEmpty(controlConfig)) {
+ await this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ } else if (sModelsType === 'purchase/purchaseOrder') {
+ await this.handleGetOneMemoData('orderDetail', orderDetailConfig);
+ }
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ this.props.onSaveState({
+ loading: false,
+ });
+ }
+ return true;
+ }
+ };
+
+ /** toolbar保存 */
+ handleSaveData = async (params) => {
+ const {
+ // eslint-disable-next-line no-unused-vars
+ token, sModelsId, currentId, masterData, masterConfig, slaveConfig, checkConfig, billnosetting, app, sModelsType, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, orderDetailConfig, dispatch,
+ } = this.props;
+ const { userinfo } = app;
+ const { copyTo } = app.currentPane;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const BtnSave = commonFunc.showMessage(app.commonConst, 'BtnSave');/* 保存 */
+ params.optName = BtnSave;
+ const returnData = await commonBusiness.saveData({ token, value: params, sModelsId });
+ if (commonUtils.isNotEmptyObject(returnData)) {
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ onSendSocketMessage('release', 'noAction', currentId, userinfo.sId, null, null);
+ this.props.onSaveState({
+ enabled: false, currentId: masterData.sId,
+ });
+ // 保存后更新panes,currentPane的checkedId,防止浏览器刷新时重新又变成新增。
+ if (sModelsType !== 'commonOeeBill') {
+ const iPaneIndex = app.panes.findIndex(item => item.key === app.currentPane.key);
+ app.panes[iPaneIndex].checkedId = masterData.sId;
+ app.currentPane.checkedId = masterData.sId;
+ dispatch({ type: 'app/savePanesAndCurrentPane', payload: { panes: app.panes, currentPane: app.currentPane } });
+ }
+
+ if (false) {
+ await this.handleAudit(1);
+ } else {
+ await this.handleGetData(masterConfig, slaveConfig, checkConfig);
+ if ((sModelsType.includes('sales/salesOrder') || sModelsType.includes('sales/autoView') || sModelsType.includes('manufacture/workOrder')) && !commonUtils.isEmpty(controlConfig)) {
+ await this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig, masterConfig);
+ } else if (sModelsType === 'purchase/purchaseOrder') {
+ await this.handleGetOneMemoData('orderDetail', orderDetailConfig);
+ }
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ return true;
+ } else {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return false;
+ }
+ };
+ /** toolbar校验保存 */
+ handleValidateSave = () => {
+ this.form.validateFields(async (err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.error(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, slaveConfig, slaveData, slaveDelData, app, sModelsType, controlConfig, controlData, controlDelData, materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig, colorData, colorDelData, packConfig, packData, packDelData, orderDetailConfig, orderDetailData, orderDetailDelData,
+ } = this.props;
+ let { masterData } = this.props;
+ if (sModelsType !== 'commonBill/onlyMaster' && commonUtils.isEmptyArr(slaveData) && !sModelsType.includes('sales/salesInvoice') && !sModelsType.includes('purchase/purchaseInvoice') && !sModelsType.includes('purchase/outsideInvoice') && sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment'
+ && !sModelsType.includes('cashier/receipt') && !sModelsType.includes('cashier/payment') && !sModelsType.includes('purchase/purchaseEnquiry')) {
+ message.error(commonFunc.showMessage(app.commonConst, 'slaveNotNull')); // 从表不能为空!
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ // && sModelsType === 'materialsStock/productionmaterialsadjust'
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ let flag = true;
+ for (const item of slaveData) {
+ if (sModelsType === 'materialsStock/productionmaterialsadjust') {
+ if (commonUtils.isNotEmptyStr(item.sWareHouseId)) {
+ if (masterData.sWareHouseId === item.sWareHouseId && masterData.sWarehouseLocationId === item.sWarehouseLocationId && masterData.sLocationId === item.sLocationId) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NotSameMateMaterialWarehouse'));/* 材料调拨原仓库与调入仓库不能一致 */
+ flag = false;
+ break;
+ }
+ }
+ }
+ // {"paper":"纸张","finished":"成品","half_finished":"半成品","accessories":"辅料","corrugated":"瓦楞"}
+ if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ if (sModelsType.includes('sales/')) {
+ message.error(item.sProductName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sProductName}"的规格 */
+ } else {
+ message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ }
+ flag = false;
+ break;
+ }
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(slaveData) && sModelsType === 'materialsStock/productionmaterials') {
+ let flag = true;
+ const iIndex = app.systemData.findIndex(item => item.sName === 'CkxMaterialsStockLimit');
+ if (iIndex > -1) {
+ const bCkxMaterialsStockLimit = app.systemData[iIndex].sValue;
+ if (bCkxMaterialsStockLimit === '1') {
+ flag = await this.handleEleMaterialsStoreCurrQty(slaveData);
+ }
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ if (sModelsType === 'purchase/purchaseEnquiry') {
+ delete masterData.maxBillNo;
+ }
+ if (sModelsType === 'cashier/receipt' || sModelsType === 'cashier/payment') {
+ let flag = true;
+ if (masterData.sSettlementId === 'bank') {
+ if (commonUtils.isEmptyStr(masterData.sBankId) || commonUtils.isEmptyStr(masterData.sBankAccount)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'requiredsBankAccount'));/* 收/付款条件为银行时,银行、银行账号为必填项 */
+ flag = false;
+ }
+ }
+ if (masterData.sSettlementId === 'bill') {
+ if (commonUtils.isEmptyStr(masterData.sBankId) || commonUtils.isEmptyStr(masterData.sInvoiceNo)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'requiredsInvoiceNo'));/* 收/付款条件为票据时,银行、票据号码为必填项 */
+ flag = false;
+ }
+ }
+ let dslaveTotalMoney = 0;
+ let flagCheckSave = true;
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) {
+ for (const item of slaveData) {
+ if (item.handleType !== 'del') {
+ if (commonUtils.isNotEmptyNumber(item.dTotalMoney)) {
+ dslaveTotalMoney += item.dTotalMoney;
+ }
+ const dBalanceMoney = commonUtils.isNull(item.dBalanceMoney, 0);
+ const dTotalMoney = commonUtils.isNull(item.dTotalMoney, 0);
+ const dRoundingMoney = commonUtils.isNull(item.dRoundingMoney, 0);
+ const dCount = dRoundingMoney + dTotalMoney;
+ let bWarning = false;
+ if (dBalanceMoney > 0 || dBalanceMoney === 0) {
+ if (dCount > dBalanceMoney) {
+ bWarning = true;
+ }
+ } else if (dCount < dBalanceMoney) {
+ bWarning = true;
+ }
+ if (bWarning) {
+ if (sModelsType.includes('cashier/receipt')) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoOverBalanceMoneyReceipt'));/* 总金额不能超过未收/付款宽金额 */
+ } else if (sModelsType.includes('cashier/payment')) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoOverBalanceMoneyPay'));/* 总金额不能超过未收/付款宽金额 */
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ const flatDel = commonUtils.isNull(item.dTotalMoney, 0) !== 0 || commonUtils.isNull(item.dRoundingMoney, 0) !== 0;
+ if (!flatDel) {
+ item.handleType = undefined; /* 付款单和收款单,去掉收款和付款金额为0的记录 */
+ } else {
+ flagCheckSave = false;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0 && flagCheckSave) {
+ message.warning('表格内容不能为空![dTotalMoney或dRoundingMoney必须大于0]');
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ const dPmoney = this.props.getFloatNum('dProductMoney');
+ dslaveTotalMoney = commonUtils.convertFixNum(dslaveTotalMoney, dPmoney);/* 取系统设定小数位 */
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyNumber(masterData.dTotalMoney) && commonUtils.isNotEmptyNumber(masterData.dAdvanceMoney) && commonUtils.convertFixNum(masterData.dTotalMoney - masterData.dAdvanceMoney, dPmoney) !== dslaveTotalMoney) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NotSameTotalMoney'));/* 主从表总金额不一致 */
+ flag = false;
+ }
+ /* 收付款保存前,看到从表没数据,预收勾上时,自动调用一下分摊 */
+ if (commonUtils.isEmptyArr(slaveData)) {
+ masterData = this.handleShare();
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ /* 销售发票、采购发票、发外发票 ,去掉总金额+舍入为0的数据 */
+ if (sModelsType === 'sales/salesInvoice' || sModelsType === 'purchase/purchaseInvoice' || sModelsType === 'purchase/outsideInvoice') {
+ let flagCheckSave = true;
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) {
+ for (const item of slaveData) {
+ const flatDel = commonUtils.isNull(item.dTotalMoney, 0) !== 0 || commonUtils.isNull(item.dRoundingMoney, 0) !== 0;
+ if (!flatDel) {
+ item.handleType = undefined; /* 付款单和收款单,去掉收款和付款金额为0的记录 */
+ } else {
+ flagCheckSave = false;
+ }
+ }
+ }
+ /* 收付款保存前,看到从表没数据,预收勾上时,自动调用一下分摊 */
+ if (commonUtils.isEmptyArr(slaveData)) {
+ masterData = this.handleShare();
+ }
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0 && flagCheckSave) {
+ message.warning('表格内容不能为空![dTotalMoney或dRoundingMoney必须大于0]');
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ if (sModelsType !== 'commonBill/onlyMaster' && sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment' && !sModelsType.includes('purchase/purchaseEnquiry')) {
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ }
+ if (sModelsType.includes('sales/salesOrder') || sModelsType.includes('sales/autoView')) {
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ const flag = true;
+ // for (const item of materialsData) { /* 销售订单中的物料规格不是必填项,只有工单里才要判断必填 */
+ // if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ // message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写规格 */
+ // flag = false;
+ // break;
+ // }
+ // }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(controlConfig)) {
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ }
+ if (commonUtils.isNotEmptyObject(materialsConfig)) {
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ }
+ if (commonUtils.isNotEmptyObject(processConfig)) {
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ }
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ }
+ }
+ if (sModelsType === 'purchase/purchaseOrder' && !commonUtils.isEmpty(orderDetailConfig)) {
+ data.push(commonBusiness.mergeData('detail', orderDetailConfig.sTbName, orderDetailData, orderDetailDelData));
+ }
+ this.handleSaveData({ data, sClientType: '1', sSysLogSrcId: masterData.sId });
+ }
+ });
+ };
+
+ /* 切换作废状态 */
+ handleOkChangeInvaild = async (props) => {
+ const {
+ sModelsId, masterData, masterConfig, handleType,
+ } = props;
+ const value = {
+ sClientType: '1',
+ sId: [masterData.sId],
+ sTableName: masterConfig.sTbName,
+ handleType,
+ };
+ const url = `${commonConfig.server_host}checkModel/updatebInvalid?sModelsId=${sModelsId}`;
+ const { data } = await commonServices.postValueService(props.app.token, value, url);
+ if (data.code === 1) {
+ message.success(data.msg);
+ masterData.bInvalid = handleType === 'toVoid'; /* 作废状态 */
+ props.onSaveState({ masterData });
+ /* 审核(消审)后刷新跳转路由数据(commonList)的数据 */
+ if (props.app.currentPane.refresh !== undefined) {
+ props.app.currentPane.refresh();
+ }
+ } else {
+ props.getServiceError(data);
+ }
+ };
+
+ /* 作废、取消作废的公用函数 */
+ handleInvalid = (obj) => {
+ const props = { ...this.props, ...this.state, ...obj };
+ const onOkInvaild = this.handleOkChangeInvaild;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkInvaild(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 单据页上查下查跳转页面 */
+ handleSearchUpDown = async (sId, sActiveId) => {
+ /* 待用数据声明 */
+ const { dispatch, sTabId } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ sParentId: sTabId, /* 父页面编号 */
+ checkedId: sId,
+ },
+ });
+ };
+
+ /* 上查下查三级菜单 在上一条下一条时必须清除searchUpDownData */
+ handleSearchUpDownThird = async (upDownKey) => {
+ /* 待用数据声明 */
+ const { masterConfig, searchUpDownData: searchUpDownDataOld } = this.props;
+ /** 获取sqlCondition参数:{sSqlCondition,sId} */
+ const searchUpDownData = commonUtils.isEmptyObject(searchUpDownDataOld) ? {} : { ...searchUpDownDataOld };
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ const searchUpDownConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(`${upDownKey}`));
+ for (const item of searchUpDownConfig) {
+ if (commonUtils.isEmptyArr(searchUpDownData[item.sControlName])) {
+ searchUpDownData[item.sControlName] = await this.getSearchUpDownData(item);
+ }
+ }
+ this.props.onSaveState({ searchUpDownData });
+ }
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig,
+ masterData,
+ slaveData,
+ controlData,
+ materialsData,
+ processData,
+ packData,
+ app,
+ token,
+ sModelsId,
+ formRoute,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.processData = processData;
+ copyTo.packData = packData;
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ },
+ });
+ }
+
+ /* 复制从产品工艺卡列表 */
+ // handleCopyFrom = async (obj) => {
+ // /* 待用数据声明 */
+ // const {
+ // slaveData, masterData, masterConfig,
+ // } = this.props;
+ // /* 根据sql条件进行判断 */
+ // const buttonConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.showName !== '' && item.sControlName === obj.copyFromKey);
+ // if (commonUtils.isNotEmptyArr(buttonConfig) && commonUtils.isNotEmptyObject(buttonConfig[0].sSqlCondition) && buttonConfig[0].sSqlCondition.includes('slave.')) {
+ // if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyStr(slaveData[0].sCustomerId) && commonUtils.isEmptyStr(masterData.sCustomerId)) {
+ // message.error(commonFunc.showMessage(this.props.app.commonConst, 'pleaseInputCustomer'));/* 请填写客户 */
+ // return;
+ // }
+ // }
+ // const { token } = this.props;
+ // const url = `${commonConfig.server_host}/gdsmodule/getGdsmoduleById/${obj.copyFromSActiveId}?sModelsId=${obj.copyFromSActiveId}`;
+ // const dataReturn = (await commonServices.getService(token, url)).data;
+ // if (dataReturn.code === 1) {
+ // const returnData = dataReturn.dataset.rows[0];
+ // if (obj.copyFromKey.includes('customizeFormInfo')) { /* 复制从自定义窗体 */
+ // this.props.onSaveState({ copyFromChooseVisible: true, copyFromChooseData: returnData, copyFromKey: obj.copyFromKey });
+ // } else {
+ // this.props.onSaveState({ productProcessInfoChooseVisible: true, productProcessInfoChooseData: returnData, productProcessInfoCopyFromKey: obj.copyFromKey });
+ // }
+ // } else {
+ // this.props.getServiceError(dataReturn);
+ // }
+ // };
+
+ handleCopyFrom = async (obj) => {
+ const {
+ slaveData, masterData, masterConfig,
+ } = this.props;
+ this.copyName = obj.name;
+ /* 根据sql条件进行判断 */
+ const buttonConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.showName !== '' && item.sControlName === obj.copyFromKey);
+ if (commonUtils.isNotEmptyArr(buttonConfig) && commonUtils.isNotEmptyObject(buttonConfig[0].sSqlCondition) && buttonConfig[0].sSqlCondition.includes('slave.')) {
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyStr(slaveData[0].sCustomerId) && commonUtils.isEmptyStr(masterData.sCustomerId)) {
+ message.error(commonFunc.showMessage(this.props.app.commonConst, 'pleaseInputCustomer'));/* 请填写客户 */
+ return;
+ }
+ }
+ const { token } = this.props;
+ const url = `${commonConfig.server_host}/gdsmodule/getGdsmoduleById/${obj.copyFromSActiveId}?sModelsId=${obj.copyFromSActiveId}`;
+ const dataReturn = (await commonServices.getService(token, url)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ if (obj.copyFromKey.includes('customizeFormInfo')) { /* 复制从自定义窗体 */
+ this.props.onSaveState({ copyFromChooseVisible: true, copyFromChooseData: returnData, copyFromKey: obj.copyFromKey });
+ } else {
+ this.props.onSaveState({ productProcessInfoChooseVisible: true, productProcessInfoChooseData: returnData, productProcessInfoCopyFromKey: obj.copyFromKey });
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ sModelsId, app, currentIndexFlag, currentPageNo,
+ } = this.props;
+ const { currentPane, token } = app;
+ const {
+ pages, sFilterOrderBy, bFilter, sListFormmasterId, currentIndex,
+ } = currentPane;
+ let currentPosition = currentIndexFlag ? currentPageNo : commonUtils.isEmptyObject(pages) ? 1 : (((pages.current - 1) * commonConfig.pageSize) + Number.parseInt(currentIndex, 10)) + 1;
+ if (currentIndex === undefined) {
+ currentPosition = 1;
+ }
+ if (handleType === 'first') {
+ currentPosition = 1;
+ } else if (handleType === 'end') {
+ currentPosition = pages.total;
+ }
+ if (!commonUtils.isNum(currentPosition)) { // 如果是列表直接点增加,就跳到第一条去
+ currentPosition = 1;
+ }
+
+ const value = {
+ sClientType: '1', sFilterOrderBy, bFilter, sListFormmasterId, currentPosition, handleType, iCountSum: pages.total,
+ };
+ const url = `${commonConfig.server_host}business/getBusinessDataByIndex?sModelsId=${sModelsId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (data.code === 1) {
+ /* 数据查询成功 */
+ const returnData = data.dataset.rows[0];
+ const { masterConfig, slaveConfig, checkConfig } = this.props;
+ this.props.onSaveState({
+ currentIndexFlag: true,
+ currentPageNo: returnData.currentPosition,
+ currentId: returnData.sId,
+ searchUpDownData: {},
+ slaveSelectedRowKeys: [],
+ });
+ this.handleGetData(masterConfig, slaveConfig, checkConfig);
+ return true;
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ return false;
+ }
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const that = this;
+ const {
+ currentId, masterConfig, slaveConfig, checkConfig, app,
+ } = this.props;
+ const { userinfo } = app;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const { copyTo } = app.currentPane;
+ confirm({
+ title: obj.title,
+ onOk() {
+ // 解决新建页签sid为空的bug
+ if (!currentId) {
+ const { panes, currentPane } = that.props.app;
+ const currentPaneIndex = panes.findIndex(item => item.key === currentPane.key);
+ const newPanes = [];
+ if (currentPaneIndex > 0) {
+ panes.forEach((item, index) => {
+ if (index !== currentPaneIndex) {
+ newPanes.push(item);
+ }
+ });
+ that.props.dispatch({ type: 'app/removePane', payload: { changePanes: newPanes, currentPane: panes[currentPaneIndex - 1] } });/* 关闭当前页签 */
+ }
+ /* 复制到新增页签取消时 关闭页签 并清除操作记录 */
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData, srcFormRoute, copyOtherData } = copyTo;
+ if (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes('materialRequirementsPlanning')) { /* 物料需求计划用sWorkOrderMaterialId作为唯一键 */
+ const sIdArray = [];
+ if (commonUtils.isNotEmptyArr(copyOtherData) && copyOtherData[0].name === 'detail' && commonUtils.isNotEmptyArr(copyOtherData[0].data)) {
+ const slaveDetailData = copyOtherData[0].data;
+ slaveDetailData.forEach((item) => {
+ const redisKey = item.sWorkOrderMaterialId;
+ sIdArray.push(redisKey);
+ });
+ } else { /* 变更单、采购申请单 */
+ slaveData.forEach((item) => {
+ const redisKey = item.sWorkOrderMaterialId;
+ sIdArray.push(redisKey);
+ });
+ }
+
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ } else if (commonUtils.isNotEmptyArr(slaveData)) {
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ }
+
+ return;
+ }
+ //
+ onGetDataOk(masterConfig, slaveConfig, checkConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ onSendSocketMessage('release', 'noAction', currentId, userinfo.sId, null, null);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, sModelsType, masterConfig, masterData, slaveConfig, checkConfig, orderDetailConfig, app,
+ } = props;
+ const { userinfo, systemData } = app;
+ const { sMakePerson } = masterData; /* 本单据制单人 */
+ const { sUserName, sType } = userinfo;/* 登录用户 */
+ const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson');
+ if (iIndex > -1) {
+ const sValue = systemData[iIndex].sValue;
+ if (sValue === '0') { /* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */
+ if (sType !== 'sysadmin' && sUserName !== sMakePerson) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoDelByNoMakePerson'));
+ return;
+ }
+ }
+ }
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ },
+ };
+ const sSlaveTable = [];
+ if (commonUtils.isNotEmptyObject(slaveConfig)) {
+ sSlaveTable.push({
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ });
+ }
+ if (commonUtils.isNotEmptyObject(checkConfig)) {
+ sSlaveTable.push({
+ tableName: checkConfig.sTbName,
+ relationName: 'sParentId',
+ });
+ }
+ if (sModelsType === 'purchase/purchaseOrder') {
+ sSlaveTable.push({
+ tableName: orderDetailConfig.sTbName,
+ relationName: 'sParentId',
+ });
+ }
+ value.sSlaveTable = sSlaveTable;
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ if (sModelsType !== 'commonOeeBill') {
+ this.handleDelDataSuccess(props);
+ } else {
+ message.info('删除成功!');
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 数据删除成功跳转到新路由即pane */
+ handleDelDataSuccess = (props) => {
+ const { app } = props;
+ let { panes, currentPane } = app;
+ /* 删除单据后退出当前路由后,标签panes变化后的集合 */
+ panes = panes.filter(pane => pane.key !== currentPane.key);
+ /* 跳转到panes集合的最后一个路由,因为panes集合一定含有主页路由所以panes的集合大于等于1 */
+ currentPane = panes[panes.length - 1];
+ this.props.onRemovePane(panes, currentPane);
+ };
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, isWait) => {
+ /* 从CommonBase获取默认参数 */
+ const {
+ masterData, masterConfig, sModelsType, app, [`${name}Pagination`]: tablePagination,
+ } = this.props;
+ let { [`${name}Data`]: tableData } = this.props;
+ tableData = commonUtils.isEmptyObject(tableData) ? [] : tableData;
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ /* 添加行的业务处理拿出去 */
+ if (sModelsType.includes('sales/')) {
+ if (commonUtils.isEmptyStr(masterData.sCustomerId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => ((item.sName === 'sCustomerId' || item.sName === 'sCustomerNo' || item.sName === 'sCustomerName') && item.bVisible));
+ if (iIndex > -1) {
+ const { showName } = masterConfig.gdsconfigformslave[iIndex];
+ message.warn(showName + commonFunc.showMessage(app.commonConst, 'isNotNull')); // 不能为空
+ return;
+ }
+ }
+ }
+ tableDataRow.sWareHouseId = masterData.sWareHouseId;
+ tableDataRow.sWareHouseNo = masterData.sWareHouseNo;
+ tableDataRow.sWareHouseName = masterData.sWareHouseName;
+ tableDataRow.sLocationId = masterData.sLocationId;
+ tableDataRow.sLocationNo = masterData.sLocationNo;
+ tableDataRow.sLocationName = masterData.sLocationName;
+ tableDataRow.sWareHouseLocationId = masterData.sWareHouseLocationId;
+ tableDataRow.sWareHouseLocationNo = masterData.sWareHouseLocationNo;
+ tableDataRow.sWareHouseLocationName = masterData.sWareHouseLocationName;
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ }
+ };
+
+ /** 复制 */
+ handleTableCopy = (name, isWait, isTree) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination, sModelsType,
+ } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sSrcSlaveId = '';
+ tableDataRow.sSrcId = '';
+ tableDataRow.dSrcQty = null;
+ tableDataRow.rowTag = null;
+ tableDataRow.sOrderdetailUsed = '';
+ tableDataRow.sProductionUsed = '';
+ tableDataRow.sWorkOrderUsed = '';
+ tableDataRow.dWorkOrderQty = 0;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+
+ if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
+ tableDataRow.sMaterialsMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
+ tableDataRow.sProcessMemo = '';
+ }
+ if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = commonUtils.createSid();
+ tableDataRow.sId = newId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ let treeState = [];
+ if (sModelsType === 'sales/salesOrderPack') {
+ treeState = this.handleGetControlTreeData(tableData, true);
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, ...treeState });
+ }
+ }
+ }
+ }
+ };
+
+
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait, isTree) => {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, materialsData, [`${name}Pagination`]: tablePagination, sModelsType,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'slave') {
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ for (const sId of slaveSelectedRowKeys) {
+ const slaveDataIndex = slaveData.findIndex(item => item.sId === sId);
+ if (slaveDataIndex > -1) {
+ const slaveDataRow = JSON.parse(JSON.stringify(slaveData[slaveDataIndex]));
+ slaveDataRow.sId = commonUtils.createSid();
+ slaveDataRow.handleType = 'add';
+ slaveDataRow.key = slaveDataRow.sId;
+ const iOrderArr = [];
+ slaveData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ slaveDataRow.iOrder = commonUtils.isNotEmptyArr(slaveData) ? iOrderMax + 1 : 0;
+ slaveData.push(slaveDataRow);
+ if (sModelsType !== 'sales/salesOrderPack') {
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.filter(itemControl => itemControl.sSlaveId === sId).forEach((itemControl) => {
+ const tableDataRow = JSON.parse(JSON.stringify(itemControl));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sSlaveId = slaveDataRow.sId;
+ controlData.push(tableDataRow);
+ /* 部件表复制其材料表、工序表 */
+ materialsData.filter(item => item.sControlId === itemControl.sId && item.sType !== '2').forEach((item) => {
+ const materialsRow = JSON.parse(JSON.stringify(item));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ materialsRow.sSlaveId = tableDataRow.sSlaveId;
+ materialsData.push(materialsRow);
+ });
+ processData.filter(item => item.sControlId === itemControl.sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSlaveId = tableDataRow.sSlaveId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(controlData, processData);
+ });
+ }
+ if (commonUtils.isNotEmptyArr(materialsData)) { /* 订单从表复制全部 复制成品材料 */
+ materialsData.filter(item => item.sSlaveId === sId && item.sType === '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sSlaveId = slaveDataRow.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(processData)) { /* 订单从表复制全部 复制成品工序 */
+ processData.filter(item => item.sSlaveId === sId && item.sType === '3').forEach((processItem) => {
+ const processRow = JSON.parse(JSON.stringify(processItem));
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sSlaveId = slaveDataRow.sId;
+ processData.push(processRow);
+ });
+ }
+ }
+ }
+ this.props.onSaveState({
+ slaveData,
+ [`${name}Pagination`]: { ...tablePagination, total: slaveData.length, current: 9999 },
+ controlData,
+ materialsData,
+ processData,
+ });
+ }
+ }
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ /* 获取复制节点下的所有子节点 */
+ if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = commonUtils.createSid();
+ tableDataRow.sId = newId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ let treeState = [];
+ if (sModelsType === 'sales/salesOrderPack') {
+ treeState = this.handleGetControlTreeData(tableData, true);
+ }
+ /* 部件表复制其材料表、工序表 */
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((item) => {
+ const materialsRow = JSON.parse(JSON.stringify(item));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ materialsData.push(materialsRow);
+ });
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 },
+ materialsData,
+ processData,
+ ...treeState,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+ return tableDataRow;
+ };
+
+ handleConfigChangeByRules = (name, sFieldName, changeValue, sId, dropDownData, isWait, tableDataRow) => {
+ const {
+ [`${name}Data`]: tableData, sModelsType, sModelsId, token, app, [`${name}Config`]: tableConfig,
+ } = this.props;
+ console.log(name, sFieldName, changeValue, sId, dropDownData, isWait, tableData, sModelsType, sModelsId, token, app);
+ if (commonUtils.isNotEmptyObject(tableConfig) && tableConfig.gdsconfigformslave) {
+ const iIndex = tableConfig.gdsconfigformslave.findIndex(item => item.sName === sFieldName);
+ if (iIndex > -1) {
+ const sFiledConfig = tableConfig.gdsconfigformslave[iIndex];
+ if (commonUtils.isNotEmptyObject(sFiledConfig)) {
+ const sRulesJson = sFiledConfig.sButtonEnabled;
+ if (commonUtils.isNotEmptyObject(sRulesJson) && commonUtils.isJSON(sRulesJson)) {
+ const sRulesObj = JSON.parse(sRulesJson);
+ if (commonUtils.isNotEmptyObject(sRulesObj)) {
+ const { showColumn, hideColumn, condition } = sRulesObj;
+ if (commonUtils.isNotEmptyArr(condition)) {
+ let flag = false;
+ for (const item of condition) {
+ const {
+ bFilterName, bFilterCondition, bFilterValue,
+ } = item;
+ if (bFilterCondition === '>') {
+ if (tableDataRow[bFilterName] > bFilterValue) {
+ flag = true;
+ }
+ } else if (bFilterCondition === '=') {
+ if (tableDataRow[bFilterName] === bFilterValue) {
+ flag = true;
+ }
+ } else if (bFilterCondition === '<') {
+ if (tableDataRow[bFilterName] < bFilterValue) {
+ flag = true;
+ }
+ }
+ }
+ if (flag) {
+ if (commonUtils.isNotEmptyArr(showColumn)) {
+ for (const column of showColumn) {
+ const iIndex = tableConfig.gdsconfigformslave.findIndex(item => item.sName === column);
+ if (iIndex > -1) {
+ const sFiledObj = tableConfig.gdsconfigformslave[iIndex];
+ if (commonUtils.isNotEmptyObject(sFiledObj)) {
+ tableConfig.gdsconfigformslave[iIndex].bVisible = true;
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(hideColumn)) {
+ for (const column of hideColumn) {
+ const iIndex = tableConfig.gdsconfigformslave.findIndex(item => item.sName === column);
+ if (iIndex > -1) {
+ tableConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ }
+ // return tableConfig;
+ this.props.onSaveState({ [`${name}Config`]: tableConfig });
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait) => {
+ /* 从CommonBase获取默认参数 */
+ const {
+ [`${name}Data`]: tableData, sModelsType, sModelsId, token, app, slaveConfig,
+ } = this.props;
+ if (name === 'control' && sModelsType.includes('sales/salesOrder')) {
+ const { [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+ if (sModelsType === 'sales/salesOrderPack') {
+ if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = this.props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ } else if (sFieldName === 'dMachineQty') { /* 上机数量改变时,子级部件数量同步改变 */
+ const { dMachineQty } = tableDataRow;
+ /* 查找该节的所有子节点,将上机数量改为部件数量 */
+ tableData.forEach((item, index) => {
+ if (commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableDataRow.sId) > -1 && item.sId !== tableDataRow.sId) {
+ const addstate = {};
+ addstate.dPartsQty = dMachineQty;
+ tableData[index] = { ...tableData[index], ...addstate };
+ }
+ });
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew,
+ });
+ } else {
+ let { masterData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ // if (sFieldName.substring(0, 1) === 'd' && commonUtils.convertToNum(tableData[iIndex][sFieldName]) === commonUtils.convertToNum(changeValue[sFieldName])) {
+ // if (!(tableData[iIndex][sFieldName] === undefined && commonUtils.convertToNum(changeValue[sFieldName]) === 0)) return;
+ // }
+ if (sFieldName === 'sProductName' && name === 'slave' && (sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder') || sModelsType.includes('quotation/quotation'))) {
+ if (commonUtils.isNotEmptyObject(changeValue) && Object.keys(changeValue).length === 1 && Object.keys(changeValue)[0] === sFieldName) {
+ changeValue.sProductId = changeValue.sProductName;
+ }
+ }
+ let tableDataRow = this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ /* 添加备货数自动计算 */
+ if ((sFieldName === 'dProductQty' || sFieldName === 'dGiveQty') && name === 'slave' && (sModelsType.includes('sales/salesOrderPack') || sModelsType.includes('sales/salesOrder'))) {
+ if (commonUtils.isNotEmptyObject(changeValue) && Object.keys(changeValue).length === 1 && Object.keys(changeValue)[0] === sFieldName) {
+ const dProductQty = commonUtils.isEmptyNumber(tableDataRow.dProductQty) ? 0 : tableDataRow.dProductQty;
+ const dGiveQty = commonUtils.isEmptyNumber(tableDataRow.dGiveQty) ? 0 : tableDataRow.dGiveQty;
+ const dStockupRate = commonUtils.isEmptyNumber(masterData.dStockupRate) ? 0 : masterData.dStockupRate;
+ if (dStockupRate !== 0) { /* 备货率不为0时,按照备货率计算,否则按照手填的算 */
+ tableDataRow.dStockupQty = Math.round((dProductQty + dGiveQty) * dStockupRate);
+ }
+ }
+ }
+ if ((sFieldName === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductStyle' || sFieldName === 'sProductUnit' || sFieldName === 'sProductNo'
+ || sFieldName === 'sCustomerProductNo' || sFieldName === 'sProductClassifyId' || sFieldName === 'sProductClassifyName') && !commonUtils.isEmpty(tableDataRow.sProductId)) {
+ let productIdDropDown = [];
+ if (sFieldName === 'sProductStyle') {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ if (this.inputSearch) {
+ clearTimeout(this.inputSearch);
+ }
+ this.inputSearch = setTimeout(async () => {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex], tableDataRow, tableDataRow.sProductName, 1);
+ productIdDropDown = sqlDropDownData.dropDownData;
+ }, 500);
+ }
+ } else {
+ productIdDropDown = dropDownData;
+ }
+ const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId && item.sProductStyle === tableDataRow.sProductStyle);
+ if (iProductIdIndex === -1) {
+ tableDataRow.sProductInfo = JSON.stringify({
+ sProductId: tableDataRow.sProductName,
+ sProductName: tableDataRow.sProductName,
+ sProductStyle: tableDataRow.sProductStyle,
+ sProductUnit: tableDataRow.sProductUnit,
+ sProductNo: tableDataRow.sProductNo,
+ sCustomerProductNo: tableDataRow.sCustomerProductNo,
+ sProductClassifyId: tableDataRow.sProductClassifyId,
+ sProductClassifyName: tableDataRow.sProductClassifyName,
+ });
+ } else {
+ tableDataRow.sProductInfo = '';
+ }
+ tableDataRow.sMaterialsStyle = tableDataRow.sProductStyle;
+ if ((sFieldName === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductNo') && !commonUtils.isEmpty(changeValue.sProductId) && tableDataRow.sProductId !== tableDataRow.sProductName) {
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const { sCustomerId } = masterData; /* 增加客户id参数 */
+ const value = {
+ sProName: 'Sp_Cashier_GetProductPrice',
+ paramsMap: {
+ sProductGuid: changeValue.sProductId,
+ sCustomerId,
+ },
+ };
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ tableDataRow.dNProductPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice; /* 产品单价 */
+ const dProofingMoney = commonUtils.convertToNum(tableDataRow.dProofingMoney); /* 打样金额 */
+ const dPlateMoney = commonUtils.convertToNum(tableDataRow.dPlateMoney); /* 制版金额 */
+ const dKnifeMouldMoney = commonUtils.convertToNum(tableDataRow.dKnifeMouldMoney); /* 刀模金额 */
+ const dProductQty = commonUtils.convertToNum(tableDataRow.dProductQty); /* 数量 */
+ const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
+ const { dNetPrice } = app.decimals;
+ if (dProductQty === 0 || (dProofingMoney === 0 && dPlateMoney === 0 && dKnifeMouldMoney === 0)) {
+ const dProductForeignPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice;
+ tableDataRow.dProductForeignPrice = dProductForeignPrice;
+ tableDataRow.dProductPrice = commonUtils.convertFixNum(dProductForeignPrice * dCurrencyRate, dNetPrice);
+ }
+ }
+
+ const models = name === 'materials' ? 'Materials' :
+ sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) {
+ tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, 'dProductQty', app, token, models);
+ }
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow);
+ // else {
+ // this.props.getServiceError(returnData);
+ // }
+ }
+ } else if (sModelsType.includes('sales/salesOrder') && (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductClassifyName') && name === 'slave') {
+ const { controlData } = this.props;
+ if (controlData !== undefined && !commonUtils.isEmpty(tableData.sProductInfo)) {
+ const controlDataFilter = controlData.filter(item => item.sSlaveId === tableData[iIndex].sId);
+ const tableSelectedRowKeys = [];
+ controlDataFilter.forEach((item) => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel('control', true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materialsReturnData,
+ ...processReturnData,
+ ...controlReturnData,
+ });
+ }
+ } else if ((sModelsType.includes('cashier/') || sModelsType.includes('sales/salesInvoice') || sModelsType.includes('purchase/purchaseInvoice') || sModelsType.includes('purchase/outsideInvoice')) && (sFieldName === 'dTotalMoney' || sFieldName === 'dRoundingMoney')) { /* 付款单、收款单,从表付款/收款金额改变,会自动汇总到主表付款金额中 */
+ const addStata = {};
+ let { handleType } = masterData;
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addStata.handleType = handleType;
+ const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
+ const { dNetMoney } = app.decimals;
+ if (sFieldName === 'dTotalMoney') {
+ addStata.dTotalMoney = 0;
+ if (iIndex > -1) { /* 选中行 */
+ let dMoney = commonUtils.isNotEmptyNumber(tableDataRow.dTotalMoney) ? tableDataRow.dTotalMoney : 0;
+ dMoney = commonUtils.convertStrToNumber(dMoney);
+ addStata.dTotalMoney = dMoney + commonUtils.convertStrToNumber(addStata.dTotalMoney);
+ tableDataRow.dTotalForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dMoney / dCurrencyRate : 0, dNetMoney);
+ }
+ // if (commonUtils.isNotEmptyNumber(tableDataRow.dBalanceMoney) && (tableDataRow.dTotalMoney > tableDataRow.dBalanceMoney)) { // 发外发票,采购发票,销售发票 付款单、收款单总金额不能大于余额
+ // const dTotalMoneyName = slaveConfig.gdsconfigformslave.filter(item => item.sName === sFieldName)[0].showName;
+ // const dBalanceMoneyName = slaveConfig.gdsconfigformslave.filter(item => item.sName === 'dBalanceMoney')[0].showName;
+ // message.error(`${dTotalMoneyName}不能大于${dBalanceMoneyName}!`);
+ // tableDataRow = { ...tableDataRow, dTotalMoney: tableDataRow.dBalanceMoney };
+ // // tableDataRow.dTotalMoney = commonUtils.convertStrToNumber(masterData.dTotalMoney);
+ // addStata.dTotalMoney = commonUtils.convertStrToNumber(masterData.dTotalMoney);
+ // }
+ tableData.forEach((item, index) => { /* 非选中行 */
+ if (index !== iIndex) {
+ const dMoney = commonUtils.isNotEmptyNumber(item.dTotalMoney) ? item.dTotalMoney : 0;
+ addStata.dTotalMoney = commonUtils.convertFixNum(dMoney, 6) + commonUtils.convertFixNum(addStata.dTotalMoney, 6);
+ }
+ });
+ /* 计算外币金额 */
+ if (commonUtils.isNotEmptyNumber(addStata.dTotalMoney)) {
+ addStata.dProductForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? addStata.dTotalMoney / dCurrencyRate : 0, dNetMoney);
+ }
+ } else if (sFieldName === 'dRoundingMoney') {
+ addStata.dRoundingMoney = 0;
+ if (iIndex > -1) { /* 选中行 */
+ let dMoney = commonUtils.isNotEmptyNumber(tableDataRow.dRoundingMoney) ? tableDataRow.dRoundingMoney : 0;
+ dMoney = commonUtils.convertStrToNumber(dMoney);
+ addStata.dRoundingMoney = dMoney + commonUtils.convertStrToNumber(addStata.dRoundingMoney);
+ }
+ tableData.forEach((item, index) => { /* 非选中行 */
+ if (index !== iIndex) {
+ const dMoney = commonUtils.isNotEmptyNumber(item.dRoundingMoney) ? item.dRoundingMoney : 0;
+ addStata.dRoundingMoney = commonUtils.convertFixNum(dMoney, 6) + commonUtils.convertFixNum(addStata.dRoundingMoney, 6);
+ }
+ });
+ }
+ masterData = { ...masterData, ...addStata };
+ this.props.onSaveState({ masterData });
+ } else if (sModelsType === 'purchase/purchaseOrder' && sFieldName === 'dProcurementCycle') {
+ /* 交货周期改变时,交货时间等于制单时间 +交货周期 */
+ const dProcurementCycle = commonUtils.isNull(tableDataRow.dProcurementCycle, 0);
+ const tCreateDate = commonUtils.isNotEmptyObject(tableDataRow.tCreateDate) ? tableDataRow.tCreateDate : new Date();
+ const tDeliverDate = moment(tCreateDate).add(dProcurementCycle, 'days').format(commonUtils.dateFormatA);
+ tableDataRow.tDeliverDate = tDeliverDate;
+ }
+ // 取工艺卡数据
+ if (sModelsType.includes('sales/salesOrder') && (sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && name === 'slave') {
+ const {
+ controlConfig, materialsConfig, processConfig,
+ } = this.props;
+ let { controlData, materialsData, processData } = this.props;
+ const sId = tableData[iIndex].sId;
+ const bCkxCopyFromTechnology = '1'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) {
+ const controlSelectedData = controlData.filter(item => item.sSlaveId === sId);
+ if (commonUtils.isNotEmptyObject(controlSelectedData)) {
+ const controlSelectedRowKeys = [];
+ controlSelectedData.forEach((item) => {
+ controlSelectedRowKeys.push(item.sId);
+ });
+ const materialsReturnData = this.otherTableDel('materials', controlSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', controlSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedRowKeys);
+ controlData = controlReturnData.controlData;
+ materialsData = materialsReturnData.materialsData;
+ processData = processReturnData.processData;
+ this.props.onSaveState({
+ ...materialsReturnData,
+ ...processReturnData,
+ ...controlReturnData,
+ });
+ }
+ const sCustomerId = masterData.sCustomerId;
+ const sProductId = changeValue.sProductId;
+ const sProductIdArray = [];
+ sProductIdArray.push(sProductId);
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnCopyFrom.ActProcessCard'));
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Control'.toLowerCase());
+ const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Materials'.toLowerCase());
+ const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Process'.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData;
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ const treeCopyNodes = new Map();
+ // eslint-disable-next-line no-loop-func
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sSlaveId = tableDataRow.sId;
+ controlRow.sParentId = masterData.sId;
+ if (sModelsType === 'sales/salesOrderPack') { /* 树形 */
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ }
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId).forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sSlaveId = tableDataRow.sId;
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId).forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sSlaveId = tableDataRow.sId;
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ // eslint-disable-next-line no-loop-func
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sSlaveId = tableDataRow.sId;
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ // eslint-disable-next-line no-loop-func
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sSlaveId = tableDataRow.sId;
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ });
+ }
+ /* 包装订单 生成树形 */
+ let treeState = {};
+ if (sModelsType === 'sales/salesOrderPack') {
+ treeState = this.handleGetControlTreeData(controlData, true);
+ }
+ this.props.onSaveState({
+ controlData, materialsData, processData, ...treeState,
+ });
+ }
+ }
+ } else if (sModelsType.includes('sales/salesOrder') && (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') && name === 'slave') {
+ const {
+ controlData, slaveSelectedRowKeys,
+ } = this.props;
+ const controlSelectedData = controlData.filter(item => item.sSlaveId === slaveSelectedRowKeys[0]);
+ for (const one of controlSelectedData) {
+ one.handleType = commonUtils.isEmpty(one.handleType) ? 'update' : one.handleType;
+ one.dPartsQty = commonUtils.isNull(tableDataRow.dProductQty, 0) + commonUtils.isNull(tableDataRow.dGiveQty, 0) + commonUtils.isNull(tableDataRow.dStockupQty, 0);
+ }
+ this.props.onSaveState({ controlData });
+ } else if (sModelsType.includes('purchase/') && (sFieldName === 'sMaterialsId' || sFieldName === 'sMaterialsNo' || sFieldName === 'sMaterialsName') && name === 'slave') {
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const value = {
+ sProName: 'Sp_Cashier_GetMaterialsPrice',
+ paramsMap: {
+ sMaterialsGuid: changeValue.sMaterialsId,
+ sSupplyGuid: masterData.sSupplyId,
+ },
+ };
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ tableDataRow.dMaterialsPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice;
+ }
+ const models = name === 'materials' ? 'Materials' :
+ sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) {
+ tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, 'dAuxiliaryQty', app, token, models);
+ }
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow);
+
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ /* 选择材料后 交货周期改变 则交货时间等于制单时间+交货周期 */
+ const dProcurementCycle = commonUtils.isNull(tableDataRow.dProcurementCycle, 0);
+ const tCreateDate = commonUtils.isNotEmptyObject(tableDataRow.tCreateDate) ? tableDataRow.tCreateDate : new Date();
+ const tDeliverDate = moment(tCreateDate).add(dProcurementCycle, 'days').format(commonUtils.dateFormatA);
+ tableDataRow.tDeliverDate = tDeliverDate;
+ // else {
+ // this.props.getServiceError(returnData);
+ // }
+ } else if (sModelsType === 'sales/salesCheck' && sFieldName === 'dLossMoney' && name === 'slave') {
+ const dPmoney = this.props.getFloatNum('dProductMoney');
+ const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
+ if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) {
+ const dProductForeignMoney = commonUtils.convertFixNum(tableDataRow.dSrcNoCheckMoney - tableDataRow.dLossMoney, dPmoney);
+ const dProductMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductForeignMoney * dCurrencyRate : 0, dPmoney); /* 本位币金额 */
+ tableDataRow.dProductForeignMoney = dProductForeignMoney;
+ tableDataRow.dProductMoney = dProductMoney;
+ } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) {
+ const dProductForeignMoney = commonUtils.isNull(tableDataRow.dSrcNoCheckMoney, 0);
+ const dProductMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductForeignMoney * dCurrencyRate : 0, dPmoney); /* 本位币金额 */
+ tableDataRow.dProductForeignMoney = dProductForeignMoney;
+ tableDataRow.dProductMoney = dProductMoney;
+ tableDataRow.dLossMoney = 0;
+ }
+ } else if (sModelsType === 'purchase/purchasecheck' && sFieldName === 'dLossMoney' && name === 'slave') {
+ const dPmoney = this.props.getFloatNum('dProductMoney');
+ if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) {
+ const dMoney = commonUtils.convertFixNum(tableDataRow.dSrcNoCheckMoney - tableDataRow.dLossMoney, dPmoney);
+ tableDataRow.dMaterialsMoney = dMoney;
+ } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) {
+ tableDataRow.dMaterialsMoney = commonUtils.isNull(tableDataRow.dSrcNoCheckMoney, 0);
+ tableDataRow.dLossMoney = 0;
+ }
+ } else if (sModelsType === 'cost/cosexpenseshare') { /* 改变费用分摊单据从表成本中心金额,总金额随之改变 */
+ if (sFieldName.indexOf('dCostCenter') > -1) {
+ const { slaveColumn, app } = this.props;
+ const { dNetMoney } = app.decimals;
+ let dAllMoney = 0;
+ slaveColumn.forEach((item) => {
+ const sName = item.dataIndex;
+ if (sName.indexOf('dCostCenter') > -1) {
+ dAllMoney += commonUtils.isNotEmptyNumber(tableDataRow[sName]) ? commonUtils.convertFixNum(tableDataRow[sName], dNetMoney) : 0;
+ }
+ });
+ tableDataRow.dShareMoney = commonUtils.convertFixNum(dAllMoney, dNetMoney);
+ }
+ } else if (sModelsType === 'purchase/purchaseInstore' && name === 'slave') { /* 采购入库 材料批次=材料生产日期tSReserve1(此客户手输)+当前日期 */
+ if (sFieldName === 'tProductionDate') {
+ tableDataRow.sDefineNo = moment(tableDataRow.tProductionDate).format('YYYYMMDDHHmm') + moment(new Date()).format('YYYYMMDDHHmm');
+ }
+ }
+ /* 各种金额,税额,价格计算 */
+ let models = name === 'materials' ? 'Materials' :
+ sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/')
+ || sModelsType.includes('outside/') || sModelsType.includes('semigoodsStock/') || sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') {
+ if (sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') {
+ tableDataRow.dAuxiliaryQty = tableDataRow.dProductQty;
+ }
+ tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models);
+
+ if (sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') { /* 如果是材料销售模块/销售对账 如果是材料 则用换算数量*单价 算金额 */
+ /* 材料逻辑计算 */
+ if (commonUtils.isNotEmptyNumber('dMaterialsQty') && tableDataRow.dMaterialsQty !== 0 && commonUtils.isNotEmptyObject(tableDataRow.sMaterialsUnit)) {
+ let modelsNew = '';
+ if (models === 'Product') { /* 计算前将Product替换为Materials */
+ modelsNew = 'Materials';
+
+ const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
+ const { dNetPrice } = app.decimals;
+ const dForeignPrice = tableDataRow[`d${models}ForeignPrice`];
+ if (commonUtils.isNotEmptyNumber(dForeignPrice)) {
+ /* 只有外币单价情況下 要算本位币单价 */
+ const dProductPrice = commonUtils.convertFixNum(dForeignPrice * dCurrencyRate, dNetPrice);
+ tableDataRow[`d${models}Price`] = dProductPrice;
+ }
+
+ tableDataRow[`dN${modelsNew}Price`] = tableDataRow[`d${models}ForeignPrice`];
+ tableDataRow[`d${modelsNew}ForeignPrice`] = tableDataRow[`d${models}ForeignPrice`];
+ tableDataRow[`d${modelsNew}Price`] = tableDataRow[`d${models}Price`];
+ tableDataRow[`dN${modelsNew}Money`] = tableDataRow[`dN${models}Price`];
+ tableDataRow[`dN${modelsNew}Money`] = tableDataRow[`d${models}ForeignMoney`];
+ tableDataRow[`d${modelsNew}ForeignMoney`] = tableDataRow[`d${models}ForeignMoney`];
+ tableDataRow[`d${modelsNew}Money`] = tableDataRow[`d${models}Money`];
+ tableDataRow.bSalesMaterials = true;/* 材料销售 销售对账 材料计算 */
+ models = 'Materials';
+ sFieldName = commonUtils.isNotEmptyObject(sFieldName) ? sFieldName.replace('Product', 'Materials') : sFieldName;
+ }
+ }
+ }
+ }
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, tableDataRow);
+ let dMaterialsMoney = '';
+ if (sModelsType.includes('outside/')) { /* 工序发外 && (sFieldName === 'sSupplyName' || sFieldName === 'sProcessName' || sFieldName === 'dAuxiliaryQty') */
+ let sComputeId = {};
+ const sSupplyId = masterData.sSupplyId;
+ const sProcessId = tableDataRow.sProcessId;
+ if (commonUtils.isNotEmptyObject(sProcessId)) {
+ /* 根据客户id,工序id获取公式ID */
+ sComputeId = await commonBusiness.getOutSideProcessFormula({
+ token, sModelsId, sSupplyId, sProcessId,
+ });
+ if (!commonUtils.isEmpty(sComputeId)) {
+ dMaterialsMoney = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId,
+ });
+ tableDataRow.dMaterialsMoney = dMaterialsMoney;
+ tableDataRow = commonBusiness.getCalculateMoney(app, masterData, tableDataRow, 'Materials');
+ }
+ }
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else {
+ tableData[iIndex] = tableDataRow;
+ if (name === 'report') { // 报表设计
+ this.props.onSaveState({ reportPropsEnabled: true });
+ } else {
+ this.props.onSaveState({ enabled: true });
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData });
+ }
+ }
+ };
+
+ /** 删除表格数据 */
+ otherTableDel = (name, tableSelectedRowKeys) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ };
+
+ handleMaterialsChange = async (tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models) => {
+ const { sComputeId, sConversionComputeId, sReConversionComputeId } = tableDataRow;
+ const sFormulaIdType = tableDataRow.bInverse ? 'sReComputeId' : 'sComputeId'; /* 正算、反算类型 */
+ if (sFieldName === 'sMaterialsNo' || sFieldName === 'sMaterialsName' || sFieldName === 'dAuxiliaryQty' || sFieldName === 'dReelAuxiliaryQty' || sFieldName === 'dConversionQty' || sFieldName === 'sMaterialsStyle' || sFieldName === 'dProductQty') {
+ if (sFieldName === 'dReelAuxiliaryQty') {
+ if (tableDataRow.sMaterialsUnit === '吨' && tableDataRow.bReel && tableDataRow.dGramWeight > 0) {
+ tableDataRow = commonBusiness.getMaterialsQty(app, { ...tableDataRow, sMaterialsStyle: tableDataRow.sReelMaterialsStyle }, 'dReelAuxiliaryQty', 'dMaterialsQty');
+ tableDataRow.dAuxiliaryQty = tableDataRow.dMaterialsQty;
+ tableDataRow.sMaterialsStyle = tableDataRow.sMaterialsStyle !== undefined && tableDataRow.sMaterialsStyle.split('*').length > 1 ? tableDataRow.sMaterialsStyle.split('*')[0] : tableDataRow.sMaterialsStyle;
+ tableDataRow.sAuxiliaryUnit = tableDataRow.sMaterialsUnit;
+ } else if (tableDataRow.sMaterialsUnit.toUpper() === 'M2' && tableDataRow.bReel) {
+ tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dReelAuxiliaryQty', 'dMaterialsQty');
+ tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty;
+ } else {
+ tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty;
+ }
+ }
+ if (commonUtils.isEmpty(sComputeId) && sFieldName !== 'dConversionQty') {
+ if (sFieldName === 'dProductQty') {
+ tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dProductQty', 'dMaterialsQty');
+ } else {
+ // tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dAuxiliaryQty', 'dMaterialsQty');
+ tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId, sFormulaIdType,
+ });
+ }
+ } else if (!commonUtils.isEmpty(sComputeId)) {
+ tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId,
+ });
+ }
+ if (sFieldName !== 'dConversionQty' && !commonUtils.isEmpty(sConversionComputeId)) {
+ tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId: sConversionComputeId,
+ });
+ }
+ } else if (sFieldName === 'dMaterialsQty') {
+ const { sReComputeId } = tableDataRow;
+ if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) {
+ // tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, 'dAuxiliaryQty');
+ tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sReComputeId, sFormulaIdType,
+ });
+ } else if (tableDataRow.bInverse) {
+ tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId: sReComputeId,
+ });
+ if (commonUtils.isNotEmptyArr(tableDataRow.dAuxiliaryQty) && tableDataRow.dAuxiliaryQty !== 0) {
+ tableDataRow.dProductQty = tableDataRow.dAuxiliaryQty;
+ }
+ }
+ if (!commonUtils.isEmpty(sReConversionComputeId)) {
+ tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId: sReConversionComputeId,
+ });
+ }
+ } else if (sFieldName === 'dAuxiliaryLossQty') {
+ if (commonUtils.isEmpty(sComputeId)) {
+ // tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, sFieldName, 'dLossQty');
+ tableDataRow.dLossQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId, sFormulaIdType,
+ });
+ } else {
+ tableDataRow.dLossQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId,
+ });
+ }
+ if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) {
+ tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty;
+ tableDataRow.dMaterialsQty = commonUtils.convertFixNum(tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty, 6);
+ }
+ } else if (sFieldName === 'dLossQty') {
+ const { sReComputeId } = tableDataRow;
+ if (commonUtils.isEmpty(sReComputeId)) {
+ // tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, 'dAuxiliaryLossQty');
+ tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sReComputeId, sFormulaIdType,
+ });
+ } else {
+ tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData, tableDataRow, sComputeId: sReComputeId,
+ });
+ }
+ if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) {
+ tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty;
+ tableDataRow.dMaterialsQty = tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty;
+ }
+ } else if (sFieldName === 'sProcessId' || sFieldName === 'sProcessNo' || sFieldName === 'sProcessName') {
+ const sProcessId = changeValue.sProcessId;
+ const url = `${commonConfig.server_host}process/outsideprocess?sModelsId=${sModelsId}&sProcessId=${sProcessId}`;
+ const dataReturn = (await commonServices.getService(token, url)).data;
+ if (dataReturn.code === 1) {
+ if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) {
+ tableDataRow.dMaterialsPrice = dataReturn.dataset.rows[0].dMaterialsPrice;
+ }
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dMaterialsPrice', masterData, tableDataRow);
+ }
+ }
+ return tableDataRow;
+ }
+
+ handleCustomerChange = (name, changeValue) => {
+ if (commonUtils.isNotEmptyObject(changeValue)) {
+ if (changeValue.sCustomerId !== this.state.changleCustomerId) {
+ const sCustomerId = [];
+ sCustomerId.push(changeValue.sCustomerId);
+ this.handleTableSelectRowChange(name, sCustomerId, changeValue);
+ }
+ }
+ this.setState({ changleCustomerId: changeValue.sCustomerId });
+ }
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait, masterDataNew) => {
+ // this.handleCustomerChange(name, changeValue);
+ const {
+ sModelsId, sModelsType, masterData: masterDataOld, slaveData, app, masterConfig, slaveConfig, token, controlData,
+ } = this.props;
+ const addState = {};
+ const masterData = masterDataNew === undefined ? masterDataOld === undefined ? {} : masterDataOld : masterDataNew;
+ let bNewSlaveData = false;
+ if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ // 从表有数据,请删除后修改客户!不能去掉
+ if (slaveData.length === 1 && commonUtils.isEmpty(slaveData[0].sProductId)) {
+ bNewSlaveData = true;
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'slaveHasDataPleaseDel'));
+ return;
+ }
+ }
+ changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue });
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ //
+ // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductName', []);
+ } if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName') {
+ changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue });
+ } else if (sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName') {
+ commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsName', []);
+ if (sModelsType === 'materialsStock/materialsCheck' || sModelsType === 'productStock/productCheck') {
+ let value = {};
+ if (sModelsType === 'materialsStock/materialsCheck') {
+ value = {
+ sProName: 'Sp_System_AccountSquareCheck',
+ paramsMap: {
+ iType2: 1,
+ sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : '',
+ },
+ };
+ } else if (sModelsType === 'productStock/productCheck') {
+ value = {
+ sProName: 'Sp_System_AccountSquareCheck',
+ paramsMap: {
+ iType2: 2,
+ sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : '',
+ },
+ };
+ }
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ return;
+ }
+ } else {
+ this.props.getServiceError(returnData);
+ return;
+ }
+ }
+ } else if (sModelsType.includes('cashier/') && sFieldName === 'sBillType') {
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerName', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyName', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyName', []);
+ changeValue.sCustomerId = '';
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerId');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ changeValue.sSupplyId = '';
+ const iSupplyIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sSupplyId');
+ if (iSupplyIndex > -1) {
+ masterConfig.gdsconfigformslave[iSupplyIndex].bReGetDropDown = true;
+ }
+ /* 财务调整中切换调整类型后,对象名称清空 */
+ const sBillTypeIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sFamilyName');
+ if (sBillTypeIndex > -1) {
+ masterData.sFamilyName = '';
+ }
+ this.props.onSaveState({ masterConfig });
+ } else if (sFieldName === 'sGetPayId' || sFieldName === 'sGetPayName') {
+ changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue });
+ } else if (sFieldName === 'tInvoiceDate') {
+ changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue });
+ } else if (sFieldName === 'sSettlementId') {
+ if (changeValue.sSettlementId === 'cash') {
+ const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount');
+ if (sBankAccountIndex > -1) {
+ masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1;
+ masterData.sBankAccount = '';
+ }
+ const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo');
+ if (sInvoiceNoIndex > -1) {
+ masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1;
+ masterData.sInvoiceNo = '';
+ }
+ const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId' || item.sName === 'sBankName');
+ if (sBankIdIndex > -1) {
+ masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 1;
+ masterData.sBankId = '';
+ masterData.sBankName = '';
+ }
+ }
+ if (changeValue.sSettlementId === 'bank') {
+ const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo');
+ if (sInvoiceNoIndex > -1) {
+ masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1;
+ masterData.sInvoiceNo = '';
+ }
+ const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount');
+ if (sBankAccountIndex > -1) {
+ masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 0;
+ }
+ const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId' || item.sName === 'sBankName');
+ if (sBankIdIndex > -1) {
+ masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0;
+ }
+ }
+ if (changeValue.sSettlementId === 'bill') {
+ const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount');
+ if (sBankAccountIndex > -1) {
+ masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1;
+ masterData.sBankAccount = '';
+ }
+ const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo');
+ if (sInvoiceNoIndex > -1) {
+ masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 0;
+ }
+ const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId');
+ if (sBankIdIndex > -1) {
+ masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0;
+ }
+ const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'tDueDate');
+ if (tDueDateIndex > -1) {
+ masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 0;
+ }
+ }
+ }
+ let returnData = this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName' || sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' ||
+ sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' ||
+ sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName' || sFieldName === 'tDeliverDate' ||
+ sFieldName === 'sCurrency' || sFieldName === 'dCurrencyRate') {
+ const slaveDataNew = [];
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ for (const item of slaveData) {
+ let tableDataRow = ((sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' ||
+ sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' ||
+ sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') && (sModelsType.includes('materialsStock/productionmaterialsadjust'))) ?
+ { ...item } : { ...item, [sFieldName]: changeValue[sFieldName] };
+
+ if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName') {
+ tableDataRow.sTaxId = changeValue.sTaxId;
+ tableDataRow.sTaxNo = changeValue.sTaxNo;
+ tableDataRow.sTaxName = changeValue.sTaxName;
+ tableDataRow.dTaxRate = changeValue.dTaxRate;
+ tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ let dMaterialsMoney = '';
+ if (sModelsType.includes('outside/')) { /* 工序发外 */
+ let sComputeId = '';
+ const sSupplyId = changeValue.sSupplyId;
+ const sProcessId = tableDataRow.sProcessId;
+ /* 根据客户id,工序id获取公式ID */
+ if (commonUtils.isNotEmptyObject(sSupplyId) && commonUtils.isNotEmptyObject(sProcessId)) {
+ sComputeId = await commonBusiness.getOutSideProcessFormula({
+ token, sModelsId, sSupplyId, sProcessId,
+ });
+ if (commonUtils.isNotEmptyObject(sComputeId)) {
+ dMaterialsMoney = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData: returnData.masterData, tableDataRow, sComputeId,
+ });
+ tableDataRow.dMaterialsMoney = dMaterialsMoney;
+ tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, 'Materials');
+ } else {
+ tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, 'Materials'); /* 没有发外公式情况下 进行计算 */
+ }
+ }
+ } else {
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'sTaxId', returnData.masterData, tableDataRow);
+ }
+ } else if (sFieldName === 'sCurrency' || sFieldName === 'dCurrencyRate') {
+ tableDataRow = commonBusiness.getCalculateAllMoney(app, models, `d${models}Money`, returnData.masterData, tableDataRow);
+ tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ }
+ if ((sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' ||
+ sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' ||
+ sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') && (!sModelsType.includes('materialsStock/productionmaterialsadjust'))) {
+ if (sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName') {
+ tableDataRow.sWareHouseId = changeValue.sWareHouseId;
+ tableDataRow.sWareHouseNo = changeValue.sWareHouseNo;
+ tableDataRow.sWareHouseName = changeValue.sWareHouseName;
+ } else if (sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName') {
+ tableDataRow.sLocationId = changeValue.sLocationId;
+ tableDataRow.sLocationNo = changeValue.sLocationNo;
+ tableDataRow.sLocationName = changeValue.sLocationName;
+ } else if (sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') {
+ tableDataRow.sWareHouseLocationId = changeValue.sWareHouseLocationId;
+ tableDataRow.sWareHouseLocationNo = changeValue.sWareHouseLocationNo;
+ tableDataRow.sWareHouseLocationName = changeValue.sWareHouseLocationName;
+ }
+ tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ } else if (sFieldName === 'tDeliverDate') {
+ tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ }
+ slaveDataNew.push(tableDataRow);
+ }
+ addState.slaveData = slaveDataNew;
+ // this.props.onSaveState({ slaveData: slaveDataNew });
+ } else if ((sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName')) {
+ if (bNewSlaveData) {
+ const slaveDataNew = [];
+ const allTableData = {};
+ allTableData.master = returnData.masterData;
+ const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData);
+ tableDataRowAdd.handleType = 'add';
+ tableDataRowAdd.sId = commonUtils.createSid();
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 1;
+ slaveDataNew.push(tableDataRowAdd);
+ addState.slaveData = slaveDataNew;
+ // this.props.onSaveState({ slaveData: slaveDataNew });
+ } else if (sModelsType.includes('sales/') || sModelsType.includes('cashier/') || sModelsType.includes('manufacture/')) { // 获取应收款
+ if (commonUtils.isNotEmptyObject(masterData)) {
+ this.getCustomerReceipt({ masterData: returnData.masterData });
+ }
+ }
+ } else if (sFieldName === 'sTestStandardId' || sFieldName === 'sTestStandardName') {
+ const { slaveDelData: slaveDelDataOld, slaveConfig, masterConfig } = this.props;
+ const dataUrl = `${commonConfig.server_host}eleteamemployee/getObtainInspectionStandards?sModelsId=${sModelsId}&sParentId=${returnData.masterData.sTestStandardId}`;
+ const dataReturn = (await commonServices.getService(this.props.app.token, dataUrl)).data;
+ const slaveDelData = commonUtils.isEmptyArr(slaveDelDataOld) ? [] : slaveDelDataOld;
+ if (dataReturn.code === 1) {
+ const returnSlaveData = dataReturn.dataset.rows;
+ slaveData.forEach((item) => {
+ item.handleType = 'del';
+ slaveDelData.push(item);
+ });
+ const slaveDataNew = [];
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'sTestStandardName');
+ const iSqlIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sActValue');
+ returnSlaveData.forEach((item, iIndex) => {
+ let tableDataRow = commonFunc.getDefaultData(slaveConfig, {});
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.iOrder = iIndex;
+ if (iConfigIndex > -1) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(masterConfig.gdsconfigformslave[iConfigIndex].sAssignField, item, newCopyTo) }; // 取赋值字段
+ // tableDataRow.sTestReference = '15S|20S';
+ const sTestReference = tableDataRow.sTestReference;
+ const sParamObj = {};
+ if (commonUtils.isNotEmptyObject(sTestReference)) {
+ if (sTestReference.indexOf('|') >= 0) {
+ sTestReference.split('|').forEach((itemField) => {
+ sParamObj[itemField] = itemField;
+ });
+ tableDataRow.sParamDropDownsActValue = sParamObj;
+ if (iSqlIndex > -1) {
+ slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = 'sql';
+ } else {
+ slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = '';
+ }
+ }
+ }
+ }
+ slaveDataNew.push(tableDataRow);
+ });
+ addState.slaveData = slaveDataNew;
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sPeriodID') {
+ const master = returnData.masterData;
+ let { handleType } = master;
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ if (handleType === 'add') { /* 费用分摊单据新增时,选择不同月份,自动获取从表的数据 */
+ const { sModelsId } = this.props;
+ let url = `${commonConfig.server_host}costCenter/getCostCenterData?sModelsId=${sModelsId}`;
+ const body = {
+ sPeriodId: changeValue.sPeriodID,
+ };
+ /**
+ * 修改日期:2021-03-26
+ * 修改人:吕杰
+ * 区域:以下 4 行
+ * BUG:2168
+ * 说明:凭证导入表下主表月份切换从后台获取数据
+ * 原代码:
+ */
+ if (sModelsType === 'cashier/voucher') {
+ url = `${commonConfig.server_host}costCenter/getCosvoucherImportData?sModelsId=${sModelsId}`;
+ body.sWeek = masterDataOld.sWeek;
+ }
+ const dataReturn = (await commonServices.postValueService(app.token, body, url)).data;
+ if (dataReturn.code === 1) {
+ /* 获取数据集 */
+ const { rows } = dataReturn.dataset;
+ const slaveDataNew = [];
+ rows.forEach((row) => {
+ /**
+ * 修改日期:2021-03-26
+ * 修改人:吕杰
+ * 区域:以下 13 行
+ * BUG:2168
+ * 说明:凭证导入表下主表月份切换从后台获取数据
+ * 原代码:
+ */
+ let tableDataRowAdd = row;
+ if (sModelsType === 'cashier/voucher') {
+ // 当主表中配置了转换信息时,对数据字段进行转换
+ const index = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'Btnimport');
+ if (index > -1) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ newCopyTo.slave = row;
+ const config = masterConfig.gdsconfigformslave[index];
+ const slaveAssignField = config.sAssignField || '';
+ tableDataRowAdd = { ...row, ...commonFunc.getAssignFieldValue(slaveAssignField, row, newCopyTo) };
+ }
+ }
+ tableDataRowAdd.handleType = handleType;
+ tableDataRowAdd.sId = commonUtils.createSid();
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ slaveDataNew.push(tableDataRowAdd);
+ });
+ addState.slaveData = slaveDataNew;
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ return [];
+ }
+ }
+ } else if (sFieldName === 'sWeek' && sModelsType === 'cashier/voucher') {
+ /**
+ * 修改日期:2021-03-26
+ * 修改人:吕杰
+ * 区域:此if内
+ * BUG:2168
+ * 说明:凭证导入表下主表周期切换从后台获取数据
+ * 原代码:
+ */
+ const master = returnData.masterData;
+ let { handleType } = master;
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ if (handleType === 'add') { /* 费用分摊单据新增时,选择不同月份,自动获取从表的数据 */
+ const { sModelsId } = this.props;
+ const url = `${commonConfig.server_host}costCenter/getCosvoucherImportData?sModelsId=${sModelsId}`;
+ const body = {
+ sWeek: changeValue.sWeek,
+ sPeriodId: masterDataOld.sPeriodId,
+ };
+ const dataReturn = (await commonServices.postValueService(app.token, body, url)).data;
+ if (dataReturn.code === 1) {
+ /* 获取数据集 */
+ const { rows } = dataReturn.dataset;
+ const slaveDataNew = [];
+ rows.forEach((row) => {
+ let tableDataRowAdd = row;
+ // 当主表中配置了转换信息时,对数据字段进行转换
+ const index = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'Btnimport');
+ if (index > -1) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ newCopyTo.slave = row;
+ const config = masterConfig.gdsconfigformslave[index];
+ const slaveAssignField = config.sAssignField || '';
+ tableDataRowAdd = { ...row, ...commonFunc.getAssignFieldValue(slaveAssignField, row, newCopyTo) };
+ }
+ tableDataRowAdd.handleType = handleType;
+ tableDataRowAdd.sId = commonUtils.createSid();
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ slaveDataNew.push(tableDataRowAdd);
+ });
+ addState.slaveData = slaveDataNew;
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ return [];
+ }
+ }
+ }
+ const models = name === 'materials' ? 'Materials' :
+ sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('print/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ if (sModelsType.includes('purchase/') || sModelsType.includes('print/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/') || sModelsType.includes('quality/')) {
+ let masterData = await this.handleMaterialsChange(returnData.masterData, sModelsId, masterData, changeValue, sFieldName, app, token, models);
+ masterData = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, masterData);
+ if (sFieldName !== 'dPackQty') {
+ if (changeValue.dPackQty !== this.state.dPackQtyChange && changeValue.dPackQty !== undefined) {
+ masterData = commonBusiness.getCalculateAllMoney(app, models, 'dPackQty', masterData, masterData);
+ this.setState({ dPackQtyChange: changeValue.dPackQty });
+ }
+ }
+ returnData = { ...returnData, masterData };
+ }
+ const tableAllData = {
+ };
+ tableAllData.master = masterData;
+ tableAllData.slave = slaveData;
+ tableAllData.control = controlData;
+ const masterDataAfter = commonBusiness.getKeyUpEvent(name, sFieldName, masterConfig, returnData.masterData, {}, true, tableAllData);
+ console.log('masterDataAfter::', masterDataAfter);
+ if (commonUtils.isNotEmptyObject(masterDataAfter)) {
+ if (masterDataAfter.bMultiTable) {
+ returnData.masterData = masterDataAfter.master;
+ if (commonUtils.isNotEmptyArr(masterDataAfter.slave)) {
+ returnData.slaveData = masterDataAfter.slave;
+ }
+ if (commonUtils.isNotEmptyArr(masterDataAfter.control)) {
+ returnData.controlData = masterDataAfter.control;
+ }
+ } else {
+ returnData.masterData = masterDataAfter;
+ }
+ }
+ if (isWait) {
+ return { ...returnData, ...addState, enabled: true };
+ } else {
+ this.props.onSaveState({ ...returnData, ...addState, enabled: true });
+ return returnData;
+ }
+ }
+ handleBtnPrint =async (sActiveId, checked, eKey) => {
+ const {
+ app, sModelsId, masterConfig, masterData, slaveConfig, sModelsType, reportData, menuChildData, formRoute, controlConfig,
+ } = this.props;
+ if (sModelsType.includes('manufacture/workOrder')) {
+ this.handleUpdateProduction();
+ }
+ const { token } = app;
+ const queryFilter = {};
+ queryFilter[masterConfig.sId] = { sId: masterData.sId };
+ if (commonUtils.isNotEmptyObject(slaveConfig)) {
+ queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } };
+ }
+ const queryFilterJson = JSON.stringify(queryFilter);
+ // const masterDataJson = JSON.stringify(masterData);
+ /* 拿到打印报表名称 */
+ let printReportName = 'report';
+ let printCustomerReportName = 'report';
+ if (commonUtils.isNotEmptyArr(reportData)) {
+ const iIndex = reportData.findIndex(item => item.sId === sActiveId);
+ if (iIndex > -1) {
+ printReportName = reportData[iIndex].sReportName;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(menuChildData)) {
+ const iIndex = menuChildData.findIndex(item => item.sId === sActiveId);
+ if (iIndex > -1) {
+ printCustomerReportName = menuChildData[iIndex].sReportName;
+ }
+ }
+ let urlPrint = '';
+ if (formRoute === '/indexPage/printlabel') {
+ if (commonUtils.isNotEmptyObject(masterData) && masterData.dTrunkQty !== undefined && masterData.dFractionQty !== undefined && masterData.dPackQty !== undefined) { // masterData中必填的三个字段
+ // const param = masterDataJson;
+ /* 把masterData放在数组中 */
+ const ListData = [];
+ ListData.push(masterData);
+ const param = JSON.stringify(ListData);
+ if (eKey.indexOf('BtnPrint.') > -1) {
+ urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`;
+ } else if (eKey.indexOf('BtnPrintCus.') > -1) {
+ urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${checked ? 'fileType=.xlsx&' : ''}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`;
+ }
+ /* Get提交地址栏参数过多,更改Get提交为Post提交 */
+ this.handleOpenPost(urlPrint, param);
+ } else {
+ const dTrunkQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dTrunkQty');
+ const dFractionQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dFractionQty');
+ const dPackQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dPackQty');
+ if (masterData.dTrunkQty === undefined && commonUtils.isNotEmptyObject(dTrunkQtyName)) {
+ message.error(`${dTrunkQtyName[0].showName} 必填项!`);
+ } else if (masterData.dFractionQty === undefined && commonUtils.isNotEmptyObject(dFractionQtyName)) {
+ message.error(`${dFractionQtyName[0].showName} 必填项!`);
+ } else if (masterData.dPackQty === undefined && commonUtils.isNotEmptyObject(dPackQtyName)) {
+ message.error(`${dPackQtyName[0].showName} 必填项!`);
+ }
+ return;
+ }
+ } else if (eKey.indexOf('BtnPrint.') > -1) {
+ let { controlSelectedRowKeys } = this.props;
+ /* 不出现选择框,则打印全部;出现选择框,则打印勾选的 */
+ let bisMutiSelect = false;
+ if (commonUtils.isNotEmptyObject(controlConfig) && commonUtils.isNotEmptyArr(controlConfig.gdsconfigformslave)) {
+ const filterData = controlConfig.gdsconfigformslave.filter(item => item.sControlName === 'bisMutiSelect');
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ bisMutiSelect = filterData[0].bVisible;
+ }
+ }
+ if (bisMutiSelect === false || bisMutiSelect === undefined) {
+ controlSelectedRowKeys = [];
+ }
+ urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}&sControlIds=${commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlSelectedRowKeys : []}`;
+ } else if (eKey.indexOf('BtnPrintCus.') > -1) {
+ urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}`;
+ }
+ if (formRoute !== '/indexPage/printlabel') {
+ window.open(`${encodeURI(`${urlPrint}&queryFilter=${queryFilterJson}`)}&token=${encodeURIComponent(token)}`);
+ }
+ };
+ handleOpenPost= (url, params) => {
+ const newWin = window.open();
+ let formStr = '';
+ formStr = `';
+ newWin.document.body.innerHTML = formStr;
+ newWin.document.forms[0].submit();
+ return newWin;
+ }
+
+ handleUpdateProduction = async () => {
+ const { sModelsId, masterData } = this.props;
+ const { sBillNo, sId } = masterData || {};
+ const dataUrl = `${commonConfig.server_host}business/addUpdateDelBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ const value = {
+ data: [{
+ sTable: 'mftworkordermaster',
+ column: [{ handleType: 'update', sId: masterData.sId, bProduction: 1 }],
+ }],
+ sClientType: '1',
+ };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ message.success(dataReturn.msg);
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+
+ handleTitleChange = (slavePagination) => {
+ this.props.onSaveState({ slavePagination });
+ };
+
+ /* 工单、工艺卡、报价单控制表回带图片地址 */
+ handleFilfileManageOk= async (controlFilfileData, controlFilfileDelData, sSrcSlaveId) => {
+ const {
+ controlData: tableData, app, sModelsId, token, controlConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyObject(sSrcSlaveId)) {
+ if (commonUtils.isNotEmptyArr(controlFilfileDelData)) {
+ const addState = {};
+ const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId);
+ if (iIndex > -1) {
+ const tableDataNewRow = tableData[iIndex];
+ const { sMaterialsPicturePath, sMachinePicturePath } = tableDataNewRow;
+ const controlsMaterialsPictureDelData = controlFilfileDelData.filter(item => item.sType === '3'); /* 开料 */
+ if (commonUtils.isNotEmptyArr(controlsMaterialsPictureDelData)) {
+ controlsMaterialsPictureDelData.forEach((slaveItem) => {
+ if (slaveItem.sPicturePath === sMaterialsPicturePath) {
+ addState.sMaterialsPicturePath = '';
+ }
+ });
+ }
+ const sMachinePictureDelPath = controlFilfileDelData.filter(item => item.sType === '4'); /* 联版 */
+ if (commonUtils.isNotEmptyArr(sMachinePictureDelPath)) {
+ sMachinePictureDelPath.forEach((slaveItem) => {
+ if (slaveItem.sPicturePath === sMachinePicturePath) {
+ addState.sMachinePicturePath = '';
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyObject(addState) && (addState.sMachinePicturePath === '' || addState.sMaterialsPicturePath === '')) {
+ tableData[iIndex] = { ...tableDataNewRow, ...addState };
+ const data = [];
+ const updataData = {};
+ const updateWhere = {};
+ const column = {};
+ if (addState.sMaterialsPicturePath === '') {
+ column.sMaterialsPicturePath = addState.sMaterialsPicturePath;
+ }
+ if (addState.sMachinePicturePath === '') {
+ column.sMachinePicturePath = addState.sMachinePicturePath;
+ }
+ if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) {
+ updateWhere.sId = tableDataNewRow.sId;
+ updataData.sTable = controlConfig.sTbName;
+ updataData.sWhere = updateWhere;
+ updataData.column = column;
+ data.push(updataData);
+ /* 调用接口将图片地址存入控制表 */
+ const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`;
+ const value = {
+ data,
+ sClientType: '1',
+ };
+ const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data;
+ if (dataReturn.code === 1) {
+ /* 刷新 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ } else {
+ this.getServiceError(dataReturn);
+ }
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(controlFilfileData)) {
+ const addState = {};
+ const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId);
+ if (iIndex > -1) {
+ const tableDataNewRow = tableData[iIndex];
+ const { sMaterialsPicturePath, sMachinePicturePath } = tableDataNewRow;
+ const controlsMaterialsPictureData = controlFilfileData.filter(item => item.sType === '3');
+ if (commonUtils.isNotEmptyArr(controlsMaterialsPictureData)) {
+ addState.sMaterialsPicturePath = commonUtils.isNotEmptyObject(controlsMaterialsPictureData[0].sPicturePath) ? controlsMaterialsPictureData[0].sPicturePath : ''; /* 上机默认取上传图片的第一条 */
+ }
+ const controlsMachinePictureData = controlFilfileData.filter(item => item.sType === '4');
+ if (commonUtils.isNotEmptyArr(controlsMachinePictureData)) {
+ addState.sMachinePicturePath = commonUtils.isNotEmptyObject(controlsMachinePictureData[0].sPicturePath) ? controlsMachinePictureData[0].sPicturePath : '';
+ }
+ if (commonUtils.isNotEmptyObject(addState)) {
+ tableData[iIndex] = { ...tableDataNewRow, ...addState };
+ const data = [];
+ const updataData = {};
+ const updateWhere = {};
+ const column = {};
+ if (commonUtils.isNotEmptyObject(addState.sMaterialsPicturePath) && addState.sMaterialsPicturePath !== sMaterialsPicturePath) {
+ column.sMaterialsPicturePath = addState.sMaterialsPicturePath;
+ }
+ if (commonUtils.isNotEmptyObject(addState.sMachinePicturePath) && addState.sMachinePicturePath !== sMachinePicturePath) {
+ column.sMachinePicturePath = addState.sMachinePicturePath;
+ }
+ if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) {
+ updateWhere.sId = tableDataNewRow.sId;
+ updataData.sTable = controlConfig.sTbName;
+ updataData.sWhere = updateWhere;
+ updataData.column = column;
+ data.push(updataData);
+ /* 调用接口将图片地址存入控制表 */
+ const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`;
+ const value = {
+ data,
+ sClientType: '1',
+ };
+ const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data;
+ if (dataReturn.code === 1) {
+ this.props.onSaveState({ tableData });
+ /* 刷新 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ } else {
+ this.getServiceError(dataReturn);
+ }
+ }
+ }
+ }
+ }
+ } else {
+ return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));
+ }
+ }
+ // 收付款分摊
+ handleShare = () => {
+ /* 分摊 */
+ const {
+ sModelsType, masterData: masterDataOld, slaveData: slaveDataOld, app,
+ } = this.props;
+ if ((sModelsType.includes('cashier/receipt') && masterDataOld.sBillType !== 'customer') ||
+ (sModelsType.includes('cashier/payment') && masterDataOld.sBillType !== 'supply')) {
+ return masterDataOld;
+ }
+ const { dNetMoney } = app.decimals;
+ const masterData = { ...masterDataOld };
+ const slaveData = [];
+ if (commonUtils.isNotEmptyArr(slaveDataOld) && slaveDataOld.length > 0) {
+ slaveDataOld.forEach((item) => {
+ slaveData.push({ ...item });
+ });
+ }
+
+ const dTotalMoney = masterData.dTotalMoney !== undefined ? masterData.dTotalMoney : 0;
+ let minusSum = 0; /* 负数求和 */
+ let minusRoundingSum = 0; /* 负数舍入求和 */
+ const minusData = []; /* 负数集 */
+ let positiveSum = 0; /* 正数求和 */
+ let positiveRoundingSum = 0; /* 正数舍入求和 */
+ const positiveData = []; /* 正数集 */
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) {
+ slaveData.forEach((child) => {
+ child.dTotalMoney = 0;
+ child.dRoundingMoney = commonUtils.isNum(child.dRoundingMoney) ? child.dRoundingMoney : 0;
+ if (child.dBalanceMoney < 0) {
+ minusSum -= Math.abs(child.dBalanceMoney);
+ minusRoundingSum -= Math.abs(child.dRoundingMoney);
+ minusData.push(child);
+ } else {
+ const positiveSumTemp = commonUtils.convertFixNum(child.dBalanceMoney, dNetMoney) + commonUtils.convertFixNum(positiveSum, dNetMoney);
+ positiveSum = commonUtils.convertFixNum(positiveSumTemp, dNetMoney);
+ const positiveRoundingSumTemp = commonUtils.convertFixNum(child.dRoundingMoney, dNetMoney) + commonUtils.convertFixNum(positiveRoundingSum, dNetMoney);
+ positiveRoundingSum = commonUtils.convertFixNum(positiveRoundingSumTemp, dNetMoney);
+ positiveData.push(child);
+ }
+ });
+ }
+ if (commonUtils.convertFixNum(((minusSum - minusRoundingSum) + (positiveSum - positiveRoundingSum)) - dTotalMoney, dNetMoney) <= 0) {
+ /* 够扣 */
+ positiveSum -= minusRoundingSum;
+ positiveSum -= positiveRoundingSum;
+ positiveSum -= dTotalMoney; /* 去除分摊金额 */
+ if (positiveSum >= 0) {
+ for (let i = 0; i < minusData.length; i += 1) {
+ /* 负数遍历 */
+ const dBalanceMoney = Math.abs(minusData[i].dBalanceMoney); /* 余额正数 */
+ const dRoundingMoney = minusData[i].dRoundingMoney !== undefined
+ ? minusData[i].dRoundingMoney
+ : 0;
+ if (positiveSum <= dBalanceMoney) {
+ minusData[i].dTotalMoney = commonUtils.convertFixNum(-(positiveSum) - (dRoundingMoney * 1), dNetMoney);
+ if (minusData[i].handleType === undefined) {
+ minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType;
+ }
+ break;
+ } else {
+ minusData[i].dTotalMoney = commonUtils.convertFixNum(-(dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney);
+ positiveSum -= dBalanceMoney - (dRoundingMoney * 1);
+ if (minusData[i].handleType === undefined) {
+ minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType;
+ }
+ }
+ }
+ for (let i = 0; i < positiveData.length; i += 1) {
+ /* 正数遍历 */
+ const { dBalanceMoney } = positiveData[i]; /* 余额正数 */
+ const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined
+ ? positiveData[i].dRoundingMoney
+ : 0;
+ positiveData[i].dTotalMoney = commonUtils.convertFixNum((dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney);
+ if (positiveData[i].handleType === undefined) {
+ positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType;
+ }
+ }
+ masterData.dAdvanceMoney = 0;
+ masterData.bAdvance = false;
+ } else {
+ /* 有预收 */
+ for (let i = 0; i < positiveData.length; i += 1) {
+ /* 正数遍历 */
+ const { dBalanceMoney } = positiveData[i]; /* 余额正数 */
+ const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined
+ ? positiveData[i].dRoundingMoney
+ : 0;
+ positiveData[i].dTotalMoney = commonUtils.convertFixNum((dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney);
+ positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType;
+ }
+ for (let i = 0; i < minusData.length; i += 1) {
+ /* 负数遍历 */
+ minusData[i].dRoundingMoney = 0;
+ minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType;
+ }
+ masterData.dAdvanceMoney = commonUtils.convertFixNum(Math.abs(positiveSum), dNetMoney);
+ masterData.bAdvance = true;
+ }
+ const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
+ /* 分摊算外币金额 */
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) {
+ slaveData.forEach((item, index) => {
+ slaveData[index].dTotalForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? item.dTotalMoney / dCurrencyRate : 0, dNetMoney);
+ });
+ }
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ if (commonUtils.isNotEmptyNumber(masterData.dTotalMoney)) {
+ masterData.dProductForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? masterData.dTotalMoney / dCurrencyRate : 0, dNetMoney);
+ }
+ this.props.onSaveState({ masterData, slaveData });
+ } else if (((minusSum - minusRoundingSum) + (positiveSum - positiveRoundingSum)) - dTotalMoney > 0) {
+ /* 不够扣情况 */
+ minusSum -= minusRoundingSum;
+ minusSum -= positiveRoundingSum;
+ minusSum -= dTotalMoney; /* 去除分摊金额 */
+ for (let i = 0; i < minusData.length; i += 1) {
+ /* 负数遍历 */
+ const dBalanceMoney = Math.abs(minusData[i].dBalanceMoney); /* 余额正数 */
+ const dRoundingMoney = minusData[i].dRoundingMoney !== undefined
+ ? minusData[i].dRoundingMoney
+ : 0;
+ minusData[i].dTotalMoney = commonUtils.convertFixNum(-(dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney);
+ minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType;
+ }
+ for (let i = 0; i < positiveData.length; i += 1) {
+ /* 正数遍历 */
+ const { dBalanceMoney } = positiveData[i]; /* 余额正数 */
+ const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined
+ ? positiveData[i].dRoundingMoney
+ : 0;
+ if (Math.abs(minusSum) <= dBalanceMoney) {
+ positiveData[i].dTotalMoney = commonUtils.convertFixNum(Math.abs(minusSum) - (dRoundingMoney * 1), dNetMoney);
+ positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType;
+ break;
+ } else {
+ positiveData[i].dTotalMoney = commonUtils.convertFixNum((dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney);
+ minusSum = -(Math.abs(minusSum) - (dBalanceMoney * 1)); // - (dRoundingMoney * 1)
+ positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType;
+ }
+ }
+ const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
+ /* 分摊算外币金额 */
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) {
+ slaveData.forEach((item, index) => {
+ slaveData[index].dTotalForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? item.dTotalMoney / dCurrencyRate : 0, dNetMoney);
+ });
+ }
+ masterData.dAdvanceMoney = 0;
+ masterData.bAdvance = false;
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType; /* 主表分摊算外币金额 */
+ if (commonUtils.isNotEmptyNumber(masterData.dTotalMoney)) {
+ masterData.dProductForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? masterData.dTotalMoney / dCurrencyRate : 0, dNetMoney);
+ }
+ this.props.onSaveState({ masterData, slaveData });
+ }
+ // let allTotalMoney = 0;
+ // let allRoundingMoney = 0;
+ // slaveData.forEach((child) => {
+ // if (child.dTotalMoney !== undefined) {
+ // allTotalMoney += child.dTotalMoney * 1;
+ // }
+ // if (child.dRoundingMoney !== undefined) {
+ // allRoundingMoney += child.dRoundingMoney * 1;
+ // }
+ // });
+ // this.props.onSaveState({ allTotalMoney, allRoundingMoney });
+ return masterData;
+ };
+
+ handleImport = async (num) => {
+ const {
+ sModelsId, sModelsType, masterConfig, masterData, slaveData, slaveDelData: slaveDelDataOld, app,
+ } = this.props;
+ if (commonUtils.isEmpty(masterData.sWareHouseId)) {
+ message.error(commonFunc.getConfigShowName(masterConfig, 'sWareHouseId') + commonFunc.showMessage(app.commonConst, 'isNotNull')); // 不能为空!
+ return;
+ }
+ let url;
+ if (sModelsType.includes('productStock/')) {
+ url = `${commonConfig.server_host}eleProductStock/getEleProductStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}&num=${num}`;
+ } else {
+ url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}&num=${num}`;
+ }
+
+ const dataReturn = (await commonServices.getService(this.props.app.token, url)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows;
+ const slaveDelData = commonUtils.isEmptyArr(slaveDelDataOld) ? [] : slaveDelDataOld;
+ slaveData.forEach((item) => {
+ item.handleType = 'del';
+ slaveDelData.push({ ...item });
+ });
+ returnData.forEach((item, index) => {
+ const tableDataRow = this.handleTableAdd('slave', true);
+ item.handleType = 'add';
+ item.sParentId = masterData.sId;
+ item.iOrder = index + 1;
+ returnData[index] = { ...tableDataRow, ...item };
+ });
+ this.props.onSaveState({ slaveData: returnData, slaveDelData });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ this.props.onSaveState({ isGetDataVisible: false });
+ };
+
+ handleOutTemplate = async () => {
+ const {
+ token, formData,
+ } = this.props;
+ const slaveConfig = formData.filter(item => item.sGrd === 'importTemplate')[0];
+ window.location.href = `${commonConfig.server_host}import/exportTemplet?gdsconfigformmasterId=${slaveConfig.sId}&token=${token}`;
+ };
+
+ /* 导出模版数据 */
+ handleOutTemplateData = async () => {
+ const {
+ slaveConfig, formRoute, masterData, sortedInfo,
+ } = this.props;
+ const sort = commonUtils.isNotEmptyObject(sortedInfo) ? sortedInfo.order === 'ascend' ? 'asc' : 'desc' : '';
+ const slaveOrderBy = commonUtils.isNotEmptyObject(sortedInfo) && Object.keys(sortedInfo).length > 0 ? { [sortedInfo.columnKey]: sort } : ''; //
+ const sId = commonUtils.isNotEmptyObject(masterData) ? masterData.sId : '';
+ if (commonUtils.isNotEmptyObject(sId)) {
+ const sSqlCondition = { sParentId: sId };
+ let url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${slaveConfig.sParentId}&token=${this.props.app.token}&sName=${formRoute}`;
+ if (commonUtils.isNotEmptyObject(sSqlCondition)) {
+ url = `${url}&sSqlCondition=${encodeURIComponent(JSON.stringify(sSqlCondition))}`;
+ }
+ if (slaveOrderBy !== undefined && slaveOrderBy !== '' && Object.keys(slaveOrderBy).length > 0) {
+ url = `${url}&sFilterOrderBy=${encodeURIComponent(JSON.stringify(slaveOrderBy))}`;
+ }
+ window.open(url);
+ } else {
+ message.warn('没有主表数据!');
+ }
+ };
+
+
+ /* 导入未清数据 */
+ handleImportFormData = () => {
+ const { masterData, sModelsType } = this.props;
+ if (commonUtils.isNotEmptyObject(masterData)) {
+ let bFilterProValue = '';
+ let bFilterProName = '';
+ if (sModelsType === 'cashier/payment') { /* 付款单 */
+ const { sSupplyName, sSupplyId } = masterData;
+ if (commonUtils.isEmptyObject(sSupplyName)) {
+ message.error('供应商名称不能为空!');
+ return;
+ } else {
+ bFilterProName = 'sSupplyGuid_pro';
+ bFilterProValue = sSupplyId;
+ }
+ } else if (sModelsType === 'cashier/receipt') { /* 收款单 */
+ const { sCustomerName, sCustomerId } = masterData;
+ if (commonUtils.isEmptyObject(sCustomerName)) {
+ message.error('客户名称不能为空!');
+ return;
+ } else {
+ bFilterProName = 'sCustomerGuid_pro';
+ bFilterProValue = sCustomerId;
+ }
+ }
+ this.props.onSaveState({ importFormDataVisible: true, bFilterProName, bFilterProValue });
+ }
+ }
+ handleDesignFunction = () => {
+ this.props.onSaveState({ visibleStatement: true });
+ };
+ handleBatchPriceUpdate = () => {
+ const { slaveData, slaveSelectedRowKeys, app } = this.props;
+ if (slaveSelectedRowKeys === undefined || slaveSelectedRowKeys.length !== 1) {
+ return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择一条数据进行操作 */
+ } else {
+ const batchPriceUpdateData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ this.props.onSaveState({ batchPriceUpdateData, visibleBatchPriceUpdate: true });
+ }
+ };
+
+ /* 有外币时,配置BtnBatchNPriceUpdate, 会调用这个方法 */
+ handleBatchNPriceUpdate = () => {
+ const { slaveData, slaveSelectedRowKeys, app } = this.props;
+ if (slaveSelectedRowKeys === undefined || slaveSelectedRowKeys.length !== 1) {
+ return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择一条数据进行操作 */
+ } else {
+ const batchNPriceUpdateData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ this.props.onSaveState({ batchNPriceUpdateData, visibleBatchNPriceUpdate: true });
+ }
+ };
+
+ /** 按钮操作事件 */
+ handleButtonClick = (name) => {
+ if (name === 'BtnDesignFunction') {
+ this.handleDesignFunction();
+ } else if (name === 'BtnBatchPriceUpdate') {
+ this.handleBatchPriceUpdate();
+ } else if (name === 'BtnBatchNPriceUpdate') {
+ this.handleBatchNPriceUpdate();
+ } else if (name === 'BtnOutTemplate') {
+ this.handleOutTemplate();
+ } else if (name === 'BtnOutTemplateData') { /* 导出模版数据 */
+ this.handleOutTemplateData();
+ }
+ const { sModelsType } = this.props;
+ // 收付款分摊
+ if (sModelsType.includes('cashier/') || sModelsType.includes('sales/') || sModelsType.includes('purchase/')) {
+ if (name === 'BtnShare') {
+ this.handleShare();
+ }
+ if (sModelsType.includes('cashier/') && name === 'BtnImportFormData') { /* 导入未清数据 */
+ this.handleImportFormData(name);
+ }
+ } else if (sModelsType.includes('materialsStock/') || sModelsType.includes('productStock/')) {
+ if (name === 'BtnImport') {
+ this.props.onSaveState({ isGetDataVisible: true });
+ }
+ }
+ };
+
+ handleBtnChoose = async (name, sControlName, chooseConfig, recordIndex, tableName) => {
+ const { token } = this.props;
+ const url = `${commonConfig.server_host}/gdsmodule/getGdsmoduleById/${chooseConfig.sActiveId}?sModelsId=${chooseConfig.sActiveId}`;
+ const dataReturn = (await commonServices.getService(token, url)).data;
+ if (dataReturn.code === 1) {
+ const [returnData] = dataReturn.dataset.rows;
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: true, [`${name}ChooseData`]: returnData, slaveSelectedIndex: recordIndex, tableName,
+ });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+
+ // handleSelect = (name, selectConfig, selectData) => {
+ // const {
+ // [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterData, slaveSelectedIndex,
+ // } = this.props;
+ // if (commonUtils.isNotEmptyArr(selectData)) {
+ // selectData.forEach((item, index) => {
+ // const newCopyTo = {};
+ // newCopyTo.master = masterData;
+ // // newCopyTo.slave = item;
+ // let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ // tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ // tableDataRow.handleType = 'add';
+ // tableDataRow.sId = commonUtils.createSid();
+ // tableDataRow.sParentId = masterData.sId;
+ // if (name === 'slave' && selectConfig.sControlName === 'BtnChooseMaterials' && index === 0 && (commonUtils.isEmpty(tableData[slaveSelectedIndex].sProductName) || tableData[slaveSelectedIndex].sProductName === '')) {
+ // tableData[slaveSelectedIndex] = { ...tableData[slaveSelectedIndex], ...tableDataRow };
+ // } else {
+ // tableData.push(tableDataRow);
+ // }
+ // });
+ // }
+ // this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}ChooseVisible`]: false });
+ // };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ const {
+ masterData, masterConfig, token, sModelsId
+ } = this.props;
+ const _props = this.props;
+ const _this = this;
+ const copyConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.split('.').length === 2 && item.sControlName.includes(this.copyName))[0];
+ const sConfigformId = commonUtils.isEmpty(copyConfig) ? '' : copyConfig.sParentId;
+ const sControlName = this.copyName;
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfo/?sModelsId=${sModelsId}`;
+ const addState = {};
+ async function fetchData() {
+ for (let i = 0; i < selectData.length; i++) {
+ const sSqlCondition = { sProductId: selectData[i].sProductId, sId: selectData[i].sId };
+ const condition = { sConfigformId, sControlName, sSqlCondition };
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ for (const key in returnData) {
+ let arr = JSON.parse(JSON.stringify(returnData[key]));
+ arr.forEach((item, idx) => {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ let config = masterConfig.gdsconfigformslave.filter(item => item.sControlName.split('.').length === 3 && item.sControlName.includes(_this.copyName + '.' + key))[0];
+ config = config ? config.sAssignField : copyConfig.sAssignField;
+ let mixData = commonFunc.getDefaultData(_props[`${key}Config`] || {}, newCopyTo); // 取默认值
+ mixData = { ...mixData, ...commonFunc.getAssignFieldValue(config || copyConfig, item, newCopyTo) }; // 取赋值字段
+ mixData.handleType = 'add';
+ mixData.sId = commonUtils.createSid();
+ mixData.sParentId = masterData.sId;
+ if (key === 'master') {
+ mixData.sFormId = _this.props.masterData.sFormId;
+ mixData.sId = _this.props.masterData.sId;
+ mixData.maxBillNo = 'sBillNo';
+ arr[idx] = mixData;
+ } else {
+ mixData.sParentId = _this.props.masterData.sId;
+ arr[idx] = mixData;
+ }
+ })
+ if (addState[`${key}Data`] === undefined) {
+ addState[`${key}Data`] = [];
+ }
+ addState[`${key}Data`] = addState[`${key}Data`].concat(arr);
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ }
+ await fetchData();
+ if (addState.masterData) {
+ [addState.masterData] = addState.masterData;
+ }
+ if (Object.keys(addState).length) {
+ console.log('addState', addState);
+ this.props.onSaveState({...addState});
+ }
+ };
+
+ handleSelectCancel = (name) => {
+ this.props.onSaveState({ [`${name}ChooseVisible`]: false });
+ };
+ /* 双击弹出Memo */
+ // handleGetMemo = (name, sValue, sMemoFiled, sRecord) => {
+ // const { sCurrMemoProps } = this.props;
+ // let { [`${name}Data`]: tableData } = this.props;
+ // const addStata = { [`${sMemoFiled}`]: sValue };
+ // if (name !== 'master') {
+ // const iIndex = tableData.findIndex(item => item.sId === sRecord.sId);
+ // let handleType = tableData[iIndex].handleType;/* 获取操作类型 */
+ // handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ // addStata.handleType = handleType;
+ // tableData[iIndex] = { ...tableData[iIndex], ...addStata };
+ // } else {
+ // let handleType = tableData.handleType;/* 获取操作类型 */
+ // handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ // addStata.handleType = handleType;
+ // tableData = { ...tableData, ...addStata };
+ // }
+ // sCurrMemoProps.bVisibleMemo = false;
+ // this.props.onSaveState({ ...sCurrMemoProps, [`${name}Data`]: tableData });
+ // };
+ // handleGetMemoCancel = () => {
+ // const { sCurrMemoProps } = this.props;
+ // sCurrMemoProps.bVisibleMemo = false;
+ // this.props.onSaveState({ ...sCurrMemoProps });
+ // };
+ // async await
+ handleEleMaterialsStoreCurrQty = async (slaveData) => {
+ const { sModelsId, app } = this.props;
+ let flag = true;
+ const InsufficientInventory = commonFunc.showMessage(app.commonConst, 'InsufficientInventory');/* 库存不足,不能领料 */
+ const MateriaTransferQuantityVerificationFailed = commonFunc.showMessage(app.commonConst, 'MateriaTransferQuantityVerificationFailed');/* 材料调拨数量校验失败,请稍后操作 */
+ const url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStoreCurrQty?sModelsId=${sModelsId}`;
+ for (const item of slaveData) {
+ const body = {
+ sMaterialsId: item.sMaterialsId, /* 查询条件 */
+ sMaterialsStyle: item.sMaterialsStyle,
+ sWareHouseId: item.sWareHouseId,
+ };
+ if (commonUtils.isNotEmptyStr(item.sLocationId)) {
+ body.sLocationId = item.sLocationId;
+ }
+ if (commonUtils.isNotEmptyStr(item.sWarehouseLocationId)) {
+ body.sWarehouseLocationId = item.sWarehouseLocationId;
+ }
+ if (commonUtils.isNotEmptyStr(item.sDefineNo)) {
+ body.sDefineNo = item.sDefineNo;
+ }
+ if (commonUtils.isNotEmptyStr(item.sDefineNo2)) {
+ body.sDefineNo2 = item.sDefineNo2;
+ }
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, body, url)).data;
+ if (dataReturn.code === 1) {
+ if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) {
+ const materials = dataReturn.dataset.rows[0];
+ if (materials.dAuxiliaryQty < item.dAuxiliaryQty) {
+ const sMaterialsName = commonUtils.isEmpty(item.sMaterialsName) ? item.sMaterialsName1 : item.sMaterialsName;
+ message.error(`[${sMaterialsName}${item.sMaterialsStyle}], ${InsufficientInventory}`);
+ flag = false;
+ break;
+ }
+ } else {
+ const sMaterialsName = commonUtils.isEmpty(item.sMaterialsName) ? item.sMaterialsName1 : item.sMaterialsName;
+ message.error(`[${sMaterialsName}${item.sMaterialsStyle}], ${InsufficientInventory}`);
+ flag = false;
+ break;
+ }
+ } else {
+ message.error(MateriaTransferQuantityVerificationFailed);
+ flag = false;
+ break;
+ }
+ }
+ return flag;
+ }
+ handleTableSelectRowChange = async (name, selectedRowKeys, changeValue) => {
+ if (name === 'slave' || name === 'master') {
+ const { token, sModelsId, [`${name}Data`]: tableData } = this.props;
+ if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ let url = '';
+ let sCustomerId = '';
+ if (sModelsId === '192116810113315228246447250' || sModelsId === '101251240115015952245193980') {
+ if (name === 'master') {
+ sCustomerId = changeValue.sCustomerId;
+ } else if (name === 'slave') {
+ const sCustomerIdIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (sCustomerIdIndex > -1) {
+ sCustomerId = tableData[sCustomerIdIndex].sCustomerId;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(sCustomerId)) {
+ url = `${commonConfig.file_host_ebc}printReport/getReportByCustomerId/${sCustomerId}?sModelsId=${sModelsId}`;
+ const values = {};
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const menuChildData = masterReturn.dataset.rows;
+ this.props.onSaveState({ menuChildData });
+ }
+ }
+ } else {
+ let sProcessId = '';
+ if (name === 'master') {
+ sProcessId = changeValue.sProcessClassifyId;
+ } else if (name === 'slave') {
+ const sProcessIdIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (sProcessIdIndex > -1) {
+ sProcessId = tableData[sProcessIdIndex].sProcessClassifyId;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(sProcessId)) {
+ url = `${commonConfig.file_host_ebc}printReport/getReportByProcessId/${sProcessId}?sModelsId=${sModelsId}`;
+ const values = {};
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const menuChildData = masterReturn.dataset.rows;
+ this.props.onSaveState({ menuChildData });
+ }
+ }
+ }
+ }
+ } else if (name === 'control') {
+ const { treeData, sModelsType } = this.props; /* 赋值给树组件节点 */
+ if (sModelsType === 'sales/salesOrderPack') {
+ let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */
+ if (treeData !== undefined) {
+ treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ this.props.onSaveState({ treeSelectedKeys });
+ }
+ }
+ }
+ /* 点按钮删除时,会触发行点击事件 导致selectedRowKeys为删除行的sId */
+ // const { [`${name}Data`]: tableData } = this.props;
+ // if (Array.isArray(tableData) && tableData.length > 0 && selectedRowKeys.length) {
+ // const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ // if (iIndex === -1) {
+ // if (commonUtils.isNotEmptyArr(tableData) && tableData.length > 0) {
+ // selectedRowKeys = commonUtils.isNotEmptyArr(tableData) ? [tableData[0].sId] : [];
+ // }
+ // }
+ // }
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ // 获取重量
+ handleGetWeight = async () => {
+ const { masterConfig, app } = this.props;
+ const url = app.rxtx.sUrl;
+ const returnData = (await commonServices.getService(app.token, url)).data;
+ if (returnData.code === 1) {
+ const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnGetWeight');
+ const sAssignField = masterConfig.gdsconfigformslave[iConfigIndex].sAssignField;
+ const sAssignFieldStr = sAssignField.split(':')[0];
+ const sAssignFieldName = sAssignFieldStr.split('.')[0];
+ const sAssignFieldKey = sAssignFieldStr.split('.')[1];
+ const dWeight = returnData.dataset.rows[0].dWeight;
+ if (commonUtils.isNotEmptyObject([`${sAssignFieldName}Data`])) {
+ const { [`${sAssignFieldName}Data`]: tableData } = this.props;
+ tableData[tableData.length - 1][sAssignFieldKey] = dWeight;
+ this.props.onSaveState({ tableData: [`${sAssignFieldName}Data`] });
+ }
+ } else {
+ this.props.getServiceError(returnData);
+ }
+ }
+ handleViewClick = (name, sName, record) => {
+ if (name === 'process' && sName === 'sProcessParamStr') { // process sProcessParam
+ const { processConfig, enabled, sModelsType } = this.props;
+ const slaveSelectOneData = record;
+ let modalVisible = false;
+ const sProcessParamsSelects = [];
+ let paramType = '';
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData)) {
+ if (sModelsType.includes('manufacture/')) {
+ paramType = slaveSelectOneData.sWorkOrderParam;
+ } else if (sModelsType.includes('quotation/')) {
+ paramType = slaveSelectOneData.sProcessParam;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(paramType) && enabled) {
+ const sProcessParam = JSON.parse(paramType);
+ modalVisible = true;
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(sProcessParam[`sParam${i.toString()}`])) {
+ processConfig.gdsconfigformslave[iIndex].showName = sProcessParam[`sParam${i.toString()}`];
+ processConfig.gdsconfigformslave[iIndex].bVisible = !sProcessParam[`sParam${i.toString()}`].includes('参数值');
+ record[`sParam${i.toString()}`] = sProcessParam[`sParam${i.toString()}`];
+ sProcessParamsSelects.push(processConfig.gdsconfigformslave[iIndex]);
+ } else if (iIndex > -1) {
+ // processConfig.gdsconfigformslave[iIndex].showName = `sParamValue${i.toString()}`;
+ processConfig.gdsconfigformslave[iIndex].bVisible = true;
+ }
+ }
+ } else {
+ modalVisible = false;
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bVisible = true;
+ }
+ }
+ }
+ this.props.onSaveState({
+ processRecord: record,
+ sProcessParamsSelects,
+ sProcessParamsModalVisible: modalVisible,
+ });
+ } else {
+ this.props.onViewClick(name, sName, record);
+ }
+ };
+ /* 选择基础颜色 */
+ handleSelectSisColor = async (name, selectConfig, selectData) => {
+ const { enabled, processData, processSelectedRowId } = this.props;
+ if (enabled) {
+ let sColorSerialMemoStr = '';
+ const jsonData = [];
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ const {
+ sId, sName, dColor, CreateDate, sMakePerson,
+ } = item;
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sName = sName; /* 名称 */
+ jsonObj.dColor = dColor; /* 色序 */
+ jsonObj.CreateDate = CreateDate;
+ jsonObj.sMakePerson = sMakePerson;
+ sColorSerialMemoStr += `${sName}-${dColor},`;
+ jsonData.push(jsonObj);
+ });
+ if (commonUtils.isNotEmptyObject(sColorSerialMemoStr)) {
+ sColorSerialMemoStr = commonUtils.isNotEmptyArr(jsonData) ? JSON.stringify(jsonData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ }
+ }
+ const iIndex = processData.findIndex(item => item.sId === processSelectedRowId);
+ if (iIndex > -1) {
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sColorSerialMemo = sColorSerialMemoStr;
+ processData[iIndex] = { ...processData[iIndex], ...addState };
+ }
+ }
+ this.props.onSaveState({
+ sisColorChooseVisible: false,
+ });
+ }
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled } = this.props;
+ const sisColorSelectedRowKeys = [];
+ let jsonData = [];
+ if (name === 'process' && sName === 'sColorSerialMemo') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ const sColorSerialMemo = tableData[iIndex].sColorSerialMemo;
+
+ if (commonUtils.isNotEmptyObject(sColorSerialMemo)) {
+ try {
+ jsonData = JSON.parse(sColorSerialMemo);
+ jsonData.forEach((item) => {
+ sisColorSelectedRowKeys.push(item.sId);
+ });
+ } catch (ex) {
+ // console.log('ex', ex);
+ }
+ }
+ }
+ this.props.onSaveState({
+ sisColorChooseVisible: true,
+ processSelectedRowId: sId, /* 工序表选中行sId */
+ enabled,
+ sisColorSelectedRowKeys,
+ sisColorSelectedData: jsonData,
+ });
+ }
+ }
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ /* 根据上机长、上机宽,材料长,材料宽 计算自动排版数 */
+ handleResolveMachineComposing = (productLength, productWidth, maxMachineLength, maxMachineWidth) => {
+ let result1 = {};
+ const productLengthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(productLength, 0)); /* 产品长 */
+ const productWidthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(productWidth, 0)); /* 产品宽 */
+ const maxMachineLengthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(maxMachineLength, 0)); /* 材料长 */
+ const maxMachineWidthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(maxMachineWidth, 0)); /* 材料宽 */
+ if (isNaN(productLengthTemp) || productLengthTemp === 0 || isNaN(productWidthTemp) || productWidthTemp === 0 || isNaN(maxMachineLengthTemp) || maxMachineLengthTemp === 0 || isNaN(maxMachineWidthTemp) || maxMachineWidthTemp === 0) {
+ return result1;
+ }
+ const vh = this.handleDescVerticalComposing(productLength, productWidth, maxMachineLength, maxMachineWidth);
+ const hv = this.handleDescHorizonalComposing(productLength, productWidth, maxMachineLength, maxMachineWidth);
+ const totalNumVH = vh.totalNum;
+ const totalNumHV = hv.totalNum;
+ if (totalNumVH === totalNumHV) {
+ if (vh.remaining === 0) {
+ result1 = vh;
+ } else {
+ result1 = hv;
+ }
+ } else if (totalNumVH > totalNumHV) {
+ result1 = vh;
+ } else {
+ result1 = hv;
+ }
+ return result1;
+ };
+
+ handleDescHorizonalComposing = (productLength, productWidth, maxMachineLength, maxMachineWidth) => {
+ let horizonalWWNum = 0;
+ let horizonalLWNum = 0;
+ let verticalLLNum = 0;
+ let verticalLWNum = 0;
+ let totalNum = 0;// 总的排列数目
+ let totalLength = 0;// 上机长,即最大排列占据的长度
+ let totalWidth = 0;// 上机宽,即最大排列占据的宽度
+
+ let mLength = 0;
+ let mWidth = 0;
+ let horizonalRemaining = 0;
+ // let fTempmarginW = 0;
+ // let fTempmarginL = 0;
+ // const mTemp = 0;
+ const dmargin = 0;
+
+ const result1 = {};
+
+ if (maxMachineLength > maxMachineWidth || maxMachineLength === maxMachineWidth) {
+ mLength = maxMachineLength;
+ } else {
+ mLength = maxMachineWidth;
+ }
+
+ if (maxMachineLength < maxMachineWidth || maxMachineLength === maxMachineWidth) {
+ mWidth = maxMachineLength;
+ } else {
+ mWidth = maxMachineWidth;
+ }
+ maxMachineLength = mLength;
+ maxMachineWidth = mWidth;
+
+ // 按机器优先横排--竖向横排数量,即上述竖向横排一共排几行
+ verticalLLNum = Math.floor(maxMachineLength / this.handleZeroToOne(productWidth + commonUtils.convertFixNum(dmargin, 2)));
+ // 按机器优先横排--横向横排数量,即横向排列的时候,一行最多能排几个
+ verticalLWNum = Math.floor(maxMachineWidth / this.handleZeroToOne(productLength + commonUtils.convertFixNum(dmargin, 2)));
+
+ totalNum += verticalLLNum * verticalLWNum;
+
+ // 画册类,不能混排,而且只能是偶数,如果是奇数,则首选在长方向去掉一列,
+ horizonalRemaining = 0;
+ // fTempmarginW = 0;// 宽方向 需减少的出血
+ // fTempmarginL = 0;// 长方向 需减少的出血
+ horizonalWWNum = 0;
+ horizonalLWNum = 0;
+
+ if (totalNum > 0) {
+ // 上述横排完成之后,剩余的右边宽度,用于竖向排列
+ horizonalRemaining = maxMachineWidth - (verticalLWNum * (productLength + commonUtils.convertFixNum(dmargin, 2)));
+ // 按机器优先长排--竖向横排一行能排的数量,即排完竖向之后,剩余的排横向的,看一行能排多少个
+
+ // / 剩余空间 横向 排数量
+ horizonalWWNum = Math.floor(horizonalRemaining / (productWidth + commonUtils.convertFixNum(dmargin, 2)));
+ // 剩余空间 竖向 排数量
+ horizonalLWNum = Math.floor(maxMachineLength / (productLength + commonUtils.convertFixNum(dmargin, 2)));
+ }
+
+ if (horizonalWWNum * horizonalLWNum === 0) {
+ // 不是混排的情况
+ totalLength = verticalLLNum * (productWidth + commonUtils.convertFixNum(dmargin, 2));
+ totalWidth = verticalLWNum * (productLength + commonUtils.convertFixNum(dmargin, 2));
+ } else {
+ totalNum += horizonalWWNum * horizonalLWNum;
+ // 有可能是左边横向排列占用的长度更长,也有可能是剩余右侧的竖向排列方式占用的长度更长,最终更长的那个作为上机尺寸
+ if (verticalLLNum * (productWidth + dmargin) > horizonalLWNum * (productLength + commonUtils.convertFixNum(dmargin, 2))) {
+ totalLength = verticalLLNum * (productWidth + dmargin);
+ } else {
+ totalLength = horizonalLWNum * (productLength + dmargin);
+ }
+ // 最终宽度是所有左侧横向排列占据的宽度以及右侧剩余空间竖向排列占据的宽度之和
+ totalWidth = (verticalLWNum * (productLength + dmargin)) + (horizonalWWNum * (productWidth + commonUtils.convertFixNum(dmargin, 2)));
+ }
+
+ result1.remaining = horizonalLWNum * horizonalWWNum;
+ result1.iLengthComposing = verticalLLNum;
+ result1.iWidthComposing = verticalLWNum;
+
+
+ result1.sMethod = `W#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+L#${commonUtils.convertNumberToStr(horizonalWWNum)}*${commonUtils.convertNumberToStr(horizonalLWNum)}`;
+ result1.sMaterialMethod = `W#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+L#${commonUtils.convertNumberToStr(horizonalWWNum)}*${commonUtils.convertNumberToStr(horizonalLWNum)}`;
+ // 最终要保存排列之后的长和宽,按机器排的时候获取的是上机尺寸;按材料排的时候,就是最优材料排版
+ if (totalLength > totalWidth) {
+ result1.totalLength = totalLength;
+ result1.totalWidth = totalWidth;
+ } else {
+ result1.totalLength = totalWidth;
+ result1.totalWidth = totalLength;
+ }
+ // 最终保存最大数目,以便比较最优排版数
+ result1.totalNum = totalNum;
+ return result1;
+ };
+ handleDescVerticalComposing = (productLength, productWidth, maxMachineLength, maxMachineWidth) => {
+ let horizonalWWNum = 0;
+ let horizonalLWNum = 0;
+ let verticalLLNum = 0;
+ let verticalLWNum = 0;
+ let mLength = 0;
+ let mWidth = 0;
+ let verticalRemaining = 0;
+ // eslint-disable-next-line no-unused-vars
+ let fTempmarginW = 0;
+ // eslint-disable-next-line no-unused-vars
+ let fTempmarginL = 0;
+ const result1 = {};
+ // eslint-disable-next-line no-unused-vars
+ const TYHLLookupList = 0;
+ const dmargin = 0;
+ let totalNum = 0;// 总的排列数目
+ let totalLength = 0;// 上机长,即最大排列占据的长度
+ let totalWidth = 0; // 上机宽,即最大排列占据的宽度
+ if (maxMachineLength >= maxMachineWidth) {
+ mLength = maxMachineLength;
+ } else {
+ mLength = maxMachineWidth;
+ }
+
+ if (maxMachineLength <= maxMachineWidth) {
+ mWidth = maxMachineLength;
+ } else {
+ mWidth = maxMachineWidth;
+ }
+ maxMachineLength = mLength;
+ maxMachineWidth = mWidth;
+ // 画册类,不能混排,而且只能是偶数,如果是奇数,则首选在长方向去掉一列,
+ verticalRemaining = 0;
+
+ fTempmarginW = 0;// 宽方向 需减少的出血
+ fTempmarginL = 0;// 长方向 需减少的出血
+
+ horizonalWWNum = 0;
+ horizonalLWNum = 0;
+
+ // 按机器优先长排--竖排竖方向排多少个
+ verticalLLNum = Math.floor(maxMachineLength / this.handleZeroToOne(commonUtils.convertFixNum(productLength, 2) + commonUtils.convertFixNum(dmargin, 2)));
+ // 竖排横方向排多少个
+ verticalLWNum = Math.floor(maxMachineWidth / this.handleZeroToOne(commonUtils.convertFixNum(productWidth, 2) + commonUtils.convertFixNum(dmargin, 2)));
+ totalNum += verticalLLNum * verticalLWNum;
+
+ if (totalNum > 0) {
+ // 上述竖排完成之后,剩余的长度
+ verticalRemaining = maxMachineLength - (verticalLLNum * (commonUtils.convertFixNum(productLength, 2) + commonUtils.convertFixNum(dmargin, 2)));
+ // 剩余下面 竖向 排数量
+ horizonalLWNum = Math.floor(verticalRemaining / this.handleZeroToOne(productWidth + commonUtils.convertFixNum(dmargin, 2)));
+ // 剩余下面 横向 排数量
+ horizonalWWNum = Math.floor(maxMachineWidth / this.handleZeroToOne(productLength + commonUtils.convertFixNum(dmargin, 2)));
+ }
+
+ if (horizonalWWNum * horizonalLWNum === 0) {
+ totalLength = verticalLLNum * (productLength + commonUtils.convertFixNum(dmargin, 2));
+ totalWidth = verticalLWNum * (productWidth + commonUtils.convertFixNum(dmargin, 2));
+ } else {
+ totalNum += horizonalLWNum * horizonalWWNum;
+ totalLength = (verticalLLNum * (productLength + commonUtils.convertFixNum(dmargin, 2))) + ((productWidth + commonUtils.convertFixNum(dmargin, 2)) * horizonalLWNum);
+ // 最终宽度是所有左侧横向排列占据的宽度以及右侧剩余空间竖向排列占据的宽度之和
+ if (verticalLWNum * (productWidth + dmargin) > horizonalWWNum * (productLength + commonUtils.convertFixNum(dmargin, 2))) {
+ totalWidth = verticalLWNum * (productWidth + commonUtils.convertFixNum(dmargin, 2));
+ } else {
+ totalWidth = horizonalWWNum * (productLength + commonUtils.convertFixNum(dmargin, 2));
+ }
+ }
+ result1.remaining = horizonalLWNum * horizonalWWNum;
+ result1.iLengthComposing = verticalLLNum;
+ result1.iWidthComposing = verticalLWNum;
+ result1.sMethod = `L#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+W#${commonUtils.convertNumberToStr(horizonalLWNum)}*${commonUtils.convertNumberToStr(horizonalWWNum)}`;
+ result1.sMaterialMethod = `L#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+W#${commonUtils.convertNumberToStr(horizonalWWNum)}*${commonUtils.convertNumberToStr(horizonalLWNum)}`;
+ // 最终要保存排列之后的长和宽,按机器排的时候获取的是上机尺寸;按材料排的时候,就是最优材料排版
+ if (totalLength > totalWidth) {
+ result1.totalLength = totalLength;
+ result1.totalWidth = totalWidth;
+ } else {
+ result1.totalLength = totalWidth;
+ result1.totalWidth = totalLength;
+ }
+ // 最终保存最大数目,以便比较最优排版数
+ result1.totalNum = Math.floor(totalNum);
+ return result1;
+ };
+ handleZeroToOne = (num) => {
+ if (commonUtils.isEmptyNumber(num) && num === 0) {
+ num = 1;
+ }
+ return num;
+ };
+
+ /* 单据字段单击右键全部更新,弹出窗选择后,更新此列所有数据。(只更新非只读字段) */
+ handleContextMenuOk= async (contextMenuValue, contextMenuData, contextMenuType) => {
+ const {
+ contextMenuConfig, contextMenuTbName, [`${contextMenuTbName}Data`]: tableData, [`${contextMenuTbName}SelectedRowKeys`]: selectedRowKeys,
+ } = this.props;
+ if (commonUtils.isNotEmptyObject(contextMenuTbName) && commonUtils.isNotEmptyArr(tableData)) {
+ if (commonUtils.isNotEmptyArr(contextMenuConfig) && commonUtils.isNotEmptyObject(contextMenuConfig[0])) {
+ const tableConfig = contextMenuConfig[0];
+ const tableFilterData = tableData.filter(item => selectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(tableFilterData)) {
+ let changeData = [];
+ const chooseType = commonUtils.isNotEmptyNumber(contextMenuType) ? contextMenuType : 1;
+ if(chooseType === 1) {
+ changeData = tableData;
+ } else if(chooseType === 2) {
+ const iIndex = tableData.findIndex(item => selectedRowKeys.includes(item.sId));
+ changeData = tableData.filter((_, index) => index >= iIndex);
+ }
+ // const tableDataRow = tableFilterData[0];
+ if (commonUtils.isNotEmptyArr(changeData) && commonUtils.isNotEmptyObject(tableConfig.sName) && !commonUtils.isEmpty(contextMenuValue)) {
+ const sName = tableConfig.sName;
+ for (let i = 0; i < changeData.length; i++) {
+ const child = changeData[i];
+ const addState = {};
+ addState[sName] = contextMenuValue;
+ const iIndex = tableData.findIndex(row => row.sId === child.sId);
+ const bShowProcess = [
+ 'sMaterialsNo',
+ 'sMaterialsName',
+ 'dAuxiliaryQty',
+ 'dReelAuxiliaryQty',
+ 'dConversionQty',
+ 'sMaterialsStyle',
+ 'sMaterialsStyle',
+ 'dMaterialsQty',
+ 'dAuxiliaryLossQty',
+ 'dLossQty',
+ 'sProcessId',
+ 'sProcessNo',
+ 'sProcessName'
+ ].includes(sName);
+ bShowProcess && message.loading({ content: , key: "xlyProcess", duration: 0, className: styles.xlyProcess});
+ if(iIndex > -1) {
+ addState.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? 'update' : tableData[iIndex].handleType;
+ tableData[iIndex] = { ...tableData[iIndex], ...addState, ...contextMenuData };
+ const changeValue = { ...contextMenuData };
+ changeValue[sName] = contextMenuValue;
+ this.xlyProcessPercent = ((i + 1) / changeData.length * 100).toFixed(2);
+ const duration = i === changeData.length - 1 ? 1 : 0;
+ bShowProcess && message.loading({ content: , key: "xlyProcess", duration, className: styles.xlyProcess});
+
+ /* 手动触发改变事件 */
+ const result = await this.handleTableChange(contextMenuTbName, sName, changeValue, child.sId, [], true);
+ tableData[iIndex] = { ...tableData[iIndex], ...result };
+ }
+ }
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ [`${contextMenuTbName}Data`]: tableData,
+ contextMenuModalVisible: false, /* 右击全部更新弹窗 */
+ });
+ }
+
+ /* 工单、工艺卡、报价单上移下移排序 */
+ orderNum = (tableData, controlSelectedRowKeys) => {
+ /* 部件工序排序 */
+ const tableFilterData = tableData.filter(item => controlSelectedRowKeys.includes(item.sControlId));
+ if (commonUtils.isNotEmptyArr(tableFilterData)) {
+ tableFilterData.forEach((item, index) => {
+ item.iOrder = index + 1;
+ item.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ const index1 = tableData.findIndex(item1 => item1.sId === item.sId);
+ if (index1 > -1) {
+ tableData[index1] = { ...tableData[index1], ...item };
+ }
+ });
+ }
+ /* 成品工序 */
+ const tableFilterCPData = tableData.filter(item => item.sType === '3');
+ if (commonUtils.isNotEmptyArr(tableFilterCPData)) {
+ let num = 1001;
+ tableFilterCPData.forEach((item) => {
+ item.iOrder = num;
+ item.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ const index1 = tableData.findIndex(item1 => item1.sId === item.sId);
+ num += 1;
+ if (index1 > -1) {
+ tableData[index1] = { ...tableData[index1], ...item };
+ }
+ });
+ }
+ return tableData;
+ };
+
+ /* 单据预览PDF */
+ handleBtnPreview = async (isWait) => {
+ const {
+ app, sModelsId, masterConfig, masterData, slaveConfig, reportData, formRoute, enabled,
+ } = this.props;
+ if (formRoute === '/indexPage/commonCheckBill' && commonUtils.isNotEmptyObject(masterData) && !enabled) {
+ const { token } = app;
+ const queryFilter = {};
+ queryFilter[masterConfig.sId] = { sId: masterData.sId };
+ if (commonUtils.isNotEmptyObject(slaveConfig)) {
+ queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } };
+ }
+ let sActiveId = '';
+ const queryFilterJson = JSON.stringify(queryFilter);
+ /* 拿到打印报表名称 */
+ let printReportName = 'report';
+ if (commonUtils.isNotEmptyArr(reportData)) {
+ const iIndex = 0;
+ if (iIndex > -1) {
+ printReportName = reportData[iIndex].sReportName;
+ sActiveId = reportData[iIndex].sId;
+ }
+ } else {
+ message.error('没有报表模块!');
+ return;
+ }
+
+ /* 调用POST接口拿到PDF地址 */
+ const dataUrl = `${commonConfig.file_host_ebc}printReport/printPreviewPdf/${sActiveId}/${printReportName}.pdf?${false ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}`;
+ const value = {
+ queryFilter: queryFilterJson,
+ };
+ const dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const url = dataReturn.dataset.rows[0];
+ if (commonUtils.isNotEmptyObject(url)) {
+ const previewUrl = `${commonConfig.file_host}file/downloadPreviewPdf?savePathStr=${url}`;
+ if (isWait) {
+ return previewUrl;
+ } else {
+ this.props.onSaveState({ previewUrl });
+ }
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ };
+
+ handleOpenPrintTab = (url) => {
+ const { dispatch } = this.props;
+ const newsId = '01251240115015952245193980'; /* 表格行的sId */
+ const newKey = new Date().getTime().toString();
+ const route = '/indexPage/printPdf';
+ const title = '预览PDF';
+ const sModelsType = 'print/printPdf';
+ const previewUrl = url;
+ const pane = {
+ title, route, formId: newsId, key: newKey, sModelsType, previewUrl,
+ };
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ };
+
+ handleCloseProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({
+ productProcessInfoChooseVisible: false,
+ });
+ }
+
+ render() {
+ const { masterData } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+ );
+ }
+ };
+};
diff --git a/src/components/Common/CommonColumnList.js b/src/components/Common/CommonColumnList.js
new file mode 100644
index 0000000..31dc1fb
--- /dev/null
+++ b/src/components/Common/CommonColumnList.js
@@ -0,0 +1,275 @@
+/**
+ * @Date: 2019-05-28T13:23:00+08:00
+ * @Last modified time: 2019-05-29T15:33:03+08:00
+ */
+/**
+ * Created by pengmin on 201210510. 该组件的作用是列表标题行通过存储过程返回值设定 不通过后台配置
+ */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin } from 'antd-v4';
+import CommonListEvent from './CommonListEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from './commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '../Common/ToolBar/ToolBarNew';
+import StaticEditTable from './CommonTable';/* 可编辑表格 */
+import styles from '../../index.less';
+import CommonBase from './CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from './commonBusiness';/* 单据业务功能 */
+import SearchComponent from './SearchComponent';/* 搜索组件 */
+import commonConfig from '../../utils/config';
+import * as commonUtils from '../../utils/utils';
+// import SlaveMemo from './SlaveMemo';
+import StaticEditTree from './Tree/StaticTree';
+import Eject from '../../assets/eject.svg';/* 弹出图标 */
+import Close from '../../assets/close.svg';/* 关闭图标 */
+import AntdDraggableModal from './AntdDraggableModal';
+import CommonListSelect from './CommonListSelect';/* 选择界面 */
+
+const { Header, Content } = Layout;
+let NoTotalData = '';
+class CommonList extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+ componentWillReceiveProps(nextProps) {
+ const { slaveData, slaveColumnNew } = nextProps;
+ /* 将数据集里中的字段作为标题行 */
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmpty(slaveColumnNew)) {
+ let column = [];
+ const slaveConfig = {};
+ const gdsconfigformslave = [];
+ const slaveRow = slaveData[0];
+ if (commonUtils.isNotEmptyObject(slaveRow)) {
+ for (const key of Object.keys(slaveRow)) {
+ if (commonUtils.isNotEmptyObject(key)) {
+ column.push({
+ title: key,
+ dataIndex: key,
+ width: 120,
+ bFind: true,
+ bNotEmpty: false, /* 设置表格必填项*号 */
+ });
+ const configObj = {};
+ configObj.bVisible = true;
+ if (key.includes('Id')) {
+ configObj.bVisible = false;
+ }
+ configObj.bNotEmpty = true;
+ configObj.showName = key;
+ configObj.sName = key;
+ configObj.iFitWidth = 120;
+ gdsconfigformslave.push(configObj);
+ }
+ }
+ slaveConfig.gdsconfigformslave = gdsconfigformslave;
+ column = commonFunc.getHeaderConfig(slaveConfig);
+ }
+ this.props.onSaveState({ slaveColumnNew: column, slaveColumn: column, slaveConfig });
+ }
+ }
+ // ----------------------------数据修改回带end ---------------------------- //
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ handleSelectModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, logVisible,
+ } = props;
+ // isSmall将分页变小,以及去掉跳转页面和总条数记录
+ /* 回带表单 */
+ if (commonUtils.isNotEmptyObject(slavePagination)) {
+ if (isSmall) {
+ slavePagination.showTotal = null;
+ }
+ }
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonConfig.pageSize,
+ ...slavePagination,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ onSaveState: props.onSaveState,
+ clearArray: props.clearArray,
+ readOnly: true,
+ isSmall,
+ sGroupByList: props.sGroupByList,
+ };
+ const masterSum = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bSum && item.sName !== '') : [];
+ const masterTitleGroup = commonUtils.isNotEmptyObject(slaveColumn) ? slaveColumn.filter(item => commonUtils.isNotEmptyObject(item.title) && item.title.indexOf('-') > -1) : [];
+ const hasColumnGroup = masterTitleGroup.length;
+ if (masterSum.length > 0) {
+ NoTotalData = hasColumnGroup > 0 ? 'TitleGroup' : 'NoTitleGroup';
+ } else {
+ NoTotalData = hasColumnGroup > 0 ? 'NoTotalData TitleGroup' : 'NoTotalData NoTitleGroup';
+ }
+ // const mProps = { ...commonBusiness.createMemoProps('master', props)};
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ };
+ const logProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'logView',
+ config: props.logConfig,
+ select: props.onSelectModal.bind(this, 'logVisible'),
+ selectCancel: props.onCancelModal.bind(this, 'logVisible'),
+ sModelsType: 'modal/logView',
+ },
+ },
+ token: props.app.token,
+ slaveColumn: props.logColumn, /* 表头 */
+ slaveConfig: props.logConfig,
+ slaveData: props.logData,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ pageLoading: false,
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonList));
diff --git a/src/components/Common/CommonListA.js b/src/components/Common/CommonListA.js
new file mode 100644
index 0000000..a9f7f2d
--- /dev/null
+++ b/src/components/Common/CommonListA.js
@@ -0,0 +1,231 @@
+/* 此组件作用是 列表绕开注册 */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin, Slider } from 'antd';
+import CommonListEvent from '@/components/Common/CommonListEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组件 */
+import commonConfig from '@/utils/config';
+import * as commonUtils from '@/utils/utils';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/eject.svg';/* 弹出图标 */
+import Close from '@/assets/close.svg';/* 关闭图标 */
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+
+const { Header, Content } = Layout;
+let NoTotalData = '';
+class CommonListA extends Component {
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ const currentTab = document.getElementById('navTabWrap').children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ handleSelectModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, logVisible,
+ } = props;
+ // isSmall将分页变小,以及去掉跳转页面和总条数记录
+ /* 回带表单 */
+ if (commonUtils.isNotEmptyObject(slavePagination)) {
+ if (isSmall) {
+ slavePagination.showTotal = null;
+ }
+ }
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ ...slavePagination,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ onSaveState: props.onSaveState,
+ clearArray: props.clearArray,
+ readOnly: true,
+ isSmall,
+ sGroupByList: props.sGroupByList,
+ };
+ const masterSum = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bSum && item.sName !== '') : [];
+ const masterTitleGroup = commonUtils.isNotEmptyObject(slaveColumn) ? slaveColumn.filter(item => commonUtils.isNotEmptyObject(item.title) && item.title.indexOf('-') > -1) : [];
+ const hasColumnGroup = masterTitleGroup.length;
+ if (masterSum.length > 0) {
+ NoTotalData = hasColumnGroup > 0 ? 'TitleGroup' : 'NoTitleGroup';
+ } else {
+ NoTotalData = hasColumnGroup > 0 ? 'NoTotalData TitleGroup' : 'NoTotalData NoTitleGroup';
+ }
+ // const mProps = { ...commonBusiness.createMemoProps('master', props)};
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ };
+ const logProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'logView',
+ config: props.logConfig,
+ select: props.onSelectModal.bind(this, 'logVisible'),
+ selectCancel: props.onCancelModal.bind(this, 'logVisible'),
+ sModelsType: 'modal/logView',
+ },
+ },
+ token: props.app.token,
+ slaveColumn: props.logColumn, /* 表头 */
+ slaveConfig: props.logConfig,
+ slaveData: props.logData,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ pageLoading: false,
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonListA));
diff --git a/src/components/Common/CommonListEvent.js b/src/components/Common/CommonListEvent.js
index 7118792..53837a1 100644
--- a/src/components/Common/CommonListEvent.js
+++ b/src/components/Common/CommonListEvent.js
@@ -4,7 +4,7 @@
* Created by mar105 on 2019-03-27.
*/
import React, { Component } from 'react';
-import { Modal, message } from 'antd';
+import { Modal, message } from 'antd-v4';
import * as commonUtils from '../../utils/utils'; /* 通用方法 */
import * as commonFunc from './commonFunc'; /* 通用单据方法 */
import commonConfig from '../../utils/config';
diff --git a/src/components/Common/CommonListLeft/index.js b/src/components/Common/CommonListLeft/index.js
new file mode 100644
index 0000000..edc74a4
--- /dev/null
+++ b/src/components/Common/CommonListLeft/index.js
@@ -0,0 +1,500 @@
+/* eslint-disable */
+import React, { Component } from 'react';
+import { Form, Icon } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin, Slider, Button } from 'antd';
+import { MessageOutlined, MinusOutlined } from '@ant-design/icons';
+import CommonListEvent from '@/components/Common/CommonListEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组件 */
+import commonConfig from '@/utils/config';
+import * as commonUtils from '@/utils/utils';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/eject.svg';/* 弹出图标 */
+import Close from '@/assets/close.svg';/* 关闭图标 */
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+import WorkOrderSystemAddModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemAdd';
+import WorkOrderSystemDetailModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemDetail';
+
+const { Header, Content } = Layout;
+let NoTotalData = '';
+class CommonList extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ isRender: 0,
+ treeData: [],
+ pageSize: 20,
+ pageNum: 1,
+ expandAll: true,
+ expandedTreeKeys: [],
+ checkModelStatus: false,
+ defaultKey: 'unset',
+ slideFlag: localStorage.getItem(`treeSlide_${this.props.sModelsId}`) ? +localStorage.getItem(`treeSlide_${this.props.sModelsId}`) : 0,
+ };
+ }
+ onTreeExpandChange = () => {
+ const oldState = this.state.expandAll;
+ const arr = [];
+ if (!oldState) {
+ this.props.treeData.forEach((item) => {
+ arr.push(item.sId + item.sProcessId + item.iOrder);
+ });
+ }
+ this.setState({
+ expandAll: !oldState,
+ expandedTreeKeys: arr,
+ });
+ }
+
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ handleSelectModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, logVisible, sModelsType, slaveData, slaveFilterCondition, onTreeExpandChange,
+ flowHistroyId, flowHistroyVisible, app, expandAll,
+ } = props;
+ const { userinfo, token } = app;
+ // isSmall将分页变小,以及去掉跳转页面和总条数记录
+ /* 回带表单 */
+ if (commonUtils.isNotEmptyObject(slavePagination)) {
+ // if (isSmall) {
+ // slavePagination.showTotal = null;
+ // }
+ }
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ ...slavePagination,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ let slaveTreeData = [];
+ /* 包含子节点的通用列表 */
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveData)) {
+ const addSate = props.onGetSlaveTreeData(slaveData);
+ if (commonUtils.isNotEmptyObject(addSate)) {
+ // eslint-disable-next-line prefer-destructuring
+ slaveTreeData = addSate.slaveTreeData;
+ }
+ } else {
+ slaveTreeData = slaveData;
+ }
+
+
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ data: slaveTreeData,
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ onSaveState: props.onSaveState,
+ clearArray: props.clearArray,
+ readOnly: true,
+ isSmall,
+ sGroupByList: props.sGroupByList,
+ customConfig: props.customConfig,
+ };
+ /* 有树形的不用虚拟列表 */
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveTreeData)) {
+ tableProps.noVlist = true;
+ }
+ const masterSum = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bSum && item.sName !== '') : [];
+ const masterTitleGroup = commonUtils.isNotEmptyObject(slaveColumn) ? slaveColumn.filter(item => commonUtils.isNotEmptyObject(item.title) && item.title.indexOf('-') > -1) : [];
+ const hasColumnGroup = masterTitleGroup.length;
+ if (masterSum.length > 0) {
+ NoTotalData = hasColumnGroup > 0 ? 'TitleGroup' : 'NoTitleGroup';
+ } else {
+ NoTotalData = hasColumnGroup > 0 ? 'NoTotalData TitleGroup' : 'NoTotalData NoTitleGroup';
+ }
+ // const mProps = { ...commonBusiness.createMemoProps('master', props)};
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ };
+ const logProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'logView',
+ config: props.logConfig,
+ select: props.onSelectModal.bind(this, 'logVisible'),
+ selectCancel: props.onCancelModal.bind(this, 'logVisible'),
+ sModelsType: 'modal/logView',
+ },
+ },
+ token: props.app.token,
+ slaveColumn: props.logColumn, /* 表头 */
+ slaveConfig: props.logConfig,
+ slaveData: props.logData,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ pageLoading: false,
+ };
+
+ const refreshSlaveTable = () => {
+ props.handleGetDataSet({
+ name: 'slave',
+ configData: props.slaveConfig,
+ condition: {
+ pageNum: 1,
+ pageSize: slavePagination.pageSize,
+ bFilter: slaveFilterCondition,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ };
+ const workOrderSystemAddProps = {
+ ...props,
+ onAddWorkOrderSuccess: () => {
+ props.onSaveState({ workOrderSystemAddModalVisible: false });
+ refreshSlaveTable();
+ },
+ };
+
+ let workOrderSystemDetailTitle = '';
+ if (commonUtils.isNotEmptyObject(props.slaveCurrentData)) {
+ const { sTitle, sModuleName, tCreateDate } = props.slaveCurrentData;
+ /* eslint-disable */
+ workOrderSystemDetailTitle = (
+ <>
+ {sTitle}
+ {`菜单名称: ${sModuleName} ${Array(10)
+ .fill('\xa0')
+ .join('')} 创建时间: ${tCreateDate.split(' ')[0]}`}
+
+
+ >);
+ /* eslint-enable */
+ }
+
+ let customWidth = 224;
+ if (localStorage.getItem(`customProductionScheduleTreeWidth_${props.sModelsId}`) !== '') {
+ customWidth = localStorage.getItem(`customProductionScheduleTreeWidth_${props.sModelsId}`);
+ }
+
+ const workOrderSystemDetailProps = {
+ ...props,
+ sId: commonUtils.isNotEmptyObject(props.slaveCurrentData) ? props.slaveCurrentData.sId : '',
+ refreshSlaveTable,
+ };
+
+ let addressStr = `${location.protocol}//${location.host}`;
+ if (sModelsType && sModelsType.includes('http')) {
+ addressStr = location.host;
+ }
+
+ const sFlowUrl = `${commonConfig.server_host}process/historyListerp/{sBillId}/{sBrandsId}/{sSubsidiaryId}/{sUserName}/{token}`;
+ const flowHistrory = sFlowUrl !== undefined ? sFlowUrl.replace('{sBrandsId}', userinfo.sBrandsId).replace('{sSubsidiaryId}', userinfo.sSubsidiaryId).replace('{sUserName}', userinfo.sUserName).replace('{sUserId}', userinfo.sId)
+ .replace('{token}', token)
+ .replace('{ipAddress}', addressStr)
+ .replace('{sBillId}', flowHistroyId) : '';
+
+ const handleResizeLayout = (e) => {
+ const originX = e.pageX;
+ const originWidth = props.treeDiv.getElementsByClassName('productionScheduleTree-sider')[0].offsetWidth;
+ let offset = 0;
+ window.onmousemove = function (e2) {
+ offset = e2.pageX - originX;
+ props.treeDiv.getElementsByClassName('productionScheduleTree-sider')[0].style.width = `${originWidth + offset}px`;
+ props.treeDiv.getElementsByClassName('productionScheduleTree-content')[0].style.width = `calc(100% - ${originWidth + offset + 10}px)`;
+ };
+ window.onmouseup = function () {
+ window.onmousemove = null;
+ window.onmousemove = null;
+ localStorage.setItem(`customProductionScheduleTreeWidth_${props.sModelsId}`, originWidth + offset + 10);
+ };
+ };
+
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonList));
diff --git a/src/components/Common/CommonListLeft/index.less b/src/components/Common/CommonListLeft/index.less
new file mode 100644
index 0000000..6680080
--- /dev/null
+++ b/src/components/Common/CommonListLeft/index.less
@@ -0,0 +1,241 @@
+:global{
+ .xly-list{
+ // background: #fff!important;
+ :global{
+ .ant-tree li{
+ padding: 1px;
+ }
+ }
+ .processListTable .ant-table-content .ant-table-body{
+ max-height: 100%;
+ }
+ .topTable .ant-table-content .ant-table-scroll{
+ padding-bottom: 0!important;
+ }
+ .topTable{
+ border-top: 1px solid transparent;
+ height: 100%;
+ .ant-table-content{
+ border-top: 1px solid #dbdbdb;
+ }
+ }
+ .productPlan{
+ .ant-row{
+ margin-left: 0!important;
+ margin-right: 0!important;
+ }
+ }
+ .ant-table-thead > tr > th {
+ background-color: #F2F2F2!important;
+ }
+ .process{
+ max-width: 48px!important;
+ width: 48px!important;
+ flex: 0 0 48px !important;
+ line-height: 48px;
+ background-color: #F2F2F2!important;
+ border: 1px solid #dbdbdb!important;
+ .ant-layout-sider-children{
+ a{
+ margin-bottom: 12px;
+ img{
+ width: 20px;
+ }
+ }
+ }
+ }
+ .search-container{
+ width: 100%;
+ position: relative;
+ z-index: 50;
+ }
+ //.ant-layout{
+ // background: #ffffff!important;
+ //}
+ #staticEditTable{
+ border-right: 1px solid #dbdbdb;
+ td{
+ height: 28px;
+ white-space: nowrap;
+ word-break: break-all;
+ }
+ }
+ .ant-tree li .ant-tree-node-content-wrapper{
+ height: 20px;
+ line-height: 20px;
+ }
+ .ant-tree-treenode{
+ .process{
+ max-width: 48px!important;
+ }
+ }
+ .listTree-container{
+ padding: 10px;
+ padding-top: 3px;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ }
+ .listTree-sider{
+ box-sizing: border-box;
+ width: 250px;
+ height: 100%;
+ border: 1px solid #d9d9d9;
+ float: left;
+ position: relative;
+ .resize-controller{
+ width: 6px;
+ height: 100%;
+ position: absolute;
+ z-index: 10;
+ right: -3px;
+ top: 0;
+ cursor: col-resize;
+ }
+ .listTree-sider-title{
+ width: 100%;
+ height: 30px;
+ padding-left: 6px;
+ line-height: 30px;
+ background: #f2f2f2;
+ box-sizing: border-box;
+ border-bottom: 1px solid #dbdbdb;
+ color: #101010;
+ font-size: 14px;
+ font-weight: bold;
+ .control-icon{
+ cursor: pointer;
+ }
+ span{
+ margin-left: 16px;
+ }
+ img{
+ margin-right: 20px;
+ }
+ }
+ .listTree-sider-content{
+ width: 100%;
+ height: ~"calc(100% - 30px)";
+ overflow: auto;
+ }
+ }
+ .listTree-content{
+ width: ~"calc(100% - 224px)";
+ float: left;
+ height: 100%;
+ #expandTable{
+ .ant-table-scroll{
+ padding-bottom: 30px!important;
+ }
+ }
+ .topTable .ant-table-content .ant-table-scroll{
+ padding-bottom: 0!important;
+ }
+ .ant-table-content .ant-table-body{
+ max-height: 100%!important;
+ }
+ }
+
+ /* 列表过滤树*/
+ .xly-filter-left-tree{
+ border-radius: 4px;
+ display: block;
+ background-color:#fff;
+ top:80px;
+ right:0px;
+ z-index:20000;
+ box-shadow: 0px 0px 16px rgba(0,0,0,0.05) /*阴影出现在元素的左侧*/
+ }
+ .xly-filter-left-tree #staticEditTree{
+ //width: 280px;
+ margin: 10px auto;
+ height:calc(100vh - 280px);
+ overflow: auto;
+ .ant-tree-child-tree{
+ font-size: 12px;
+ }
+ }
+
+ .noInput{
+ padding: 0!important;
+ display: flex;
+ width: 100%;
+ height: 100%;
+ align-items: center;
+ }
+ //.sActiveIdStyle{
+ // padding: 0!important;
+ //}
+ #staticEditTable{
+ .ant-form-item-children{
+ input{
+ padding: 0 0px!important;
+ border: none!important;
+ }
+ .sActiveIdStyle{
+ left: 0!important;
+ }
+ }
+ }
+ .workoutconfirm-node{
+ color: rgba(24, 144, 255, 100);
+ font-size: 12px;
+ font-weight: bold;
+ }
+ .process-node{
+ color: rgba(24, 144, 255, 100);
+ font-size: 12px;
+ font-weight: bold;
+ }
+ .machine-node{
+ color: #101010;
+ font-size: 12px;
+ font-weight: bold;
+ }
+ .hour-info{
+ color: #ff4d4f;
+ margin-left: 4px;
+ }
+ .workcenter-node{
+ color: #101010;
+ font-size: 12px;
+ font-weight: bold;
+ }
+ .productPlan{
+ height: 100%;
+ .tree-pagination-container{
+ width: 100%;
+ height: 100%;
+ position: relative;
+ .pagination-item{
+ position: absolute;
+ bottom: 0;
+ left: 8px;
+ }
+ .ant-row{
+ height: ~"calc(100% - 32px)"!important;
+ }
+ .topTable .ant-table-content .ant-table-scroll{
+ padding-bottom: 30px!important;
+ }
+ }
+ .tree-pagination-container-nopage{
+ .pagination-item{
+ display: none;
+ }
+ .ant-row{
+ height: ~"calc(100%)"!important;
+ }
+ }
+ .ant-row{
+ #staticEditTable{
+ td{
+ white-space: unset;
+ overflow: unset;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/components/Common/CommonListSelectAssignment.js b/src/components/Common/CommonListSelectAssignment.js
new file mode 100644
index 0000000..883ea43
--- /dev/null
+++ b/src/components/Common/CommonListSelectAssignment.js
@@ -0,0 +1,376 @@
+/* eslint-disable */
+/* 此组件作用是 成品工序多选产品 */
+
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin, Button, Row, Col } from 'antd';
+import CommonListEvent from './CommonListEvent';/* 继承销售模块业务功能 */
+// import * as commonUtils from '../../utils/utils'; /* 通用方法 */
+import * as commonFunc from './commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+// eslint-disable-next-line import/no-named-as-default
+import StaticEditTable from './CommonTable';/* 可编辑表格 */
+import StaticEditTree from '../Common/Tree/StaticTree';
+import styles from '../../index.less';
+import CommonBase from './CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from './commonBusiness';/* 单据业务功能 */
+import SearchComponent from './SearchComponent';
+import AntdDraggableModal from './AntdDraggableModal';
+import * as commonUtils from '../../utils/utils';
+import ShowType from './CommonComponent';
+
+const { Content } = Layout;
+
+class CommonList extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+ componentWillReceiveProps(nextProps) {
+ const {
+ slaveData, selectedRowKeys, sModelsType, slaveFilterData, slaveSelectedData,
+ } = nextProps;
+ if (slaveFilterData === undefined && sModelsType === 'search/sisColor') {
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const slaveFilterData = slaveData.filter(item => selectedRowKeys.includes(item.sSlaveId));
+ if (commonUtils.isNotEmptyArr(slaveFilterData)) {
+ this.props.onSaveState({
+ slaveFilterData, slaveSelectedRowKeys: selectedRowKeys,
+ });
+ }
+ }
+ } else if (commonUtils.isEmptyArr(slaveFilterData) && sModelsType === 'search/commonPopup') {
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ this.props.onSaveState({
+ slaveFilterData: slaveSelectedData,
+ });
+ }
+ }
+ }
+ /** 确认下单 */
+ handleSelect = () => {
+ const {
+ slaveFinalSelectedRowKeys, app, slaveSelectedData, slaveFinalData,
+ } = this.props;
+ let slaveFinalSelectedData = [];
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedRowKeys)) {
+ slaveFinalSelectedData = slaveFinalData.filter(item => slaveFinalSelectedRowKeys.includes(item.sSlaveId));
+ }
+ this.props.app.currentPane.select(app.currentPane.name, app.currentPane.config, slaveSelectedData, slaveFinalSelectedData);
+ /* 成品没选择产品时 Modal不关闭 */
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ this.props.app.currentPane.selectCancel(app.currentPane.name);
+ }
+ this.props.onSaveState({
+ slaveFilterData: [],
+ });
+ };
+ handleDoubleClickSelect = () => {
+ const { slaveConfig } = this.props;
+ if (commonUtils.isNotEmptyObject(slaveConfig) && !slaveConfig.bMutiSelect) { // 单选时双击选中数据
+ this.handleSelect();
+ }
+ }
+ /** 关闭 */
+ handleCancelModal = () => {
+ const { app } = this.props;
+ this.props.app.currentPane.selectCancel(app.currentPane.name);
+ };
+ /** 树节点多选框选中 */
+ handleTreeCheck = (checkedKeys, e) => {
+ this.props.onCheck(checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+ handleTableSelectRowChange = (name, selectedRowKeys, changeValue, chooseProcessParams) => { /* 表格行选择 */
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ if (name === 'slave') { /* 选择工序 从表表 */
+ const { [`${name}Data`]: tableData, slaveConfig, fatherModelsType } = this.props;
+ const { selectedRowKeysLength } = this.props;
+ let { slaveFilterData } = this.props;
+ slaveFilterData = slaveFilterData === undefined ? [] : slaveFilterData;
+ const tableSelectedData = tableData.filter(item => selectedRowKeys.includes(item.sId));
+ tableSelectedData.forEach((item) => {
+ const iIndex = slaveFilterData.findIndex(itemFilter => itemFilter.sId === item.sId);
+ if (iIndex === -1) {
+ slaveFilterData.push(item);
+ }
+ });
+ slaveFilterData = slaveFilterData.filter(item => selectedRowKeys.includes(item.sId));
+ this.props.onSaveState({
+ slaveFilterData,
+ });
+ if (chooseProcessParams) {
+ let modalVisible = false;
+ let slaveSelectOneData = {};
+ let slaveSelectOneDataIndex = -1;
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ if (selectedRowKeys instanceof Array) { // 多选情况下
+ if (commonUtils.isEmpty(selectedRowKeysLength) || (selectedRowKeys.length - selectedRowKeysLength) > 0) {
+ modalVisible = true;
+ }
+ slaveSelectOneDataIndex = tableData.findIndex(item => item.sId === selectedRowKeys[selectedRowKeys.length - 1]); // 多选选择最后一个
+ } else { // 单选情况下
+ slaveSelectOneDataIndex = tableData.findIndex(item => item.sId === selectedRowKeys);
+ }
+ if (slaveSelectOneDataIndex > -1) {
+ slaveSelectOneData = tableData[slaveSelectOneDataIndex];
+ }
+ }
+ // let masterData = {};
+ const sProcessParamsSelects = [];
+ let paramType = '';
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData) && commonUtils.isNotEmptyObject(fatherModelsType)) {
+ if (fatherModelsType.includes('manufacture/')) {
+ paramType = slaveSelectOneData.sWorkOrderParam;
+ } else if (fatherModelsType.includes('quotation/')) {
+ paramType = slaveSelectOneData.sProcessParam;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(paramType)) {
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(slaveSelectOneData[`sParam${i.toString()}`])) {
+ slaveConfig.gdsconfigformslave[iIndex].showName = slaveSelectOneData[`sParam${i.toString()}`];
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = !slaveSelectOneData[`sParam${i.toString()}`].includes('参数值');
+ // masterData = { ...masterNewData, ...commonUtils.convertStrToObj(slaveFilterData[0].sProcessParam) };
+ sProcessParamsSelects.push(slaveConfig.gdsconfigformslave[iIndex]);
+ } else if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ } else {
+ modalVisible = false;
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ }
+ this.props.onSaveState({
+ sProcessParamsModalVisible: modalVisible,
+ sProcessParamsSelects,
+ slaveSelectOneDataIndex,
+ selectedRowKeysLength: selectedRowKeys.length,
+ });
+ }
+ }
+ }
+ handleCancelProcessParamsModalVisible = () => {
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk = () => {
+ const {
+ slaveData, slaveSelectOneDataIndex, slaveFilterData, sProcessParamsSelects,
+ } = this.props;
+ let sProcessParamStr = '';
+ if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveSelectOneDataIndex) && commonUtils.isNotEmptyArr(slaveFilterData) && commonUtils.isNotEmptyArr(sProcessParamsSelects)) {
+ // eslint-disable-next-line array-callback-return
+ sProcessParamsSelects.map((item) => {
+ sProcessParamStr += `${item.showName}:${slaveData[slaveSelectOneDataIndex][item.sName]},`;
+ });
+ slaveFilterData[slaveFilterData.length - 1].sProcessParamStr = sProcessParamStr;
+ slaveFilterData[slaveFilterData.length - 1] = { ...slaveFilterData[slaveFilterData.length - 1], ...slaveData[slaveSelectOneDataIndex] };
+ }
+ this.props.onSaveState({
+ slaveFilterData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+ // ----------------------------数据修改回带end ---------------------------- //
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ slavePagination,
+ app,
+ // masterData: masterDataNew,
+ slaveData,
+ sProcessParamsSelects,
+ slaveSelectedRowKeys: selectedRowKeys,
+ sModelsType,
+ } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const pagination = {
+ ...slavePagination,
+ size: 'large',
+ pageSize: 1000,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: {
+ rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange, chooseProcessParams: true, sModelsType, AutoTableHeight: 350, // chooseProcessParams为选择工序中点击工序名称表格行出现弹窗
+ },
+ };
+ const tableFilterProps = {
+ ...commonBusiness.getTableTypes('slaveFinal', props),
+ rowSelectionType: 'checkbox',
+ tableProps: { rowKey: 'sSlaveId', onChange: props.onTitleChange, AutoTableHeight: 350 },
+ };
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onCheck: props.onCheck,
+ onSelect: props.onSelectTree,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ defaultExpandAll: true,
+ multiple: false,
+ expandedKeys: props.expandedKeys,
+ };
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题s */
+ const displayLeft = (sModelsType !== 'search/sisColor' && sModelsType !== 'search/commonPopup');
+
+ // let slaveFilterCondition = [];
+ // if (props.slaveFilterCondition) {
+ // slaveFilterCondition = props.slaveFilterCondition.slice(0);
+ // slaveFilterCondition.push({ bFilterCondition: '=', bFilterName: 'sType', bFilterValue: '3' });
+ // }
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonList));
diff --git a/src/components/Common/CommonListSelectMulti/index.js b/src/components/Common/CommonListSelectMulti/index.js
new file mode 100644
index 0000000..3e44c9e
--- /dev/null
+++ b/src/components/Common/CommonListSelectMulti/index.js
@@ -0,0 +1,1009 @@
+import React, { Component } from 'react';
+import { DownOutlined } from '@ant-design/icons';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin, Button, Row, Col, message } from 'antd';
+import CommonListEvent from '@/components/Common/CommonListEvent';/* 继承销售模块业务功能 */
+// import * as commonUtils from '../../utils/utils'; /* 通用方法 */
+import * as commonFunc from '@/components/Common//commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+// eslint-disable-next-line import/no-named-as-default
+import StaticEditTable from '@/components/Common//CommonTable';/* 可编辑表格 */
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '@/components/Common//commonBusiness';/* 单据业务功能 */
+import SearchComponent from '@/components/Common/SearchComponent';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import * as commonUtils from '@/utils/utils';
+import ShowType from '@/components/Common/CommonComponent';
+import commonConfig from '@/utils/config';
+// eslint-disable-next-line no-unused-vars
+import stylesIndex from '@/components/Common/CommonListSelectMulti/index.less';
+// import DelIcon from '../../assets/delete.svg';
+// import DisableDelIcon from '../../assets/disabledelete.svg';
+
+const { Content } = Layout;
+/**
+ 此组件是选择工序、放大镜弹窗等的通用窗体,区域在于工艺参数以表格形式展示
+ */
+class CommonList extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ btnList: [],
+ openFlag: false,
+ };
+ }
+ componentWillReceiveProps(nextProps) {
+ const {
+ slaveData, selectedRowKeys, sModelsType, slaveFilterData, slaveSelectedData, masterConfig,
+ gdsjurisdiction,
+ } = nextProps;
+ if (slaveFilterData === undefined && sModelsType === 'search/sisColor') {
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const slaveFilterData = slaveData.filter(item => selectedRowKeys.includes(item.sSlaveId));
+ if (commonUtils.isNotEmptyArr(slaveFilterData)) {
+ this.props.onSaveState({
+ slaveFilterData, slaveSelectedRowKeys: selectedRowKeys,
+ });
+ }
+ }
+ } else if (commonUtils.isEmptyArr(slaveFilterData) && sModelsType === 'search/commonPopup') {
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ this.props.onSaveState({
+ slaveFilterData: slaveSelectedData,
+ });
+ }
+ }
+ if (masterConfig) {
+ // 过滤存储需要展示的按钮
+ let btnList = masterConfig.gdsconfigformslave.filter(item => item.bVisible && !item.sName && item.showName && item.sControlName);
+ btnList = btnList.filter(item => gdsjurisdiction.findIndex(child => item.sControlName === child.sAction) < 0 && (item.sControlName.includes('BtnAdd') || item.sControlName.includes('BtnCopyTo')));
+ // 过滤权限
+ this.setState({ btnList });
+ }
+ if (this.state.openFlag) {
+ this.setState({ openFlag: false }, () => {
+ this.props.onButtonClick('BtnRefresh');
+ });
+ }
+ }
+
+ onOpenNewTab = () => {
+ this.setState({ openFlag: true });
+ this.props.onOpenNewTab();
+ }
+
+ /** 确认下单 */
+ handleSelect = () => {
+ const {
+ slaveFilterData, app, processData, controlSelectedRowKeys,
+ } = this.props;
+ let startIndex = 0; /* 最开始下标 */
+ const iOrderArr = [];
+ /* 当前控制表选中行下的工序 接着编号 */
+ const filterData = commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyArr(controlSelectedRowKeys) ?
+ processData.filter(item => controlSelectedRowKeys.includes(item.sControlId)) : [];
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ /* 找到最大序号值 接着拍 */
+ filterData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ }
+ /* 对所有移动的数据 进行一次重新排序 */
+ if (commonUtils.isNotEmptyArr(iOrderArr)) {
+ startIndex = Math.max(...iOrderArr);
+ }
+ if (commonUtils.isNotEmptyArr(slaveFilterData)) {
+ slaveFilterData.forEach((item, index) => {
+ const iOrderNew = startIndex + index + 1;
+ slaveFilterData[index] = { ...item, iOrder: iOrderNew };
+ });
+ }
+ this.props.app.currentPane.select(app.currentPane.name, app.currentPane.config, slaveFilterData);
+ this.props.app.currentPane.selectCancel(app.currentPane.name);
+ this.props.onSaveState({
+ slaveFilterData: [],
+ });
+ };
+ handleDoubleClickSelect = () => {
+ const { slaveConfig } = this.props;
+ if (commonUtils.isNotEmptyObject(slaveConfig) && !slaveConfig.bMutiSelect) { // 单选时双击选中数据
+ this.handleSelect();
+ }
+ }
+ /** 关闭 */
+ handleCancelModal = () => {
+ const { app } = this.props;
+ this.props.app.currentPane.selectCancel(app.currentPane.name);
+ };
+ /** 树节点多选框选中 */
+ handleTreeCheck = (checkedKeys, e) => {
+ this.props.onCheck(checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+ handleTableSelectRowChange = (name, selectedRowKeys, changeValue, chooseProcessParams) => { /* 表格行选择 */
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ if (name === 'slave') { /* 选择工序 从表表 */
+ const {
+ [`${name}Data`]: tableData, slaveConfig, fatherModelsType, sModelsType,
+ } = this.props;
+ const { selectedRowKeysLength } = this.props;
+ const { slaveFilterData } = this.props;
+ const oldSlaveFilterData = slaveFilterData === undefined ? [] : JSON.parse(JSON.stringify(slaveFilterData));
+ const newSlaveFilterData = [];
+ selectedRowKeys.forEach((key) => {
+ const filterDataIndex = oldSlaveFilterData.findIndex(item => item.sSlaveId === key);
+ if (filterDataIndex < 0) {
+ const tableDataIndex = tableData.findIndex(item => item.sSlaveId === key);
+ newSlaveFilterData.push({ ...tableData[tableDataIndex] });
+ } else {
+ newSlaveFilterData.push({ ...oldSlaveFilterData[filterDataIndex] });
+ }
+ });
+ let sDeliverRemark = '';
+ if (sModelsType === 'search/commonPopup') { /* 选择成品库存 改变时候 增加数量信息提示 */
+ let dChooseProductQty = 0;
+ let dSrcQty = 0;
+ let dMinsQty = 0; /* 欠数 */
+ newSlaveFilterData.forEach((item, index) => {
+ if (index === 0) {
+ dSrcQty += commonUtils.isNull(item.dSReserve1, 0); /* 源单数量取其中一条 */
+ }
+ dChooseProductQty += commonUtils.isNull(item.dProductQty, 0); /* 库存数量叠加 */
+ });
+ dMinsQty = commonUtils.convertFixNum(dSrcQty, 2) - commonUtils.convertFixNum(dChooseProductQty, 2);
+ sDeliverRemark = `源单数量:${dSrcQty} 已选数量:${dChooseProductQty} 欠数:${dMinsQty}`;
+ }
+
+ this.props.onSaveState({
+ slaveFilterData: newSlaveFilterData, sDeliverRemark,
+ });
+ if (chooseProcessParams) {
+ let modalVisible = false;
+ let slaveSelectOneData = {};
+ let slaveSelectOneDataIndex = -1;
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ if (selectedRowKeys instanceof Array) { // 多选情况下
+ if (commonUtils.isEmpty(selectedRowKeysLength) || (selectedRowKeys.length - selectedRowKeysLength) > 0) {
+ modalVisible = true;
+ }
+ slaveSelectOneDataIndex = tableData.findIndex(item => item.sId === selectedRowKeys[selectedRowKeys.length - 1]); // 多选选择最后一个
+ } else { // 单选情况下
+ slaveSelectOneDataIndex = tableData.findIndex(item => item.sId === selectedRowKeys);
+ }
+ if (slaveSelectOneDataIndex > -1) {
+ slaveSelectOneData = tableData[slaveSelectOneDataIndex];
+ }
+ }
+ // let masterData = {};
+ const sProcessParamsSelects = [];
+ let paramType = '';
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData) && commonUtils.isNotEmptyObject(fatherModelsType)) {
+ if (fatherModelsType.includes('manufacture/')) {
+ paramType = slaveSelectOneData.sWorkOrderParam;
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData.sWorkOrderParam)) {
+ slaveSelectOneData = { ...slaveSelectOneData, ...commonUtils.convertStrToObj(slaveSelectOneData.sWorkOrderParam) };
+ }
+ } else if (fatherModelsType.includes('quotation/')) {
+ paramType = slaveSelectOneData.sProcessParam;
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData.sProcessParam)) {
+ slaveSelectOneData = { ...slaveSelectOneData, ...commonUtils.convertStrToObj(slaveSelectOneData.sProcessParam) };
+ }
+ }
+ }
+ /* 工序参数以表格形式展示 列 */
+ const sParamConfig = {
+ bisMutiSelect: false,
+ bMutiSelect: false,
+ };
+ const gdsconfigformslave = [{
+ sId: commonUtils.createSid(),
+ sName: 'sId',
+ showName: '主键',
+ bVisible: false,
+ iFitWidth: 45,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'bSelfCbx',
+ showName: '选择',
+ bVisible: true,
+ iFitWidth: 37,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamKey',
+ showName: '参数主键',
+ bVisible: false,
+ iFitWidth: 200,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamName',
+ showName: '参数名',
+ bVisible: true,
+ iFitWidth: 230,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamValue',
+ showName: '参数值',
+ bVisible: true,
+ }];
+ sParamConfig.gdsconfigformslave = gdsconfigformslave;
+ const sParamColumn = commonFunc.getHeaderConfig(sParamConfig);
+ /* 要把数据以表格的形式显示出来 */
+ const sParamJsonObj = commonUtils.isJSON(paramType) ? JSON.parse(paramType) : [];
+ const sParamData = [];
+ if (commonUtils.isNotEmptyArr(sParamJsonObj)) {
+ for (const key of Object.keys(sParamJsonObj)) {
+ if (key.includes('sParam') && !key.includes('DropDown') && !key.includes('Default')) {
+ const obj = {};
+ obj.sId = commonUtils.createSid();
+ obj.sParamKey = key;
+ obj.sParamName = sParamJsonObj[key];
+ /* 找到数字 找到下拉数据源 */
+ const num = key.replace(/[^\d]/g, '').trim();
+ if (Number(num)) {
+ const number = Number(num);
+ const sParamDropDownKey = `sParamDropDown${number}`;
+ obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */
+ const sParamDefaultKey = `sParamDefault${number}`;
+ obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */
+ }
+
+ sParamData.push(obj);
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyObject(paramType)) {
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 11; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(slaveSelectOneData[`sParam${i.toString()}`])) {
+ slaveConfig.gdsconfigformslave[iIndex].showName = slaveSelectOneData[`sParam${i.toString()}`];
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = !slaveSelectOneData[`sParam${i.toString()}`].includes('参数值');
+ /* 判断是否是sql下拉 */
+ if (!commonUtils.isEmpty(slaveSelectOneData[`sParamDropDown${i.toString()}`])) {
+ slaveConfig.gdsconfigformslave[iIndex].sDropDownType = 'sql';
+ }
+ // masterData = { ...masterNewData, ...commonUtils.convertStrToObj(slaveFilterData[0].sProcessParam) };
+ sProcessParamsSelects.push(slaveConfig.gdsconfigformslave[iIndex]);
+ } else if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ } else {
+ modalVisible = false;
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 11; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ }
+ /* 选择工序弹框,选择工序默认不需要弹出参数,放在控件里面去选(包括工单参数,和工艺指导书参数) */
+ modalVisible = false;
+ this.props.onSaveState({
+ sProcessParamsModalVisible: modalVisible,
+ sProcessParamsSelects,
+ slaveSelectOneDataIndex,
+ selectedRowKeysLength: selectedRowKeys.length,
+ sParamConfig,
+ sParamColumn,
+ sParamData,
+ });
+ }
+ } else if (name === 'sParam' && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ /* 点击工艺参数列表 根据点击行动态加载配置 */
+ const { sParamData, sParamConfig } = this.props;
+ /* 找到最后一个选中 */
+ const lastSelectedKeys = selectedRowKeys[selectedRowKeys.length - 1];
+ const iIndex = sParamData.findIndex(item => lastSelectedKeys === item.sId);
+ /* 选中数据时 塞入选中行的配置 */
+ if (iIndex > -1) {
+ const sParamObj = sParamData[iIndex];
+ const index = sParamConfig.gdsconfigformslave.findIndex(item => item.sName === 'sParamValue');
+ if (index > -1) {
+ if (commonUtils.isNotEmptyObject(sParamObj.sDropDownData)) {
+ sParamConfig.gdsconfigformslave[index].sDropDownType = 'const';
+ sParamConfig.gdsconfigformslave[index].showDropDown = JSON.stringify(sParamObj.sDropDownData);
+ } else {
+ sParamConfig.gdsconfigformslave[index].sDropDownType = '';
+ sParamConfig.gdsconfigformslave[index].showDropDown = undefined;
+ }
+ }
+ /* 点击时 若没打钩 则选择框打钩 若已经打钩则取消打钩 */
+ if (sParamData[iIndex].bSelfCbx) {
+ // sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: false };
+ } else {
+ sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: true };
+ }
+ this.props.onSaveState({
+ sParamData,
+ });
+ }
+ }
+ }
+
+ /* 连续点击 复制选择 */
+ handleContinueTableSelectRowChange= (name, selectedRowKeys, changeValue, chooseProcessParams) => { /* 表格行选择 */
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ if (name === 'slave') { /* 选择工序 从表表 */
+ const {
+ [`${name}Data`]: tableData, slaveConfig, fatherModelsType, sModelsType,
+ } = this.props;
+ const { selectedRowKeysLength } = this.props;
+ const { slaveFilterData } = this.props;
+ const oldSlaveFilterData = slaveFilterData === undefined ? [] : JSON.parse(JSON.stringify(slaveFilterData));
+ let newSlaveFilterData = [];
+ selectedRowKeys.forEach((key) => {
+ const filterDataIndex = oldSlaveFilterData.findIndex(item => item.sSlaveId === key);
+ if (filterDataIndex < 0) {
+ newSlaveFilterData = JSON.parse(JSON.stringify(oldSlaveFilterData));
+ const tableDataIndex = tableData.findIndex(item => item.sSlaveId === key);
+ if (tableDataIndex > -1) {
+ const newRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ newRow.sId = commonUtils.createSid();
+ newRow.sSlaveId = newRow.sId;
+ newRow.handleType = 'add';
+ newRow.key = newRow.sId;
+ newSlaveFilterData.push(newRow);
+ }
+ } else {
+ /* 连续点击 复制数据 */
+ newSlaveFilterData = JSON.parse(JSON.stringify(oldSlaveFilterData));
+ const newRow = JSON.parse(JSON.stringify(oldSlaveFilterData[filterDataIndex]));
+ newRow.sId = commonUtils.createSid();
+ newRow.sSlaveId = newRow.sId;
+ newRow.handleType = 'add';
+ newRow.key = newRow.sId;
+ newSlaveFilterData.push(newRow);
+ }
+ });
+ let sDeliverRemark = '';
+ if (sModelsType === 'search/commonPopup') { /* 选择成品库存 改变时候 增加数量信息提示 */
+ let dChooseProductQty = 0;
+ let dSrcQty = 0;
+ let dMinsQty = 0; /* 欠数 */
+ newSlaveFilterData.forEach((item, index) => {
+ if (index === 0) {
+ dSrcQty += commonUtils.isNull(item.dSReserve1, 0); /* 源单数量取其中一条 */
+ }
+ dChooseProductQty += commonUtils.isNull(item.dProductQty, 0); /* 库存数量叠加 */
+ });
+ dMinsQty = commonUtils.convertFixNum(dSrcQty, 2) - commonUtils.convertFixNum(dChooseProductQty, 2);
+ sDeliverRemark = `源单数量:${dSrcQty} 已选数量:${dChooseProductQty} 欠数:${dMinsQty}`;
+ }
+ this.props.onSaveState({
+ slaveFilterData: newSlaveFilterData, sDeliverRemark,
+ });
+ if (chooseProcessParams) {
+ let modalVisible = false;
+ let slaveSelectOneData = {};
+ let slaveSelectOneDataIndex = -1;
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ if (selectedRowKeys instanceof Array) { // 多选情况下
+ if (commonUtils.isEmpty(selectedRowKeysLength) || (selectedRowKeys.length - selectedRowKeysLength) > 0) {
+ modalVisible = true;
+ }
+ slaveSelectOneDataIndex = tableData.findIndex(item => item.sId === selectedRowKeys[selectedRowKeys.length - 1]); // 多选选择最后一个
+ } else { // 单选情况下
+ slaveSelectOneDataIndex = tableData.findIndex(item => item.sId === selectedRowKeys);
+ }
+ if (slaveSelectOneDataIndex > -1) {
+ slaveSelectOneData = tableData[slaveSelectOneDataIndex];
+ }
+ }
+ // let masterData = {};
+ const sProcessParamsSelects = [];
+ let paramType = '';
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData) && commonUtils.isNotEmptyObject(fatherModelsType)) {
+ if (fatherModelsType.includes('manufacture/')) {
+ paramType = slaveSelectOneData.sWorkOrderParam;
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData.sWorkOrderParam)) {
+ slaveSelectOneData = { ...slaveSelectOneData, ...commonUtils.convertStrToObj(slaveSelectOneData.sWorkOrderParam) };
+ }
+ } else if (fatherModelsType.includes('quotation/')) {
+ paramType = slaveSelectOneData.sProcessParam;
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData.sProcessParam)) {
+ slaveSelectOneData = { ...slaveSelectOneData, ...commonUtils.convertStrToObj(slaveSelectOneData.sProcessParam) };
+ }
+ }
+ }
+ /* 工序参数以表格形式展示 列 */
+ const sParamConfig = {
+ bisMutiSelect: false,
+ bMutiSelect: false,
+ };
+ const gdsconfigformslave = [{
+ sId: commonUtils.createSid(),
+ sName: 'sId',
+ showName: '主键',
+ bVisible: false,
+ iFitWidth: 45,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'bSelfCbx',
+ showName: '选择',
+ bVisible: true,
+ iFitWidth: 37,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamKey',
+ showName: '参数主键',
+ bVisible: false,
+ iFitWidth: 200,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamName',
+ showName: '参数名',
+ bVisible: true,
+ iFitWidth: 230,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamValue',
+ showName: '参数值',
+ bVisible: true,
+ }];
+ sParamConfig.gdsconfigformslave = gdsconfigformslave;
+ const sParamColumn = commonFunc.getHeaderConfig(sParamConfig);
+ /* 要把数据以表格的形式显示出来 */
+ const sParamJsonObj = commonUtils.isJSON(paramType) ? JSON.parse(paramType) : [];
+ const sParamData = [];
+ if (commonUtils.isNotEmptyArr(sParamJsonObj)) {
+ for (const key of Object.keys(sParamJsonObj)) {
+ if (key.includes('sParam') && !key.includes('DropDown') && !key.includes('Default')) {
+ const obj = {};
+ obj.sId = commonUtils.createSid();
+ obj.sParamKey = key;
+ obj.sParamName = sParamJsonObj[key];
+ /* 找到数字 找到下拉数据源 */
+ const num = key.replace(/[^\d]/g, '').trim();
+ if (Number(num)) {
+ const number = Number(num);
+ const sParamDropDownKey = `sParamDropDown${number}`;
+ obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */
+ const sParamDefaultKey = `sParamDefault${number}`;
+ obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */
+ }
+
+ sParamData.push(obj);
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyObject(paramType)) {
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 11; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(slaveSelectOneData[`sParam${i.toString()}`])) {
+ slaveConfig.gdsconfigformslave[iIndex].showName = slaveSelectOneData[`sParam${i.toString()}`];
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = !slaveSelectOneData[`sParam${i.toString()}`].includes('参数值');
+ /* 判断是否是sql下拉 */
+ if (!commonUtils.isEmpty(slaveSelectOneData[`sParamDropDown${i.toString()}`])) {
+ slaveConfig.gdsconfigformslave[iIndex].sDropDownType = 'sql';
+ }
+ // masterData = { ...masterNewData, ...commonUtils.convertStrToObj(slaveFilterData[0].sProcessParam) };
+ sProcessParamsSelects.push(slaveConfig.gdsconfigformslave[iIndex]);
+ } else if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ } else {
+ modalVisible = false;
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 11; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ }
+ /* 选择工序弹框,选择工序默认不需要弹出参数,放在控件里面去选(包括工单参数,和工艺指导书参数) */
+ modalVisible = false;
+ this.props.onSaveState({
+ sProcessParamsModalVisible: modalVisible,
+ sProcessParamsSelects,
+ slaveSelectOneDataIndex,
+ selectedRowKeysLength: selectedRowKeys.length,
+ sParamConfig,
+ sParamColumn,
+ sParamData,
+ });
+ }
+ } else if (name === 'sParam' && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ /* 点击工艺参数列表 根据点击行动态加载配置 */
+ const { sParamData, sParamConfig } = this.props;
+ /* 找到最后一个选中 */
+ const lastSelectedKeys = selectedRowKeys[selectedRowKeys.length - 1];
+ const iIndex = sParamData.findIndex(item => lastSelectedKeys === item.sId);
+ /* 选中数据时 塞入选中行的配置 */
+ if (iIndex > -1) {
+ const sParamObj = sParamData[iIndex];
+ const index = sParamConfig.gdsconfigformslave.findIndex(item => item.sName === 'sParamValue');
+ if (index > -1) {
+ if (commonUtils.isNotEmptyObject(sParamObj.sDropDownData)) {
+ sParamConfig.gdsconfigformslave[index].sDropDownType = 'const';
+ sParamConfig.gdsconfigformslave[index].showDropDown = JSON.stringify(sParamObj.sDropDownData);
+ } else {
+ sParamConfig.gdsconfigformslave[index].sDropDownType = '';
+ sParamConfig.gdsconfigformslave[index].showDropDown = undefined;
+ }
+ }
+ /* 点击时 若没打钩 则选择框打钩 若已经打钩则取消打钩 */
+ if (sParamData[iIndex].bSelfCbx) {
+ // sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: false };
+ } else {
+ sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: true };
+ }
+ this.props.onSaveState({
+ sParamData,
+ });
+ }
+ }
+ }
+
+ handleCancelProcessParamsModalVisible = () => {
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk1 = () => {
+ const {
+ slaveData, slaveSelectOneDataIndex, slaveFilterData, sProcessParamsSelects,
+ } = this.props;
+ let sProcessParamStr = '';
+ if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveSelectOneDataIndex) && commonUtils.isNotEmptyArr(slaveFilterData) && commonUtils.isNotEmptyArr(sProcessParamsSelects)) {
+ // eslint-disable-next-line array-callback-return
+ sProcessParamsSelects.map((item) => {
+ let sParamValue = '';
+ if (commonUtils.isNotEmptyObject(slaveData[slaveSelectOneDataIndex][item.sName])) {
+ sParamValue = slaveData[slaveSelectOneDataIndex][item.sName];
+ }
+ sProcessParamStr += `${item.showName}:${sParamValue},`;
+ });
+ slaveFilterData[slaveFilterData.length - 1].sProcessParamStr = sProcessParamStr;
+ slaveFilterData[slaveFilterData.length - 1] = { ...slaveFilterData[slaveFilterData.length - 1], ...slaveData[slaveSelectOneDataIndex] };
+ }
+ this.props.onSaveState({
+ slaveFilterData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk = () => {
+ const {
+ slaveData, slaveSelectOneDataIndex, slaveFilterData, sProcessParamsSelects, sParamData,
+ } = this.props;
+ /* 保存时候把sParamData赛道sParam1中 */
+ let sProcessParamStr = '';
+ if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveSelectOneDataIndex) && commonUtils.isNotEmptyArr(slaveFilterData) && commonUtils.isNotEmptyArr(sProcessParamsSelects)) {
+ // eslint-disable-next-line array-callback-return
+ sProcessParamsSelects.map((item) => {
+ let sParamValue = '';
+ if (commonUtils.isNotEmptyObject(slaveData[slaveSelectOneDataIndex][item.sName])) {
+ sParamValue = slaveData[slaveSelectOneDataIndex][item.sName];
+ }
+ sProcessParamStr += `${item.showName}:${sParamValue},`;
+ });
+ if (commonUtils.isNotEmptyArr(sParamData)) {
+ const sParamSeletedData = sParamData.filter(item => item.bSelfCbx);
+ if (commonUtils.isNotEmptyArr(sParamSeletedData)) {
+ const sParamJsonData = JSON.stringify(sParamSeletedData);
+ slaveData[slaveSelectOneDataIndex].sParams = sParamJsonData;
+ }
+ }
+ slaveFilterData[slaveFilterData.length - 1].sProcessParamStr = sProcessParamStr;
+
+ slaveFilterData[slaveFilterData.length - 1] = { ...slaveFilterData[slaveFilterData.length - 1], ...slaveData[slaveSelectOneDataIndex] };
+ }
+ this.props.onSaveState({
+ slaveFilterData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+ // ----------------------------数据修改回带end ---------------------------- //
+ copyTo = (sActiveId) => {
+ const {
+ dispatch, masterConfig, masterData, contactData, addressData, slavePagination,
+ sisproductclassifyProcessClassifyData, machineData, assortData, outsideData, processstyleData, processApsRuleData,
+ eleemployeeData, elemachineData, eleknifemouldproductData, eleknifemouldfileData, eleteststandarditemData,
+ slaveSelectedData,
+ } = this.props;
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = 'BtnCopyTo';
+ copyTo.config = copyToConfig;
+ copyTo.masterData = slaveSelectedData[0] || masterData;
+ copyTo.supplyData = [];
+ copyTo.stockData = [];
+ copyTo.contactData = contactData;
+ copyTo.addressData = addressData;
+ copyTo.picFileData = [];
+ copyTo.customerInfoData = [];
+ copyTo.sisproductclassifyProcessClassifyData = sisproductclassifyProcessClassifyData;
+ copyTo.machineData = machineData;
+ copyTo.assortData = assortData;
+ copyTo.outsideData = outsideData;
+ copyTo.processstyleData = processstyleData;
+ copyTo.processApsRuleData = processApsRuleData;
+ copyTo.eleemployeeData = eleemployeeData;
+ copyTo.elemachineData = elemachineData;
+ copyTo.eleknifemouldproductData = eleknifemouldproductData;
+ copyTo.eleknifemouldfileData = eleknifemouldfileData;
+ copyTo.eleteststandarditemData = eleteststandarditemData;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ pages: slavePagination,
+ newRecordFlag: `NewRecord_${sActiveId}`,
+ },
+ });
+ }
+
+ handleDrag = (data) => {
+ this.props.onSaveState({
+ slaveFilterData: data,
+ });
+ }
+
+ handleTableDel = (name, isWait, tableSelectedRowKeys) => {
+ const { slaveSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys) && commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ slaveSelectedRowKeys.forEach((item, index) => {
+ if (tableSelectedRowKeys.includes(item)) {
+ slaveSelectedRowKeys.splice(index, 1);
+ }
+ });
+ this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
+ }
+ }
+ /* 动态参数标题选择框 全选/取消全选 */
+ handleCheckParamChange = () => {
+ const { sParamData, sParamColumn } = this.props;
+ /* 全选 取消全选功能 */
+ if (commonUtils.isNotEmptyArr(sParamData)) {
+ /* 标题bSelfCbx加标识 */
+ const iIndex = sParamColumn.findIndex(item => item.dataIndex === 'bSelfCbx');
+ if (iIndex > -1) {
+ let bSelfCbx = false;
+ if (sParamColumn[iIndex].bCheckAll) {
+ bSelfCbx = false;
+ } else {
+ bSelfCbx = true;
+ }
+ sParamColumn[iIndex] = { ...sParamColumn[iIndex], bCheckAll: bSelfCbx };
+ sParamData.forEach((item, index) => {
+ sParamData[index] = { ...sParamData[index], bSelfCbx };
+ });
+ }
+ this.props.onSaveState({
+ sParamData,
+ sParamColumn,
+ });
+ }
+ }
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ slavePagination,
+ app,
+ // masterData: masterDataNew,
+ slaveData,
+ sProcessParamsSelects,
+ slaveSelectedRowKeys: selectedRowKeys,
+ sModelsType,
+ onCopyTo,
+ slaveSelectedData,
+ slaveConfig,
+ } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const pagination = {
+ ...slavePagination,
+ size: 'large',
+ showQuickJumper: true,
+ hideOnSinglePage: false,
+ showTotal: false,
+ simple: true,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: {
+ rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange, chooseProcessParams: true, sModelsType, AutoTableHeight: 350, // chooseProcessParams为选择工序中点击工序名称表格行出现弹窗
+ },
+ bContinueClick: true,
+ };
+ const sParamProps = {
+ ...commonBusiness.getTableTypes('sParam', props),
+ tableProps: {
+ rowKey: 'sId',
+ pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ },
+ bRowClick: true,
+ onCheckParamChange: props.handleCheckParamChange,
+ enabled: true,
+ };
+ // const width = '18px';
+ // const height = '18px';
+ // const setDelete = {
+ // title: '删除',
+ // width: { width },
+ // height: { height },
+ // img:
,
+ // disableimg:
,
+ // };
+ const deleteSet = {
+ autoHeight: '100%',
+ setOpterationColumn: 'Y',
+ };
+ let tableFilterProps = {
+ ...commonBusiness.getTableTypes('slaveFilter', props),
+ tableProps: {
+ rowSelection: null, rowKey: 'sSlaveId', onChange: props.onTitleChange, AutoTableHeight: 350,
+ },
+ onDrag: props.onDrag,
+ };
+ if (props.sModelsType && props.sModelsType.includes('modal/searchProcess')) {
+ tableFilterProps = {
+ ...tableFilterProps,
+ ...deleteSet,
+ enabled: true,
+ };
+ }
+
+ if (commonUtils.isNotEmptyObject(app.currentPane) && commonUtils.isNotEmptyObject(app.currentPane.name) && app.currentPane.bEdit) {
+ tableFilterProps = {
+ ...tableFilterProps,
+ enabled: true,
+ };
+ }
+ const tableBelone = commonUtils.isNotEmptyObject(app.currentPane) && commonUtils.isNotEmptyObject(app.currentPane.name) && app.currentPane.bEdit ? 'none' : 'list';
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onCheck: props.onCheck,
+ onSelect: props.onSelectTree,
+ onExpandTree: () => {},
+ onSaveState: props.onSaveState,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ defaultExpandAll: true,
+ multiple: false,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ switcherIcon: ,
+ };
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ const displayLeft = (sModelsType !== 'search/sisColor' && sModelsType !== 'search/commonPopup');
+ const realizeHeight = commonUtils.isNotEmptyNumber(props.realizeHeight) ? props.realizeHeight : 0;
+ const btnClick = (btn) => {
+ const { sControlName } = btn;
+ const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ if (picArr.length) {
+ const sActiveId = picArr[0] ? picArr[0].sActiveId : '';
+ if (sControlName === 'BtnAdd') {
+ const params = {
+ newRecordFlag: `NewRecord_${sActiveId}`,
+ };
+ if (props.outerMasterData && props.outerMasterData.sCustomerId) {
+ params.newRecordRelation = {
+ sCustomerId: props.outerMasterData.sCustomerId,
+ sCustomerNo: props.outerMasterData.sCustomerNo,
+ sCustomerName: props.outerMasterData.sCustomerName,
+ };
+ }
+ props.onAdd(params);
+ props.onOpenNewTab();
+ } else if (sControlName === 'BtnCopyTo') {
+ if (!Array.isArray(slaveSelectedData) || slaveSelectedData.length !== 1) {
+ message.warn('请选择一例单据'); // 请选择数据
+ } else {
+ onCopyTo(sActiveId);
+ props.onOpenNewTab();
+ }
+ }
+ }
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonList));
diff --git a/src/components/Common/CommonListSelectMulti/index.less b/src/components/Common/CommonListSelectMulti/index.less
new file mode 100644
index 0000000..eb5fb51
--- /dev/null
+++ b/src/components/Common/CommonListSelectMulti/index.less
@@ -0,0 +1,19 @@
+@import '~@/variable.less';
+:global {
+ .paramModal{
+ .ant-table-body{
+ tr td:first-child {
+ //display: none;
+ }
+ .ant-checkbox{
+ margin-left: 5px;
+ }
+ }
+ .xly-bill-list{
+ padding: 0 5px !important;
+ }
+ .xly-bill-list{
+ padding: 0 5px !important;
+ }
+ }
+}
diff --git a/src/components/Common/CommonListSelectProductMaterial.js b/src/components/Common/CommonListSelectProductMaterial.js
new file mode 100644
index 0000000..c01913e
--- /dev/null
+++ b/src/components/Common/CommonListSelectProductMaterial.js
@@ -0,0 +1,196 @@
+/**
+ * @Date: 2019-05-28T13:23:00+08:00
+ * @Last modified time: 2019-05-29T15:33:03+08:00
+ */
+/**
+ * Created by mar105 on 2019-03-27.
+ */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin, Button, Row, Col } from 'antd';
+import CommonListEvent from './CommonListEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from './commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import StaticEditTable from './CommonTable';/* 可编辑表格 */
+import CommonBase from './CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from './commonBusiness';/* 单据业务功能 */
+import SearchComponent from './SearchComponent';/* 搜索组件 */
+// import * as commonConfig from '../../utils/config';
+import config from '../../utils/config';
+import * as commonUtils from '../../utils/utils';
+import Eject from '../../assets/eject.svg';
+import StaticEditTree from './Tree/StaticTree';
+import Close from '../../assets/close.svg';
+
+const { Content } = Layout;
+
+
+class CommonList extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ // ----------------------------数据修改回带end ---------------------------- //
+ handleEject = (e) => {
+ const filterTree = e.currentTarget.parentNode;/* 获取当前页签下的树组件 */
+ if (filterTree.attributes.class.value.indexOf('xly-eject') > -1) {
+ // eslint-disable-next-line no-unused-expressions
+ filterTree.nextSibling.style.display = 'block';
+ } else if (filterTree.attributes.class.value.indexOf('xly-tree-close') > -1) {
+ // eslint-disable-next-line no-unused-expressions
+ filterTree.parentNode.style.display = 'none';
+ }
+ };
+
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+ /** 确认下单 */
+ handleSelect = () => {
+ const {
+ slaveFinalSelectedRowKeys, app, slaveSelectedData, slaveFinalData,
+ } = this.props;
+ let slaveFinalSelectedData = [];
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedRowKeys)) {
+ slaveFinalSelectedData = slaveFinalData.filter(item => slaveFinalSelectedRowKeys.includes(item.sSlaveId));
+ }
+ this.props.app.currentPane.select(app.currentPane.name, app.currentPane.config, slaveSelectedData, slaveFinalSelectedData);
+ this.props.app.currentPane.selectCancel(app.currentPane.name);
+ };
+ handleDoubleClickSelect = () => {
+ const { slaveConfig } = this.props;
+ if (commonUtils.isNotEmptyObject(slaveConfig) && !slaveConfig.bMutiSelect) {
+ this.handleSelect();
+ }
+ }
+ /** 关闭 */
+ handleCancelModal = () => {
+ const { app } = this.props;
+ this.props.app.currentPane.selectCancel(app.currentPane.name);
+ };
+ // ----------------------------数据修改回带end ---------------------------- //
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, sModelsType,
+ } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const pagination = {
+ ...slavePagination,
+ size: 'large',
+ pageSize: sModelsType === 'modal/logView' ? 9999 : config.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: {
+ rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange, AutoTableHeight: 350,
+ },
+ };
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ };
+ const realizeHeight = commonUtils.isNotEmptyNumber(props.realizeHeight) ? props.realizeHeight : 0;
+ const tableFilterProps = {
+ ...commonBusiness.getTableTypes('slaveFinal', props),
+ rowSelectionType: 'checkbox',
+ tableProps: { rowKey: 'sSlaveId', onChange: props.onTitleChange, AutoTableHeight: 350 },
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonList));
diff --git a/src/components/Common/CommonListTab/index.js b/src/components/Common/CommonListTab/index.js
new file mode 100644
index 0000000..9b81ebd
--- /dev/null
+++ b/src/components/Common/CommonListTab/index.js
@@ -0,0 +1,1317 @@
+/* eslint-disable */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import { Layout, Spin, Slider, Tabs, Row, Col, Card } from 'antd-v4';
+import baseChar from '@/components/Common/baseChar'; /* 获取图表配置及数据 */
+import CommonListTabEvent from '@/components/Common/CommonListTabEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import customStyles from './index.less';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组件 */
+import commonConfig from '@/utils/config';
+import * as commonUtils from '@/utils/utils';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/eject.svg';/* 弹出图标 */
+import Close from '@/assets/close.svg';/* 关闭图标 */
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+import Bar from '../../Charts/Bar';
+// import Columnar from '../../Charts/Columnar';
+// import ColumnarGroup from '../../Charts/ColumnarGroup';
+// import BrokenLine from '../../Charts/BrokenLine';
+// import WaterWave from '../../Charts/WaterWave';
+// import Gauge from '../../Charts/Gauge';
+// import ColumnarStack from '../../Charts/ColumnarStack';
+// import PieGroup from '../../Charts/PieGroup';
+// import Pie from '../../Charts/Pie';
+// import TimeLineGroup from '../../Charts/TimeLineGroup';
+// import ColorBlock from '../../Charts/ColorBlock';
+/**
+ * 此组件是N个列表,以Tab页签方式展示
+ */
+const { Header, Content } = Layout;
+const { TabPane } = Tabs;
+let NoTotalData = '';
+class CommonListTab extends Component {
+
+ // componentDidUpdate() {
+ // const tempActiveKey = this.props.activeKey;
+ // if (!this.props[`activeKey${tempActiveKey}flag`]) {
+ // this.props.onSaveState({ [`activeKey${tempActiveKey}flag`]: true });
+ // }
+ // }
+
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ handleSelectModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+ onTabChange = async (key) => { /* 默认查第一张,第二张表 ,切换时根据key查对应表,若没数据则进行查询 否则不查询,搜索时 都进行查询 */
+ let { activeMap, onlySlave, slaveData, sModelsType } = this.props;
+ let addState = {};
+ let tag = '-1';
+ if(key === '1') {
+ tag = 'slave';
+ }else if(key === '2') {
+ tag = 'slave0';
+ }else if(key === '3') {
+ tag = 'slave1';
+ }else if(key === '4') {
+ tag = 'slave2';
+ }else if(key === '5') {
+ tag = 'slave3';
+ }else if(key === '6') {
+ tag = 'slave4';
+ }else if(key === '7') {
+ tag = 'slave5';
+ }else if(key === '8') {
+ tag = 'slave6';
+ }else if(key === '9') {
+ tag = 'slave7';
+ }else if(key === '10') {
+ tag = 'slave8';
+ }else if(key === '11') {
+ tag = 'slave9';
+ }else if(key === '12') {
+ tag = 'slave10';
+ }else if(key === '13') {
+ tag = 'slave11';
+ }else if(key === '14') {
+ tag = 'slave12';
+ }else if(key === '15') {
+ tag = 'slave13';
+ }else if(key === '16') {
+ tag = 'slave14';
+ }else if(key === '17') {
+ tag = 'slave15';
+ }else if(key === '18') {
+ tag = 'slave16';
+ }else if(key === '19') {
+ tag = 'slave17';
+ }else if(key === '20') {
+ tag = 'slave18';
+ }else if(key === '21') {
+ tag = 'slave19';
+ }else if(key === '22') {
+ tag = 'slave20';
+ }
+ if( tag !== '-1' && sModelsType !=='commonListTab/tabColor') {
+ const { [`${tag}Config`] : tableConfig, [`${tag}Data`] : tableData, [`${tag}FilterCondition`]: tableFilterCondition, slaveOrderBy, [`${tag}Pagination`] : tablePagination, slaveSelectedRowKeys,
+ } = this.props;
+ let bSearch = false; /* 默认不查询 */
+ if(onlySlave && commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 1) { /* 只有从表展示出来,并且从表数据超过2行 */
+ if(commonUtils.isEmptyObject(activeMap)) {
+ activeMap = {};
+ bSearch = true;
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ activeMap[key] = slaveSelectedRowKeys[0];
+ }
+ } else if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ const oldSlaveSelectedRowKey = activeMap[key];
+ if(commonUtils.isEmptyObject(oldSlaveSelectedRowKey) || oldSlaveSelectedRowKey !== slaveSelectedRowKeys[0]) {
+ bSearch = true;
+ activeMap[key] = slaveSelectedRowKeys[0];
+ }
+ }
+ }
+ if(commonUtils.isEmptyArr(tableData) || bSearch) {
+ const iPageSize = tableConfig.bPagination ? tableConfig.iPageSize : 10000 ; /* 根据后台主表配置bPagination判断 是否分页, 不分页默认10000,分页根据分页来 */
+ this.props.onSaveState({ pageLoading: true });
+ if( key!=="1" && commonUtils.isNotEmptyObject(tableConfig.sCharType)) { /* 加载图表 */
+ addState.charConfigAndData = await this.props.onGetCharOne(tag, tableConfig, tableFilterCondition, commonUtils.isEmpty(tablePagination) ? 1 : tablePagination.current, commonUtils.isEmpty(tablePagination) ? iPageSize : tablePagination.pageSize, slaveOrderBy, undefined, true);
+ console.log('查图表charConfigAndData:', key, addState.charConfigAndData);
+ } else {
+ addState = await this.props.onGetDataOne(tag, tableConfig, tableFilterCondition, commonUtils.isEmpty(tablePagination) ? 1 : tablePagination.current, commonUtils.isEmpty(tablePagination) ? iPageSize : tablePagination.pageSize, slaveOrderBy, undefined, true);
+ }
+ }
+ }
+ this.props.onSaveState({ activeKey: key ,...addState, pageLoading: false});
+ };
+ handleResizeLayout = (e) => {
+ const { sTabId, sModelsId } = this.props;
+ const originX = e.pageY;
+ const originWidth = commonUtils.isNotEmptyArr(document.getElementsByClassName('commonListTab-sider') + sTabId) ? document.getElementsByClassName('commonListTab-sider' + sTabId )[0].offsetHeight : 0 ;
+ let offset = 0;
+ window.onmousemove = function (e2) {
+ offset = e2.pageY - originX;
+ document.getElementsByClassName('commonListTab-sider'+ sTabId)[0].style.height = `${originWidth + offset + 30 + 12}px`;
+ const slaveDiv = commonUtils.isNotEmptyArr(document.getElementsByClassName('commonListTab-sider'+ sTabId)) ? document.getElementsByClassName('commonListTab-sider'+ sTabId)[0] : [];
+ if(commonUtils.isNotEmptyArr(slaveDiv)) {
+ const slaveHeight = `${originWidth + offset}px`; /* 将拖动后的高度赋值给从表表格高度 */
+ const slaveMaxHeight = `${originWidth + offset - 58}px`;
+ slaveDiv.getElementsByClassName('ant-table-body')[0].style.height = slaveHeight;
+ slaveDiv.getElementsByClassName('ant-table-body')[0].style.maxHeight = slaveMaxHeight;
+ document.getElementsByClassName('commonListTab-content'+ sTabId)[0].style.height = `calc(100% - ${originWidth + offset + 10}px)`;
+ }
+ };
+ window.onmouseup = () => {
+ window.onmousemove = null;
+ window.onmousemove = null;
+ localStorage.setItem('customCommonListTabHeight_' + sModelsId, originWidth + offset - 58); /* 取maxHeight高度 */
+ let customBottomHeight = window.innerHeight - 200 - 54- 60 - (originWidth + offset);
+ // console.log(21, window.innerHeight , originWidth, offset, window.innerHeight - 200 - 54- 60 - (originWidth + offset) )
+ localStorage.setItem('customBottomHeight_' + sModelsId, customBottomHeight); /* 取maxHeight高度 */
+ this.forceUpdate();
+ };
+ };
+
+
+ handleGetChart = () => {
+ let tag = '-1';
+ const { activeKey: key} = this.props;
+ const { charConfigAndData} = this.props;
+ if(commonUtils.isEmptyObject(key)) { /* 没有选中默认第二个 */
+ tag = 'slave0';
+ }
+ if(key === '1') {
+ tag = 'slave';
+ }else if(key === '2') {
+ tag = 'slave0';
+ }else if(key === '3') {
+ tag = 'slave1';
+ }else if(key === '4') {
+ tag = 'slave2';
+ }else if(key === '5') {
+ tag = 'slave3';
+ }else if(key === '6') {
+ tag = 'slave4';
+ }else if(key === '7') {
+ tag = 'slave5';
+ }else if(key === '8') {
+ tag = 'slave6';
+ }else if(key === '9') {
+ tag = 'slave7';
+ }else if(key === '10') {
+ tag = 'slave8';
+ }else if(key === '11') {
+ tag = 'slave9';
+ }else if(key === '12') {
+ tag = 'slave10';
+ }else if(key === '13') {
+ tag = 'slave11';
+ }else if(key === '14') {
+ tag = 'slave12';
+ }else if(key === '15') {
+ tag = 'slave13';
+ }else if(key === '16') {
+ tag = 'slave14';
+ }else if(key === '17') {
+ tag = 'slave15';
+ }else if(key === '18') {
+ tag = 'slave16';
+ }else if(key === '19') {
+ tag = 'slave17';
+ }else if(key === '20') {
+ tag = 'slave18';
+ }else if(key === '21') {
+ tag = 'slave19';
+ }else if(key === '22') {
+ tag = 'slave20';
+ }
+ if( tag !== '-1') {
+ const {
+ [`${tag}Config`]: tableConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyObject(tableConfig) && commonUtils.isNotEmptyObject(charConfigAndData) &&
+ commonUtils.isNotEmptyArr(charConfigAndData.data)) {
+ const { sCharType } = tableConfig;
+ console.log('charConfigAndData222', sCharType, charConfigAndData);
+ const child = charConfigAndData;
+ child.hasLend = true;
+ let content = '';
+ if (commonUtils.isNotEmptyObject(child)) {
+ child.height = 300;
+ if (sCharType === 'sBar') {
+ /* 横向条形图1 */
+ content = ;
+ } else if (sCharType === 'sColumnar') {
+ /* 纵向条形图 */
+ content = ;
+ } else if (sCharType === 'sColumnarGroup') {
+ /* 纵向条形图 */
+ content = ;
+ } else if (sCharType === 'sBrokenLine') {
+ content = ;
+ } else if (sCharType === 'sWaterWave') {
+ content = ;
+ } else if (sCharType === 'sGauge') {
+ content = ;
+ } else if (sCharType === 'sColumnarStack') {
+ content = ;
+ } else if (sCharType === 'sPieGroup') {
+ content = ;
+ } else if (sCharType === 'sPie') {
+ content = ;
+ } else if (sCharType === 'TimeLineGroup') {
+ content = ;
+ } else if (sCharType === 'commonList') {
+ content = ;
+ } else if (sCharType === 'ColorBlock') {
+ content = ;
+ }
+ }
+ return content;
+ }
+ }else {
+ return '';
+ }
+ };
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListTabComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, logVisible, sModelsType, slaveData, app, iPageSize, masterConfig,
+ onlySlave,
+ onlySlave0,
+ onlyChart0,
+ onlySlave1,
+ onlyChart1,
+ onlyslave2,
+ onlyChart2,
+ onlyslave3,
+ onlyChart3,
+ onlyslave4,
+ onlyChart4,
+ onlyslave5,
+ onlyChart5,
+ onlyslave6,
+ onlyChart6,
+ onlyslave7,
+ onlyChart7,
+ onlyslave8,
+ onlyChart8,
+ onlyslave9,
+ onlyChart9,
+ onlyslave10,
+ onlyChart10,
+ onlyslave11,
+ onlyChart11,
+ onlyslave12,
+ onlyChart12,
+ onlyslave13,
+ onlyChart13,
+ onlyslave14,
+ onlyChart14,
+ onlyslave15,
+ onlyChart15,
+ slave0Data,
+ slave1Data,
+ slave2Data,
+ slave3Data,
+ slave4Data,
+ slave5Data,
+ slave6Data,
+ slave7Data,
+ slave8Data,
+ slave9Data,
+ slave10Data,
+ slave11Data,
+ slave12Data,
+ slave13Data,
+ slave14Data,
+ slave15Data,
+ slave0Config,
+ slave1Config,
+ slave2Config,
+ slave3Config,
+ slave4Config,
+ slave5Config,
+ slave6Config,
+ slave7Config,
+ slave8Config,
+ slaveSelectedRowKeys,
+ slave0SelectedRowKeys,
+ slave1SelectedRowKeys,
+ slave2SelectedRowKeys,
+ slave3SelectedRowKeys,
+ slave4SelectedRowKeys,
+ slave0Pagination,
+ slave1Pagination,
+ slave2Pagination,
+ slave3Pagination,
+ slave4Pagination,
+ slave5Pagination,
+ slave6Pagination,
+ slave7Pagination,
+ slave8Pagination,
+ slave9Pagination,
+ slave10Pagination,
+ slave11Pagination,
+ slave12Pagination,
+ slave13Pagination,
+ slave14Pagination,
+ slave15Pagination,
+ slavePageSize,
+ slave0PageSize,
+ slave1PageSize,
+ slave2PageSize,
+ slave3PageSize,
+ slave4PageSize,
+ slave5PageSize,
+ slave6PageSize,
+ slave7PageSize,
+ slave8PageSize,
+ slave9PageSize,
+ slave10PageSize,
+ slave11PageSize,
+ slave12PageSize,
+ slave13PageSize,
+ slave14PageSize,
+ slave15PageSize,
+ } = props;
+ // isSmall将分页变小,以及去掉跳转页面和总条数记录3333333
+ /* 回带表单 */
+ if (commonUtils.isNotEmptyObject(slavePagination)) {
+ if (isSmall) {
+ slavePagination.showTotal = null;
+ }
+ }
+ onReturnForm(form);
+
+ let customHeight= 260; /* 取从表高度 */
+ if (localStorage.getItem('customCommonListTabHeight_' + props.sModelsId) !== '') {
+ const localHeight = localStorage.getItem('customCommonListTabHeight_' + props.sModelsId);
+ if(localHeight) {
+ customHeight = Number(localHeight);
+ }
+ }
+
+ let slaveTableHeight = 230; /* 取从表高度 */
+
+ if (localStorage.getItem('customBottomHeight_' + props.sModelsId) !== '') {
+ const customBottomHeight = localStorage.getItem('customBottomHeight_' + props.sModelsId);
+ if(customBottomHeight) {
+ slaveTableHeight = Number(customBottomHeight);
+ }
+ } else {
+ const customBottomHeight = window.innerHeight - 254 - 60- 30 -customHeight;
+ slaveTableHeight = Number(customBottomHeight);
+ }
+ let slave0TableHeight = slaveTableHeight;
+ if(commonUtils.isNotEmptyObject(slave0Config)) {
+ const tableConfigSum = slave0Config?.gdsconfigformslave?.filter(item => commonUtils.isNotEmptyObject(item.sName) && item.bSum && item.bVisible);
+ if(commonUtils.isNotEmptyArr(tableConfigSum)) {
+ slave0TableHeight = slaveTableHeight -10;
+ }
+ }
+
+ const pagination = {
+ pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ ...slavePagination,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ hideOnSinglePage: false,
+ };
+ const pagination0 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave0PageSize) && slave0PageSize !== 0 ? slave0PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave0Data) ? 0 : slave0Data.length,
+ current: commonUtils.isEmptyObject(slave0Pagination) ? 1 : slave0Pagination.current,
+ ...slave0Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination1 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave1PageSize) && slave1PageSize !== 0 ? slave1PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave1Data) ? 0 : slave1Data.length,
+ current: commonUtils.isEmptyObject(slave1Pagination) ? 1 : slave1Pagination.current,
+ ...slave1Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination2 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave2PageSize) && slave2PageSize !== 0 ? slave2PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave2Data) ? 0 : slave2Data.length,
+ current: commonUtils.isEmptyObject(slave2Pagination) ? 1 : slave2Pagination.current,
+ ...slave2Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination3 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave3PageSize) && slave3PageSize !== 0 ? slave3PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave3Data) ? 0 : slave3Data.length,
+ current: commonUtils.isEmptyObject(slave3Pagination) ? 1 : slave3Pagination.current,
+ ...slave3Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination4 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave4PageSize) && slave4PageSize !== 0 ? slave4PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave4Data) ? 0 : slave4Data.length,
+ current: commonUtils.isEmptyObject(slave4Pagination) ? 1 : slave4Pagination.current,
+ ...slave4Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+
+ const pagination5 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave5PageSize) && slave5PageSize !== 0 ? slave5PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave5Data) ? 0 : slave5Data.length,
+ current: commonUtils.isEmptyObject(slave5Pagination) ? 1 : slave5Pagination.current,
+ ...slave5Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination6 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave6PageSize) && slave6PageSize !== 0 ? slave6PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave6Data) ? 0 : slave6Data.length,
+ current: commonUtils.isEmptyObject(slave6Pagination) ? 1 : slave6Pagination.current,
+ ...slave6Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination7 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave7PageSize) && slave7PageSize !== 0 ? slave7PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave7Data) ? 0 : slave7Data.length,
+ current: commonUtils.isEmptyObject(slave7Pagination) ? 1 : slave7Pagination.current,
+ ...slave7Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination8 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave8PageSize) && slave8PageSize !== 0 ? slave8PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave8Data) ? 0 : slave8Data.length,
+ current: commonUtils.isEmptyObject(slave8Pagination) ? 1 : slave8Pagination.current,
+ ...slave8Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination9 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave9PageSize) && slave9PageSize !== 0 ? slave9PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave9Data) ? 0 : slave9Data.length,
+ current: commonUtils.isEmptyObject(slave9Pagination) ? 1 : slave9Pagination.current,
+ ...slave9Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination10 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave10PageSize) && slave10PageSize !== 0 ? slave10PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave10Data) ? 0 : slave10Data.length,
+ current: commonUtils.isEmptyObject(slave10Pagination) ? 1 : slave10Pagination.current,
+ ...slave10Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination11 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave11PageSize) && slave11PageSize !== 0 ? slave11PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave11Data) ? 0 : slave11Data.length,
+ current: commonUtils.isEmptyObject(slave11Pagination) ? 1 : slave11Pagination.current,
+ ...slave11Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination12 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave12PageSize) && slave12PageSize !== 0 ? slave12PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave12Data) ? 0 : slave12Data.length,
+ current: commonUtils.isEmptyObject(slave12Pagination) ? 1 : slave12Pagination.current,
+ ...slave12Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination13 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave13PageSize) && slave13PageSize !== 0 ? slave13PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave13Data) ? 0 : slave13Data.length,
+ current: commonUtils.isEmptyObject(slave13Pagination) ? 1 : slave13Pagination.current,
+ ...slave13Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination14 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave14PageSize) && slave14PageSize !== 0 ? slave14PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave14Data) ? 0 : slave14Data.length,
+ current: commonUtils.isEmptyObject(slave14Pagination) ? 1 : slave14Pagination.current,
+ ...slave14Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination15 = {
+ pageSize: commonUtils.isNotEmptyNumber(slave15PageSize) && slave15PageSize !== 0 ? slave15PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave15Data) ? 0 : slave15Data.length,
+ current: commonUtils.isEmptyObject(slave15Pagination) ? 1 : slave15Pagination.current,
+ ...slave15Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ let slaveTreeData = [];
+ /* 包含子节点的通用列表 */
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveData)) {
+ const addSate = props.onGetSlaveTreeData(slaveData);
+ if (commonUtils.isNotEmptyObject(addSate)) {
+ // eslint-disable-next-line prefer-destructuring
+ slaveTreeData = addSate.slaveTreeData;
+ }
+ } else {
+ slaveTreeData = slaveData;
+ }
+
+ /* 过滤部件数据 */
+ const dataFilter = (tableProps, type) => {
+ const { slave0Data } = props;
+ let oriData = commonUtils.isNotEmptyArr(tableProps.data) ? tableProps.data : [];
+ let config = commonUtils.isNotEmptyArr(tableProps.config) ? tableProps.config : [];
+ const sSqlCondition = config ? config.sSqlCondition : '';
+ let res = [];
+ let sType = '';
+ if ( commonUtils.isNotEmptyArr(slave0Data) && sSqlCondition && sSqlCondition.split('.').length > 2) {
+ let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */
+ let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ /* 根据配置的条件过滤 */
+ if(commonUtils.isNotEmptyObject(targetTbName) && filteredValue && sParentKey){
+ res = slave0Data.filter(item => sParentKey && sParentKey.includes(item[filteredValue]));
+ }
+ }
+ return res;
+ };
+
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ data: slaveTreeData,
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange.bind(this, 'slave'), AutoTableHeight: customHeight },
+ onSaveState: props.onSaveState,
+ clearArray: props.clearArray,
+ readOnly: true,
+ isSmall,
+ sGroupByList: props.sGroupByList,
+ customConfig: props.customConfig,
+ noVlistTable: sModelsType === 'production/productionPlanInfo' ? true : false,
+ };
+
+ const slave0TableProps = {
+ ...commonBusiness.getTableTypes('slave0', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination : pagination0, onChange: props.onTitleChange.bind(this, 'slave0'), AutoTableHeight: slave0TableHeight
+ },
+ onSaveState: props.onSaveState,
+ };
+ const slave1TableProps = {
+ ...commonBusiness.getTableTypes('slave1', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination1, onChange: props.onTitleChange.bind(this, 'slave1'), AutoTableHeight: slaveTableHeight
+ },
+ };
+ const slave2TableProps = {
+ ...commonBusiness.getTableTypes('slave2', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination2, onChange: props.onTitleChange.bind(this, 'slave2'), AutoTableHeight: slaveTableHeight
+ },
+ onSaveState: props.onSaveState,
+ };
+ const slave3TableProps = {
+ ...commonBusiness.getTableTypes('slave3', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination3, onChange: props.onTitleChange.bind(this, 'slave3'), AutoTableHeight: slaveTableHeight
+ },
+ onSaveState: props.onSaveState,
+ };
+ const slave4TableProps = {
+ ...commonBusiness.getTableTypes('slave4', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination4, onChange: props.onTitleChange.bind(this, 'slave4'), AutoTableHeight: slaveTableHeight
+ },
+ };
+ const slave5TableProps = {
+ ...commonBusiness.getTableTypes('slave5', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination5, onChange: props.onTitleChange.bind(this, 'slave5'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ const slave6TableProps = {
+ ...commonBusiness.getTableTypes('slave6', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination6, onChange: props.onTitleChange.bind(this, 'slave6'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ const slave7TableProps = {
+ ...commonBusiness.getTableTypes('slave7', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination7, onChange: props.onTitleChange.bind(this, 'slave7'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ const slave8TableProps = {
+ ...commonBusiness.getTableTypes('slave8', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination8, onChange: props.onTitleChange.bind(this, 'slave8'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ const slave9TableProps = {
+ ...commonBusiness.getTableTypes('slave9', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination9, onChange: props.onTitleChange.bind(this, 'slave9'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ const slave10TableProps = {
+ ...commonBusiness.getTableTypes('slave10', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination10, onChange: props.onTitleChange.bind(this, 'slave10'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ const slave11TableProps = {
+ ...commonBusiness.getTableTypes('slave11', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination11, onChange: props.onTitleChange.bind(this, 'slave11'), AutoTableHeight: slaveTableHeight
+ },
+ };
+ const slave12TableProps = {
+ ...commonBusiness.getTableTypes('slave12', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination12, onChange: props.onTitleChange.bind(this, 'slave12'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ const slave13TableProps = {
+ ...commonBusiness.getTableTypes('slave13', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination13, onChange: props.onTitleChange.bind(this, 'slave13'), AutoTableHeight: slaveTableHeight
+ },
+ };
+ const slave14TableProps = {
+ ...commonBusiness.getTableTypes('slave14', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination14, onChange: props.onTitleChange.bind(this, 'slave14'), AutoTableHeight: slaveTableHeight
+ },
+ };
+ const slave15TableProps = {
+ ...commonBusiness.getTableTypes('slave15', props),
+ tableBelone: true ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ pagination: pagination15, onChange: props.onTitleChange.bind(this, 'slave15'), AutoTableHeight: slaveTableHeight
+ },
+ };
+
+ /* 有树形的不用虚拟列表 */
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveTreeData)) {
+ tableProps.noVlist = true;
+ }
+ let slaveRow = {};
+ if(commonUtils.isNotEmptyArr(slaveData)) {
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ const iSIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sSlaveId));
+ if(iSIndex > -1) {
+ slaveRow = slaveData[iSIndex];
+ }
+ }else {
+ slaveRow = slaveData[0];
+ }
+ }
+
+ let slaveInfo = '';
+ let materialsInfo = '';
+ let checkInfo = '';
+ let slaveInfo0 = '';
+ let slaveInfo1 = '';
+ let slaveInfo2 = '';
+ let slaveInfo3 = '';
+ let slaveInfo4 = '';
+ let slaveInfo5 = '';
+ let slaveInfo6 = '';
+ let slaveInfo7 = '';
+ let slaveInfo8 = '';
+ let slaveInfo9 = '';
+ let slaveInfo10 = '';
+ let slaveInfo11 = '';
+ let slaveInfo12 = '';
+ let slaveInfo13 = '';
+ let bWarnging0 = false;
+ let bWarnging1 = false;
+ let bWarnging2 = false;
+ let bWarnging3 = false;
+ let bWarnging4 = false;
+ let bWarnging5 = false;
+ let bWarnging6 = false;
+ let bWarnging7 = false;
+ let bWarnging8 = false;
+ let bWarnging9 = false;
+ let bWarnging10 = false;
+ let bWarnging11 = false;
+ let bWarnging12 = false;
+ let bWarnging13 = false;
+ let bWarnging14 = false;
+ let bWarnging15 = false;
+ if(sModelsType === 'commonListTab/tabColor') {
+ slave1TableProps.data = dataFilter(commonBusiness.getTableTypes('slave1', props), 'slave1');
+ slave2TableProps.data = dataFilter(commonBusiness.getTableTypes('slave2', props), 'slave2');
+ slave3TableProps.data = dataFilter(commonBusiness.getTableTypes('slave3', props), 'slave3');
+ slave4TableProps.data = dataFilter(commonBusiness.getTableTypes('slave4', props), 'slave4');
+ slave5TableProps.data = dataFilter(commonBusiness.getTableTypes('slave5', props), 'slave5');
+ slave6TableProps.data = dataFilter(commonBusiness.getTableTypes('slave6', props), 'slave6');
+ slave7TableProps.data = dataFilter(commonBusiness.getTableTypes('slave7', props), 'slave7');
+ slave8TableProps.data = dataFilter(commonBusiness.getTableTypes('slave8', props), 'slave8');
+ slave9TableProps.data = dataFilter(commonBusiness.getTableTypes('slave9', props), 'slave9');
+ slave10TableProps.data = dataFilter(commonBusiness.getTableTypes('slave10', props), 'slave10');
+ slave11TableProps.data = dataFilter(commonBusiness.getTableTypes('slave11', props), 'slave11');
+ slave12TableProps.data = dataFilter(commonBusiness.getTableTypes('slave12', props), 'slave12');
+ slave13TableProps.data = dataFilter(commonBusiness.getTableTypes('slave13', props), 'slave13');
+ slave14TableProps.data = dataFilter(commonBusiness.getTableTypes('slave14', props), 'slave14');
+ slave15TableProps.data = dataFilter(commonBusiness.getTableTypes('slave15', props), 'slave15');
+ bWarnging0 = commonUtils.isNotEmptyObject(slave0TableProps?.data);
+ bWarnging1 = commonUtils.isNotEmptyObject(slave1TableProps?.data);
+ bWarnging2 = commonUtils.isNotEmptyObject(slave2TableProps?.data);
+ bWarnging3 = commonUtils.isNotEmptyObject(slave3TableProps?.data);
+ bWarnging4 = commonUtils.isNotEmptyObject(slave4TableProps?.data);
+ bWarnging5 = commonUtils.isNotEmptyObject(slave5TableProps?.data);
+ bWarnging6 = commonUtils.isNotEmptyObject(slave6TableProps?.data);
+ bWarnging7 = commonUtils.isNotEmptyObject(slave7TableProps?.data);
+ bWarnging8 = commonUtils.isNotEmptyObject(slave8TableProps?.data);
+ bWarnging9 = commonUtils.isNotEmptyObject(slave9TableProps?.data);
+ bWarnging10 = commonUtils.isNotEmptyObject(slave10TableProps?.data);
+ bWarnging11 = commonUtils.isNotEmptyObject(slave11TableProps?.data);
+ bWarnging12 = commonUtils.isNotEmptyObject(slave12TableProps?.data);
+ bWarnging13 = commonUtils.isNotEmptyObject(slave13TableProps?.data);
+ bWarnging14 = commonUtils.isNotEmptyObject(slave14TableProps?.data);
+ bWarnging15 = commonUtils.isNotEmptyObject(slave15TableProps?.data);
+ }
+ if(sModelsType ==='commonListTab/tabColor' && false) {
+ bWarnging0 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate1, 0) > 0) ;
+ bWarnging1 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate2, 0) > 0) ;
+ bWarnging2 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate3, 0) > 0) ;
+ bWarnging3 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate4, 0) > 0) ;
+ bWarnging4 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate5, 0) > 0) ;
+ bWarnging5 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate6, 0) > 0);
+ bWarnging6 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate7, 0) > 0) ;
+ bWarnging7 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate8, 0) > 0) ;
+ bWarnging8 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate9, 0) > 0) ;
+ bWarnging9 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate10, 0) > 0) ;
+ bWarnging10 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate11, 0) > 0) ;
+ bWarnging11 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate12, 0) > 0) ;
+ bWarnging12 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate14, 0) > 0) ;
+ bWarnging13 = commonUtils.isNotEmptyObject(slaveRow) && !(commonUtils.isNull(slaveRow.dWastesRate13, 0) > 0) ;
+ }
+
+ if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) {
+ slaveInfo = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'MainContent')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'MainContent')[0].showName : commonFunc.showMessage(app.commonConst, 'MainContent'); /* 从表信息 */
+ materialsInfo = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zMaterials')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zMaterials')[0].showName : commonFunc.showMessage(app.commonConst, 'zMaterials'); /* 表一 */
+ checkInfo = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zCheck')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zCheck')[0].showName : commonFunc.showMessage(app.commonConst, 'zCheck'); /* 表二 */
+ slaveInfo0 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo0')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo0')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo0'); /* 表三 */
+ slaveInfo1 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo1')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo1')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo1'); /* 表四 */
+ slaveInfo2 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo2')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo2')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo2'); /* 表五 */
+ slaveInfo3 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo3')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo3')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo3'); /* 表六 */
+ slaveInfo4 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo4')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo4')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo4'); /* 表七 */
+ slaveInfo5 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo5')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo5')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo5'); /* 表八 */
+ slaveInfo6 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo6')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo6')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo6'); /* 表九 */
+ slaveInfo7 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo7')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo7')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo7'); /* 表十 */
+ slaveInfo8 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo8')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo8')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo8'); /* 表十一 */
+ slaveInfo9 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo9')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo9')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo9'); /* 表十一 */
+ slaveInfo10 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo10')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo10')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo10'); /* 表十一 */
+ slaveInfo11 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo11')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo11')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo11'); /* 表十一 */
+ slaveInfo12 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo12')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo12')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo12'); /* 表十一 */
+ slaveInfo13 = commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo13')) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo13')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo13'); /* 表十一 */
+ }
+ const masterSum = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bSum && item.sName !== '') : [];
+ const masterTitleGroup = commonUtils.isNotEmptyObject(slaveColumn) ? slaveColumn.filter(item => commonUtils.isNotEmptyObject(item.title) && item.title.indexOf('-') > -1) : [];
+ const hasColumnGroup = masterTitleGroup.length;
+ if (masterSum.length > 0) {
+ NoTotalData = hasColumnGroup > 0 ? 'TitleGroup' : 'NoTitleGroup';
+ } else {
+ NoTotalData = hasColumnGroup > 0 ? 'NoTotalData TitleGroup' : 'NoTotalData NoTitleGroup';
+ }
+ // const mProps = { ...commonBusiness.createMemoProps('master', props)};
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ };
+ const logProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'logView',
+ config: props.logConfig,
+ select: props.onSelectModal.bind(this, 'logVisible'),
+ selectCancel: props.onCancelModal.bind(this, 'logVisible'),
+ sModelsType: 'modal/logView',
+ },
+ },
+ token: props.app.token,
+ slaveColumn: props.logColumn, /* 表头 */
+ slaveConfig: props.logConfig,
+ slaveData: props.logData,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ pageLoading: false,
+ };
+
+ /* 生产进度详情 */
+ let searchWorkSchedule = {};
+ let workScheduleConfig = {};
+ let searchWorkTitle = '';
+ if (commonUtils.isNotEmptyObject(props.workScheduleConfig)) {
+ // eslint-disable-next-line prefer-destructuring
+ workScheduleConfig = props.workScheduleConfig;
+ searchWorkTitle = workScheduleConfig.sActiveName;
+ const sWorkOrderId = commonUtils.isNotEmptyObject(props.workScheduleRecord) ? props.workScheduleRecord.sWorkOrderId : '';
+ searchWorkSchedule = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'workSchedule',
+ config: workScheduleConfig,
+ conditonValues: props.getSqlCondition(workScheduleConfig),
+ title: workScheduleConfig.sActiveName,
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: workScheduleConfig.sActiveId,
+ key: props.sModelsId + workScheduleConfig.sId,
+ sModelsType: 'search/workSchedule',
+ bFilterProName: 'p_sWorkOrderId_pro',
+ bFilterProValue: sWorkOrderId,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: props.realizeHeight, /* 拖动偏移高度 */
+ bNotShowBtn: true,
+ rowSelection: null,
+ };
+ }
+
+ return (
+ } className="xly-normal-list" key={3}>
+ {
+ onlyChart1 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave2 ?
+ {slaveInfo0} } className="xly-normal-list" key={4}>
+ {
+ onlyChart2 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave3 ?
+ {slaveInfo1} } className="xly-normal-list" key={5}>
+ {
+ onlyChart3 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave4 ?
+ {slaveInfo2} } className="xly-normal-list" key={6}>
+ {
+ onlyChart4 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave5 ?
+ {slaveInfo3} } className="xly-normal-list" key={7}>
+ {
+ onlyChart5 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave6 ?
+ {slaveInfo4} } className="xly-normal-list" key={8}>
+ {
+ onlyChart6 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave7 ?
+ {slaveInfo5} } className="xly-normal-list" key={9}>
+ {
+ onlyChart7 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave8 ?
+ {slaveInfo6} } className="xly-normal-list" key={10}>
+ {
+ onlyChart8 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave9 ?
+ {slaveInfo7} } className="xly-normal-list" key={11}>
+ {
+ onlyChart9 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave10 ?
+ {slaveInfo8} } className="xly-normal-list" key={12}>
+ {
+ onlyChart10 ?
+
+ {
+ props.onGetChart()
+ }
+
:
+
+ }
+ : ''
+ }
+ {
+ onlyslave11 ?
+ {slaveInfo9} } className="xly-normal-list" key={13}>
+
+ : ''
+ }
+ {
+ onlyslave12 ?
+ {slaveInfo10} } className="xly-normal-list" key={14}>
+
+ : ''
+ }
+ {
+ onlyslave13 ?
+ {slaveInfo11} } className="xly-normal-list" key={15}>
+
+ : ''
+ }
+ {
+ onlyslave14 ?
+ {slaveInfo12} } className="xly-normal-list" key={16}>
+
+ : ''
+ }
+ {
+ onlyslave15 ?
+ {slaveInfo13} } className="xly-normal-list" key={17}>
+
+ : ''
+ }
+
+
+
+
+
+ {/* {!commonUtils.isEmpty(props.routing) ? '' : } */}
+ {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
+ {commonUtils.isEmptyArr(treeProps.treeData) || !commonUtils.isEmpty(props.routing) ? '' : }
+ {commonUtils.isEmptyArr(treeProps.treeData) || !commonUtils.isEmpty(props.routing) ? '' :
+
+
+
+ {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
+

+
+
+ }
+ {
+ logVisible ?
+
+
+ : ''
+ }
+ {
+ props.bDataAuditProgress ?
+
+
+
: ''
+
+ }
+ {
+ props.workScheduleVisible ?
+
+
+ : null
+ }
+
+ );
+});
+
+export default CommonBase(CommonListTabEvent(CommonListTab));
diff --git a/src/components/Common/CommonListTab/index.less b/src/components/Common/CommonListTab/index.less
new file mode 100644
index 0000000..fa053bb
--- /dev/null
+++ b/src/components/Common/CommonListTab/index.less
@@ -0,0 +1,82 @@
+@import "~antd-v4/lib/style/themes/default.less";
+:global {
+ .commonListTab-container{
+ padding: 10px;
+ padding-top: 3px;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ }
+ .commonListTab-sider{
+ box-sizing: border-box;
+ //width: 224px;
+ height: 100%;
+ border: 1px solid #d9d9d9;
+ float: left;
+ position: relative;
+ .resize-controller{
+ width: 100%;
+ height: 24px;
+ //position: absolute;
+ z-index: 10;
+ right: -3px;
+ top: 0;
+ cursor: row-resize;
+ background-color: #d4d4d4;
+ }
+ .commonListTab-sider-title{
+ width: 100%;
+ height: 30px;
+ padding-left: 6px;
+ line-height: 30px;
+ background: #f2f2f2;
+ box-sizing: border-box;
+ border-bottom: 1px solid #dbdbdb;
+ color: #101010;
+ font-size: 14px;
+ font-weight: bold;
+ .control-icon{
+ cursor: pointer;
+ }
+ span{
+ margin-left: 16px;
+ }
+ }
+ .commonListTab-sider-content{
+ width: 100%;
+ height: ~"calc(100% - 30px)";
+ overflow: auto;
+ }
+ }
+ .commonListTab-content{
+ //width: ~"calc(100% - 224px)";
+ float: left;
+ height: 100%;
+ #expandTable{
+ .ant-table-scroll{
+ padding-bottom: 30px!important;
+ }
+ }
+ .topTable .ant-table-content .ant-table-scroll{
+ padding-bottom: 0!important;
+ }
+ .ant-table-content .ant-table-body{
+ max-height: 100%!important;
+ }
+ .ant-table-summary{
+ position: sticky!important;
+ bottom: 20px;
+ }
+ }
+}
+.mychart{
+ width: 90%;
+ margin: 0 auto;
+ padding-top: 10px;
+}
+.mychartSmall{
+ width: 50%;
+ margin: 0 auto;
+ padding-top: 10px;
+}
diff --git a/src/components/Common/CommonListTabEvent.js b/src/components/Common/CommonListTabEvent.js
new file mode 100644
index 0000000..0f66f49
--- /dev/null
+++ b/src/components/Common/CommonListTabEvent.js
@@ -0,0 +1,3237 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring */
+/**
+ * Created by mar105 on 2019-03-27.
+ */
+import React, { Component } from 'react';
+import { Modal, message } from 'antd';
+import * as commonUtils from '../../utils/utils'; /* 通用方法 */
+import * as commonFunc from './commonFunc'; /* 通用单据方法 */
+import commonConfig from '../../utils/config';
+import * as commonServices from '../../services/services';
+import * as commonBusiness from './commonBusiness';
+
+const { confirm } = Modal;
+
+export default (ChildComponent) => {
+ return class extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {};
+ this.loadingCount = 0;
+ }
+
+ componentWillMount() {
+ /* 获取配置 */
+ this.mounted = true;
+ const {
+ slaveData, slaveSelectedRowKeys, formRoute, app, sModelsType,
+ } = this.props;
+ const { currentPane } = app;
+ /* 选择合版部件 slaveConfig,slaveColumn,slaveData有值 会将值存储到state中 */
+ if (currentPane.name === 'combineParts' || currentPane.name === 'logView' || currentPane.name === 'sisColor' || currentPane.name === 'commonPopup') {
+ const bFilterProName = currentPane.bFilterProName;
+ const bFilterProValue = currentPane.bFilterProValue;
+ this.props.onSaveState({
+ slaveData, formRoute, pageLoading: false, slaveSelectedRowKeys, selectedRowKeys: slaveSelectedRowKeys, sModelsType, bFilterProName, bFilterProValue,
+ });
+ } else if (currentPane.name === 'chooseProductProcess') { /* 选择成品工序 */
+ const { slaveFinalConfig, slaveFinalColumn, slaveFinalData } = this.props;
+ this.props.onSaveState({
+ slaveData,
+ formRoute,
+ pageLoading: false,
+ slaveSelectedRowKeys,
+ sModelsType,
+ slaveFinalConfig, /* 成品工序 对应的工单从表配置 */
+ slaveFinalColumn, /* 成品工序 对应的工单从表表头 */
+ slaveFinalData, /* 成品工序 对应的工单从表数据源 */
+ });
+ }
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ const {
+ app, formData, currentId, searchSolution, masterData, sGroupByList, formRoute, sModelsType,
+ } = nextProps;
+ let { slaveConfig: slaveConfigOld } = nextProps;
+ // nextProps.onSaveState({ realizeHeight: nextProps.realizeHeight });
+ let { iPageSize } = nextProps;
+ // formRoute === '/indexOee'为oee报产页面;
+ if (nextProps.customConfig) {
+ let slaveColumn = commonFunc.getHeaderConfig({gdsconfigformslave: nextProps.customConfig});
+ if (JSON.stringify(slaveColumn) !== JSON.stringify(nextProps.slaveColumn)) {
+ this.props.onSaveState({slaveColumn});
+ }
+ }
+ if (commonUtils.isEmptyObject(slaveConfigOld) && formData.length > 0 && (formRoute.indexOf('/indexOee') > -1 || searchSolution !== undefined)) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const slaveConfig = formData[0];
+ let addState = {};
+ let addOtherState = {};
+ const config = {};
+ let onlySlave = true;
+ let onlySlave0 = false;
+ let onlySlave1 = false;
+ let onlyslave2 = false;
+ let onlyslave3 = false;
+ let onlyslave4 = false;
+ let slave0Column = [];
+ let slave1Column = [];
+ let slave2Column = [];
+ let slave3Column = [];
+ let slave4Column = [];
+
+
+ let onlyChart0 = false;
+ let onlyChart1 = false;
+ let onlyChart2 = false;
+ let onlyChart3 = false;
+ let onlyChart4 = false;
+ let onlyChart5 = false;
+ let onlyChart6 = false;
+ let onlyChart7 = false;
+ let onlyChart8 = false;
+ let onlyChart9= false;
+ let onlyChart10= false;
+ let onlyChart11= false;
+ let onlyChart12= false;
+ let onlyChart13= false;
+ let onlyChart14= false;
+ let onlyChart15= false;
+ let onlyChart16= false;
+
+ let slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) {
+ const iIndexSlave = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbSlave');
+ if (iIndexSlave > -1) {
+ onlySlave = slaveConfig.gdsconfigformslave[iIndexSlave].bVisible;
+ }
+ }
+ /* 选择工序选中表-拷贝slave配置 */
+ const slaveFilterConfig = formData[0];
+ const slaveFilterColumn = commonFunc.getHeaderConfig(slaveFilterConfig);
+ let filterCondition = [];
+ if (commonUtils.isNotEmptyObject(masterData) && !commonUtils.isEmpty(masterData.sSearchSolutionId) && commonUtils.isNotEmptyArr(searchSolution)) {
+ const iIndex = searchSolution.findIndex(item => item.sId === masterData.sSearchSolutionId);
+ if (iIndex > -1 && !commonUtils.isEmpty(searchSolution[iIndex].sCondition)) {
+ filterCondition = JSON.parse(searchSolution[iIndex].sCondition);
+ }
+ }
+ let slaveInfoColumn = {};
+ let slaveInfoConfig;
+ let iOeePageSize = iPageSize;/* OEE没有分页组件 只需要根据后台设定页数分页 */
+ if (commonUtils.isNotEmptyNumber(formData[0].iPageSize) && formData[0].iPageSize !== 0) {
+ iOeePageSize = formData[0].iPageSize;
+ }
+
+ const slave0Config = formData.length > 0 ? formData[1] : {};
+ if(!commonUtils.isEmptyObject(slave0Config) && commonUtils.isNotEmptyObject(slave0Config.sCharType)) { /* 配置为图表 */
+ addOtherState.onlyChart0 = true;
+ onlySlave0 = true;
+ }else if (!commonUtils.isEmptyObject(slave0Config) && slave0Config.bGrdVisible) {
+ config.slave0Config = slave0Config;
+ slave0Column = commonFunc.getHeaderConfig(slave0Config);
+ onlySlave0 = true;
+ const slave0PageSize = commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyNumber(slave0Config.iPageSize) && slave0Config.iPageSize !== 0 ?
+ slave0Config.iPageSize : commonConfig.pageSize;
+ addState.slave0PageSize = slave0PageSize;
+
+ }
+ const slave1Config = formData.length > 1 ? formData[2] : {};
+ if(!commonUtils.isEmptyObject(slave1Config) && commonUtils.isNotEmptyObject(slave1Config.sCharType)) { /* 配置为图表 */
+ addOtherState.onlyChart1 = true;
+ onlySlave1 = true;
+ }else if (!commonUtils.isEmptyObject(slave1Config) && slave1Config.bGrdVisible) {
+ config.slave1Config = slave1Config;
+ slave1Column = commonFunc.getHeaderConfig(slave1Config);
+ onlySlave1 = true;
+ const slave1PageSize = commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyNumber(slave1Config.iPageSize) && slave1Config.iPageSize !== 0 ?
+ slave1Config.iPageSize : commonConfig.pageSize;
+ addState.slave0PageSize = slave1PageSize;
+ }
+ const slave2Config = formData.length > 2 ? formData[3] : {};
+ if(!commonUtils.isEmptyObject(slave2Config) && commonUtils.isNotEmptyObject(slave2Config.sCharType)) { /* 配置为图表 */
+ addOtherState.onlyChart2 = true;
+ onlyslave2 = true;
+ }else if (!commonUtils.isEmptyObject(slave2Config) && slave2Config.bGrdVisible) {
+ config.slave2Config = slave2Config;
+ slave2Column = commonFunc.getHeaderConfig(slave2Config);
+ onlyslave2 = true;
+ const slave2PageSize = commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyNumber(slave2Config.iPageSize) && slave2Config.iPageSize !== 0 ?
+ slave2Config.iPageSize : commonConfig.pageSize;
+ addState.slave2PageSize = slave2PageSize;
+ }
+ const slave3Config = formData.length > 3 ? formData[4] : {};
+ if(!commonUtils.isEmptyObject(slave3Config) && commonUtils.isNotEmptyObject(slave3Config.sCharType)) { /* 配置为图表 */
+ addOtherState.onlyChart3 = true;
+ onlyslave3 = true;
+ }else if (!commonUtils.isEmptyObject(slave3Config) && slave3Config.bGrdVisible) {
+ config.slave3Config = slave3Config;
+ slave3Column = commonFunc.getHeaderConfig(slave3Config);
+ onlyslave3 = true;
+ const slave3PageSize = commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyNumber(slave3Config.iPageSize) && slave3Config.iPageSize !== 0 ?
+ slave3Config.iPageSize : commonConfig.pageSize;
+ addState.slave3PageSize = slave3PageSize;
+ }
+ const slave4Config = formData.length > 4 ? formData[5] : {};
+ if(!commonUtils.isEmptyObject(slave4Config) && commonUtils.isNotEmptyObject(slave4Config.sCharType)) { /* 配置为图表 */
+ addOtherState.onlyChart4 = true;
+ onlyslave4 = true;
+ }else if (!commonUtils.isEmptyObject(slave4Config) && slave4Config.bGrdVisible) {
+ config.slave4Config = slave4Config;
+ slave4Column = commonFunc.getHeaderConfig(slave4Config);
+ onlyslave4 = true;
+ const slave4PageSize = commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyNumber(slave4Config.iPageSize) && slave4Config.iPageSize !== 0 ?
+ slave4Config.iPageSize : commonConfig.pageSize;
+ addState.slave4PageSize = slave4PageSize;
+ }
+ /* commonNewBill 可以一带N表 */
+ const tableConfigArr = formData.filter(item => item.bGrd && item.bGrdVisible);
+ const slaveOtherConfigArr = [];
+ if(commonUtils.isNotEmptyArr(tableConfigArr)) {
+ tableConfigArr.forEach((item, iIndex) => {
+ if(iIndex > 4) {
+ let iSlaveTag = iIndex;
+ if(formData[0].bGrd && formData[0].bGrdVisible) { /* 防止从表没有勾选显示 错一位 */
+ iSlaveTag = iIndex - 1;
+ }
+ item.slaveNameTag = iSlaveTag;
+ slaveOtherConfigArr.push(item);
+ const slaveOtherConfigName = 'slave' + iSlaveTag + 'Config';
+ let slaveOtherColumnName = 'slave' + iSlaveTag + 'Column';
+ const onlyslaveTag= 'onlyslave' + iSlaveTag;
+ const slavePageSizeTag = 'slave' + iSlaveTag + 'PageSize';
+ const slaveOtherColumn = commonFunc.getHeaderConfig(item);
+ addOtherState[slaveOtherConfigName] = item;
+ addOtherState[slaveOtherColumnName] = slaveOtherColumn;
+ addOtherState[onlyslaveTag] = true;
+ const slavePageSize = commonUtils.isNotEmptyObject(item) && commonUtils.isNotEmptyNumber(item.iPageSize) && item.iPageSize !== 0 ?
+ item.iPageSize : commonConfig.pageSize;
+ if(!commonUtils.isEmptyObject(item) && commonUtils.isNotEmptyObject(item.sCharType)) { /* 配置为图表 */
+ const onlyChartTag= 'onlyChart' + iSlaveTag;
+ addOtherState[onlyChartTag] = true;
+ }
+ addOtherState[slavePageSizeTag] = slavePageSize;
+ }
+ });
+ addOtherState.slaveOtherConfigArr = slaveOtherConfigArr;
+ }
+ if (sModelsType !== '/indexOee/wagesSearch' && sModelsType !== '/indexOee/processReportList') { /* 该分支用于除OEE外的列表再次获取时执行 */
+ /* 首先以下拉页数为准 否则以后台页数为准 如果以上都没有设置 则依照config配置的页码设置 */
+ if (commonUtils.isNotEmptyNumber(formData[0].iPageSize) && formData[0].iPageSize !== 0) {
+ iPageSize = formData[0].iPageSize;
+ }
+ this.handleGetData(slaveConfig, filterCondition, 1, commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize, '', false, sGroupByList,
+ undefined, undefined, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave5Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave6Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave7Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave8Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave9Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave10Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave11Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave12Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave13Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave14Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave15Config : null,
+ );
+
+ /* 判断是否要加载过滤树数据 */
+ const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree);
+ if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) {
+ const filterTreeConfig = filterTreeConfigArr[0];
+ await this.handleGetFilterTreeData(filterTreeConfig, filterCondition, 1);
+ }
+ const iIndexBtnFirst = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnFirst');
+ if (iIndexBtnFirst < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnFirst', sControlName: 'BtnFirst',
+ });
+ }
+ const iIndexBtnPrior = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnPrior');
+ if (iIndexBtnPrior < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnPrior', sControlName: 'BtnPrior',
+ });
+ }
+ const iIndexBtnNext = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnNext');
+ if (iIndexBtnNext < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnNext', sControlName: 'BtnNext',
+ });
+ }
+ const iIndexBtnLast = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnLast');
+ if (iIndexBtnLast < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnLast', sControlName: 'BtnLast',
+ });
+ }
+ const iIndexBtnSave = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnSave');
+ if (iIndexBtnSave < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnSave', sControlName: 'BtnSave',
+ });
+ }
+ const iIndexBtnCancel = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnCancel');
+ if (iIndexBtnCancel < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnCancel', sControlName: 'BtnCancel',
+ });
+ }
+ const iIndexBtnCopyFrom = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnCopyFrom');
+ if (iIndexBtnCopyFrom < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnCopyFrom', sControlName: 'BtnCopyFrom',
+ });
+ }
+ }
+ this.props.onSaveState({
+ masterConfig: slaveConfig,
+ slaveConfig,
+ slaveColumn,
+ slaveInfoConfig,
+ slaveInfoColumn,
+ sId,
+ pageLoading: false,
+ slaveFilterColumn,
+ slaveFilterConfig,
+ slave0Config,
+ slave0Column,
+ slave1Config,
+ slave1Column,
+ slave2Config,
+ slave2Column,
+ slave3Config,
+ slave3Column,
+ slave4Config,
+ slave4Column,
+ onlySlave,
+ onlySlave0,
+ onlySlave1,
+ onlyslave2,
+ onlyslave3,
+ onlyslave4,
+ ...addOtherState,
+ ...addState,
+ });
+ } else if (JSON.stringify(app.currentPane.conditonValues) !== JSON.stringify(this.props.app.currentPane.conditonValues)) {
+ const { slaveConfig, slaveFilterCondition } = nextProps;
+ this.handleGetData(slaveConfig, slaveFilterCondition, 1, commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize, undefined, undefined, undefined, nextProps);
+ } else if (JSON.stringify(nextProps.id) !== JSON.stringify(this.props.id)) {
+ this.props.onSaveState({ slaveSelectedRowKeys: [] });
+ } else if (!commonUtils.isEmpty(this.props.pageNum) && this.props.pageNum !== nextProps.pageNum) {
+ const {
+ slaveConfig, slaveFilterCondition, sGroupByList, treeFilterCondition, slavePagination, slaveOrderBy,
+ } = this.props;
+ if (this.props.pageNum >= Math.ceil(slavePagination.total / slavePagination.pageSize)) {
+ this.props.onToFirst();
+ } else if (commonUtils.isNotEmptyArr(treeFilterCondition)) { /* 判断是否有树过滤条件 */
+ this.handleGetData(slaveConfig, slaveFilterCondition, nextProps.pageNum, slavePagination.pageSize, slaveOrderBy, '', sGroupByList, '', treeFilterCondition);
+ } else {
+ this.handleGetData(slaveConfig, slaveFilterCondition, nextProps.pageNum, slavePagination.pageSize, slaveOrderBy, '', sGroupByList);
+ }
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { slaveColumn } = nextProps;
+ return commonUtils.isNotEmptyArr(slaveColumn);
+ }
+
+ /** 获取表数据 */
+ handleGetData = async (slaveConfig, slaveFilterCondition, page, pageSize, slaveOrderBy, clearSelectData, sGroupByListNew, nextProps, treeFilterCondition,
+ slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config, slave11Config, slave12Config, slave13Config, slave14Config, slave15Config) => {
+ const {
+ app,
+ name,
+ formRoute,
+ slavePagination,
+ selectedRowKeys,
+ fatherModelsType,
+ slaveSelectedRowKeys,
+ iPageSize,
+ sModelsId,
+ token,
+ } = commonUtils.isEmpty(nextProps) ? this.props : nextProps;
+ let { sModelsType } = app.currentPane; /* 特殊处理 选择工序不分页s */
+ const sGroupByList = sGroupByListNew !== undefined ? commonUtils.isEmptyArr(sGroupByListNew) ? null : sGroupByListNew : this.props.sGroupByList;
+ const conditonValues = app.currentPane.conditonValues;
+ const filterCondition = app.currentPane.filterCondition;
+ const bFilter = [];
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ if (!commonUtils.isEmptyArr(slaveFilterCondition)) {
+ bFilter.push(...slaveFilterCondition);
+ }
+ if (!commonUtils.isEmptyArr(filterCondition)) {
+ bFilter.push(...filterCondition);
+ }
+ if (!commonUtils.isEmptyArr(treeFilterCondition)) {
+ bFilter.push(...treeFilterCondition);
+ }
+ if (formRoute === '/indexOee/commonListTab') {
+ bFilter.push({
+ bFilterName: 'sMachineGuid_pro',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ }
+ pageSize = commonUtils.isEmpty(pageSize) ? commonUtils.isEmpty(slavePagination) || commonUtils.isEmpty(slavePagination.pageSize) ? iPageSize : slavePagination.pageSize : pageSize;
+
+ let addStateSlave = {};
+ let addStateSlave0 = {};
+ addStateSlave0.slave0Data = [];
+ let addStateSlave1 = {};
+ let addStateSlave2 = {};
+ let addStateSlave3 = {};
+ let addStateSlave4 = {};
+ let addStateSlave5 = {};
+ let addStateSlave6 = {};
+ let addStateSlave7 = {};
+ let addStateSlave8 = {};
+ let addStateSlave9 = {};
+ let addStateSlave10 = {};
+ let addStateSlave11 = {};
+ let addStateSlave12 = {};
+ let addStateSlave13 = {};
+ let addStateSlave14 = {};
+ let addStateSlave15 = {};
+ if (!commonUtils.isEmptyObject(slaveConfig)) {
+ addStateSlave = await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum,
+ pageSize,
+ bFilter,
+ sFilterOrderBy: slaveOrderBy,
+ sSqlCondition: conditonValues,
+ sGroupList: sGroupByList,
+ },
+ flag: true,
+ isWait: true,
+ clearSelectData,
+ });
+ }
+ // if(commonUtils.isNotEmptyObject(addStateSlave) && commonUtils.isNotEmptyArr(addStateSlave.slaveData)) {
+ // addStateSlave.slaveSelectedRowKeys = [addStateSlave.slaveData[0].sSlaveId];
+ // }
+ const { masterConfig = {} } = this.props;
+ const { bDefaultCheck } = masterConfig;
+ const bSpecialCheck = sModelsId ==='12710101117356137370500' || sModelsId ==='12710101117253309349270' ? true : false;
+ /* 除了第一张表之外的其他所有表格数据 都从第一张表的选中行数据作为查询条件 */
+ if(commonUtils.isNotEmptyArr(addStateSlave) && commonUtils.isNotEmptyArr(addStateSlave.slaveData) && (bDefaultCheck || bSpecialCheck)) {
+ addStateSlave.slaveSelectedRowKeys = bSpecialCheck? [] : [addStateSlave.slaveData[0].sSlaveId];
+ let record = addStateSlave.slaveData[0]; /* 从表选中行 没有选中行时 取第一行 */
+ if (!commonUtils.isEmptyObject(slave0Config)) {
+ let conditonValues0 = {};
+ const sSqlCondition0 = slave0Config.sSqlCondition;
+ if (commonUtils.isNotEmptyObject(sSqlCondition0)) {
+ conditonValues0 = this.props.getSqlCondition(slave0Config, 'slave', record);
+ }
+ const bFilterNew = [];
+ if(sModelsId ==='12710101117356137370500' || sModelsId ==='12710101117253309349270') { /* 机台工单追踪单独处理,增加搜索组件的条件 */
+ if (!commonUtils.isEmptyArr(bFilter)) {
+ bFilterNew.push(...bFilter);
+ }
+ if(commonUtils.isNotEmptyArr(bFilterNew)) {
+ const iIndex= bFilterNew.findIndex(item => item.bFilterName ==='bSelected');
+ if(iIndex > -1) {
+ bFilterNew.splice(iIndex,1);
+ }
+ }
+ if(commonUtils.isNotEmptyArr(bFilterNew)) {
+ if( commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ const addState ={};
+ addState.bFilterName ='bSelected';
+ addState.bFilterCondition ='=';
+ addState.bFilterValue = false;
+ bFilterNew.push(addState);
+ } else {
+ const addState = {};
+ addState.bFilterName ='bSelected';
+ addState.bFilterCondition ='=';
+ addState.bFilterValue = true;
+ bFilterNew.push(addState);
+ }
+ }
+ }
+
+ if( commonUtils.isNotEmptyObject(slave0Config.sCharType)) { /* 加载图表 */
+ let charConfigAndData = {};
+ const value = { sProName: slave0Config.sTbName, paramsMap: conditonValues };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const { dataset } = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ } else {
+ const xyData = commonUtils.isEmpty(outData.sReturn) ? [] : JSON.parse(outData.sReturn);
+ charConfigAndData = xyData;
+ this.props.onSaveState({charConfigAndData});
+ }
+ }
+ }
+ } else {
+ if (['proc'].includes(slave0Config?.sType) && !bSpecialCheck) {
+ addStateSlave0 = await this.handleGetProData({ tableConfig: slave0Config, conditonValues: conditonValues0, sModelsId, formRoute, token });
+ } else {
+ addStateSlave0 = await this.props.handleGetDataSet({
+ name: 'slave0', configData: slave0Config, condition: { pageNum, pageSize, bFilter:bFilterNew, sFilterOrderBy:'', sSqlCondition: conditonValues0, sGroupList:sGroupByList }, isWait: true,
+ });
+ }
+ }
+
+ }
+
+ // if (!commonUtils.isEmptyObject(slave1Config)) {
+ // let conditonValues1 = {};
+ // const sSqlCondition1 = slave1Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition1)) {
+ // conditonValues1 = this.props.getSqlCondition(slave1Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave1', configData: slave1Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues1, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ //
+ // if (!commonUtils.isEmptyObject(slave2Config)) {
+ // let conditonValues2 = {};
+ // const sSqlCondition2 = slave2Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition2)) {
+ // conditonValues2 = this.props.getSqlCondition(slave2Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave2', configData: slave2Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues2, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave3Config)) {
+ // let conditonValues3 = {};
+ // const sSqlCondition3 = slave3Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition3)) {
+ // conditonValues3 = this.props.getSqlCondition(slave3Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave3', configData: slave3Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues3, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave4Config)) {
+ // let conditonValues4 = {};
+ // const sSqlCondition1 = slave4Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition1)) {
+ // conditonValues4 = this.props.getSqlCondition(slave4Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave4', configData: slave4Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues4, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave5Config)) {
+ // let conditonValues5 = {};
+ // const sSqlCondition1 = slave5Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition1)) {
+ // conditonValues5 = this.props.getSqlCondition(slave5Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave5', configData: slave5Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues5, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave6Config)) {
+ // let conditonValues6 = {};
+ // const sSqlCondition1 = slave6Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition1)) {
+ // conditonValues6 = this.props.getSqlCondition(slave6Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave6', configData: slave6Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues6, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave7Config)) {
+ // let conditonValues7 = {};
+ // const sSqlCondition1 = slave7Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition1)) {
+ // conditonValues7 = this.props.getSqlCondition(slave7Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave7', configData: slave7Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues7, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave8Config)) {
+ // let conditonValues8 = {};
+ // const sSqlCondition8 = slave8Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition8)) {
+ // conditonValues8 = this.props.getSqlCondition(slave8Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave8', configData: slave8Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues8, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave9Config)) {
+ // let conditonValues9 = {};
+ // const sSqlCondition1 = slave9Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition1)) {
+ // conditonValues9 = this.props.getSqlCondition(slave9Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave9', configData: slave9Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues9, sGroupList:sGroupByList },
+ // });
+ // }
+ //
+ // if (!commonUtils.isEmptyObject(slave10Config)) {
+ // let conditonValues10 = {};
+ // const sSqlCondition10 = slave10Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition10)) {
+ // conditonValues10 = this.props.getSqlCondition(slave10Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave10', configData: slave10Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues10, sGroupList:sGroupByList },
+ // });
+ // }
+ // if (!commonUtils.isEmptyObject(slave11Config)) {
+ // let conditonValues11 = {};
+ // const sSqlCondition11 = slave11Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition11)) {
+ // conditonValues11 = this.props.getSqlCondition(slave11Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave11', configData: slave11Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues11, sGroupList:sGroupByList },
+ // });
+ // }
+ // if (!commonUtils.isEmptyObject(slave12Config)) {
+ // let conditonValues12 = {};
+ // const sSqlCondition12 = slave12Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition12)) {
+ // conditonValues12 = this.props.getSqlCondition(slave12Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave12', configData: slave12Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues12, sGroupList:sGroupByList },
+ // });
+ // }
+ // if (!commonUtils.isEmptyObject(slave13Config)) {
+ // let conditonValues13 = {};
+ // const sSqlCondition13 = slave13Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition13)) {
+ // conditonValues13 = this.props.getSqlCondition(slave13Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave13', configData: slave13Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues13, sGroupList:sGroupByList },
+ // });
+ // }
+ // if (!commonUtils.isEmptyObject(slave14Config)) {
+ // let conditonValues14 = {};
+ // const sSqlCondition12 = slave14Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition12)) {
+ // conditonValues14 = this.props.getSqlCondition(slave14Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave14', configData: slave14Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues14, sGroupList:sGroupByList },
+ // });
+ // }
+ // if (!commonUtils.isEmptyObject(slave15Config)) {
+ // let conditonValues15 = {};
+ // const sSqlCondition12 = slave15Config.sSqlCondition;
+ // if (commonUtils.isNotEmptyObject(sSqlCondition12)) {
+ // conditonValues15 = this.props.getSqlCondition(slave15Config, 'slave', record);
+ // }
+ // this.props.handleGetDataSet({
+ // name: 'slave15', configData: slave15Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:slaveOrderBy, sSqlCondition: conditonValues15, sGroupList:sGroupByList },
+ // });
+ // }
+ }
+
+ // this.props.onSaveState({
+ // pageLoading: false, ...addStateSlave, ...addStateSlave0, ...addStateSlave1, ...addStateSlave2, ...addStateSlave3, ...addStateSlave4,
+ // ...addStateSlave5, ...addStateSlave6, ...addStateSlave7, ...addStateSlave8, ...addStateSlave9, ...addStateSlave10,...addStateSlave11,...addStateSlave12,
+ // });
+
+ this.props.onSaveState({
+ pageLoading: false, ...addStateSlave, ...addStateSlave0,
+ });
+
+ };
+
+ handleEachChar = async (each, name) => {
+ const { token, sModelsId, charConfigAndData, formRoute } = this.state;
+ const value = { sProName: each.sProcedureName, paramsMap: each.prodParamsMap };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const { dataset } = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ } else {
+ const xyData = commonUtils.isEmpty(outData.sReturn) ? [] : JSON.parse(outData.sReturn);
+ const index = charConfigAndData.findIndex(item => item.sProcedureName === each.sProcedureName && item.sId === each.sId);
+ if (index > -1) {
+ charConfigAndData[index].child = xyData;
+ }
+ }
+ }
+ } else {
+ message.error(returnData.msg);
+ }
+ this.setState({ charConfigAndData });
+ };
+ /* 查询后调用的方法 查第一张从表Tab所在表 */
+ handleGetSearchData = async (slaveConfig, slaveFilterCondition, page, pageSize, slaveOrderBy, clearSelectData, sGroupByListNew, nextProps, treeFilterCondition) => {
+ const { app, slavePagination, iPageSize, activeKey, sModelsId, token, formRoute, sModelsType, slave0Config } = this.props;
+ let tabName = ''; /* 页签所在表 */
+ if(commonUtils.isEmptyObject(activeKey)) { /* 默认查从表与slave0表 */
+ tabName = 'slave0';
+ }else {
+ if(activeKey === '2') {
+ tabName = 'slave0';
+ } else if(activeKey === '3') {
+ tabName = 'slave1';
+ }else if(activeKey === '4') {
+ tabName = 'slave2';
+ }else if(activeKey === '5') {
+ tabName = 'slave3';
+ }else if(activeKey === '6') {
+ tabName = 'slave4';
+ }else if(activeKey === '7') {
+ tabName = 'slave5';
+ }else if(activeKey === '8') {
+ tabName = 'slave6';
+ }else if(activeKey === '9') {
+ tabName = 'slave7';
+ }else if(activeKey === '10') {
+ tabName = 'slave8';
+ }else if(activeKey === '11') {
+ tabName = 'slave9';
+ }else if(activeKey === '12') {
+ tabName = 'slave10';
+ }else if(activeKey === '13') {
+ tabName = 'slave11';
+ }else if(activeKey === '14') {
+ tabName = 'slave12';
+ }else if(activeKey === '15') {
+ tabName = 'slave13';
+ }else if(activeKey === '16') {
+ tabName = 'slave14';
+ }else if(activeKey === '17') {
+ tabName = 'slave15';
+ }else if(activeKey === '18') {
+ tabName = 'slave16';
+ }else if(activeKey === '19') {
+ tabName = 'slave17';
+ }else if(activeKey === '20') {
+ tabName = 'slave18';
+ }else if(activeKey === '21') {
+ tabName = 'slave19';
+ }else if(activeKey === '22') {
+ tabName = 'slave20';
+ }
+ }
+ const sGroupByList = sGroupByListNew !== undefined ? commonUtils.isEmptyArr(sGroupByListNew) ? null : sGroupByListNew : this.props.sGroupByList;
+ const conditonValues = app.currentPane.conditonValues;
+ const filterCondition = app.currentPane.filterCondition;
+ const bFilter = [];
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ if (!commonUtils.isEmptyArr(slaveFilterCondition)) {
+ bFilter.push(...slaveFilterCondition);
+ }
+ if (!commonUtils.isEmptyArr(filterCondition)) {
+ bFilter.push(...filterCondition);
+ }
+ if (!commonUtils.isEmptyArr(treeFilterCondition)) {
+ bFilter.push(...treeFilterCondition);
+ }
+ pageSize = commonUtils.isEmpty(pageSize) ? commonUtils.isEmpty(slavePagination) || commonUtils.isEmpty(slavePagination.pageSize) ? iPageSize : slavePagination.pageSize : pageSize;
+
+ let addStateSlave = {};
+ let addStateSlave0 = {};
+ if (!commonUtils.isEmptyObject(slaveConfig)) {
+ addStateSlave = await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum,
+ pageSize,
+ bFilter,
+ sFilterOrderBy: slaveOrderBy,
+ sSqlCondition: conditonValues,
+ sGroupList: sGroupByList,
+ },
+ flag: true,
+ isWait: true,
+ clearSelectData,
+ });
+ }
+ /* 除了第一张表之外的其他所有表格数据 都从第一张表的选中行数据作为查询条件 */
+ if(commonUtils.isNotEmptyObject(tabName)) {
+ const { masterConfig, [`${tabName}Config`] : tableConfig, [`${tabName}FilterCondition`]: tableFilterCondition, slaveOrderBy, [`${tabName}Pagination`] : tablePagination,
+ } = this.props;
+ addStateSlave.slave0Data = [];
+ addStateSlave.slave1Data = [];
+ addStateSlave.slave2Data = [];
+ addStateSlave.slave3Data = [];
+ addStateSlave.slave4Data = [];
+ addStateSlave.slave5Data = [];
+ addStateSlave.slave6Data = [];
+ addStateSlave.slave7Data = [];
+ addStateSlave.slave8Data = [];
+ addStateSlave.slave9Data = [];
+ addStateSlave.slave10Data = [];
+ addStateSlave.slave11Data = [];
+ addStateSlave.slave12Data = [];
+ addStateSlave.slave13Data = [];
+ addStateSlave.slave14Data = [];
+ addStateSlave.slave15Data = [];
+ addStateSlave.slave16Data = [];
+ addStateSlave.slave17Data = [];
+ addStateSlave.slave18Data = [];
+ addStateSlave.slave19Data = [];
+ addStateSlave.slave20Data = [];
+ const { bDefaultCheck } = masterConfig;
+ /* 这两个模块单独处理 不勾选但是查询 */
+ const bSpecialCheck = sModelsId ==='12710101117356137370500' || sModelsId ==='12710101117253309349270' ? true : false;
+ if(commonUtils.isNotEmptyObject(addStateSlave) && commonUtils.isNotEmptyArr(addStateSlave.slaveData) && (bDefaultCheck || bSpecialCheck)) {
+ addStateSlave.slaveSelectedRowKeys = bSpecialCheck ? [] : [addStateSlave.slaveData[0].sSlaveId];
+ let record = addStateSlave.slaveData[0]; /* 从表选中行 没有选中行时 取第一行 */
+ if (!commonUtils.isEmptyObject(tableConfig)) {
+ let conditonValues0 = {};
+ let sSqlCondition0 = tableConfig.sSqlCondition;
+ if(sModelsType === 'commonListTab/tabColor') {
+ sSqlCondition0 = slave0Config.sSqlCondition;
+ if (commonUtils.isNotEmptyObject(sSqlCondition0)) {
+ conditonValues0 = this.props.getSqlCondition(slave0Config, 'slave', record);
+ }
+ }else {
+ if (commonUtils.isNotEmptyObject(sSqlCondition0)) {
+ conditonValues0 = this.props.getSqlCondition(tableConfig, 'slave', record);
+ }
+ }
+ if( commonUtils.isNotEmptyObject(tableConfig.sCharType)) { /* 加载图表 */
+ const value = { sProName: tableConfig.sTbName, paramsMap: conditonValues };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const { dataset } = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ } else {
+ const xyData = commonUtils.isEmpty(outData.sReturn) ? [] : JSON.parse(outData.sReturn);
+ addStateSlave0.charConfigAndData = xyData;
+ }
+ }
+ }
+ } else{ /* 加载表格*/
+ if (['proc'].includes(tableConfig?.sType)) {
+ addStateSlave0 = await this.handleGetProData({ tableConfig, conditonValues:conditonValues0, sModelsId, formRoute, token });
+ } else {
+ if(sModelsType === 'commonListTab/tabColor') {
+ addStateSlave0 = await this.props.handleGetDataSet({
+ name: 'slave0', configData: slave0Config, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:'', sSqlCondition: conditonValues0, sGroupList:sGroupByList }, isWait: true,
+ });
+
+ }else {
+ addStateSlave0 = await this.props.handleGetDataSet({
+ name: tabName, configData: tableConfig, condition: { pageNum, pageSize, bFilter:[], sFilterOrderBy:'', sSqlCondition: conditonValues0, sGroupList:sGroupByList }, isWait: true,
+ });
+ }
+
+ }
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ pageLoading: false, ...addStateSlave, ...addStateSlave0,
+ });
+
+ };
+
+ handleGetProData = async (param) => {
+ const { tableConfig, conditonValues, sModelsId, formRoute, token, page, pageSize } = param;
+ const name = commonUtils.isNotEmptyObject(tableConfig?.sGrd) ? tableConfig?.sGrd : 'slave0';
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ const pageTableSize = tableConfig.bPagination ? commonUtils.isNull(tableConfig.iPageSize,10000) : 10000;
+ const value = { sProName: tableConfig.sTbName, paramsMap: conditonValues, pageNum, pageSize:pageTableSize };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const {dataset} = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const proData = returnData.dataset.rows?.[0]?.dataSet?.proData;
+ if (Array.isArray(proData)) {
+ return ({[`${name}Data`]: proData})
+ }
+ }
+ }else if(returnData.code === -8){
+ Modal.info({
+ title: '温馨提示:',
+ content: (
+
+ {this.handleGetMsg(returnData.msg)}
+
+ ),
+ okText: '确认',
+ onOk() {},
+ });
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ return ({ [`${name}Data`]: [] })
+ }
+ /* 解析消息 */
+ handleGetMsg = (str) => {
+ const msgArr = commonUtils.isNotEmptyObject(str) ? str.split('xpm'): '';
+ const divStr = [];
+ if(commonUtils.isNotEmptyArr(msgArr)) {
+ for (let i = 0; i < msgArr.length; i ++) {
+ divStr.push({msgArr[i]}
);
+ }
+ }
+ return divStr;
+ }
+ /** 获取过滤树数据数据 */
+ handleGetFilterTreeData= (slaveConfig, slaveFilterCondition, page, slaveOrderBy, props) => {
+ const { app } = props === undefined ? this.props : props;
+ const conditonValues = app.currentPane.conditonValues;
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ this.props.handleGetTreeDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum, pageSize: commonConfig.pageSize, bFilter: slaveFilterCondition, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ };
+
+ /** 获取表详情数据 */
+ handleGetDataInfo = (slaveInfoConfig, slaveFilterCondition, page, slaveOrderBy, props) => {
+ const { app } = props === undefined ? this.props : props;
+ const conditonValues = app.currentPane.conditonValues;
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ this.props.handleGetDataSet({
+ name: 'slaveInfo',
+ configData: slaveInfoConfig,
+ condition: {
+ pageNum, pageSize: commonConfig.pageSize, bFilter: [], sFilterOrderBy: '', sSqlCondition: conditonValues,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ };
+
+ /* 查询单表数据 */
+ handleGetDataOne = async (name, slaveInfoConfig, slaveFilterCondition, page, pageSize, slaveOrderBy, props, isWait) => {
+ const { slaveData, slaveSelectedRowKeys, sModelsId } = props === undefined ? this.props : props;
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyObject(slaveInfoConfig)) {
+ let record = {}; /* 从表选中行 没有选中行时 取第一行 */
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ record = slaveData[iIndex];
+ }
+ }
+ let conditonValues = {};
+ const sSqlCondition0 = slaveInfoConfig.sSqlCondition;
+ if (commonUtils.isNotEmptyObject(sSqlCondition0)) {
+ conditonValues = this.props.getSqlCondition(slaveInfoConfig, 'slave', record);
+ }
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ const pageTableSize = commonUtils.isNotEmptyNumber(pageSize) ? pageSize : commonConfig.pageSize;
+ const sFilterOrderBy = name === 'slave' ? slaveOrderBy : '';
+ const bFilter = [];
+ if(name === 'slave') {
+ if (!commonUtils.isEmptyArr(slaveFilterCondition)) {
+ bFilter.push(...slaveFilterCondition);
+ }
+ }else { /* 不等于从表的页签 */
+ if(sModelsId ==='12710101117356137370500' || sModelsId ==='12710101117253309349270') { /* 机台工单追踪单独处理,增加搜索组件的条件 */
+ if (!commonUtils.isEmptyArr(this.props?.slaveFilterCondition)) {
+ bFilter.push(...this.props?.slaveFilterCondition);
+ }
+ if(commonUtils.isNotEmptyArr(bFilter)) {
+ const iIndex= bFilter.findIndex(item => item.bFilterName ==='bSelected');
+ console.log('要删除已存在的bSelected', iIndex);
+ if(iIndex > -1) {
+ bFilter.splice(iIndex,1);
+ }
+ }
+ if(commonUtils.isNotEmptyArr(bFilter)) {
+ if( commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ const addState ={};
+ addState.bFilterName ='bSelected';
+ addState.bFilterCondition ='=';
+ addState.bFilterValue = false;
+ bFilter.push(addState);
+ } else {
+ const addState = {};
+ addState.bFilterName ='bSelected';
+ addState.bFilterCondition ='=';
+ addState.bFilterValue = true;
+ bFilter.push(addState);
+ }
+ }
+ }
+ }
+ let addState = await this.props.handleGetDataSet({
+ name,
+ configData: slaveInfoConfig,
+ condition: {
+ pageNum, pageSize: pageTableSize, bFilter, sFilterOrderBy, sSqlCondition: conditonValues,
+ },
+ flag: true,
+ clearSelectData: true,
+ isWait:true,
+ });
+
+ if (name === 'slave') {
+ addState.slaveSelectedRowKeys = slaveSelectedRowKeys
+ }
+
+ if(isWait) {
+ if(commonUtils.isEmptyObject(addState)) {
+ addState = {};
+ }
+ addState.pageLoading = false;
+ return addState;
+ } else {
+ this.props.onSaveState({ pageLoading: false, ...addState });
+ }
+ }
+ };
+
+ /* 查询单表图表 */
+ handleGetCharOne = async (name, slaveInfoConfig, slaveFilterCondition, page, pageSize, slaveOrderBy, props, isWait, sourceRecord) => {
+ const { slaveData,token, sModelsId, slaveSelectedRowKeys, charConfigAndData, formRoute } = props === undefined ? this.props : props;
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyObject(slaveInfoConfig)) {
+ let record = slaveData[0]; /* 从表选中行 没有选中行时 取第一行 */
+ console.log('选中行:', slaveSelectedRowKeys);
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ record = slaveData[iIndex];
+ }
+ /* sourceRecord:当前选中行slaveSelectedRowKeys比selectedRowKeys慢一拍, 所有要通过传参的方式传入 */
+ if (commonUtils.isNotEmptyObject(sourceRecord)) {
+ record = sourceRecord;
+ }
+ } else if(commonUtils.isNotEmptyObject(sourceRecord)) {
+ console.log('slaveSelectedRowKeys为空:', record);
+ record = sourceRecord;
+ }
+ console.log('选中行-record', record);
+ let conditonValues = {};
+ const sSqlCondition0 = slaveInfoConfig.sSqlCondition;
+ if (commonUtils.isNotEmptyObject(sSqlCondition0)) {
+ conditonValues = this.props.getSqlCondition(slaveInfoConfig, 'slave', record);
+ }
+ let addState = {};
+ const value = { sProName: slaveInfoConfig.sTbName, paramsMap: conditonValues };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const { dataset } = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ } else {
+ const xyData = commonUtils.isEmpty(outData.sReturn) ? [] : JSON.parse(outData.sReturn);
+ addState = xyData;
+ // const index = charConfigAndData.findIndex(item => item.sProcedureName === each.sProcedureName && item.sId === each.sId);
+ // if (index > -1) {
+ // addState = xyData;
+ // }
+ }
+ }
+ } else {
+ message.error(returnData.msg);
+ }
+ if(isWait) {
+ if(commonUtils.isEmptyObject(addState)) {
+ addState = {};
+ }
+ addState.pageLoading = false;
+ return addState;
+ } else {
+ this.props.onSaveState({ pageLoading: false, ...addState });
+ }
+ }
+ };
+
+
+ /* 获取commonGantte列表数据集 */
+ handleGanttChar = async (ganttChart, slaveFilterCondition) => {
+ const {
+ token, sModelsId, formRoute,
+ } = this.props;
+ const char = {};
+ if (commonUtils.isNotEmptyObject(ganttChart)) {
+ char.sProcedureName = ganttChart.sProcedureName;
+ char.paramsMap = {};
+ }
+ let charGanttData = {};
+ const value = {
+ sProName: char.sProcedureName,
+ paramsMap: char.prodParamsMap,
+ bFilter: slaveFilterCondition,
+ };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const { dataset } = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ } else {
+ charGanttData = commonUtils.isEmpty(outData.sReturn) ? [] : JSON.parse(outData.sReturn);
+ this.props.onSaveState({ charGanttData });
+ }
+ }
+ } else {
+ message.error(returnData.msg);
+ }
+ };
+
+
+ handleTitleChange = (name, slavePagination, filters, sorter) => {
+ this.props.onSaveState({ [`${name}Pagination`]: slavePagination });
+ const {
+ slaveConfig, slaveFilterCondition, sGroupByList,[`${name}Config`] : tableConfig, [`${name}FilterCondition`]: tableFilterCondition,
+ } = this.props;
+ let bGetData = true;
+ if (commonUtils.isNotEmptyObject(filters)) {
+ for (const key of Object.keys(filters)) {
+ if (commonUtils.isNotEmptyArr(filters[key])) {
+ bGetData = false;
+ break;
+ }
+ }
+ }
+ if (!bGetData) return;
+ const { treeFilterCondition } = this.props;/* 树过滤条件 */
+ const sort = sorter.order === 'ascend' ? 'asc' : 'desc';
+ const slaveOrderBy = Object.keys(sorter).length > 0 ? { [sorter.columnKey]: sort } : ''; // 后端未支持空对象, 先用空表示
+ if (commonUtils.isNotEmptyArr(treeFilterCondition)) { /* 判断是否有树过滤条件 */
+ this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, '', sGroupByList, '', treeFilterCondition);
+ } else {
+ this.handleGetDataOne(name, tableConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy);
+ // this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, '', sGroupByList, '', treeFilterCondition,
+ // slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config,
+ // slave11Config, slave12Config, slave13Config, slave14Config, slave15Config);
+ }
+ };
+
+ handleDoubleClick = async (record) => {
+ const {
+ slaveConfig,
+ slaveData,
+ dispatch,
+ slaveFilterCondition,
+ slavePagination,
+ slaveOrderBy,
+ sModelsType,
+ formRoute,
+ treeFilterCondition,
+ app,
+ iPageSize,
+ // slaveSelectedData,
+ // masterData,
+ // employeeConfig,
+ } = this.props;
+ // oee双击查看开工任务
+ // if (formRoute.indexOf('indexOee') > -1) {
+ // if (slaveSelectedData[0].sCompleteCheck !== 'bCompleteCheck' && commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ // this.props.changePage(false, 'startWork', '2', false);
+ // this.props.onSaveState({
+ // masterData: slaveSelectedData[0],
+ // });
+ // if (commonUtils.isNotEmptyObject(record)) {
+ // const bFilter1 = [];
+ // bFilter1.push({
+ // bFilterName: 'sParentId',
+ // bFilterCondition: '=',
+ // bFilterValue: record.sId,
+ // });
+ // const employeeData = (await this.props.handleGetDataSet({
+ // name: 'employee',
+ // configData: employeeConfig,
+ // condition: { bFilter: bFilter1 },
+ // isWait: true,
+ // }));
+ // this.props.onSaveState({
+ // ...employeeData,
+ // });
+ // }
+ // }
+ // } else {}
+ const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ const getData = this.handleGetData;
+ if (picArr.length > 0) {
+ let sActiveId = '';
+ if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr' && sModelsType !== 'commonList/msg') {
+ [{ sActiveId }] = picArr;
+ if (sActiveId === '1') {
+ sActiveId = sActiveId === '1' ? commonUtils.isEmpty(record.sFormId) ? record.sSrcFormId : record.sFormId : sActiveId;
+ }
+ } else if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr' && sModelsType === 'commonList/msg' && (record.sType === '消息' || record.sType === '1')) {
+ [{ sActiveId }] = picArr;
+ } else if (sModelsType === 'commonList/msg' && (record.sType !== '消息' || record.sType !== '1')) {
+ sActiveId = '19211681019715633459786050';
+ }
+ /* 消息列表双击打开时 调用获取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);
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ }
+ const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, undefined, undefined, undefined, treeFilterCondition), /* 刷新方法 */
+ url: sNameUrl,
+ sTabId: commonUtils.createSid(),
+ sParentId: this.state.sTabId,
+ urlDataType: 'newPane',
+ checkedId: record.sId,
+ bFilter: slaveFilterCondition,
+ pageSize: commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize,
+ pages: slavePagination,
+ currentData: slaveData,
+ sListFormmasterId: slaveConfig.sId,
+ newKey: record.sId,
+ currentIndex: slaveData.findIndex(item => item.sId === record.sId),
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ };
+
+ /** 表单回带 */
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = (extendsParams) => {
+ const {
+ slaveConfig, slaveData, dispatch, slaveFilterCondition, slavePagination, slaveOrderBy, formRoute, treeFilterCondition, iPageSize,
+ } = this.props;
+ const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ const getData = this.handleGetData;
+ if (picArr.length > 0) {
+ let sActiveId = '';
+ if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr') {
+ [{ sActiveId }] = picArr;
+ }
+ const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, commonUtils.isEmpty(slavePagination) ? iPageSize : slavePagination.pageSize, slaveOrderBy, undefined, undefined, undefined, treeFilterCondition), /* 刷新方法 */
+ url: sNameUrl,
+ sTabId: commonUtils.createSid(),
+ sParentId: this.state.sTabId,
+ urlDataType: 'newPane',
+ bFilter: slaveFilterCondition,
+ pageSize: iPageSize,
+ pages: slavePagination,
+ currentData: slaveData,
+ sListFormmasterId: slaveConfig.sId,
+ ...extendsParams,
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ };
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, slaveConfig, slaveData, slaveSelectedRowKeys, slaveFilterCondition, slavePagination, slaveOrderBy, formRoute, app, iPageSize,
+ } = props;
+ const allId = [];
+ slaveSelectedRowKeys.forEach((key) => {
+ const iIndex = slaveData.findIndex(item => item.sSlaveId === key);
+ if (iIndex > -1) {
+ if (allId.indexOf(slaveData[iIndex].sId) === -1) {
+ allId.push(slaveData[iIndex].sId);
+ }
+ }
+ });
+ if (commonUtils.isNotEmptyArr(allId)) {
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: slaveConfig.sTbName,
+ sId: allId,
+ sSlaveTable: 'commonList',
+ },
+ };
+ const { sBillNo, sId } = props.masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sName=${formRoute}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ const oeeCurrentStateFilter = [];
+ if (formRoute === '/indexOee/oeeCurrentState') {
+ oeeCurrentStateFilter.push({
+ bFilterName: 'sMachineId',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ }
+ message.success(data.msg);
+ this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum: formRoute === '/indexOee/oeeCurrentState' ? '' : slavePagination.current,
+ pageSize: formRoute === '/indexOee/oeeCurrentState' ? '' : commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize,
+ bFilter: formRoute === '/indexOee/oeeCurrentState' ? oeeCurrentStateFilter : slaveFilterCondition,
+ slaveOrderBy: formRoute === '/indexOee/oeeCurrentState' ? '' : slaveOrderBy,
+ },
+ clearSelectData: true,
+ });
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ }
+ };
+
+ handleDel = () => {
+ const onOkDel = this.handleOkDel;
+ const props = this.props;
+ confirm({
+ title: commonFunc.showMessage(props.app.commonConst, 'SureDel'),
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {},
+ });
+ };
+ // 销售订单明细获取订单号
+ handleGetGoods = () => {
+ this.props.onSaveState({ visibleGetGoods: true });
+ };
+
+ handleGetGoodsValue = async (value) => {
+ const { sModelsId, token, formRoute } = this.props;
+ const url = `${commonConfig.server_host}erpOrderProcurement/getPlatOrderOne?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const values = { orderHeaderId: value };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ message.success(masterReturn.msg);
+ this.handleButtonClick('BtnRefresh');
+ } else {
+ this.props.getServiceError(masterReturn);
+ }
+
+ this.props.onSaveState({
+ visibleGetGoods: false,
+ });
+ }
+ handleGetGoodsCancle = () => {
+ this.props.onSaveState({
+ visibleGetGoods: false,
+ });
+ }
+
+ /* 导出Excel */
+ handleOut = async (name) => {
+ const slaveConfig = this.props[`${name}Config`];
+ const slaveData = this.props[`${name}Data`];
+ const slaveFilterCondition = this.props[`${name}FilterCondition`];
+ const slaveOrderBy = this.props[`${name}OrderBy`];
+ const slaveSelectedRowKeys = this.props[`${name}SelectedRowKeys`];
+ const { formRoute, sGroupByList, app, masterData, slaveData: _slaveData } = this.props;
+ const { currentPane } = app;
+ const slaveFilterConditionNew = slaveFilterCondition === undefined ? [] : [...slaveFilterCondition];
+
+ if (commonUtils.isEmptyArr(slaveData)) {
+ return;
+ }
+
+ let sids = '';
+ let bMutiSelect = false; /* 默认单选或不选 true :多选 */
+ if (commonUtils.isNotEmptyArr(slaveConfig)) {
+ bMutiSelect = slaveConfig.bMutiSelect;
+ }
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys) && bMutiSelect) { /* 导出Excel 只有多选情况下 导出时是根据勾选行 否则导出全部 */
+ slaveSelectedRowKeys.forEach((item, i) => {
+ if (i === slaveSelectedRowKeys.length - 1) {
+ sids = `${sids}${item}`;
+ } else {
+ sids = `${sids}${item},`;
+ }
+ });
+ const addFilter = {};
+ addFilter.bFilterName = 'sSlaveId';
+ addFilter.bFilterCondition = 'in';
+ addFilter.bFilterValue = sids;
+ slaveFilterConditionNew.push(addFilter);
+ }
+
+ let slaveRow = {};
+ if(commonUtils.isNotEmptyArr(slaveData)) {
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ slaveRow = slaveData.find(item => slaveSelectedRowKeys.includes(item.sSlaveId));
+ }else {
+ slaveRow = slaveData[0];
+ }
+ }
+
+ /* 如果列表是别的界面弹窗进来,则需要加当前界面的条件 */
+ let conditionValues = {};
+ const { sSqlCondition } = slaveConfig;
+ if (sSqlCondition) {
+ const tableType = sSqlCondition.split('.')[0];
+ const record = tableType === 'slave' ? _slaveData[0] : masterData;
+ conditionValues = this.props.getSqlCondition(slaveConfig, tableType, record);
+ } else if(commonUtils.isNotEmptyObject(currentPane) && !commonUtils.isEmpty(currentPane.conditonValues)) {
+ conditionValues = currentPane.conditonValues;
+ }
+
+ /* 导出使用Post提交 */
+ const url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${slaveConfig.sParentId}&sName=${formRoute}&token=${encodeURIComponent(this.props.app.token)}`;
+ const bFilter = JSON.stringify(slaveFilterConditionNew);
+ const sFilterOrderBy = JSON.stringify(slaveOrderBy);
+ const sGroupList = JSON.stringify(sGroupByList);
+ const conditionValuesStr = JSON.stringify(conditionValues);
+ const sRowData = JSON.stringify(slaveRow)
+ this.handleOpenOut(url, bFilter, sFilterOrderBy, sGroupList, conditionValuesStr, sRowData);
+ };
+
+ /* Get提交地址栏参数过多,更改Get提交为Post提交 */
+ handleOpenOut= (url, bFilter, slaveOrderBy, sGroupByList, conditionValues, sRowData) => {
+ const newWin = window.open();
+ let formStr = '';
+ // 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据
+ formStr = `';
+ newWin.document.body.innerHTML = formStr;
+ newWin.document.forms[0].submit();
+ return newWin;
+ }
+
+ /* 批量审核 */
+ handleBatchExamine = () => {
+ this.handleAudit(1);
+ };
+
+ /* 批量消审 */
+ handleBatchCancelExamine = () => {
+ this.handleAudit(0);
+ };
+
+ deteleObject = (obj) => {
+ // eslint-disable-next-line camelcase
+ const replace_data = obj;
+ const result = []; // 去重后的数组对象集合
+ const hash = {};
+ // eslint-disable-next-line no-plusplus
+ for (let i = 0; i < replace_data.length; i++) {
+ const elem = replace_data[i].sId;
+ if (!hash[elem]) {
+ result.push(replace_data[i]);
+ hash[elem] = true;
+ }
+ }
+ return result;
+ }
+ /** toolbar批量审核(消审) */
+ handleAudit = async (flag) => {
+ /* 待用数据声明 */
+ const {
+ slaveSelectedData, app, slaveConfig, slavePagination, slaveFilterCondition, slaveOrderBy,
+ } = this.props;
+ /* 作废订单不能审核 */
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const slaveSelectedDataNew = this.deteleObject(slaveSelectedData); // 删除sid重复的数据
+ let allMsg = '';
+ let allErrorMsg = '';
+ let dataAuditProcessValue = 0;
+ const dataAuditProcessMaxValue = slaveSelectedDataNew.length;
+ for (const child of slaveSelectedDataNew) {
+ if (child.bInvalid) {
+ message.warning(`已作废的单据${child.sBillNo}不能审核!`);
+ return '';
+ }
+ /** 数据审核 */
+ const strMsgs = await this.dataAudit(flag, `${child.sId}_${child.sFormId}`, child.sBillNo);
+ if (commonUtils.isNotEmptyStr(strMsgs.strMsg)) {
+ allMsg += `${strMsgs.strMsg} \n `;
+ } else {
+ allMsg += '';
+ }
+ if (commonUtils.isNotEmptyStr(strMsgs.strErrorMsg)) {
+ allErrorMsg += `${strMsgs.strErrorMsg} \n `;
+ } else {
+ allErrorMsg += '';
+ }
+ dataAuditProcessValue += 1;
+ this.props.onSaveState({ bDataAuditProgress: true, dataAuditProcessValue, dataAuditProcessMaxValue });
+ }
+ if (commonUtils.isNotEmptyStr(allMsg)) {
+ message.info(allMsg);
+ }
+ if (allErrorMsg !== undefined && commonUtils.isNotEmptyStr(allErrorMsg)) {
+ message.error(allErrorMsg);
+ }
+ this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ this.props.onSaveState({ bDataAuditProgress: false });
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseData'));/* 请选择一条数据 */
+ }
+ };
+
+ /** 数据审核 */
+ dataAudit = async (flag, sId_sFormId, sBillNo, tmpCheck, isWait) => {
+ const [sId, sFormId] = sId_sFormId.split('_');
+ /* 待用数据声明 */
+ const {
+ sModelsId, app, slaveConfig, formRoute,
+ } = this.props;
+ /* 数据参数 */
+ const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ const value = {
+ sClientType: '1',
+ paramsMap: {
+ iFlag: flag,
+ iTmpCheck: commonUtils.isEmptyNumber(tmpCheck) ? 0 : tmpCheck,
+ sFormGuid: commonUtils.isEmptyArr(picArr) ? sFormId : picArr[0].sActiveId,
+ sGuid: sId,
+ },
+ };
+ /* 数据审核 */
+ const url = `${commonConfig.server_host}business/doExamine?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ const msgs = {};
+ if (isWait) {
+ return returnData;
+ } else {
+ /* 接收返回值 */
+ if (returnData.code === 1) { /* 成功 */
+ if (flag === 1) {
+ /* 审核 */
+ const { outData } = returnData.dataset.rows[0].dataSet;
+ if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${outData[0].sReturn}` : `${outData[0].sReturn}`;
+ // if (outData[0].sReturn.split('-').length < 2) {
+ // // 正常业务提示,非审核模板
+ // if (this.props.app.currentPane.refresh !== undefined) {
+ // this.props.app.currentPane.refresh();
+ // }
+ // msgs.strMsg = `${sBillNo}审核${outData[0].sReturn}`;
+ // return msgs;
+ // }
+ // const sReturnArray = outData[0].sReturn.split('|');
+ // const sCheckModelId = sReturnArray[0].split('-')[1];
+ // if (commonUtils.isNotEmptyStr(sCheckModelId)) {
+ // msgs.strMsg = `${sBillNo}审核失败`;
+ // }
+ } else {
+ // this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ // message.destroy();
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${returnData.msg}` : `${returnData.msg}`;
+ }
+ } else {
+ /* 消审 */
+ const { outData } = returnData.dataset.rows[0].dataSet;
+ if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${outData[0].sReturn}` : `$${outData[0].sReturn}`;
+ } else {
+ // this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${returnData.msg}` : `${returnData.msg}`;
+ }
+ }
+ } else { /* 失败 */
+ msgs.strErrorMsg = returnData.msg;
+ // this.props.getServiceError(returnData);
+ }
+ return msgs;
+ }
+ };
+
+ /** 按钮操作事件 */
+ handleButtonClick = (name, isFresh) => {
+ if (name.split('.')[0] === 'BtnOut') {
+ const tableName = commonUtils.isNotEmptyObject(name.split('.')[1]) ? name.split('.')[1] : 'slave' ;
+ this.handleOut(tableName);
+ } else if (name === 'BtnDesignFunction') {
+ this.handleDesignFunction();
+ } else if (name === 'BtnRefresh') {
+ const {
+ slaveConfig, slavePagination, slaveFilterCondition, slaveOrderBy,
+ } = this.props;
+ this.props.onSaveState({
+ clearArray: [], searchText: '', slaveSelectedRowKeys: [], slaveSelectedData: [], slaveInfoSelectedRowKeys: [], slaveInfoSelectedData: [], treeSelectedKeys: [], treeFilterCondition: [], loading: false, pageLoading: true, isFresh,
+ });
+ if (slavePagination === undefined) return;
+ this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ // if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ // if (commonUtils.isNotEmptyObject(slaveInfoConfig)) {
+ // this.handleGetDataInfo(slaveInfoConfig, slaveFilterCondition, 1);
+ // }
+ // }
+ /* 判断是否要加载过滤树数据 */
+ const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree);
+ if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) {
+ const filterTreeConfig = filterTreeConfigArr[0];
+ this.handleGetFilterTreeData(filterTreeConfig, slaveFilterCondition, 1);
+ }
+ const { clearArray } = this.props;
+ if (!commonUtils.isEmpty(clearArray)) {
+ for (const item of clearArray) {
+ const { confirm, clearFilters } = item;
+ confirm();
+ clearFilters();
+ }
+ }
+ } else if (name === 'BtnSelect') {
+ const { slaveSelectedData, app } = this.props;
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ this.props.app.currentPane.select(this.props.app.currentPane.name, this.props.app.currentPane.config, slaveSelectedData);
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); /* 请选择一条数据 */
+ }
+ } else if (name === 'BtnSelectCancel') {
+ this.props.app.currentPane.selectCancel(this.props.app.currentPane.name);
+ } else if (name === 'BtnBatchExamine') {
+ this.handleBatchExamine();
+ } else if (name === 'BtnBatchCancelExamine') {
+ this.handleBatchCancelExamine();
+ } else if (name === 'BtnNoForceComplete') {
+ this.handleNoForceComplete();
+ } else if (name === 'BtnSettleAccounts') {
+ this.handleToSettlement(1);
+ } else if (name === 'BtnReverseCheckout') {
+ this.handleToSettlement(2);
+ } else if (name === 'BtnBatchWorkListPriceUpdate') { /* 工单列表价格批量更新 */
+ this.handleBatchWorkListsPriceUpdate();
+ }
+ };
+ /* OEE机台任务 点击开工执行的逻辑 */
+ handleOeeCopyTo = async (name) => {
+ const {
+ token, app, sModelsId, slaveSelectedData, slaveConfig, slaveDelData,
+ } = this.props;
+ const newCopyTo = {};
+ const slaveData = [];
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ // 验证是否单据是否使用
+ const sMachineId = app.sMachineNameSId;
+ const creatId = commonUtils.createSid();
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheckWork?sModelsId=${sModelsId}`;
+ const values = { sMachineId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyToConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === name) : '';
+ const slaveAssignField = commonUtils.isNotEmptyObject(copyToConfig) ? copyToConfig[0].sAssignField : '';
+ slaveSelectedData.forEach((slaveItem) => {
+ newCopyTo.slave = slaveItem;
+ let colorRow = commonFunc.getDefaultData(slaveConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sStatus = 'adjustment'; /* 点击开工进来是调机中,原来是生产中 */
+ colorRow.sId = creatId;
+ colorRow.sTeamId = app.sTeamNameSId;
+ colorRow.sMachineId = app.sMachineNameSId;
+ colorRow.sParentId = colorRow.sId;
+ colorRow.tCreateDate = new Date();
+ slaveData.push(colorRow);
+ });
+ const params = {};
+ params.data = [];
+ params.data.push(commonBusiness.mergeData('slave', 'plc_machinedata', slaveData, slaveDelData));
+ // params.data = slaveData;
+ const BtnSave = commonFunc.showMessage(app.commonConst, 'BtnSave');/* 保存 */
+ params.optName = BtnSave;
+ params.sClientType = '1';
+ const returnData = await commonBusiness.saveData({ token, value: params, sModelsId });
+ if (commonUtils.isNotEmptyObject(returnData)) {
+ if (returnData.code === 1) {
+ // const copyTo = {};
+ // copyTo.name = name;
+ // copyTo.config = commonUtils.isNotEmptyArr(copyToConfig) ? copyToConfig[0] : {};
+ // copyTo.slaveData = slaveData;
+ // copyTo.copyOtherData = [];
+ // dispatch({
+ // type: 'content/onRouter',
+ // payload: {
+ // url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
+ // copyTo,
+ // },
+ // });
+ // 改变indexOee中的activeKey,
+ this.props.onSaveCurrentState(slaveData, true, undefined, undefined, 1);
+ }
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ }
+ handleOeeLabelCopyTo = async (name, sActiveId) => {
+ const {
+ slaveSelectedData, dispatch,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const formRouteNew = '/indexOee/labelPrint';
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRouteNew}`, /* 接口地址 */
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ }
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ slaveConfig, slaveSelectedData, token, app, sModelsId, formRoute, slaveInfoConfig, slaveInfoSelectedData, slaveFilterCondition,
+ slavePagination, slaveOrderBy, treeFilterCondition, dispatch,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveSelectedData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveSelectedData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveSelectedData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ let isRefresh = true;
+ const copyTo = {};
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const copyToConfig = slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ let copyToData = JSON.parse(JSON.stringify(slaveSelectedData || []));
+ const addcopyOther = [];
+ let tbSuffix = '';
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ if (name === 'BtnCopyTo.ActPurchaseOrder') {
+ const detailCopy = {};
+ detailCopy.name = 'detail';
+ detailCopy.config = slaveInfoConfig;
+ detailCopy.data = slaveInfoSelectedData;
+ addcopyOther.push(detailCopy);
+ tbSuffix = 'detail';
+ isRefresh = true;
+ } else {
+ copyToData = slaveInfoSelectedData;
+ isRefresh = true;
+ }
+ /* 物料需求计划生成采购申请、采购订单去重处理 */
+ if (commonUtils.isNotEmptyArr(copyToData)) {
+ const copyToDataNew = [];
+ copyToData.forEach((item) => {
+ const iIndex = copyToDataNew.findIndex(child => child.sWorkOrderMaterialId === item.sWorkOrderMaterialId);
+ if (iIndex < 0) {
+ copyToDataNew.push(item);
+ }
+ });
+ copyToData = copyToDataNew;
+ }
+ } else if (name === 'BtnCopyTo.ActProduceReport') { /* 若机台中点击暂停 则待产量上报中点击上报提示”工序已暂停,无法上报 */
+ if (commonUtils.isNotEmptyArr(copyToData) && copyToData[0].sState === '3') {
+ message.warn('工序已暂停,无法开工!');
+ return;
+ }
+ } else if (commonUtils.isNotEmptyObject(name) && name.includes('ActOutsideProcessTemp')) { /* 根据配置下拉sql获取数据源 */
+ const tmpInfoConfig = slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes('gettempinfosql')); /* 自定义数据源按钮配置 */
+ if(commonUtils.isNotEmptyArr(tmpInfoConfig)) {
+ const slaveDataRow = slaveSelectedData[0];
+ let sSqlConditonStr = '';
+ if(commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ slaveSelectedData.forEach((slaveItem) => { /* opsoutsideprocessslave 发外多条时取最后一条的表 */
+ sSqlConditonStr += this.props.getSqlCondition(tmpInfoConfig[0], 'slave', slaveItem).sControlProcessId + ',';
+ });
+ }
+ sSqlConditonStr = commonUtils.isNotEmptyObject(sSqlConditonStr) ? sSqlConditonStr.substr(0, sSqlConditonStr.length - 1) : '';
+ slaveDataRow.sControlProcessId = sSqlConditonStr;
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', tmpInfoConfig[0], slaveDataRow);
+ if(commonUtils.isNotEmptyArr(sqlDropDownData)) {
+ /* Opsoutsidematerials 发外带料表 opsoutsideprocessslave 发外多条时取最后一条的表 Opsoutsideinstoredetail 未清勾选过去的表 */
+ copyTo.slaveData = sqlDropDownData; /* Opsoutsidematerials 发外带料表 */
+ }
+ if(commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const groupMap ={};
+ slaveSelectedData.sort((g1, g2) => {
+ let sPartOrder1 = commonUtils.isEmpty(g1.rowNum) ? 0 : g1.rowNum;
+ let sPartOrder2 = commonUtils.isEmpty(g2.rowNum) ? 0 : g2.rowNum;
+ return sPartOrder1 - sPartOrder2;
+ });
+ slaveSelectedData.forEach((slaveItem) => { /* opsoutsideprocessslave 发外多条时取最后一条的表 */
+ const sKey = slaveItem.sWorkorderNo + '-' + slaveItem.sControlId;
+ groupMap[sKey] = slaveItem;
+ });
+ if(commonUtils.isNotEmptyObject(groupMap)) {
+ const slave0Data = [];
+ for (const key of Object.keys(groupMap)) {
+ if(commonUtils.isNotEmptyObject(groupMap[key])) {
+ slave0Data.push(groupMap[key]);
+ }
+ }
+ if(commonUtils.isNotEmptyArr(slave0Data)) {
+ copyTo.slave0Data = slave0Data
+ }
+ }
+ copyTo.slave1Data = slaveSelectedData; /* Opsoutsideinstoredetail 未清勾选过去的表 */
+ }
+ }
+ }
+ // 不重复字段处理 例如 复制到时只能同一客户复制到
+ const iIndex = copyToConfig.findIndex(item => item.sControlName === name);
+ if (iIndex > -1 && !commonUtils.isEmpty(copyToConfig[iIndex].sNotRepeatColumn)) {
+ const sNotRepeatColumn = copyToConfig[iIndex].sNotRepeatColumn.trim();
+ const sNotRepeatValue = copyToData[0][sNotRepeatColumn];
+ const iCount = copyToData.filter(item => item[sNotRepeatColumn] === sNotRepeatValue).length;
+ if (iCount !== copyToData.length) {
+ const iConfigIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === sNotRepeatColumn);
+ const sNotRepeatShowName = iConfigIndex > -1 ? slaveConfig.gdsconfigformslave[iConfigIndex].showName : '';
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseSame') + sNotRepeatShowName); // 请选择相同
+ return;
+ }
+ }
+ const { userinfo } = app;
+ const sIdArray = [];
+ copyToData.forEach((item) => {
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ sIdArray.push(item.sWorkOrderMaterialId); /* 物料需求计划生成用sWorkOrderMaterialId作为唯一键 */
+ } else {
+ 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')); // 请选择数据
+ }
+ } 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 } });
+ }
+ } 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);
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }, timValue);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ }
+ };
+
+
+ handleBillCopyTo = async (name, sActiveId, copyToBillConfig, callBack) => {
+ /* 待用数据声明 */
+ const {
+ slaveConfig, slaveSelectedData, token, app, sModelsId, slaveInfoConfig, slaveInfoSelectedData, slaveFilterCondition,
+ slavePagination, slaveOrderBy, treeFilterCondition, dispatch,
+ } = this.props;
+ let isRefresh = true;
+ const formRoute = '/indexOee/commonOeeBill';
+
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const copyToConfig = slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ let copyToData = slaveSelectedData;
+ const addcopyOther = [];
+ let tbSuffix = '';
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ if (name === 'BtnCopyTo.ActPurchaseOrder') {
+ const detailCopy = {};
+ detailCopy.name = 'detail';
+ detailCopy.config = slaveInfoConfig;
+ detailCopy.data = slaveInfoSelectedData;
+ addcopyOther.push(detailCopy);
+ tbSuffix = 'detail';
+ isRefresh = true;
+ } else {
+ copyToData = slaveInfoSelectedData;
+ isRefresh = true;
+ }
+ /* 物料需求计划生成采购申请、采购订单去重处理 */
+ if (commonUtils.isNotEmptyArr(copyToData)) {
+ const copyToDataNew = [];
+ copyToData.forEach((item) => {
+ const iIndex = copyToDataNew.findIndex(child => child.sWorkOrderMaterialId === item.sWorkOrderMaterialId);
+ if (iIndex < 0) {
+ copyToDataNew.push(item);
+ }
+ });
+ copyToData = copyToDataNew;
+ }
+ } else if (name === 'BtnCopyTo.ActProduceReport') { /* 若机台中点击暂停 则待产量上报中点击上报提示”工序已暂停,无法上报 */
+ if (commonUtils.isNotEmptyArr(copyToData) && copyToData[0].sState === '3') {
+ message.warn('工序已暂停,无法开工!');
+ return;
+ }
+ }
+ // 不重复字段处理 例如 复制到时只能同一客户复制到
+ const iIndex = copyToConfig.findIndex(item => item.sControlName === name);
+ if (iIndex > -1 && !commonUtils.isEmpty(copyToConfig[iIndex].sNotRepeatColumn)) {
+ const sNotRepeatColumn = copyToConfig[iIndex].sNotRepeatColumn.trim();
+ const sNotRepeatValue = copyToData[0][sNotRepeatColumn];
+ const iCount = copyToData.filter(item => item[sNotRepeatColumn] === sNotRepeatValue).length;
+ if (iCount !== copyToData.length) {
+ const iConfigIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === sNotRepeatColumn);
+ const sNotRepeatShowName = iConfigIndex > -1 ? slaveConfig.gdsconfigformslave[iConfigIndex].showName : '';
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseSame') + sNotRepeatShowName); // 请选择相同
+ return;
+ }
+ }
+ const { userinfo } = app;
+ const sIdArray = [];
+ copyToData.forEach((item) => {
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ sIdArray.push(item.sWorkOrderMaterialId); /* 物料需求计划生成用sWorkOrderMaterialId作为唯一键 */
+ } else if (formRoute === '/indexOee/commonOeeBill') {
+ const activeKey = commonUtils.isNotEmptyObject(copyToBillConfig) ? copyToBillConfig.sActiveKey : 'sWorkOrderSlaveId';
+ sIdArray.push(item[activeKey]); /* 物料需求计划生成用sWorkOrderMaterialId作为唯一键 */
+ } else {
+ 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 } });
+ } 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 });
+ }
+ // 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);
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ if (callBack) {
+ callBack();
+ }
+ }, timValue);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ }
+ };
+
+ // CopyTo = (refresh, copyToData, name, copyToConfig, sActiveId, dispatch, app, copyOther) => {
+ // 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 = copyOther;
+ // dispatch({
+ // type: 'content/onRouter',
+ // payload: {
+ // url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
+ // copyTo,
+ // refresh,
+ // },
+ // });
+ // } else {
+ // message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ // }
+ // };
+ // handleForceComplete = (name) => {
+ // const { slaveSelectedRowKeys, app, masterConfig } = this.props;
+ // if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ // message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择记录
+ // } else {
+ // const slaveMemoConfigOld = [];
+ // let btnConfigNameArr = [];
+ // if (name.indexOf('BtnRepair') > -1) {
+ // const btnConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName === name)[0];// sButtonEnabled sButtonParam
+ // if (!commonUtils.isEmpty(btnConfig.sActiveKey)) {
+ // btnConfigNameArr = btnConfig.sActiveKey.split(',');
+ // }
+ // if (commonUtils.isNotEmptyArr(btnConfigNameArr)) {
+ // // eslint-disable-next-line array-callback-return
+ // btnConfigNameArr.map((i) => {
+ // const singleConfig = this.props.slaveConfig.gdsconfigformslave.filter(item => (item.sName === i))[0];
+ // slaveMemoConfigOld.push(singleConfig);
+ // });
+ // }
+ // }
+ // const sysLogData = { sId: slaveSelectedRowKeys.toString() };
+ // this.props.onSaveState({
+ // slaveMemoConfig: slaveMemoConfigOld,
+ // sCurrMemoProps: {
+ // bVisibleMemo: true,
+ // sMemoField: 'sReason',
+ // sRecord: sysLogData,
+ // dataSource: sysLogData,
+ // btnName: name,
+ // },
+ // });
+ // }
+ // }
+
+ handleNoForceComplete = async () => {
+ const {
+ sModelsId, slaveSelectedRowKeys, slaveConfig, app, formRoute,
+ } = this.props;
+ const { token } = this.props.app;
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择记录
+ } else {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnNoForceComplete');
+ const btnConfig = slaveConfig.gdsconfigformslave[iIndex];
+ const sRelation = btnConfig.sRelation;
+ const url = `${commonConfig.server_host}bill/billForceComplete?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const values = { sqlParam: sRelation, sId: slaveSelectedRowKeys.toString(), sType: 'noforce' };
+
+ const dataReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (dataReturn.code === 1) {
+ message.success(dataReturn.msg);
+ this.handleButtonClick('BtnRefresh');
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ }
+
+ // /* 双击弹出Memo */
+ // handleGetMemo = (name, sValue, sMemoFiled, sRecord) => {
+ // const { sCurrMemoProps } = this.props;
+ // sCurrMemoProps.bVisibleMemo = false;
+ // sRecord[sMemoFiled] = sValue;
+ // this.props.onSaveState({ sCurrMemoProps });
+ // this.handleToForceComplete(sValue);
+ // };
+
+ /* 设计报表功能 */
+ handleDesignFunction = () => {
+ this.props.onSaveState({ visibleStatement: true });
+ };
+ handleBtnPrint = (sActiveId, checked, key) => {
+ const {
+ app,
+ sModelsId,
+ masterConfig,
+ menuChildData,
+ reportData,
+ slaveFilterCondition,
+ slaveSelectedRowKeys,
+ slaveSelectedData,
+ formRoute,
+ treeFilterCondition,
+ slaveData,
+ } = this.props;
+ const { token } = app;
+ const slaveFilterConditionNew = slaveFilterCondition === undefined ? [] : [...slaveFilterCondition];
+ // const queryFilter = {};
+ // queryFilter[masterConfig.sId] = { sId: masterData.sId };
+ // queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } };
+
+ let sids = '';
+ slaveSelectedRowKeys.forEach((item, i) => {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const iIndex = slaveData.findIndex(child => child.sSlaveId === item);
+ if (iIndex > -1) {
+ if (i === slaveSelectedRowKeys.length - 1) {
+ sids = `${sids}${item}`;
+ } else {
+ sids = `${sids}${item},`;
+ }
+ }
+ }
+ });
+ if (sids !== '') {
+ const addFilter = {};
+ addFilter.bFilterName = 'sSlaveId';
+ addFilter.bFilterCondition = 'in';
+ addFilter.bFilterValue = sids;
+ slaveFilterConditionNew.push(addFilter);
+ }
+ // 将过滤数的赛选条件塞入打印中
+ if (key.indexOf('BtnPrint.') > -1 && commonUtils.isNotEmptyArr(treeFilterCondition)) {
+ // eslint-disable-next-line array-callback-return
+ treeFilterCondition.map((item) => {
+ slaveFilterConditionNew.push(item);
+ });
+ }
+ const queryFilter = {};
+
+ queryFilter[masterConfig.sId] = { bFilter: slaveFilterConditionNew };
+ const queryFilterJson = encodeURIComponent(JSON.stringify(queryFilter));
+ /* 拿到打印报表名称 */
+ let printReportName = 'report';
+ let slaveOneData = commonUtils.isNotEmptyArr(slaveSelectedData) ? JSON.stringify(slaveSelectedData) : '[]';
+ slaveOneData = slaveOneData.replace("'", '');
+ if (key.indexOf('BtnPrint.') > -1) {
+ if (commonUtils.isNotEmptyArr(reportData)) {
+ const iIndex = reportData.findIndex(item => item.sId === sActiveId);
+ if (iIndex > -1) {
+ printReportName = reportData[iIndex].sReportName;
+ }
+ }
+ const urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}queryFilter=${queryFilterJson}&sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}&token=${encodeURIComponent(token)}&sName=${formRoute}`;
+ window.open(urlPrint);
+ } else if (key.indexOf('BtnPrintCus.') > -1) {
+ if (commonUtils.isNotEmptyArr(menuChildData)) {
+ const iIndex = menuChildData.findIndex(item => item.sId === sActiveId);
+ if (iIndex > -1) {
+ printReportName = menuChildData[iIndex].sReportName;
+ }
+ }
+ // const urlPrint = `${commonConfig.file_host}printReport/printPdf/${printReportName}?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&printType=noquery&slaveOneData=${slaveOneData}`;
+ // window.open(`${encodeURI(`${urlPrint}&queryFilter=${queryFilterJson}`)}&token=${encodeURIComponent(token)}`);
+
+ /* Get提交地址栏参数过多,更改Get提交为Post提交 */
+ const url = `${commonConfig.file_host}printReport/printPdf/${printReportName}?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&printType=noquery&token=${encodeURIComponent(token)}`;
+ const param = slaveOneData;
+ this.handleOpenPost(url, param);
+ }
+ };
+ /* 工单列表价格批量更新 */
+ handleBatchWorkListsPriceUpdate = () => {
+ const { slaveData, slaveSelectedRowKeys, app } = this.props;
+ if (commonUtils.isEmptyStr(slaveSelectedRowKeys)) {
+ return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择一条数据进行操作 */
+ } else {
+ const batchPriceWorkListUpdateData = slaveData.filter(item => slaveSelectedRowKeys.includes(item.sId));
+ this.props.onSaveState({ batchPriceWorkListUpdateData, visibleBatchWorkListPriceUpdate: true });
+ }
+ };
+
+ handleOpenPost= (url, params) => {
+ const newWin = window.open();
+ let formStr = '';
+ // 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据
+ formStr = `';
+ newWin.document.body.innerHTML = formStr;
+ newWin.document.forms[0].submit();
+ return newWin;
+ }
+
+ // handleGetMemoCancel = () => {
+ // const sCurrMemoProps = { bVisibleMemo: false };
+ // this.props.onSaveState({ sCurrMemoProps });
+ // };
+
+ // handleToForceComplete = async (sValue) => {
+ // const {
+ // app, slaveSelectedRowKeys, slaveConfig, sModelsId, slaveInfoSelectedRowKeys, formRoute,
+ // } = this.props;
+ //
+ // const { token } = app;
+ // const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnForceComplete' || item.sControlName === 'BtnNoPurchase');
+ // const btnConfig = slaveConfig.gdsconfigformslave[iIndex];
+ // const sRelation = btnConfig.sRelation;
+ //
+ // let selectedRowKeys = '';
+ // if (formRoute === '/materialRequirementsPlanning') {
+ // selectedRowKeys = slaveInfoSelectedRowKeys.toString();
+ // } else {
+ // selectedRowKeys = slaveSelectedRowKeys.toString();
+ // }
+ //
+ // const url = `${commonConfig.server_host}bill/billForceComplete?sModelsId=${sModelsId}&sName=${formRoute}`;
+ // const values = { sqlParam: sRelation, sId: selectedRowKeys, sReason: sValue };
+ //
+ // const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ // if (masterReturn.code === 1) {
+ // message.success(masterReturn.msg);
+ // this.handleButtonClick('BtnRefresh');
+ // } else {
+ // this.props.getServiceError(masterReturn);
+ // }
+ // }
+
+ handleToSettlement = async (sType) => {
+ const {
+ app, sModelsId, slaveSelectedRowKeys, slaveData, formRoute,
+ } = this.props;
+ let continueFlag = true;
+ let msg = '';
+
+ const selectedData = slaveData.filter(item => slaveSelectedRowKeys.includes(item.sId));
+ const point = commonUtils.convertStrToNumber(selectedData[0].sPeriodId);
+ if (sType === 1) {
+ for (const item of slaveData) {
+ const curr = commonUtils.convertStrToNumber(item.sPeriodId);
+ if (curr > point && item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}已结账`;
+ break;
+ } else if (curr < point && !item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}未结账`;
+ break;
+ }
+ }
+ } else if (sType === 2) {
+ for (const item of slaveData) {
+ const curr = commonUtils.convertStrToNumber(item.sPeriodId);
+ if (curr < point && item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}已结账`;
+ break;
+ } else if (curr > point && !item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}未结账`;
+ break;
+ }
+ }
+ }
+ // tStartDate: "2017-01-02 16:00:00" tEndDate: "2017-02-01 16:00:00" tStartDate, tEndDate,
+ if (continueFlag) {
+ const value = {
+ sProName: 'Sp_System_AutoMaterialsPriceSingle',
+ paramsMap: { tStartDate: selectedData[0].tStartDate, tEndDate: selectedData[0].tEndDate },
+ };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ }
+ } else {
+ this.props.getServiceError(returnData);
+ }
+ } else {
+ message.warn(msg);
+ }
+ }
+ handleTreeSelect = (name, selectedKeys, e) => {
+ const { slaveFilterCondition, slaveConfig, slavePagination,slave0Config } = this.props;
+ const slaveFilterConditionNew = {};
+ let ids = '';
+ const treeFilterCondition = [];
+ this.props.onSaveState({ pageLoading:true });
+ this.props.onTreeSelect(name, selectedKeys, e);
+ /* 加过滤条件 */
+ for (const sId of selectedKeys) {
+ const searchId = sId.split('_')[1];
+ const searchName = sId.split('_')[0];
+ ids = slaveFilterConditionNew[`${searchName}`];
+ if (commonUtils.isNotEmptyObject(ids)) {
+ ids += `,${searchId}`;
+ } else {
+ ids = searchId;
+ }
+ slaveFilterConditionNew[`${searchName}`] = ids;
+ }
+ if (commonUtils.isNotEmptyObject(slaveFilterConditionNew)) {
+ Object.keys(slaveFilterConditionNew).forEach((item) => {
+ if (commonUtils.isNotEmptyObject(slaveFilterConditionNew[item])) {
+ treeFilterCondition.push({
+ bFilterName: item,
+ bFilterCondition: 'in',
+ bFilterValue: slaveFilterConditionNew[item],
+ bFilterType: 'tree',
+ });
+ }
+ });
+ if (commonUtils.isNotEmptyArr(treeFilterCondition)) {
+ this.props.onSaveState({
+ treeFilterCondition,
+ });
+ }
+ }
+ this.handleGetData(slaveConfig, slaveFilterCondition, 1, slavePagination.pageSize, '', false, '', '', treeFilterCondition, slave0Config);
+ /* 如果有选中树节点,则展开选中节点的父节点,否则默认展开第一个父节点 */
+ if (commonUtils.isNotEmptyArr(selectedKeys) && selectedKeys.length > 0) {
+ const { treeData } = this.props;
+ const expandedKeys = [];
+ const len = selectedKeys.length;
+ const iIndex = treeData.findIndex(item => item.key === selectedKeys[len - 1] || item.sName === selectedKeys[len - 1].split('_')[0]);
+ if (iIndex > -1) { /* 选中的是父节点 */
+ expandedKeys.push(treeData[iIndex].key);
+ }
+ this.props.onSaveState({
+ expandedKeys, activeKey:'2'
+ });
+ }
+ };
+ handleTableSelectRowChange = async (name, selectedRowKeys, changeValue) => {
+ if (name === 'slave' || name === 'master' || (name.includes('slave')) ) {
+ const {
+ token, sModelsId, [`${name}Total`]: totalData, [`${name}AllTotal`]: totalAllData, [`${name}Config`]: tableConfig, [`${name}Data`]: tableData, formData, app,
+ slaveFilterCondition,
+ } = this.props;
+ const { dNetMoney, dNetPrice } = app.decimals;
+ const selectedTotalData = [];
+ let addStateSlave0 = {};
+ let bMutiSelect = false; /* 默认单选或不选 true :多选 */
+ if (commonUtils.isNotEmptyObject(tableConfig)) {
+ bMutiSelect =tableConfig.bMutiSelect;
+ }
+ if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ let url = '';
+ if (sModelsId === '19211681019715326709731800') {
+ let sProcessId = '';
+ if (name === 'master') {
+ sProcessId = changeValue.sProcessClassifyId;
+ } else if (name === 'slave') {
+ const sProcessIdIndex = tableData.findIndex(item => item.sSlaveId === selectedRowKeys[0]);
+ if (sProcessIdIndex > -1) {
+ sProcessId = tableData[sProcessIdIndex].sProcessClassifyId;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(sProcessId)) {
+ url = `${commonConfig.file_host_ebc}printReport/getReportByProcessId/${sProcessId}?sModelsId=${sModelsId}`;
+ const values = {};
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const menuChildData = masterReturn.dataset.rows;
+ this.props.onSaveState({ menuChildData });
+ }
+ }
+ }
+ /* 从表切换选中行时 从新查询数据 */
+ // if(name === 'slave') {
+ // const { slaveConfig, slaveFilterCondition, slavePagination, page, pageSize, slaveOrderBy, clearSelectData, sGroupByListNew, treeFilterCondition,
+ // slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config } = this.props;
+ // await this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true,
+ // undefined, undefined, undefined,
+ // slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config); /* 刷新方法 */
+ // }
+ /* 只有多选情况下 汇总勾选行字段 */
+ if (commonUtils.isNotEmptyArr(totalData)) {
+ if (commonUtils.isNotEmptyObject(tableConfig) && tableConfig.gdsconfigformslave && bMutiSelect) {
+ const tableConfigSum = tableConfig.gdsconfigformslave.filter(item => commonUtils.isNotEmptyObject(item.sName) && item.bSum && item.bVisible);
+ const tableFilterData = tableData.filter(item => selectedRowKeys.includes(item.sSlaveId));
+ if (commonUtils.isNotEmptyArr(tableConfigSum) && commonUtils.isNotEmptyArr(tableFilterData)) {
+ const selectedTotal = {};
+ selectedTotal.bSum = true;
+ selectedTotal.key = '0000';
+ tableConfigSum.forEach((itemConfig) => {
+ const sName = itemConfig.sName;
+ if (commonUtils.isNotEmptyObject(sName)) {
+ tableFilterData.forEach((child) => {
+ if (commonUtils.isNotEmptyNumber(child[sName])) {
+ /* 金额、单价 保留系统设置小数位 */
+ if (sName.toLowerCase().endsWith('price')) { /* 价格 */
+ selectedTotal[sName] = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(child[sName], 0),dNetPrice) + commonUtils.convertFixNum(commonUtils.isNull(selectedTotal[sName], 0),dNetPrice),dNetPrice);
+ } else if (sName.toLowerCase().endsWith('money')) { /* 金额 */
+ selectedTotal[sName] = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(child[sName], 0),dNetMoney) + commonUtils.convertFixNum(commonUtils.isNull(selectedTotal[sName], 0),dNetMoney),dNetMoney);
+ } else{
+ selectedTotal[sName] = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(child[sName], 0),dNetMoney) + commonUtils.convertFixNum(commonUtils.isNull(selectedTotal[sName], 0),dNetMoney),dNetMoney);
+ }
+
+ }
+ });
+ }
+ });
+ if (commonUtils.isNotEmptyObject(selectedTotal)) {
+ selectedTotalData.push(selectedTotal);
+ }
+ }
+ }
+ }
+
+ /* 从表行切换时 查询页签所在表 除了第一张表之外的其他所有表格数据 都从第一张表的选中行数据作为查询条件 */
+ if(name === 'slave') {
+ const {activeKey } = this.props;
+ let tabName = ''; /* 页签所在表 */
+ if(commonUtils.isEmptyObject(activeKey)) { /* 默认查从表与slave0表 */
+ tabName = 'slave0';
+ }else {
+ if(activeKey === '2') {
+ tabName = 'slave0';
+ } else if(activeKey === '3') {
+ tabName = 'slave1';
+ }else if(activeKey === '4') {
+ tabName = 'slave2';
+ }else if(activeKey === '5') {
+ tabName = 'slave3';
+ }else if(activeKey === '6') {
+ tabName = 'slave4';
+ }else if(activeKey === '7') {
+ tabName = 'slave5';
+ }else if(activeKey === '8') {
+ tabName = 'slave6';
+ }else if(activeKey === '9') {
+ tabName = 'slave7';
+ }else if(activeKey === '10') {
+ tabName = 'slave8';
+ }else if(activeKey === '11') {
+ tabName = 'slave9';
+ }else if(activeKey === '12') {
+ tabName = 'slave10';
+ }else if(activeKey === '13') {
+ tabName = 'slave11';
+ }else if(activeKey === '14') {
+ tabName = 'slave12';
+ }else if(activeKey === '15') {
+ tabName = 'slave13';
+ }else if(activeKey === '16') {
+ tabName = 'slave14';
+ }else if(activeKey === '17') {
+ tabName = 'slave15';
+ }else if(activeKey === '18') {
+ tabName = 'slave16';
+ }else if(activeKey === '19') {
+ tabName = 'slave17';
+ }else if(activeKey === '20') {
+ tabName = 'slave18';
+ }else if(activeKey === '21') {
+ tabName = 'slave19';
+ }else if(activeKey === '22') {
+ tabName = 'slave20';
+ }
+ }
+ const sGroupByList = this.props.sGroupByList;
+ /* 除了第一张表之外的其他所有表格数据 都从第一张表的选中行数据作为查询条件 */
+ if(commonUtils.isNotEmptyObject(tabName)) {
+ const { [`${tabName}Config`] : tableConfig, [`${tabName}FilterCondition`]: tableFilterCondition, slaveOrderBy, [`${tabName}Pagination`] : tablePagination,
+ sModelsType, slave0Config,
+ } = this.props;
+ const iPageSize = tableConfig.bPagination ? tableConfig.iPageSize : 10000 ; /* 根据后台主表配置bPagination判断 是否分页, 不分页默认10000,分页根据分页来 */
+ if(commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ let record = tableData[0]; /* 从表选中行 没有选中行时 取第一行 */
+ const iIndex = tableData.findIndex(item => item.sSlaveId === selectedRowKeys[0]);
+ if (iIndex > -1) {
+ record = tableData[iIndex];
+ }
+ if (!commonUtils.isEmptyObject(tableConfig)) {
+ let conditonValues0 = {};
+ let sSqlCondition0 = tableConfig.sSqlCondition;
+ if(sModelsType === 'commonListTab/tabColor') {
+ sSqlCondition0 = slave0Config.sSqlCondition;
+ if (commonUtils.isNotEmptyObject(sSqlCondition0)) {
+ conditonValues0 = this.props.getSqlCondition(slave0Config, 'slave', record);
+ }
+ }else {
+ if (commonUtils.isNotEmptyObject(sSqlCondition0)) {
+ conditonValues0 = this.props.getSqlCondition(tableConfig, 'slave', record);
+ }
+ }
+ let bFilterArr = [];
+ if(sModelsId === '12710101117356137370500' || sModelsId === '12710101117253309349270' ) { /* 台工单跟踪表增加搜索组件的条件 */
+ bFilterArr = slaveFilterCondition;
+ if(commonUtils.isNotEmptyArr(bFilterArr) ) {
+ const iIndex= bFilterArr.findIndex(item => item.bFilterName === 'bSelected');
+ console.log('iIndex', iIndex);
+ if(iIndex > -1) {
+ bFilterArr.splice(iIndex,1);
+ }
+ const addState ={};
+ addState.bFilterName ='bSelected';
+ addState.bFilterCondition ='=';
+ addState.bFilterValue = true;
+ bFilterArr.push(addState);
+ }
+ }
+ if( commonUtils.isNotEmptyObject(tableConfig.sCharType)) { /* 加载图表 */
+ addStateSlave0.charConfigAndData = await this.handleGetCharOne(tabName, tableConfig, tableFilterCondition, commonUtils.isEmpty(tablePagination) ? 1 : tablePagination.current,
+ commonUtils.isEmpty(tablePagination) ? iPageSize : tablePagination.pageSize, slaveOrderBy, undefined, true, record);
+ } else {
+ if(sModelsType === 'commonListTab/tabColor') {
+ addStateSlave0 = await this.props.handleGetDataSet({
+ name: 'slave0', configData: slave0Config, condition: { pageNum: 1, pageSize: iPageSize, bFilter:[], sFilterOrderBy:'', sSqlCondition: conditonValues0, sGroupList:sGroupByList }, isWait: true,
+ });
+
+ }else {
+ addStateSlave0 = await this.props.handleGetDataSet({
+ name: tabName, configData: tableConfig, condition: { pageNum: 1, pageSize: iPageSize, bFilter:bFilterArr, sFilterOrderBy:'', sSqlCondition: conditonValues0, sGroupList:sGroupByList }, isWait: true,
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+
+ } else if (commonUtils.isEmptyArr(selectedRowKeys)) {
+ const menuChildData = [];
+ this.props.onSaveState({ menuChildData });
+ }
+ this.props.onSaveState({ [`${name}Total`]: commonUtils.isNotEmptyArr(selectedRowKeys) && bMutiSelect ? selectedTotalData : totalAllData, ...addStateSlave0 });
+ }
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+
+
+ // OEE自定义按钮调用存储过程
+ handleOEEProcedureCall = async (btnConfig, proName, proInParam) => {
+ const { app, sModelsId } = this.props;
+ const value = {
+ sProName: proName,
+ paramsMap: {
+ sMachineId: app.sMachineNameSId,
+ sProInParam: proInParam,
+ },
+ };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ message.success(returnData.msg);
+ this.handleButtonClick('BtnRefresh');
+ this.props.onSaveState({ oeeBtnStatus: true }); /* oeeBtnStatus 按钮点击时置灰 执行数据完成后按钮回置 */
+ } else {
+ this.props.onSaveState({ loading: false, oeeBtnStatus: true });
+ this.props.getServiceError(returnData);
+ }
+ }
+ // 根据配置解析拼接具体参数
+ handleProParams = (sKey, arr) => {
+ const { [`${sKey}Data`]: tableData, [`${sKey}SelectedRowKeys`]: selectedRowKeys } = this.props;
+ const keyData = commonUtils.isNotEmptyArr(tableData) ? tableData.filter(item => selectedRowKeys.includes(item.sId) || selectedRowKeys.includes(item.sSlaveId)) : [];
+ if (commonUtils.isNotEmptyArr(keyData)) {
+ const addState = {};
+ addState.key = sKey;
+ const val = [];
+ keyData.forEach((currData) => {
+ const currVal = {};
+ arr.forEach((filed) => {
+ currVal[`${filed}`] = currData[`${filed}`];
+ });
+ val.push(currVal);
+ });
+ addState.value = val;
+ return addState;
+ } else {
+ return undefined;
+ }
+ };
+ // 进行存储过程按钮存储过程参数解析拼接 根据存储过程按钮参数配置进行解析,配置是json格式 {"sproName":"cal_sss","inMap":"master.sSlaveId,slave.sId"}
+ handleOeeBtnEent = (btnConfig) => {
+ const { masterData } = this.props;
+ const { sButtonParam } = btnConfig;
+ const btn = JSON.parse(sButtonParam);
+ const sProName = btn.sproName;
+ const inParams = [];
+ const { inMap } = btn;
+ const inlist = inMap.split(',');
+ const masterArr = [];
+ const slaveArr = [];
+
+ if (inlist.length > 0) {
+ inlist.forEach((item) => {
+ const itemArr = item.split('.');
+ if (itemArr.length > 0) {
+ const sname = itemArr[0];
+ const stype = itemArr[1];
+ if (commonUtils.isNotEmptyStr(sname) && sname === 'master') {
+ masterArr.push(stype);
+ }
+ if (commonUtils.isNotEmptyStr(sname) && sname === 'slave') {
+ slaveArr.push(stype);
+ }
+ }
+ });
+
+ if (commonUtils.isNotEmptyArr(masterArr) && commonUtils.isNotEmptyObject(masterData)) {
+ const addState = {};
+ addState.key = 'master';
+ const val = [];
+ const currVal = {};
+ masterArr.forEach((filed) => {
+ currVal[`${filed}`] = masterData[`${filed}`];
+ });
+ val.push(currVal);
+ addState.value = val;
+ inParams.push({ ...addState });
+ }
+ if (commonUtils.isNotEmptyArr(slaveArr)) {
+ const addState = this.handleProParams('slave', slaveArr);
+ if (commonUtils.isNotEmptyObject(addState)) {
+ inParams.push({ ...addState });
+ }
+ }
+ }
+ /* OEE模块调用OEE自定义按钮存储过程 */
+ if (location.pathname.toLowerCase().indexOf('oee') > -1) {
+ this.handleOEEProcedureCall(btnConfig, sProName, JSON.stringify({ params: inParams }));
+ }
+ };
+
+
+ // 进行存储过程按钮存储过程参数解析拼接 根据存储过程按钮参数配置进行解析,配置是json格式 {"sproName":"cal_sss","inMap":"master.sSlaveId,slave.sId"}
+ // handleBtnEent = (btnConfig, name, sValue) => {
+ // const { masterData, sCurrMemoProps } = this.props;
+ // if (commonUtils.isNotEmptyObject(sCurrMemoProps) && name.indexOf('BtnRepair') > -1) {
+ // sCurrMemoProps.bVisibleMemo = false;
+ // this.props.onSaveState({ sCurrMemoProps });
+ // }
+ // const sButtonParam = btnConfig.sButtonParam;
+ // const btn = JSON.parse(sButtonParam);
+ // const sProName = btn.sproName;
+ // const inParams = [];
+ // const inMap = btn.inMap;
+ // const inlist = inMap.split(',');
+ //
+ // const masterArr = [];
+ // const slaveArr = [];
+ // const slaveInfoArr = [];
+ // const controlArr = [];
+ // const materialsArr = [];
+ // const processArr = [];
+ //
+ // if (inlist.length > 0) {
+ // inlist.forEach((item) => {
+ // const itemArr = item.split('.');
+ // if (itemArr.length > 0) {
+ // const sname = itemArr[0];
+ // const stype = itemArr[1];
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'master') {
+ // masterArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'slave') {
+ // slaveArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'slaveInfo') {
+ // slaveInfoArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'control') {
+ // controlArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'materials') {
+ // materialsArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'process') {
+ // processArr.push(stype);
+ // }
+ // }
+ // });
+ //
+ // if (commonUtils.isNotEmptyArr(masterArr) && commonUtils.isNotEmptyObject(masterData)) {
+ // const addState = {};
+ // addState.key = 'master';
+ // const val = [];
+ // const currVal = {};
+ // masterArr.forEach((filed) => {
+ // currVal[`${filed}`] = masterData[`${filed}`];
+ // });
+ // val.push(currVal);
+ // addState.value = val;
+ // inParams.push({ ...addState });
+ // }
+ // if (commonUtils.isNotEmptyArr(slaveArr)) {
+ // const addState = this.handleProParams('slave', slaveArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(slaveInfoArr)) {
+ // const addState = this.handleProParams('slaveInfo', slaveInfoArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(controlArr)) {
+ // const addState = this.handleProParams('control', controlArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(materialsArr)) {
+ // const addState = this.handleProParams('materials', materialsArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(processArr)) {
+ // const addState = this.handleProParams('process', processArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // }
+ //
+ // this.handleProcedureCall(btnConfig, sProName, JSON.stringify({ params: inParams, changeValue: sValue }));
+ // };
+ // 根据配置解析拼接具体参数
+ // handleProParams = (sKey, arr) => {
+ // const { [`${sKey}Data`]: tableData, [`${sKey}SelectedRowKeys`]: selectedRowKeys } = this.props;
+ // const keyData = tableData.filter(item => selectedRowKeys.includes(item.sId) || selectedRowKeys.includes(item.sSlaveId));
+ // if (commonUtils.isNotEmptyArr(keyData)) {
+ // const addState = {};
+ // addState.key = sKey;
+ // const val = [];
+ // keyData.forEach((currData) => {
+ // const currVal = {};
+ // arr.forEach((filed) => {
+ // currVal[`${filed}`] = currData[`${filed}`];
+ // });
+ // val.push(currVal);
+ // });
+ // addState.value = val;
+ // return addState;
+ // } else {
+ // return undefined;
+ // }
+ // };
+ // 存储过程按钮调用存储过程
+ // handleProcedureCall = async (btnConfig, proName, proInParam) => {
+ // const { app, sModelsId } = this.props;
+ // const value = { sProName: proName, sProInParam: proInParam };
+ // const url = `${commonConfig.server_host}procedureCall/doGenericProcedureCall?sModelsId=${sModelsId}`;
+ // const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ // if (returnData.code === 1) {
+ // message.success(returnData.msg);
+ // this.handleButtonClick('BtnRefresh');
+ // } else {
+ // this.props.onSaveState({ loading: false });
+ // this.props.getServiceError(returnData);
+ // }
+ // }
+ /* 点击展开图标时,调用接口获取嵌套字表数据 */
+ handleOnExpand = async (expanded, record) => {
+ const { expKeys } = this.props;
+ /* 添加移除展开的sId */
+ const { formRoute } = this.props;
+ let newExp = commonUtils.isNotEmptyArr(expKeys) ? expKeys : [];
+ let rowKeyId = '';
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ rowKeyId = record.sMaterialsGS;
+ }
+ if (expanded) {
+ if (commonUtils.isNotEmptyObject(rowKeyId)) {
+ newExp.push(rowKeyId);
+ }
+ } else {
+ newExp = newExp.filter(item => item !== rowKeyId);
+ }
+ this.props.onSaveState({ expKeys: newExp });
+ }
+ handleTableAdd = (name, isWait) => {
+ const { formRoute } = this.props;
+ if (commonUtils.isNotEmptyObject(formRoute) && formRoute.indexOf('/indexOee') > -1 && name === 'employee') { // oee开工页面人员表点击增加弹窗人员选择框
+ this.props.onSaveState({ employeeVisble: true });
+ } else if (isWait) { /* 报表设计新增 */
+ const tableDataRow = this.props.onDataRowAdd(name, isWait);
+ return tableDataRow;
+ }
+ }
+
+ /* 操作日志点击链接弹出Modal呈现日志明细 */
+ handleGetLogDetail=(record) => {
+ const { sModelsType } = this.props;
+ let { logColumn } = this.props;
+ /* 操作日志明细弹窗功能 */
+ if (sModelsType === 'commonList/logdetail') {
+ const { sDetailMemo } = record;
+ let JsonData = [];
+ const logData = [];
+ const logConfig = {};
+ if (commonUtils.isNotEmptyObject(sDetailMemo)) {
+ const addState = {};
+ addState.logVisible = true;
+ if (commonUtils.isEmptyArr(logColumn)) {
+ logConfig.sId = commonUtils.createSid();
+ logConfig.gdsconfigformslave = [{
+ bVisible: false,
+ sName: 'sId',
+ bNotEmpty: true,
+ showName: '表sId',
+ bFind: false,
+ }, {
+ bVisible: false,
+ sName: 'sSlaveId',
+ bNotEmpty: true,
+ showName: '表主键',
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sTableName',
+ bNotEmpty: true,
+ showName: '表名称',
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sTableType',
+ bReadOnly: true,
+ showName: '表类型',
+ iTag: 1,
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'handleType',
+ bReadOnly: true,
+ showName: '状态',
+ iTag: 1,
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sFieldName',
+ bReadOnly: true,
+ showName: '字段名',
+ iTag: 1,
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sFieldValue',
+ bReadOnly: true,
+ showName: '字段值',
+ iTag: 1,
+ bFind: false,
+ }];
+ logColumn = [{
+ title: '表名称',
+ dataIndex: 'sTableName',
+ width: 200,
+ bFind: true,
+ }, {
+ title: '表类型',
+ dataIndex: 'sTableType',
+ width: 100,
+ bFind: true,
+ }, {
+ title: '状态',
+ dataIndex: 'handleType',
+ width: 100,
+ bFind: true,
+ }, {
+ title: '字段名',
+ dataIndex: 'sFieldName',
+ width: 200,
+ bFind: true,
+ }, {
+ title: '字段值',
+ dataIndex: 'sFieldValue',
+ width: 200,
+ bFind: true,
+ }];
+ addState.logColumn = logColumn;
+ addState.logConfig = logConfig;
+ }
+ try {
+ JsonData = JSON.parse(sDetailMemo);
+ /* 弹窗字段取值 */
+ JsonData.forEach((item) => {
+ const columnArr = item.column;
+ if (commonUtils.isNotEmptyArr(columnArr)) {
+ columnArr.forEach((column) => {
+ // eslint-disable-next-line guard-for-in
+ for (const property in column) {
+ const logObj = {};
+ logObj.sTableName = item.sTable;
+ logObj.sTableType = item.name;
+ logObj.sFieldName = property;
+ logObj.sFieldValue = column[property];
+ const newId = commonUtils.createSid();
+ logObj.sId = newId;
+ logObj.sSlaveId = newId;
+ const handleType = column.handleType;
+ switch (handleType) {
+ case 'add':
+ logObj.handleType = '新增';
+ break;
+ case 'update':
+ logObj.handleType = '修改';
+ break;
+ case 'del':
+ logObj.handleType = '删除';
+ break;
+ default:
+ break;
+ }
+ logData.push(logObj);
+ }
+ });
+ }
+ });
+ addState.logData = logData;
+ } catch (e) {
+ JsonData = [];
+ }
+ this.props.onSaveState({
+ ...addState,
+ });
+ }
+ }
+ }
+
+ handleViewClick = (name, sName, record, index, myConfig) => {
+ /* 操作日志明细链接弹出Modal */
+ if (sName === 'sDetailMemoview') {
+ this.handleGetLogDetail(record);
+ } else {
+ if (sName === 'myTableConfig') {
+ this.handleQuickViewClick(name, sName, record, index, myConfig);
+ } else {
+ this.props.onViewClick(name, sName, record, index, myConfig);
+ }
+ }
+ }
+
+ handleQuickViewClick = async (name, sName, record, index, myConfigArr) => {
+ const {
+ slaveConfig,
+ slaveData,
+ dispatch,
+ slaveFilterCondition,
+ slavePagination,
+ slaveOrderBy,
+ sModelsType,
+ formRoute,
+ treeFilterCondition,
+ app,
+ iPageSize,
+ sModelsId,
+ // slaveSelectedData,
+ // masterData,
+ // employeeConfig,
+ } = this.props;
+
+ let picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === sName));
+ if (commonUtils.isNotEmptyArr(myConfigArr)) {
+ picArr = myConfigArr;
+ }
+
+ if (picArr.length > 0) {
+ const getConfig = this.handleGetTableConfig;
+ const tableDataRow = record;
+ const iIndex = index;
+ const [{sActiveId}] = picArr;
+ let [{sActiveKey}] = picArr;
+ const sFormId = sActiveId === '1' ? commonUtils.isEmpty(tableDataRow.sFormId) ? tableDataRow.sSrcFormId : tableDataRow.sFormId : sActiveId;
+ if (commonUtils.isNotEmptyObject(sActiveKey) && sActiveKey.includes('.')) { /* 接口按钮跳转 如果有slave.对应字段 则需要取出对应字段 */
+ const index = sActiveKey.lastIndexOf('.');
+ sActiveKey = sActiveKey.substring(index + 1, sActiveKey.length);
+ }
+ const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sFormId}?sModelsId=${sFormId}&sName=${formRoute}`;
+ const filterCondition = [];
+ const conditionValues = this.props.getSqlCondition(picArr[0], name, tableDataRow);
+ if (!commonUtils.isEmpty(conditionValues)) {
+ Object.keys(conditionValues).forEach((item) => {
+ if ((item === 'tStartDate_pro' || item.substring(0, 1) === 'p')) {
+ if (!commonUtils.isEmpty(conditionValues[item]) && conditionValues[item].length >= 2) {
+ const tStartDate = moment(conditionValues[item][0]).format(this.sDateFormat);
+ const tEndDate = moment(conditionValues[item][1]).add(1, 'days').format(this.sDateFormat);
+ filterCondition.push({
+ bFilterName: item,
+ bFilterCondition: '=',
+ bFilterValue: `${tStartDate},${tEndDate}`,
+ });
+ }
+ } else if ((item === 'mStartDate_pro' || item.substring(0, 1) === 'm')) {
+ if (!commonUtils.isEmpty(conditionValues[item])) {
+ const tStartDate = moment(conditionValues[item]).startOf('month').format(this.sDateFormat);
+ const tEndDate = moment(conditionValues[item]).endOf('month').add(1, 'days').format(this.sDateFormat);
+ filterCondition.push({
+ bFilterName: `t${item.substring(1, item.length)}`,
+ bFilterCondition: '=',
+ bFilterValue: `${tStartDate},${tEndDate}`,
+ });
+ }
+ } else if (item.substring(0, 1) === 't') {
+ filterCondition.push({
+ bFilterName: item,
+ bFilterCondition: '=',
+ bFilterValue: moment(conditionValues[item]).format(this.sDateFormat),
+ });
+ } else {
+ filterCondition.push({
+ bFilterName: item,
+ bFilterCondition: '=',
+ bFilterValue: conditionValues[item],
+ });
+ }
+ });
+ }
+
+ this.props.dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: sNameUrl,
+ refresh: getConfig.bind(this, name, sModelsId), /* 刷新方法 */
+ sTabId: commonUtils.createSid(),
+ sParentId: this.state.sTabId,
+ urlDataType: 'newPane',
+ checkedId: myConfigArr[0].sId,
+ sName: myConfigArr[0].sName,
+ bFilter: slaveFilterCondition,
+ pageSize: commonConfig.pageSize,
+ pages: slavePagination,
+ currentData: slaveData,
+ conditonValues: conditionValues,
+ newKey: tableDataRow[sActiveKey],
+ currentIndex: iIndex,
+ filterCondition,
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ };
+
+ handleGetTableConfig = async (name, sModelsId) => {
+ if (commonUtils.isNotEmptyObject(sModelsId)) {
+ const newConfig = await this.props.onGetTableConfig(name, sModelsId);
+ if (commonUtils.isNotEmptyObject(newConfig)) {
+ let slaveColumn = commonFunc.getHeaderConfig(newConfig);
+ this.props.onSaveState({[`${[name]}Config`]: newConfig, slaveColumn })
+ }
+ }
+ }
+ handlePartNameClick =(sName, showConfig, record) => {
+ if (commonUtils.isNotEmptyObject(sName) && commonUtils.isNotEmptyObject(showConfig) && commonUtils.isNotEmptyObject(record)) {
+ this.props.onSaveState({ workScheduleConfig: showConfig, workScheduleRecord: record, workScheduleVisible: true });
+ }
+ }
+ handleCloseModel = (modelVisible) => {
+ this.props.onSaveState({ [modelVisible]: false });
+ };
+
+ /* 获取树形slaveTreeData数据 */
+ handleGetSlaveTreeData = (slaveData) => {
+ const slaveTreeData = []; /* 用于界面树形展示的slaveData */
+ const expKeys = [];
+ const addState = {};
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((tableDataRow) => {
+ const tableDataRowNew = JSON.parse(JSON.stringify(tableDataRow));
+ if (commonUtils.isEmpty(tableDataRow.sParentId)) { /* 一级分类 */
+ const childrenData = this.handleGetChildData(slaveData, tableDataRowNew.sId); /* 获取子数据 */
+ if (commonUtils.isNotEmptyArr(childrenData)) {
+ expKeys.push(tableDataRow.sSlaveId);
+ tableDataRowNew.children = childrenData;
+ }
+ slaveTreeData.push(tableDataRowNew);
+ } else { /* 搜索后的数据集 若没有完整的树形结构 没有父级时 挂载当层 */
+ const sParentId = tableDataRow.sParentId;
+ /* 层级里去查sParentId的层级 */
+ const slaveFilterData = slaveData.filter(item => item.sId === sParentId); /* 查找该节点的父级 */
+ if (slaveFilterData.length === 0) { /* 没有父级 代表搜索后零散数据 */
+ const childrenData = this.handleGetChildData(slaveData, tableDataRowNew.sId); /* 获取子数据 */
+ if (commonUtils.isNotEmptyArr(childrenData)) {
+ expKeys.push(tableDataRow.sSlaveId);
+ tableDataRowNew.children = childrenData;
+ }
+ slaveTreeData.push(tableDataRowNew);
+ }
+ }
+ });
+ }
+ addState.slaveTreeData = slaveTreeData;
+ addState.expKeys = expKeys;
+ return addState;
+ }
+ /* 获取子节点数据 */
+ handleGetChildData = (data, sId) => {
+ if (commonUtils.isNotEmptyArr(data)) {
+ const filterData = data.filter(item => item.sParentId === sId);
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach((child, index) => {
+ const filterChildData = this.handleGetChildData(data, child.sId);
+ if (commonUtils.isNotEmptyArr(filterChildData)) {
+ filterData[index].children = filterChildData;
+ }
+ });
+ }
+ return filterData;
+ }
+ }
+
+
+ render() {
+ return (
+
+ );
+ }
+ };
+};
diff --git a/src/components/Common/CommonListTree/index.js b/src/components/Common/CommonListTree/index.js
new file mode 100644
index 0000000..b576146
--- /dev/null
+++ b/src/components/Common/CommonListTree/index.js
@@ -0,0 +1,274 @@
+/**
+ * @Date: 2019-05-28T13:23:00+08:00
+ * @Last modified time: 2019-05-29T15:33:03+08:00
+ */
+/**
+ * 此组件是两层通用结构commonListTree,功能如物料需求计划,两层都可以配制独立的数据源
+ */
+/* eslint-disable */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin } from 'antd';
+import CommonListTreeEvent from '../CommonListTreeEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '../commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '../ToolBar/ToolBarNew';
+import StaticEditTable from '../CommonTable';/* 可编辑表格 */
+import styles from '../../../index.less';
+import CommonBase from '../CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '../commonBusiness';/* 单据业务功能 */
+import SearchComponent from '../SearchComponent';/* 搜索组件 */
+import commonConfig from '../../../utils/config';
+import * as commonUtils from '../../../utils/utils'; /* 通用方法 */
+
+const { Header } = Layout;
+
+class CommonListTree extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ // ----------------------------数据修改回带end ---------------------------- //
+ /** 处理选择行发生改变 */
+ handleTableFilterData= (name, data, record) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ let slaveInfoDataNew = [];
+ if (commonUtils.isNotEmptyArr(data)) {
+ slaveInfoDataNew = data.filter(item => item.sSqlConditionId === record.sSqlConditionId);
+ }
+ return slaveInfoDataNew;
+ }
+ };
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ const {
+ sModelsType,slaveInfoData, slaveData, slaveSelectedData, slaveInfoSelectedData,
+ } = this.props;
+ let { slaveInfoSelectedRowKeys, slaveSelectedRowKeys } = this.props;
+ const addState = {};
+ addState[`${name}SelectedRowKeys`] = selectedRowKeys;
+ let newSlaveSelectedData = [];
+ const newSlaveInfoSelectedData = [];
+ const newSelectedRowKeys = [];
+ const addSelectedRowKeys = [];
+ if(commonUtils.isEmptyArr(slaveInfoSelectedRowKeys)) {
+ slaveInfoSelectedRowKeys =[];
+ }
+ /* 如果列表是需要主从表联动 */
+ if (sModelsType && sModelsType.includes('linkTree')) {
+ if (name === 'slave') {
+ if (selectedRowKeys.length === 0) {
+ if(commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((omsRowkey, iIndexSlave) => {
+ slaveData[iIndexSlave].dAuxiliaryQty = slaveData[iIndexSlave].dAuxiliaryQtyAll;
+ slaveData[iIndexSlave].dMaterialsQty = slaveData[iIndexSlave].dMaterialsQtyAll;
+ });
+ }
+ addState.slaveData = slaveData;
+ addState.slaveSelectedRowKeys = [];
+ addState.slaveSelectedData = [];
+ addState.slaveInfoSelectedRowKeys = [];
+ addState.slaveInfoSelectedData = [];
+ } else{
+ /* 找到勾选掉的Id */
+ let oldSelectRowkeys = []; /* 取消勾选行 */
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ oldSelectRowkeys = slaveSelectedRowKeys.filter(item => !selectedRowKeys.includes(item)); // 找到取消的那个行 */
+ if(commonUtils.isNotEmptyArr(oldSelectRowkeys) ) { /* 单层表格时 */
+ oldSelectRowkeys.forEach((oldSelectRowkey) => {
+ let slaveRow = {};
+ /* 找到从表对应的所有子从表 */
+ const iIndex = slaveData.findIndex(item => oldSelectRowkey.includes(item.sSlaveId));
+ if (iIndex > -1) {
+ slaveRow = slaveData[iIndex];
+ }
+ if(commonUtils.isNotEmptyObject(oldSelectRowkey)) { /* 找到勾选掉的sDivRow汇总行 */
+ const slaveRemoveData = slaveInfoData.filter(item => item.sSqlConditionId === slaveRow.sSqlConditionId);
+ if(commonUtils.isNotEmptyArr(slaveRemoveData) && commonUtils.isNotEmptyArr(slaveInfoSelectedRowKeys)) {
+ let dAuxiliaryQtySum = slaveRow.dAuxiliaryQty;
+ let dMaterialsQtySum = slaveRow.dMaterialsQty;
+ slaveRemoveData.forEach((itemInfo) => {
+ const indexKey = slaveInfoSelectedRowKeys.indexOf(itemInfo.sSlaveId);
+ if(indexKey > -1) {
+ slaveInfoSelectedRowKeys.splice(indexKey, 1);
+ dAuxiliaryQtySum -= itemInfo.dAuxiliaryQty;
+ dMaterialsQtySum -= itemInfo.dMaterialsQty;
+ }
+ });
+ if(dAuxiliaryQtySum ===0) {
+ dAuxiliaryQtySum= slaveRow.dAuxiliaryQtyAll;
+ }
+ if(dMaterialsQtySum ===0) {
+ dMaterialsQtySum= slaveRow.dMaterialsQtyAll;
+ }
+ slaveRow.dAuxiliaryQty = dAuxiliaryQtySum;
+ slaveRow.dMaterialsQty = dMaterialsQtySum;
+ slaveData[iIndex] = {...slaveData[iIndex], ...slaveRow};
+ addState.slaveInfoSelectedRowKeys = slaveInfoSelectedRowKeys;
+ addState.slaveData = slaveData;
+ }
+ }
+ });
+ }
+ }
+ if(commonUtils.isNotEmptyArr(selectedRowKeys)) { /* 从表行新增勾选 */
+ selectedRowKeys.forEach((selectedRowKey) => {
+ let slaveRow = {};
+ /* 找到从表对应的所有子从表 */
+ const iIndex = slaveData.findIndex(item => selectedRowKey.includes(item.sSlaveId));
+ if (iIndex > -1) {
+ slaveRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveRow) && commonUtils.isNotEmptyArr(slaveInfoData)) {
+ let dAuxiliaryQtySum = 0;
+ let dMaterialsQtySum = 0;
+ const slaveInfoFilterData = slaveInfoData.filter(item => item.sSqlConditionId === slaveRow.sSqlConditionId);
+ if (commonUtils.isNotEmptyArr(slaveInfoFilterData)) {
+ slaveInfoFilterData.forEach((itemInfo) => {
+ if(slaveInfoSelectedRowKeys.indexOf(itemInfo.sSlaveId) === -1) {
+ slaveInfoSelectedRowKeys.push(itemInfo.sSlaveId);
+ }
+ dAuxiliaryQtySum += itemInfo.dAuxiliaryQty;
+ dMaterialsQtySum += itemInfo.dMaterialsQty;
+ });
+ slaveRow.dAuxiliaryQty = dAuxiliaryQtySum;
+ slaveRow.dMaterialsQty = dMaterialsQtySum;
+ slaveData[iIndex] = {...slaveData[iIndex], ...slaveRow};
+ }
+ }
+ });
+ newSlaveSelectedData = slaveData.filter(item => selectedRowKeys.includes(item.sSlaveId)); /* 从表的所有选中行 */
+ addState.slaveSelectedData = newSlaveSelectedData;
+ addState.slaveData = slaveData;
+ addState.slaveInfoSelectedRowKeys = slaveInfoSelectedRowKeys;
+ }
+ }
+ this.props.onSaveState({ ...addState });
+ } else if (name === 'slaveInfo') {
+ /* 勾选行 */
+ if (selectedRowKeys.length === 0) {
+ if(commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((omsRowkey, iIndexSlave) => {
+ slaveData[iIndexSlave].dAuxiliaryQty = slaveData[iIndexSlave].dAuxiliaryQtyAll;
+ slaveData[iIndexSlave].dMaterialsQty = slaveData[iIndexSlave].dMaterialsQtyAll;
+ });
+ }
+ addState.slaveData = slaveData;
+ addState.slaveSelectedRowKeys = [];
+ addState.slaveSelectedData = [];
+ addState.slaveInfoSelectedRowKeys = [];
+ addState.slaveInfoSelectedData = [];
+ } else {
+ const newSlaveInfoSelectedData = slaveInfoData.filter(item => selectedRowKeys.includes(item.sSlaveId));
+ if(commonUtils.isNotEmptyArr(newSlaveInfoSelectedData)) {
+ const newSlaveSelectedData = slaveData.filter(item => newSlaveInfoSelectedData.findIndex(newItem => newItem.sSqlConditionId === item.sSqlConditionId) > -1);
+ newSlaveSelectedData.forEach((item) => {
+ newSelectedRowKeys.push(item.sSlaveId);
+ const newlist = newSlaveInfoSelectedData.filter(siItem => siItem.sSqlConditionId === item.sSqlConditionId); /* 找到该子表行对应的从表 所对应的所有子从表 */
+ let dAuxiliaryQty = 0;
+ let dMaterialsQty = 0;
+ if(commonUtils.isNotEmptyArr(newlist)) {
+ newlist.forEach((item) => {
+ dAuxiliaryQty = commonUtils.convertFixNum(item.dAuxiliaryQty + dAuxiliaryQty, 6);
+ dMaterialsQty = commonUtils.convertFixNum(item.dMaterialsQty + dMaterialsQty, 6);
+ });
+ }
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sSlaveId === item.sSlaveId);
+ if(iIndex > -1) {
+ slaveData[iIndex].dAuxiliaryQty = dAuxiliaryQty;
+ slaveData[iIndex].dMaterialsQty = dMaterialsQty;
+ }
+ });
+ addState.slaveData = slaveData;
+ addState.slaveSelectedData= newSlaveSelectedData;
+ addState.slaveSelectedRowKeys = newSelectedRowKeys;
+ addState.slaveInfoSelectedRowKeys = selectedRowKeys;
+ }
+ }
+ }
+ this.props.onSaveState({ ...addState });
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListTreeComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const { form, onReturnForm, slavePagination, defaultExpandAllRows } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonConfig.pageSize,
+ ...slavePagination,
+ size: 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: true,
+ showQuickJumper: true,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ onTableFilterData: props.onTableFilterData,
+ tableBelone: 'list',
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ };
+ const tableInfoProps = {
+ ...commonBusiness.getTableTypes('slaveInfo', props),
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ // tableBelone: 'list',
+ onChange: props.onTitleChange.bind(this, 'slaveInfo'),
+ enabled:true,
+ bRowClick: true
+ // data: commonUtils.isNotEmptyObject(props.slaveInfoDataNew) ? props.slaveInfoDataNew : props.slaveInfoData,
+ };
+ // const mProps = { ...commonBusiness.createMemoProps('master', props) };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListTreeEvent(CommonListTree));
diff --git a/src/components/Common/CommonPartsInfo/index.js b/src/components/Common/CommonPartsInfo/index.js
new file mode 100644
index 0000000..bc374de
--- /dev/null
+++ b/src/components/Common/CommonPartsInfo/index.js
@@ -0,0 +1,380 @@
+/* eslint-disable */
+import React, {
+ useReducer,
+ useContext,
+ useRef,
+ useState,
+ useEffect
+} from "react";
+import { Tree, Divider, Tabs, Button, Tooltip } from "antd";
+import {
+ ProfileOutlined,
+ FileTextOutlined,
+ PrinterOutlined
+} from "@ant-design/icons";
+import styles from "./index.less";
+import CommonViewTable from "@/components/Common/CommonViewTable";
+import CommonViewDragable from "@/components/Common/CommonViewDragable";
+import { useReactToPrint } from "react-to-print";
+// const getPageMargins = () => {
+// return `@page { margin: 10 10 10 10 !important; }`;
+// };
+//
+
+import * as commonUtils from "@/utils/utils";
+const { myContext, reducer } = commonUtils;
+
+const initialState = {
+ selectedData: {}
+};
+
+const CommonPartsInfo = props => {
+ const [state, dispatch] = useReducer(reducer, initialState);
+
+ const { processData = [], controlData = [] } = props;
+ const allData = [
+ ...controlData.map(item => ({ ...item, iLv: 2 })),
+ ...processData
+ ];
+
+ const contentRef = useRef(null);
+
+ return (
+
+
+
+ {location.pathname === "/indexPage/processCardPackTableTree" ? (
+
+ ) : (
+
+ )}
+
+
+
+ {allData.map(item => (
+
+ ))}
+
+
+
+ );
+};
+
+const TreeComponent = () => {
+ const { props, hooksProps } = useContext(myContext);
+ const { dispatch } = hooksProps;
+ const {
+ slaveData = [],
+ controlData = [],
+ processData = [],
+ partsInfoBtnConfig = {}
+ } = props;
+ const { sAssignField } = partsInfoBtnConfig;
+ const [selectedKeys, setSelectedKeys] = useState([]);
+ const initFlag = useRef(true);
+
+ const treeData = [];
+ slaveData.forEach(slaveRow => {
+ const { sId: sId0, sProductName, sProductNo } = slaveRow;
+ const lv1 = {
+ title: sProductName,
+ key: sId0,
+ icon: ,
+ readOnly: true,
+ children: []
+ };
+
+ let bFirst = true;
+ controlData.forEach(controlRow => {
+ const { sId: sId1, sPartsName, sCombinedMemo } = controlRow;
+ const sCombinedMemoArr = commonUtils.convertStrToObj(sCombinedMemo, []);
+ const bMatch = sCombinedMemoArr.some(
+ item => item.sProductNo && sProductNo === item.sProductNo
+ );
+ if (bMatch) {
+ if (bFirst) {
+ bFirst = false;
+ treeData.push(lv1);
+ }
+ const lv2 = {
+ title: sPartsName,
+ key: sId1,
+ icon: ,
+ readOnly: false
+ };
+ lv1.children.push(lv2);
+ const childrenData = processData.filter(
+ process => process.sControlId === sId1
+ );
+ if (commonUtils.isNotEmptyArr(childrenData)) {
+ lv2.children = childrenData.map(process => {
+ const { sId, sProcessName } = process;
+ const sMemo = sAssignField ? process[sAssignField] : "";
+ if (initFlag.current) {
+ initFlag.current = false;
+ setSelectedKeys([sId]);
+ }
+ return {
+ title: `${sProcessName}${
+ sAssignField ? `【${sMemo || "无"}】` : ""
+ }`,
+ key: sId,
+ icon:
+ };
+ });
+ }
+ }
+ });
+ });
+
+ useEffect(
+ () => {
+ if (selectedKeys[0]) {
+ /* 判断是从表的选中还是第三层工序表选中 */
+ let selectedData = processData.find(
+ item => item.sId === selectedKeys[0]
+ );
+ if (commonUtils.isEmptyArr(selectedData)) {
+ // selectedData = slaveData.find(item => item.sId === selectedKeys[0]);
+ // if(commonUtils.isNotEmptyObject(selectedData)) {
+ // selectedData.iLv = 1; /* 从表选中 */
+ // }
+ selectedData = controlData.find(item => item.sId === selectedKeys[0]);
+ if (commonUtils.isNotEmptyObject(selectedData)) {
+ selectedData.iLv = 2; /* 控制表选中 */
+ }
+ }
+ dispatch([
+ "saveState",
+ {
+ selectedData: selectedData
+ }
+ ]);
+ }
+ },
+ [selectedKeys[0]]
+ );
+
+ return (
+ {
+ if (!node.readOnly) {
+ setSelectedKeys(selectedKeys);
+ }
+ }}
+ />
+ );
+};
+
+const TreeComponent1 = () => {
+ const { props, hooksProps } = useContext(myContext);
+ const { dispatch } = hooksProps;
+ const { controlData = [], processData = [] } = props;
+
+ const [selectedKeys, setSelectedKeys] = useState([]);
+ const initFlag = useRef(true);
+ const treeData = controlData.map(control => {
+ const { sId, sPartsName } = control;
+ const lv1 = {
+ title: sPartsName,
+ key: sId,
+ icon:
+ // readOnly: true
+ };
+
+ const childrenData = processData.filter(
+ process => process.sControlId === sId
+ );
+ if (commonUtils.isNotEmptyArr(childrenData)) {
+ lv1.children = childrenData.map(process => {
+ const { sId, sProcessName } = process;
+ if (initFlag.current) {
+ initFlag.current = false;
+ setSelectedKeys([sId]);
+ }
+ return {
+ title: sProcessName,
+ key: sId,
+ icon:
+ };
+ });
+ }
+
+ return lv1;
+ });
+
+ useEffect(
+ () => {
+ if (selectedKeys[0]) {
+ /* 判断是从表的选中还是第三层工序表选中 */
+ let selectedData = processData.find(
+ item => item.sId === selectedKeys[0]
+ );
+ if (commonUtils.isEmptyArr(selectedData)) {
+ // selectedData = slaveData.find(item => item.sId === selectedKeys[0]);
+ // if(commonUtils.isNotEmptyObject(selectedData)) {
+ // selectedData.iLv = 1; /* 从表选中 */
+ // }
+ selectedData = controlData.find(item => item.sId === selectedKeys[0]);
+ if (commonUtils.isNotEmptyObject(selectedData)) {
+ selectedData.iLv = 2; /* 控制表选中 */
+ }
+ }
+ dispatch([
+ "saveState",
+ {
+ selectedData: selectedData
+ }
+ ]);
+ }
+ },
+ [selectedKeys[0]]
+ );
+
+ return (
+ {
+ if (!node.readOnly) {
+ setSelectedKeys(selectedKeys);
+ }
+ }}
+ />
+ );
+};
+
+const ContentComponent = nextProps => {
+ const { selectedData: selectedData0, hidePrint } = nextProps;
+ const { props, hooksProps } = useContext(myContext);
+ const { partsInfoType, slaveGuidConfig } = props;
+ const { selectedData: selectedData1, contentRef } = hooksProps;
+ const selectedData = selectedData0 || selectedData1;
+ let { sProcessName } = selectedData;
+
+ let bSlave = false;
+ if (commonUtils.isNotEmptyObject(selectedData)) {
+ if (selectedData.iLv === 1) {
+ bSlave = true;
+ sProcessName = selectedData.sProductName;
+ } else if (selectedData.iLv === 2) {
+ bSlave = true;
+ sProcessName = selectedData.sPartsName;
+ }
+ }
+ const commonViewDragableProps = {
+ ...props,
+ hideTabsNav: true,
+ sParamData: [
+ {
+ sParamType: partsInfoType,
+ sParamName: "参数"
+ }
+ ],
+ tableName: "partsInfo",
+ partsInfoData: [selectedData],
+ partsInfoSelectedRowKeys: [selectedData.sId]
+ };
+ /* 从表view */
+ const viewConfig = commonUtils.isNotEmptyObject(slaveGuidConfig)
+ ? slaveGuidConfig.gdsconfigformslave.filter(
+ item =>
+ item.sName !== "" &&
+ item.bControl &&
+ item.sControlName.indexOf("Btn") === -1
+ )
+ : [];
+ // const slaveViewProps = {
+ // ...props,
+ // viewConfigs: viewConfig,
+ // tableConfig: slaveGuidConfig,
+ // iColValueView: 24,
+ // viewRow: selectedData,
+ // tableName: 'slave',
+ // };
+ const controlViewProps = {
+ ...props,
+ viewConfigs: viewConfig,
+ tableConfig: slaveGuidConfig,
+ iColValueView: 24,
+ viewRow: selectedData,
+ tableName: "control"
+ };
+
+ const customToPrint = printWindow => {
+ const printedScrollContainer = contentRef.current;
+ const originScrollContainer = contentRef.current;
+ printedScrollContainer.scrollTop = originScrollContainer.scrollTop;
+ printWindow.contentWindow.print();
+ };
+
+ const reactToPrintFn = useReactToPrint({ contentRef, print: customToPrint });
+ const tabBarExtraContent = !hidePrint
+ ? {
+ right: (
+
+ }
+ onClick={reactToPrintFn}
+ />
+
+ )
+ }
+ : {};
+
+ return (
+ <>
+ {bSlave ? (
+
+ {/*
+ {sProcessName}
+ */}
+
+ }
+ ]}
+ />
+
+ ) : (
+
+ {/*
+ {sProcessName}
+ */}
+
+ }
+ ]}
+ />
+
+ )}
+ >
+ );
+};
+
+export default CommonPartsInfo;
diff --git a/src/components/Common/CommonPartsInfo/index.less b/src/components/Common/CommonPartsInfo/index.less
new file mode 100644
index 0000000..5996686
--- /dev/null
+++ b/src/components/Common/CommonPartsInfo/index.less
@@ -0,0 +1,101 @@
+.commonPartsInfo {
+ width: 100%;
+ height: 65vh;
+ display: flex;
+ background-color: #f9f9f9;
+
+ :global {
+ .leftTree {
+ flex: 0 0 250px;
+ background-color: #f5f5f5;
+
+ .ant-tree {
+ width: 100%;
+ height: 100%;
+ background-color: transparent;
+ overflow: auto;
+ }
+
+ .ant-tree-show-line .ant-tree-switcher {
+ background-color: transparent;
+ }
+ }
+
+ .rightContent {
+ flex: 1;
+ padding-left: 10px;
+
+ @media print {
+ overflow: auto;
+ }
+
+ .ant-divider {
+ margin-top: 0;
+ margin-bottom: 0;
+ color: #000000;
+ display: none;
+
+ &::before,
+ &::after {
+ border-color: rgba(0, 0, 0, 0.2);
+ }
+ }
+
+ >div {
+ height: 100%;
+
+ @media print {
+ height: auto;
+ }
+ }
+
+ .ant-tabs {
+ height: 100%;
+ }
+
+ .ant-tabs-tabpane {
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ overflow-x: hidden;
+
+ .tabPaneComponent {
+
+ >div {
+ overflow-y: hidden !important;
+ }
+ }
+ }
+ }
+ }
+}
+
+.xlyPrintHide {
+ display: block;
+
+ @media print {
+ display: none;
+ }
+}
+
+.xlyPrintShow {
+ display: none;
+
+ @media print {
+ display: block;
+ }
+}
+
+@media print {
+
+ html,
+ body {
+ height: initial !important;
+ overflow: initial !important;
+ -webkit-print-color-adjust: exact;
+ }
+
+ @page {
+ margin: 0mm 10mm 0mm 10mm;
+ }
+}
\ No newline at end of file
diff --git a/src/components/Common/CommonSystemSettingEvent.js b/src/components/Common/CommonSystemSettingEvent.js
new file mode 100644
index 0000000..91b2cec
--- /dev/null
+++ b/src/components/Common/CommonSystemSettingEvent.js
@@ -0,0 +1,304 @@
+/* eslint-disable array-callback-return,no-undef,prefer-destructuring */
+import moment from 'moment';
+import React, { Component } from 'react';
+import { Modal, message } from 'antd';
+import * as commonFunc from './commonFunc';
+import * as commonBusiness from './commonBusiness'; /* 单据业务功能 */
+import * as commonUtils from '../../utils/utils'; /* 通用方法 */
+import commonConfig from '../../utils/config';
+import * as commonServices from '../../services/services';
+
+const { confirm } = Modal;
+
+export default (ChildComponent) => {
+ return class extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ this.form = {};
+ /* 表单对象 */
+ }
+ componentWillReceiveProps(nextProps) {
+ const { formData, currentId } = nextProps;
+ let { masterConfig } = nextProps;
+ if (commonUtils.isEmptyArr(masterConfig) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ masterConfig = formData.filter(item => !item.bGrd)[0];
+ const sysaccountperiodConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysaccountperiod')[0];
+ const sysaccountperiodColumn = commonFunc.getHeaderConfig(sysaccountperiodConfig);
+ const sysbillnosettingsConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillnosettings')[0];
+ const sysbillnosettingsColumn = commonFunc.getHeaderConfig(sysbillnosettingsConfig);
+
+ const syspushMsgConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'sysafteroperationmsg')) ?
+ formData.filter(item => item.bGrd && item.sTbName === 'sysafteroperationmsg')[0] : {};
+ let syspushMsgColumn = [];
+ if (commonUtils.isNotEmptyObject(syspushMsgConfig)) {
+ syspushMsgColumn = commonFunc.getHeaderConfig(syspushMsgConfig);
+ }
+
+ this.handleGetData(masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig);
+ this.props.onSaveState({
+ masterConfig,
+ sysaccountperiodConfig,
+ sysaccountperiodColumn,
+ sysbillnosettingsConfig,
+ sysbillnosettingsColumn,
+ syspushMsgConfig,
+ syspushMsgColumn,
+ sId,
+ pageLoading: false,
+ });
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { masterConfig, masterData } = nextProps;
+ return commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData);
+ }
+ handleGetData = (masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig) => {
+ const { currentId, year } = this.props;
+ const sId = currentId !== undefined ? currentId : '';
+ const condition = {
+ sSqlCondition: {
+ sParentId: masterConfig.sId,
+ },
+ bFilter: [{
+ bFilterName: 'sPeriodId',
+ bFilterValue: commonUtils.isEmpty(year) ? new Date().getFullYear().toString() : year,
+ bFilterCondition: 'like',
+ }],
+ };
+ this.handleGetMasterDataSet({
+ configData: masterConfig, condition: { sId, pageSize: '', pageNum: '' },
+ });
+ this.props.handleGetDataSet({
+ name: 'sysaccountperiod', configData: sysaccountperiodConfig, condition,
+ });
+ this.props.handleGetDataSet({
+ name: 'sysbillnosettings', configData: sysbillnosettingsConfig, condition: { sId, pageSize: '', pageNum: '' },
+ });
+
+ if (commonUtils.isNotEmptyObject(syspushMsgConfig)) {
+ this.props.handleGetDataSet({
+ name: 'syspushMsg', configData: syspushMsgConfig, condition: { sId, pageSize: '', pageNum: '' },
+ });
+ }
+ };
+
+ /* 获取后台数据(数据集) */
+ handleGetMasterDataSet = async (params) => {
+ const { token, sModelsId } = this.props;
+ const {
+ configData, condition,
+ } = params;
+ const configDataId = configData.sId;
+ const dataUrl = `${commonConfig.server_host}syssystem/getSyssystemDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const masterData = {};
+ const returnData = dataReturn.dataset.rows[0].dataSet;
+ await configData.gdsconfigformslave.forEach(async (itemConfig) => {
+ const iIndex = returnData.findIndex(itemData => itemData.sName === itemConfig.sControlName.substring(1));
+ if (iIndex > -1) {
+ masterData[itemConfig.sControlName] = returnData[iIndex].sValue;
+ if (itemConfig.sControlName.substring(0, 1) === 'b') {
+ if (returnData[iIndex].sValue === '0') {
+ masterData[itemConfig.sControlName] = false;
+ } else if (returnData[iIndex].sValue === '1') {
+ masterData[itemConfig.sControlName] = true;
+ }
+ }
+ }
+ });
+ this.props.onSaveState({
+ masterData,
+ syssystemsettingsData: returnData,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ };
+ /* 取消操作 */
+ handleCancel = () => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig,
+ } = this.props;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ confirm({
+ title: '确定要取消',
+ onOk() {
+ onGetDataOk(masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig);
+ onSaveStateOk({ enabled: false });
+ },
+ onCancel() {
+ },
+ });
+ };
+ /** toolbar校验保存 */
+ handleValidateSave = async () => {
+ this.form.validateFields((err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, sysaccountperiodConfig, sysaccountperiodData, sysbillnosettingsConfig, sysbillnosettingsData, syssystemsettingsData, sysbillnosettingsDelData, syspushMsgConfig, syspushMsgData, syspushMsgDelData,
+ } = this.props;
+ const data = [];
+ for (const key of Object.keys(masterData)) {
+ if (key !== 'handleType') {
+ const systemRow = {};
+ systemRow.sValue = masterData[key];
+ if (key.substring(0, 1) === 'b') {
+ if (masterData[key] === true) {
+ systemRow.sValue = '1';
+ } else if (masterData[key] === false) {
+ systemRow.sValue = '0';
+ }
+ } else if (key.substring(0, 1) === 's') {
+ if (commonUtils.isNotEmptyStr(masterData[key])) {
+ systemRow.sValue = masterData[key].toString();
+ }
+ } else if (key.substring(0, 1) === 'd' || key.substring(0, 1) === 'i') {
+ if (commonUtils.isNotEmptyNumber(masterData[key])) {
+ systemRow.sValue = masterData[key].toString();
+ }
+ }
+ const iIndex = syssystemsettingsData.findIndex(item => item.sName === key.substring(1));
+ if (iIndex > -1) {
+ systemRow.handleType = 'update';
+ syssystemsettingsData[iIndex] = { ...syssystemsettingsData[iIndex], ...systemRow };
+ } else {
+ systemRow.sId = commonUtils.createSid();
+ systemRow.sName = key.substring(1);
+ systemRow.handleType = 'add';
+ syssystemsettingsData.push(systemRow);
+ }
+ }
+ }
+ data.push(commonBusiness.mergeData('syssystemsettings', masterConfig.sTbName, syssystemsettingsData));
+ data.push(commonBusiness.mergeData('sysaccountperiod', sysaccountperiodConfig.sTbName, sysaccountperiodData));
+ data.push(commonBusiness.mergeData('sysbillnosettings', sysbillnosettingsConfig.sTbName, sysbillnosettingsData, sysbillnosettingsDelData));
+ if (commonUtils.isNotEmptyObject(syspushMsgConfig)) {
+ data.push(commonBusiness.mergeData('syspushMsg', syspushMsgConfig.sTbName, syspushMsgData, syspushMsgDelData));
+ }
+
+
+ this.handleSaveData({ data, sClientType: '1', sSysLogSrcId: masterData.sId });
+ }
+ });
+ };
+ /** toolbar保存 */
+ handleSaveData = async (params) => {
+ const {
+ token, sModelsId, masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig, masterData,
+ } = this.props;
+ const returnData = await commonBusiness.saveData({ token, value: params, sModelsId });
+ if (commonUtils.isNotEmptyObject(returnData)) {
+ this.props.onSaveState({
+ enabled: false, currentId: masterData.sId, loading: false,
+ });
+ this.handleGetData(masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig);
+ return true;
+ } else {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return false;
+ }
+ };
+ /** 表单回带 */
+ handleForm = (form) => {
+ this.form = form;
+ };
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ const {
+ [`${name}Data`]: tableData, masterData, sModelsType, app,
+ } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (name === 'sysaccountperiod' && (sFieldName === 'tStartDate' || sFieldName === 'tEndDate')) {
+ if (sFieldName === 'tEndDate' || iIndex !== 0) {
+ message.warning('请选择第一条数据的开始日期');
+ return;
+ }
+ tableData[iIndex].tEndDate = moment(changeValue.tStartDate, 'YYYY-MM-DD HH:mm:ss').add(1, 'months').subtract(1, 'days').format('YYYY-MM-DD HH:mm:ss');
+ tableData.forEach((itemData) => {
+ if (itemData.sId !== sId) {
+ const subscript = tableData.indexOf(itemData);
+ itemData.tStartDate = moment(changeValue.tStartDate, 'YYYY-MM-DD HH:mm:ss').add(subscript, 'months').format('YYYY-MM-DD HH:mm:ss');
+ itemData.tEndDate = moment(changeValue.tStartDate, 'YYYY-MM-DD HH:mm:ss').add(subscript + 1, 'months').subtract(1, 'days').format('YYYY-MM-DD HH:mm:ss');
+ itemData.handleType = 'update';
+ }
+ });
+ }
+ const tableDataRow = this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') ? 'Product' : 'Materials';
+ tableData[iIndex] = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, tableDataRow);
+ if (commonUtils.isEmptyStr(tableData[iIndex].handleType)) {
+ tableData[iIndex].handleType = 'update';
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, masterData });
+ };
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig,
+ } = this.props;
+ this.handleGetData(masterConfig, sysaccountperiodConfig, sysbillnosettingsConfig, syspushMsgConfig);
+ this.props.onSaveState({ enabled: true, loading: false });
+ };
+ /** 添加表格空行 */
+ handleTableAdd = (name, isWait) => {
+ /* 从CommonBase获取默认参数 */
+ let { [`${name}Data`]: tableData } = this.props;
+ tableData = commonUtils.isEmptyObject(tableData) ? [] : tableData;
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (name === 'syspushMsg') {
+ if (commonUtils.isEmptyArr(this.props.sysbillnosettingsSelectedRowKeys)) {
+ message.error('请选择数据行!');
+ return;
+ } else {
+ tableDataRow.sParentId = this.props.sysbillnosettingsSelectedRowKeys[0];
+ }
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ }
+ };
+ handleTreeSelect = (name, selectedKeys, e) => {
+ const { treeNode } = e.node.props;
+ this.props.onTreeSelect(name, selectedKeys, e);
+ this.props.onSaveState({ selectedId: treeNode.sId, selectedName: treeNode.sName });
+ };
+ render() {
+ return (
+
+ );
+ }
+ };
+};
diff --git a/src/components/Common/CommonTableNew/index.css b/src/components/Common/CommonTableNew/index.css
new file mode 100644
index 0000000..69ba653
--- /dev/null
+++ b/src/components/Common/CommonTableNew/index.css
@@ -0,0 +1,4 @@
+.tableNew {
+ width: 100%;
+ height: 100%;
+}
diff --git a/src/components/Common/CommonTableNew/index.less b/src/components/Common/CommonTableNew/index.less
index b5beeb7..7f73f92 100644
--- a/src/components/Common/CommonTableNew/index.less
+++ b/src/components/Common/CommonTableNew/index.less
@@ -1,5 +1,5 @@
.tableNew {
- border: 1px solid red;
+ // border: 1px solid red;
width: 100%;
height: 100%;
-}
\ No newline at end of file
+}
diff --git a/src/components/Common/CommonTableNew/index.tsx b/src/components/Common/CommonTableNew/index.tsx
index 1a27e62..b8ce873 100644
--- a/src/components/Common/CommonTableNew/index.tsx
+++ b/src/components/Common/CommonTableNew/index.tsx
@@ -1,10 +1,10 @@
-import React from 'react';
+import React, { useState } from 'react';
import { Table } from 'antd';
-import type { TableProps } from 'antd';
+import type { TableColumnsType, TableProps } from 'antd';
import * as commonUtils from '@/utils/utils';
import style from './index.less';
-
+type TableRowSelection = TableProps['rowSelection'];
interface PropsType {
data: TableProps['dataSource'];
@@ -18,12 +18,22 @@ const TableNew: React.FC = (props) => {
scroll: {
// x: 'max-content',
y: '100%',
- }
+ },
};
+ const [selectedRowKeys, setSelectedRowKeys] = useState([]);
+ const onSelectChange = (newSelectedRowKeys: React.Key[]) => {
+ console.log('selectedRowKeys changed: ', newSelectedRowKeys);
+ setSelectedRowKeys(newSelectedRowKeys);
+ };
+ const rowSelection: TableRowSelection = {
+ selectedRowKeys,
+ onChange: onSelectChange,
+
+ };
return (
-
{...tableProps} />
+ {...tableProps} bordered rowSelection={rowSelection} />
);
};
@@ -32,6 +42,11 @@ const TableNew: React.FC = (props) => {
// 处理数据
const TableData = (props: PropsType): PropsType['data'] => {
const { data = [] } = props;
+ if (data && data.length) {
+ data.forEach((x, i) => {
+ x.key = i
+ })
+ }
return data;
}
diff --git a/src/components/Common/CommonViewFlex/index.js b/src/components/Common/CommonViewFlex/index.js
new file mode 100644
index 0000000..1891d77
--- /dev/null
+++ b/src/components/Common/CommonViewFlex/index.js
@@ -0,0 +1,211 @@
+/* eslint-disable object-curly-newline,prefer-destructuring */
+import React, { Component } from 'react';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col, Form } from 'antd';
+import ShowType from '@/components/Common/CommonComponent';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+
+const FormItem = Form.Item;
+
+export default class CommonViewFlex extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ openNewTabFlag: false,
+ commonFieldPopupVisible: false,
+ commonFieldPopupTbName: 'name',
+ commonFieldPopupShowConfig: {},
+ randomId: commonUtils.createSid(),
+ };
+ }
+
+ componentWillReceiveProps() {
+ if (this.state.openNewTabFlag) {
+ const dom = document.getElementsByClassName(`${this.state.randomId}-CommonListSelectTree`)[0];
+ dom.parentElement.parentElement.style.display = 'block';
+ this.setState({
+ openNewTabFlag: false,
+ });
+ }
+ }
+
+ // shouldComponentUpdate(nextProps) {
+ // const { masterData, expandView, enabled } = this.props;
+ // return masterData !== nextProps.masterData || expandView !== nextProps.expandView || enabled !== nextProps.enabled;
+ // }
+ onOpenNewTab = () => {
+ const dom = document.getElementsByClassName(`${this.state.randomId}-CommonListSelectTree`)[0];
+ dom.parentElement.parentElement.style.display = 'none';
+ this.setState({
+ openNewTabFlag: true,
+ });
+ };
+ handleToggle = () => {
+ const { expandView } = this.props;
+ this.props.onSaveState({ expandView: !expandView });
+ };
+ handleViewClick = (name, sName, sId) => {
+ this.props.onViewClick(name, sName, sId);
+ };
+ /* 字段弹窗 */
+ handleFieldPopupModal= (showConfig, name) => {
+ this.setState({
+ commonFieldPopupVisible: true,
+ commonFieldPopupTbName: name,
+ commonFieldPopupShowConfig: showConfig,
+ });
+ }
+ handleSelectCommonFieldPopup = (name, selectConfig, selectData) => {
+ const { commonFieldPopupTbName, commonFieldPopupShowConfig } = this.state;
+ this.props.onSelectCommonPopup(name, selectConfig, selectData, commonFieldPopupTbName, commonFieldPopupShowConfig);
+ };
+ handleSelectCancel = (modelVisible) => {
+ this.setState({
+ [modelVisible]: false,
+ });
+ };
+
+ render() {
+ const { sModelsId, enabled, sUseInfo, app, sModelsType, tableConfigType, isEnabledPlcNo } = this.props;
+ const { commonFieldPopupVisible, randomId } = this.state;
+ let { masterData } = this.props;
+ const masterConfig = this.props.masterconfig ? this.props.masterconfig : this.props.masterConfig;
+ masterData = masterData === undefined ? {} : masterData;
+ let masterShowConfig = [];
+ if (tableConfigType) {
+ masterShowConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.sControlName.split('_')[1] === tableConfigType) : [];
+ } else {
+ masterShowConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.sControlName.indexOf('_') === -1) : [];
+ }
+ const formItemLayout = { labelCol: { span: 2 }, wrapperCol: { span: 22 } };
+
+ /* 字段弹窗功能 */
+ let commonFieldPopupProps = {};
+ let commonFieldPopupTitle = '选择弹窗';
+ if (commonUtils.isNotEmptyObject(this.props)) {
+ let commonFieldPopupConfig = {};
+ const { masterConfig, sModelsId } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => commonUtils.isNotEmptyObject(item.sName) && item.sDropDownType === 'popup');
+ if (iIndex > -1) {
+ commonFieldPopupConfig = masterConfig.gdsconfigformslave[iIndex];
+ commonFieldPopupTitle = commonUtils.isNotEmptyObject(commonFieldPopupConfig) && commonUtils.isNotEmptyObject(commonFieldPopupConfig.sActiveName) ? commonFieldPopupConfig.sActiveName : commonFieldPopupTitle;
+ commonFieldPopupProps = {
+ app: {
+ ...this.props.app,
+ currentPane: {
+ name: 'commonPopup',
+ config: commonFieldPopupConfig,
+ conditonValues: this.props.getSqlCondition(commonFieldPopupConfig),
+ title: commonFieldPopupTitle,
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: commonFieldPopupConfig.sActiveId,
+ key: sModelsId + commonFieldPopupConfig.sId,
+ sModelsType: 'search/commonPopup',
+ select: this.handleSelectCommonFieldPopup,
+ selectCancel: this.handleSelectCancel.bind(this, 'commonFieldPopupVisible'),
+ },
+ },
+ dispatch: this.props.dispatch,
+ content: this.props.content,
+ id: randomId,
+ onOpenNewTab: this.onOpenNewTab,
+ outerMasterData: this.props.masterData,
+ realizeHeight: this.props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+ }
+ }
+
+ return (
+
+
+ {
+ masterShowConfig.map((child) => {
+ const iRowNum = child.iColValue === 1 ? 6 : 1; /* 1个字段占的网格个数 ,网格总个数是24 */
+ const sMemo = child.sName.toLowerCase().endsWith('memo');
+ // const iColValue = sMemo ? 21 : child.iColValue * 6; /* 跨度 */
+ const iColValue = sMemo ? 24 : child.iColValue * iRowNum; /* 跨度 */ /* 产品部要求 备注设置成一行到底 */
+ const iOrder = sMemo ? 100 : child.iOrder > 100 ? 100 : child.iOrder; /* 排序 */
+ const sFormulaMemo = child.sName.toString() === 'sFormulaMemo' ? 'none' : 'block';
+ // sUseInfo是指被其他单据调用,或者被审核
+ let enabledNew = (enabled && !child.bReadonly && !child.specialControl && commonUtils.isEmpty(sUseInfo));
+ if (child.iTag === 1) {
+ enabledNew = false;
+ } else if (child.iTag === 3) {
+ enabledNew = true;
+ }
+ // 设备信息页面修改MES系统PLC编号,控制是否输入
+ if (sModelsType === 'element/machineInfo' && child.sName === 'iPlcNo') {
+ enabledNew = isEnabledPlcNo;
+ }
+ const showTypeProps = {
+ app,
+ iColValue,
+ record: masterData,
+ name: 'master',
+ form: this.props.form,
+ formId: sModelsId,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ getDateFormat: this.props.getDateFormat,
+ onChange: this.props.onChange,
+ showConfig: child,
+ formItemLayout: sMemo ? formItemLayout : {},
+ textArea: sMemo,
+ enabled: enabledNew,
+ dataValue: masterData[child.sName],
+ bTable: false,
+ onFilterDropDownData: this.props.onFilterDropDownData,
+ onViewClick: this.handleViewClick,
+ onSaveState: this.props.onSaveState,
+ onFieldPopupModal: this.handleFieldPopupModal, /* 字段选择弹窗 */
+ };
+ return (
+
+
+ {masterData !== undefined && commonUtils.isEmptyObject(masterData[child.sName]) &&
+ (
+ [
+ 'sBillNo',
+ 'sMakePerson',
+ 'tCheckDate',
+ 'sCheckPerson',
+ 'sUpdatePerson',
+ 'tUpdate',
+ 'tMakeDate',
+ ].includes(child.sName)
+ ) ?
+
+ {sModelsType !== 'smg/sendMailMsg' ? '保存后自动生成' : '发送消息无需生成单据号'}
+ : '' }
+
+ );
+ })
+ }
+
+ {
+ commonFieldPopupVisible ?
+
+
+
+ : ''
+ }
+
+ );
+ }
+}
diff --git a/src/components/Common/CommonViewFlex/index.less b/src/components/Common/CommonViewFlex/index.less
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/components/Common/CommonViewFlex/index.less
diff --git a/src/components/Common/Flows/CommonFlow.js b/src/components/Common/Flows/CommonFlow.js
new file mode 100644
index 0000000..0cdadc2
--- /dev/null
+++ b/src/components/Common/Flows/CommonFlow.js
@@ -0,0 +1,158 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring,no-await-in-loop,radix,,no-loop-func */
+import React, { useState, useCallback, useNodes } from 'react';
+import { Button, Modal, Input } from 'antd';
+import ReactFlow, {
+ addEdge,
+ MiniMap,
+ Controls,
+ Background,
+ useNodesState,
+ useEdgesState,
+} from 'react-flow-renderer';
+import * as commonutils from '../../../utils/utils'
+import './flows.less'
+import { MarkerType } from 'react-flow-renderer';
+import { connect } from "dva"
+const getNodeId = () => `randomnode_${+new Date()}`;
+const OverviewFlow = (props) => {
+ const { flowData} = props;
+ let initialNodes =[];
+ let initialEdges =[];
+ if(commonutils.isNotEmptyObject(flowData)) {
+ initialNodes = flowData.initialNodes;
+ initialEdges = flowData.initialEdges;
+ if (commonutils.isNotEmptyArr(initialNodes)) {
+ initialNodes.forEach((item) =>{
+ const labelObj= (
+
+ )
+ if(!(commonutils.isNotEmptyObject(item) && commonutils.isNotEmptyObject(item.data) && commonutils.isNotEmptyObject(item.data.label) &&
+ commonutils.isNotEmptyObject(item.data.label.props) && item.data.label.props.dangerouslySetInnerHTML)) {
+ item.data.label= labelObj;
+ }
+ });
+ }
+ if (commonutils.isNotEmptyArr(initialEdges)) {
+ initialEdges.forEach((item) => {
+ if (commonutils.isNotEmptyStr(item.markerEnd)) {
+ const markerObj = {
+ type: MarkerType.ArrowClosed,
+ }
+ item.markerEnd = markerObj
+ }
+ })
+ }
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
+ const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);
+ const [rfInstance, setRfInstance] = useState(null);
+ const [label, setlabel, onsetlabelChange] = useState('');
+ const [value, setvalue, onsetvalueChange] = useState('')
+ const [flowColor, setflowColor, onsetflowColor] = useState('')
+ const [flowdata, delflowdata, ondelflowdata] = useState({})
+ const [isModalVisible, setIsModalVisible] = useState(false);
+ const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), [setEdges]);
+ const onAdd = (e) => { //添加部件
+ setvalue('')
+ setIsModalVisible(true);
+ if (e.currentTarget.id === 'AddSole') {
+ setflowColor('#f7b501')
+ } else if (e.currentTarget.id === 'AddPortalBundle') {
+ setflowColor('#fe7e83')
+ } else if (e.currentTarget.id === 'AddClaim') {
+ setflowColor('#00ff41')
+ }
+ };
+ const handleOk = () => {
+ setIsModalVisible(false);
+ const newNode = {
+ id: getNodeId(),
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ type: 'step',
+ data: { label: label },
+ style: {
+ background: flowColor,
+ width: '150px',
+ height: '80px',
+ fontWeight: 700,
+ },
+ position: {
+ x: Math.random() * window.innerWidth - 100,
+ y: Math.random() * window.innerHeight,
+ },
+ };
+ setNodes((nds) => nds.concat(newNode));
+ };
+ const handleCancel = () => {
+ setIsModalVisible(false);
+ };
+ const onSave = useCallback(() => { //保存部件
+ if (rfInstance) {
+ const flow = rfInstance.toObject();
+ localStorage.setItem(flow, JSON.stringify(flow));
+ }
+ }, [rfInstance]);
+ const handleChangeValue = useCallback((e) => {
+ setvalue(e.target.value)
+ setlabel(e.target.value)
+ })
+ const onNodeClick = (e, node) => {
+ // delflowdata(node);
+ }
+ const onDel = () => { //删除部件
+ let newnodes = nodes.filter(item => item.id !== flowdata.id)
+ setNodes(newnodes)
+ }
+ const onMadl = () => {
+ alert('二期项目')
+ }
+ return (
+ onNodeClick(e, node)}
+ >
+
+
+
+
+
+
+
+
+
+
+ handleChangeValue(e)} value={value} />
+
+ {
+ if (n.style?.background) return n.style.background;
+ if (n.type === 'input') return '#0041d0';
+ if (n.type === 'output') return '#ff0072';
+ if (n.type === 'default') return '#1a192b';
+ return '#eee';
+ }}
+ nodeColor={(n) => {
+ if (n.style?.background) return n.style.background;
+ return '#fff';
+ }}
+ nodeBorderRadius={2}
+ />
+
+
+
+ );
+};
+export default connect()(OverviewFlow)
+// export default () => (
+//
+//
+//
+// );
diff --git a/src/components/Common/Flows/OverviewFlow.js b/src/components/Common/Flows/OverviewFlow.js
new file mode 100644
index 0000000..06782f8
--- /dev/null
+++ b/src/components/Common/Flows/OverviewFlow.js
@@ -0,0 +1,181 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring,no-await-in-loop,radix,,no-loop-func */
+import React, { useState, useCallback, useNodes } from 'react';
+import { Button, Modal, Input } from 'antd';
+import ReactFlow, {
+ addEdge,
+ MiniMap,
+ Controls,
+ Background,
+ useNodesState,
+ useEdgesState,
+} from 'react-flow-renderer';
+import * as commonutils from '../../../utils/utils'
+import './flows.less'
+import { MarkerType } from 'react-flow-renderer';
+import { connect } from "dva"
+import { set } from 'lodash';
+const getNodeId = () => `randomnode_${+new Date()}`;
+const OverviewFlow = (props) => {
+ console.log('porps',props);
+ const flowDataStr = localStorage.getItem('flow');
+ const flowData = commonutils.isNotEmptyObject(flowDataStr) ? JSON.parse(flowDataStr) : [];
+ // const { flowData} = props;
+ let initialNodes =[];
+ let initialEdges =[];
+ if(commonutils.isNotEmptyObject(flowData)) {
+ initialNodes = flowData.initialNodes;
+ initialEdges = flowData.initialEdges;
+ if (commonutils.isNotEmptyArr(initialNodes)) {
+ initialNodes.forEach((item) =>{
+ const labelObj= (
+ {item.data.label1}
{item.data.label2}
+ )
+ item.data.label= labelObj;
+ });
+ }
+ if (commonutils.isNotEmptyArr(initialEdges)) {
+ initialEdges.forEach((item) => {
+ if (commonutils.isNotEmptyStr(item.markerEnd)) {
+ const markerObj = {
+ type: MarkerType.ArrowClosed,
+ }
+ item.markerEnd = markerObj
+ }
+ })
+ }
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
+ const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);
+ const [rfInstance, setRfInstance] = useState(null);
+ const [label, setlabel, onsetlabelChange] = useState('');
+ const [value, setvalue, onsetvalueChange] = useState('')
+ const [flowColor, setflowColor, onsetflowColor] = useState('')
+ const [flowdata, delflowdata, ondelflowdata] = useState({})
+ const [isModalVisible, setIsModalVisible] = useState(false);
+ const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), [setEdges]);
+ const onAdd = (e) => { //添加部件
+ setvalue('')
+ setIsModalVisible(true);
+ if (e.currentTarget.id === 'AddSole') {
+ setflowColor('yellow')
+ } else if (e.currentTarget.id === 'AddPortalBundle') {
+ setflowColor('#fe7e83')
+ } else if (e.currentTarget.id === 'AddClaim') {
+ setflowColor('#00ff41')
+ }
+ };
+ const handleOk = () => {
+ setIsModalVisible(false);
+ const newNode = {
+ id: getNodeId(),
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ type: 'step',
+ data: { label: label },
+ style: {
+ background: flowColor,
+ width: 180,
+ },
+ position: {
+ x: Math.random() * window.innerWidth - 100,
+ y: Math.random() * window.innerHeight,
+ },
+ };
+ setNodes((nds) => nds.concat(newNode));
+ };
+ const handleCancel = () => {
+ setIsModalVisible(false);
+ };
+ const onSave = useCallback(() => { //保存部件
+ if (rfInstance) {
+ const flow = rfInstance.toObject();
+ localStorage.setItem(flow, JSON.stringify(flow));
+ }
+ }, [rfInstance]);
+ const handleChangeValue = useCallback((e) => {
+ setvalue(e.target.value)
+ setlabel(e.target.value)
+ })
+ const onNodeClick = (e, node) => {
+ delflowdata(node)
+ }
+ const onDel = () => { //删除部件
+ let newnodes = nodes.filter(item => item.id !== flowdata.id)
+ setNodes(newnodes)
+ }
+ const onMadl = () => {
+ alert('二期项目')
+ }
+ // const abc = () => {
+ // let aa = document.querySelector('#aa').value
+ // let bb = document.querySelector('#bb').value
+ // let aaa = JSON.parse(aa)
+ // let bbb = JSON.parse(bb)
+ // aaa.forEach =((item) => {
+ // const labelObj= (
+ // {item.data.label1}
{item.data.label2}
+ // )
+ // item.data.label= labelObj;
+ // })
+ // bbb.forEach = ((item) => {
+ // const markerObj = {
+ // type: MarkerType.ArrowClosed,
+ // }
+ // item.markerEnd = markerObj
+ // })
+
+ // setNodes(aaa)
+ // setEdges(bb)
+ // }
+ return (
+ onNodeClick(e, node)}
+ >
+
+ {/*
+
+ */}
+
+
+
+
+
+
+
+
+
+ handleChangeValue(e)} value={value} />
+
+ {
+ if (n.style?.background) return n.style.background;
+ if (n.type === 'input') return '#0041d0';
+ if (n.type === 'output') return '#ff0072';
+ if (n.type === 'default') return '#1a192b';
+ return '#eee';
+ }}
+ nodeColor={(n) => {
+ if (n.style?.background) return n.style.background;
+ return '#fff';
+ }}
+ nodeBorderRadius={2}
+ />
+
+
+
+ );
+};
+export default connect()(OverviewFlow)
+// export default () => (
+//
+//
+//
+// );
\ No newline at end of file
diff --git a/src/components/Common/Flows/flows.less b/src/components/Common/Flows/flows.less
new file mode 100644
index 0000000..cc63eac
--- /dev/null
+++ b/src/components/Common/Flows/flows.less
@@ -0,0 +1,76 @@
+:global {
+ .react-flow__node:last-child {
+ color: #000 !important;
+}
+ .react-flow {
+ width: 94% !important;
+ // display: flex;
+ // flex-direction: row;
+ // position: relative;
+
+ }
+
+ .save__controls {
+ width: 4%;
+ position: fixed;
+ right: 30px;
+ top: 0;
+ z-index: 100;
+ font-size: 12px;
+ display: flex;
+ flex-flow: column;
+ flex-wrap: wrap;
+ flex-direction: column;
+ align-items: flex-end;
+ }
+
+ .save__controls button {
+ margin-top: 10px;
+ width: 70px;
+ height: 55px;
+ font-weight: 700;
+ }
+
+ #AddSole {
+ background-color: #f7b501;
+ }
+
+ #AddPortalBundle {
+ background-color: #fe7e83;
+ }
+
+ #AddClaim {
+ background-color: #6dd401;
+
+ }
+
+ #Err {
+ background-color: #ef6400;
+
+ span {
+ white-space: normal !important;
+ }
+ }
+
+ #Generate {
+ span {
+ white-space: normal !important;
+ }
+ }
+
+ .react-flow__minimap-mask {
+ display: none;
+ }
+
+ .react-flow__minimap {
+ display: none;
+ }
+
+ // .ant-modal-footer {
+ // display: none;
+ // }
+ .react-flow__attribution {
+ display: none !important;
+ z-index: 0 !important;
+ }
+}
diff --git a/src/components/Common/Flows/initial-elements-X.js b/src/components/Common/Flows/initial-elements-X.js
new file mode 100644
index 0000000..139f004
--- /dev/null
+++ b/src/components/Common/Flows/initial-elements-X.js
@@ -0,0 +1,478 @@
+// import React from 'react';
+// import { MarkerType } from 'react-flow-renderer';
+
+export const nodes = [
+ {
+ id: '1',
+ sourcePosition: 'right',
+ type: 'input',
+ data: {
+ label: '部件名称',
+ },
+ position: { x: 0, y: 0 },
+ },
+ {
+ id: '2',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: {
+ label: '地盒+折板+拉卡+公仔+盖板+皮壳+内围条+圆饼',
+ },
+ position: { x: 200, y: 100 },
+ },
+ {
+ id: '3',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: {
+ label: '金卡纸',
+ },
+ position: { x: 200, y: -100 },
+ style: {
+ background: '#D6D5E6',
+ color: '#333',
+ border: '1px solid #222138',
+ width: 180,
+ },
+ },
+ {
+ id: '4',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ position: { x: 200, y: 0 },
+ data: {
+ label: '垫片',
+ },
+ },
+ {
+ id: '5',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: {
+ label: '地盒+折板+拉卡+公仔+盖板+皮壳+内围条',
+ },
+ position: { x: 400, y: 200 },
+ },
+ {
+ id: '6',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: {
+ label: '圆饼',
+ },
+ position: { x: 400, y: 100 },
+ },
+ {
+ id: '7',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '圆饼面纸' },
+ position: { x: 600, y: 0 },
+ },
+ {
+ id: '8',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '圆饼灰板' },
+ position: { x: 600, y: 100 },
+ },
+ {
+ id: '9',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '地盒+折板+拉卡+公仔+盖板+皮壳' },
+ position: { x: 600, y: 300 },
+ },
+ {
+ id: '10',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '内围条' },
+ position: { x: 600, y: 200 },
+ },
+ {
+ id: '11',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '内围面纸' },
+ position: { x: 800, y: 200 },
+ },
+ {
+ id: '12',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '内围灰板' },
+ position: { x: 800, y: 100 },
+ },
+ {
+ id: '13',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '地盒+折板+拉卡+公仔+盖板' },
+ position: { x: 800, y: 300 },
+ },
+ {
+ id: '14',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '皮壳' },
+ position: { x: 800, y: 400 },
+ },
+ {
+ id: '15',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '皮壳面纸' },
+ position: { x: 1000, y: 400 },
+ },
+ {
+ id: '16',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '皮壳衬纸' },
+ position: { x: 1000, y: 500 },
+ },
+ {
+ id: '17',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '皮壳灰板' },
+ position: { x: 1000, y: 600 },
+ },
+ {
+ id: '18',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '折板+拉卡+公仔+盖板' },
+ position: { x: 1000, y: 300 },
+ },
+ {
+ id: '19',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '地盒' },
+ position: { x: 1000, y: 200 },
+ },
+ {
+ id: '20',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '地盒灰板' },
+ position: { x: 1200, y: 100 },
+ },
+ {
+ id: '21',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '地盒面纸' },
+ position: { x: 1200, y: 200 },
+ },
+ {
+ id: '22',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '折板+拉卡+公仔' },
+ position: { x: 1200, y: 400 },
+ },
+ {
+ id: '23',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '盖板' },
+ position: { x: 1200, y: 300 },
+ },
+ {
+ id: '24',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '盖板面纸' },
+ position: { x: 1400, y: 300 },
+ },
+ {
+ id: '25',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '盖板灰板' },
+ position: { x: 1400, y: 200 },
+ },
+ {
+ id: '26',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '拉卡+公仔' },
+ position: { x: 1400, y: 400 },
+ },
+ {
+ id: '27',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '折板' },
+ position: { x: 1400, y: 500 },
+ },
+ {
+ id: '28',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '折板面纸' },
+ position: { x: 1600, y: 500 },
+ },
+ {
+ id: '29',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '折板底纸' },
+ position: { x: 1600, y: 600 },
+ },
+ {
+ id: '30',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '折板衬纸' },
+ position: { x: 1600, y: 700 },
+ },
+ {
+ id: '31',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '公仔' },
+ position: { x: 1600, y: 300 },
+ },
+ {
+ id: '32',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '拉卡' },
+ position: { x: 1600, y: 400 },
+ },
+ {
+ id: '33',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '拉卡面纸' },
+ position: { x: 1800, y: 400 },
+ },
+ {
+ id: '34',
+ sourcePosition: 'right',
+ targetPosition: 'left',
+ data: { label: '加强卡' },
+ position: { x: 1800, y: 500 },
+ },
+];
+export const edges = [
+ { id: 'e1-2', source: '1', target: '2' },
+ { id: 'e1-3', source: '1', target: '3' },
+ { id: 'e1-3', source: '1', target: '4' },
+ {
+ id: 'e2-1',
+ source: '2',
+ target: '5',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e2-1',
+ source: '2',
+ target: '6',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e6-7',
+ source: '6',
+ target: '7',
+ type: 'step',
+ style: { stroke: '#f6ab6c' },
+ animated: true,
+ },
+ {
+ id: 'e6-8',
+ source: '6',
+ target: '8',
+ type: 'step',
+ style: { stroke: '#f6ab6c' },
+ animated: true,
+ },
+ {
+ id: 'e5-9',
+ source: '5',
+ target: '9',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e9-13',
+ source: '9',
+ target: '13',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e13-18',
+ source: '13',
+ target: '18',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e18-22',
+ source: '18',
+ target: '22',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e22-26',
+ source: '22',
+ target: '26',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e26-31',
+ source: '26',
+ target: '31',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e26-32',
+ source: '26',
+ target: '32',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e32-33',
+ source: '32',
+ target: '33',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e32-34',
+ source: '32',
+ target: '34',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e22-27',
+ source: '22',
+ target: '27',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e27-28',
+ source: '27',
+ target: '28',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e27-29',
+ source: '27',
+ target: '29',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e27-30',
+ source: '27',
+ target: '30',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e18-23',
+ source: '18',
+ target: '23',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e23-24',
+ source: '23',
+ target: '24',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e23-25',
+ source: '23',
+ target: '25',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e13-19',
+ source: '13',
+ target: '19',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e19-20',
+ source: '19',
+ target: '20',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e19-21',
+ source: '19',
+ target: '21',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e9-14',
+ source: '9',
+ target: '14',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e14-15',
+ source: '14',
+ target: '15',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e14-16',
+ source: '14',
+ target: '16',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e14-17',
+ source: '14',
+ target: '17',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e5-10',
+ source: '5',
+ target: '10',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e10-11',
+ source: '10',
+ target: '11',
+ type: 'step',
+ animated: true,
+ },
+ {
+ id: 'e10-12',
+ source: '10',
+ target: '12',
+ type: 'step',
+ animated: true,
+ },
+];
diff --git a/src/components/Common/Flows/initial-elements-Y.js b/src/components/Common/Flows/initial-elements-Y.js
new file mode 100644
index 0000000..0a6eaf0
--- /dev/null
+++ b/src/components/Common/Flows/initial-elements-Y.js
@@ -0,0 +1,420 @@
+// import React from 'react';
+// import { MarkerType } from 'react-flow-renderer';
+
+export const nodes = [
+ {
+ id: '1',
+ type: 'input',
+ data: {
+ label: '部件名称',
+ },
+ position: { x: 0, y: 0 },
+ },
+ {
+ id: '2',
+ data: {
+ label: '地盒+折板+拉卡+公仔+盖板+皮壳+内围条+圆饼',
+ },
+ position: { x: 0, y: 100 },
+ },
+ {
+ id: '3',
+ data: {
+ label: '金卡纸',
+ },
+ position: { x: 200, y: 100 },
+ style: {
+ background: '#D6D5E6',
+ color: '#333',
+ border: '1px solid #222138',
+ width: 180,
+ },
+ },
+ {
+ id: '4',
+ position: { x: -200, y: 100 },
+ data: {
+ label: '垫片',
+ },
+ },
+ {
+ id: '5',
+ data: {
+ label: '地盒+折板+拉卡+公仔+盖板+皮壳+内围条',
+ },
+ position: { x: 100, y: 250 },
+ },
+ {
+ id: '6',
+ data: {
+ label: '圆饼',
+ },
+ position: { x: -100, y: 250 },
+ },
+ {
+ id: '7',
+ data: { label: '圆饼面纸' },
+ position: { x: -300, y: 350 },
+ },
+ {
+ id: '8',
+ data: { label: '圆饼灰板' },
+ position: { x: -100, y: 350 },
+ },
+ {
+ id: '9',
+ data: { label: '地盒+折板+拉卡+公仔+盖板+皮壳' },
+ position: { x: 300, y: 350 },
+ },
+ {
+ id: '10',
+ data: { label: '内围条' },
+ position: { x: 100, y: 350 },
+ },
+ {
+ id: '11',
+ data: { label: '内围面纸' },
+ position: { x: -100, y: 450 },
+ },
+ {
+ id: '12',
+ data: { label: '内围灰板' },
+ position: { x: 100, y: 450 },
+ },
+ {
+ id: '13',
+ data: { label: '地盒+折板+拉卡+公仔+盖板' },
+ position: { x: 500, y: 450 },
+ },
+ {
+ id: '14',
+ data: { label: '皮壳' },
+ position: { x: 300, y: 450 },
+ },
+ {
+ id: '15',
+ data: { label: '皮壳面纸' },
+ position: { x: 300, y: 550 },
+ },
+ {
+ id: '16',
+ data: { label: '皮壳衬纸' },
+ position: { x: 100, y: 550 },
+ },
+ {
+ id: '17',
+ data: { label: '皮壳灰板' },
+ position: { x: -100, y: 550 },
+ },
+ {
+ id: '18',
+ data: { label: '折板+拉卡+公仔+盖板' },
+ position: { x: 700, y: 550 },
+ },
+ {
+ id: '19',
+ data: { label: '地盒' },
+ position: { x: 500, y: 550 },
+ },
+ {
+ id: '20',
+ data: { label: '地盒灰板' },
+ position: { x: 500, y: 650 },
+ },
+ {
+ id: '21',
+ data: { label: '地盒面纸' },
+ position: { x: 300, y: 650 },
+ },
+ {
+ id: '22',
+ data: { label: '折板+拉卡+公仔' },
+ position: { x: 900, y: 650 },
+ },
+ {
+ id: '23',
+ data: { label: '盖板' },
+ position: { x: 700, y: 650 },
+ },
+ {
+ id: '24',
+ data: { label: '盖板面纸' },
+ position: { x: 700, y: 750 },
+ },
+ {
+ id: '25',
+ data: { label: '盖板灰板' },
+ position: { x: 500, y: 750 },
+ },
+ {
+ id: '26',
+ data: { label: '拉卡+公仔' },
+ position: { x: 1100, y: 750 },
+ },
+ {
+ id: '27',
+ data: { label: '折板' },
+ position: { x: 900, y: 750 },
+ },
+ {
+ id: '28',
+ data: { label: '折板面纸' },
+ position: { x: 900, y: 850 },
+ },
+ {
+ id: '29',
+ data: { label: '折板底纸' },
+ position: { x: 700, y: 850 },
+ },
+ {
+ id: '30',
+ data: { label: '折板衬纸' },
+ position: { x: 500, y: 850 },
+ },
+ {
+ id: '31',
+ data: { label: '公仔' },
+ position: { x: 1100, y: 850 },
+ },
+ {
+ id: '32',
+ data: { label: '拉卡' },
+ position: { x: 1300, y: 850 },
+ },
+ {
+ id: '33',
+ data: { label: '拉卡面纸' },
+ position: { x: 1300, y: 950 },
+ },
+ {
+ id: '34',
+ data: { label: '加强卡' },
+ position: { x: 1500, y: 950 },
+ },
+];
+
+export const edges = [
+ {
+ id: 'e1-2', source: '1', target: '2', label: 'this is an edge label',
+ },
+ { id: 'e1-3', source: '1', target: '3' },
+ { id: 'e1-3', source: '1', target: '4' },
+ {
+ id: 'e2-1',
+ source: '2',
+ target: '5',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e2-1',
+ source: '2',
+ target: '6',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e6-7',
+ source: '6',
+ target: '7',
+ type: 'step',
+ style: { stroke: '#f6ab6c' },
+ label: 'a step edge',
+ animated: true,
+ labelStyle: { fill: '#f6ab6c', fontWeight: 700 },
+ },
+ {
+ id: 'e6-8',
+ source: '6',
+ target: '8',
+ type: 'step',
+ style: { stroke: '#f6ab6c' },
+ label: 'a step edge',
+ animated: true,
+ labelStyle: { fill: '#f6ab6c', fontWeight: 700 },
+ },
+ {
+ id: 'e5-9',
+ source: '5',
+ target: '9',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e9-13',
+ source: '9',
+ target: '13',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e13-18',
+ source: '13',
+ target: '18',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e18-22',
+ source: '18',
+ target: '22',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e22-26',
+ source: '22',
+ target: '26',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e26-31',
+ source: '26',
+ target: '31',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e26-32',
+ source: '26',
+ target: '32',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e32-33',
+ source: '32',
+ target: '33',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e32-34',
+ source: '32',
+ target: '34',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e22-27',
+ source: '22',
+ target: '27',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e27-28',
+ source: '27',
+ target: '28',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e27-29',
+ source: '27',
+ target: '29',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e27-30',
+ source: '27',
+ target: '30',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e18-23',
+ source: '18',
+ target: '23',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e23-24',
+ source: '23',
+ target: '24',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e23-25',
+ source: '23',
+ target: '25',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e13-19',
+ source: '13',
+ target: '19',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e19-20',
+ source: '19',
+ target: '20',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e19-21',
+ source: '19',
+ target: '21',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e9-14',
+ source: '9',
+ target: '14',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e14-15',
+ source: '14',
+ target: '15',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e14-16',
+ source: '14',
+ target: '16',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e14-17',
+ source: '14',
+ target: '17',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e5-10',
+ source: '5',
+ target: '10',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e10-11',
+ source: '10',
+ target: '11',
+ animated: true,
+ label: 'animated edge',
+ },
+ {
+ id: 'e10-12',
+ source: '10',
+ target: '12',
+ animated: true,
+ label: 'animated edge',
+ },
+
+
+];
diff --git a/src/components/Common/Gatte/CommonGatte.js b/src/components/Common/Gatte/CommonGatte.js
new file mode 100644
index 0000000..962da1e
--- /dev/null
+++ b/src/components/Common/Gatte/CommonGatte.js
@@ -0,0 +1,204 @@
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin } from 'antd';
+import CommonListEvent from '../CommonListEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '../commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '../ToolBar/ToolBarNew';
+import styles from '../../../index.less';
+import GanttStyles from './index.less';
+import CommonBase from '../CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '../commonBusiness';/* 单据业务功能 */
+import SearchComponent from '../SearchComponent';/* 搜索组件 */
+import * as commonUtils from '../../../utils/utils';
+// import SlaveMemo from './SlaveMemo';
+import StaticEditTree from '../Tree/StaticTree';
+import Eject from '../../../assets/eject.svg';/* 弹出图标 */
+import Close from '../../../assets/close.svg';
+import Gantt from '../../Charts/Gantt';
+/* 关闭图标 */
+const data = {
+ data: [
+ {
+ id: 1, text: 'Task #1', start_date: '2021-01-20 08:30', end_date: '2021-01-20 12:30', duration: 3, progress: 0.6,
+ },
+ {
+ id: 2, text: 'Task #2', start_date: '2021-01-20 09:30', end_date: '2021-01-20 14:30', duration: 3, progress: 0.4,
+ },
+ ],
+ links: [
+ {
+ id: 1, source: 1, target: 2, type: '0',
+ },
+ ],
+};
+// const zoom = 'Minutes';
+
+const { Header, Content } = Layout;
+class CommonGatte extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ // ----------------------------数据修改回带end ---------------------------- //
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonGatteComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, charGanttData,
+ } = props;
+ // isSmall将分页变小,以及去掉跳转页面和总条数记录
+ /* 回带表单 */
+ if (commonUtils.isNotEmptyObject(slavePagination)) {
+ if (isSmall) {
+ slavePagination.showTotal = null;
+ }
+ }
+ onReturnForm(form);
+ // const pagination = {
+ // pageSize: commonConfig.pageSize,
+ // ...slavePagination,
+ // size: isSmall ? 'small' : 'large',
+ // pageSizeOptions: commonConfig.pageSizeOptions,
+ // showSizeChanger: !isSmall,
+ // showQuickJumper: !isSmall,
+ // };
+ // const tableProps = {
+ // ...commonBusiness.getTableTypes('slave', props),
+ // tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ // onSaveState: props.onSaveState,
+ // clearArray: props.clearArray,
+ // readOnly: true,
+ // isSmall,
+ // sGroupByList: props.sGroupByList,
+ // };
+ let zoom = {};
+ zoom.scale = 'Minutes';
+ zoom.step = '10'; /* 间隔 */
+ if (commonUtils.isNotEmptyObject(charGanttData)) {
+ // eslint-disable-next-line prefer-destructuring
+ zoom = charGanttData.zoom;
+ }
+ const ganttProps = {
+ // ...commonBusiness.getGanttTypes('slave', props),
+ tasks: commonUtils.isNotEmptyObject(charGanttData) ? charGanttData : data, /* 甘特图数据源 */
+ zoom: commonUtils.isNotEmptyObject(zoom) ? zoom : {},
+ onDataUpdated: props.onDataUpdated,
+ slaveConfig,
+ slaveColumn,
+ };
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonGatte));
diff --git a/src/components/Common/Gatte/index.less b/src/components/Common/Gatte/index.less
new file mode 100644
index 0000000..9d228e0
--- /dev/null
+++ b/src/components/Common/Gatte/index.less
@@ -0,0 +1,13 @@
+.ganttList{
+ width: 100vm;
+ padding: 1rem 1rem;
+}
+:global{
+ .gantt_add, .gantt_grid_head_add{
+ display: none;
+ }
+ .gantt_grid_head_cell.gantt_grid_head_add{
+ display: none;
+ }
+}
+
diff --git a/src/components/Common/MaterialRequirementsPlanning.js b/src/components/Common/MaterialRequirementsPlanning.js
new file mode 100644
index 0000000..688d1be
--- /dev/null
+++ b/src/components/Common/MaterialRequirementsPlanning.js
@@ -0,0 +1,259 @@
+/**
+ * @Date: 2019-05-28T13:23:00+08:00
+ * @Last modified time: 2019-05-29T15:33:03+08:00
+ */
+/**
+ * Created by mar105 on 2019-03-27.
+ */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin } from 'antd';
+import CommonListEvent from './CommonListEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from './commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '../Common/ToolBar/ToolBarNew';
+import StaticEditTable from './CommonTable';/* 可编辑表格 */
+import styles from '../../index.less';
+import CommonBase from './CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from './commonBusiness';/* 单据业务功能 */
+import SearchComponent from './SearchComponent';/* 搜索组件 */
+import commonConfig from '../../utils/config';
+import * as commonUtils from '../../utils/utils';/* 通用方法 */
+
+const { Header } = Layout;
+
+class MaterialRequirementsPlanning extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ // ----------------------------数据修改回带end ---------------------------- //
+ /** 处理选择行发生改变 */
+ handleTableFilterData = (name, data, record) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ let slaveInfoDataNew = [];
+ if (commonUtils.isNotEmptyArr(data)) {
+ slaveInfoDataNew = data.filter(item => item.sMaterialsId === record.sMaterialsId && item.sMaterialsStyle === record.sMaterialsStyle);
+ // if (commonUtils.isNotEmptyArr(slaveInfoDataNew)) {
+ // slaveInfoDataNew.forEach((item) => {
+ // item.dAuxiliaryQty = item.dAuxiliaryQtyAll - item.dPurchaseAuxiliaryQty;
+ // });
+ // }
+ }
+ return slaveInfoDataNew;
+ }
+ };
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ const {
+ formRoute, slaveSelectedRowKeys, slaveInfoSelectedRowKeys, slaveInfoData, slaveData: slaveList,
+ } = this.props;
+ const {
+ slaveSelectedData, slaveInfoSelectedData,
+ } = this.props;
+
+ const addState = {};
+ addState[`${name}SelectedRowKeys`] = selectedRowKeys;
+ addState.searchUpDownData = {};
+ let newSlaveSelectedData = [];
+ let newSlaveInfoSelectedData = [];
+ let newSelectedRowKeys = [];
+ const addSelectedRowKeys = [];
+
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ if (name === 'slave') {
+ if (selectedRowKeys.length === 0) {
+ // 主表 取消 ,数量取初始
+ slaveList.forEach((omsRowkey, iIndexSlave) => {
+ slaveList[iIndexSlave].dAuxiliaryQty = omsRowkey.dAuxiliaryQtyAll;
+ slaveList[iIndexSlave].dMaterialsQty = omsRowkey.dMaterialsQtyAll;
+ });
+ addState.slaveData = slaveList;
+ addState.slaveSelectedRowKeys = selectedRowKeys;
+ addState.slaveSelectedData = [];
+ addState.slaveInfoSelectedRowKeys = [];
+ addState.slaveInfoSelectedData = [];
+ } else {
+ const oldMoreSelectRowkeys = slaveSelectedRowKeys.filter(item => !selectedRowKeys.includes(item)); // 历史数据中删除的数据
+ if (commonUtils.isNotEmptyArr(oldMoreSelectRowkeys) && oldMoreSelectRowkeys.length === 1) {
+ // 主表 取消 ,数量取初始
+ const iIndexSlave = slaveList.findIndex(itemSlave => itemSlave.sMaterialsGS === oldMoreSelectRowkeys[0]);
+ slaveList[iIndexSlave].dAuxiliaryQty = slaveList[iIndexSlave].dAuxiliaryQtyAll;
+ slaveList[iIndexSlave].dMaterialsQty = slaveList[iIndexSlave].dMaterialsQtyAll;
+
+ // 根据选择的key 确定主表选择的数据
+ newSlaveSelectedData = slaveSelectedData.filter(item => selectedRowKeys.includes(item.sMaterialsGS));
+
+ // 从表数据也根据 上一次选择的主表key 过滤移除要取消的key 获取新数据(SlaveInfoSelectedData, SelectedRowKeys) 在上次操作的数上进行筛选
+ newSlaveInfoSelectedData = slaveInfoSelectedData.filter(item => selectedRowKeys.includes(item.sMaterialsGS));
+ newSlaveInfoSelectedData.forEach((item) => {
+ newSelectedRowKeys.push(item.sWorkMaterialsId);
+ });
+ addState.slaveData = slaveList;
+ addState.slaveSelectedRowKeys = selectedRowKeys;
+ addState.slaveSelectedData = newSlaveSelectedData;
+ addState.slaveInfoSelectedRowKeys = newSelectedRowKeys;
+ addState.slaveInfoSelectedData = newSlaveInfoSelectedData;
+ } else {
+ // 新增选择
+ const newMoreSelectRowkeys = selectedRowKeys.filter(item => !slaveSelectedRowKeys.includes(item));
+ if (commonUtils.isNotEmptyArr(newMoreSelectRowkeys) && newMoreSelectRowkeys.length === 1) {
+ const iIndexSlave = slaveList.findIndex(itemSlave => itemSlave.sMaterialsGS === newMoreSelectRowkeys[0]);
+ slaveList[iIndexSlave].dAuxiliaryQty = slaveList[iIndexSlave].dAuxiliaryQtyAll;
+ slaveList[iIndexSlave].dMaterialsQty = slaveList[iIndexSlave].dMaterialsQtyAll;
+
+ const addSlaveSelectedData = slaveList.filter(item => newMoreSelectRowkeys[0] === item.sMaterialsGS);
+ newSlaveSelectedData = addSlaveSelectedData.concat(slaveSelectedData);
+
+ const addSlaveInfoSelectedData = slaveInfoData.filter(item => newMoreSelectRowkeys[0] === item.sMaterialsGS);
+ newSlaveInfoSelectedData = addSlaveInfoSelectedData.concat(slaveInfoSelectedData);
+
+ addSlaveInfoSelectedData.forEach((item) => {
+ addSelectedRowKeys.push(item.sWorkMaterialsId);
+ });
+ newSelectedRowKeys = slaveInfoSelectedRowKeys.concat(addSelectedRowKeys);
+ addState.slaveData = slaveList;
+ addState.slaveSelectedRowKeys = selectedRowKeys;
+ addState.slaveSelectedData = newSlaveSelectedData;
+ addState.slaveInfoSelectedRowKeys = newSelectedRowKeys;
+ addState.slaveInfoSelectedData = newSlaveInfoSelectedData;
+ } else if (commonUtils.isNotEmptyArr(newMoreSelectRowkeys) && newMoreSelectRowkeys.length > 1) {
+ const addSlaveSelectedData = slaveList.filter(item => selectedRowKeys.includes(item.sMaterialsGS));
+ // 主表 取消 ,数量取初始
+ addSlaveSelectedData.forEach((omsRowkey) => {
+ const iIndexSlave = slaveList.findIndex(itemSlave => itemSlave.sMaterialsGS === omsRowkey.sMaterialsGS);
+ if (iIndexSlave > -1) {
+ slaveList[iIndexSlave].dAuxiliaryQty = slaveList[iIndexSlave].dAuxiliaryQtyAll;
+ slaveList[iIndexSlave].dMaterialsQty = slaveList[iIndexSlave].dMaterialsQtyAll;
+ }
+ });
+ const addSlaveInfoSelectedData = slaveInfoData.filter(item => selectedRowKeys.includes(item.sMaterialsGS));
+ const newSelectedRowKeys = [];
+ slaveInfoData.forEach((item) => {
+ newSelectedRowKeys.push(item.sWorkMaterialsId);
+ });
+ addState.slaveData = slaveList;
+ addState.slaveSelectedRowKeys = selectedRowKeys;
+ addState.slaveSelectedData = addSlaveSelectedData;
+ addState.slaveInfoSelectedRowKeys = newSelectedRowKeys;
+ addState.slaveInfoSelectedData = addSlaveInfoSelectedData;
+ }
+ }
+ }
+ this.props.onSaveState({ ...addState });
+ } else if (name === 'slaveInfo') {
+ if (selectedRowKeys.length === 0) {
+ slaveList.forEach((omsRowkey, iIndexSlave) => {
+ slaveList[iIndexSlave].dAuxiliaryQty = slaveList[iIndexSlave].dAuxiliaryQtyAll;
+ slaveList[iIndexSlave].dMaterialsQty = slaveList[iIndexSlave].dMaterialsQtyAll;
+ });
+ addState.slaveData = slaveList;
+ addState.slaveSelectedRowKeys = [];
+ addState.slaveSelectedData = [];
+ addState.slaveInfoSelectedRowKeys = [];
+ addState.slaveInfoSelectedData = [];
+ } else {
+ newSlaveInfoSelectedData = slaveInfoData.filter(item => selectedRowKeys.includes(item.sWorkMaterialsId));
+ newSlaveSelectedData = slaveList.filter(item => newSlaveInfoSelectedData.findIndex(newItem => newItem.sMaterialsGS === item.sMaterialsGS) > -1);
+ newSlaveSelectedData.forEach((item) => {
+ newSelectedRowKeys.push(item.sMaterialsGS);
+ const newlist = newSlaveInfoSelectedData.filter(siItem => siItem.sMaterialsGS === item.sMaterialsGS);
+ let dAuxiliaryQty = 0;
+ let dMaterialsQty = 0;
+ newlist.forEach((item) => {
+ dAuxiliaryQty = commonUtils.convertFixNum(item.dAuxiliaryQty + dAuxiliaryQty, 6);
+ dMaterialsQty = commonUtils.convertFixNum(item.dMaterialsQty + dMaterialsQty, 6);
+ });
+ const iIndex = slaveList.findIndex(itemSlave => itemSlave.sMaterialsGS === item.sMaterialsGS);
+ slaveList[iIndex].dAuxiliaryQty = dAuxiliaryQty;
+ slaveList[iIndex].dMaterialsQty = dMaterialsQty;
+ });
+ addState.slaveData = slaveList;
+ addState.slaveSelectedRowKeys = newSelectedRowKeys;
+ addState.slaveSelectedData = newSlaveSelectedData;
+ addState.slaveInfoSelectedRowKeys = selectedRowKeys;
+ addState.slaveInfoSelectedData = newSlaveInfoSelectedData;
+ }
+ }
+ this.props.onSaveState({ ...addState });
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const MaterialRequirementsPlanningComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const { form, onReturnForm, slavePagination } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonConfig.pageSize,
+ ...slavePagination,
+ size: 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: true,
+ showQuickJumper: true,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ onTableFilterData: props.onTableFilterData,
+ tableBelone: 'list',
+ tableProps: { rowKey: 'sMaterialsGS', pagination, onChange: props.onTitleChange },
+ };
+ const tableInfoProps = {
+ ...commonBusiness.getTableTypes('slaveInfo', props),
+ tableProps: { rowKey: 'sWorkMaterialsId', pagination, onChange: props.onTitleChange },
+ tableBelone: 'list',
+ data: commonUtils.isNotEmptyObject(props.slaveInfoDataNew) ? props.slaveInfoDataNew : props.slaveInfoData,
+ };
+ // const mProps = { ...commonBusiness.createMemoProps('master', props) };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(MaterialRequirementsPlanning));
diff --git a/src/components/Common/SearchComponent/index.js b/src/components/Common/SearchComponent/index.js
index 67fdc45..8f0167a 100644
--- a/src/components/Common/SearchComponent/index.js
+++ b/src/components/Common/SearchComponent/index.js
@@ -1,6 +1,6 @@
/* eslint-disable */
import React, { Component } from 'react';
-import { MinusCircleOutlined, PlusOutlined, SettingOutlined } from '@ant-design/icons';
+import { MinusCircleOutlined, PlusOutlined, SettingOutlined ,SearchOutlined,CloseCircleOutlined} from '@ant-design/icons';
import { Form, Icon as LegacyIcon } from '@ant-design/compatible';
import '@ant-design/compatible/assets/index.css';
import { Row, Col, Button, message, Space } from 'antd';
@@ -1443,8 +1443,8 @@ export default class SearchComponent extends Component {
-
-
+
+
{modalVisible && modalCom}
diff --git a/src/components/Common/SlavesInfo.js b/src/components/Common/SlavesInfo.js
new file mode 100644
index 0000000..e993bc2
--- /dev/null
+++ b/src/components/Common/SlavesInfo.js
@@ -0,0 +1,83 @@
+/**
+ * Created by mar105 on 2019-02-13.
+ */
+/* eslint-disable no-undef,import/first,prefer-destructuring,jsx-a11y/alt-text */
+import React, { Component } from 'react';
+import { Input } from 'antd';
+import * as commonUtils from '../../utils/utils';
+import * as commonFunc from './commonFunc'; /* 通用方法 */
+import AntdDraggableModal from '../Common/AntdDraggableModal';
+
+const { TextArea } = Input;
+
+export default class SlavesInfo extends Component {
+ /** 构造函数 */
+ constructor(props) {
+ super(props);
+ // this.handleTextareaChange = this.handleTextareaChange.bind(this);
+ this.state = { textareaValue: '' };
+ this.max = 200;
+ this.min = 0;
+ }
+ componentWillReceiveProps(nextProps) {
+ const { sInfoArr } = nextProps;
+ /* state和this属性赋值 */
+ let textareaValue = '';
+ if (commonUtils.isNotEmptyArr(sInfoArr)) {
+ sInfoArr.forEach((item) => {
+ textareaValue += item.sInfo;
+ });
+ }
+ this.setState({ textareaValue });
+ this.max = commonUtils.convertStrToNumber(commonUtils.isNotEmptyObject(nextProps.sMemoConfig) && commonUtils.isNotEmptyObject(nextProps.sMemoConfig.sMaxValue) ? nextProps.sMemoConfig.sMaxValue : 100); /* 最大值(数据格式:数字) */
+ this.min = commonUtils.convertStrToNumber(commonUtils.isNotEmptyObject(nextProps.sMemoConfig) && commonUtils.isNotEmptyObject(nextProps.sMemoConfig.sMinValue) ? nextProps.sMemoConfig.sMinValue : 0); /* 最小值(数据格式:数字) */
+ }
+ handleOk = () => {
+ this.props.onSaveState({
+ bVisiblesInfo: false,
+ });
+ };
+
+ handleCancel = () => {
+ this.props.onSaveState({
+ bVisiblesInfo: false,
+ });
+ };
+ // /* 设置textareaValue */
+ // handleTextareaChange(e) {
+ // this.setState({
+ // textareaValue: e.target.value,
+ // });
+ // }
+ /** 渲染 */
+ render() {
+ const { bVisiblesInfo, sInfoArr } = this.props;
+ const sInfoTitle = commonFunc.showMessage(this.props.app.commonConst, 'sInfo');/* sInfo信息 */
+ return (
+
+ {
+ bVisiblesInfo ?
+
+
+ {commonUtils.isNotEmptyArr(sInfoArr) ? (
+ ) : null}
+
+
+ : ''
+ }
+
+ );
+ }
+}
diff --git a/src/components/Common/baseChar.js b/src/components/Common/baseChar.js
new file mode 100644
index 0000000..c20cbdb
--- /dev/null
+++ b/src/components/Common/baseChar.js
@@ -0,0 +1,310 @@
+/* eslint-disable object-curly-newline */
+import React, { Component } from 'react';
+import { message } from 'antd';
+import commonConfig from '../../utils/config';
+import * as commonUtils from '../../utils/utils';
+import * as commonServices from '../../services/services';
+
+export default (ChildComponent) => {
+ return class Base extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ pageLoading: true,
+ token: props.app.token,
+ sTabId: this.handleConfigValue(props, 'key'),
+ sModelsId: props.routing ? props.sModelsId : this.handleConfigValue(props, 'formId'), /* 获取配置数据用的modelId */
+ formRoute: props.routing ? props.routing.pathname.replace('/', '') : props.formRoute !== undefined ? props.formRoute : '',
+ formSrcRoute: props.routing ? props.routing.pathname.replace('/', '') : '',
+ // this.handleConfigValue('formId')
+ charConfigAndData: [], /* 总图表配置及数据 */
+ charConfigList: [], /* 配置集 */
+ gdsformconst: [], /* 常量 */
+ charMenu: [], /* 图表右查询菜单 */
+ labelConfigData: [], /* 标签总数据 */
+ };
+ }
+
+ async componentWillMount() {
+ // eslint-disable-next-line no-unused-vars
+ const { token } = this.state;
+ const pathname = commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.location) ? this.props.location.pathname : '';
+ if (pathname === '/commonAuto') {
+ const formObj = await this.handleGetModule(this.props);
+ let sModelsId = '';
+ let sBackgroundImage = '';
+ if (commonUtils.isNotEmptyObject(formObj)) {
+ sModelsId = formObj.formId;
+ sBackgroundImage = formObj.sTitleLogoPath;
+ }
+ this.setState({ sModelsId, sBackgroundImage });
+ }
+ /* 获取配置 */
+ this.handleCharConfig();
+ }
+
+ /* 获取配置数据用的sTabId,formId */
+ handleConfigValue = (props, value) => {
+ const { secondppopupPane, ppopupPane, currentPane, panes } = this.props.app;
+ const { indexCenter } = this.props;
+
+ let data = '';
+ if (indexCenter === 'indexCenter') {
+ const iIndex = panes.findIndex(item => item.route === '/indexPage');
+ if (iIndex > -1) {
+ data = panes[iIndex][value];
+ }
+ } else if (commonUtils.isNotEmptyStr(props.sModelsId)) {
+ data = props.sModelsId;
+ } else {
+ data = commonUtils.isNotEmptyObject(secondppopupPane)
+ ? secondppopupPane[value]
+ : commonUtils.isNotEmptyObject(ppopupPane)
+ ? ppopupPane[value] : currentPane[value];
+ }
+ return data;
+ };
+
+ /* 获取commonAuto大屏sFormId */
+ handleGetModule = async (props) => {
+ const search = commonUtils.isNotEmptyObject(props) ? props.location.search : '';
+ const configUrl = `${commonConfig.server_host}getModleByType${search}`;
+ const { data } = await commonServices.getService('', configUrl);
+ const formObj = {};
+ if (data.code === 1) {
+ formObj.formId = data.dataset.rows[0].sId;
+ formObj.sTitleLogoPath = data.dataset.rows[0].sTitleLogoPath;
+ } else {
+ message.error(data.msg);
+ }
+ return formObj;
+ }
+ /* 获取图表配置 */
+ handleCharConfig = async () => {
+ const { token, sModelsId, formRoute } = this.state;
+ const configUrl = `${commonConfig.server_host}char/getCharConfig/${sModelsId}?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data } = await commonServices.getService(token, configUrl);
+ if (data.code === 1) {
+ const [configData] = data.dataset.rows;
+ if (commonUtils.isNotEmptyArr(configData)) {
+ this.handleGetData(configData);
+ }
+ } else {
+ message.error(data.msg);
+ }
+ };
+
+ /* 获取数据 */
+ handleGetData = (configData, pageNum) => {
+ const { charConfigList } = configData; /* 图标配置集 */
+ // const charConfigAndData = [];
+ const { charConfigAndData, formRoute, formSrcRoute } = this.state;
+ const addState = commonUtils.isEmpty(pageNum) ? {} : { pageNum };
+ const charMenu = [];
+ if (commonUtils.isNotEmptyArr(charConfigList)) {
+ for (const each of charConfigList) {
+ const { sId } = each;
+ const childConfig = commonUtils.isNotEmptyArr(each.childConfig) ? each.childConfig : [];
+ const radioType = commonUtils.isNotEmptyArr(childConfig) ? childConfig[0].sTypeValue : null;
+ charMenu.push({ sId, childConfig, radioType });
+ if (each.sCharType === 'Div' && commonUtils.isEmpty(each.sCharParentId)) { /* 拿到后台顶元素配置的刷新时间 */
+ const dRefreshTime = commonUtils.isNotEmptyNumber(each.dRefreshTime) && each.dRefreshTime !== 0 ? each.dRefreshTime * 1000 : 100000;
+ addState.dRefreshTime = dRefreshTime;
+ }
+ const iIndex = charConfigAndData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ charConfigAndData[iIndex] = { ...each, child: {} };
+ } else {
+ charConfigAndData.push({ ...each, child: {} });
+ }
+ if (each.sCharType === 'commonList' || each.sCharType === 'Div' || each.sCharType === 'sLabel' || each.sCharType === 'Progress') {
+ // this.handleEachChar(each);
+ } else {
+ this.handleEachChar(each);
+ }
+ }
+ /* 通用滚动大屏界面根据存储过程名称获取sLabel所有数据 */
+ if (formRoute === '/commonAuto' || formSrcRoute === '/commonAuto') {
+ const filterData = charConfigList.filter(item => commonUtils.isEmptyObject(item.sCharParentId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ const rootDiv = filterData[0];
+ if (commonUtils.isNotEmptyObject(rootDiv) && rootDiv.sCharType === 'Div') {
+ let proName = 'Sp_title_CommonModel1';
+ proName = rootDiv.sProcedureName;
+ let prodParamsMap = {};
+ if (commonUtils.isNotEmptyObject(rootDiv.prodParamsMap)) {
+ // eslint-disable-next-line prefer-destructuring
+ prodParamsMap = rootDiv.prodParamsMap;
+ }
+ this.handleGetLabelData(proName, prodParamsMap);
+ }
+ }
+ }
+ }
+ this.setState({ ...configData, charMenu, ...addState });
+ };
+
+ handleToFirst = () => {
+ this.setState({ pageNum: 0 });
+ }
+
+ /* 获取单个图表数据 */
+ /*
+ handleEachChar = async (each) => {
+ const { token, sModelsId, charConfigAndData } = this.state;
+ const sSqlCondition = commonUtils.isNotEmptyObject(each.sSqlCondition) ? each.sSqlCondition : {};
+ const value = { sProcedureNo: each.sProcedureNo, sSqlCondition };
+ const url = `${commonConfig.server_host}char/getCharData?sModelsId=${sModelsId}`;
+ const { data } = await commonServices.postValueService(token, value, url);
+ let child = [];
+ if (data.code === 1) {
+ [child] = data.dataset.rows;
+ const index = charConfigAndData.findIndex(item => item.sProcedureNo === each.sProcedureNo);
+ if (index > -1) {
+ charConfigAndData[index].child = child;
+ }
+ } else {
+ message.error(data.msg);
+ }
+ this.setState({ charConfigAndData });
+ };
+ */
+ handleEachChar = async (each) => {
+ const { token, sModelsId, charConfigAndData, formRoute } = this.state;
+ const value = { sProName: each.sProcedureName, paramsMap: each.prodParamsMap };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const { dataset } = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ } else {
+ const xyData = commonUtils.isEmpty(outData.sReturn) ? [] : JSON.parse(outData.sReturn);
+ const index = charConfigAndData.findIndex(item => item.sProcedureName === each.sProcedureName && item.sId === each.sId);
+ if (index > -1) {
+ charConfigAndData[index].child = xyData;
+ }
+ }
+ }
+ } else {
+ message.error(returnData.msg);
+ }
+ this.setState({ charConfigAndData });
+ };
+ handleGetLabelData = async (name, prodParamsMap) => {
+ const { app } = this.props;
+ const { sModelsId } = this.state;
+ let { labelConfigData } = this.state;
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=commonAuto`;
+ const value = {
+ sProName: name,
+ paramsMap: prodParamsMap,
+ };
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ if (commonUtils.isNotEmptyObject(returnData.dataset)) {
+ const labelReturnData = returnData.dataset.rows[0].dataSet.proData;
+ if (commonUtils.isNotEmptyArr(labelReturnData)) {
+ labelConfigData = labelReturnData;
+ }
+ }
+ } else {
+ message.error(returnData.msg);
+ }
+ this.setState({ labelConfigData });
+ };
+ //
+ // /* 获取后台数据(数据集) */
+ // handleGetDataSet = async (params) => {
+ // const {
+ // name, configData, condition, flag, isWait, clearSelectData,
+ // } = params;
+ // const {
+ // token, sModelsId, formRoute, [`${name}SelectedData`]: tableSelectedData,
+ // } = this.state;
+ // let {
+ // [`${name}SelectedRowKeys`]: tableSelectedRowKeys,
+ // } = this.state;
+ // const configDataId = configData.sId;
+ // const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}&sName=${formRoute}`;
+ // const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // if (dataReturn.code === 1) {
+ // const returnData = dataReturn.dataset.rows[0].dataSet;
+ // if (commonUtils.isNotEmptyObject(returnData)) {
+ // if (commonUtils.isEmptyArr(tableSelectedData)) {
+ // if (formRoute !== '/materialRequirementsPlanning' && formRoute !== '/commonClassify') {
+ // if (commonUtils.isNotEmptyStr(returnData[0].sSlaveId)) {
+ // const keys = [];
+ // keys.push(returnData[0].sSlaveId);
+ // tableSelectedRowKeys = keys;
+ // } else {
+ // const keys = [];
+ // keys.push(returnData[0].sId);
+ // tableSelectedRowKeys = keys;
+ // }
+ // }
+ // if (flag) {
+ // tableSelectedRowKeys = [];
+ // }
+ // }
+ // }
+ // if (clearSelectData) {
+ // tableSelectedRowKeys = [];
+ // }
+ // const returnPagination = {
+ // total: dataReturn.dataset.totalCount,
+ // current: dataReturn.dataset.currentPageNo,
+ // };
+ // const { sumSet } = dataReturn.dataset.rows[0];
+ // const totalData = sumSet !== undefined ? sumSet : [];
+ // const filterCondition = commonUtils.isNotEmptyObject(condition) ? condition.bFilter : '';
+ // const orderBy = commonUtils.isNotEmptyObject(condition) ? condition.sFilterOrderBy : '';
+ // /* 去除树搜索filterCondition */
+ // const filterConditionNew = commonUtils.isNotEmptyObject(filterCondition) ? filterCondition.filter(item => item.bFilterType !== 'tree') : '';
+ // let addState = {
+ // [`${name}Data`]: returnData, [`${name}Pagination`]: returnPagination, [`${name}FilterCondition`]: filterConditionNew, [`${name}OrderBy`]: orderBy, [`${name}SelectedRowKeys`]: tableSelectedRowKeys,
+ // };
+ // if (dataReturn.dataset.currentPageNo === 1) {
+ // addState = { ...addState, [`${name}Total`]: totalData };
+ // }
+ // const slaveSelectedData = [];
+ // if ((formRoute === '/commonList' || formRoute === '/materialRequirementsPlanning') && name === 'slave' && commonUtils.isNotEmptyArr(tableSelectedRowKeys) && !clearSelectData) {
+ // tableSelectedRowKeys.forEach((item) => {
+ // const iPageIndex = returnData.findIndex(pageItem => pageItem.sSlaveId === item);
+ // if (iPageIndex > -1) {
+ // slaveSelectedData.push(returnData[iPageIndex]);
+ // } else if (commonUtils.isNotEmptyArr(tableSelectedData)) {
+ // const iIndex = tableSelectedData.findIndex(pageItem => pageItem.sSlaveId === item);
+ // if (iIndex > -1) {
+ // slaveSelectedData.push(tableSelectedData[iIndex]);
+ // }
+ // }
+ // });
+ // }
+ // addState[`${name}SelectedData`] = slaveSelectedData;
+ // if (isWait) {
+ // return addState;
+ // } else if (this.mounted) {
+ // this.setState(addState);
+ // }
+ // } else {
+ // this.getServiceError(dataReturn);
+ // }
+ // };
+
+ render() {
+ return (
+
+ );
+ }
+ };
+};
+
diff --git a/src/components/CommonElementEvent/StatementInfo.js b/src/components/CommonElementEvent/StatementInfo.js
index 65bec51..14d4c58 100644
--- a/src/components/CommonElementEvent/StatementInfo.js
+++ b/src/components/CommonElementEvent/StatementInfo.js
@@ -92,7 +92,7 @@ export default class StatementInfo extends Component {
const { sModelsId, token, formSrcRoute } = this.props;
const dataUrl = `${commonConfig.file_host_ebc}printReport/getReport/${sModelsId}?sModelsId=${sModelsId}&sName=${formSrcRoute}`;
const dataReturn = (await commonServices.getService(token, dataUrl)).data;
- if (dataReturn.code === 1) {
+ if (dataReturn && dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows;
this.props.onSaveState({ reportData: returnData, initialReportData: returnData });
} else { /* 失败 */
diff --git a/src/components/CommonSystemSettingEvent/CommonSystemSetting.js b/src/components/CommonSystemSettingEvent/CommonSystemSetting.js
new file mode 100644
index 0000000..30e644f
--- /dev/null
+++ b/src/components/CommonSystemSettingEvent/CommonSystemSetting.js
@@ -0,0 +1,134 @@
+/* eslint-disable array-callback-return,no-undef */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin, Tabs } from 'antd';
+import styles from '@/index.less';
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+import CommonBase from '@/components/Common/CommonBase';
+import CommonSystemSettingEvent from '@/components/Common/CommonSystemSettingEvent';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import selfStyles from './index.less';
+import TabFinancePeriod from './TabFinancePeriod';
+import TabsSalesBuyer from './TabSalesBuyer';
+import TabFinanceOffer from './TabFinanceOffer';
+import TabSysParam from './TabSysParam';
+
+const { Header, Content } = Layout;
+const { TabPane } = Tabs;
+
+class CommonSystemSetting extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ this.form = {}; /* 表单对象 */
+ }
+
+ handleFilterData = (name, dataIndex, value, record) => {
+ const { sysbillnosettingsSelectedRowKeys, sysbillnosettingsData } = this.props;
+ if (name === 'syspushMsg' && commonUtils.isNotEmptyArr(sysbillnosettingsData)) {
+ return commonUtils.isNotEmptyStr(record.sParentId) && sysbillnosettingsSelectedRowKeys.includes(record.sParentId);
+ }
+ };
+
+ handleGetFilterData = (name) => {
+ const {
+ [`${name}Data`]: data, sysbillnosettingsData, sysbillnosettingsSelectedRowKeys,
+ } = this.props;
+ if (data !== undefined) {
+ const newArr = data.filter((item) => {
+ if (name === 'syspushMsg' && commonUtils.isNotEmptyArr(sysbillnosettingsData)) {
+ return commonUtils.isNotEmptyStr(item.sParentId) && sysbillnosettingsSelectedRowKeys.includes(item.sParentId);
+ }
+ });
+ return newArr.length;
+ }
+ };
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+const CommonSystemSettingComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const { form, onReturnForm, syspushMsgConfig } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const tableProps = {
+ ...commonBusiness.getTableTypes('sysbillnosettings', props),
+ tableProps: { AutoTableHeight: '70vh' },
+ };
+
+ const tableSysPushMsgProps = {
+ ...commonBusiness.getTableTypes('syspushMsg', props),
+ filteredValue: props.sysbillnosettingsSelectedRowKeys,
+ OnGetFilterData: props.onGetFilterData,
+ onFilterData: props.onFilterData,
+ tableProps: { AutoTableHeight: 200 },
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSystemSettingEvent(CommonSystemSetting));
+
diff --git a/src/components/CommonSystemSettingEvent/TabFinanceOffer.js b/src/components/CommonSystemSettingEvent/TabFinanceOffer.js
new file mode 100644
index 0000000..359b5da
--- /dev/null
+++ b/src/components/CommonSystemSettingEvent/TabFinanceOffer.js
@@ -0,0 +1,185 @@
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col } from 'antd';
+import ShowType from '@/components/Common/CommonComponent';
+import styles from '@/index.less';
+import * as commonUtils from '@/utils/utils';
+
+const FormItem = Form.Item;
+
+class TabFinanceOfferComponent extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ /* 判断字段是否存在 存在显示,不存在返回空 */
+ getExistShowConfig = (sName) => {
+ let bShow = false;
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig)) {
+ bShow = true;
+ }
+ }
+ return bShow;
+ };
+
+
+ /* 判断字段是否存在并且勾了显示 */
+ getExistVisibleShowConfig = (sName) => {
+ let bShow = false;
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig) && showConfig.bVisible) {
+ bShow = true;
+ }
+ }
+ return bShow;
+ };
+
+ getShowTypeProps = (sName) => {
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ if (commonUtils.isNotEmptyObject(showConfig)) {
+ /* 返回值 */
+ return {
+ form: this.props.form,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ onChange: this.props.onChange, /* 表单数据改变事件方法(数据格式:函数) */
+ showConfig, /* 关于本showType相关配置(数据格式:对象) */
+ enabled: this.props.enabled && !showConfig.bReadonly, /* 是否是查看状态(数据格式:布尔) */
+ dataValue: masterData[sName], /* 本showType数据(数据格式:对象) */
+ bTable: false, /* 是否为表格数据 */
+ formItemLayout: { labelCol: { span: 12 }, wrapperCol: { span: 12 } },
+ };
+ }
+ }
+ };
+ /** 获取showConfig */
+ getShowConfig = (sName) => {
+ /* 通过sName过滤出对应的showConfig */
+ const showConfigArr = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName === sName && item.bVisible);
+ const showConfigHideArr = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName === sName && !item.bVisible); /* 隐藏字段 */
+ if (commonUtils.isNotEmptyArr(showConfigHideArr)) {
+ console.log(`请勾选${sName}字段显示!`);
+ }
+ if (commonUtils.isNotEmptyArr(showConfigArr)) {
+ showConfigArr[0].sName = showConfigArr[0].sControlName;
+ return showConfigArr[0];
+ }
+ /* 返回值 */
+ return {};
+ };
+ render() {
+ const { masterConfig, masterData } = this.props;
+ return (
+
+ {commonUtils.isEmptyObject(masterConfig) || commonUtils.isEmptyObject(masterData) ? '' :
+
+
+
+
+ {this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName.toLowerCase() === 'tabfinancecontrol'))[0].showName}
+
+
+
+ {this.getExistVisibleShowConfig('sCbxPayablesType') ? : ''}
+ {this.getExistVisibleShowConfig('sCbxOutSidePayType') ? : ''}
+ {this.getExistVisibleShowConfig('sCbxReceivablesType') ? : ''}
+ {this.getExistVisibleShowConfig('sCbxAdvanceType') ? : ''}
+
+
+
+
+ {this.getExistVisibleShowConfig('bCkxMaterialsTax') ? : ''}
+
+
+
+
+
+
+
+ {this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName.toLowerCase() === 'taboffer'))[0].showName}
+
+
+
+ {this.getExistVisibleShowConfig('iNetIntervalDays') ? : ''}
+ {this.getExistVisibleShowConfig('sCbxOfferMaterials') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxProcessPrice') ? : ''}
+ {this.getExistVisibleShowConfig('iNetVeryHighPercentage') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxTaxRate') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('bCkxNoTaxProcessPrice') ? : ''}
+
+
+
+
+ {this.getExistVisibleShowConfig('bCkxOfferFunctionality') ? : ''}
+
+
+
+
+
+
+
+ {this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName.toLowerCase() === 'tabinventorycontrol'))[0].showName}
+
+
+
+
+
+ {this.getExistVisibleShowConfig('sCbxMaterialsDefine') ? : ''}
+ {this.getExistVisibleShowConfig('sCbxSemigoodsDefine') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxProductDefine') ? : ''}
+
+
+
+
+ {this.getExistVisibleShowConfig('sCbxCorrugateWidth') ? : ''}
+ {this.getExistVisibleShowConfig('sCbxCorrugateLength') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('iNetCorrugateWidthSubtract') ? : ''}
+ {this.getExistVisibleShowConfig('iNetCorrugateLengthSubtract') ? : ''}
+
+
+
+
+
+
+ {this.getExistVisibleShowConfig('bCkxBuSampleNoDeliver') ? : ''}
+
+
+
+
+
+
+
+ }
+
+ );
+ }
+}
+
+export default TabFinanceOfferComponent;
diff --git a/src/components/CommonSystemSettingEvent/TabFinancePeriod.js b/src/components/CommonSystemSettingEvent/TabFinancePeriod.js
new file mode 100644
index 0000000..5f47177
--- /dev/null
+++ b/src/components/CommonSystemSettingEvent/TabFinancePeriod.js
@@ -0,0 +1,138 @@
+import moment from 'moment';
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col, message, DatePicker, Button } from 'antd';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import styles from '@/index.less';
+import commonConfig from '@/utils/config';
+import * as commonServices from '@/services/services';
+import * as commonUtils from '@/utils/utils';
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用方法 */
+
+const FormItem = Form.Item;
+
+class TabFinancePeriodComponent extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ mode: 'year',
+ open: false,
+ value: moment(new Date().getFullYear().toString(), 'YYYY'), /* 年份 */
+ };
+ }
+ handleOpenChange = (open) => {
+ if (open) {
+ this.setState({ mode: 'year', open: true });
+ }
+ };
+
+ handlePanelChange = async (value, mode) => {
+ const bFilterValue = moment(value).format('YYYY');
+ this.setState({ mode, open: false, value });
+ const {
+ token, sModelsId, sysaccountperiodConfig, masterConfig,
+ } = this.props;
+ const condition = {
+ sSqlCondition: {
+ sParentId: masterConfig.sId,
+ },
+ bFilter: [{
+ bFilterName: 'sPeriodId',
+ bFilterValue,
+ bFilterCondition: 'like',
+ }],
+ };
+ const configDataId = sysaccountperiodConfig.sId;
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0].dataSet;
+ this.props.onSaveState({ sysaccountperiodData: returnData, year: bFilterValue });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+ handleAddData = async () => {
+ const year = moment(this.state.value).format('YYYY');
+ const bFilterValue = year - 1;
+ const {
+ token, sModelsId, sysaccountperiodConfig, masterConfig,
+ } = this.props;
+ const condition = {
+ sSqlCondition: {
+ sParentId: masterConfig.sId,
+ },
+ bFilter: [{
+ bFilterName: 'sPeriodId',
+ bFilterValue,
+ bFilterCondition: 'like',
+ }],
+ };
+ const configDataId = sysaccountperiodConfig.sId;
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0].dataSet;
+ if (commonUtils.isEmptyObject(returnData)) {
+ message.error('请先添加上一年度数据');
+ } else {
+ returnData.forEach((row, index) => {
+ returnData[index].bAP = false;
+ returnData[index].bAR = false;
+ returnData[index].bFrozen = false;
+ returnData[index].sId = commonUtils.createSid();
+ returnData[index].sPeriodId = (Number(returnData[index].sPeriodId) + 100).toString();
+ returnData[index].tEndDate = moment(returnData[index].tEndDate, 'YYYY-MM-DD HH:mm:ss').add(1, 'years').format('YYYY-MM-DD HH:mm:ss');
+ returnData[index].tStartDate = moment(returnData[index].tStartDate, 'YYYY-MM-DD HH:mm:ss').add(1, 'years').format('YYYY-MM-DD HH:mm:ss');
+ // returnData[index].tForzenDate = '';
+ // returnData[index].tARDate = '';
+ // returnData[index].tAPDate = '';
+ returnData[index].handleType = 'add';
+ });
+ }
+ this.props.onSaveState({ sysaccountperiodData: returnData });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+ render() {
+ const { open, value, mode } = this.state;
+ const { enabled, app } = this.props;
+ const formItemLayout = { labelCol: { span: 6 }, wrapperCol: { span: 15 } };
+ const Year = commonFunc.showMessage(app.commonConst, 'Year');/* 年度 */
+ const BtnDefaultValueIncrease = commonFunc.showMessage(app.commonConst, 'BtnDefaultValueIncrease');/* 默认值增加 */
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default TabFinancePeriodComponent;
diff --git a/src/components/CommonSystemSettingEvent/TabSalesBuyer.js b/src/components/CommonSystemSettingEvent/TabSalesBuyer.js
new file mode 100644
index 0000000..ebf5d19
--- /dev/null
+++ b/src/components/CommonSystemSettingEvent/TabSalesBuyer.js
@@ -0,0 +1,199 @@
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col } from 'antd';
+import ShowType from '@/components/Common/CommonComponent';
+import styles from '@/index.less';
+import * as commonUtils from '@/utils/utils';
+
+const FormItem = Form.Item;
+
+class TabSalesBuyerComponent extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ /* 判断字段是否存在 存在显示,不存在返回空 */
+ getExistShowConfig = (sName) => {
+ let bShow = false;
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig) && showConfig.bVisible) {
+ bShow = true;
+ }
+ }
+ return bShow;
+ };
+
+ /* 判断字段是否存在并且勾了显示 */
+ getExistVisibleShowConfig = (sName) => {
+ let bShow = false;
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig) && showConfig.bVisible) {
+ bShow = true;
+ }
+ }
+ return bShow;
+ };
+
+ getShowTypeProps = (sName) => {
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig)) {
+ return {
+ form: this.props.form,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ onChange: this.props.onChange, /* 表单数据改变事件方法(数据格式:函数) */
+ showConfig, /* 关于本showType相关配置(数据格式:对象) */
+ enabled: this.props.enabled && !showConfig.bReadonly, /* 是否是查看状态(数据格式:布尔) */
+ dataValue: masterData[sName], /* 本showType数据(数据格式:对象) */
+ bTable: false, /* 是否为表格数据 */
+ formItemLayout: { labelCol: { span: 14 }, wrapperCol: { span: 10 } },
+ };
+ }
+ }
+ };
+ /** 获取showConfig */
+ getShowConfig = (sName) => {
+ /* 通过sName过滤出对应的showConfig */
+ const showConfigArr = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName === sName); // && item.bVisible
+ if (commonUtils.isNotEmptyArr(showConfigArr)) {
+ showConfigArr[0].sName = showConfigArr[0].sControlName;
+ return showConfigArr[0];
+ }
+ /* 返回值 */
+ return {};
+ };
+ render() {
+ const { masterConfig, masterData } = this.props;
+ return (
+
+ {commonUtils.isEmptyObject(masterConfig) || commonUtils.isEmptyObject(masterData) ? '' :
+
+
+
+
+ {this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName.toLowerCase() === 'tabsalescontrol'))[0].showName}
+
+
+
+ { this.getExistVisibleShowConfig('sCbxDeliverGoods') ? : ''}
+ {this.getExistVisibleShowConfig('sCbxSrcNoCheck') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxDeliverGoodsNotify') ? : ''}
+
+
+
+
+ {this.getExistVisibleShowConfig('bCkxLookCustomer') ? : ''}
+ {this.getExistShowConfig('bCkxLookPerson') ? : ''}
+
+
+
+
+
+
+
+ {this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName.toLowerCase() === 'tabcommonsetting'))[0].showName}
+
+
+
+ {this.getExistShowConfig('bCkxLookSupply') ? : ''}
+ {this.getExistShowConfig('bCkxDefineCheck') ? : ''}
+ {this.getExistShowConfig('bCkxTmpCheck') ? : ''}
+ {this.getExistShowConfig('bCkxModifyBillNoMakePerson') ? : ''}
+ {this.getExistShowConfig('bCkxNoSkip') ? : ''}
+
+
+ {this.getExistShowConfig('bCkxOeeNoConnectPlan') ? : ''}
+ {/* 送货或入库后不能上报 */}
+ {this.getExistShowConfig('bCkxMaterialsStockLimit') ? : ''}
+ {this.getExistShowConfig('bCkxProductStockLimit') ? : ''}
+ {this.getExistShowConfig('bCkxOEEToTask') ? : ''}
+
+
+
+
+
+
+
+ {this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName.toLowerCase() === 'tabschedule'))[0].showName}
+
+
+
+
+ {this.getExistVisibleShowConfig('sCbxDstributionWage') ? : ''}
+
+
+
+
+ {this.getExistShowConfig('bCkxProcessFilter') ? : ''}
+
+
+ {this.getExistShowConfig('bCkxXd') ? : ''}
+
+
+ {this.getExistShowConfig('bCkxNotProduction') ? : ''}
+ {this.getExistVisibleShowConfig('bCkxOrderStart') ? : ''}
+
+
+
+
+
+
+
+ {this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName.toLowerCase() === 'tabproductmanage'))[0].showName}
+
+
+
+ {this.getExistShowConfig('sCbxMakeupName') ? : ''}
+
+
+ {this.getExistShowConfig('sCbxCutName') ? : ''}
+
+
+
+
+ {this.getExistShowConfig('sCbxPublishName') ? : ''}
+
+
+ {this.getExistShowConfig('bCkxIntoPlanNewWod') ? : ''}
+
+
+
+
+ {this.getExistShowConfig('bCkxCopyFromTechnology') ? : ''}
+
+
+
+
+ {this.getExistShowConfig('bCkxWodCheckIntoPlan') ? : ''}
+
+
+
+
+
+ }
+
+ );
+ }
+}
+
+export default TabSalesBuyerComponent;
+
diff --git a/src/components/CommonSystemSettingEvent/TabSysParam.js b/src/components/CommonSystemSettingEvent/TabSysParam.js
new file mode 100644
index 0000000..2ceb08d
--- /dev/null
+++ b/src/components/CommonSystemSettingEvent/TabSysParam.js
@@ -0,0 +1,271 @@
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col } from 'antd';
+import ShowType from '@/components/Common/CommonComponent';
+import styles from '@/index.less';
+import * as commonUtils from '@/utils/utils';
+import TabSysParamIcon from './TabSysParamsIcon';
+
+const FormItem = Form.Item;
+
+class TabSysParamComponent extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+
+ /* 判断字段是否存在 存在显示,不存在返回空 */
+ getExistShowConfig = (sName) => {
+ let bShow = false;
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig)) {
+ bShow = true;
+ }
+ }
+ return bShow;
+ };
+
+ getShowTypeProps = (sName) => {
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig)) {
+ return {
+ form: this.props.form,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ onChange: this.props.onChange, /* 表单数据改变事件方法(数据格式:函数) */
+ showConfig, /* 关于本showType相关配置(数据格式:对象) */
+ enabled: this.props.enabled && !showConfig.bReadonly, /* 是否是查看状态(数据格式:布尔) */
+ dataValue: masterData[sName], /* 本showType数据(数据格式:对象) */
+ bTable: false, /* 是否为表格数据 */
+ formItemLayout: { labelCol: { span: 12 }, wrapperCol: { span: 12 } },
+ };
+ }
+ }
+ };
+ /** 获取showConfig */
+ getShowConfig = (sName) => {
+ /* 通过sName过滤出对应的showConfig */
+ const showConfigArr = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName === sName && item.bVisible);
+ const showConfigHideArr = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName === sName && !item.bVisible); /* 隐藏字段 */
+ if (commonUtils.isNotEmptyArr(showConfigHideArr)) {
+ console.log(`请勾选${sName}字段显示!`);
+ }
+ if (commonUtils.isNotEmptyArr(showConfigArr)) {
+ showConfigArr[0].sName = showConfigArr[0].sControlName;
+ return showConfigArr[0];
+ }
+ /* 返回值 */
+ return {};
+ };
+
+
+ /* 判断字段是否存在并且勾了显示 */
+ getExistVisibleShowConfig = (sName) => {
+ let bShow = false;
+ const { masterConfig, masterData } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyObject(masterData)) {
+ /* 配置信息 */
+ const showConfig = this.getShowConfig(sName);
+ /* 返回值 */
+ if (commonUtils.isNotEmptyObject(showConfig) && showConfig.bVisible) {
+ bShow = true;
+ }
+ }
+ return bShow;
+ };
+
+ render() {
+ const { masterConfig, masterData } = this.props;
+ return (
+
+ {commonUtils.isEmptyObject(masterConfig) || commonUtils.isEmptyObject(masterData) ? '' :
+
+
+
+
+
+ {this.getExistVisibleShowConfig('sCbxMaterialsUnit') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxCardboardUnit') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxMachineUnit') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('dNetConversionRate') ? : '' }
+
+
+
+
+
+
+ {this.getExistVisibleShowConfig('dNetMoney') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('dNetPrice') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('iNetSquareM') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('bCkxPercentile') ? : '' }
+
+
+
+
+
+
+ {this.getExistVisibleShowConfig('sCbxLanguage') ? : '' }
+
+
+ {this.getExistShowConfig('iCbxExitSystem') ? : ''}
+
+
+
+
+
+
+ {this.getExistVisibleShowConfig('sCbxNetID') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxNetVerifyCode') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxHttp') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxMac') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxWechatAppscret') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxWechatAgentid') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxWechatAppid') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxWechatIpAddress') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxWechatToken') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxWechatEncodingAESKey') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxEmailHost') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxEmailFrom') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxEmailUser') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxEmailPass') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxEmailPort') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxDingTalkToken') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxDingTalkEncodingAESKey') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxDingTalkAppid') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxDingTalkAgentid') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxDingTalkAppscret') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxApiUrl') ? : '' }
+
+
+ {this.getExistVisibleShowConfig('sCbxDateTime') ? : '' }
+
+
+
+
+
+
+
+
+ {this.getExistVisibleShowConfig('iNetMonth') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxServerFilePath') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyName') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyTitle') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyAddress') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyInoviceAddress') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyPhone1') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyPhone2') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyFax') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxCompanyEmail') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxWorkPath') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxWorkCheckPath') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxTime') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('sCbxImpositionTime') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('bCkxNumAlign') ? : ''}
+
+
+ {this.getExistVisibleShowConfig('bCkxViewAllMachine') ? : ''}
+
+
+
+
+
+
+ }
+
+ );
+ }
+}
+
+export default TabSysParamComponent;
diff --git a/src/components/CommonSystemSettingEvent/TabSysParamsIcon.js b/src/components/CommonSystemSettingEvent/TabSysParamsIcon.js
new file mode 100644
index 0000000..9bcda2c
--- /dev/null
+++ b/src/components/CommonSystemSettingEvent/TabSysParamsIcon.js
@@ -0,0 +1,173 @@
+/* eslint-disable */
+import React, { useEffect, useState } from "react";
+import { Form, Col, Upload, Image as ImageNew, message } from "antd";
+import commonConfig from "@/utils/config";
+
+// 判断图片是否存在
+const checkImgExists = (imgUrl, success, error) => {
+ const ImgObj = new Image();
+ ImgObj.src = imgUrl;
+ ImgObj.onload = () => {
+ ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height > 0)
+ ? success()
+ : error();
+ };
+ ImgObj.onerror = () => {
+ error();
+ };
+};
+
+const TabSysParamIcon = props => {
+ const { enabled, dispatch } = props;
+ // 刷新页面
+ const [, setRefresher] = useState(0);
+ const refresh = () => {
+ setRefresher(pre => pre + 1);
+ };
+
+ const [iconData, setIconData] = useState([
+ { title: "标签页icon", imageUrl: "" },
+ { title: "登录页logo", imageUrl: "" },
+ { title: "主页logo", imageUrl: "" },
+ { title: "版权logo", imageUrl: "" },
+ { title: "后台登陆logo", imageUrl: "" },
+ { title: "后台导航logo", imageUrl: "" }
+ ]);
+
+ // 获取默认数据
+ useEffect(() => {
+ for (let index = 0; index < 6; index++) {
+ const imgUrl = `${
+ commonConfig.server_host
+ }file/downloadLogo?sLogoName=logo${index +
+ 1}&date=${new Date().getTime()}`;
+ if (
+ checkImgExists(
+ imgUrl,
+ () => {
+ setIconData(pre => {
+ pre[index].imageUrl = imgUrl;
+ return pre;
+ });
+ refresh();
+ },
+ () => {
+ refresh();
+ }
+ )
+ ) {
+ }
+ }
+ }, []);
+
+ return (
+ <>
+ {iconData.map(({ title, imageUrl, bPreview = !enabled }, index) => {
+ const uploadProps = {
+ listType: "picture-card",
+ className: "avatar-uploader",
+ action: `${
+ commonConfig.server_host
+ }file/uploadLogo?sLogoName=logo${index + 1}`,
+ disabled: bPreview,
+ onChange: info => {
+ const { fileList } = info;
+ const file = fileList[fileList.length - 1];
+ const { status, response } = file;
+ if (status === "done") {
+ if (response && response.code === 1) {
+ const imageUrlNew = `${
+ commonConfig.server_host
+ }file/downloadLogo?sLogoName=logo${index +
+ 1}&date=${new Date().getTime()}`;
+ const iconDataNew = [...iconData];
+ iconDataNew[index].imageUrl = imageUrlNew;
+ setIconData(iconDataNew);
+
+ const logoImageInfo = [];
+ iconDataNew.forEach(({ imageUrl }, index) => {
+ if (index < 4) {
+ logoImageInfo.push(imageUrl);
+ }
+ });
+ dispatch({
+ type: "content/saveLogoImageInfo",
+ payload: {
+ logoImageInfo
+ }
+ });
+ } else if (response && response.code === -1) {
+ message.error(response.msg);
+ }
+ }
+ },
+ accept: "image/*",
+ showUploadList: false,
+ openFileDialogOnClick: !bPreview
+ };
+ return (
+
+
+
+ {imageUrl ? (
+ {
+ // if (e && e.target) {
+ // const { clientX, clientY } = e;
+ // const { right, top } = e.target.getBoundingClientRect();
+ // console.log("=====", clientX, clientY, right, top);
+ // if (
+ // right > clientX &&
+ // right - clientX < 20 &&
+ // top < clientY &&
+ // clientY - top < 20
+ // ) {
+ // if (!bPreview) {
+ // console.log("=====true");
+ // // setIconData(pre => {
+ // // pre[index].bPreview = true;
+ // // return pre;
+ // // });
+ // }
+ // } else if (bPreview) {
+ // console.log("=====false");
+ // // setIconData(pre => {
+ // // pre[index].bPreview = false;
+ // // return pre;
+ // // });
+ // }
+ // }
+ // }}
+ />
+ ) : (
+
+ )}
+
+
+
+ );
+ })}
+ >
+ );
+};
+
+export default TabSysParamIcon;
diff --git a/src/components/CommonSystemSettingEvent/index.less b/src/components/CommonSystemSettingEvent/index.less
new file mode 100644
index 0000000..1dfa20e
--- /dev/null
+++ b/src/components/CommonSystemSettingEvent/index.less
@@ -0,0 +1,5 @@
+@import "~@/variable.less";
+.container{
+ width: 100%;
+ padding: 10px;
+}
diff --git a/src/components/Manufacture/CommonPackEvent.js b/src/components/Manufacture/CommonPackEvent.js
new file mode 100644
index 0000000..72d928c
--- /dev/null
+++ b/src/components/Manufacture/CommonPackEvent.js
@@ -0,0 +1,1790 @@
+/* eslint-disable */
+import React, { useEffect, useState, useRef } from "react";
+import { Button, message } from "antd";
+import * as commonBusiness from "@/components/Common/commonBusiness";
+import * as commonUtils from "@/utils/utils";
+import * as commonFunc from "@/components/Common/commonFunc";
+import commonConfig from "@/utils/config";
+import * as commonServices from "@/services/services";
+import StaticEditTable from "@/components/Common/CommonTable";
+import CommonViewDragable from "@/components/Common/CommonViewDragable";
+import AntdDraggableModal from "@/components/Common/AntdDraggableModal";
+import CommonPartsInfo from "@/components/Common/CommonPartsInfo";
+import CommonListSelect from "@/components/Common/CommonListSelect";
+import CommonListSelectMulti from "@/components/Common/CommonListSelectMulti";
+import CommonListSelectFlex from "@/components/Common/CommonListSelectFlex";
+import ContextMenuModal from "@/components/Common/ContextMenuModal";
+import WorkFlow from "@/components/Common/Flows/CommonFlow";
+import SvgIcon from "@/components/SvgIcon";
+
+// PBOM/生产工单共用方法
+const CommonPackEvent = props => {
+ const returnProps = {};
+
+ const propsRef = useRef(props);
+ useEffect(
+ () => {
+ propsRef.current = props;
+ },
+ [props]
+ );
+
+ useEffect(() => {
+ const handleDoubleClick = () => {
+ console.log(
+ "=====packProps",
+ Object.keys(propsRef.current).reduce((pre, key) => {
+ const value = propsRef.current[key];
+ if (Array.isArray(value) || (typeof value === "object" && value !== null)) {
+ pre[key] = value;
+ }
+ return pre;
+ }, {})
+ );
+ console.log(
+ "=====packPropsData",
+ Object.keys(propsRef.current).reduce((pre, key) => {
+ const value = propsRef.current[key];
+ if (key?.endsWith("Data")) {
+ if (Array.isArray(value) || (typeof value === "object" && value !== null)) {
+ pre[key] = value;
+ }
+ }
+ return pre;
+ }, {})
+ );
+ };
+
+ window.addEventListener("dblclick", handleDoubleClick);
+
+ return () => {
+ window.removeEventListener("dblclick", handleDoubleClick);
+ };
+ }, []);
+
+ // 自定义params参数处理
+ const handleGetParamsValue = ({ sName, sValue, record = {} }) => {
+ const jsonData = commonUtils.convertStrToObj(sValue, []);
+ if (sName === "sParams") {
+ const { sWorkOrderParam: sWorkOrderParamStr } = record;
+ const sWorkOrderParam = commonUtils.convertStrToObj(sWorkOrderParamStr, {});
+ const sWorkOrderData = jsonData.find(item => item.sParamType === "sWorkOrder") || {};
+ const { data = {} } = sWorkOrderData;
+ const result = [];
+ Object.keys(data).forEach(key => {
+ if (sWorkOrderParam[key] !== undefined) {
+ if (sWorkOrderParam[key] === "电化铝BOM" || sWorkOrderParam[key] === "电化铝版本") {
+ result.push(`${sWorkOrderParam[key]}: ${record.sAlumiteBomBillNo}`);
+ } else {
+ result.push(`${sWorkOrderParam[key]}: ${data[key]}`);
+ }
+ }
+ });
+ return result.join(";");
+ }
+
+ return sValue;
+ };
+ returnProps.onGetParamsValue = handleGetParamsValue;
+ // 对processData数组进行排序
+ const sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = "";
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = "";
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf(".") > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace(".", "");
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf(".") > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace(".", "");
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ return parseFloat(sPartOrder1 + sOrder1) - parseFloat(sPartOrder2 + sOrder2);
+ });
+ return processData;
+ };
+ returnProps.sortData = sortData;
+
+ // 调用计算接口
+ const handleCalculation = async (modeType, bSave) => {
+ if (modeType === "workOrder") {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${props.sModelsId}`;
+ const {
+ app,
+ masterConfig,
+ slaveConfig,
+ packConfig,
+ controlConfig,
+ processConfig,
+ colorConfig,
+ sModelsType,
+ colorData,
+ slaveDelData,
+ controlDelData,
+ processDelData,
+ colorDelData,
+ packDelData,
+ addStateMap,
+ materials0Config,
+ materials0DelData,
+ } = props;
+ let { slaveData, packData, controlData, processData, masterData, materials0Data } = props;
+ const sMakePerson = masterData.sMakePerson;
+ const dataCalculation = [];
+ if (
+ (masterData.sFormId === "101251240115015840916341460" || sModelsType.includes("manufacture/workOrderSupple")) &&
+ commonUtils.isNotEmptyArr(colorData)
+ ) {
+ controlData.forEach(item => {
+ item.iPositiveColor = colorData.filter(item => !item.bNotColor).length;
+ });
+ }
+ dataCalculation.push(commonBusiness.mergeData("master", `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ dataCalculation.push(commonBusiness.mergeData("slave", `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ dataCalculation.push(commonBusiness.mergeData("control", `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ dataCalculation.push(commonBusiness.mergeData("pack", `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true));
+ dataCalculation.push(commonBusiness.mergeData("materials", `${materials0Config.sTbName.toLowerCase()}_tmp`, materials0Data, [], true));
+ dataCalculation.push(commonBusiness.mergeData("process", `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ const value = { data: dataCalculation, sClientType: "1", sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ if (masterData.handleType === "update" && !commonUtils.isEmpty(sMakePerson)) {
+ masterData.sMakePerson = sMakePerson;
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materials0Data = valueReturn[`${materials0Config.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+
+ /* 计算成功后自动调用保存 */
+ if (bSave) {
+ const data = [];
+ data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData("control", controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData("materials", materials0Config.sTbName, materials0Data, materials0DelData));
+ data.push(commonBusiness.mergeData("process", processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData("color", colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData("pack", packConfig.sTbName, packData, packDelData));
+ if (commonUtils.isNotEmptyObject(addStateMap)) {
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace("Config", "").trim();
+ const { [`${tableName}Data`]: tableData, [`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData } = props;
+ if (tableConfig.sTbName !== "noTable" && tableConfig.sTbName !== "MftWorkOrderMaterials") {
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+ }
+
+ props.onSaveData({
+ data,
+ sClientType: "1",
+ loading: false,
+ sSysLogSrcId: masterData.sId,
+ });
+ props.onSaveState({
+ slaveData,
+ packData,
+ controlData,
+ materials0Data,
+ processData,
+ masterData,
+ loading: false,
+ calculated: true,
+ });
+ } else {
+ props.onSaveState({
+ slaveData,
+ packData,
+ controlData,
+ materials0Data,
+ processData,
+ masterData,
+ loading: false,
+ calculated: true,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, "BtnCalculation") + commonFunc.showMessage(app.commonConst, "handleSuccess"));
+ }
+ } else {
+ /* 失败 */
+ props.onSaveState({
+ loading: false,
+ calculated: false,
+ });
+ props.getServiceError(dataReturn);
+ }
+ return;
+ }
+
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${props.sModelsId}`;
+ const { masterConfig, slaveConfig, controlConfig, materialsConfig, processConfig, packConfig, app } = props;
+ let { slaveData, controlData, materialsData, processData, masterData, packData } = props;
+
+ const tableList = ["master", "slave", "control", "materials", "process", "pack"];
+
+ const data = tableList.map(tablename => {
+ const tableConfig = props[`${tablename}Config`];
+ const tableData = props[`${tablename}Data`];
+ return commonBusiness.mergeData(
+ tablename,
+ `${tableConfig.sTbName.toLowerCase()}_Tmp`,
+ tablename === "master" ? [tableData] : tableData,
+ [],
+ true
+ );
+ });
+
+ const value = { data, sClientType: "1", sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = props.sortData(controlData, processData);
+ packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`];
+ props.onSaveState({
+ slaveData,
+ controlData,
+ materialsData,
+ processData,
+ masterData,
+ loading: false,
+ packData,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, "BtnCalculation") + commonFunc.showMessage(app.commonConst, "handleSuccess"));
+ } else {
+ /* 失败 */
+ props.onSaveState({
+ loading: false,
+ });
+ props.getServiceError(dataReturn);
+ }
+ };
+
+ returnProps.handleCalculation = handleCalculation;
+
+ const handlePackDataAdd = (item, index, sControlId, handleType) => {
+ const tableDataRow = {};
+ if (handleType === "add") {
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = "add";
+ tableDataRow.sSlaveId = item.sId;
+ tableDataRow.iOrder = item.iOrder;
+ }
+ tableDataRow.sParentId = item.sParentId;
+ if (commonUtils.isNotEmptyObject(sControlId)) {
+ tableDataRow.sControlId = sControlId;
+ }
+ tableDataRow.sProductId = item.sProductId; /* 产品id */
+ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */
+ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */
+ tableDataRow.sProductName = item.sProductName; /* 产品名称 */
+ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */
+ tableDataRow.dProductWidth = item.dProductWidth; /* 产品宽 */
+ tableDataRow.dProductLength = item.dProductLength; /* 产品长 */
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bProductQtySelf");
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (bProductQtySelf) {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ tableDataRow.dProductQty =
+ commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */
+ }
+ tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */
+ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */
+ return tableDataRow;
+ };
+ returnProps.handlePackDataAdd = handlePackDataAdd;
+
+ // 删除相关的表格数据
+ const otherTableDel = (name, tableSelectedRowKeys, sField = "sControlId") => {
+ const { [`${name}Data`]: tableData = [], [`${name}DelData`]: tableDelData = [] } = props;
+
+ if (commonUtils.isEmptyArr(tableData)) return {};
+
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item[sField] === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = "del";
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item[sField] === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ };
+
+ returnProps.otherTableDel = otherTableDel;
+
+ // 重新计算实际生产数
+ const handleGetdFactProductQty = (selectedRowKeys, tableData) => {
+ const maxArr = [];
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const tableFilter = tableData.filter(item => selectedRowKeys.includes(item.sId) && item.dCombineQty > 0);
+ if (selectedRowKeys.length === 1 || tableFilter.length === 1) {
+ /* 当选中行只有一行时,实际生产数等于生产数 */
+ const iSlaveIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ const dProductQty = tableData[iSlaveIndex].dProductQty;
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty: dProductQty };
+ }
+ } else {
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ const { dCombineQty, dProductQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ let dNum = commonUtils.convertFixNum(dCombineQty !== 0 ? dProductQty / dCombineQty : 0, 2); /* 生产数/排版数 取最大值 */
+ dNum = Math.ceil(dNum);
+ maxArr.push(dNum);
+ }
+ }
+ }
+ let dMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ dMax = Math.max(...maxArr);
+ }
+ dMax = commonUtils.isNotNum(dMax) ? 0 : dMax;
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ let { dCombineQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ dCombineQty = commonUtils.isNotNum(dCombineQty) ? 0 : dCombineQty;
+ const dFactProductQty = commonUtils.convertFixNum(dCombineQty * dMax, 2); /* 实际生产数 =最大值 * 排版数 */
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty };
+ }
+ }
+ }
+ }
+ props.onSaveState({ packData: tableData });
+ }
+ };
+ returnProps.handleGetdFactProductQty = handleGetdFactProductQty;
+
+ // 公共方法-获取svg
+ const handleGetSvgIcon = (iconClass, fill, size, offsetY, alt) => {
+ return ;
+ };
+
+ const handleGetIcon = () => {
+ return {
+ setAdd: {
+ title: "增加",
+ img: handleGetSvgIcon("plus", "#8c949e", 14, 3, "添加"),
+ disableimg: handleGetSvgIcon("plus", "rgb(189, 189, 189)", 14, 3, "添加"),
+ },
+ setCopy: {
+ title: "复制",
+ img: handleGetSvgIcon("copy", "#8c949e", 14, 3, "复制"),
+ disableimg: handleGetSvgIcon("copy", "rgb(189, 189, 189)", 14, 3, "复制"),
+ },
+ setDelete: {
+ title: "删除",
+ img: handleGetSvgIcon("close", "#8c949e", 14, 3, "删除"),
+ disableimg: handleGetSvgIcon("close", "rgb(189, 189, 189)", 14, 3, "删除"),
+ },
+ };
+ };
+
+ returnProps.handleGetIcon = handleGetIcon;
+
+ // 公共方法-过滤数据
+ const dataFilter = (props, data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys, finishedMaterialsColumn, finishedProcessColumn, masterConfig } = props;
+ const oriData = data.data || [];
+ let bSplitMaterials = false; /* 默认拆分材料*/
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bSplitMaterials");
+ if (iIndex > -1) {
+ bSplitMaterials = masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+
+ let bSplitProcess = false; /* 默认拆分工序 */
+ const iIndex1 = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bSplitProcess");
+ if (iIndex1 > -1) {
+ bSplitProcess = masterConfig.gdsconfigformslave[iIndex1].bVisible;
+ }
+
+
+ if (data.data) {
+ let res = [];
+ switch (type) {
+ case "process":
+ if (bFinal) {
+ /* 成品工序 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter(val => {
+ return val.sType === "3" && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter(val => {
+ return val.sType === "3";
+ });
+ }
+ } else {
+ /* 部件工序 */
+ if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ res = oriData.filter(val => {
+ if(bSplitProcess) {
+ return val.sType !== "3" && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ } else {
+ return controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId;
+ }
+
+ });
+ } else {
+ if(bSplitProcess) {
+ res = oriData.filter(val => {
+ return val.sType !== "3";
+ });
+ } else {
+ res = oriData;
+ }
+ }
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return oriData || [];
+ }
+ };
+
+ returnProps.dataFilter = dataFilter;
+
+ // 公共方法-过滤数据-工单用
+ const dataFilter1 = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+
+ const { slaveSelectedRowKeys, controlSelectedRowKeys, finishedMaterialsColumn, finishedProcessColumn, masterConfig } = props;
+ let bSplitMaterials = true; /* 默认拆分材料*/
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bSplitMaterials");
+ if (iIndex > -1) {
+ bSplitMaterials = masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+
+ let bSplitProcess = true; /* 默认拆分工序 */
+ const iIndex1 = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bSplitProcess");
+ if (iIndex1 > -1) {
+ bSplitProcess = masterConfig.gdsconfigformslave[iIndex1].bVisible;
+ }
+
+ const oriData = data.data || [];
+ if (data.data) {
+ let res = [];
+ switch (type) {
+ case "materials":
+ if (bSplitMaterials && finishedMaterialsColumn) {
+ if (bFinal) {
+ /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter(val => {
+ return val.sType === "2" && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter(val => {
+ return val.sType === "2";
+ });
+ }
+ } else {
+ /* 部件材料 */
+ res = oriData.filter(val => {
+ return val.sType !== "2";
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case "process":
+ if (bSplitProcess && finishedProcessColumn) {
+ if (bFinal) {
+ /* 成品工序 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter(val => {
+ return val.sType === "3" && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter(val => {
+ return val.sType === "3";
+ });
+ }
+ } else {
+ /* 部件工序 */
+ if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ res = oriData.filter(val => {
+ if(bSplitProcess) {
+ return val.sType !== "3" && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ } else {
+ return controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId;
+ }
+
+ });
+ } else {
+ if(bSplitProcess) {
+ res = oriData.filter(val => {
+ return val.sType !== "3";
+ });
+ }else {
+ res = oriData;
+ }
+ }
+ if (isQianCai) {
+ const pre = res.filter(item => item.sType == "0").sort((a, b) => a.iOrder - b.iOrder);
+ const after = res.filter(item => item.sType == "1" || item.sType == "2").sort((a, b) => a.iOrder - b.iOrder);
+ res = pre.concat(after);
+ }
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return oriData || [];
+ }
+ };
+
+ returnProps.dataFilter1 = dataFilter1;
+
+ // 公共方法-过滤材料数据
+ const materialsFilterNew = (props, data, type) => {
+ const { materials0Data = [], processSelectedRowKeys, processData, controlSelectedRowKeys, controlData } = props;
+ let oriData = materials0Data; // commonUtils.isNotEmptyArr(data.data) ? data.data : [];
+ let res = [];
+ let newData = [];
+ let processRow = {};
+ let controlRow = {};
+
+ if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ controlRow = controlData[iIndex];
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyArr(processSelectedRowKeys)) {
+ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = processData.findIndex(item => processSelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ processRow = processData[iIndex];
+ }
+ }
+ if (type === "materials0") {
+ /* 根据工序表选中行的部件id +工序id 过滤全部材料数据 */
+ if (commonUtils.isNotEmptyObject(processRow)) {
+ const filterData = oriData.filter(
+ item =>
+ item.sControlId === processRow.sControlId &&
+ item.sProcessId === processRow.sProcessId &&
+ item.sProcessTbId === processRow.sId &&
+ commonUtils.isEmptyObject(item.sParentMaterialsId)
+ );
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData.filter(
+ item =>
+ (commonUtils.isEmptyObject(item.sInkBOMId) &&
+ commonUtils.isEmptyObject(item.sInkBOMsSlaveId) &&
+ commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) ||
+ (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId))
+ );
+ }
+ res = newData;
+ } else if (commonUtils.isNotEmptyObject(controlRow)) {
+ const filterData = oriData.filter(item => item.sControlId === controlRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData.filter(
+ item =>
+ (commonUtils.isEmptyObject(item.sInkBOMId) &&
+ commonUtils.isEmptyObject(item.sInkBOMsSlaveId) &&
+ commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) ||
+ (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId))
+ );
+ }
+ res = newData;
+ } else {
+ res = commonUtils.isEmptyArr(oriData) ? oriData : oriData.filter(item => commonUtils.isEmptyObject(item.sParentMaterialsId));
+ res = commonUtils.isEmptyArr(oriData)
+ ? oriData
+ : res.filter(
+ item =>
+ (commonUtils.isEmptyObject(item.sInkBOMId) &&
+ commonUtils.isEmptyObject(item.sInkBOMsSlaveId) &&
+ commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) ||
+ (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId))
+ );
+ }
+ } else if (type === "materials1" || type === "materials2" || type === "materials3") {
+ /* 过滤后的 materials0Data */
+ let materials0FilterData = [];
+ if (commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)) {
+ const filterData = materials0Data.filter(
+ item =>
+ item.sControlId === processRow.sControlId &&
+ item.sProcessId === processRow.sProcessId &&
+ item.sProcessTbId === processRow.sId &&
+ commonUtils.isEmptyObject(item.sParentMaterialsId)
+ );
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else if (commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)) {
+ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else {
+ materials0FilterData = materials0Data;
+ }
+ if (commonUtils.isNotEmptyArr(materials0FilterData)) {
+ const config = data.config;
+ const sSqlCondition = config ? config.sSqlCondition : "materials0.sBclassifyName.油墨";
+ if (sSqlCondition) {
+ let targetTbName = sSqlCondition.split(".")[0]; /* 1.表名 control */
+ if (commonUtils.isEmptyObject(targetTbName)) {
+ targetTbName = "materials0";
+ }
+ let filteredValue = sSqlCondition.split(".")[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ let sParentKey = sSqlCondition.split(
+ "."
+ )[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ /* 双重条件 */
+ if (commonUtils.isEmptyObject(targetTbName)) {
+ if (type === "materials1") {
+ /* materials0.sBclassifyName.油墨 */
+ filteredValue = "sBclassifyName";
+ sParentKey = "油墨";
+ } else if (type === "materials2") {
+ /* materials0.sBclassifyName.电化铝 */
+ filteredValue = "sBclassifyName";
+ sParentKey = "电化铝";
+ }
+ }
+ if (targetTbName === "materials0") {
+ let filterData = [];
+ if (type === "materials1") {
+ /* 油墨 */
+ filterData = materials0FilterData.filter(
+ item =>
+ sParentKey &&
+ sParentKey.includes(item[filteredValue]) &&
+ ((commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMId) &&
+ commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId)) ||
+ (commonUtils.isEmptyObject(item.sInkBOMsMaterialsId) &&
+ commonUtils.isEmptyObject(item.sInkBOMId) &&
+ commonUtils.isEmptyObject(item.sInkBOMsSlaveId)))
+ );
+ } else if (type === "materials2") {
+ /* 电化铝 */
+ filterData = materials0FilterData.filter(
+ item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId)
+ );
+ } else if (type === "materials3") {
+ /* 包材 */
+ filterData = materials0FilterData.filter(
+ item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId)
+ );
+ }
+ newData = filterData;
+ }
+ }
+ }
+ res = newData;
+ } else if (type === "materials1Child") {
+ /* 过滤油墨子集 */
+ /* 过滤后的 materials0Data */
+ let materials0FilterData = [];
+ if (commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)) {
+ const filterData = materials0Data.filter(
+ item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId
+ );
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else if (commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)) {
+ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId);
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else {
+ materials0FilterData = materials0Data;
+ }
+ if (commonUtils.isNotEmptyArr(materials0FilterData)) {
+ const config = data.config;
+ const sSqlCondition = config && commonUtils.isNotEmptyObject(config.sSqlCondition) ? config.sSqlCondition : "materials0.sBclassifyName.油墨";
+ if (sSqlCondition) {
+ let targetTbName = sSqlCondition.split(".")[0]; /* 1.表名 control */
+ if (commonUtils.isEmptyObject(targetTbName)) {
+ targetTbName = "materials0";
+ }
+ let filteredValue = sSqlCondition.split(".")[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ let sParentKey = sSqlCondition.split(
+ "."
+ )[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ if (commonUtils.isEmptyObject(targetTbName)) {
+ if (type === "materials1") {
+ /* materials0.sBclassifyName.油墨 */
+ filteredValue = "sBclassifyName";
+ sParentKey = "油墨";
+ } else if (type === "materials2") {
+ /* materials0.sBclassifyName.电化铝 */
+ filteredValue = "sBclassifyName";
+ sParentKey = "电化铝";
+ }
+ }
+ if (targetTbName === "materials0") {
+ const filterData = materials0FilterData.filter(
+ item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId)
+ );
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData;
+ }
+ }
+ }
+ }
+
+ if (type === "materials1Child") {
+ /* 油墨过滤子集 相同sInkBOMId, sInkBOMsSlaveId, 有sInkBOMsMaterialsId是父集 */
+ const { materials0Data, materials1SelectedRowKeys } = props;
+ let materials1Row = {}; /* 油墨子级 */
+ if (commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyArr(materials1SelectedRowKeys)) {
+ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = materials0Data.findIndex(item => materials1SelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ materials1Row = materials0Data[iIndex];
+ }
+ }
+
+ res = newData.filter(item => item.sInkFatherMaterialsTbId === materials1Row.sId);
+ }
+ } else if (type === "materials0Child") {
+ /* 全部材料 过滤替代料 */
+ const { materials0Data, materials0SelectedRowKeys } = props;
+ let materials0Row = {}; /* 油墨子级 */
+ if (commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyArr(materials0SelectedRowKeys)) {
+ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = materials0Data.findIndex(item => materials0SelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ materials0Row = materials0Data[iIndex];
+ }
+ }
+ if (commonUtils.isNotEmptyObject(materials0Row)) {
+ /* 根据工序过滤所有替代料 */
+ if (commonUtils.isNotEmptyObject(materials0Row.sAluminumBomId)) {
+ /* 电化铝替代料过滤 */
+ res = oriData.filter(
+ item =>
+ item.sParentMaterialsId === materials0Row.sId ||
+ (commonUtils.isNotEmptyObject(item.sParentMaterialsId) &&
+ commonUtils.isNotEmptyObject(item.sMaterialsNo) &&
+ item.sMaterialsNo1 === materials0Row.sMaterialsNo)
+ );
+ } else {
+ res = oriData.filter(item => item.sParentMaterialsId === materials0Row.sId);
+ }
+ } else if (commonUtils.isNotEmptyObject(processRow)) {
+ /* 根据工序过滤所有替代料 */
+ res = oriData.filter(
+ item =>
+ item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId && commonUtils.isNotEmptyObject(item.sParentMaterialsId)
+ );
+ } else if (commonUtils.isNotEmptyObject(controlRow)) {
+ res = oriData.filter(item => item.sControlId === controlRow.sId && commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ }
+ } else {
+ res = oriData;
+ }
+ return res;
+ };
+ returnProps.materialsFilterNew = materialsFilterNew;
+
+ // 公共方法-递归数据
+ const handleGetSlaveSelectedRowChildren = (allData, sId) => {
+ let result = [];
+ allData.forEach(item => {
+ if (item.sFatherSlaveId === sId) {
+ result.push(item);
+ result = [...result, ...handleGetSlaveSelectedRowChildren(allData, item.sId)];
+ }
+ });
+ return result;
+ };
+
+ returnProps.handleGetSlaveSelectedRowChildren = handleGetSlaveSelectedRowChildren;
+
+ // 根据key查找树节点并改变属性
+ const handleSearchNodes = (key, data, showNameNew) => {
+ if (!showNameNew) return;
+ data.forEach(item => {
+ if (item.key === key) {
+ item.showName = showNameNew;
+ } else if (commonUtils.isNotEmptyArr(item.children)) {
+ handleSearchNodes(key, item.children, showNameNew);
+ }
+ });
+ };
+
+ returnProps.handleSearchNodes = handleSearchNodes;
+
+ // PQty计算
+ const singlePQtyChange = tableDataRow => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) {
+ // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty =
+ tableDataRow.iStick *
+ (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) {
+ // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty =
+ tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty =
+ commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty =
+ tableDataRow.iStick *
+ (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) {
+ // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty =
+ commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty =
+ tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(
+ (commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) /
+ tableDataRow.dSinglePQty /
+ tableDataRow.iStick,
+ 0
+ );
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty =
+ tableDataRow.iStick *
+ (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty =
+ tableDataRow.iStick *
+ (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty =
+ tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) {
+ // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+
+ return tableDataRow;
+ };
+
+ returnProps.singlePQtyChange = singlePQtyChange;
+
+ return {
+ ...props,
+ ...returnProps,
+ };
+};
+
+const CommonModal = props => {
+ return (
+ <>
+ /** 工艺指导书弹窗组件 */
+
+ /** 选择工序弹窗组件 */
+
+ /** 选择材料弹窗组件 */
+
+ /** 选择工艺参数弹窗(旧) */
+
+ /** 选择工艺参数弹窗(新) */
+
+ /* 选择合版部件弹窗 */
+
+ /* 部件行选择合版信息弹窗 */
+
+ /* 复制从弹窗 */
+
+ /* Ctrl+R全部更新弹窗 */
+
+ /* 工作流弹窗 */
+
+ /* 选择色序弹窗 */
+
+ >
+ );
+};
+
+// 工艺指导书弹窗
+const PartsInfoModal = props => {
+ const { enabled, partsInfoModalVisible, partsInfoModalTitle } = props;
+ if (!partsInfoModalVisible) return "";
+
+ const [enabledNew, setEnabledNew] = useState(false);
+
+ const onCancel = () => {
+ props.onSaveState({
+ partsInfoModalVisible: false,
+ });
+ };
+
+ const handleFooter = () => {
+ if (props.enabled || props.masterData?.partsInfoLock) {
+ return [
+ ,
+ ];
+ }
+
+ return [
+ ,
+ ,
+ ];
+ };
+
+ return (
+
+
+
+ );
+};
+
+// 选择工序弹窗
+const ProcessChooseModal = props => {
+ const { processChooseVisible } = props;
+ if (!processChooseVisible) return "";
+
+ const { app, sModelsId, sModelsType, sTabId, content, processChooseData, masterConfig, processData, controlSelectedRowKeys } = props;
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const { notCurrentPane } = pane;
+
+ let setProcessTitle = commonFunc.showMessage(app.commonConst, "setProcess"); //选择工序标题
+
+ let searchProcessType = {};
+ if (commonUtils.isNotEmptyObject(processChooseData)) {
+ const chooseProcessConfig = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseProcess") || {};
+ setProcessTitle = chooseProcessConfig.showName || setProcessTitle;
+ const { sMenuName, sName, sId, sModelType } = processChooseData;
+
+ searchProcessType = {
+ app: {
+ ...app,
+ currentPane: {
+ name: "process",
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: sMenuName,
+ route: sName,
+ formId: sId,
+ key: sModelsId + sId,
+ sModelsType: sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ processData,
+ controlSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: sModelsType,
+ content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ const onCancel = () => {
+ props.onSaveState({ processChooseVisible: false });
+ };
+
+ return (
+
+
+
+ );
+};
+
+// 选择材料弹窗
+const MaterialsChooseModal = props => {
+ const { materialsChooseVisible } = props;
+ if (!materialsChooseVisible) return "";
+
+ const { app, sModelsId, sModelsType, sTabId, content, materialsChooseData, masterConfig, materialsData, controlSelectedRowKeys } = props;
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const { notCurrentPane } = pane;
+
+ let setMaterialsTitle = commonFunc.showMessage(app.commonConst, "setMaterial"); //选择工序标题
+
+ let searchMaterialsType = {};
+ if (commonUtils.isNotEmptyObject(materialsChooseData)) {
+ const choosematerialsConfig = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseMaterials") || {};
+ setMaterialsTitle = choosematerialsConfig.showName || setMaterialsTitle;
+ const { sMenuName, sName, sId, sModelType } = materialsChooseData;
+
+ searchMaterialsType = {
+ app: {
+ ...app,
+ currentPane: {
+ name: "materials",
+ config: choosematerialsConfig,
+ conditonValues: props.getSqlCondition(choosematerialsConfig),
+ title: sMenuName,
+ route: sName,
+ formId: sId,
+ key: sModelsId + sId,
+ sModelsType: sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ materialsData,
+ controlSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: sModelsType,
+ content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ const onCancel = () => {
+ props.onSaveState({ materialsChooseVisible: false });
+ };
+
+ return (
+
+
+
+ );
+};
+
+// 选择工艺参数弹窗(旧)
+const ParamsChooseModal = props => {
+ const { sParamsModalVisible, sModelsType, app } = props;
+ if (!sParamsModalVisible) return "";
+
+ const sProcessParams = commonFunc.showMessage(app.commonConst, "sProcessParams"); // 选择工艺参数标题
+
+ const onCancel = () => {
+ props.onSaveState({ sParamsModalVisible: false });
+ };
+
+ const sParamProps = {
+ ...commonBusiness.getTableTypes("sParam", props),
+ tableProps: {
+ rowKey: "sId",
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ },
+ bRowClick: true,
+ };
+
+ return (
+
+
+
+
+
+ );
+};
+
+// 选择工艺参数弹窗(新)
+const ParamsChooseNewModal = props => {
+ const modalName = "sWorkParamsModalVisible"; // commonParamVisible
+ const sProcessParams = "工单参数";
+
+ const getTableBtnState = tableName => {
+ let result = false;
+ const { enabled, masterData } = props;
+ result = enabled;
+
+ const { sInstruct: sInstructStr } = props[`${tableName}Config`];
+ const sInstruct = commonUtils.convertStrToObj(sInstructStr, {});
+ const { data = [] } = sInstruct;
+
+ const btnConfig = data.find(item => item && item.name === tableName && item.enabled !== undefined);
+ if (btnConfig && result) {
+ if (!Array.isArray(props[`${tableName}Data`]) || !Array.isArray([`${tableName}SelectedRowKeys`])) {
+ return;
+ }
+ const { enabled: enabledContent } = btnConfig;
+ if (typeof enabledContent === "boolean") {
+ result = enabledContent;
+ } else if (enabledContent) {
+ const tempData = {
+ props: {
+ enabled,
+ },
+ masterData,
+ [tableName]:
+ props[`${tableName}Data`]?.find(
+ i => i && (props[`${tableName}SelectedRowKeys`].includes(i.sId) || props[`${tableName}SelectedRowKeys`].includes(i.sSlaveId))
+ ) || {},
+ };
+ let strNew = enabledContent;
+ Object.keys(tempData).forEach(key => {
+ const reg = new RegExp(`${key}\\.`, "g");
+ strNew = strNew.replace(reg, `tempData["${key}"].`);
+ });
+ try {
+ const evalStr = eval("`" + strNew + "`");
+ result = !!eval(evalStr);
+ console.log("=====表格行按钮状态结果", result, {
+ btnName,
+ enabledContent,
+ tempData,
+ strNew,
+ evalStr,
+ });
+ } catch (error) {
+ console.log("=====表格行按钮状态错误", {
+ error,
+ enabledContent,
+ strNew,
+ tempData,
+ });
+ }
+ }
+ }
+ return result;
+ };
+
+ return props[modalName] ? (
+ {
+ props.onSaveState({ [modalName]: false });
+ }}
+ footer={
+
+ }
+ >
+
+
+
+
+
+
+
+ {[""].map(() => {
+ const commonViewDragableProps = {
+ ...props,
+ hideTabsNav: true,
+ comparedTableId: props.processTableId,
+ sParamData: [
+ {
+ sParamType: "sWorkOrder",
+ sParamName: "工单参数",
+ },
+ ],
+ tableName: "process",
+ };
+
+ commonViewDragableProps.enabled = getTableBtnState(commonViewDragableProps.tableName);
+
+ return
;
+ })}
+
+
+ ) : (
+ ""
+ );
+};
+
+// 合版部件选择框
+const CombinePartsChooseModal = props => {
+ const { combinePartsChooseVisible } = props;
+ if (!combinePartsChooseVisible) return "";
+ const { app } = props;
+
+ let combinePartsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.packConfig)) {
+ combinePartsConfig = JSON.parse(JSON.stringify(props.packConfig));
+ const gdsconfigformslaveFilter = combinePartsConfig.gdsconfigformslave.filter(
+ item => item.sName === "sId" || item.sName === "sCustomerName" || item.sName === "sProductName" || item.sName === "sCombinePartsName"
+ );
+ combinePartsConfig.gdsconfigformslave = gdsconfigformslaveFilter;
+ combinePartsConfig.bMutiSelect = false;
+ }
+ let combinePartsColumn = [];
+ if (commonUtils.isNotEmptyObject(props.packColumn)) {
+ combinePartsColumn = JSON.parse(JSON.stringify(props.packColumn));
+ const packColumnFilter = props.packColumn.filter(
+ item =>
+ item.dataIndex === "sId" || item.dataIndex === "sCustomerName" || item.dataIndex === "sProductName" || item.dataIndex === "sCombinePartsName"
+ );
+ combinePartsColumn = packColumnFilter;
+ }
+
+ const handleSelectCombineParts = async (name, selectConfig, selectData) => {
+ const { processData, processSelectedRowId, materialsData, materialsSelectedRowId, openTable } = props;
+ let sCombinedStr = "";
+ let sCombinedId = "";
+ if (selectData !== undefined) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach(item => {
+ const { sId } = item;
+ let { sProductName } = item;
+ let { sCombinePartsName } = item;
+ sProductName = commonUtils.isNotEmptyObject(sProductName) ? sProductName : "";
+ sCombinePartsName = commonUtils.isNotEmptyObject(sCombinePartsName) ? sCombinePartsName : "";
+ if (commonUtils.isNotEmptyObject(sCombinePartsName)) {
+ sCombinedStr += `${sProductName}-${sCombinePartsName},`;
+ sCombinedId += `${sId},`;
+ } else {
+ sCombinedStr += `${sProductName},`;
+ sCombinedId += `${sId},`;
+ }
+ });
+ if (commonUtils.isNotEmptyObject(sCombinedStr)) {
+ sCombinedStr = commonUtils.isNotEmptyObject(sCombinedStr) ? sCombinedStr.substr(0, sCombinedStr.length - 1) : "";
+ }
+ if (commonUtils.isNotEmptyObject(sCombinedId)) {
+ sCombinedId = commonUtils.isNotEmptyObject(sCombinedId) ? sCombinedId.substr(0, sCombinedId.length - 1) : "";
+ }
+ }
+ if (commonUtils.isNotEmptyObject(openTable) && openTable === "materials") {
+ const iIndex = materialsData.findIndex(item => item.sId === materialsSelectedRowId);
+ if (iIndex > -1) {
+ if (!materialsData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = materialsData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? "update" : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ materialsData[iIndex] = { ...materialsData[iIndex], ...addState };
+ }
+ props.onSaveState({
+ materialsData,
+ combinePartsChooseVisible: false,
+ });
+ } else {
+ const iIndex = processData.findIndex(item => item.sId === processSelectedRowId);
+ if (iIndex > -1) {
+ if (!processData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? "update" : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ processData[iIndex] = { ...processData[iIndex], ...addState };
+
+ let returnProcessAssort = [];
+
+ returnProcessAssort.filter(item => item.sParentId === processData[iIndex].sProcessId).forEach(itemProcessAssort => {
+ const iProcessIndex = processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === processData[iIndex].sControlId
+ );
+ if (iProcessIndex > -1) {
+ processData[iProcessIndex] = {
+ ...processData[iProcessIndex],
+ ...addState,
+ };
+ }
+ });
+ // 查询是否有配套工序 sParentProcessId字段判断--结束
+ }
+ props.onSaveState({
+ processData,
+ combinePartsChooseVisible: false,
+ });
+ }
+ }
+ };
+
+ const onCancel = () => {
+ props.onSaveState({ combinePartsChooseVisible: false });
+ };
+
+ const combinePartsTableProps = {
+ app: {
+ ...app,
+ currentPane: {
+ ...app.currentPane,
+ formRoute: "/indexPage/commonList",
+ route: "/indexPage/commonList",
+ name: "combineParts",
+ config: combinePartsConfig,
+ select: handleSelectCombineParts,
+ selectCancel: onCancel,
+ },
+ },
+ formRoute: "/indexPage/commonList",
+ slaveConfig: combinePartsConfig,
+ slaveColumn: combinePartsColumn,
+ slaveData: props.combinePartsData,
+ slaveSelectedRowKeys: props.combinePartsSelectedRowKeys,
+ selectedRowKeys: props.combinePartsSelectedRowKeys,
+ pageLoading: false,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+
+ return (
+
+
+
+ );
+};
+
+// 合版信息弹窗
+const ProductCombinationModal = props => {
+ const { productCombinationVisible } = props;
+ if (!productCombinationVisible) return "";
+
+ const { app } = props;
+ const setProductCombinationTitle = commonFunc.showMessage(app.commonConst, "setProductCombination"); //选择合拼产品标题
+
+ const onCancel = () => {
+ props.onSaveState({ productCombinationVisible: false });
+ };
+
+ const onSelectProductCombination = () => {
+ const { controlData, sCombinationsControlId, packData, enabled } = props;
+ let sCombinedMemo = "";
+ const tableCombineSelectedData = [];
+ const maxArr = [];
+ const maxMap = new Map();
+ let dSumCombineQty = 0;
+ const packFilterData = packData.filter(item => item.sControlId === sCombinationsControlId);
+ for (const tableDataRow of packFilterData) {
+ const { sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName } = tableDataRow;
+ if (dCombineQty > 0) {
+ /* 排版数大于0时,把数据带回到控制表 */
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ dSumCombineQty += dCombineQty;
+ tableCombineSelectedData.push(jsonObj);
+ maxMap.set(Math.floor(dProductQty / dCombineQty), jsonObj);
+ maxArr.push(Math.floor(dProductQty / dCombineQty));
+ }
+ }
+
+ let iMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ iMax = Math.max(...maxArr);
+ }
+ sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ const iControlIndex = controlData.findIndex(item => item.sId === sCombinationsControlId);
+ if (iControlIndex > -1 && enabled) {
+ const addState = {};
+ const maxObj = maxMap.get(iMax);
+ let { handleType } = controlData[iControlIndex];
+ handleType = commonUtils.isEmpty(handleType) ? "update" : handleType;
+ addState.handleType = handleType;
+ addState.sCombinedMemo = sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(maxObj)) {
+ addState.dSinglePQty = commonUtils.isNotEmptyObject(maxObj) ? maxObj.dCombineQty : 0;
+ } else {
+ const packFilterData = packData.findIndex(item => item.sControlId === sCombinationsControlId);
+ if (commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length === 1) {
+ addState.dSinglePQty = packFilterData[0].dCombineQty;
+ } else {
+ addState.dSinglePQty = 1; /* 没合拼给默认值1 */
+ }
+ }
+ addState.iCombineNum = dSumCombineQty;
+ controlData[iControlIndex] = {
+ ...controlData[iControlIndex],
+ ...addState,
+ };
+ }
+ props.onSaveState({
+ productCombinationVisible: false,
+ packData,
+ controlData,
+ });
+ };
+
+ const { setCopy, setDelete } = props.handleGetIcon();
+
+ const packTableProps = {
+ ...commonBusiness.getTableTypes("pack", props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy,
+ setDelete,
+ CalLastWidth: "1150",
+ AutoTableHeight: "300px",
+ },
+ bRowClick: true,
+ footer: "hidden",
+ setOpterationColumn: "Y",
+ };
+
+ return (
+
+
+
+ );
+};
+
+// 复制从弹窗
+const CopyFromModal = props => {
+ const { productProcessInfoChooseVisible } = props;
+ if (!productProcessInfoChooseVisible) return "";
+
+ const { app, sModelsId, masterConfig, productProcessInfoChooseData } = props;
+
+ const onCancel = () => {
+ props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, "processCardSearchResult"); // 复制从工艺卡查询结果
+ if (commonUtils.isNotEmptyObject(productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = productProcessInfoConfig?.sActiveName || processCardSearchResult;
+ }
+
+ productProcessInfoType = {
+ app: {
+ ...app,
+ currentPane: {
+ name: "productProcessInfo",
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ return (
+
+
+
+ );
+};
+
+// 修改全部弹窗
+const ModifyAllModal = props => {
+ const { contextMenuModalVisible } = props;
+ if (!contextMenuModalVisible) return "";
+ return ;
+};
+
+// 工艺流程图弹窗
+const WorkFlowModal = props => {
+ const { workFlowVisible } = props;
+ if (!workFlowVisible) return "";
+
+ const onCancel = () => {
+ props.onSaveState({ workFlowVisible: false });
+ };
+
+ const okButtonStyle = {
+ style: {
+ display: "none",
+ backgroundColor: "red",
+ },
+ };
+ const cancelButtonStyle = {
+ htmlType: "退出",
+ style: {
+ width: 70,
+ height: 50,
+ },
+ };
+ const autoHeight = `calc( 100vh - 92px )`;
+
+ return (
+
+
+
+ );
+};
+
+// 色序弹窗
+const SisColorModal = props => {
+ const { sisColorChooseVisible, app, sTabId, processConfig, sModelsId } = props;
+ if (!sisColorChooseVisible) return "";
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, "setSisColor");
+
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseColors");
+ if (iIndex > -1) {
+ chooseColorsConfig = processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...app,
+ currentPane: {
+ name: "sisColor",
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: "选择颜色",
+ route: "/indexPage/commonList",
+ formRoute: "/indexPage/commonList",
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: "search/sisColor",
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ bEdit: props.enabled,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...(props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {}),
+ };
+
+ const onCancel = () => {
+ props.onSaveState({ sisColorChooseVisible: false });
+ };
+
+ return (
+
+
+
+ );
+};
+
+export { CommonPackEvent, CommonModal };
diff --git a/src/components/Manufacture/ProcessCard/ProcessCard.js b/src/components/Manufacture/ProcessCard/ProcessCard.js
new file mode 100644
index 0000000..e8951f8
--- /dev/null
+++ b/src/components/Manufacture/ProcessCard/ProcessCard.js
@@ -0,0 +1,3658 @@
+/* eslint-disable prefer-destructuring,no-loop-func */
+/**
+ * Created by mar105 on 2019-01-04.
+ */
+
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Modal, Layout, Spin, Avatar, Select, message, Button } from 'antd';
+import ProcessUp from '../../../assets/processUp.svg';
+import ProcessDown from '../../../assets/processDown.svg';
+import DisableProcessUp from '../../../assets/disableprocessUp.svg';
+import DisableProcessDown from '../../../assets/disableprocessDown.svg';
+import ProcessTop from '../../../assets/processTop.svg';
+import DisableProcessTop from '../../../assets/disableprocessTop.svg';
+import ProcessBottom from '../../../assets/processBottom.svg';
+import DisableProcessBottom from '../../../assets/disableprocessBottom.svg';
+import CommonSales from '../../Common/CommonBillEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '../../Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '../../Common/ToolBar/ToolBarNew';
+import StaticEditTable from '../../Common/CommonTable';/* 可编辑表格 */
+import styles from '../../../index.less';
+import selfstyles from '../index.less';
+import CommonView from '../../Common/CommonView';
+import CommonBase from '../../Common/CommonBase';/* 获取配置及数据 */
+import * as commonUtils from '../../../utils/utils';/* 通用方法 */
+import * as commonBusiness from '../../Common/commonBusiness';/* 单据业务功能 */
+import commonConfig from '../../../utils/config';
+import * as commonServices from '../../../services/services';/* 服务类 */
+import CommonListSelect from '../../Common/CommonListSelect';
+import CommonListSelectFlex from '../../Common/CommonListSelectFlex';/* 可编辑的选择界面 */
+import CommonListSelectTree from '../../Common/CommonListSelectTree';/* 树形选择界面 */
+// import SlaveMemo from '../../Common/SlaveMemo';
+import SplitPaste from '../WorkOrder/SplitPaste';/* 选择界面 */
+import AntdDraggableModal from '../../Common/AntdDraggableModal';
+import ShowType from '../../Common/CommonComponent';
+import ContextMenuModal from '../../Common/ContextMenuModal';
+import SvgIcon from '../../SvgIcon';
+
+const { Header, Content, Sider } = Layout;
+const { Option } = Select;
+const { confirm } = Modal;
+
+class ProcessCard extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ fastOrderModalVisible: false,
+ };
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ let {
+ controlColumn, materialsColumn, processColumn, dailyColumn, colorColumn,
+ } = nextProps;
+ const { formData, currentId } = nextProps;
+ if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ /* bGrd代表是否是表格 */
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ const checkConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0];
+ const checkColumn = commonFunc.getHeaderConfig(checkConfig);
+
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrol'.toUpperCase())[0];
+ controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn);
+
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase())[0];
+ materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn);
+
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId');
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ processColumn = commonFunc.getHeaderConfig(processConfig, processColumn);
+ let colorConfigGrdVisible;
+ const colorConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftProductparam'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(colorConfigTrue)) {
+ colorConfigGrdVisible = colorConfigTrue.bGrdVisible;
+ if (colorConfigGrdVisible) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ }
+ }
+ let dailyConfigGrdVisible;
+ const dailyConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(dailyConfigTrue)) {
+ dailyConfigGrdVisible = dailyConfigTrue.bGrdVisible;
+ if (dailyConfigGrdVisible) {
+ dailyColumn = commonFunc.getHeaderConfig(dailyConfigTrue, dailyColumn);
+ }
+ }
+
+
+ let addState = {};
+ const dailyConfig = dailyConfigGrdVisible ? dailyConfigTrue : '';
+ const colorConfig = colorConfigGrdVisible ? colorConfigTrue : '';
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.dailyConfig = dailyConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig);
+ }
+ this.props.onSaveState({
+ masterConfig,
+ slaveConfig,
+ slaveColumn,
+ checkConfig,
+ checkColumn,
+ sId,
+ pageLoading: false,
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ dailyConfig,
+ dailyColumn,
+ ...addState,
+ dailyConfigGrdVisible,
+ colorConfigGrdVisible,
+ });
+ }
+
+ // // 未清复制到时,产品ID需要再获取动态部件
+ // const sId = currentId !== undefined ? currentId : '';
+ // if (sId === '' && commonUtils.isNotEmptyObject(this.props.masterData) && !this.props.bGetPartsData) {
+ // const { sAllPartsName } = this.props.masterData;
+ // if (sAllPartsName !== undefined) {
+ // const allPartsName = sAllPartsName.split(',');
+ // const sPartsName = allPartsName[0];
+ // if (commonUtils.isEmptyObject(this.props.masterConfig[`dSumPQty${sPartsName}`])) {
+ // this.handleMasterChange('master', 'sProductClassifyName');
+ // this.props.onSaveState({ bGetPartsData: true });
+ // }
+ // }
+ // }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { controlColumn, slaveConfig } = nextProps;
+ return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn);
+ }
+
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnFastOrder' || menu.sControlName === 'BtnChooseProcess' || menu.sControlName === 'BtnChooseMaterials') {
+ return !this.props.enabled;
+ }
+ };
+
+ /* 获取表数据 */
+ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, extraState = {}) => {
+ const { currentId } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ const addStateControl = await this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ this.props.handleGetDataSet({
+ name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ const addStateProcess = await this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ }
+ });
+ addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ }
+ }
+ let addStateColor = {};
+ if (colorConfig) {
+ addStateColor = await this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+
+ let addStateDaily = {};
+ if (dailyConfig) {
+ addStateDaily = await this.props.handleGetDataSet({
+ name: 'daily', configData: dailyConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ this.props.onSaveState({
+ pageLoading: false, ...addStateControl, ...addStateProcess, ...addStateColor, ...addStateDaily, ...extraState,
+ });
+ };
+
+ handleBackProcessData = async (config, isWait) => {
+ const { token } = this.props.app;
+ const { sModelsId, sBackProcessData } = this.props;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === '') {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: '', sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ this.props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ }
+
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /* 非列表联动下拉 */
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const {
+ sModelsId, app,
+ } = this.props;
+ const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = this.props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') {
+ backProcessData = await this.handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) {
+ let iIndex;
+ allPartsName.forEach((sPartsName) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0];
+
+ const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) { /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ sBackProcessClassifyData = rows;
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) {
+ const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : [];
+ const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : [];
+ const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : [];
+ const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : [];
+ const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : [];
+
+ let ConfigNew;
+ allPartsName.forEach((item) => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...returnChange.masterData, ...masterDataDefault };
+ if (isWait) {
+ return {
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ };
+ } else {
+ this.props.onSaveState({
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ });
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = '';
+ returnChange.masterData.sProductNo = '';
+ returnChange.masterData.sProductName = '';
+ }
+ this.props.onSaveState({ ...returnChange });
+ } else {
+ this.props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ /* 数据生成按钮 */
+ handleDataCreate= async () => {
+ let { checkProcessClassifyData } = this.props;
+ const {
+ masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app,
+ } = this.props;
+ const { token } = this.props.app;
+ const paramMap = {};
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+ let cpProcessName = '';
+ checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData;
+ // paramMap.modelName = masterData.modelName;
+ paramMap.sCustomerId = masterData.sCustomerId;
+ paramMap.sCustomerName = masterData.sCustomerName;
+ paramMap.sProductClassifyId = masterData.sProductClassifyId;
+ paramMap.sProductId = masterData.sProductId;
+ paramMap.sProductName = masterData.sProductName;
+ paramMap.sProductStyleId = masterData.sProductStyleId;
+ paramMap.sProductStyle = masterData.sProductStyle;
+ paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0;
+ paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0;
+ paramMap.dProductHeight = 0;
+ paramMap.dProductQty = masterData.dProductQty;
+ const partsInfo = [];
+ allPartsName.forEach((item) => {
+ const partInfo = {};
+ partInfo.sPartsName = item;
+ partInfo.dPartsQty = masterData.dProductQty;
+ partInfo.dSumPQty = masterData[`dSumPQty${item}`];
+ const materialsInfo = [];
+ const material = {};
+ material.sMaterialsId = masterData[`sMaterialsId${item}`];
+ material.sMaterialsNo = masterData[`sMaterialsNo${item}`];
+ material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`];
+ materialsInfo.push(material);
+ partInfo.materialsInfo = materialsInfo;
+ partInfo.iPositiveColor = masterData[`iPositiveColor${item}`];
+ partInfo.iPrintModePo = masterData[`iPrintModePo${item}`];
+ if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') {
+ const processInfo = [];
+ checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => {
+ if (!commonUtils.isEmpty(masterData[card.sId + item])) {
+ if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') {
+ partInfo.sPrintProcessId = masterData[card.sId + item];
+ } else {
+ const process = {};
+ process.sProductClassifyId = card.sId;
+ process.sProcessId = masterData[card.sId + item];
+ if (masterData[card.sId + card.sName + item] !== undefined) {
+ process.sProcessName = masterData[card.sId + card.sName + item];
+ process.sType = masterData[card.sId + card.sType + item];
+ processInfo.push(process);
+ }
+ }
+ }
+ });
+ partInfo.processInfo = processInfo;
+ partsInfo.push(partInfo);
+ }
+ });
+ const productProcess = [];
+ checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => {
+ if (!commonUtils.isEmpty(masterData[card.sId])) {
+ const process = {};
+ process.sProductClassifyId = card.sId;
+ process.sProcessId = masterData[card.sId];
+ process.sProcessName = masterData[card.sId + card.sName];
+ if (masterData[card.sId + card.sName] !== undefined) {
+ cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`;
+ productProcess.push(process);
+ }
+ }
+ });
+ paramMap.cpProcessName = cpProcessName;
+ paramMap.productProcessInfo = productProcess;
+ paramMap.partsInfo = partsInfo;
+
+ if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) ||
+ commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) {
+ // this.props.onSaveState({ fastOrderModalVisible: false });
+ message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */
+ return;
+ }
+ /* 验证产品规格是否 符合数字*数字格式 */
+ const sProductStyle = paramMap.sProductStyle;
+ if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */
+ const arr = sProductStyle.split('*');
+ const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/;
+ if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) {
+ for (let i = 0; i < arr.length; i += 1) {
+ if (!numCheck.test(arr[i])) { /* 验证是否数字 */
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ }
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ /* 验证*两边是否是数字 */
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ 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);
+ if (!commonUtils.isEmptyArr(partsOldInfo)) {
+ partsOldInfo.forEach((item) => {
+ if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) {
+ this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` });
+ }
+ });
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ partsNewInfo.forEach((partInfo, iIndex) => {
+ const partsDataRow = {};
+ for (const child of Object.keys(partInfo)) {
+ partsDataRow[child] = partInfo[child];
+ }
+ partsDataRow.handleType = 'add';
+ partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */
+ partsDataRow.sId = commonUtils.createSid();
+ partsDataRow.sParentId = masterData.sId;
+ if (partsDataRow.iPrintMode !== 3) {
+ partsDataRow.iOppositeColor = partsDataRow.iPositiveColor;
+ }
+ delete partsDataRow.dMaterialsKQty;
+ delete partsDataRow.dMaterialsLength;
+ delete partsDataRow.dMaterialsWidth;
+ if (productClassify.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) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+
+ partInfo.processInfo.forEach((process, iOrder) => {
+ let processAfterDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processAfterDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processAfterDataRow[child] = process[child];
+ }
+ processAfterDataRow.handleType = 'add';
+ processAfterDataRow.sProcessId = process.sProcessId;
+ const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId);
+ if (iProcessAfterIndex > -1) {
+ processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段
+ }
+ processAfterDataRow.sType = process.sType;
+ processAfterDataRow.iPartOrder = iIndex;
+ processAfterDataRow.iOrder = iOrder + 1;
+ processAfterDataRow.sPartsName = partsDataRow.sPartsName;
+ processAfterDataRow.sId = commonUtils.createSid();
+ processAfterDataRow.sParentId = masterData.sId;
+ processAfterDataRow.sControlId = partsDataRow.sId;
+ processData.push(processAfterDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ });
+ productProcessInfo.forEach((process, iOrder) => {
+ let processProductDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processProductDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processProductDataRow[child] = process[child];
+ }
+ const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId);
+ if (iProductProcessIndex > -1) {
+ processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段
+ }
+ processProductDataRow.handleType = 'add';
+ processProductDataRow.sType = '3';
+ processProductDataRow.sPartsName = '';
+ processProductDataRow.iPartOrder = 999;
+ processProductDataRow.iOrder = iOrder + 1;
+ processProductDataRow.sId = commonUtils.createSid();
+ processProductDataRow.sParentId = masterData.sId;
+ processData.push(processProductDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ processData = this.sortData(controlData, processData);
+ this.props.onSaveState({
+ materialsConfig, slaveData, controlData, materialsData, processData, fastOrderModalVisible: false, materialsSelectedRowKeys: [],
+ });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+
+ /* 勾选工序分类 */
+ handleProcessChange=(e, value, sPartsName) => {
+ let { checkProcessClassifyData } = this.props;
+ let index = -1;
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (e.target.checked) {
+ if (index <= -1) {
+ const newvalue = { ...value };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ } else if (index > -1) {
+ checkProcessClassifyData.splice(index, 1);
+ }
+ this.props.onSaveState({ checkProcessClassifyData });
+ };
+
+ handleSelectChangeProcess = (sAssignField, value, option) => {
+ const { masterData, sBackProcessClassifyData } = this.props;
+ let { checkProcessClassifyData } = this.props;
+ if (sAssignField !== undefined) {
+ // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype
+ const sAssignFields = sAssignField.split(',');
+ const recordRow = option.props['data-recordrow'];
+ sAssignFields.forEach((item, iAssignIndex) => {
+ const itemsplits = item.split(':');
+ masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]];
+ if (iAssignIndex === 0) {
+ let index = -1;
+ const sPartsName = itemsplits[0].replace(recordRow.sParentId, '');
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (index <= -1) {
+ const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId);
+ if (iBackProcessIndex > -1) {
+ const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ }
+ }
+ });
+ this.props.onSaveState({ masterData, checkProcessClassifyData });
+ }
+ }
+
+ handleA = (sId) => {
+ const { sBackProcessData } = this.props;
+ const data = sBackProcessData.filter(item => item.sParentId === sId);
+ const optionProcess = [];
+ data.forEach((item) => {
+ optionProcess.push();
+ });
+ return optionProcess;
+ }
+
+ handleSave = async () => {
+ this.form.validateFields((err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, dailyConfig, dailyData, dailyDelData, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) ||
+ (!commonBusiness.validateTable(materialsConfig, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, this.props) || !commonBusiness.validateTable(dailyConfig, dailyData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ let flag = true;
+ for (const item of materialsData) {
+ if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ flag = false;
+ break;
+ }
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData('daily', dailyConfig.sTbName, dailyData, dailyDelData));
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ }
+ });
+ };
+
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ const { controlData } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'materials' || name === 'process') {
+ const { [`${name}Data`]: tableData, enabled } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (enabled && iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ }
+ this.props.onSaveState(addState);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ if (value === undefined) {
+ return true;
+ }
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleGetFilterData = (name) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys } = this.props;
+ if (data !== undefined && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ };
+ handleKeyDown = (e, record, sName, name) => {
+ /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */
+ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) {
+ if (e.key !== 'F12') {
+ e.preventDefault();
+ }
+ } else {
+ this.props.onKeyDown(e, record, sName, name);
+ }
+ }
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, flag) => {
+ /* 外置处理业务 */
+ const {
+ gdsformconst, controlData, controlSelectedRowKeys, [`${name}Data`]: tableData,
+ } = this.props;
+ if (name === 'control') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ // let dPartsQty = 0;
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // slaveData.forEach((item) => {
+ // dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ // if (productIdDropDown) {
+ // const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId);
+ // if (iProductIdIndex > -1) {
+ // tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName;
+ // }
+ // }
+ // }
+ // tableDataRow.dPartsQty = dPartsQty;
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if (name === 'materials' || name === 'process') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件
+ return;
+ }
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else {
+ return this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = async (name, tableSelectedRowKeys) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ }
+ /** 删除表格数据 */
+ handleTableDel = async (name, flag, tableSelectedRowKeys) => {
+ if (name === 'control') {
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materialsReturnData,
+ ...processReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ return false;
+ }
+ } else if (name === 'process') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, materialsConfig, materialsData, token,
+ } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ let iMaterialsIndex = -1;
+ const sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ const processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ }
+ }));
+ processReturnData.processDelData.concat(tableDelData);
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = '';
+ materialsData[iMaterialsIndex].sProcessTbId = '';
+ materialsData[iMaterialsIndex].sMaterialsProcessName = '';
+ }
+ this.props.onSaveState({
+ ...processReturnData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ } else {
+ return this.props.onDataRowDel(name, flag, tableSelectedRowKeys);
+ }
+ };
+
+ handleCalculation = async () => {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`;
+ const {
+ masterConfig, slaveConfig, controlConfig, materialsConfig, processConfig, app,
+ } = this.props;
+ let {
+ slaveData, controlData, materialsData, processData, masterData,
+ } = this.props;
+ const data = [];
+ data.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ data.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ data.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ data.push(commonBusiness.mergeData('materials', `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true));
+ data.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ const value = { data, sClientType: '1', sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) { /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+ this.props.onSaveState({
+ slaveData, controlData, materialsData, processData, masterData, loading: false,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess'));
+ } else { /* 失败 */
+ this.props.onSaveState({
+ loading: false,
+ });
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ /** 按钮操作事件 */
+ handleButtonClick = async (name) => {
+ if (name === 'BtnCalculation') {
+ this.props.onSaveState({
+ loading: true,
+ });
+ this.handleCalculation();
+ } else if (name === 'BtnChooseProcess') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnChooseMaterials') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnFastOrder') {
+ const {
+ masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData,
+ } = this.props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (commonUtils.isEmptyArr(checkProcessClassifyData) && commonUtils.isNotEmptyArr(controlData) && !commonUtils.isEmpty(changeData) && !commonUtils.isEmpty(changeData.sAllPartsName)) {
+ const allPartsName = changeData.sAllPartsName.split(',');
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach((item) => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData.filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ }
+ this.props.onSaveState({ fastOrderModalVisible: true, ...addState });
+ } else {
+ this.props.onButtonClick(name);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ controlConfig, materialsConfig, processConfig,
+ } = this.props;
+ const bReturn = await this.props.onSearchData(handleType);
+ if (bReturn) {
+ this.handleGetData(controlConfig, materialsConfig, processConfig);
+ }
+ };
+
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig,
+ } = this.props;
+ this.props.onEdit(() => {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, { loading: false, enabled: true });
+ });
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, masterData, slaveData, controlData, materialsData, processData, colorData, app, token, sModelsId, formRoute,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.processData = processData;
+ copyTo.colorData = colorData;
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ },
+ });
+ }
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig,
+ } = props;
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ sSlaveTable: [
+ {
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: checkConfig.sTbName,
+ relationName: 'sBillId',
+ }, {
+ tableName: controlConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: materialsConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: processConfig.sTbName,
+ relationName: 'sParentId',
+ }],
+ },
+ };
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.props.onDelDataSuccess(props);
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app,
+ } = this.props;
+ const onGetData = this.props.onGetData;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const { copyTo } = app.currentPane;
+ const { userinfo } = app;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onGetData(masterConfig, slaveConfig, checkConfig);
+ onGetDataOk(controlConfig, materialsConfig, processConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const {
+ masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig,
+ } = this.props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await this.props.onAdd(config, copyTo, true);
+ const { masterData, slaveData } = state;
+ const controlData = [];
+ const materialsData = [];
+ let processData = [];
+ const colorData = [];
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const {
+ sModelsId, token,
+ } = this.props;
+ const bCkxCopyFromTechnology = '0'; // 工艺卡不用再取工艺卡。 app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1') {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach((slaveItem) => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const bProcessAssort = true;
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = this.props;
+ const sSlaveId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sSlaveId) ? copyTo.slaveData[0].sSlaveId : copyTo.slaveData[0].sId;
+ // const condition = { sSlaveId: copyTo.slaveData[0].sSlaveId };
+ const condition = { sSlaveId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ copyTo.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = this.sortData(controlData, processData);
+ }
+ } else {
+ state.fastOrderModalVisible = this.props.bFastOrderView;
+ const { sModelsId } = this.props;
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true);
+ state = { ...state, ...addState };
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1; /* 序号从1开始 */
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ const stateNew = {
+ ...state,
+ controlData,
+ controlSelectedRowKeys: [],
+ materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ colorData,
+ processSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ this.props.onSaveState(stateNew);
+ }
+ };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, slaveSelectedRowKeys, controlSelectedRowKeys, sModelsId, token,
+ slaveConfig, controlConfig, materialsConfig, processConfig, colorConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld,
+ controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld,
+ } = this.props;
+ let { masterData } = this.props;
+ if (name === 'productProcessInfo') {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ const controlData = [];
+ const materialsData = [];
+ const processData = [];
+ const colorData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ controlDataOld.forEach((item) => {
+ item.handleType = 'del';
+ controlDelData.push(item);
+ });
+ addState.controlDelData = controlDelData;
+ materialsDataOld.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ processDataOld.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ let iSlaveIndex = -1;
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ const condition = { sCardId: selectData[0].sId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ processData,
+ materialsData,
+ controlData,
+ colorData,
+ masterData,
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === 'process') {
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ }
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsSelectedRowKeys: [],
+ });
+ }
+ };
+
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = '';
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = '';
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace('.', '');
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace('.', '');
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2);
+ });
+ return processData;
+ };
+ /* 控制排序 */
+ orderData = (e, name, type) => {
+ const {
+ [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app,
+ } = this.props;
+ let { [`${name}Data`]: processData } = this.props;
+ if (name === 'process') {
+ if (commonUtils.isEmptyArr(tableselectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */
+ return;
+ }
+ if (commonUtils.isEmptyArr(processData)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */
+ return;
+ }
+ const processNew = processData.filter((item) => { /* 获取勾选数据集 */
+ return tableselectedRowKeys.indexOf(item.sId) > -1;
+ });
+ if (commonUtils.isEmptyArr(processNew)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */
+ return;
+ }
+ const len = processData.length;
+ const newLen = processNew.length;
+ let num = 0.01;/* 循环增加体 */
+ let targetiOrder = -1;
+ if (type === 1) { /* 上移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex - 1].iOrder - 1; /* 目标排序号 */
+ }
+ } else if (type === 2) { /* 下移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex + 1].iOrder;
+ }
+ } else if (type === 0) { /* 置顶 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */
+ return;
+ } else {
+ targetiOrder = processData[0].iOrder - 1;
+ }
+ } else if (type === 3) { /* 置底 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */
+ return;
+ } else {
+ targetiOrder = processData[len - 1].iOrder + 1;
+ }
+ }
+ processNew.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.sType)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */
+ return;
+ }
+ const index1 = processData.findIndex(item1 => item1.sId === item.sId);
+ processData[index1] = { ...item, iOrder: targetiOrder + num };
+ num += 0.01;
+ });
+ processData = this.sortData(controlData, processData);
+ const processSortData = this.props.orderNum(processData, controlSelectedRowKeys);
+ if (commonUtils.isNotEmptyArr(processSortData)) {
+ processData = processSortData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: processData });
+ }
+ };
+
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ if (name === 'slave') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, masterConfig, controlConfig, controlData: controlDataOld, masterData, sModelsType,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') {
+ let dPartsQty = 0;
+ tableData.forEach((item) => {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ const controlData = [];
+ controlDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ itemNew.dPartsQty = dPartsQty;
+ controlData.push(itemNew);
+ });
+ addState.controlData = controlData;
+ }
+ if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ tableDataRow.sProductId = '';
+ tableDataRow.sProductNo = '';
+ tableDataRow.sProductName = '';
+ tableData[iIndex] = tableDataRow;
+ } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && tableDataRow.handleType === 'add') {
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', sFieldName);
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ }
+ }
+ /* 膜内工艺卡算法逻辑 */
+ if (sModelsType === 'manufacture/workOrder3' || sModelsId === '101251240115016046551448370') {
+ const controlData = addState.controlData;
+ if (sFieldName === 'dProductLength' || sFieldName === 'dProductWidth' || sFieldName === 'dCombineCoefficient') {
+ if (commonUtils.isNotEmptyArr(tableData) && tableData.length > 1 && commonUtils.isNotEmptyArr(controlData)) {
+ let sumTotal = 0;
+ tableData.forEach((item) => {
+ const singleSum = item.dProductLength * item.dProductWidth * item.dCombineCoefficient;
+ sumTotal += singleSum;
+ });
+ /* 计算多产品合拼的折算率 */
+ const dConversionRate = ((controlData[0].dMaterialsLength * controlData[0].dMaterialsWidth) *
+ (tableDataRow.dProductLength * tableDataRow.dProductWidth * tableDataRow.dCombineCoefficient)) / sumTotal / tableDataRow.dCombineCoefficient / 1000000;
+ tableDataRow.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ tableData[iIndex] = tableDataRow;
+ tableData.forEach((item, index) => {
+ if (item.sId !== sId) {
+ const addSata = {};
+ const dConversionRate = ((controlData[0].dMaterialsLength * controlData[0].dMaterialsWidth) *
+ (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) / sumTotal / item.dCombineCoefficient / 1000000;
+ addSata.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ tableData[index] = { ...item, ...addSata };
+ }
+ });
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, ...addState });
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsId, sModelsType, slaveData,
+ } = this.props;
+ let { masterData } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ }
+ /* 膜内工艺卡算法逻辑 */
+ if (sModelsType === 'manufacture/workOrder3' && sModelsId === '101251240115016046551448370') {
+ /* 排版数dSinglePQty=列数iCol*iRow个数 */
+ const iCol = commonUtils.isNull(tableDataRow.iCol, 0);
+ const iRow = commonUtils.isNull(tableDataRow.iRow, 0);
+ const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0));
+ const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0));
+ const dCutEdge = commonUtils.isNull(tableDataRow.dCutEdge, 0);
+ const dColGap = commonUtils.isNull(tableDataRow.dColGap, 0);
+ const dRowGap = commonUtils.isNull(tableDataRow.dRowGap, 0);
+ const dScraperGap = commonUtils.isNull(tableDataRow.dScraperGap, 0);
+ const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0));
+ const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0));
+ const dSinglePQty = commonUtils.isNull(tableDataRow.dSinglePQty, 0);
+ if (sFieldName === 'iCol' || sFieldName === 'iRow') {
+ tableDataRow.dSinglePQty = iCol * iRow;
+ }
+ /* 膜宽dMaterialsWidth =图文尺寸dMachineWidth*列数iCol+图文到膜边尺寸 dCutEdge*2+图文到图文的尺寸dColGap*(列数iCol-1) */
+ if (sFieldName === 'dMachineWidth' || sFieldName === 'iCol' || sFieldName === 'dCutEdge' || sFieldName === 'dColGap') {
+ tableDataRow.dMaterialsWidth = (dMachineWidth * iCol) + (dCutEdge * 2) + (dColGap * (iCol - 1));
+ }
+ /* 版周长 dMaterialsLength=(版周长图文尺寸dMachineLength+图文到图文尺寸dRowGap)*版周长个数iRow+dScraperGap刮刀距离 */
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap') {
+ tableDataRow.dMaterialsLength = ((dMachineLength + dRowGap) * iRow) + dScraperGap;
+ }
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap' || sFieldName === 'dMaterialsLength') {
+ let dPlatediameter = dMaterialsLength / Math.PI;
+ dPlatediameter = commonUtils.convertFixNum(dPlatediameter, 2);
+ const addState = {};
+ addState.dPlatediameter = dPlatediameter;
+ addState.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ masterData = { ...masterData, ...addState };
+ }
+ /* 1款拼版 从表产品折算率=版周长*膜宽/1000000 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (slaveData.length === 1) { /* 只有一条从表数据 */
+ const addState = {};
+ addState.dConversionRate = (dMaterialsLength * dMaterialsWidth) / 1000000;
+ addState.dCombineCoefficient = dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(slaveData[0].handleType) ? 'update' : slaveData[0].handleType;
+ slaveData[0] = { ...slaveData[0], ...addState };
+ } else if (slaveData.length > 1) { /* 多款产品合拼的 折算率 */
+ let sumTotal = 0;
+ slaveData.forEach((itemNew) => {
+ const singleSum = itemNew.dProductLength * itemNew.dProductWidth * itemNew.dCombineCoefficient;
+ sumTotal += singleSum;
+ });
+ slaveData.forEach((item, index) => {
+ const addState = {};
+ /* 多产品折算率 */
+ const dConversionRate = ((dMaterialsLength * dMaterialsWidth) *
+ (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) / sumTotal / item.dCombineCoefficient / 1000000;
+ addState.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ addState.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ slaveData[index] = { ...item, ...addState };
+ });
+ }
+ }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, slaveData, masterData,
+ });
+ } else if (name === 'materials') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === 'sType') {
+ if (tableData[iIndex].sType === '2') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData });
+ } else if (name === 'process') {
+ const {
+ [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, processConfig, token,
+ } = this.props;
+ let { processDelData, materialsDelData } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let iMaterialsIndex = -1;
+ let sControlId = '';
+ if (iIndex > -1) {
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) {
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = '工艺参数';
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = 'del';
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ if (tableData[iIndex].sType === '3') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState });
+ } else {
+ this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ handleCancelFastOrderModal = () => {
+ this.props.onSaveState({ fastOrderModalVisible: false });
+ };
+ handleCancelProcessChooseModal = () => {
+ this.props.onSaveState({ processChooseVisible: false });
+ };
+ handleCancelMaterialsChooseModal = () => {
+ this.props.onSaveState({ materialsChooseVisible: false });
+ };
+ handleCancelProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData, app,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'control') {
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`;
+ tableDataRow.sAllId = tableDataRow.sId;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSrcProcessTbId = item.sId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ this.props.onSaveState({
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { total: tableData.length, current: 9999 },
+ materialsSelectedRowKeys: [],
+ materialsData,
+ processData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+ return tableDataRow;
+ };
+ // ---
+ handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ let sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) {
+ sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`;
+ }
+ }
+ processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr };
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+
+ render() {
+ const { pageLoading, masterData, fastOrderModalVisible } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+
+
+ );
+ }
+}
+
+const ProcessCardComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, masterConfig: masterConfigOld, slaveData, slavePagination, sModelsId, sTabId, app, colorConfigGrdVisible, dailyConfigGrdVisible, sisColorChooseVisible,
+ } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ addProps.masterConfig = masterConfig;
+ }
+
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ const pagination = {
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const width = '18px';
+ const height = '18px';
+ const setAdd = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setCopy = {
+ title: '复制',
+ img: ,
+ disableimg: ,
+ };
+ const setCopyAll = {
+ title: '复制部件',
+ img: ,
+ disableimg: ,
+ };
+ const setDelete = {
+ title: '删除',
+ img: ,
+ disableimg: ,
+ };
+ const setProcess = {
+ title: '工序',
+ img: ,
+ disableimg: ,
+ };
+ const setMaterial = {
+ title: '材料',
+ img: ,
+ disableimg: ,
+ };
+ const processUp = {
+ title: '上移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processDown = {
+ title: '下移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processTop = {
+ title: '置顶',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processBottom = {
+ title: '置底',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ let chooseProcessConfigRow;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfigRow;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // const mProps = { ...commonBusiness.createMemoProps('slave', props) };
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ // rowSelection: null,
+ setAdd,
+ setCopyAll,
+ setDelete,
+ setProcess,
+ setMaterial,
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ AutoTableHeight: 132,
+ // onRow: (record) => {
+ // return {
+ // onClick: () => { props.onRowClick('control', record); },
+ // onDoubleClick: () => { props.onDoubleClick('control', record); },
+ // onMouseEnter: () => { props.onRowMouseEnter('control', record); },
+ // };
+ // },
+ },
+ };
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ isDragAndDrop: props.enabled && true,
+ };
+ let colorTableProps = {};
+ // let cProps = {};
+ if (colorConfigGrdVisible) {
+ colorTableProps = {
+ ...commonBusiness.getTableTypes('color', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // cProps = { ...commonBusiness.createMemoProps('color', props) };
+ }
+
+ let dailyRecordTableProps = {};
+ if (dailyConfigGrdVisible) {
+ dailyRecordTableProps = {
+ ...commonBusiness.getTableTypes('daily', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ }
+ let searchProcessType = {};
+ let chooseProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.processChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (iIndex > -1) {
+ chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+
+ searchProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: props.processChooseData.sMenuName,
+ route: props.processChooseData.sName,
+ formId: props.processChooseData.sId,
+ key: sModelsId + props.processChooseData.sId,
+ sModelsType: props.processChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ // ----
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 工序表选择颜色 */
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors');
+ if (iIndex > -1) {
+ chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'sisColor',
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: '选择颜色',
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: 'search/sisColor',
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {},
+ };
+ }
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const productInfo = commonFunc.showMessage(app.commonConst, 'productInfo');/* 产品信息 */
+ const controlInfo = commonFunc.showMessage(app.commonConst, 'controlInfo');/* 部件信息 */
+ const materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */
+ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */
+ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */
+ const dailyInfo = commonFunc.showMessage(app.commonConst, 'dailyInfo');/* 日志信息 */
+ const setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ const setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */
+
+ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 */
+ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */
+ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */
+ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */
+ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */
+ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底 */
+ // --------
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSales(ProcessCard));
diff --git a/src/components/Manufacture/ProcessCardPack/ProcessCardPack.js b/src/components/Manufacture/ProcessCardPack/ProcessCardPack.js
new file mode 100644
index 0000000..da8a034
--- /dev/null
+++ b/src/components/Manufacture/ProcessCardPack/ProcessCardPack.js
@@ -0,0 +1,5826 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring,no-loop-func */
+/**
+ * Created by mar105 on 2019-01-04.
+ */
+
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Modal, Layout, Spin, Avatar, Select, message, Button, Tabs } from 'antd';
+import AddIcon from '../../../assets/add.svg';
+import DisableAddIcon from '../../../assets/disableadd.svg';
+import DelIcon from '../../../assets/delete.svg';
+import DisableDelIcon from '../../../assets/disabledelete.svg';
+import CopyIcon from '../../../assets/copy.svg';
+import CopyAllIcon from '../../../assets/copyall.svg';
+import DisableCopyIcon from '../../../assets/disablecopy.svg';
+import DisableCopyAllIcon from '../../../assets/disablecopyall.svg';
+import MateriallIcon from '../../../assets/material.svg';
+import DisableMateriallIcon from '../../../assets/disablematerial.svg';
+import ProcessIcon from '../../../assets/process.svg';
+import DisableProcessIcon from '../../../assets/disableprocess.svg'; /* 获取图标 */
+import ProcessUp from '../../../assets/processUp.svg';
+import ProcessDown from '../../../assets/processDown.svg';
+import DisableProcessUp from '../../../assets/disableprocessUp.svg';
+import DisableProcessDown from '../../../assets/disableprocessDown.svg';
+import ProcessTop from '../../../assets/processTop.svg';
+import DisableProcessTop from '../../../assets/disableprocessTop.svg';
+import ProcessBottom from '../../../assets/processBottom.svg';
+import DisableProcessBottom from '../../../assets/disableprocessBottom.svg';
+import CommonSales from '../../Common/CommonBillEvent'; /* 继承销售模块业务功能 */
+import * as commonFunc from '../../Common/commonFunc'; /* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '../../Common/ToolBar/ToolBarNew';
+import StaticEditTable from '../../Common/CommonTable'; /* 可编辑表格 */
+import styles from '../../../index.less';
+import selfstyles from '../index.less';
+import CommonView from '../../Common/CommonView';
+import CommonBase from '../../Common/CommonBase'; /* 获取配置及数据 */
+import * as commonUtils from '../../../utils/utils'; /* 通用方法 */
+import * as commonBusiness from '../../Common/commonBusiness'; /* 单据业务功能 */
+import commonConfig from '../../../utils/config';
+import * as commonServices from '../../../services/services'; /* 服务类 */
+import CommonListSelect from '../../Common/CommonListSelect';
+import CommonListSelectFlex from '../../Common/CommonListSelectFlex';/* 可编辑的选择界面 */
+import CommonListSelectTree from '../../Common/CommonListSelectTree';/* 树形选择界面 */
+import StaticEditTree from '../../Common/Tree/StaticTree';
+import Close from '../../../assets/closeleft.svg';
+import AddChildIcon from '../../../assets/addChild.svg';
+import DisableAddChildIcon from '../../../assets/disableaddChild.svg';
+import AntdDraggableDiv from '../../Common/AntdDraggableDiv';
+import Eject from '../../../assets/ejectleft.svg';
+// import SlaveMemo from '../../Common/SlaveMemo';
+import SplitPaste from '../WorkOrder/SplitPaste'; /* 选择界面 */
+import AntdDraggableModal from '../../Common/AntdDraggableModal';
+import ShowType from '../../Common/CommonComponent';
+import ContextMenuModal from '../../Common/ContextMenuModal';
+import CommonListSelectProductProcess from '../../Common/CommonListSelectAssignment';
+import CommonListSelectProductMaterial from '../../Common/CommonListSelectProductMaterial';
+import SvgIcon from "../../SvgIcon";
+
+const { Header, Content, Sider } = Layout;
+const { Option } = Select;
+const { confirm } = Modal;
+const { TabPane } = Tabs;
+
+const isQianCai = false; // 千彩s
+
+class ProcessCardPack extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ fastOrderModalVisible: false,
+ currentTab: 1,
+ };
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ let {
+ controlColumn, materialsColumn, processColumn, dailyColumn, colorColumn, packColumn,
+ } = nextProps;
+ const { formData, currentId } = nextProps;
+ if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ /* bGrd代表是否是表格 */
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ const checkConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0];
+ const checkColumn = commonFunc.getHeaderConfig(checkConfig);
+
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrol'.toUpperCase())[0];
+ controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn);
+
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase())[0];
+ materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn);
+
+ const finishedMaterialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase() && item.showName === '成品材料')[0];
+ const finishedMaterialsColumn = finishedMaterialsConfig ? commonFunc.getHeaderConfig(finishedMaterialsConfig) : false;
+
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId');
+
+ const finishedProcessConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase() && item.showName === '成品工序')[0];
+ const finishedProcessColumn = finishedProcessConfig ? commonFunc.getHeaderConfig(finishedProcessConfig) : false;
+
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ processColumn = commonFunc.getHeaderConfig(processConfig, processColumn);
+ /* 合版信息表 */
+ const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrolcombine'.toUpperCase())[0];
+ const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'sCustomerName'
+ || item.sName === 'sProductId'
+ || item.sName === 'sCustomerId'
+ || item.sName === 'sProductNo'
+ || item.sName === 'sProductName'
+ || item.sName === 'dProductQty'
+ || item.sName === 'sProductStyle'
+ || item.sName === 'sProductUnit')); /* 拼接从表配置,客户名称 ,产品名称,生产数 */
+ const salveChooseConfigFilter = [];
+ if (commonUtils.isNotEmptyArr(slaveChooseConfig)) {
+ slaveChooseConfig.forEach((item) => {
+ const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName);
+ if (iIndex === -1) {
+ const itemNew = Object.assign({}, item);
+ itemNew.bNotEmpty = false;
+ salveChooseConfigFilter.push(itemNew);
+ }
+ });
+ }
+ /* 拼接排序 */
+ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) {
+ let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === 'iOrder');
+ packFilter = packFilter.concat(salveChooseConfigFilter);
+ const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== 'iOrder');
+ packFilter = packFilter.concat(packFilterOther);
+ packConfig.gdsconfigformslave = packFilter;
+ }
+ packColumn = commonFunc.getHeaderConfig(packConfig, packColumn);
+
+ let colorConfigGrdVisible;
+ const colorConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftProductparam'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(colorConfigTrue)) {
+ colorConfigGrdVisible = colorConfigTrue.bGrdVisible;
+ if (colorConfigGrdVisible) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ }
+ }
+ let dailyConfigGrdVisible;
+ const dailyConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(dailyConfigTrue)) {
+ dailyConfigGrdVisible = dailyConfigTrue.bGrdVisible;
+ if (dailyConfigGrdVisible) {
+ dailyColumn = commonFunc.getHeaderConfig(dailyConfigTrue, dailyColumn);
+ }
+ }
+
+
+ let addState = {};
+ const dailyConfig = dailyConfigGrdVisible ? dailyConfigTrue : '';
+ const colorConfig = colorConfigGrdVisible ? colorConfigTrue : '';
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.packConfig = packConfig;
+ config.colorConfig = colorConfig;
+ config.dailyConfig = dailyConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig);
+ }
+ this.props.onSaveState({
+ masterConfig,
+ slaveConfig,
+ slaveColumn,
+ checkConfig,
+ checkColumn,
+ sId,
+ pageLoading: false,
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ dailyConfig,
+ dailyColumn,
+ packConfig,
+ packColumn,
+ ...addState,
+ dailyConfigGrdVisible,
+ colorConfigGrdVisible,
+ });
+ }
+ if (nextProps.treeData && this.props.treeData) {
+ if ((nextProps.treeData.length > this.props.treeData.length) && (nextProps.treeData[nextProps.treeData.length - 1].key !== this.props.treeData[this.props.treeData.length - 1].key)) {
+ this.handleTreeScrollToBottom();
+ }
+ }
+ // // 未清复制到时,产品ID需要再获取动态部件;
+ // const sId = currentId !== undefined ? currentId : '';
+ // if (sId === '' && commonUtils.isNotEmptyObject(this.props.masterData) && !this.props.bGetPartsData) {
+ // const { sAllPartsName } = this.props.masterData;
+ // if (sAllPartsName !== undefined) {
+ // const allPartsName = sAllPartsName.split(',');
+ // const sPartsName = allPartsName[0];
+ // if (commonUtils.isEmptyObject(this.props.masterConfig[`dSumPQty${sPartsName}`])) {
+ // this.handleMasterChange('master', 'sProductClassifyName');
+ // this.props.onSaveState({ bGetPartsData: true });
+ // }
+ // }
+ // }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { controlColumn, slaveConfig } = nextProps;
+ return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn);
+ }
+
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnFastOrder' || menu.sControlName === 'BtnChooseProcess' || menu.sControlName === 'BtnChooseMaterials') {
+ return !this.props.enabled;
+ }
+ };
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ handleTreeScrollToBottom = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ const treeNode = currentTab.getElementsByClassName('xly-control-tree')[0];
+ if (treeNode) {
+ setTimeout(() => {
+ treeNode.scrollTop = treeNode.scrollHeight;
+ }, 0);
+ }
+ }
+ };
+ /* 获取表数据 */
+ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, extraState = {}) => {
+ const { currentId, slaveData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ const addStateControl = await this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */
+ const treeState = this.handleGetControlTreeData(controlData, true);
+
+ const addStateMaterials = await this.props.handleGetDataSet({
+ name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ const addStateProcess = await this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ }
+ });
+ addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ }
+ }
+ const addStatePack = await this.props.handleGetDataSet({
+ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ let addStateColor = {};
+ if (colorConfig) {
+ addStateColor = await this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ /* 合版表合并产品信息 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const { packData } = addStatePack;
+ slaveData.forEach((itemSlave) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(itemSlave);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ }
+ }
+ });
+ }
+ });
+ addStatePack.packData = packData;
+ }
+
+ let addStateDaily = {};
+ if (dailyConfig) {
+ addStateDaily = await this.props.handleGetDataSet({
+ name: 'daily', configData: dailyConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ this.props.onSaveState({
+ pageLoading: false, ...addStateControl,...addStateMaterials, ...addStateProcess, ...addStateColor, ...addStateDaily,...addStatePack, ...treeState, treeSelectedKeys: controlSelectedRowKeys, ...extraState,
+ });
+ };
+ /** 获取部件树 */
+ handleGetControlTreeData= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ const expandedKeys = [];
+ let { treeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ const rootData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => commonUtils.isEmpty(item.sControlParentId)) : []; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRow = {};
+ const { sId, sPartsName } = item;
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.sAllId = item.sAllId;
+ const children = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(children)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(children) ? children : [];
+ treeData.push(treeDataRow);
+ });
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ expandedKeys.push(treeData[treeData.length - 1].key);
+ }
+ } else {
+ treeSelectedKeys = [];
+ treeData = [];
+ }
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+
+ /** 获取子节点数据 */
+ handleGetControlTreeChildData= (sParentId, controlData) => {
+ if (commonUtils.isNotEmptyObject(sParentId) && commonUtils.isNotEmptyArr(controlData)) {
+ const childTree = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sControlParentId === sParentId) : [];
+ const children = [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.parentKey = sParentId;
+ treeDataRow.sAllId = child.sAllId;
+ const data = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(data)) {
+ sChildren = '0';
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(data) ? data : [];
+ children.push(treeDataRow);
+ });
+ }
+ return children;
+ }
+ };
+
+ /** 根据key查找树节点并改变属性 */
+ handleSearchNodes= (key, data, showNameNew) => {
+ if (commonUtils.isNotEmptyObject(showNameNew)) {
+ data.forEach((item) => {
+ if (item.key === key) {
+ item.showName = showNameNew;
+ } else if (commonUtils.isNotEmptyArr(item.children)) {
+ this.handleSearchNodes(key, item.children, showNameNew);
+ }
+ });
+ }
+ }
+ handleBackProcessData = async (config, isWait) => {
+ const { token } = this.props.app;
+ const { sModelsId, sBackProcessData } = this.props;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === '') {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: '', sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ this.props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ }
+
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /* 非列表联动下拉 */
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const {
+ sModelsId, app,
+ } = this.props;
+ const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = this.props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') {
+ backProcessData = await this.handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) {
+ let iIndex;
+ allPartsName.forEach((sPartsName) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0];
+
+ const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) { /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ sBackProcessClassifyData = rows;
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) {
+ const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : [];
+ const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : [];
+ const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : [];
+ const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : [];
+ const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : [];
+
+ let ConfigNew;
+ allPartsName.forEach((item) => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...masterDataDefault, ...returnChange.masterData };
+ if (isWait) {
+ return {
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ };
+ } else {
+ this.props.onSaveState({
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ });
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = '';
+ returnChange.masterData.sProductNo = '';
+ returnChange.masterData.sProductName = '';
+ }
+ this.props.onSaveState({ ...returnChange });
+ } else {
+ this.props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ /* 数据生成按钮 */
+ handleDataCreate= async () => {
+ let { checkProcessClassifyData } = this.props;
+ const {
+ masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app,
+ } = this.props;
+ const { token } = this.props.app;
+ const paramMap = {};
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+ let cpProcessName = '';
+ checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData;
+ // paramMap.modelName = masterData.modelName;
+ paramMap.sCustomerId = masterData.sCustomerId;
+ paramMap.sCustomerName = masterData.sCustomerName;
+ paramMap.sProductClassifyId = masterData.sProductClassifyId;
+ paramMap.sProductId = masterData.sProductId;
+ paramMap.sProductName = masterData.sProductName;
+ paramMap.sProductStyleId = masterData.sProductStyleId;
+ paramMap.sProductStyle = masterData.sProductStyle;
+ paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0;
+ paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0;
+ paramMap.dProductHeight = 0;
+ paramMap.dProductQty = masterData.dProductQty;
+ const partsInfo = [];
+ allPartsName.forEach((item) => {
+ const partInfo = {};
+ partInfo.sPartsName = item;
+ partInfo.dPartsQty = masterData.dProductQty;
+ partInfo.dSumPQty = masterData[`dSumPQty${item}`];
+ const materialsInfo = [];
+ const material = {};
+ material.sMaterialsId = masterData[`sMaterialsId${item}`];
+ material.sMaterialsNo = masterData[`sMaterialsNo${item}`];
+ material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`];
+ materialsInfo.push(material);
+ partInfo.materialsInfo = materialsInfo;
+ partInfo.iPositiveColor = masterData[`iPositiveColor${item}`];
+ partInfo.iPrintModePo = masterData[`iPrintModePo${item}`];
+ if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') {
+ const processInfo = [];
+ checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => {
+ if (!commonUtils.isEmpty(masterData[card.sId + item])) {
+ if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') {
+ partInfo.sPrintProcessId = masterData[card.sId + item];
+ } else {
+ const process = {};
+ process.sProductClassifyId = card.sId;
+ process.sProcessId = masterData[card.sId + item];
+ if (masterData[card.sId + card.sName + item] !== undefined) {
+ process.sProcessName = masterData[card.sId + card.sName + item];
+ process.sType = masterData[card.sId + card.sType + item];
+ processInfo.push(process);
+ }
+ }
+ }
+ });
+ partInfo.processInfo = processInfo;
+ partsInfo.push(partInfo);
+ }
+ });
+ const productProcess = [];
+ checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => {
+ if (!commonUtils.isEmpty(masterData[card.sId])) {
+ const process = {};
+ process.sProductClassifyId = card.sId;
+ process.sProcessId = masterData[card.sId];
+ process.sProcessName = masterData[card.sId + card.sName];
+ if (masterData[card.sId + card.sName] !== undefined) {
+ cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`;
+ productProcess.push(process);
+ }
+ }
+ });
+ paramMap.cpProcessName = cpProcessName;
+ paramMap.productProcessInfo = productProcess;
+ paramMap.partsInfo = partsInfo;
+
+ if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) ||
+ commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) {
+ // this.props.onSaveState({ fastOrderModalVisible: false });
+ message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */
+ return;
+ }
+ /* 验证产品规格是否 符合数字*数字格式 */
+ const sProductStyle = paramMap.sProductStyle;
+ if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */
+ const arr = sProductStyle.split('*');
+ const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/;
+ if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) {
+ for (let i = 0; i < arr.length; i += 1) {
+ if (!numCheck.test(arr[i])) { /* 验证是否数字 */
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ }
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ /* 验证*两边是否是数字 */
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ 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);
+ if (!commonUtils.isEmptyArr(partsOldInfo)) {
+ partsOldInfo.forEach((item) => {
+ if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) {
+ this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` });
+ }
+ });
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ partsNewInfo.forEach((partInfo, iIndex) => {
+ const partsDataRow = {};
+ for (const child of Object.keys(partInfo)) {
+ partsDataRow[child] = partInfo[child];
+ }
+ partsDataRow.handleType = 'add';
+ partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */
+ partsDataRow.sId = commonUtils.createSid();
+ partsDataRow.sParentId = masterData.sId;
+ if (partsDataRow.iPrintMode !== 3) {
+ partsDataRow.iOppositeColor = partsDataRow.iPositiveColor;
+ }
+ delete partsDataRow.dMaterialsKQty;
+ delete partsDataRow.dMaterialsLength;
+ delete partsDataRow.dMaterialsWidth;
+ if (productClassify.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) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+
+ partInfo.processInfo.forEach((process, iOrder) => {
+ let processAfterDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processAfterDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processAfterDataRow[child] = process[child];
+ }
+ processAfterDataRow.handleType = 'add';
+ processAfterDataRow.sProcessId = process.sProcessId;
+ const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId);
+ if (iProcessAfterIndex > -1) {
+ processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段
+ }
+ processAfterDataRow.sType = process.sType;
+ processAfterDataRow.iPartOrder = iIndex;
+ processAfterDataRow.iOrder = iOrder + 1;
+ processAfterDataRow.sPartsName = partsDataRow.sPartsName;
+ processAfterDataRow.sId = commonUtils.createSid();
+ processAfterDataRow.sParentId = masterData.sId;
+ processAfterDataRow.sControlId = partsDataRow.sId;
+ processData.push(processAfterDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ });
+ productProcessInfo.forEach((process, iOrder) => {
+ let processProductDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processProductDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processProductDataRow[child] = process[child];
+ }
+ const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId);
+ if (iProductProcessIndex > -1) {
+ processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段
+ }
+ processProductDataRow.handleType = 'add';
+ processProductDataRow.sType = '3';
+ processProductDataRow.sPartsName = '';
+ processProductDataRow.iPartOrder = 999;
+ processProductDataRow.iOrder = iOrder + 1;
+ processProductDataRow.sId = commonUtils.createSid();
+ processProductDataRow.sParentId = masterData.sId;
+ processData.push(processProductDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ processData = this.sortData(controlData, processData);
+ this.props.onSaveState({
+ materialsConfig, slaveData, controlData, materialsData, processData, fastOrderModalVisible: false, materialsSelectedRowKeys: [],
+ });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+
+ /* 勾选工序分类 */
+ handleProcessChange=(e, value, sPartsName) => {
+ let { checkProcessClassifyData } = this.props;
+ let index = -1;
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (e.target.checked) {
+ if (index <= -1) {
+ const newvalue = { ...value };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ } else if (index > -1) {
+ checkProcessClassifyData.splice(index, 1);
+ }
+ this.props.onSaveState({ checkProcessClassifyData });
+ };
+
+ handleSelectChangeProcess = (sAssignField, value, option) => {
+ const { masterData, sBackProcessClassifyData } = this.props;
+ let { checkProcessClassifyData } = this.props;
+ if (sAssignField !== undefined) {
+ // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype
+ const sAssignFields = sAssignField.split(',');
+ const recordRow = option.props['data-recordrow'];
+ sAssignFields.forEach((item, iAssignIndex) => {
+ const itemsplits = item.split(':');
+ masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]];
+ if (iAssignIndex === 0) {
+ let index = -1;
+ const sPartsName = itemsplits[0].replace(recordRow.sParentId, '');
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (index <= -1) {
+ const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId);
+ if (iBackProcessIndex > -1) {
+ const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ }
+ }
+ });
+ this.props.onSaveState({ masterData, checkProcessClassifyData });
+ }
+ }
+
+ handleA = (sId) => {
+ const { sBackProcessData } = this.props;
+ const data = sBackProcessData.filter(item => item.sParentId === sId);
+ const optionProcess = [];
+ data.forEach((item) => {
+ optionProcess.push();
+ });
+ return optionProcess;
+ }
+
+ handleSave = async () => {
+ this.form.validateFields((err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,packConfig, packData, packDelData,
+ colorData, colorDelData, dailyConfig, dailyData, dailyDelData, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) ||
+ (!commonBusiness.validateTable(materialsConfig, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, this.props) || !commonBusiness.validateTable(dailyConfig, dailyData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ let flag = true;
+ for (const item of materialsData) {
+ if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ flag = false;
+ break;
+ }
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ if(commonUtils.isNotEmptyObject(colorConfig)){
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ if(commonUtils.isNotEmptyObject(dailyConfig)){
+ data.push(commonBusiness.mergeData('daily', dailyConfig.sTbName, dailyData, dailyDelData));
+ }
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ }
+ });
+ };
+
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ const { controlData } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'control') {
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const { treeData } = this.props; /* 赋值给树组件节点 */
+ let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */
+ if (treeData !== undefined) {
+ treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ addState.treeSelectedKeys = treeSelectedKeys;
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'materials' || name === 'process') {
+ const { [`${name}Data`]: tableData, enabled } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (enabled && iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ }
+ this.props.onSaveState(addState);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ if (value === undefined) {
+ return true;
+ }
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /** 控制选择控制表时,显示成品材料与成品工序 */
+ handleFilterProductData = (name, dataIndex, value, record) => {
+ const { slaveSelectedRowKeys } = this.props;
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') &&
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ }
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleGetFilterData = (name, bFinished) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props;
+ if (data !== undefined && ((commonUtils.isNotEmptyArr(controlSelectedRowKeys) && !bFinished) || bFinished)) {
+ if (name === 'materials' && bFinished) { /* 新增成品材料 */
+ return data.filter(item => item.sType === '2' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else if (name === 'process' && bFinished) { /* 新增成品工序s */
+ return data.filter(item => item.sType === '3' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ }
+ };
+ handleKeyDown = (e, record, sName, name) => {
+ /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */
+ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) {
+ if (e.key !== 'F12') {
+ e.preventDefault();
+ }
+ } else {
+ this.props.onKeyDown(e, record, sName, name);
+ }
+ }
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, flag, bchild, bFinished, bModalAdd) => {
+ const { masterConfig } = this.props;
+ if(bModalAdd === true) {
+ if(name === 'materials') {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productMaterials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ if(name === 'process') {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productProcess', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ return;
+ }
+ /* 外置处理业务 */
+ const {
+ gdsformconst, slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData,
+ } = this.props;
+ if (name === 'control') {
+ /* 增加子部件 */
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (bchild === 'sameNode') { /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item.sId === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('部件数据生成错误![sAllId为空]');
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sId}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ }
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sControlParentId = treeSelectedKeys[0];
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = controlData[iIndex].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`;
+ }
+ }
+ // let dPartsQty = 0;
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // slaveData.forEach((item) => {
+ // dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ // if (productIdDropDown) {
+ // const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId);
+ // if (iProductIdIndex > -1) {
+ // tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName;
+ // }
+ // }
+ // }
+ // tableDataRow.dPartsQty = dPartsQty;
+ tableData.push(tableDataRow);
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ this.props.onSaveState({
+ ...treeState, [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], treeSelectedKeys: [tableDataRow.sId],
+ });
+ } else if (name === 'materials' || name === 'process') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) {
+ message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件
+ return;
+ }
+ if(bFinished) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`;
+ tableDataRow.sCombinePartsName = slaveData[iIndex].sId;
+ if (name === 'materials') { /* 新增成品材料 */
+ tableDataRow.sType = '2';
+ }
+ if (name === 'process') { /* 新增成品工序 */
+ tableDataRow.sType = '3';
+ }
+ }
+ } else {
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ if (name === 'materials' && bFinished) { /* 新增成品材料 */
+ tableDataRow.sType = '2';
+ }
+ if (name === 'process' && bFinished) { /* 新增成品工序 */
+ tableDataRow.sType = '3';
+ }
+ }
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if (name === 'slave') {
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app, packData } = this.props;
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.forEach((item) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(tableDataRow, slaveData.length, item.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }, packData);
+ } else {
+ return this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = async (name, tableSelectedRowKeys) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ }
+ /** 删除表格数据 */
+ handleTableDel = async (name, flag, tableSelectedRowKeys) => {
+ if (name === 'slave') {
+ /* 删除sSlaveId关联的合版表 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys, 'sSlaveId');
+ const materielReturnData = this.otherTableDel('materials', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品材料 */
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品工序 */
+ const slaveReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materielReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...slaveReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'control') {
+ const {
+ controlData, treeSelectedKeys, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ /* 删除该节点及所有子节点 */
+ const controlChildData = controlData.filter(item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ const treeState = this.handleGetControlTreeData(controlReturnData.controlData, true);
+ this.props.onSaveState({
+ ...treeState,
+ ...materialsReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择数据 */
+ return false;
+ }
+ } else if (name === 'process') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, materialsConfig, materialsData, token,
+ } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ let iMaterialsIndex = -1;
+ const sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ const processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ }
+ }));
+ processReturnData.processDelData.concat(tableDelData);
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = '';
+ materialsData[iMaterialsIndex].sProcessTbId = '';
+ materialsData[iMaterialsIndex].sMaterialsProcessName = '';
+ }
+ this.props.onSaveState({
+ ...processReturnData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ } else {
+ return this.props.onDataRowDel(name, flag, tableSelectedRowKeys);
+ }
+ };
+
+ handleCalculation = async () => {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`;
+ const {
+ masterConfig, slaveConfig, controlConfig, materialsConfig, processConfig,packConfig, app,
+ } = this.props;
+ let {
+ slaveData, controlData, materialsData, processData, masterData,packData,
+ } = this.props;
+ const data = [];
+ data.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ data.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ data.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ data.push(commonBusiness.mergeData('materials', `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true));
+ data.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ data.push(commonBusiness.mergeData('pack', `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true));
+ const value = { data, sClientType: '1', sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) { /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+ packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`];
+ this.props.onSaveState({
+ slaveData, controlData, materialsData, processData, masterData, loading: false,packData,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess'));
+ } else { /* 失败 */
+ this.props.onSaveState({
+ loading: false,
+ });
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ /** 按钮操作事件 */
+ handleButtonClick = async (name) => {
+ if (name === 'BtnCalculation') {
+ this.props.onSaveState({
+ loading: true,
+ });
+ this.handleCalculation();
+ } else if (name === 'BtnChooseProcess') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnChooseMaterials') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnFastOrder') {
+ const {
+ masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData,
+ } = this.props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (commonUtils.isEmptyArr(checkProcessClassifyData) && commonUtils.isNotEmptyArr(controlData) && !commonUtils.isEmpty(changeData) && !commonUtils.isEmpty(changeData.sAllPartsName)) {
+ const allPartsName = changeData.sAllPartsName.split(',');
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach((item) => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData.filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ }
+ this.props.onSaveState({ fastOrderModalVisible: true, ...addState });
+ } else {
+ this.props.onButtonClick(name);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig,
+ } = this.props;
+ const bReturn = await this.props.onSearchData(handleType);
+ if (bReturn) {
+ // this.handleGetData(controlConfig, materialsConfig, processConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig);
+ }
+ };
+
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig,
+ } = this.props;
+ this.props.onEdit(() => {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, { loading: false, enabled: true });
+ });
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo =async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, masterData, slaveData, controlData, materialsData, processData, colorData, app, token, sModelsId, packData, formRoute,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.processData = processData;
+ copyTo.packData = packData;
+ copyTo.colorData = colorData;
+ copyTo.srcFormRoute = formRoute;
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ },
+ });
+ }
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig,
+ } = props;
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ sSlaveTable: [
+ {
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: checkConfig.sTbName,
+ relationName: 'sBillId',
+ }, {
+ tableName: controlConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: materialsConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: processConfig.sTbName,
+ relationName: 'sParentId',
+ }],
+ },
+ };
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.props.onDelDataSuccess(props);
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app, colorConfig, dailyConfig, packConfig,
+ } = this.props;
+ const onGetData = this.props.onGetData;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const { copyTo } = app.currentPane;
+ const { userinfo } = app;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onGetData(masterConfig, slaveConfig, checkConfig);
+ onGetDataOk(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const {
+ masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig,
+ } = this.props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await this.props.onAdd(config, copyTo, true);
+ const { masterData, slaveData } = state;
+ const controlData = [];
+ let packData = [];
+ const materialsData = [];
+ let processData = [];
+ const colorData = [];
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const {
+ sModelsId, token,
+ } = this.props;
+ const bCkxCopyFromTechnology = '0'; // 工艺卡不用再取工艺卡。 app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1') {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach((slaveItem) => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // processRow.sSlaveId = slaveData[0].sId;
+ // }
+ processData.push(processRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // processRow.sSlaveId = slaveData[0].sId;
+ // }
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const bProcessAssort = true;
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = this.props;
+ const sParentId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sParentId) ? copyTo.slaveData[0].sParentId : copyTo.slaveData[0].sId;
+ // const condition = { sSlaveId: copyTo.slaveData[0].sSlaveId };
+ const condition = { sParentId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const treeCopyNodes = new Map();
+ copyTo.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex > -1) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ // processRow.sSlaveId = ' ';
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ // processRow.sSlaveId = slaveData[0].sId;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = this.sortData(controlData, processData);
+ }
+ } else {
+ state.fastOrderModalVisible = this.props.bFastOrderView;
+ const { sModelsId } = this.props;
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true);
+ state = { ...state, ...addState };
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1;
+ tableDataRow.sSlaveId = ' ';
+ tableDataRow.sCombinedMemo = '合版信息';
+ tableDataRow.sAllId = tableDataRow.sId;
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ /* 新增时,增加一条合版信息 */
+ if (packData.length === 0) {
+ slaveData.forEach((item, index) => {
+ const tableDataRow = this.handlePackDataAdd(item, index, controlData[0].sId, 'add');
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ // tableDataRow.dCombineQty = 1;
+ packData.push(tableDataRow);
+ }
+ });
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ const stateNew = {
+ ...state,
+ ...treeState,
+ controlData,
+ controlSelectedRowKeys: [],
+ materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ packData,
+ colorData,
+ processSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ this.props.onSaveState(stateNew);
+ }
+ };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, slaveSelectedRowKeys, controlSelectedRowKeys, sModelsId, token,
+ slaveConfig, controlConfig, materialsConfig, processConfig, colorConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld,
+ controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld,
+ } = this.props;
+ let { masterData } = this.props;
+ if (name === 'productProcessInfo') {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ const controlData = [];
+ const materialsData = [];
+ const processData = [];
+ const colorData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ controlDataOld.forEach((item) => {
+ item.handleType = 'del';
+ controlDelData.push(item);
+ });
+ addState.controlDelData = controlDelData;
+ materialsDataOld.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ processDataOld.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ addState.processDelData = processDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+
+ let iSlaveIndex = -1;
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+
+ const condition = { sCardId: selectData[0].sId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ processData,
+ materialsData,
+ controlData,
+ ...treeState,
+ colorData,
+ masterData,
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === 'process') {
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ }
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ };
+
+ /* 选择成品工序点击确定业务处理 */
+ handleSelectProductMaterial = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ // 选择成品材料,将sType改为2
+ if (name === 'productMaterials') {
+ selectData = selectData.map(val => ({ ...val, sType: '2' }));
+ name = 'materials';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, controlSelectedRowKeys, materialsConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+
+ tableDataRow.sParentId = masterData.sId;
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品材料sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName;
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ if (iControlIndex > -1 && tableDataRow.sType !== '2') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '2') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+
+ /* 选择成品工序点确定 */
+ /* 工单从表选中selectedRowKeys */
+ handleSelectFinalProcess = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ const targetname = 'process';
+ const {
+ [`${targetname}Data`]: tableData, [`${targetname}Config`]: tableConfig, controlSelectedRowKeys, sModelsId, token,
+ materialsConfig, processConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ if (name === 'chooseProductProcess') {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ /* 通过slaveFinalSelectedRowKeys找到slaveData数据 */
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ tableDataRow.sType = '3';
+ if (targetname === 'process') {
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${targetname}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ }
+
+
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled, slaveData } = this.props;
+ let { packData } = this.props;
+ if (name === 'control') {
+ const packSelectedRowKeys = [];
+
+ /* 合并从表相同客户、产品数据 */
+ const slaveDataMerge = [];
+ slaveData.forEach((item) => {
+ const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ slaveDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ slaveDataMerge[iIndex].dProductQty = dProductQtyNew;
+ slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+
+ /* 合并合版表相同客户、产品数据 */
+ const packDataMerge = [];
+ packData.forEach((item) => {
+ const iIndex = packDataMerge.findIndex(child => commonUtils.isNotEmptyObject(item.sCombinePartsName) && child.sCombinePartsName === item.sCombinePartsName && commonUtils.isNotEmptyObject(item.sProductId) && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ packDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ packDataMerge[iIndex].dProductQty = dProductQtyNew;
+ packDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ packDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+ if (commonUtils.isNotEmptyArr(packDataMerge)) {
+ packData = packDataMerge;
+ }
+
+
+ /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */
+ if (commonUtils.isNotEmptyArr(slaveDataMerge)) {
+ slaveDataMerge.forEach((item, index) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(item);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) {
+ packSelectedRowKeys.push(itemPack.sId);
+ }
+ }
+ }
+ });
+ } else {
+ const tableDataRow = this.handlePackDataAdd(item, index, sId, 'add');
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ packData.push(tableDataRow);
+ }
+ }
+ });
+ }
+ this.props.onSaveState({
+ productCombinationVisible: true,
+ sCombinationsControlId: sId, /* 合版产品控制表sId */
+ enabled,
+ packSelectedRowKeys,
+ packData,
+ });
+ } else if (name === 'process' && sName === 'sCombinePartsNameNew') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '3') { /* 成品工序跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ } else { /* 成品工序跟着合版表走 */
+ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack, index) => {
+ let slaveDataRow = {};
+ let packRowAdd = {};
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId);
+ if (iIndex > -1) {
+ slaveDataRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveDataRow)) {
+ packRowAdd = this.handlePackDataAdd(slaveDataRow);
+ }
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ processSelectedRowId: sId, /* 工序表选中行sId */
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'materials' && sName === 'sCombinePartsNameNew') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '2') { /* 成品材料跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ materialsSelectedRowId: sId, /* 工序表选中行sId */
+ openTable: 'materials',
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'process' && sName === 'sColorSerialMemo') {
+ this.props.onViewChoose(name, sName, record);
+ }
+ }
+ handlePackDataAdd= (item, index, sControlId, handleType) => {
+ const tableDataRow = {};
+ if (handleType === 'add') {
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.sSlaveId = item.sId;
+ tableDataRow.iOrder = item.iOrder;
+ }
+ tableDataRow.sParentId = item.sParentId;
+ if (commonUtils.isNotEmptyObject(sControlId)) {
+ tableDataRow.sControlId = sControlId;
+ }
+ // if (commonUtils.isNotEmptyObject(index)) {
+ // tableDataRow.iOrder = index + 1;
+ // }
+ tableDataRow.sProductId = item.sProductId; /* 产品id */
+ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */
+ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */
+ tableDataRow.sProductName = item.sProductName; /* 产品名称 */
+ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (bProductQtySelf) {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */
+ }
+ tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */
+ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */
+ return tableDataRow;
+ }
+
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = '';
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = '';
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace('.', '');
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace('.', '');
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2);
+ });
+ return processData;
+ };
+ /* 控制排序 */
+ orderData = (e, name, type) => {
+ const {
+ [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app,
+ } = this.props;
+ let { [`${name}Data`]: processData } = this.props;
+ if (name === 'process') {
+ if (commonUtils.isEmptyArr(tableselectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */
+ return;
+ }
+ if (commonUtils.isEmptyArr(processData)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */
+ return;
+ }
+ const processNew = processData.filter((item) => { /* 获取勾选数据集 */
+ return tableselectedRowKeys.indexOf(item.sId) > -1;
+ });
+ if (commonUtils.isEmptyArr(processNew)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */
+ return;
+ }
+ const len = processData.length;
+ const newLen = processNew.length;
+ let num = 0.01;/* 循环增加体 */
+ let targetiOrder = -1;
+ if (type === 1) { /* 上移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex - 1].iOrder - 1; /* 目标排序号 */
+ }
+ } else if (type === 2) { /* 下移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex + 1].iOrder;
+ }
+ } else if (type === 0) { /* 置顶 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */
+ return;
+ } else {
+ targetiOrder = processData[0].iOrder - 1;
+ }
+ } else if (type === 3) { /* 置底 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */
+ return;
+ } else {
+ targetiOrder = processData[len - 1].iOrder + 1;
+ }
+ }
+ processNew.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.sType)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */
+ return;
+ }
+ const index1 = processData.findIndex(item1 => item1.sId === item.sId);
+ processData[index1] = { ...item, iOrder: targetiOrder + num };
+ num += 0.01;
+ });
+ processData = this.sortData(controlData, processData);
+ const processSortData = this.props.orderNum(processData, controlSelectedRowKeys);
+ if (commonUtils.isNotEmptyArr(processSortData)) {
+ processData = processSortData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: processData });
+ }
+ };
+
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ if (name === 'slave') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, masterConfig, controlConfig, controlData: controlDataOld, masterData,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') {
+ let dPartsQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const controlData = [];
+ controlDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ itemNew.dPartsQty = dPartsQty;
+ controlData.push(itemNew);
+ });
+ addState.controlData = controlData;
+ }
+ if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ tableDataRow.sProductId = '';
+ tableDataRow.sProductNo = '';
+ tableDataRow.sProductName = '';
+ tableData[iIndex] = tableDataRow;
+ } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && tableDataRow.handleType === 'add') {
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ // else if (sFieldName === 'sProductName') {
+ // const controlData = [];
+ // controlDataOld.forEach((item) => {
+ // const itemNew = { ...item };
+ // controlData.push(itemNew);
+ // });
+ // if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmpty(controlData[0].sPartsName)) {
+ // controlData[0].sPartsName = tableDataRow.sProductName;
+ // addState.controlData = controlData;
+ // }
+ // }
+ }
+ }
+ /* 膜内工艺卡算法逻辑 */
+ // if (sModelsType === 'manufacture/workOrder3' || sModelsId === '101251240115016046551448370') {
+ // }
+ this.props.onSaveState({ [`${name}Data`]: tableData, ...addState });
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsId, sModelsType, slaveData,
+ } = this.props;
+ let { masterData } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ }
+ /* 膜内工艺卡算法逻辑 */
+ if (sModelsType === 'manufacture/workOrder3' && sModelsId === '101251240115016046551448370') {
+ /* 排版数dSinglePQty=列数iCol*iRow个数 */
+ const iCol = commonUtils.isNull(tableDataRow.iCol, 0);
+ const iRow = commonUtils.isNull(tableDataRow.iRow, 0);
+ const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0));
+ const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0));
+ const dCutEdge = commonUtils.isNull(tableDataRow.dCutEdge, 0);
+ const dColGap = commonUtils.isNull(tableDataRow.dColGap, 0);
+ const dRowGap = commonUtils.isNull(tableDataRow.dRowGap, 0);
+ const dScraperGap = commonUtils.isNull(tableDataRow.dScraperGap, 0);
+ const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0));
+ const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0));
+ const dSinglePQty = commonUtils.isNull(tableDataRow.dSinglePQty, 0);
+ if (sFieldName === 'iCol' || sFieldName === 'iRow') {
+ tableDataRow.dSinglePQty = iCol * iRow;
+ }
+ /* 膜宽dMaterialsWidth =图文尺寸dMachineWidth*列数iCol+图文到膜边尺寸 dCutEdge*2+图文到图文的尺寸dColGap*(列数iCol-1) */
+ if (sFieldName === 'dMachineWidth' || sFieldName === 'iCol' || sFieldName === 'dCutEdge' || sFieldName === 'dColGap') {
+ tableDataRow.dMaterialsWidth = (dMachineWidth * iCol) + (dCutEdge * 2) + (dColGap * (iCol - 1));
+ }
+ /* 版周长 dMaterialsLength=(版周长图文尺寸dMachineLength+图文到图文尺寸dRowGap)*版周长个数iRow+dScraperGap刮刀距离 */
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap') {
+ tableDataRow.dMaterialsLength = ((dMachineLength + dRowGap) * iRow) + dScraperGap;
+ }
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap' || sFieldName === 'dMaterialsLength') {
+ let dPlatediameter = dMaterialsLength / Math.PI;
+ dPlatediameter = commonUtils.convertFixNum(dPlatediameter, 2);
+ const addState = {};
+ addState.dPlatediameter = dPlatediameter;
+ addState.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ masterData = { ...masterData, ...addState };
+ }
+ /* 1款拼版 从表产品折算率=版周长*膜宽/1000000 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (slaveData.length === 1) { /* 只有一条从表数据 */
+ const addState = {};
+ addState.dConversionRate = (dMaterialsLength * dMaterialsWidth) / 1000000;
+ addState.dCombineCoefficient = dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(slaveData[0].handleType) ? 'update' : slaveData[0].handleType;
+ slaveData[0] = { ...slaveData[0], ...addState };
+ } else if (slaveData.length > 1) { /* 多款产品合拼的 折算率 */
+ let sumTotal = 0;
+ slaveData.forEach((itemNew) => {
+ const singleSum = itemNew.dProductLength * itemNew.dProductWidth * itemNew.dCombineCoefficient;
+ sumTotal += singleSum;
+ });
+ slaveData.forEach((item, index) => {
+ const addState = {};
+ /* 多产品折算率 */
+ const dConversionRate = ((dMaterialsLength * dMaterialsWidth) *
+ (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) / sumTotal / item.dCombineCoefficient / 1000000;
+ addState.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ addState.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ slaveData[index] = { ...item, ...addState };
+ });
+ }
+ }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+ if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = this.props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, slaveData, masterData,
+ });
+ } else if (name === 'materials') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === 'sType') {
+ if (tableData[iIndex].sType === '2') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData });
+ } else if (name === 'process') {
+ const {
+ [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, processConfig, token,
+ } = this.props;
+ let { processDelData, materialsDelData } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let iMaterialsIndex = -1;
+ let sControlId = '';
+ if (iIndex > -1) {
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) {
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = '工艺参数';
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = '';
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = 'del';
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ if (tableData[iIndex].sType === '3') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState });
+ } else {
+ this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+ /* 重新计算实际生产数 */
+ handleGetdFactProductQty = (selectedRowKeys, tableData) => {
+ const maxArr = [];
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const tableFilter = tableData.filter(item => selectedRowKeys.includes(item.sId) && item.dCombineQty > 0);
+ if (selectedRowKeys.length === 1 || tableFilter.length === 1) { /* 当选中行只有一行时,实际生产数等于生产数 */
+ const iSlaveIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ const dProductQty = tableData[iSlaveIndex].dProductQty;
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty: dProductQty };
+ }
+ } else {
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ const { dCombineQty, dProductQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ let dNum = commonUtils.convertFixNum(dCombineQty !== 0 ? dProductQty / dCombineQty : 0, 2); /* 生产数/排版数 取最大值 */
+ dNum = Math.ceil(dNum);
+ maxArr.push(dNum);
+ }
+ }
+ }
+ let dMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ dMax = Math.max(...maxArr);
+ }
+ dMax = commonUtils.isNotNum(dMax) ? 0 : dMax;
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ let { dCombineQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ dCombineQty = commonUtils.isNotNum(dCombineQty) ? 0 : dCombineQty;
+ const dFactProductQty = commonUtils.convertFixNum(dCombineQty * dMax, 2); /* 实际生产数 =最大值 * 排版数 */
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty };
+ }
+ }
+ }
+ }
+ this.props.onSaveState({ packData: tableData });
+ }
+ }
+ handleCancelFastOrderModal = () => {
+ this.props.onSaveState({ fastOrderModalVisible: false });
+ };
+ handleCancelProcessChooseModal = () => {
+ this.props.onSaveState({ processChooseVisible: false });
+ };
+ handleCancelMaterialsChooseModal = () => {
+ this.props.onSaveState({ materialsChooseVisible: false });
+ };
+ handleCancelProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+ handleCancelProductCombinationChooseModal = () => {
+ this.props.onSaveState({ productCombinationVisible: false });
+ };
+ handleSelectProductCombination= () => {
+ const {
+ controlData, sCombinationsControlId, packData, enabled, app,
+ } = this.props;
+ let { packSelectedRowKeys: selectedRowKeys } = this.props;
+ let sCombinedMemo = '';
+ const tableCombineSelectedData = [];
+ selectedRowKeys = commonUtils.isNotEmptyArr(selectedRowKeys) ? selectedRowKeys : [];
+ const maxArr = [];
+ const maxMap = new Map();
+ for (const sId of selectedRowKeys) {
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ const tableDataRow = packData[iIndex];
+ const {
+ sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName,
+ } = tableDataRow;
+ if (dCombineQty > 0) { /* 排版数大于0时,把数据带回到控制表 */
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ maxMap.set(dFactProductQty, jsonObj);
+ maxArr.push(dFactProductQty);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseInputQty'));/* 请填写合拼排版数 */
+ return;
+ }
+ }
+ }
+
+ /* 没勾选的合版数据 合拼排版数置为0 */
+ const packNoChooseData = packData.filter(item => item.sControlId === sCombinationsControlId && !selectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(packNoChooseData) && packNoChooseData.length > 0) {
+ packNoChooseData.forEach((item) => {
+ const iIndex = packData.findIndex(child => child.sId === item.sId);
+ if (iIndex > -1) {
+ packData[iIndex].dCombineQty = 0;
+ }
+ });
+ }
+
+ let iMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ iMax = Math.max(...maxArr);
+ }
+ sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ const iControlIndex = controlData.findIndex(item => item.sId === sCombinationsControlId);
+ if (iControlIndex > -1 && enabled) {
+ const addState = {};
+ const maxObj = maxMap.get(iMax);
+ let { handleType } = controlData[iControlIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinedMemo = sCombinedMemo;
+ // addState.dPartsQty = iMax;
+ addState.dSinglePQty = commonUtils.isNotEmptyObject(maxObj) ? maxObj.dCombineQty : 0;
+ controlData[iControlIndex] = { ...controlData[iControlIndex], ...addState };
+ }
+ this.props.onSaveState({
+ productCombinationVisible: false,
+ packData,
+ controlData,
+ });
+ };
+ handleCancelCombinePartsChooseModal = () => {
+ this.props.onSaveState({ combinePartsChooseVisible: false });
+ };
+ /* 选择合版部件名称 */
+ handleSelectCombineParts = (name, selectConfig, selectData) => {
+ const {
+ processData, processSelectedRowId, materialsData, materialsSelectedRowId, openTable,
+ } = this.props;
+ let sCombinedStr = '';
+ let sCombinedId = '';
+ if (selectData !== undefined) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ const { sId } = item;
+ let { sProductName } = item;
+ let { sCombinePartsName } = item;
+ sProductName = commonUtils.isNotEmptyObject(sProductName) ? sProductName : '';
+ sCombinePartsName = commonUtils.isNotEmptyObject(sCombinePartsName) ? sCombinePartsName : '';
+ // sCombinedStr += `${sCustomerName}-${sProductName}-${sCombinePartsName},`;
+ if (commonUtils.isNotEmptyObject(sCombinePartsName)) {
+ sCombinedStr += `${sProductName}-${sCombinePartsName},`;
+ sCombinedId += `${sId},`;
+ } else {
+ sCombinedStr += `${sProductName},`;
+ sCombinedId += `${sId},`;
+ }
+ });
+ // sCombinedStr = `${selectData.length.toString()} `;
+ if (commonUtils.isNotEmptyObject(sCombinedStr)) {
+ sCombinedStr = commonUtils.isNotEmptyObject(sCombinedStr) ? sCombinedStr.substr(0, sCombinedStr.length - 1) : '';
+ }
+ if (commonUtils.isNotEmptyObject(sCombinedId)) {
+ sCombinedId = commonUtils.isNotEmptyObject(sCombinedId) ? sCombinedId.substr(0, sCombinedId.length - 1) : '';
+ }
+ }
+ if (commonUtils.isNotEmptyObject(openTable) && openTable === 'materials') {
+ const iIndex = materialsData.findIndex(item => item.sId === materialsSelectedRowId);
+ if (iIndex > -1) {
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ materialsData[iIndex] = { ...materialsData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ materialsData, combinePartsChooseVisible: false });
+ } else {
+ const iIndex = processData.findIndex(item => item.sId === processSelectedRowId);
+ if (iIndex > -1) {
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ processData[iIndex] = { ...processData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ processData, combinePartsChooseVisible: false });
+ }
+ }
+ // this.props.onSaveState({ processData, combinePartsChooseVisible: false });
+ };
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+ /** 复制 */
+ handleTableCopy = (name, isWait) => {
+ /* 部件树节点复制功能 */
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination,slaveData,
+ } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = commonUtils.createSid();
+ tableDataRow.sId = newId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sSrcSlaveId = '';
+ tableDataRow.sSrcId = '';
+ tableDataRow.dSrcQty = null;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
+ tableDataRow.sMaterialsMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
+ tableDataRow.sProcessMemo = '';
+ }
+ tableData.push(tableDataRow);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys, treeSelectedKeys: tableSelectedNewRowKeys,
+ });
+ }
+ }
+ this.handleGetControlTreeData(tableData);
+ } else if (name === 'slave') {
+ const { packData, controlData } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn('请选择数据!'); // 请选择从表数据
+ return;
+ }
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = this.props.onDataRowCopy(name, true);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.forEach((item) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(tableDataRow, tableData.length, item.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, packData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 },
+ });
+ }
+ }
+ } else {
+ this.props.onDataRowCopy(name, isWait);
+ }
+ }
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData,packData, slaveData, app,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`;
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = tableDataRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSrcProcessTbId = item.sId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ ...treeState,
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { total: tableData.length, current: 9999 },
+ [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys,
+ treeSelectedKeys: tableSelectedNewRowKeys,
+ materialsSelectedRowKeys: [],
+ materialsData,
+ processData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+ return tableDataRow;
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ let { controlSelectedRowKeys } = this.props;
+ controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ this.props.onTreeSelect(name, checkedKeys, e);
+ this.props.onSaveState({
+ controlSelectedRowKeys,
+ });
+ };
+
+ handleTabChange = (value) => {
+ this.setState({
+ currentTab: +value,
+ });
+ };
+ handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+
+ handleDrag = (data) => {
+ let { controlSelectedRowKeys } = this.props;
+ if(this.props.enabled && controlSelectedRowKeys.length) {
+ if(isQianCai) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType !== '3' && item.sType !== '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ } else {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+ let inDataIndex = 0;
+ let inData = data.filter(item => item.sType === '1' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ inDataIndex = inDataIndex + 1;
+ return {...item, iOrder: inDataIndex}
+ });
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType === '2' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(inData, afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ }
+ }
+ }
+
+ handleProductDrag = (data) => {
+ if(this.props.enabled) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let dataIndex = 0;
+ const allData = data.filter(item => item.sType === '3' && item.sCombinePartsName === this.props.slaveSelectedRowKeys[0]).map((item) => {
+ dataIndex = dataIndex + 1;
+ return {...item, iOrder: dataIndex, handleType: item.handleType ? item.handleType : 'update'};
+ });
+ processData = processData.filter(item => item.sCombinePartsName !== this.props.slaveSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData });
+ }
+ }
+ handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ let sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) {
+ sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`;
+ }
+ }
+ processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr };
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+ render() {
+ const { pageLoading, masterData, fastOrderModalVisible } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+
+
+ );
+ }
+}
+
+const ProcessCardComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, masterConfig: masterConfigOld, slaveData, slavePagination, sModelsId, sTabId, app, colorConfigGrdVisible, dailyConfigGrdVisible, sisColorChooseVisible,productCombinationVisible,
+ combinePartsChooseVisible, finishedMaterialsColumn, finishedMaterialsConfig, finishedProcessColumn, finishedProcessConfig,
+ } = props;
+
+ // 计算控制表记录数量,计算sticky高度s
+ const controlLen = props.controlData ? props.controlData.length : 0;
+ let stickyHeight = 0;
+ let stickyTabHeight = 0;
+ if(props.currentTab === 1) {
+ if (controlLen && controlLen < 5) {
+ stickyHeight = (controlLen * 29) + 40 + 30 - 4; // 153
+ } else {
+ stickyHeight = 162 + 30;
+ }
+ } else {
+ const slaveLen = props.slaveData ? props.slaveData.length : 0;
+ if (slaveLen && slaveLen < 5) {
+ stickyHeight = (slaveLen * 29) + 40 + 30 - 4;
+ stickyTabHeight = (slaveLen * 29) + 40;
+ } else {
+ stickyHeight = 162 + 30;
+ stickyTabHeight = 162;
+ }
+ }
+
+ /* 回带表单 */
+ onReturnForm(form);
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ addProps.masterConfig = masterConfig;
+ }
+
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ const pagination = {
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const width = '16px';
+ const height = '16px';
+ const setAdd = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setAddChild = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setCopy = {
+ title: '复制',
+ img: ,
+ disableimg: ,
+ };
+ const setCopyAll = {
+ title: '复制部件',
+ img: ,
+ disableimg: ,
+ };
+ const setDelete = {
+ title: '删除',
+ img: ,
+ disableimg: ,
+ };
+ const setProcess = {
+ title: '工序',
+ img: ,
+ disableimg: ,
+ };
+ const setMaterial = {
+ title: '材料',
+ img: ,
+ disableimg: ,
+ };
+ const processUp = {
+ title: '上移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processDown = {
+ title: '下移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processTop = {
+ title: '置顶',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processBottom = {
+ title: '置底',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ let chooseProcessConfigRow;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfigRow;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+
+ /* 获取toolbar 选择成品工序 */
+ let bShowProductProcess = false;
+ let chooseProductProcessConfigRow = {};
+ let onChooseProductProcessIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (onChooseProductProcessIndex > -1) {
+ chooseProductProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductProcessIndex];/* 配置了成品工序按钮 */
+ bShowProductProcess = true;/* 配置了成品工序按钮 */
+ }
+ }
+
+ /* 获取toolbar 选择成品材料 */
+ let bShowProductMaterials = false;
+ let chooseProductMaterialsConfigRow = {};
+ let onChooseProductMaterialsIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductMaterialsIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (onChooseProductMaterialsIndex > -1) {
+ chooseProductMaterialsConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductMaterialsIndex];/* 配置了成品工序按钮 */
+ bShowProductMaterials = true;/* 配置了成品材料按钮 */
+ }
+ }
+
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // const mProps = { ...commonBusiness.createMemoProps('slave', props) };
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ // rowSelection: null,
+ setAdd,
+ setCopyAll,
+ setDelete,
+ setProcess,
+ setMaterial,
+ // bShowProductProcess, /* 是否显示成品工序 */
+ // bShowProductMaterials, /* 是否显示成品工序 */
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ // chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ AutoTableHeight: 132,
+ // onRow: (record) => {
+ // return {
+ // onClick: () => { props.onRowClick('control', record); },
+ // onDoubleClick: () => { props.onDoubleClick('control', record); },
+ // onMouseEnter: () => { props.onRowMouseEnter('control', record); },
+ // };
+ // },
+ },
+ };
+ const name = 'controlTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+
+ const dataFilter = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys } = props;
+ const oriData = data.data || [];
+ if (data.data) {
+ let res = [];
+ switch (type) {
+ case 'materials':
+ if (finishedMaterialsColumn) {
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '2';
+ });
+ }
+ } else { /* 部件材料 */
+ res = oriData.filter((val) => {
+ return val.sType !== '2';
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case 'process':
+ if (finishedProcessColumn) {
+ if (bFinal) { /* 成品工序 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '3';
+ });
+ }
+ } else { /* 部件工序 */
+ if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType !== '3' && (val.sControlId === controlSelectedRowKeys[0] || !val.sControlId);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType !== '3';
+ });
+ }
+ if(isQianCai) {
+ const pre = res.filter(item => item.sType == '0').sort((a, b) => a.iOrder - b.iOrder);
+ const after = res.filter(item => (item.sType == '1' || item.sType == '2')).sort((a, b) => a.iOrder - b.iOrder);
+ res = pre.concat(after);
+ }
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return oriData || [];
+ }
+ };
+
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ };
+
+ /* 选择成品材料 */
+ const finishedMaterialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ configName: 'finishedMaterials',
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials', true),
+ headerColumn: finishedMaterialsColumn,
+ config: finishedMaterialsConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ bShowProductMaterials,
+ chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ };
+
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ onDrag: props.onDrag,
+ isDragAndDrop: true,
+ };
+
+ /* 选择成品材料 */
+ const finishedProcessPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ configName: 'finishedProcess',
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process', true),
+ headerColumn: finishedProcessColumn,
+ config: finishedProcessConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ onDrag: props.onProductDrag,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ bShowProductProcess,
+ chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ };
+
+ let colorTableProps = {};
+ // let cProps = {};
+ if (colorConfigGrdVisible) {
+ colorTableProps = {
+ ...commonBusiness.getTableTypes('color', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // cProps = { ...commonBusiness.createMemoProps('color', props) };
+ }
+
+
+ let dailyRecordTableProps = {};
+ if (dailyConfigGrdVisible) {
+ dailyRecordTableProps = {
+ ...commonBusiness.getTableTypes('daily', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ }
+ let searchProcessType = {};
+ let chooseProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.processChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (iIndex > -1) {
+ chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+
+ searchProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: props.processChooseData.sMenuName,
+ route: props.processChooseData.sName,
+ formId: props.processChooseData.sId,
+ key: sModelsId + props.processChooseData.sId,
+ sModelsType: props.processChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品工序 */
+ let chooseProdutProcessType = {};
+ let chooseProdutProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productProcessChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (iIndex > -1) {
+ chooseProdutProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */
+ });
+ }
+ /* 选择成品工序 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+
+ chooseProdutProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'chooseProductProcess',
+ config: chooseProdutProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProdutProcessConfig),
+ title: props.productProcessChooseData.sMenuName,
+ route: props.productProcessChooseData.sName,
+ formId: props.productProcessChooseData.sId,
+ key: sModelsId + props.productProcessChooseData.sId,
+ sModelsType: 'search/finalProcess',
+ select: props.onSelectFinalProcess, /* 选择成品工序 */
+ selectCancel: props.onCancelModal.bind(this, 'productProcessChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品材料 */
+ let chooseProductMaterialsType = {};
+ let chooseProductMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productMaterialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (iIndex > -1) {
+ chooseProductMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表s */
+ });
+ }
+ /* 选择成品材料 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+ chooseProductMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productMaterials',
+ config: chooseProductMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseProductMaterialsConfig),
+ title: props.productMaterialsChooseData.sMenuName,
+ route: props.productMaterialsChooseData.sName,
+ formId: props.productMaterialsChooseData.sId,
+ key: sModelsId + props.productMaterialsChooseData.sId,
+ sModelsType: 'search/finalMaterials',
+ select: props.onSelectProductMaterial,
+ selectCancel: props.onCancelModal.bind(this, 'productMaterialsChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ const packTableProps = {
+ ...commonBusiness.getTableTypes('pack', props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy, setDelete, CalLastWidth: '1150', AutoTableHeight: '300px',
+ },
+ bRowClick: true,
+ };
+ let combinePartsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.packConfig)) {
+ combinePartsConfig = JSON.parse(JSON.stringify(props.packConfig));
+ const gdsconfigformslaveFilter = combinePartsConfig.gdsconfigformslave.filter(item => (item.sName === 'sId'
+ || item.sName === 'sCustomerName'
+ || item.sName === 'sProductName'
+ || item.sName === 'sCombinePartsName'));
+ combinePartsConfig.gdsconfigformslave = gdsconfigformslaveFilter;
+ combinePartsConfig.bMutiSelect = false;
+ }
+ let combinePartsColumn = [];
+ if (commonUtils.isNotEmptyObject(props.packColumn)) {
+ combinePartsColumn = JSON.parse(JSON.stringify(props.packColumn));
+ const packColumnFilter = props.packColumn.filter(item => (item.dataIndex === 'sId'
+ || item.dataIndex === 'sCustomerName'
+ || item.dataIndex === 'sProductName'
+ || item.dataIndex === 'sCombinePartsName'));
+ combinePartsColumn = packColumnFilter;
+ }
+ const combinePartsTableProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'combineParts',
+ config: combinePartsConfig,
+ select: props.onSelectCombinePartsChoose,
+ selectCancel: props.onCancelModal.bind(this, 'combinePartsChooseVisible'),
+ },
+ },
+ formRoute: '/indexPage/commonList',
+ slaveConfig: combinePartsConfig,
+ slaveColumn: combinePartsColumn,
+ slaveData: props.combinePartsData,
+ slaveSelectedRowKeys: props.combinePartsSelectedRowKeys,
+ selectedRowKeys: props.combinePartsSelectedRowKeys,
+ pageLoading: false,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: props.realizeHeight, /* 拖动偏移高度 */
+ };
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 工序表选择颜色 */
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors');
+ if (iIndex > -1) {
+ chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'sisColor',
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: '选择颜色',
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: 'search/sisColor',
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {},
+ };
+ }
+
+ const tabChange = (e) => {
+ props.onTabChange(e);
+ };
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const productInfo = commonFunc.showMessage(app.commonConst, 'productInfo');/* 产品信息 */
+ const materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */
+ const productMaterialsInfo = commonFunc.showMessage(app.commonConst, 'productMaterialsInfo');/* 成品材料 */
+ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */
+ const productProcessInfo = commonFunc.showMessage(app.commonConst, 'productProcessInfo');/* 成品工序 */
+ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */
+ const dailyInfo = commonFunc.showMessage(app.commonConst, 'dailyInfo');/* 日志信息 */
+ const setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ const setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */
+ const setProductCombinationTitle = commonFunc.showMessage(app.commonConst, 'setProductCombination');/* 选择合拼产品标题 */
+ const setProductProcessTitle = commonFunc.showMessage(app.commonConst, 'setProductProcess');/* 选择成品工序标题 */
+ const setProductMaterialsTitle = commonFunc.showMessage(app.commonConst, 'setProductMaterials');/* 选择成品材料标题 */
+
+ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 */
+ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */
+ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */
+ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */
+ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */
+ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底 */
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAdd = {props.enabled ? setAdd.img : setAdd.disableimg} ;
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAddChild = {props.enabled ? setAddChild.img : setAddChild.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateCopy = {props.enabled ? setCopy.img : setCopy.disableimg};
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateUpdate = {props.enabled ? setCopyAll.img : setCopyAll.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateDel = {props.enabled ? setDelete.img : setDelete.disableimg};
+
+ let bControlShow = true; /* 控制表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexControl = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbControl');
+ if (iIndexControl > -1) {
+ bControlShow = props.masterConfig.gdsconfigformslave[iIndexControl].bVisible;
+ }
+ }
+ let bMaterialShow = true; /* 材料表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexMaterial = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbMaterial');
+ if (iIndexMaterial > -1) {
+ bMaterialShow = props.masterConfig.gdsconfigformslave[iIndexMaterial].bVisible;
+ }
+ }
+ let bProcessShow = true; /* 工序表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexProcess = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbProcess');
+ if (iIndexProcess > -1) {
+ bProcessShow = props.masterConfig.gdsconfigformslave[iIndexProcess].bVisible;
+ }
+ }
+
+ const bFinalMaterialsTabShow = commonUtils.isEmptyObject(finishedMaterialsConfig) ? false :true; /* 没有成品材料配置 则材料Tab不展示 */
+ const bFinalProcessTabShow = commonUtils.isEmptyObject(finishedProcessConfig) ? false :true; /* 没有成品工序配置 则工序Tab不展示 */
+
+
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSales(ProcessCardPack));
diff --git a/src/components/Manufacture/ProcessCardPack/ProcessCardPackTableTree.js b/src/components/Manufacture/ProcessCardPack/ProcessCardPackTableTree.js
new file mode 100644
index 0000000..b906de6
--- /dev/null
+++ b/src/components/Manufacture/ProcessCardPack/ProcessCardPackTableTree.js
@@ -0,0 +1,8966 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring,no-loop-func */
+import React, { Component } from 'react';
+import moment from 'moment';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import EjectRight from '@/assets/eject.svg';/* 弹出图标 */
+import {
+ RightOutlined,
+} from '@ant-design/icons';
+import CloseRight from "../../../assets/close.svg";
+import { Modal, Layout, Spin, Avatar, Select, message, Button, Tabs, Collapse, Radio, Row, Col, Divider } from 'antd';
+import AddIcon from '../../../assets/add.svg';
+import DisableAddIcon from '../../../assets/disableadd.svg';
+import DelIcon from '../../../assets/delete.svg';
+import DisableDelIcon from '../../../assets/disabledelete.svg';
+import CopyIcon from '../../../assets/copy.svg';
+import CopyAllIcon from '../../../assets/copyall.svg';
+import DisableCopyIcon from '../../../assets/disablecopy.svg';
+import DisableCopyAllIcon from '../../../assets/disablecopyall.svg';
+import MateriallIcon from '../../../assets/material.svg';
+import DisableMateriallIcon from '../../../assets/disablematerial.svg';
+import ProcessIcon from '../../../assets/process.svg';
+import DisableProcessIcon from '../../../assets/disableprocess.svg'; /* 获取图标 */
+import ProcessUp from '../../../assets/processUp.svg';
+import ProcessDown from '../../../assets/processDown.svg';
+import DisableProcessUp from '../../../assets/disableprocessUp.svg';
+import DisableProcessDown from '../../../assets/disableprocessDown.svg';
+import ProcessTop from '../../../assets/processTop.svg';
+import DisableProcessTop from '../../../assets/disableprocessTop.svg';
+import ProcessBottom from '../../../assets/processBottom.svg';
+import DisableProcessBottom from '../../../assets/disableprocessBottom.svg';
+import CommonSales from '../../Common/CommonBillEvent'; /* 继承销售模块业务功能 */
+import * as commonFunc from '../../Common/commonFunc'; /* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '../../Common/ToolBar/ToolBarNew';
+import StaticEditTable from '../../Common/CommonTable'; /* 可编辑表格 */
+import styles from '../../../index.less';
+import selfstyles from '../index.less';
+import CommonView from '../../Common/CommonView';
+import CommonBase from '../../Common/CommonBase'; /* 获取配置及数据 */
+import * as commonUtils from '../../../utils/utils'; /* 通用方法 */
+import * as commonBusiness from '../../Common/commonBusiness'; /* 单据业务功能 */
+import commonConfig from '../../../utils/config';
+import * as commonServices from '../../../services/services'; /* 服务类 */
+import CommonListSelect from '../../Common/CommonListSelect';
+import CommonListSelectFlex from '../../Common/CommonListSelectFlex';/* 可编辑的选择界面 */
+import CommonListSelectTree from '../../Common/CommonListSelectTree';/* 树形选择界面 */
+import CommonListSelectMulti from '@/components/Common/CommonListSelectMulti';
+// import CommonListSelectParam from '@/components/Common/CommonListSelectParam';
+import CommonViewDragable from '@/components/Common/CommonViewDragable';
+import CommonPartsInfo from '@/components/Common/CommonPartsInfo';
+import StaticEditTree from '../../Common/Tree/StaticTree';
+import Close from '../../../assets/closeleft.svg';
+import AddChildIcon from '../../../assets/addChild.svg';
+import DisableAddChildIcon from '../../../assets/disableaddChild.svg';
+import AntdDraggableDiv from '../../Common/AntdDraggableDiv';
+import Eject from '../../../assets/ejectleft.svg';
+// import SlaveMemo from '../../Common/SlaveMemo';
+import SplitPaste from '../WorkOrder/SplitPaste'; /* 选择界面 */
+import AntdDraggableModal from '../../Common/AntdDraggableModal';
+import ShowType from '../../Common/CommonComponent';
+import ContextMenuModal from '../../Common/ContextMenuModal';
+import CommonListSelectProductProcess from '../../Common/CommonListSelectAssignment';
+import CommonListSelectProductMaterial from '../../Common/CommonListSelectProductMaterial';
+import WorkFlow from '@/components/Common/Flows/CommonFlow'; /* 工作流 */
+import SvgIcon from "../../SvgIcon";
+
+
+const { Header, Content, Sider } = Layout;
+const { Option } = Select;
+const { confirm } = Modal;
+const { TabPane } = Tabs;
+const { Panel } = Collapse;
+
+const isQianCai = false; // 千彩s
+const isYaChang = false;
+let _this;
+
+class ProcessCardPackTableTree extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ fastOrderModalVisible: false,
+ currentTab: 12,
+ currentTab2: 1,
+ activeKey: ['1', '2'],
+ processTableId: `processTableId_${commonUtils.createSid()}`,
+ partsInfoEnabled: false,
+ };
+ this.isLayout = false;
+ this.isLayout2 = false;
+ _this = this;
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ let {
+ controlColumn, materialsColumn, processColumn, dailyColumn, colorColumn, packColumn,
+ } = nextProps;
+ const { formData, currentId } = nextProps;
+ if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ if(masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0]) {
+ this.isLayout = masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0].bVisible;
+ }
+ if(masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout2')[0]) {
+ this.isLayout2 = masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout2')[0].bVisible;
+ }
+ /* bGrd代表是否是表格 */
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+
+ let checkConfig ={};
+ let checkColumn ={};
+ if(commonUtils.isNotEmptyArr( formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult'))) {
+ checkConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0];
+ checkColumn = commonFunc.getHeaderConfig(checkConfig);
+ }
+
+
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrol'.toUpperCase())[0];
+ controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn);
+
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase())[0];
+ materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn);
+
+ const finishedMaterialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase() && item.showName === '成品材料')[0];
+ const finishedMaterialsColumn = finishedMaterialsConfig ? commonFunc.getHeaderConfig(finishedMaterialsConfig) : false;
+
+ const addState2 ={};
+ const addStateConfig ={};
+ /* 取材料组配置放在数组 */
+ let materialsInfoList = [];
+ let materialsChildInfoList = [];
+ const materialsFormData = formData.filter(item => item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible );
+ // const materialsFormData = formData.filter(item => item.sTbName !== 'mftworkordermaterials' && item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible );
+ /* 找到除了材料,成品材料外的其他所有父级材料 */
+
+ if(commonUtils.isNotEmptyArr(materialsFormData)) {
+ materialsFormData.forEach((item, index) => {
+ addState2[`materials${index}Config`] = item;
+ addStateConfig[`materials${index}Config`] = item;
+ addState2[`materials${index}Column`] = commonFunc.getHeaderConfig(item);
+ /* 找到该配置的子从表 */
+ const childFormData = formData.filter(child => child.sGrd === item.sChildTableName );
+ if(commonUtils.isNotEmptyArr(childFormData)) {
+ childFormData.forEach((child, num) => {
+ addState2[`materials${index}ChildConfig`] = child;
+ addStateConfig[`materials${index}ChildConfig`] = child;
+ addState2[`materials${index}ChildColumn`] = commonFunc.getHeaderConfig(child);
+ // materialsInfoList.push(child.showName);
+ const sChildName = item.showName + num +1;
+ materialsChildInfoList.push(`materials${index}Child`);
+ });
+ }
+ materialsInfoList.push(`materials${index}`);
+ });
+ }
+ const addStateMap = addStateConfig;
+
+
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId');
+
+ const finishedProcessConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase() && item.showName === '成品工序')[0];
+ const finishedProcessColumn = finishedProcessConfig ? commonFunc.getHeaderConfig(finishedProcessConfig) : false;
+
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ processColumn = commonFunc.getHeaderConfig(processConfig, processColumn);
+ /* 合版信息表 */
+ const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrolcombine'.toUpperCase())[0];
+ const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'sCustomerName'
+ || item.sName === 'sProductId'
+ || item.sName === 'sCustomerId'
+ || item.sName === 'sProductNo'
+ || item.sName === 'sProductName'
+ || item.sName === 'dProductQty'
+ || item.sName === 'sProductStyle'
+ || item.sName === 'sProductUnit')); /* 拼接从表配置,客户名称 ,产品名称,生产数 */
+ const salveChooseConfigFilter = [];
+ if (commonUtils.isNotEmptyArr(slaveChooseConfig)) {
+ slaveChooseConfig.forEach((item) => {
+ const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName);
+ if (iIndex === -1) {
+ const itemNew = Object.assign({}, item);
+ itemNew.bNotEmpty = false;
+ salveChooseConfigFilter.push(itemNew);
+ }
+ });
+ }
+ /* 拼接排序 */
+ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) {
+ let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === 'iOrder');
+ packFilter = packFilter.concat(salveChooseConfigFilter);
+ const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== 'iOrder');
+ packFilter = packFilter.concat(packFilterOther);
+ packConfig.gdsconfigformslave = packFilter;
+ }
+ packColumn = commonFunc.getHeaderConfig(packConfig, packColumn);
+
+ let colorConfigGrdVisible;
+ const colorConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftProductparam'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(colorConfigTrue)) {
+ colorConfigGrdVisible = colorConfigTrue.bGrdVisible;
+ if (colorConfigGrdVisible) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ }
+ }
+ let dailyConfigGrdVisible;
+ const dailyConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(dailyConfigTrue)) {
+ dailyConfigGrdVisible = dailyConfigTrue.bGrdVisible;
+ if (dailyConfigGrdVisible) {
+ dailyColumn = commonFunc.getHeaderConfig(dailyConfigTrue, dailyColumn);
+ }
+ }
+
+
+ let addState = {};
+ const dailyConfig = dailyConfigGrdVisible ? dailyConfigTrue : '';
+ const colorConfig = colorConfigGrdVisible ? colorConfigTrue : '';
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.packConfig = packConfig;
+ config.colorConfig = colorConfig;
+ config.dailyConfig = dailyConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, {}, addStateConfig);
+ this.handleGetOtherData(materialsInfoList, materialsChildInfoList, addStateConfig);
+ }
+ this.props.onSaveState({
+ masterConfig,
+ slaveConfig,
+ slaveColumn,
+ checkConfig,
+ checkColumn,
+ sId,
+ pageLoading: false,
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ dailyConfig,
+ dailyColumn,
+ packConfig,
+ packColumn,
+ ...addState,
+ dailyConfigGrdVisible,
+ colorConfigGrdVisible,
+ ...addStateConfig,
+ addStateMap,
+ ...addState2,
+ materialsInfoList,
+ materialsChildInfoList,
+ });
+ }
+ // // 未清复制到时,产品ID需要再获取动态部件;
+ // const sId = currentId !== undefined ? currentId : '';
+ // if (sId === '' && commonUtils.isNotEmptyObject(this.props.masterData) && !this.props.bGetPartsData) {
+ // const { sAllPartsName } = this.props.masterData;
+ // if (sAllPartsName !== undefined) {
+ // const allPartsName = sAllPartsName.split(',');
+ // const sPartsName = allPartsName[0];
+ // if (commonUtils.isEmptyObject(this.props.masterConfig[`dSumPQty${sPartsName}`])) {
+ // this.handleMasterChange('master', 'sProductClassifyName');
+ // this.props.onSaveState({ bGetPartsData: true });
+ // }
+ // }
+ // }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { controlColumn, slaveConfig } = nextProps;
+ return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn);
+ }
+
+ handlePartsInfoConfig = (val) => {
+ this.setState({ partsInfoEnabled: val });
+ }
+
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnFastOrder' || menu.sControlName === 'BtnChooseProcess' || menu.sControlName === 'BtnChooseMaterials' || menu.sControlName === 'BtnDraft') {
+ return !this.props.enabled;
+ }
+ };
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ handleEjectRight = () => { /* 右侧树形弹出展开 */
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ const { masterData, slaveData, controlData, materialsData, processData }=this.props;
+ if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyArr(slaveData)) {
+ const totalTreeState = this.handleGetTotalTreeData(masterData, slaveData, controlData, materialsData, processData, true);
+ if (commonUtils.isNotEmptyObject(totalTreeState)) {
+ const totalTreeData = totalTreeState.totalTreeData;
+ const expandedKeys = totalTreeState.expandedKeys;
+ if (commonUtils.isNotEmptyArr(totalTreeData)) {
+ this.props.onSaveState({
+ totalTreeData,
+ expandedKeys
+ });
+ }
+ }
+ }
+
+ }
+ }
+ }
+ }
+ };
+
+ handleGetProcessData = (processConfig, addStateControl, addStateProcess) => {
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ let iIndex = -1;
+ iIndex = addStateProcess.processData.findIndex(item => item.sId === itemProcess.sId);
+ if (iIndex > -1) {
+ addStateProcess.processData[iIndex] = { ...itemProcess, ...commonUtils.convertStrToObj(itemProcess.sWorkOrderParam) };
+ }
+ }
+ }
+ });
+ addStateProcess.processSelectedRowKeys = [];
+ addStateProcess.processSelectedRowKeys = [];
+ if(commonUtils.isNotEmptyArr(addStateProcess.processData) && commonUtils.isNotEmptyArr(addStateControl?.controlSelectedRowKeys)) {
+ const processFilterData = addStateProcess.processData.filter(item => item.sControlId === addStateControl?.controlSelectedRowKeys[0])
+ if (commonUtils.isNotEmptyArr(processFilterData)) {
+ addStateProcess.processSelectedData = [processFilterData[0]];
+ addStateProcess.processSelectedRowKeys = [processFilterData[0].sId];
+ }
+ }
+ }
+ }
+ return { ...addStateProcess || {} };
+ }
+
+ handleGetControlData = (addStateControl) => {
+ const { sModelsType } = this.props; /* 当前页签数据 */
+ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */
+ const treeState = this.handleGetControlTreeData(controlData, true);
+ const noSelected = sModelsType === 'manufacture/workOrderPackTableTree';
+ return ({ ...addStateControl, ...treeState, treeSelectedKeys: noSelected ? [] : controlSelectedRowKeys });
+ }
+
+ /* 获取表数据 */
+ handleGetData1 = async (controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, extraState = {}, configMap) => {
+ const { currentId, slaveData, masterData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ const addStateControl = await this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */
+ const treeState = this.handleGetControlTreeData(controlData, true);
+
+ const addStateMaterials = await this.props.handleGetDataSet({
+ name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ addStateMaterials.materials0Data = addStateMaterials.materialsData;
+ addStateMaterials.materials0SelectedRowKeys = [];
+ /* 如果是材料表 则进行数据拆分 */
+ // if(commonUtils.isNotEmptyArr(addStateMaterials)) {
+ // const materials0Data = addStateMaterials.materialsData;
+ // if(commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyObject(configMap) ) {
+ //
+ // // if( commonUtils.isNotEmptyObject(configMap.materials1Config)) {
+ // // const addStateMaterials1Data = this.props.onSplitData(materials0Data, configMap.materials1Config, 'materials1' );
+ // // if(commonUtils.isNotEmptyObject(addStateMaterials1Data)) {
+ // // const materials1Data = addStateMaterials1Data.materials1Data;
+ // // /* 取子集数据 */
+ // // if(commonUtils.isNotEmptyArr(materials1Data)) {
+ // // const materials1ChildData = materials1Data.filter(item => commonUtils.isNotEmptyObject(item.sInkBOMId)
+ // // && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId) );
+ // // if(commonUtils.isNotEmptyArr(materials1ChildData)) {
+ // // addStateMaterials.materials1ChildData = materials1ChildData;
+ // // }
+ // // }
+ // // addStateMaterials.materials1Data = materials1Data;
+ // // }
+ // // }
+ // // if( commonUtils.isNotEmptyObject(configMap.materials2Config)) {
+ // // const addStateMaterials2Data = this.props.onSplitData(materials0Data, configMap.materials2Config, 'materials2' );
+ // // if(commonUtils.isNotEmptyObject(addStateMaterials2Data)) {
+ // // addStateMaterials.materials2Data = addStateMaterials2Data.materials2Data;
+ // // const materials2Data = addStateMaterials2Data.materials2Data;
+ // // /* 取子集数据 */
+ // // if(commonUtils.isNotEmptyArr(materials2Data)) {
+ // // const materials2ChildData = materials2Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ // // if(commonUtils.isNotEmptyArr(materials2ChildData)) {
+ // // addStateMaterials.materials2ChildData = materials2ChildData;
+ // // }
+ // // }
+ // // addStateMaterials.materials2Data = materials2Data;
+ // // }
+ // // }
+ // // /* 取替代料数据 */
+ // // if(commonUtils.isNotEmptyArr(materials0Data)) {
+ // // /* 是替代料 并且有父级id */
+ // // const materials0ChildData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId) && item.bAlternative);
+ // // if(commonUtils.isNotEmptyArr(materials0ChildData)) {
+ // // /* 替代料 找到原材料的材料编号,材料名称,物料大类 */
+ // // materials0ChildData.forEach((child,index) => {
+ // // const iIndex = materials0Data.findIndex(item => item.sId === child.sId);
+ // // if (iIndex > -1) {
+ // // materials0ChildData[index] ={...child, sMaterialsNo1: materials0Data[iIndex].sMaterialsNo,
+ // // sMaterialsName1: materials0Data[iIndex].sMaterialsName, sBclassifyName1: materials0Data[iIndex].sBclassifyName,
+ // // }
+ // // }
+ // // });
+ // // console.log('111s', materials0ChildData);
+ // // addStateMaterials.materials0ChildData = materials0ChildData;
+ // // }
+ // // }
+ //
+ // }
+ //
+ // }
+ const addStateProcess = await this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ let iIndex = -1;
+ iIndex = addStateProcess.processData.findIndex(item => item.sId === itemProcess.sId);
+ if (iIndex > -1) {
+ addStateProcess.processData[iIndex] = { ...itemProcess, ...commonUtils.convertStrToObj(itemProcess.sWorkOrderParam) };
+ }
+ }
+ }
+ });
+ addStateProcess.processSelectedRowKeys = [];
+ if(commonUtils.isNotEmptyArr(addStateProcess.processData) && commonUtils.isNotEmptyArr(addStateControl.controlSelectedRowKeys)) {
+ const processFilterData = addStateProcess.processData.filter(item => item.sControlId === addStateControl.controlSelectedRowKeys[0])
+ if (commonUtils.isNotEmptyArr(processFilterData)) {
+ addStateProcess.processSelectedData = [processFilterData[0]];
+ addStateProcess.processSelectedRowKeys = [processFilterData[0].sId];
+ }
+ }
+ // addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ }
+ }
+ const addStatePack = await this.props.handleGetDataSet({
+ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ let addStateColor = {};
+ if (colorConfig) {
+ addStateColor = await this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ /* 合版表合并产品信息 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const { packData } = addStatePack;
+ slaveData.forEach((itemSlave) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(itemSlave);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ }
+ }
+ });
+ }
+ });
+ addStatePack.packData = packData;
+ }
+ /* 获取整体树结构 */
+ // const { materialsData } = addStateMaterials; /* 工序表 */
+ // const { processData } = addStateProcess; /* 材料表 */
+ // const totalTreeState = this.handleGetTotalTreeData(masterData,slaveData,controlData,materialsData,processData, true);
+
+ let addStateDaily = {};
+ if (dailyConfig) {
+ addStateDaily = await this.props.handleGetDataSet({
+ name: 'daily', configData: dailyConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ this.props.onSaveState({
+ pageLoading: false, ...addStateControl, ...addStateMaterials, ...addStateProcess, ...addStateColor, ...addStateDaily,...addStatePack, ...treeState, treeSelectedKeys: controlSelectedRowKeys, ...extraState,
+ });
+ };
+
+ /* 全部加载完 界面在结束loading */
+ handleGetAllData = (controlConfig, processConfig, sId, materialsConfig, colorConfig, dailyConfig, packConfig, extraState) => {
+ const { slaveData } = this.props; /* 当前页签数据 */
+
+ const allRequest = [];
+
+ if (commonUtils.isNotEmptyObject(controlConfig)) {
+ allRequest.push(
+ this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }),
+ )
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (commonUtils.isNotEmptyObject(processConfig)) {
+ allRequest.push(
+ this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ })
+ )
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (commonUtils.isNotEmptyObject(materialsConfig)) {
+ allRequest.push(this.props.handleGetDataSet({
+ name: "materials",
+ configData: materialsConfig,
+ condition: { sSqlCondition: { sParentId: sId } },
+ isWait: true
+ }));
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ allRequest.push(this.props.handleGetDataSet({
+ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }));
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (colorConfig) {
+ allRequest.push(this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }))
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (dailyConfig) {
+ allRequest.push(this.props.handleGetDataSet({
+ name: 'daily', configData: dailyConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }))
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ Promise.allSettled(allRequest).then(
+ ([
+ { status: controlStatus, value: addStateControl },
+ { status: processStatus, value: addStateProcess },
+ { status: materialsStatus, value: addStateMaterials },
+ { status: packStatus, value: addStatePack },
+ { status: colorStatus, value: addStateColor },
+ { status: dailyStatus, value: addStateDaily },
+ ]) => {
+
+ let result = {};
+
+ if (controlStatus === 'fulfilled') {
+ const controlValue = this.handleGetControlData(addStateControl);
+ result = { ...result, ...controlValue };
+ }
+
+ if (processStatus === 'fulfilled') {
+ const processValue = this.handleGetProcessData(processConfig, addStateControl, addStateProcess);
+ result = { ...result, ...processValue };
+ }
+
+ if (materialsStatus === 'fulfilled') {
+ addStateMaterials.materials0Data = addStateMaterials.materialsData;
+ addStateMaterials.materials0SelectedRowKeys = [];
+
+ result = { ...result, ...addStateMaterials };
+ }
+
+ if (packStatus === 'fulfilled') {
+ const { packData } = addStatePack;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((itemSlave) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(itemSlave);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ }
+ }
+ });
+ }
+ });
+ }
+ addStatePack.packData = packData;
+ result = { ...result, ...addStatePack }
+ }
+
+ if (colorStatus === 'fulfilled') {
+ result = { ...result, ...addStateColor };
+ }
+ if (dailyStatus === 'fulfilled') {
+ result = { ...result, ...addStateDaily };
+ }
+ this.props.onSaveState({ ...result, pageLoading: false, ...extraState, })
+
+ })
+ }
+ /* 获取表数据 */
+ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, extraState = {}, configMap) => {
+ const { currentId, slaveData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+
+ this.handleGetAllData(controlConfig, processConfig, sId, materialsConfig, colorConfig, dailyConfig, packConfig, extraState, configMap);
+ };
+
+
+ handleGetOtherData = async (tableList, childTableList, configMap) => {
+ const { currentId, slaveData, sModelsType, masterData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ if(commonUtils.isNotEmptyObject(configMap)){
+ for (const configName of Object.keys(configMap)) {
+ const tableName = configName.replace('Config', '').trim();
+ const childConfig = configMap[configName];
+ if(childConfig.sTbName !=='noTable') {
+ this.props.handleGetDataSet({
+ name: tableName, configData: childConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+
+ }
+ }
+ };
+
+ /* 获取套件树形全部结构 */
+ handleGetTotalTreeData= (masterData,slaveData,controlData,materialsData,processData, isWait) => {
+ /* 生成部件树结构 */
+ let totalTreeData = [];
+ const expandedKeys = [];
+ const addState ={};
+ // let { totalTreeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sProductName1)) {
+ const rootData = [masterData]; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRoot = {};
+ const { sId, sProductName1 } = item;
+ treeDataRoot.key = sId;
+ treeDataRoot.showName = sProductName1;
+ treeDataRoot.sAllId = item.sId;
+ treeDataRoot.isRoot = true;
+ expandedKeys.push(sId);
+ /* 添加从表作为二级节点 */
+ const childrenSlave = [];
+ let bRelation = false; /* 从表与控制表没有关联性 */
+ if(commonUtils.isNotEmptyArr(slaveData)){
+ slaveData.forEach((itemSlave,index) => {
+ const { sId, sProductName } = itemSlave;
+ const treeSlaveRow = {};
+ treeSlaveRow.key = sId;
+ treeSlaveRow.showName ='产品-'+ sProductName;
+ treeSlaveRow.sAllId = itemSlave.sId;
+ /* 获取从表关联的控制表 */
+ const childrenControl = [];
+ if(commonUtils.isNotEmptyArr(controlData)){
+ const controlCollection =[];
+ controlData.forEach((itemControl) => {
+ if(itemControl.sCombinedMemo && itemControl.sCombinedMemo !== '') {
+ const sCombinedMemoArr = commonUtils.isJSON(itemControl.sCombinedMemo) ? JSON.parse(itemControl.sCombinedMemo) : [];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo.indexOf(itemSlave.sProductNo) !== -1).length;
+ if(len > 0) {
+ const sAllId =itemControl.sAllId;
+ /* 找到这个sAllId的第一级 把整个部件挂到产品下面 */
+ if (commonUtils.isNotEmptyObject(sAllId)) {
+ const arr = sAllId.split(',');
+ if (arr.length > 0){
+ const firstsId =arr[0]; /* 从sAllId找第一级*/
+ if(!controlCollection.includes(firstsId)){
+ controlCollection.push(firstsId)
+ }
+ }
+ }
+ }
+ }
+ });
+ if(commonUtils.isNotEmptyArr(controlCollection)){ /* 作为子表子级 */
+ bRelation =true;
+ for (const key of controlCollection) {
+ const iIndex =controlData.findIndex(item => item.sId === key);
+ if(iIndex > -1) {
+ const tableRow = controlData[iIndex];
+ const { sId,sAllId } = tableRow;
+ const treeControlRow = {}
+ treeControlRow.key = sId + '-' +commonUtils.createSid();
+ treeControlRow.showName = '部件-' + tableRow.sPartsName;
+ treeControlRow.sAllId = sAllId;
+ /* 控制表根据一级菜单获取子集 */
+ let childrenChild = [];
+ childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(childrenChild)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeControlRow.sChildren = sChildren;
+ treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : [];
+
+ childrenControl.push(treeControlRow);
+
+
+ }
+ };
+ }
+ }
+
+ treeSlaveRow.children = commonUtils.isNotEmptyArr(childrenControl) ? childrenControl : [];
+ childrenSlave.push(treeSlaveRow);
+
+ /* 如果从表与控制表没有关联 */
+ if(!bRelation){
+ controlData.forEach((itemControl) => {
+ const { sId,sAllId,sPartsName } = itemControl;
+ const treeControlRow = {}
+ treeControlRow.key = sId + '-' +commonUtils.createSid();
+ treeControlRow.showName = '部件-' + sPartsName;
+ treeControlRow.sAllId = sAllId;
+ treeControlRow.sId =sId;
+ /* 控制表根据一级菜单获取子集 */
+ let childrenChild = [];
+ childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(childrenChild)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeControlRow.sChildren = sChildren;
+ treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : [];
+ const filterData =childrenSlave.filter(item => item.sId ===treeControlRow.sId);
+ if(commonUtils.isEmptyArr(filterData)){
+ childrenSlave.push(treeControlRow);
+ }
+ });
+ }
+
+ /* 加载成品材料、成品工序作为从表的同级 */
+ if(commonUtils.isNotEmptyArr(materialsData)){
+ const childTree = commonUtils.isNotEmptyArr(materialsData) ? materialsData.filter(item => item.sType === 2) : [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sMaterialsName,sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = '成品材料' +'-'+ sMaterialsName;
+ treeDataRow.sAllId = child.sAllId;
+ childrenSlave.push(treeDataRow);
+ });
+ }
+ }
+ /* 获取工序表 */
+ if(commonUtils.isNotEmptyArr(processData)){
+ const childTree = commonUtils.isNotEmptyArr(processData) ? processData.filter(item => item.sType === 3) : [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sProcessName,sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = '成品工序' +'-'+ sProcessName;
+ treeDataRow.sAllId = child.sAllId;
+ childrenSlave.push(treeDataRow);
+ });
+ }
+ }
+
+
+
+
+ if(!expandedKeys.includes(sId)){
+ expandedKeys.push(sId);
+ }
+ });
+ treeDataRoot.children = commonUtils.isNotEmptyArr(childrenSlave) ? childrenSlave : [];
+ }
+ totalTreeData.push(treeDataRoot);
+ });
+ } else {
+ totalTreeData = [];
+ }
+ addState.totalTreeData=totalTreeData;
+ addState.expandedKeys=expandedKeys;
+ if (isWait) {
+ return { ...addState };
+ } else {
+ this.props.onSaveState({
+ totalTreeData,
+ expandedKeys,
+ });
+ }
+ };
+ /** 获取部件树 */
+ handleGetControlTreeData= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+
+ handleGetControlTreeDataBak= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ const expandedKeys = [];
+ let { treeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ const rootData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => commonUtils.isEmpty(item.sControlParentId)) : []; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRow = {};
+ const { sId, sPartsName } = item;
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.sAllId = item.sAllId;
+ const children = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(children)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(children) ? children : [];
+ treeData.push(treeDataRow);
+ });
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ expandedKeys.push(treeData[treeData.length - 1].key);
+ }
+ } else {
+ treeSelectedKeys = [];
+ treeData = [];
+ }
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+ /** 获取子节点数据 */
+ handleGetControlTreeChildData= (sParentId, controlData) => {
+ if (commonUtils.isNotEmptyObject(sParentId) && commonUtils.isNotEmptyArr(controlData)) {
+ const childTree = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sControlParentId === sParentId) : [];
+ const children = [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.parentKey = sParentId;
+ treeDataRow.sAllId = child.sAllId;
+ const data = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(data)) {
+ sChildren = '0';
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(data) ? data : [];
+ children.push(treeDataRow);
+ });
+ }
+ return children;
+ }
+ };
+
+ /** 根据key查找树节点并改变属性 */
+ handleSearchNodes= (key, data, showNameNew) => {
+ if (commonUtils.isNotEmptyObject(showNameNew)) {
+ data.forEach((item) => {
+ if (item.key === key) {
+ item.showName = showNameNew;
+ } else if (commonUtils.isNotEmptyArr(item.children)) {
+ this.handleSearchNodes(key, item.children, showNameNew);
+ }
+ });
+ }
+ }
+ handleBackProcessData = async (config, isWait) => {
+ const { token } = this.props.app;
+ const { sModelsId, sBackProcessData } = this.props;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === '') {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: '', sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ this.props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ }
+
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /* 非列表联动下拉 */
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const {
+ sModelsId, app,
+ } = this.props;
+ const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = this.props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') {
+ backProcessData = await this.handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) {
+ let iIndex;
+ allPartsName.forEach((sPartsName) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0];
+
+ const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) { /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ sBackProcessClassifyData = rows;
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) {
+ const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : [];
+ const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : [];
+ const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : [];
+ const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : [];
+ const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : [];
+
+ let ConfigNew;
+ allPartsName.forEach((item) => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...masterDataDefault, ...returnChange.masterData };
+ if (isWait) {
+ return {
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ };
+ } else {
+ this.props.onSaveState({
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ });
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = '';
+ returnChange.masterData.sProductNo = '';
+ returnChange.masterData.sProductName = '';
+ }
+ this.props.onSaveState({ ...returnChange });
+ } else {
+ this.props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ /* 数据生成按钮 */
+ handleDataCreate= async (flag) => {
+ let { checkProcessClassifyData } = this.props;
+ const {
+ masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app,
+ } = this.props;
+ const { token } = this.props.app;
+ const paramMap = {};
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+ let cpProcessName = '';
+ checkProcessClassifyData = commonUtils.isEmptyArr(checkProcessClassifyData) ? [] : checkProcessClassifyData;
+ // paramMap.modelName = masterData.modelName;
+ paramMap.sCustomerId = masterData.sCustomerId;
+ paramMap.sCustomerName = masterData.sCustomerName;
+ paramMap.sProductClassifyId = masterData.sProductClassifyId;
+ paramMap.sProductId = masterData.sProductId;
+ paramMap.sProductName = masterData.sProductName;
+ paramMap.sProductStyleId = masterData.sProductStyleId;
+ paramMap.sProductStyle = masterData.sProductStyle;
+ paramMap.dProductWidth = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[1] : 0;
+ paramMap.dProductLength = !commonUtils.isEmpty(masterData.sProductStyle) && masterData.sProductStyle.split('*').length > 0 ? masterData.sProductStyle.split('*')[0] : 0;
+ paramMap.dProductHeight = 0;
+ paramMap.dProductQty = masterData.dProductQty;
+ const partsInfo = [];
+ allPartsName.forEach((item) => {
+ const partInfo = {};
+ partInfo.sPartsName = item;
+ partInfo.dPartsQty = masterData.dProductQty;
+ partInfo.dSumPQty = masterData[`dSumPQty${item}`];
+ const materialsInfo = [];
+ const material = {};
+ material.sMaterialsId = masterData[`sMaterialsId${item}`];
+ material.sMaterialsNo = masterData[`sMaterialsNo${item}`];
+ material.sMaterialsName = masterData[`sMaterialsName${item}`] !== undefined && masterData[`sMaterialsName${item}`].split('[-]').length > 1 ? masterData[`sMaterialsName${item}`].split('[-]')[1] : masterData[`sMaterialsName${item}`];
+ materialsInfo.push(material);
+ partInfo.materialsInfo = materialsInfo;
+ partInfo.iPositiveColor = masterData[`iPositiveColor${item}`];
+ partInfo.iPrintModePo = masterData[`iPrintModePo${item}`];
+ if (material.sMaterialsId !== undefined && material.sMaterialsId !== '') {
+ const processInfo = [];
+ checkProcessClassifyData.filter(card => card.sPartsName === item && card.sType !== '3').forEach((card) => {
+ if (!commonUtils.isEmpty(masterData[card.sId + item])) {
+ if (commonUtils.isEmpty(partInfo.sPrintProcessId) && card.sType === '1') {
+ partInfo.sPrintProcessId = masterData[card.sId + item];
+ } else {
+ const process = {};
+ process.sProductClassifyId = card.sId;
+ process.sProcessId = masterData[card.sId + item];
+ if (masterData[card.sId + card.sName + item] !== undefined) {
+ process.sProcessName = masterData[card.sId + card.sName + item];
+ process.sType = masterData[card.sId + card.sType + item];
+ processInfo.push(process);
+ }
+ }
+ }
+ });
+ partInfo.processInfo = processInfo;
+ partsInfo.push(partInfo);
+ }
+ });
+ const productProcess = [];
+ checkProcessClassifyData.filter(card => card.sType === '3').forEach((card) => {
+ if (!commonUtils.isEmpty(masterData[card.sId])) {
+ const process = {};
+ process.sProductClassifyId = card.sId;
+ process.sProcessId = masterData[card.sId];
+ process.sProcessName = masterData[card.sId + card.sName];
+ if (masterData[card.sId + card.sName] !== undefined) {
+ cpProcessName = cpProcessName === '' ? masterData[card.sId + card.sName] : `${cpProcessName},${masterData[card.sId + card.sName]}`;
+ productProcess.push(process);
+ }
+ }
+ });
+ paramMap.cpProcessName = cpProcessName;
+ paramMap.productProcessInfo = productProcess;
+ paramMap.partsInfo = partsInfo;
+
+ if (commonUtils.isEmpty(paramMap.sProductName) || commonUtils.isEmpty(paramMap.sProductStyle) || commonUtils.isEmpty(paramMap.dProductWidth) ||
+ commonUtils.isEmpty(paramMap.dProductLength) || commonUtils.isEmpty(paramMap.dProductQty)) {
+ // this.props.onSaveState({ fastOrderModalVisible: false });
+ message.error(commonFunc.showMessage(app.commonConst, 'ProductError'));/* 产品信息不正确 */
+ return;
+ }
+ /* 验证产品规格是否 符合数字*数字格式 */
+ const sProductStyle = paramMap.sProductStyle;
+ if (commonUtils.isNotEmptyObject(sProductStyle) && sProductStyle.indexOf('*') > -1) { /* 首先查看产品规格输入是否有*号 */
+ const arr = sProductStyle.split('*');
+ const numCheck = /^(-?\d+)(\.?)(\d{1,6})?$/;
+ if (commonUtils.isNotEmptyArr(arr) && arr.length > 0) {
+ for (let i = 0; i < arr.length; i += 1) {
+ if (!numCheck.test(arr[i])) { /* 验证是否数字 */
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ }
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+ /* 验证*两边是否是数字 */
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductStyleErr'));
+ return;
+ }
+
+ let dataReturn = paramMap;
+ if (!flag) {
+ const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`;
+ dataReturn = (await commonServices.postValueService(token, paramMap, url)).data;
+ }
+
+ if (dataReturn.code === 1 || flag) {
+ const {
+ productClassify, productProcessInfo, partsInfo: partsOldInfo,
+ } = flag ? dataReturn : dataReturn.dataset.rows[0];
+ let partsNewInfo = [];
+ if (!flag) {
+ partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo;
+ } else {
+ partsNewInfo = partsOldInfo;
+ }
+ const slaveData = [];
+ const controlData = [];
+ const materialsData = [];
+ let processData = [];
+ const tableDataRow = {};
+ for (const item of slaveConfig.gdsconfigformslave) {
+ tableDataRow[item.sName] = masterData[item.sName];
+ }
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.iOrder = 1;
+ tableDataRow.sParentId = masterData.sId;
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ let productIdDropDown;
+ const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (slaveIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow);
+ productIdDropDown = sqlDropDownData.dropDownData;
+ }
+ const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
+ if (iProductIdIndex === -1) {
+ tableDataRow.sProductId = tableDataRow.sProductName;
+ tableDataRow.sProductInfo = JSON.stringify({
+ sProductId: tableDataRow.sProductName,
+ sProductName: tableDataRow.sProductName,
+ sProductStyle: tableDataRow.sProductStyle,
+ sProductUnit: tableDataRow.sProductUnit,
+ sProductNo: tableDataRow.sProductNo,
+ sCustomerProductNo: tableDataRow.sCustomerProductNo,
+ sProductClassifyId: tableDataRow.sProductClassifyId,
+ sProductClassifyName: tableDataRow.sProductClassifyName,
+ });
+ } else {
+ tableDataRow.sProductInfo = '';
+ }
+ slaveData.push(tableDataRow);
+ if (!commonUtils.isEmptyArr(partsOldInfo)) {
+ partsOldInfo.forEach((item) => {
+ if (commonUtils.isNotEmptyObject(item) && !commonUtils.isEmpty(item.errorFlag)) {
+ this.props.getServiceError({ msg: `${item.sPartsName} ${item.errorFlag}` });
+ }
+ });
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ partsNewInfo.forEach((partInfo, iIndex) => {
+ const partsDataRow = {};
+ for (const child of Object.keys(partInfo)) {
+ partsDataRow[child] = partInfo[child];
+ }
+ partsDataRow.handleType = 'add';
+ partsDataRow.iOrder = iIndex + 1;/* 快速下单编号从1开始 */
+ partsDataRow.sId = commonUtils.createSid();
+ partsDataRow.sParentId = masterData.sId;
+ if (partsDataRow.iPrintMode !== 3) {
+ partsDataRow.iOppositeColor = partsDataRow.iPositiveColor;
+ }
+ delete partsDataRow.dMaterialsKQty;
+ delete partsDataRow.dMaterialsLength;
+ delete partsDataRow.dMaterialsWidth;
+ if (productClassify && productClassify.bSpecialRules) {
+ partsDataRow.dMachineLength = partsDataRow.dMaxMachineLength;
+ partsDataRow.dMachineWidth = partsDataRow.dMaxMachineWidth;
+ }
+ controlData.push(partsDataRow);
+ // 材料信息
+ partInfo.materialsInfo.forEach((materialInfo, iOrder) => {
+ const materialDataRow = {};
+ for (const item of materialsConfig.gdsconfigformslave) {
+ materialDataRow[item.sName] = materialInfo[item.sName];
+ }
+ materialDataRow.handleType = 'add';
+ materialDataRow.sType = '0';
+ materialDataRow.iPartOrder = iIndex;
+ materialDataRow.iOrder = iOrder + 1;
+ materialDataRow.sPartsName = partsDataRow.sPartsName;
+ materialDataRow.sId = commonUtils.createSid();
+ materialDataRow.sParentId = masterData.sId;
+ materialDataRow.sControlId = partsDataRow.sId;
+ materialDataRow.dMaterialsKQty = partsDataRow.iNumberofMaterial;
+ materialsData.push(materialDataRow);
+ });
+ // 工序信息
+ let processPrintDataRow = {};
+ processPrintDataRow.handleType = 'add';
+ processPrintDataRow.sProcessId = partInfo.sProcessId || partInfo.sPrintProcessId;
+ const iProcessPrintIndex = dropDownDataProcessName.findIndex(item => item.sId === processPrintDataRow.sProcessId);
+ if (iProcessPrintIndex > -1) {
+ processPrintDataRow = { ...processPrintDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessPrintIndex], newCopyTo) }; // 取赋值字段
+ }
+ processPrintDataRow.sType = partInfo.sType;
+ processPrintDataRow.iPartOrder = iIndex;
+ processPrintDataRow.iOrder = 1;
+ if (partInfo.sProcessName) {
+ processPrintDataRow.sProcessName = partInfo.sProcessName;
+ }
+ processPrintDataRow.sPartsName = partsDataRow.sPartsName;
+ processPrintDataRow.dProcessInQty = partInfo.dProcessInQty;
+ processPrintDataRow.dLossQty = partInfo.dLossQty;
+ processPrintDataRow.dProcessOutQty = partInfo.dProcessOutQty;
+ processPrintDataRow.sId = commonUtils.createSid();
+ processPrintDataRow.sParentId = masterData.sId;
+ processPrintDataRow.sControlId = partsDataRow.sId;
+ processData.push(processPrintDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+
+ partInfo.processInfo.forEach((process, iOrder) => {
+ let processAfterDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processAfterDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processAfterDataRow[child] = process[child];
+ }
+ processAfterDataRow.handleType = 'add';
+ processAfterDataRow.sProcessId = process.sProcessId;
+ const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId);
+ if (iProcessAfterIndex > -1) {
+ processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段
+ }
+ processAfterDataRow.sType = process.sType;
+ processAfterDataRow.iPartOrder = iIndex;
+ processAfterDataRow.iOrder = iOrder + 1;
+ processAfterDataRow.sPartsName = partsDataRow.sPartsName;
+ processAfterDataRow.sId = commonUtils.createSid();
+ processAfterDataRow.sParentId = masterData.sId;
+ processAfterDataRow.sControlId = partsDataRow.sId;
+ processData.push(processAfterDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ });
+ productProcessInfo.forEach((process, iOrder) => {
+ let processProductDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processProductDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processProductDataRow[child] = process[child];
+ }
+ const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId);
+ if (iProductProcessIndex > -1) {
+ processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段
+ }
+ processProductDataRow.handleType = 'add';
+ processProductDataRow.sType = '3';
+ processProductDataRow.sPartsName = '';
+ processProductDataRow.iPartOrder = 999;
+ processProductDataRow.iOrder = iOrder + 1;
+ processProductDataRow.sId = commonUtils.createSid();
+ processProductDataRow.sParentId = masterData.sId;
+ processData.push(processProductDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ processData = this.sortData(controlData, processData);
+ const paramObj = {
+ materialsConfig, slaveData, controlData, materialsData, processData, fastOrderModalVisible: false, materialsSelectedRowKeys: [],
+ };
+ if (flag) {
+ delete paramObj.slaveData;
+ }
+ this.props.onSaveState(paramObj);
+ }
+ if (dataReturn.code !== 1 && !flag) {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+
+ /* 勾选工序分类 */
+ handleProcessChange=(e, value, sPartsName) => {
+ let { checkProcessClassifyData } = this.props;
+ let index = -1;
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (e.target.checked) {
+ if (index <= -1) {
+ const newvalue = { ...value };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ } else if (index > -1) {
+ checkProcessClassifyData.splice(index, 1);
+ }
+ this.props.onSaveState({ checkProcessClassifyData });
+ };
+
+ handleSelectChangeProcess = (sAssignField, value, option) => {
+ const { masterData, sBackProcessClassifyData } = this.props;
+ let { checkProcessClassifyData } = this.props;
+ if (sAssignField !== undefined) {
+ // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype
+ const sAssignFields = sAssignField.split(',');
+ const recordRow = option.props['data-recordrow'];
+ sAssignFields.forEach((item, iAssignIndex) => {
+ const itemsplits = item.split(':');
+ masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]];
+ if (iAssignIndex === 0) {
+ let index = -1;
+ const sPartsName = itemsplits[0].replace(recordRow.sParentId, '');
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (index <= -1) {
+ const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId);
+ if (iBackProcessIndex > -1) {
+ const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ }
+ }
+ });
+ this.props.onSaveState({ masterData, checkProcessClassifyData });
+ }
+ }
+
+ handleA = (sId) => {
+ const { sBackProcessData } = this.props;
+ const data = sBackProcessData.filter(item => item.sParentId === sId);
+ const optionProcess = [];
+ data.forEach((item) => {
+ optionProcess.push();
+ });
+ return optionProcess;
+ }
+
+ handleSave = async (bParts) => {
+ this.form.validateFields((err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materials0Config, materials0Data: materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,packConfig, packData, packDelData,
+ colorData, colorDelData, dailyConfig, dailyData, dailyDelData, app, addStateMap,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if(!bParts) {
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) ||
+ (!commonBusiness.validateTable(materials0Config, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, this.props) || !commonBusiness.validateTable(dailyConfig, dailyData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(materialsData) && false) {
+ let flag = true;
+ for (const item of materialsData) {
+ if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ flag = false;
+ break;
+ }
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ const data = [];
+ if(masterData.sStatus ==='4' && !bParts) { /* 点保存后 从草稿箱状态变成未审核状态 */
+ masterData.sStatus = '0';
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ }
+ if(!bParts) {
+ masterData.bIsUnCcg = true;
+ }
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ // data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ if(commonUtils.isNotEmptyObject(colorConfig)){
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ if(commonUtils.isNotEmptyObject(dailyConfig)){
+ data.push(commonBusiness.mergeData('daily', dailyConfig.sTbName, dailyData, dailyDelData));
+ }
+ if(commonUtils.isNotEmptyObject(addStateMap)){
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace('Config', '').trim();
+ const { [`${tableName}Data`]: tableData,[`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData} = this.props;
+ if(tableConfig.sTbName !== 'noTable') {
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+ }
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ }
+ });
+ };
+
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = async(name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ const { controlData, processData, materials0Data, slaveData } = this.props;
+ const addState = await this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ const addStateMap ={};
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1 && commonUtils.isNotEmptyObject(addState)) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ // addState.controlSelectedRowKeys = [];
+ }
+
+ if(commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iSlaveIndex = slaveData.findIndex(item => item.sId === selectedRowKeys[0]);
+ const iControlIndex = controlData?.findIndex(
+ controlItem => {
+ const sCombinedMemoArr = JSON.parse(controlItem.sCombinedMemo);
+ const sCombinedMemoFilterArr = sCombinedMemoArr.filter(item => item.dCombineQty > 0 && item.sProductNo === slaveData[iSlaveIndex].sProductNo);
+ return commonUtils.isNotEmptyArr(sCombinedMemoFilterArr)
+ });
+ let controlRowKeys = [];
+ if (iControlIndex > -1) {
+ controlRowKeys = [controlData[iControlIndex].sId];
+ _this.controlFilterData = [controlData[iControlIndex]];
+ }
+ /* 切换产品的时候工序和材料自动选择第一行 */
+ if(commonUtils.isNotEmptyArr(processData)) {
+ const filterData = processData.filter(item => item.sControlId === controlRowKeys[0]);
+ if(commonUtils.isNotEmptyArr(filterData)) {
+ addStateMap.processSelectedRowKeys = [filterData[0].sId]; /* 从表选中时 清空工序的选中 */
+ }
+ }
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const filterData = materials0Data.filter(item => item.sControlId === controlRowKeys[0]);
+ if(commonUtils.isNotEmptyArr(filterData)) {
+ addStateMap.materials0SelectedRowKeys = [filterData[0].sId]; /* 从表选中时 清空工序的选中 */
+ }
+ }
+
+ }
+ this.props.onSaveState(addStateMap);
+ } else if (name === 'control') {
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const { treeData } = this.props; /* 赋值给树组件节点 */
+ let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */
+ if (treeData !== undefined) {
+ treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ addState.treeSelectedKeys = treeSelectedKeys;
+ }
+ addState.processSelectedRowKeys = []; /* 从表选中时 清空工序的选中 */
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'materials' || name === 'process') {
+ const { [`${name}Data`]: tableData, slaveData, packData, masterData} = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (slaveData.length === 1) {
+ addState.slaveSelectedRowKeys = [slaveData[0].sId];
+ } else {
+ if (commonUtils.isNotEmptyArr(packData)) {
+ const packFilterData = packData.filter(item => item.sControlId === tableData[iIndex].sControlId && item.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packFilterData)) {
+ if (commonUtils.isNotEmptyArr(this.props.slaveSelectedRowKeys)) {
+ const iPackIndex = packFilterData.findIndex(item => item.sSlaveId === this.props.slaveSelectedRowKeys[0]);
+ //合版如果选中的工序在选中从表中,就不处理。
+ if (iPackIndex === -1) {
+ addState.slaveSelectedRowKeys = [packFilterData.sSlaveId];
+ }
+ } else {
+ addState.slaveSelectedRowKeys = [packFilterData.sSlaveId];
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+
+ if(name === 'process') {
+ addState.processSelectedData = [tableData[iIndex]];
+ addState.processSelectedRowKeys = selectedRowKeys;
+ const sTypeName = 'sWorkOrderParam';
+ /* 把工艺参数塞入masterData */
+ const sParams = commonUtils.isNotEmptyArr(addState.processSelectedData) ? addState.processSelectedData[0].sParams : '';
+ const sParamData = commonUtils.isNotEmptyObject(sParams) ? JSON.parse(sParams) : [];
+ tableData[iIndex] = { ... tableData[iIndex], ...commonUtils.convertStrToObj( tableData[iIndex].sWorkOrderParam) };
+ const viewRow = tableData[iIndex];
+
+
+ /* 把sParams的数据替换到viewRow */
+ if(commonUtils.isNotEmptyArr(sParamData)) {
+ for (const key of Object.keys(viewRow)) {
+ if(key.includes('sParam')){
+ const filterData = sParamData.filter(item => item.sParamKey === key);
+ if(commonUtils.isNotEmptyArr(filterData)){
+ const num = key.replace('sParam', '').trim();
+ const newKey = `${key}_${sTypeName}_${addState.processSelectedData[0].sId}`;
+ const newDefalut = 'sParamDefault' + num;
+ masterData[newKey] = filterData[0].sParamValue;
+ // masterData[key] = filterData[0].sParamValue;
+ }
+ }
+ }
+ }
+ addState.masterData = masterData;
+
+ addState.materials0SelectedRowKeys = []; /* 工序表选中 清空全部材料选择 */
+
+ }
+ }
+
+ this.props.onSaveState(addState);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ if (value === undefined) {
+ return true;
+ }
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /** 控制选择控制表时,显示成品材料与成品工序 */
+ handleFilterProductData = (name, dataIndex, value, record) => {
+ const { slaveSelectedRowKeys } = this.props;
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') &&
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ }
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleGetFilterData = (name, bFinished) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props;
+ if (data !== undefined && ((commonUtils.isNotEmptyArr(controlSelectedRowKeys) && !bFinished) || bFinished)) {
+ if (name === 'materials' && bFinished) { /* 新增成品材料 */
+ return data.filter(item => item.sType === '2' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else if (name === 'process' && bFinished) { /* 新增成品工序s */
+ return data.filter(item => item.sType === '3' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ }
+ };
+ handleKeyDown = (e, record, sName, name) => {
+ /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */
+ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) {
+ if (e.key !== 'F12') {
+ e.preventDefault();
+ }
+ } else {
+ this.props.onKeyDown(e, record, sName, name);
+ }
+ }
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, flag, bchild, bFinished, bModalAdd) => {
+ const { masterConfig } = this.props;
+ if(bModalAdd === true) {
+ if(name === 'materials') {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productMaterials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ }
+ if(name === 'process') {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productProcess', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ }
+ return;
+ }
+ /* 外置处理业务 */
+ const {
+ gdsformconst, slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData,
+ } = this.props;
+ let { packData }=this.props;
+ if (name === 'control') {
+ /* 增加子部件 */
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (bchild === 'sameNode') { /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item.sId === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('部件数据生成错误![sAllId为空]');
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sId}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ }
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sControlParentId = treeSelectedKeys[0];
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = controlData[iIndex].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`;
+ }
+ }
+ if(bchild !== 'sameNode' && bchild !== 'childNode') { /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+
+ let slaveSelectedRow = {};
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)){ /* 从表有选中行 */
+ const iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if(iSlaveIndex > -1){
+ slaveSelectedRow = slaveData[iSlaveIndex];
+ }
+ } else{ /* 没有选中行 */
+ if(slaveData.length ===1){
+ slaveSelectedRow =slaveData[0];
+ }else{
+ message.error('请选择从表!')
+ }
+ }
+ /* 新增工艺卡,部件名称要默认选中从表行的产品名称 */
+ tableDataRow.sPartsName = slaveSelectedRow.sProductName;
+
+ /* 部件表新增时,若合版表没有该sControlId 则默认取从表选中行,合拼1 作为一条packData数据 */
+ if(commonUtils.isEmptyArr(packData)){
+ packData =[];
+ }
+ if(false){
+ packData =[];
+ } else{
+ const iIndex =packData.findIndex(item=> item.sControlId === tableDataRow.sId);
+ if(iIndex ===-1){
+
+ if(commonUtils.isEmptyObject(slaveSelectedRow.sProductId)) {
+ message.error('请先选择产品!');
+ return;
+ }
+ if(slaveSelectedRow){
+ const packDataRow = this.handlePackDataAdd(slaveSelectedRow, 0, tableDataRow.sId, 'add');
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if(commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packDataRow;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ packData.push(packDataRow);
+
+ }
+
+ }
+ }
+
+ // let dPartsQty = 0;
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // slaveData.forEach((item) => {
+ // dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ // if (productIdDropDown) {
+ // const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId);
+ // if (iProductIdIndex > -1) {
+ // tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName;
+ // }
+ // }
+ // }
+ // tableDataRow.dPartsQty = dPartsQty;
+ tableData.push(tableDataRow);
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ this.props.onSaveState({
+ ...treeState, [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], treeSelectedKeys: [tableDataRow.sId], packData,
+ });
+ } else if (name === 'materials' || name === 'process') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) {
+ message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件
+ return;
+ }
+ if(bFinished) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`;
+ tableDataRow.sCombinePartsName = slaveData[iIndex].sId;
+ if (name === 'materials') { /* 新增成品材料 */
+ tableDataRow.sType = '2';
+ }
+ if (name === 'process') { /* 新增成品工序 */
+ tableDataRow.sType = '3';
+ }
+ }
+ } else {
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ if (name === 'materials' && bFinished) { /* 新增成品材料 */
+ tableDataRow.sType = '2';
+ }
+ if (name === 'process' && bFinished) { /* 新增成品工序 */
+ tableDataRow.sType = '3';
+ }
+ }
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if (name === 'slave') {
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app } = this.props;
+ let { expKeys }= this.props;
+ if(commonUtils.isEmptyArr(expKeys)) {
+ expKeys = [];
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));
+ return;
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sFatherSlaveId = tableSelectedRowKeys[0];
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = commonUtils.isNotEmptyObject(tableData[iIndex].sAllId)? tableData[iIndex].sAllId : tableData[iIndex].sId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${tableData[iIndex].sAllId},${tableDataRow.sId}`;
+ // tableDataRow.sCustomerId = tableData[iIndex].sCustomerId;
+ // tableDataRow.sCustomerNo= tableData[iIndex].sCustomerNo;
+ // tableDataRow.sCustomerName= tableData[iIndex].sCustomerName;
+ }
+ /* 新增子级时 子级展开 */
+ expKeys.push(tableSelectedRowKeys[0]); /* 展开只要展开父级即可 */
+ }
+ if(bchild !=='sameNode' && bchild !=='childNode') { /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], expKeys });
+ } else {
+ return this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = async (name, tableSelectedRowKeys) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ if(commonUtils.isNotEmptyArr(tableData)) {
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData };
+ } else {
+ return {};
+ }
+ }
+ otherControlDel = async (name, tableSelectedRowKeys) => {
+ const slaveData = this.props.slaveData;
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ let materialsReturnData = {};
+ let processReturnData = {};
+ let packReturnData = {};
+ for (const sId of tableSelectedRowKeys) {
+ let slaveRow = {};
+ const iIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex(item => item.sId === sId) : -1;
+ if(iIndex > -1) {
+ slaveRow = slaveData[iIndex];
+ }
+ if(commonUtils.isNotEmptyObject(slaveRow) && commonUtils.isNotEmptyArr(tableData)) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item.sCombinedMemo && item.sCombinedMemo.indexOf(slaveRow.sProductNo) > -1 );
+ while (tableDataIndex > -1) {
+ /* 删除数据并存入删除集合中 */
+ const tableDataFilter = tableData[tableDataIndex];
+ const sControlId = tableData[tableDataIndex].sId;
+ tableData.splice(tableDataIndex, 1);
+ tableDataFilter.handleType = 'del';
+ tableDelData.push(tableDataFilter);
+ tableDataIndex = tableData.findIndex(item => item.sCombinedMemo && item.sCombinedMemo.includes(slaveRow.sProductNo) === sId);
+ materialsReturnData = this.otherTableDel('materials', sControlId);
+ processReturnData = this.otherTableDel('process', sControlId);
+ packReturnData = this.otherTableDel('pack', sControlId);
+ }
+ }
+
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, materialsReturnData, processReturnData, packReturnData };
+ }
+
+ otherCommonTableDel = (name, tableSelectedRowKeys, sKey) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = commonUtils.isNotEmptyArr(tableData) ? tableData.findIndex(item => item[sKey] === sId) : -1;
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item[sId] === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ };
+
+ /** 删除表格数据 */
+ handleTableDel = async (name, flag, tableSelectedRowKeys) => {
+ if (name === 'slave') {
+ /* 删除sSlaveId关联的合版表 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys, 'sSlaveId');
+ const materielReturnData = this.otherTableDel('materials', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品材料 */
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品工序 */
+ const slaveReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materielReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...slaveReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'control') {
+ const {
+ controlData, treeSelectedKeys, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ /* 删除该节点及所有子节点 */
+ const controlChildData = controlData.filter(item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableSelectedRowKeys[0]) > -1 && item.sId !== tableSelectedRowKeys[0]);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ const treeState = this.handleGetControlTreeData(controlReturnData.controlData, true);
+ this.props.onSaveState({
+ ...treeState,
+ ...materialsReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择数据 */
+ return false;
+ }
+ } else if (name === 'process') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, materialsConfig, token,
+ } = this.props;
+ let { materialsDelData, materials0Data:materialsData, } = this.props;
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsData)) {
+ materialsData = [];
+ }
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ let iMaterialsIndex = -1;
+ let sProcessId = '';
+ let processReturnData = [];
+ if(iIndex > -1) {
+ sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ }
+ }));
+ processReturnData.processDelData.concat(tableDelData);
+ }
+ /* 删除工序对应的材料 */
+ const materialsFilterDelData = materialsData.filter(item => tableSelectedRowKeys.includes(item.sProcessTbId) && item.sProcessId === sProcessId );
+ let materialsSelectedDelRowKeys = [];
+ if(commonUtils.isNotEmptyArr(materialsFilterDelData)) {
+ materialsFilterDelData.forEach((item) =>{
+ const materialsChildFilter = materialsData.filter(row => commonUtils.isNotEmptyObject(row.sParentMaterialsId ) && row.sParentMaterialsId === item.sId); /* 删除对应的替代料 */
+ if(commonUtils.isNotEmptyArr(materialsChildFilter)) {
+ materialsChildFilter.forEach((child) =>{
+ materialsSelectedDelRowKeys.push(child.sId);
+ })
+ }
+ materialsSelectedDelRowKeys.push(item.sId);
+ })
+ }
+ let materialsReturnData = {};
+ if (commonUtils.isNotEmptyArr(materialsSelectedDelRowKeys)) {
+ materialsReturnData = this.props.onDataRowDel('materials0', true, materialsSelectedDelRowKeys);
+ if(commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) {
+ materialsReturnData.materials0DelData = materialsReturnData.materials0DelData.concat(materialsDelData);
+ }
+ }
+ this.props.onSaveState({
+ ...processReturnData,
+ ...materialsReturnData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ }else if(name === 'materials0'){
+ /* 删除全部材料时 对应删除替代料 */
+ const {
+ sModelsId, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Data`]: tableData, materialsConfig, materials0Data, token,
+ } = this.props;
+ if(commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.error('请选择数据!');
+ return ;
+ }
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId));
+ if(commonUtils.isNotEmptyArr(materials0ChildData)) {
+ materials0ChildData.forEach((item, index) => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+
+ /* 删除子墨 */
+ const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId));
+ if(commonUtils.isNotEmptyArr(materials0InkData)) {
+ materials0InkData.forEach((item) => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+
+ const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId'); /* 全部材料删除 */
+ const materials0ChildReturnData = this.otherCommonTableDel('materials0Child', tableSelectedRowKeys, 'sId'); /* 替代料删除 */
+ this.props.onSaveState({
+ ...materials0ReturnData,
+ ...materials0ChildReturnData,
+ });
+
+ }
+ } else if(name ==='materials1'){ /* 删除油墨时 同时删除油墨子集 */
+ /* 从全部材料里 找到对应数据 进行更改 */
+ const {
+ sModelsId, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Data`]: tableData, materialsConfig, materials0Data, token,
+ } = this.props;
+ if(commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.error('请选择数据!');
+ return ;
+ }
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const iIndex = materials0Data.findIndex(item => tableSelectedRowKeys.includes(item.sId) );
+ let materials1Row = {};
+ if(iIndex > -1) {
+ materials1Row = materials0Data[iIndex];
+ }
+
+ const materials0ChildData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sInkBOMId) && item.sInkBOMId === materials1Row.sInkBOMId
+ && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId) && item.sInkBOMsSlaveId === materials1Row.sInkBOMsSlaveId &&
+ commonUtils.isEmptyObject(item.sInkBOMsMaterialsId));
+
+ if(commonUtils.isNotEmptyArr(materials0ChildData)) {
+ materials0ChildData.forEach((item, index) => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+ const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId');
+ const tableReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materials0ReturnData,
+ ...tableReturnData,
+ });
+
+ }
+ } else if(name ==='materials2' || name ==='materials3' || name ==='materials1Child'){ /* 删除电化铝、油墨子集 */
+ /* 从全部材料里 找到对应数据 进行删除 */
+ const {
+ sModelsId, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Data`]: tableData, materialsConfig, materials0Data, token,
+ } = this.props;
+ if(commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.error('请选择数据!');
+ return ;
+ }
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId');
+ const tableReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materials0ReturnData,
+ ...tableReturnData,
+ });
+
+ }
+ } else if (name === 'materials0Child') { // 删除替代料
+ const result = this.props.onDataRowDel('materials0', true, tableSelectedRowKeys) || {};
+ delete result.materials0SelectedRowKeys;
+ this.props.onSaveState(result);
+ } else {
+ return this.props.onDataRowDel(name, flag, tableSelectedRowKeys);
+ }
+ };
+
+ // 删除全部材料
+ handleDeleteAllMaterials = (materials0FilterData = []) => {
+ if (!materials0FilterData.length) return;
+
+ const delAll = () => {
+ const { materials0Data = [] } = this.props;
+ const tableSelectedRowKeys = materials0FilterData.map(item => item.sId);
+ const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId));
+ if(commonUtils.isNotEmptyArr(materials0ChildData)) {
+ materials0ChildData.forEach((item) => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+
+ /* 删除子墨 */
+ const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId));
+ if(commonUtils.isNotEmptyArr(materials0InkData)) {
+ materials0InkData.forEach((item) => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+
+
+ const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId'); /* 全部材料删除 */
+ const materials0ChildReturnData = this.otherCommonTableDel('materials0Child', tableSelectedRowKeys, 'sId'); /* 替代料删除 */
+ this.props.onSaveState({
+ ...materials0ReturnData,
+ ...materials0ChildReturnData,
+ });
+ }
+
+ confirm({
+ title: '确认要删除全部吗?',
+ onOk() {
+ delAll();
+ },
+ okText: '确定',
+ cancelText: '取消'
+ });
+
+ }
+
+ handleCalculation = async () => {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`;
+ const {
+ masterConfig, slaveConfig, controlConfig, materialsConfig, processConfig,packConfig, app,
+ } = this.props;
+ let {
+ slaveData, controlData, materialsData, processData, masterData,packData,
+ } = this.props;
+ const data = [];
+ data.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ data.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ data.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ data.push(commonBusiness.mergeData('materials', `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true));
+ data.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ data.push(commonBusiness.mergeData('pack', `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true));
+ const value = { data, sClientType: '1', sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) { /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+ packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`];
+ this.props.onSaveState({
+ slaveData, controlData, materialsData, processData, masterData, loading: false,packData,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess'));
+ } else { /* 失败 */
+ this.props.onSaveState({
+ loading: false,
+ });
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ /** 按钮操作事件 */
+ handleButtonClick = async (name) => {
+ if (name === 'BtnCalculation') {
+ this.props.onSaveState({
+ loading: true,
+ });
+ this.handleCalculation();
+ } else if (name === 'BtnDraft') {
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, packConfig, packData, packDelData, materials0Config, materials0Data, materials0DelData,
+ } = this.props;
+ const data = [];
+ slaveConfig.gdsconfigformslave.forEach((itemConfig) => {
+ slaveData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ controlConfig.gdsconfigformslave.forEach((itemConfig) => {
+ controlData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ materials0Config.gdsconfigformslave.forEach((itemConfig) => {
+ materials0Data.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ processConfig.gdsconfigformslave.forEach((itemConfig) => {
+ processData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packConfig.gdsconfigformslave.forEach((itemConfig) => {
+ packData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorConfig.gdsconfigformslave.forEach((itemConfig) => {
+ colorData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+ masterData.bIsUnCcg = false;
+ masterData.sStatus = '4';
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materials0Config.sTbName, materials0Data, materials0DelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ }
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId, bIsUnCcg: false
+ });
+ } else if (name === 'BtnChooseProcess') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnChooseMaterials') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnFastOrder') {
+ const {
+ masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData,
+ } = this.props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (commonUtils.isEmptyArr(checkProcessClassifyData) && commonUtils.isNotEmptyArr(controlData) && !commonUtils.isEmpty(changeData) && !commonUtils.isEmpty(changeData.sAllPartsName)) {
+ const allPartsName = changeData.sAllPartsName.split(',');
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach((item) => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData.filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ }
+ this.props.onSaveState({ fastOrderModalVisible: true, ...addState });
+ } else if(name === 'BtnWorkFlow') {
+ const dataUrl = `${commonConfig.server_host}workOrderFlow/getWorkOrderFlow/`;
+ let {token} = this.props.app
+ let { slaveData, controlData, materialsData, processData, packData} = this.props;
+ const value = {
+ slave:slaveData,
+ control:controlData,
+ materials:materialsData,
+ process:processData,
+ pack:packData,
+ sModelsType:'processCardPackTableTree',
+ }
+ let dataReturn = (await commonServices.postValueService(token,value,dataUrl)).data;
+ if (commonUtils.isNotEmptyObject(dataReturn)) {
+ if (dataReturn.code === 1) {
+ const flowData = dataReturn.dataset.rows[0];
+ if (commonUtils.isNotEmptyObject(flowData)) {
+ this.props.onSaveState({
+ flowData: flowData,workFlowVisible:true
+ });
+ // localStorage.setItem('flow', JSON.stringify(flowData));
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ } else {
+ this.props.onButtonClick(name);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig,
+ } = this.props;
+ const bReturn = await this.props.onSearchData(handleType);
+ if (bReturn) {
+ // this.handleGetData(controlConfig, materialsConfig, processConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig);
+ }
+ };
+
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, addStateMap,
+ } = this.props;
+ this.props.onEdit(() => {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig, { loading: false, enabled: true }, addStateMap);
+ });
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo =async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, masterData, slaveData, controlData, materialsData, materials0Data, processData, colorData, app, token, sModelsId, packData, formRoute,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.materials0Data = materials0Data;
+ copyTo.processData = processData;
+ copyTo.packData = packData;
+ copyTo.colorData = colorData;
+ copyTo.srcFormRoute = formRoute;
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ sSrcModelsId: this.props.sModelsId,
+ copyTo,
+ },
+ });
+ }
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig,
+ } = props;
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ sSlaveTable: [
+ {
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: checkConfig.sTbName,
+ relationName: 'sBillId',
+ }, {
+ tableName: controlConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: materialsConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: processConfig.sTbName,
+ relationName: 'sParentId',
+ }],
+ },
+ };
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.props.onDelDataSuccess(props);
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app, colorConfig, dailyConfig, packConfig,
+ } = this.props;
+ const onGetData = this.props.onGetData;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const { copyTo } = app.currentPane;
+ const { userinfo } = app;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onGetData(masterConfig, slaveConfig, checkConfig);
+ onGetDataOk(controlConfig, materialsConfig, processConfig, colorConfig, dailyConfig, packConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const {
+ masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig,
+ } = this.props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await this.props.onAdd(config, copyTo, true);
+ const { masterData, slaveData } = state;
+ const controlData = [];
+ let packData = [];
+ const materialsData = [];
+ let processData = [];
+ const colorData = [];
+ // let materials0ChildData = [];
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const {
+ sModelsId, token,
+ } = this.props;
+ const bCkxCopyFromTechnology = '0'; // 工艺卡不用再取工艺卡。 app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1' && !copyTo.name.includes('BtnCopyTo.tmpInfo')) {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach((slaveItem) => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // processRow.sSlaveId = slaveData[0].sId;
+ // }
+ processData.push(processRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // processRow.sSlaveId = slaveData[0].sId;
+ // }
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ console.log('翻单逻辑', copyTo);
+ const bProcessAssort = true;
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = this.props;
+ const sParentId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sParentId) ? copyTo.slaveData[0].sParentId : copyTo.slaveData[0].sId;
+ // const condition = { sSlaveId: copyTo.slaveData[0].sSlaveId };
+ const condition = { sParentId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ if (slaveData.length === 1 && copyTo.slaveData.length ===1){ /* 从表与返回数据从表只有一条时 替换该从表数据 */
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, copyTo.slaveData[0], newCopyTo) }; // 取赋值字段
+ slaveData.forEach((item, iSlaveIndex) => {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, copyTo.slaveData[0], newCopyTo) }; // 取赋值字段
+ slaveData[iSlaveIndex] = item;
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ } else {
+ copyTo.slaveData.forEach((slaveItem, iIndex) => {
+ /* 从工艺卡数据集 找到从表相同产品ID,客户ID */
+ const iSameIndex = slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId);
+ if(iSameIndex > -1){
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0) + commonUtils.isNull(slaveItem.dGiveQty, 0) + commonUtils.isNull(slaveItem.dStockupQty, 0);
+ }
+ }else if(commonUtils.isNotEmptyObject(slaveDetailAssignField)){ /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow ={};
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField,slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId;
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ }
+ const treeCopyNodes = new Map();
+ copyTo.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ if(commonUtils.isEmptyObject(controlRow.sPartsName)) {
+ controlRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0] : '';
+ }
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex > -1) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ // processRow.sSlaveId = ' ';
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sParentMaterialsId = materialsItem.sParentMaterialsId;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if(commonUtils.isNotEmptyArr(materialsData)) {
+ const materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if(commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if(iIndex > -1) {
+ // materialsFilterData[index] = {... materialsFilterData[index], sParentMaterialsId: materialsData[iIndex].sId };
+
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ const addState = {};
+ addState.sMaterialsNo1 = materialsData[iIndex].sMaterialsNo; /* 原材料编号 */
+ addState.sMaterialsName1 = materialsData[iIndex].sMaterialsName; /* 原材料名称 */
+ addState.bAlternative = true;
+ addState.sParentMaterialsId = materialsData[iIndex].sId;
+ materialsData[iNexIndex] = { ...materialsData[iNexIndex], ...addState};
+ materialsData[iIndex] = { ...materialsData[iIndex], bTidaibs:true };
+ // materialsData[iNexIndex] = { ...materialsData[iNexIndex], sParentMaterialsId: materialsData[iIndex].sId}
+ }
+ }
+ });
+ }
+
+ const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if(commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if(iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ materialsData[iNexIndex] = { ...materialsData[iNexIndex], sInkFatherMaterialsTbId: materialsData[iIndex].sId}
+ }
+ }
+ });
+ }
+
+ // materials0ChildData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ // processRow.sSlaveId = slaveData[0].sId;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = this.sortData(controlData, processData);
+ }
+ } else {
+ state.fastOrderModalVisible = this.props.bFastOrderView;
+ const { sModelsId } = this.props;
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true);
+ state = { ...state, ...addState };
+ }
+ }
+ }
+ if (controlData.length === 0 && commonUtils.isEmptyObject(copyTo)) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1;
+ tableDataRow.sSlaveId = ' ';
+ tableDataRow.sCombinedMemo = '合版信息';
+ tableDataRow.sAllId = tableDataRow.sId;
+ if(commonUtils.isEmptyObject(tableDataRow.sPartsName)) {
+ tableDataRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sProductName : '';
+ }
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ tableDataRow.dPartsQty = dProductQty;
+
+ /* 点击新增按钮 控制表自动默认增一条 同时默认新增一条合版表 */
+ if(commonUtils.isNotEmptyArr(slaveData) && slaveData.length === 1 && commonUtils.isEmptyArr(packData)){
+ const packDataRow = this.handlePackDataAdd(slaveData[0], 0, tableDataRow.sId, 'add');
+ packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+
+ controlData.push(tableDataRow);
+ }
+ /* 新增时,增加一条合版信息 */
+ // if (packData.length === 0) {
+ // slaveData.forEach((item, index) => {
+ // const tableDataRow = this.handlePackDataAdd(item, index, controlData[0].sId, 'add');
+ // if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ // // tableDataRow.dCombineQty = 1;
+ // packData.push(tableDataRow);
+ // }
+ // });
+ // }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ const stateNew = {
+ ...state,
+ ...treeState,
+ slaveData,
+ controlData,
+ controlSelectedRowKeys: [],
+ materialsData,
+ materials0Data: materialsData,
+ // materials0ChildData:materials0ChildData,
+ materialsSelectedRowKeys: [],
+ processData,
+ packData,
+ colorData,
+ processSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ this.props.onSaveState(stateNew);
+ }
+ };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ if(name === 'materials') {
+ name = 'materials0';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, slaveSelectedRowKeys, controlSelectedRowKeys, sModelsId, token,
+ slaveConfig, controlConfig, materialsConfig, materials0Config, processConfig, colorConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld, packData: packDataOld,
+ controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld,
+ materials0Data: materials0DataOld, materials0DelData: materials0DelDataOld, packDelData: packDelDataOld,
+ } = this.props;
+ let { masterData, controlData, packData } = this.props;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materials0Config = materials0Config;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ if (commonUtils.isNotEmptyObject(selectConfig) && selectConfig.sControlName.includes('TmpInfoBySql')) { /* 复制从部件 根据配置下拉sql获取数据源 通过按钮名称是否包含add来判断数据源新增还是删除 */
+ const addState = {};
+ let controlData = commonUtils.isEmptyArr(controlDataOld) ? [] : controlDataOld;
+ let materialsData = commonUtils.isEmptyArr(materialsDataOld) ? [] : materialsDataOld;
+ let materials0Data = commonUtils.isEmptyArr(materials0DataOld) ? [] : materials0DataOld;
+ let processData = commonUtils.isEmptyArr(processDataOld) ? [] : processDataOld;
+ let packData = commonUtils.isEmptyArr(packDataOld) ? [] : packDataOld;
+ let colorData = commonUtils.isEmptyArr(colorDataOld) ? [] : colorDataOld;
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
+ const sConfigformId = commonUtils.isEmpty(selectConfig) ? '' : selectConfig.sParentId;
+ const sRowData = selectData;
+ const sControlName = selectConfig.sControlName; /* 按钮名称 */
+ // const sSqlCondition = { sId: selectData[0].sSlaveId }; /* 后台根据rowData自己取 */
+ const condition = { sConfigformId, sControlName, sRowData };
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnDataSet = dataReturn.dataset.rows[0];
+ const returnData = {};
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.process`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ /* 判断是插入 还是删除 */
+ if(commonUtils.isNotEmptyArr(copyToControlConfig)) {
+ if(commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ if(!copyToControlConfig[0].sControlName.includes('_add') && !copyToControlConfig[0].sControlName.includes('_edit')) { /* 删除 */
+ controlData = [];
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const controlDataFilterData = controlDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sId));
+ if(commonUtils.isNotEmptyArr(controlDataFilterData)) {
+ controlDataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ controlDelData.push(item);
+ });
+ }
+ addState.controlDelData = controlDelData;
+ }
+ } else {
+ message.error('请选择部件!');
+ return ;
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(copyToMaterialsConfig)) {
+ if(!copyToMaterialsConfig[0].sControlName.includes('_add') && !copyToMaterialsConfig[0].sControlName.includes('_edit')) { /* 删除 */
+ materialsData = [];
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const materialsDataFilterData = materialsDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if(commonUtils.isNotEmptyArr(materialsDataFilterData)) {
+ materialsDataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ }
+
+
+ materials0Data = [];
+ const materials0DelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const materials0DataFilterData = materialsDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if(commonUtils.isNotEmptyArr(materials0DataFilterData)) {
+ materials0DataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ materials0DelData.push(item);
+ });
+ addState.materials0DelData = materials0DelData;
+ }
+
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(copyToProcessConfig)) {
+ if(!copyToProcessConfig[0].sControlName.includes('_add') && !copyToProcessConfig[0].sControlName.includes('_edit')) { /* 删除 */
+ processData = [];
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const processDataFilterData = processDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if(commonUtils.isNotEmptyArr(processDataFilterData)) {
+ processDataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ }
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(copyToPackConfig)) {
+ if(!copyToPackConfig[0].sControlName.includes('_add') && !copyToPackConfig[0].sControlName.includes('_edit')) { /* 删除 */
+ packData = [];
+ const packDelData = commonUtils.isEmptyArr(packDelDataOld) ? [] : packDelDataOld;
+ const packDataFilterData = packDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if(commonUtils.isNotEmptyArr(packDataFilterData)) {
+ packDataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ packDelData.push(item);
+ });
+ addState.packDelData = packDelData;
+ }
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(colorAssignField)) {
+ if(!colorAssignField[0].sControlName.includes('_add') && !colorAssignField[0].sControlName.includes('_edit')) { /* 删除 */
+ colorData = [];
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let iSlaveIndex = -1;
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = 0;
+ }else {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+ let controlSelectedRow = {}; /* 控制表选中行 */
+ let iControlIndex = -1;
+ if (!commonUtils.isEmpty(controlSelectedRowKeys)) {
+ iControlIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ if(iControlIndex > -1) {
+ controlSelectedRow = controlData[iControlIndex];
+ }
+ }
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if(commonUtils.isNotEmptyObject(returnDataSet)) {
+ /* 数据塞到Data中 */
+ for (const key of Object.keys(returnDataSet)) {
+ const sName = `${key}Data`;
+ returnData[sName] = returnDataSet[key];
+ }
+ }
+ console.log('returnData', returnData);
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ // if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ // }
+
+ if(commonUtils.isNotEmptyObject(copyToSlaveDetailConfig)) {
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ }
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ if(copyToControlConfig[0].sControlName.includes('_edit')) {
+ controlRow = { ...controlSelectedRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ if(iControlIndex > -1) {
+ controlData[iControlIndex] = { ...controlSelectedRow, ...controlRow};
+ }
+ } else {
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+
+ });
+ }
+
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ materials0Data.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ addState.materials0Data = materials0Data;
+ addState.packData = packData;
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ processData,
+ materialsData,
+ controlData,
+ ...treeState,
+ colorData,
+ masterData,
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else if (name === 'productProcessInfo') { /* 复制从产品 */
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ let { materials0Data, processData, colorData }= this.props;
+ // const controlData = [];
+ // const materials0Data = [];
+ // const processData = [];
+ // const colorData = [];
+ let packData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materials0DelData = commonUtils.isEmptyArr(materials0DelDataOld) ? [] : materials0DelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ const packDelData = commonUtils.isEmptyArr(packDelDataOld) ? [] : packDelDataOld;
+
+
+ let iSlaveIndex = -1;
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ iSlaveIndex = 0;
+ }
+ /* 选择产品工艺卡 如果选择的从表的packData合拼的其他的 则不删除 没有合拼产品的 或是合拼产品为1的删除 删除新增增加的第一条数据*/
+ const controlDelRowKeys = [];
+ if(iSlaveIndex > -1 && commonUtils.isNotEmptyArr(controlDataOld)) {
+ controlDataOld.forEach((item) => {
+ const jsonArr = commonUtils.isEmptyObject(item.sCombinedMemo) || item.sCombinedMemo ==='合版信息' ? []: JSON.parse(item.sCombinedMemo);
+ if((jsonArr.length ===1 && jsonArr[0].sProductNo === slaveData[iSlaveIndex].sProductNo)){
+ item.handleType = 'del';
+ controlDelData.push(item);
+ controlDelRowKeys.push(item.sId); /* 删除部件时 同步删除材料与工序 */
+ let tableDataIndex = controlData.findIndex(itemOld => itemOld.sId === item.sId);
+ if(tableDataIndex > -1) {
+ /* 同步删除合版表 */
+ const iIndexPack = packData.findIndex(itemDel =>itemDel.sControlId === controlData[tableDataIndex].sId );
+ if (iIndexPack > -1) {
+ const packDataDelRow = packData[iIndexPack];
+ packDataDelRow.handleType = 'del';
+ packDelData.push(packDataDelRow);
+ packData.splice(iIndexPack, 1);
+ }
+ controlData.splice(tableDataIndex, 1);
+ }
+ }
+ });
+ }
+ let materialsReturnData = {};
+ let processReturnData ={};
+ if(commonUtils.isNotEmptyArr(controlDelRowKeys)) {
+ materialsReturnData = this.otherTableDel('materials0', controlDelRowKeys);
+ processReturnData = this.otherTableDel('process', controlDelRowKeys);
+ }
+
+ addState.controlDelData = controlDelData;
+
+
+ if(commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) {
+ addState.materials0DelData= materialsReturnData.materialsDelData;
+ materials0Data= materialsReturnData.materials0Data;
+ } else {
+ addState.materials0DelData = materials0DelData;
+ }
+
+
+ if(commonUtils.isNotEmptyObject(processReturnData) && commonUtils.isNotEmptyArr(processReturnData.processDelData)) {
+ addState.processDelData= processReturnData.processDelData;
+ processData = processReturnData.processData;
+ } else {
+ addState.processDelData = processDelData;
+ }
+
+ addState.colorDelData = colorDelData;
+
+ addState.packDelData = packDelData;
+ console.log('addState删除:', addState);
+
+
+ // controlDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // controlDelData.push(item);
+ // });
+ // addState.controlDelData = controlDelData;
+ // materials0DataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // materials0DelData.push(item);
+ // });
+ // addState.materials0DelData = materials0DelData;
+ // processDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // processDelData.push(item);
+ // });
+ // addState.processDelData = processDelData;
+ // if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ // colorDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // colorDelData.push(item);
+ // });
+ // }
+ // addState.colorDelData = colorDelData;
+ // addState.processDelData = processDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materials0Config = materials0Config;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+
+ const condition = { sCardId: selectData[0].sId, sRowData: selectData };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ controlRow.sPartsName = slaveData[iSlaveIndex].sProductName;
+ controlRow.iOrder = slaveData[iSlaveIndex].iOrder;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+ /* 增加合版表 */
+ if (true) {
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ /* sSlaveId赋值 */
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ packRow.dCombineQty = commonUtils.isNull(controlRow.dSinglePQty, 1); /* 默认是控制表的排版数 */
+ packRow.dProductQty = commonUtils.isNull(slaveDataRow.dProductQty, 0);
+ packRow.dFactProductQty = commonUtils.isNull(slaveDataRow.dProductQty, 0);
+ if(commonUtils.isNotEmptyObject(packRow) && commonUtils.isNotEmptyObject(packRow.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packRow;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = dCombineQty; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ controlRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ packData.push(packRow);
+ }
+ }
+ }
+
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sParentMaterialsId = materialsItem.sParentMaterialsId;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materials0Data.push(materialsRow);
+ });
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const materialsFilterData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if(commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materials0Data.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if(iIndex > -1) {
+ // materialsFilterData[index] = {... materialsFilterData[index], sParentMaterialsId: materialsData[iIndex].sId };
+
+ const iNexIndex = materials0Data.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ const addState = {};
+ addState.sMaterialsNo1 = materials0Data[iIndex].sMaterialsNo; /* 原材料编号 */
+ addState.sMaterialsName1 = materials0Data[iIndex].sMaterialsName; /* 原材料名称 */
+ addState.bAlternative = true;
+ addState.sParentMaterialsId = materials0Data[iIndex].sId;
+ materials0Data[iNexIndex] = { ...materials0Data[iNexIndex], ...addState};
+ materials0Data[iIndex] = { ...materials0Data[iIndex], bTidaibs:true };
+ }
+ }
+ });
+ }
+
+ const materialsInkFilterData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if(commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materials0Data.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if(iIndex > -1) {
+ const iNexIndex = materials0Data.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ materials0Data[iNexIndex] = { ...materials0Data[iNexIndex], sInkFatherMaterialsTbId: materials0Data[iIndex].sId}
+ }
+ }
+ });
+ }
+
+
+ }
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materials0Data.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ processData,
+ materials0Data,
+ controlData,
+ ...treeState,
+ colorData,
+ masterData,
+ packData,
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const addState ={};
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === 'process') {
+ /* 设置工单参数下拉 */
+ tableDataRow.sParams = item.sParams;
+ ['sProcess', 'sReport', 'sWorkOrder', 'sNorm', 'sTest'].forEach(key => {
+ // 将各种参数的默认值保存到sParams中
+ const sKeyParam = commonUtils.convertStrToObj(tableDataRow[`${key}Param`] || item[`${key}Param`], {});
+ if (commonUtils.isNotEmptyObject(sKeyParam)) {
+ const sKeyParamDefaultValues = Object.keys(sKeyParam).filter(
+ item => item.startsWith('sParamDefault') && commonUtils.isNotEmptyObject(sKeyParam[item])
+ ).reduce((result, item) => {
+ const sParamsName = item.replace('Default', '');
+ result[sParamsName] = sKeyParam[item];
+ return result;
+ }, {});
+
+ const sParams = commonUtils.convertStrToObj(tableDataRow.sParams, []);
+ const sKeyJsonIndex = sParams.findIndex(item => item.sParamType === key);
+ if (sKeyJsonIndex === -1) {
+ sParams.push({
+ sParamType: key,
+ data: sKeyParamDefaultValues
+ });
+ } else {
+ const { data: sWorkOrderData = {} } = sParams[sKeyJsonIndex];
+ sParams[sKeyJsonIndex].data = { ...sWorkOrderData, ...sKeyParamDefaultValues };
+ }
+ tableDataRow.sParams = JSON.stringify(sParams);
+ }
+ });
+ // if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ // tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ // }
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ addState.processSelectedRowKeys = [tableDataRow.sId]
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [], ...addState
+ });
+ }
+ };
+
+ /* 选择成品工序点击确定业务处理 */
+ handleSelectProductMaterial = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ // 选择成品材料,将sType改为2
+ if (name === 'productMaterials') {
+ selectData = selectData.map(val => ({ ...val, sType: '2' }));
+ name = 'materials';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, controlSelectedRowKeys, materialsConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+
+ tableDataRow.sParentId = masterData.sId;
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品材料sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName;
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ if (iControlIndex > -1 && tableDataRow.sType !== '2') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '2') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+
+ /* 选择成品工序点确定 */
+ /* 工单从表选中selectedRowKeys */
+ handleSelectFinalProcess = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ const targetname = 'process';
+ const {
+ [`${targetname}Data`]: tableData, [`${targetname}Config`]: tableConfig, controlSelectedRowKeys, sModelsId, token,
+ materialsConfig, processConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ if (name === 'chooseProductProcess') {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ /* 通过slaveFinalSelectedRowKeys找到slaveData数据 */
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ tableDataRow.sType = '3';
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ }
+ if (targetname === 'process') {
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${targetname}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ }
+
+
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled, slaveData } = this.props;
+ let { packData } = this.props;
+ if (name === 'control' && sName === 'sCombinedMemo') {
+ const packSelectedRowKeys = [];
+
+ /* 合并从表相同客户、产品数据 */
+ const slaveDataMerge = [];
+ slaveData.forEach((item) => {
+ const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ slaveDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ slaveDataMerge[iIndex].dProductQty = dProductQtyNew;
+ slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+
+ /* 合并合版表相同客户、产品数据 */
+ const packDataMerge = [];
+ if(commonUtils.isNotEmptyArr(packData)) {
+ packData.forEach((item) => {
+ const iIndex = packDataMerge.findIndex(child => commonUtils.isNotEmptyObject(item.sCombinePartsName) && child.sCombinePartsName === item.sCombinePartsName && commonUtils.isNotEmptyObject(item.sProductId) && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ packDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ packDataMerge[iIndex].dProductQty = dProductQtyNew;
+ packDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ packDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(packDataMerge)) {
+ packData = packDataMerge;
+ }
+
+
+ /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */
+ if (commonUtils.isNotEmptyArr(slaveDataMerge)) {
+ slaveDataMerge.forEach((item, index) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(item);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) {
+ packSelectedRowKeys.push(itemPack.sId);
+ }
+ }
+ }
+ });
+ } else {
+ const tableDataRow = this.handlePackDataAdd(item, index, sId, 'add');
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ packData.push(tableDataRow);
+ }
+ }
+ });
+ }
+ this.props.onSaveState({
+ productCombinationVisible: true,
+ sCombinationsControlId: sId, /* 合版产品控制表sId */
+ enabled,
+ packSelectedRowKeys,
+ packData,
+ });
+ } else if (name === 'control' && sName === 'sPositiveColor' || sName === 'sOppositeColor') {
+ this.props.onViewChoose(name, sName, record);
+ } else if (name === 'process' && sName === 'sCombinePartsNameNew') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '3') { /* 成品工序跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ } else { /* 成品工序跟着合版表走 */
+ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack, index) => {
+ let slaveDataRow = {};
+ let packRowAdd = {};
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId);
+ if (iIndex > -1) {
+ slaveDataRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveDataRow)) {
+ packRowAdd = this.handlePackDataAdd(slaveDataRow);
+ }
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ processSelectedRowId: sId, /* 工序表选中行sId */
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'materials' && sName === 'sCombinePartsNameNew') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '2') { /* 成品材料跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ materialsSelectedRowId: sId, /* 工序表选中行sId */
+ openTable: 'materials',
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'process' && sName === 'sColorSerialMemo') {
+ this.props.onViewChoose(name, sName, record);
+ } else if (name === 'sParam' && sName === 'sParamValue') {
+ this.props.onViewChoose(name, sName, record);
+ } else if(name === 'process' && (sName === 'sParams' || sName ==='sQuoParams')) {
+ this.props.onViewClick(name, sName, record);
+ }
+ }
+ handlePackDataAdd= (item, index, sControlId, handleType) => {
+ const tableDataRow = {};
+ if (handleType === 'add') {
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.sSlaveId = item.sId;
+ tableDataRow.iOrder = item.iOrder;
+ }
+ tableDataRow.sParentId = item.sParentId;
+ if (commonUtils.isNotEmptyObject(sControlId)) {
+ tableDataRow.sControlId = sControlId;
+ }
+ // if (commonUtils.isNotEmptyObject(index)) {
+ // tableDataRow.iOrder = index + 1;
+ // }
+ tableDataRow.sProductId = item.sProductId; /* 产品id */
+ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */
+ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */
+ tableDataRow.sProductName = item.sProductName; /* 产品名称 */
+ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */
+ tableDataRow.dProductWidth = item.dProductWidth; /* 产品宽 */
+ tableDataRow.dProductLength = item.dProductLength; /* 产品长 */
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (bProductQtySelf) {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */
+ }
+ tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */
+ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */
+ return tableDataRow;
+ }
+
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = '';
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = '';
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace('.', '');
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace('.', '');
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ return parseFloat(sPartOrder1 + sOrder1) - parseFloat(sPartOrder2 + sOrder2);
+ // return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2);
+ });
+ return processData;
+ };
+ /* 控制排序 */
+ orderData = (e, name, type) => {
+ const {
+ [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app,
+ } = this.props;
+ let { [`${name}Data`]: processData } = this.props;
+ if (name === 'process') {
+ if (commonUtils.isEmptyArr(tableselectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */
+ return;
+ }
+ if (commonUtils.isEmptyArr(processData)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */
+ return;
+ }
+ const processNew = processData.filter((item) => { /* 获取勾选数据集 */
+ return tableselectedRowKeys.indexOf(item.sId) > -1;
+ });
+ if (commonUtils.isEmptyArr(processNew)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */
+ return;
+ }
+ const len = processData.length;
+ const newLen = processNew.length;
+ let num = 0.01;/* 循环增加体 */
+ let targetiOrder = -1;
+ if (type === 1) { /* 上移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex - 1].iOrder - 1; /* 目标排序号 */
+ }
+ } else if (type === 2) { /* 下移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex + 1].iOrder;
+ }
+ } else if (type === 0) { /* 置顶 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */
+ return;
+ } else {
+ targetiOrder = processData[0].iOrder - 1;
+ }
+ } else if (type === 3) { /* 置底 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */
+ return;
+ } else {
+ targetiOrder = processData[len - 1].iOrder + 1;
+ }
+ }
+ processNew.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.sType)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */
+ return;
+ }
+ const index1 = processData.findIndex(item1 => item1.sId === item.sId);
+ processData[index1] = { ...item, iOrder: targetiOrder + num };
+ num += 0.01;
+ });
+ processData = this.sortData(controlData, processData);
+ const processSortData = this.props.orderNum(processData, controlSelectedRowKeys);
+ if (commonUtils.isNotEmptyArr(processSortData)) {
+ processData = processSortData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: processData });
+ }
+ };
+
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ if (name === 'slave') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, masterConfig, controlConfig, controlData: controlDataOld, masterData, packData,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') {
+ let dPartsQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const controlData = [];
+ controlDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ itemNew.dPartsQty = dPartsQty;
+ controlData.push(itemNew);
+ });
+ addState.controlData = controlData;
+ }
+ if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ tableDataRow.sProductId = '';
+ tableDataRow.sProductNo = '';
+ tableDataRow.sProductName = '';
+ tableData[iIndex] = tableDataRow;
+ } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName')) {
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if ( tableDataRow.handleType === 'add' && iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ // else if (sFieldName === 'sProductName') {
+ // const controlData = [];
+ // controlDataOld.forEach((item) => {
+ // const itemNew = { ...item };
+ // controlData.push(itemNew);
+ // });
+ // if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmpty(controlData[0].sPartsName)) {
+ // controlData[0].sPartsName = tableDataRow.sProductName;
+ // addState.controlData = controlData;
+ // }
+ // }
+ }
+ /* 从表产品改变带动合版表产品与部件表合版信息 同步改变 */
+ const controlDataNew = commonUtils.isNotEmptyArr(addState.controlData) ? addState.controlData : controlDataOld;
+ /* 如果packData只有一条数据 则同步合版数据 及增加控制表合版备注 */
+ if (commonUtils.isNotEmptyArr(packData) && packData.length === 1 && packData[0].sSlaveId === tableDataRow.sId) {
+ let packDataRow = packData[0];
+ const sControlId = packDataRow.sControlId;
+ packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId);
+ packDataRow.dCombineQty = 1;
+ packData[0] = { ...packData[0], ...packDataRow }
+
+ if (commonUtils.isNotEmptyObject(packData[0])) {
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[0];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ // const controlDataNew =commonUtils.isNotEmptyArr(addState.controlData)? addState.controlData: controlDataOld;
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ addState.controlData = controlDataNew;
+ }
+ }
+
+ } else if (packData.length > 1) {
+ const packFilterData = packData.filter(item => item.sSlaveId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData)) {
+ packFilterData.forEach((itemPack, index) => {
+ let packDataRow = itemPack;
+ const sControlId = packDataRow.sControlId;
+ packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId);
+ const iPIndex = packData.findIndex(child => child.sId === itemPack.sId);
+
+ packData[iPIndex] = { ...packData[iPIndex], ...packDataRow };
+ if (iPIndex > -1 && commonUtils.isNotEmptyObject(packData[iPIndex])) {
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[iPIndex];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex =
+ controlDataNew.findIndex(controlItem => {
+ const sCombinedMemoArr = JSON.parse(controlItem.sCombinedMemo);
+ const sCombinedMemoFilterArr = sCombinedMemoArr.filter(item => item.dCombineQty > 0 && item.sProductNo === itemPack.sProductNo);
+ return commonUtils.isNotEmptyArr(sCombinedMemoFilterArr)
+ });
+ // controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ }
+ }
+ });
+ addState.controlData = controlDataNew;
+ }
+ }
+ addState.packData = packData;
+ }
+
+ this.props.onSaveState({ [`${name}Data`]: tableData, ...addState });
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsId, sModelsType, slaveData, packData,
+ } = this.props;
+ let { masterData } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ }else if ( sFieldName === 'dSinglePQty' ) { /* 排版数改变时 如果该控制表合版数据只有一条 则改变packData该条的拼版数 改变备注 */
+ if(commonUtils.isNotEmptyArr(packData)){
+ const packFilterData = packData.filter(item => item.sControlId === tableDataRow.sId);
+ console.log('1222', packFilterData);
+ if (commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length ===1 ) {
+ const iIndex = packData.findIndex(itemPack => itemPack.sId === packFilterData[0].sId);
+ const addState ={};
+ if(tableDataRow.dSinglePQty > 0){
+ addState.dCombineQty = tableDataRow.dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ tableDataRow.iCombineNum = tableDataRow.dSinglePQty;
+ if(iIndex > -1) {
+ packData[iIndex] ={ ...packData[iIndex] , ...addState};
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packData[iIndex];
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ }
+ }
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ }
+ /* 膜内工艺卡算法逻辑 */
+ if (sModelsType === 'manufacture/workOrder3' && sModelsId === '101251240115016046551448370') {
+ /* 排版数dSinglePQty=列数iCol*iRow个数 */
+ const iCol = commonUtils.isNull(tableDataRow.iCol, 0);
+ const iRow = commonUtils.isNull(tableDataRow.iRow, 0);
+ const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0));
+ const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0));
+ const dCutEdge = commonUtils.isNull(tableDataRow.dCutEdge, 0);
+ const dColGap = commonUtils.isNull(tableDataRow.dColGap, 0);
+ const dRowGap = commonUtils.isNull(tableDataRow.dRowGap, 0);
+ const dScraperGap = commonUtils.isNull(tableDataRow.dScraperGap, 0);
+ const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0));
+ const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0));
+ const dSinglePQty = commonUtils.isNull(tableDataRow.dSinglePQty, 0);
+ if (sFieldName === 'iCol' || sFieldName === 'iRow') {
+ tableDataRow.dSinglePQty = iCol * iRow;
+ }
+ /* 膜宽dMaterialsWidth =图文尺寸dMachineWidth*列数iCol+图文到膜边尺寸 dCutEdge*2+图文到图文的尺寸dColGap*(列数iCol-1) */
+ if (sFieldName === 'dMachineWidth' || sFieldName === 'iCol' || sFieldName === 'dCutEdge' || sFieldName === 'dColGap') {
+ tableDataRow.dMaterialsWidth = (dMachineWidth * iCol) + (dCutEdge * 2) + (dColGap * (iCol - 1));
+ }
+ /* 版周长 dMaterialsLength=(版周长图文尺寸dMachineLength+图文到图文尺寸dRowGap)*版周长个数iRow+dScraperGap刮刀距离 */
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap') {
+ tableDataRow.dMaterialsLength = ((dMachineLength + dRowGap) * iRow) + dScraperGap;
+ }
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap' || sFieldName === 'dMaterialsLength') {
+ let dPlatediameter = dMaterialsLength / Math.PI;
+ dPlatediameter = commonUtils.convertFixNum(dPlatediameter, 2);
+ const addState = {};
+ addState.dPlatediameter = dPlatediameter;
+ addState.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ masterData = { ...masterData, ...addState };
+ }
+ /* 1款拼版 从表产品折算率=版周长*膜宽/1000000 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (slaveData.length === 1) { /* 只有一条从表数据 */
+ const addState = {};
+ addState.dConversionRate = (dMaterialsLength * dMaterialsWidth) / 1000000;
+ addState.dCombineCoefficient = dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(slaveData[0].handleType) ? 'update' : slaveData[0].handleType;
+ slaveData[0] = { ...slaveData[0], ...addState };
+ } else if (slaveData.length > 1) { /* 多款产品合拼的 折算率 */
+ let sumTotal = 0;
+ slaveData.forEach((itemNew) => {
+ const singleSum = itemNew.dProductLength * itemNew.dProductWidth * itemNew.dCombineCoefficient;
+ sumTotal += singleSum;
+ });
+ slaveData.forEach((item, index) => {
+ const addState = {};
+ /* 多产品折算率 */
+ const dConversionRate = ((dMaterialsLength * dMaterialsWidth) *
+ (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) / sumTotal / item.dCombineCoefficient / 1000000;
+ addState.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ addState.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ slaveData[index] = { ...item, ...addState };
+ });
+ }
+ }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+ if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = this.props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, slaveData, masterData, packData,
+ });
+ } else if (name === 'materials') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === 'sType') {
+ if (tableData[iIndex].sType === '2') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData });
+ } else if (name === 'materials0' || name === 'materials1' || name === 'materials2' || name === 'materials3' || name === 'materials1Child') {
+ name = 'materials0';
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, materials0Data, materials0SelectedRowKeys, masterData,
+ } = this.props;
+ // let oldRowMap = {};
+ // if(sFieldName === 'sInkBOM') {
+ // const iOldIndex = tableData.findIndex(item => item.sId === sId);
+ // if(iOldIndex > -1) {
+ // const tableDataOldRow = JSON.parse(JSON.stringify(tableData[iOldIndex]));
+ // oldRowMap ={
+ // sInkBOMId : tableDataOldRow.sInkBOMId,
+ // sInkBOMsSlaveId : tableDataOldRow.sInkBOMsSlaveId,
+ // sInkBOMsMaterialsId : tableDataOldRow.sInkBOMsMaterialsId,
+ // }
+ // }
+ // }
+ const tableDataRow = await this.props.onDataChange('materials0', sFieldName, changeValue, sId, dropDownData, true);
+ if (sFieldName === 'dPackageQty') {
+ if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ const iControlIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ if(masterData?.sBusinessType ==='MergeVersion'){
+ tableDataRow.dAuxiThousheetQty = (controlData[iControlIndex].iCombineNum * 1000.0 / tableDataRow.dPackageQty).toFixed(3);
+ }else {
+ tableDataRow.dAuxiThousheetQty = (controlData[iControlIndex].dSinglePQty * 1000.0 / tableDataRow.dPackageQty).toFixed(3);
+
+ }
+ }
+ }
+ }
+ if (tableDataRow === undefined) return;
+ // tableDataRow.oldRowMap = oldRowMap;
+
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ // /* 从全部材料数据集中找到该数据集 */
+ // if(commonUtils.isNotEmptyArr(materials0Data)) {
+ // const iIndex = materials0Data.findIndex(item => item.sId === tableDataRow.sId);
+ // if(iIndex > -1) {
+ // materials0Data[iIndex] = {...materials0Data[iIndex], ...tableDataRow};
+ // }
+ //
+ // }
+
+ this.props.onSaveState({ [`${name}Data`]: tableData });
+ }else if ( name === 'materials0Child') { /* 替代料 */
+ name = 'materials0';
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, materials0Data, materials0SelectedRowKeys,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (sFieldName === 'dPackageQty') {
+ if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ const iControlIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableDataRow.dAuxiThousheetQty = (controlData[iControlIndex].dSinglePQty * 1000.0 / tableDataRow.dPackageQty).toFixed(3);
+ }
+ }
+ }
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ // /* 根据替代料定位全部材料数据集中该数据父级 */
+ // if(commonUtils.isNotEmptyArr(materials0Data)) {
+ // const iIndex = materials0Data.findIndex(item => item.sId === tableDataRow.sId);
+ // if( iIndex > -1) {
+ // let { handleType } = materials0Data[iIndex];
+ // handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ // materials0Data[iIndex] = {...materials0Data[iIndex], ...changeValue, handleType};
+ // }
+ //
+ // }
+ this.props.onSaveState({ [`${name}Data`]: tableData });
+ } else if (name === 'process') {
+ const {
+ [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, materials0Data, processConfig, token,
+ } = this.props;
+ let { processDelData, materialsDelData } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ // let iMaterialsIndex = -1;
+ let sControlId = '';
+ if (iIndex > -1) {
+ // iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) {
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = '工艺参数';
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = '';
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = 'del';
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ if (tableData[iIndex].sType === '3') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ materials0Data.forEach(materialsItem => {
+ if (materialsItem.sControlId === tableData[iIndex].sControlId && materialsItem.sProcessTbId === tableData[iIndex].sId) {
+ materialsItem.sProcessId = tableData[iIndex].sProcessId;
+ materialsItem.sProcessName = tableData[iIndex].sProcessName;
+ materialsItem.sProcessNo = tableData[iIndex].sProcessNo;
+ materialsItem.sMaterialsProcessNameOrder = tableData[iIndex].iRowNum + '-' + tableData[iIndex].sProcessName;
+ materialsItem.handleType = commonUtils.isEmpty(materialsItem.handleType) ? 'update' : materialsItem.handleType;
+ }
+ });
+ // if (iMaterialsIndex > -1) {
+ // materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ // materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ // materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ // }
+ addState.materials0Data = materials0Data;
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState });
+ } else if(name === 'pack'){
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, materials0Data, processConfig, token,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (sFieldName === 'dCombineQty') {
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const dCurrentSqure = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dProductWidth,0) *
+ commonUtils.isNull(tableDataRow.dProductLength,0) *
+ commonUtils.isNull(tableDataRow.dCombineQty,0), 2);
+ tableDataRow.dSReserve1 = commonUtils.convertFixNum(dCurrentSqure, 2);
+ if(tableSelectedRowKeys.length === 1) {
+ tableDataRow.dCoefficient = 100; /* 单拼 系数= 100% */
+ } else {
+ const filterData = tableData.filter(child => tableSelectedRowKeys.includes(child.sId) && child.sId !==tableDataRow.sId);
+ let dSumSqure = dCurrentSqure;
+ /* 算面积之和 */
+ if(commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach((item) => {
+ const iFIndex = tableData.findIndex(key => key.sId === item.sId);
+ const dSqure =commonUtils.isNull(tableData[iFIndex].dProductWidth,0) * commonUtils.isNull(tableData[iFIndex].dProductLength,0) *
+ commonUtils.isNull(tableData[iFIndex].dCombineQty, 0);
+ dSumSqure += dSqure;
+ });
+ }
+ tableDataRow.dCoefficient = Math.round(commonUtils.convertFixNum(dCurrentSqure / dSumSqure, 2) * 100);
+ console.log('当前系数', Math.round(tableDataRow.dCoefficient));
+ /* 算其他系数 */
+ if(commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach((row, index) => {
+ const iFIndex = tableData.findIndex(key => key.sId === row.sId);
+ const dSqure = tableData[iFIndex].dProductWidth * tableData[iFIndex].dProductLength * tableData[iFIndex].dCombineQty;
+ const dCoefficient = commonUtils.convertFixNum(dSqure / dSumSqure, 2) * 100;
+ const addState = {};
+ addState.dCoefficient = Math.round(dCoefficient) ;
+ console.log('其他系数', Math.round(dCoefficient));
+ if(iFIndex > -1) {
+ tableData[iFIndex] ={...tableData[iFIndex], ...addState};
+ }
+ })
+ }
+ }
+
+ }
+
+ }
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData});
+ } else {
+ this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ // 限制编辑
+ otherlimitDisabled = (params) => {
+ let { enabledNew, record, sName } = params;
+ if (!['101251240115016082594412050'].includes(this.props.sModelsId)) return enabledNew;
+ if (enabledNew && ['dAuxiThousheetQty'].includes(sName)) {
+ if (record.dPackageQty > 0) {
+ enabledNew = false
+ }
+ }
+ return enabledNew;
+ };
+
+ /* 重新计算实际生产数 */
+ handleGetdFactProductQty = (selectedRowKeys, tableData) => {
+ const maxArr = [];
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const tableFilter = tableData.filter(item => selectedRowKeys.includes(item.sId) && item.dCombineQty > 0);
+ if (selectedRowKeys.length === 1 || tableFilter.length === 1) { /* 当选中行只有一行时,实际生产数等于生产数 */
+ const iSlaveIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ const dProductQty = tableData[iSlaveIndex].dProductQty;
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty: dProductQty };
+ }
+ } else {
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ const { dCombineQty, dProductQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ let dNum = commonUtils.convertFixNum(dCombineQty !== 0 ? dProductQty / dCombineQty : 0, 2); /* 生产数/排版数 取最大值 */
+ dNum = Math.ceil(dNum);
+ maxArr.push(dNum);
+ }
+ }
+ }
+ let dMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ dMax = Math.max(...maxArr);
+ }
+ dMax = commonUtils.isNotNum(dMax) ? 0 : dMax;
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ let { dCombineQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ dCombineQty = commonUtils.isNotNum(dCombineQty) ? 0 : dCombineQty;
+ const dFactProductQty = commonUtils.convertFixNum(dCombineQty * dMax, 2); /* 实际生产数 =最大值 * 排版数 */
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty };
+ }
+ }
+ }
+ }
+ this.props.onSaveState({ packData: tableData });
+ }
+ }
+ handleCancelFastOrderModal = () => {
+ this.props.onSaveState({ fastOrderModalVisible: false });
+ };
+ handleCancelProcessChooseModal = () => {
+ this.props.onSaveState({ processChooseVisible: false });
+ };
+ handleCancelMaterialsChooseModal = () => {
+ this.props.onSaveState({ materialsChooseVisible: false });
+ };
+ handleCancelProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+ handleCancelProductCombinationChooseModal = () => {
+ this.props.onSaveState({ productCombinationVisible: false });
+ };
+ handleSelectProductCombination= () => {
+ const {
+ controlData, sCombinationsControlId, packData, enabled, app,
+ } = this.props;
+ let { packSelectedRowKeys: selectedRowKeys } = this.props;
+ let sCombinedMemo = '';
+ const tableCombineSelectedData = [];
+ selectedRowKeys = commonUtils.isNotEmptyArr(selectedRowKeys) ? selectedRowKeys : [];
+ const maxArr = [];
+ const maxMap = new Map();
+ let dSumCombineQty = 0;
+ const packFilterData = packData.filter(item => item.sControlId === sCombinationsControlId);
+ for (const tableDataRow of packFilterData) {
+ const {
+ sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName,
+ } = tableDataRow;
+ if (dCombineQty > 0) { /* 排版数大于0时,把数据带回到控制表 */
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ dSumCombineQty += dCombineQty;
+ tableCombineSelectedData.push(jsonObj);
+ maxMap.set(Math.floor(dProductQty / dCombineQty), jsonObj);
+ maxArr.push(Math.floor(dProductQty / dCombineQty));
+ }
+ }
+
+ /* 没勾选的合版数据 合拼排版数置为0 */
+ // const packNoChooseData = packData.filter(item => item.sControlId === sCombinationsControlId && !selectedRowKeys.includes(item.sId));
+ // if (commonUtils.isNotEmptyArr(packNoChooseData) && packNoChooseData.length > 0) {
+ // packNoChooseData.forEach((item) => {
+ // const iIndex = packData.findIndex(child => child.sId === item.sId);
+ // if (iIndex > -1) {
+ // packData[iIndex].dCombineQty = 0;
+ // packData[iIndex].handleType = commonUtils.isEmpty(packData[iIndex].handleType) ? 'update' : packData[iIndex].handleType;
+ // }
+ // });
+ // }
+
+ let iMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ iMax = Math.max(...maxArr);
+ }
+ sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ const iControlIndex = controlData.findIndex(item => item.sId === sCombinationsControlId);
+ if (iControlIndex > -1 && enabled) {
+ const addState = {};
+ const maxObj = maxMap.get(iMax);
+ let { handleType } = controlData[iControlIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinedMemo = sCombinedMemo;
+ if(commonUtils.isNotEmptyObject(maxObj)) {
+ addState.dSinglePQty = commonUtils.isNotEmptyObject(maxObj) ? maxObj.dCombineQty : 0;
+ } else {
+ const packFilterData = packData.findIndex(item => item.sControlId === sCombinationsControlId);
+ if(commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length === 1) {
+ addState.dSinglePQty = packFilterData[0].dCombineQty;
+ } else {
+ addState.dSinglePQty = 1; /* 没合拼给默认值1 */
+ }
+ }
+ addState.iCombineNum = dSumCombineQty;
+ controlData[iControlIndex] = { ...controlData[iControlIndex], ...addState };
+ }
+ this.props.onSaveState({
+ productCombinationVisible: false,
+ packData,
+ controlData,
+ });
+ };
+ handleCancelCombinePartsChooseModal = () => {
+ this.props.onSaveState({ combinePartsChooseVisible: false });
+ };
+ /* 选择合版部件名称 */
+ handleSelectCombineParts = (name, selectConfig, selectData) => {
+ const {
+ processData, processSelectedRowId, materialsData, materialsSelectedRowId, openTable,
+ } = this.props;
+ let sCombinedStr = '';
+ let sCombinedId = '';
+ if (selectData !== undefined) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ const { sId } = item;
+ let { sProductName } = item;
+ let { sCombinePartsName } = item;
+ sProductName = commonUtils.isNotEmptyObject(sProductName) ? sProductName : '';
+ sCombinePartsName = commonUtils.isNotEmptyObject(sCombinePartsName) ? sCombinePartsName : '';
+ // sCombinedStr += `${sCustomerName}-${sProductName}-${sCombinePartsName},`;
+ if (commonUtils.isNotEmptyObject(sCombinePartsName)) {
+ sCombinedStr += `${sProductName}-${sCombinePartsName},`;
+ sCombinedId += `${sId},`;
+ } else {
+ sCombinedStr += `${sProductName},`;
+ sCombinedId += `${sId},`;
+ }
+ });
+ // sCombinedStr = `${selectData.length.toString()} `;
+ if (commonUtils.isNotEmptyObject(sCombinedStr)) {
+ sCombinedStr = commonUtils.isNotEmptyObject(sCombinedStr) ? sCombinedStr.substr(0, sCombinedStr.length - 1) : '';
+ }
+ if (commonUtils.isNotEmptyObject(sCombinedId)) {
+ sCombinedId = commonUtils.isNotEmptyObject(sCombinedId) ? sCombinedId.substr(0, sCombinedId.length - 1) : '';
+ }
+ }
+ if (commonUtils.isNotEmptyObject(openTable) && openTable === 'materials') {
+ const iIndex = materialsData.findIndex(item => item.sId === materialsSelectedRowId);
+ if (iIndex > -1) {
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ materialsData[iIndex] = { ...materialsData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ materialsData, combinePartsChooseVisible: false });
+ } else {
+ const iIndex = processData.findIndex(item => item.sId === processSelectedRowId);
+ if (iIndex > -1) {
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ processData[iIndex] = { ...processData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ processData, combinePartsChooseVisible: false });
+ }
+ }
+ // this.props.onSaveState({ processData, combinePartsChooseVisible: false });
+ };
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+ /** 复制 */
+ handleTableCopy = (name, isWait) => {
+ /* 部件树节点复制功能 */
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination,slaveData,
+ } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = commonUtils.createSid();
+ tableDataRow.sId = newId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sSrcSlaveId = '';
+ tableDataRow.sSrcId = '';
+ tableDataRow.dSrcQty = null;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
+ tableDataRow.sMaterialsMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
+ tableDataRow.sProcessMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) {
+ tableDataRow.sCombinedMemo = '';
+ }
+ tableData.push(tableDataRow);
+ const tableSelectedNewRowKeys = [];
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys, treeSelectedKeys: tableSelectedNewRowKeys, ...treeState,
+ });
+ }
+ }
+ } else if (name === 'slave') {
+ const { packData, controlData } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn('请选择数据!'); // 请选择从表数据
+ return;
+ }
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = this.props.onDataRowCopy(name, true);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.forEach((item) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(tableDataRow, tableData.length, item.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, packData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 },
+ });
+ }
+ }
+ } else {
+ this.props.onDataRowCopy(name, isWait);
+ }
+ }
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData,packData, slaveData, app,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`;
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = tableDataRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) {
+ tableDataRow.sCombinedMemo = '';
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSrcProcessTbId = item.sId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ ...treeState,
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { total: tableData.length, current: 9999 },
+ [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys,
+ treeSelectedKeys: tableSelectedNewRowKeys,
+ materialsSelectedRowKeys: [],
+ materialsData,
+ processData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+ return tableDataRow;
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ let { controlSelectedRowKeys } = this.props;
+ controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ this.props.onTreeSelect(name, checkedKeys, e);
+ this.props.onSaveState({
+ controlSelectedRowKeys,
+ });
+ };
+
+ /* 主产品选中时 清除所有表格选中 */
+ handleTotalTreeSelect = (name, checkedKeys, e) => {
+ const bMainProduct = (e && e.node && e.node.treeNode) ? e.node.treeNode.isRoot: false; /* 主产品 */
+ this.props.onTreeSelect(name, checkedKeys, e);
+ if(bMainProduct){
+ this.props.onSaveState({
+ slaveSelectedRowKeys:[],
+ controlSelectedRowKeys:[],
+ });
+ }
+ };
+
+ handleTabChange = (value) => {
+ this.setState({
+ currentTab: +value
+ });
+ }
+
+ handleTabChange2 = (value) => {
+ this.setState({
+ currentTab2: +value
+ });
+ }
+
+ handleActiveKey = (value) => {
+ this.setState({
+ activeKey: value
+ });
+ }
+
+ handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+
+ handleDrag = (data, tableName) => {
+ let { controlSelectedRowKeys, controlData } = this.props;
+ if(this.props.enabled && controlSelectedRowKeys.length) {
+ if(tableName === 'process' || tableName === 'materialsO') {
+ if(commonUtils.isNotEmptyArr(data)) {
+ let allData = this.props.processData;
+ /* 控制表选中行 移动排序 */
+ const filterData = data.filter(item => item.sType !== '3' && item.sControlId === this.props.controlSelectedRowKeys[0]);
+ if(commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach((item, iIndex) => {
+ item.iOrder = iIndex + 1;
+ const iFilterIndex = commonUtils.isNotEmptyArr(allData) ? allData.findIndex(row => item.sId === row.sId) : -1;
+ if(iFilterIndex > -1) {
+ allData[iFilterIndex] = {...item, iOrder: iIndex + 1}
+ }
+ });
+ }
+
+ /* 找到所属控制表的iOrder * 10000 */
+ allData.forEach((item, iIndex) => {
+ const iControlIndex = commonUtils.isNotEmptyArr(controlData) ? controlData.findIndex(row => item.sControlId === row.sId) : -1;
+ if(iControlIndex > -1) {
+ const iControlOrder = controlData[iControlIndex].iOrder * 10000;
+ allData[iIndex].iControlOrder = iControlOrder;
+ allData[iIndex].iOrder = iControlOrder + item.iOrder;
+ }
+ });
+
+ allData = allData.sort((a, b) => a.iOrder - b.iOrder);
+ allData.forEach((item, iIndex) => {
+ allData[iIndex] = {...item, iOrder: iIndex + 1, handleType : commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType};
+ });
+ this.props.onSaveState({ processData: allData });
+ }
+
+ } else if(true) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType !== '3' && item.sType !== '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ } else {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+ let inDataIndex = 0;
+ let inData = data.filter(item => item.sType === '1' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ inDataIndex = inDataIndex + 1;
+ return {...item, iOrder: inDataIndex}
+ });
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType === '2' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(inData, afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ }
+ }
+ }
+
+ handleProductDrag = (data) => {
+ if(this.props.enabled) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let dataIndex = 0;
+ const allData = data.filter(item => item.sType === '3' && item.sCombinePartsName === this.props.slaveSelectedRowKeys[0]).map((item) => {
+ dataIndex = dataIndex + 1;
+ return {...item, iOrder: dataIndex, handleType: item.handleType ? item.handleType : 'update'};
+ });
+ processData = processData.filter(item => item.sCombinePartsName !== this.props.slaveSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData });
+ }
+ }
+
+ /* 拖拽表格树形节点 */
+ handleMoveRow = (dragIndex, hoverIndex,dragKey,hoverKey) => {
+ const { controlData: data} = this.props;
+ if(commonUtils.isNotEmptyArr(data) && this.props.enabled) {
+ // const dragRow = data[dragIndex];
+ const dragObject = commonUtils.isNotEmptyArr(data.filter(ele => ele.sId === dragKey)) ? data.filter(ele => ele.sId === dragKey)[0] : {};
+ const hoverObject = commonUtils.isNotEmptyArr(data.filter(ele => ele.sId === hoverKey)) ? data.filter(ele => ele.sId === hoverKey)[0] : {};
+ if (dragObject.sControlParentId === hoverObject.sControlParentId) { // 同级菜单的移动
+ let newData = data.filter(ele => ele.sId !== dragKey);
+ let insertIndex = 0
+ if (commonUtils.isNotEmptyArr(newData)) {
+ newData.forEach((ele, index) => {
+ if (ele.sId === hoverKey) {
+ if (dragIndex > hoverIndex) { // 上移:dragKey表示的元素 放到 hoverKey表示的元素之前
+ insertIndex = index;
+ } else { // 下移 dragKey表示的元素 放到 hoverKey表示的元素之后
+ insertIndex = index + 1;
+ }
+
+ }
+ });
+ newData.splice(insertIndex, 0, dragObject);
+ if(commonUtils.isNotEmptyObject(dragObject)) {
+ dragObject.handleType=dragObject.handleType ? dragObject.handleType : 'update';
+ }
+ this.props.onSaveState({ controlData: newData })
+ }
+ } else {
+ let newData = data.filter(ele => ele.sId !== dragKey)
+ let insertIndex = 0;
+ if (commonUtils.isNotEmptyArr(newData)) {
+ newData.forEach((ele, index) => {
+ if (ele.sId === hoverKey) {
+ if (dragIndex > hoverIndex) { // 上移:dragKey表示的元素 放到 hoverKey表示的元素之前
+ insertIndex = index;
+ } else { // 下移 dragKey表示的元素 放到 hoverKey表示的元素之后
+ insertIndex = index + 1;
+ }
+
+ }
+ });
+ dragObject.sControlParentId = hoverObject.sControlParentId;
+ if(commonUtils.isNotEmptyObject(dragObject)) {
+ dragObject.handleType = dragObject.handleType ? dragObject.handleType : 'update';
+ }
+ newData.splice(insertIndex, 0, dragObject);
+ this.props.onSaveState({ controlData: newData })
+ }
+ }
+ } else {
+ message.error('请在可编辑状态下进行移动!');
+ }
+ }
+
+ handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ let sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) {
+ sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`;
+ }
+ }
+ processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr };
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+ render() {
+ const { pageLoading, masterData, fastOrderModalVisible } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+
+
+ );
+ }
+}
+
+const ProcessCardComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, masterConfig: masterConfigOld, slaveData, slavePagination, sModelsId, sTabId, app, colorConfigGrdVisible, dailyConfigGrdVisible, sisColorChooseVisible,productCombinationVisible,
+ combinePartsChooseVisible, finishedMaterialsColumn, finishedMaterialsConfig, finishedProcessColumn, finishedProcessConfig, isLayout, isLayout2, sModelsType, processConfig, sTableType,
+ formData,
+ materialsInfoList,
+ materialsChildInfoList,
+ } = props;
+
+ // 关联slave合版进行筛选control的数据
+ let controlTableData = [];
+ if(commonBusiness.getTableTypes('control', props).data && commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.slaveData)) {
+ const iSlaveIndex = props.slaveData.findIndex(item => item.sId === props.slaveSelectedRowKeys[0]);
+ const slaveSelectedRow = props.slaveData[iSlaveIndex] || {sProductNo: 0};
+ if(iSlaveIndex !== -1) {
+ commonBusiness.getTableTypes('control', props).data.forEach(item => {
+ if(item.sCombinedMemo && item.sCombinedMemo !== '' && item.sCombinedMemo !== '合版信息') {
+ const sCombinedMemoArr = commonUtils.isJSON(item.sCombinedMemo) ? JSON.parse(item.sCombinedMemo) : [];
+ const getSlaveSelectedRowChildren = (allData, sId) => {
+ let result = [];
+ allData.forEach(item => {
+ if (item.sFatherSlaveId === sId) {
+ result.push(item);
+ result = [...result, ...getSlaveSelectedRowChildren(allData, item.sId)]
+ }
+ });
+ return result;
+ };
+ const slaveSelectedRowChildren = getSlaveSelectedRowChildren(props.slaveData, slaveSelectedRow.sId);
+ const slaveRows = [slaveSelectedRow, ...slaveSelectedRowChildren];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo && slaveRows.some(slaveRow => slaveRow.sProductNo === item.sProductNo)).length;
+ if(len) {
+ controlTableData.push(item);
+ }
+ } else {
+ controlTableData.push(item);
+ }
+ })
+ } else {
+ controlTableData = commonBusiness.getTableTypes('control', props).data.slice(0);
+ }
+ }
+ // 之前代码默认会选中第一行,第一行可能已经被筛选掉,需要判断
+ if(controlTableData.length && props.controlSelectedRowKeys[0] !== controlTableData[0].sId && controlTableData.map(item => item.sId).indexOf(props.controlSelectedRowKeys[0]) === -1) {
+ if(commonUtils.isNotEmptyArr(props.slaveSelectedRowKeys)) {
+ props.onSaveState({
+ controlSelectedRowKeys: [controlTableData[0].sId]
+ });
+ }
+ }
+
+ const layoutChange = isLayout && isLayout2;
+ // 计算控制表记录数量,计算sticky高度
+ const controlLen = props.controlData ? props.controlData.length : 0;
+ const slaveLen = props.slaveData ? props.slaveData.length : 0;
+ let stickyHeight = 0;
+ let stickyTabHeight = 0;
+ if(layoutChange) {
+ if (controlLen && controlLen < 5) {
+ stickyTabHeight += (slaveLen * 29) + 40;
+ stickyHeight += (controlLen * 29) + 40 + 30 - 4;
+ } else {
+ stickyHeight += 162;
+ }
+ stickyHeight += 40;
+ } else {
+ if(props.currentTab === 1) {
+ if (controlLen && controlLen < 5) {
+ stickyHeight = (controlLen * 29) + 40 + 30 - 4; // 153
+ } else {
+ stickyHeight = 162 + 30;
+ }
+ } else {
+ if (slaveLen && slaveLen < 5) {
+ stickyHeight = (slaveLen * 29) + 40 + 30 - 4;
+ stickyTabHeight = (slaveLen * 29) + 40;
+ } else {
+ stickyHeight = 162 + 30;
+ stickyTabHeight = 162;
+ }
+ }
+ }
+
+ /* 回带表单 */
+ onReturnForm(form);
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ addProps.masterConfig = masterConfig;
+ }
+
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ const pagination = {
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const width = '16px';
+ const height = '16px';
+ const setAdd = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setAddChild = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setCopy = {
+ title: '复制',
+ img: ,
+ disableimg: ,
+ };
+ const setCopyAll = {
+ title: '复制部件',
+ img: ,
+ disableimg: ,
+ };
+ const setDelete = {
+ title: '删除',
+ img: ,
+ disableimg: ,
+ };
+ const setProcess = {
+ title: '工序',
+ img: ,
+ disableimg: ,
+ };
+ const setMaterial = {
+ title: '材料',
+ img: ,
+ disableimg: ,
+ };
+ const processUp = {
+ title: '上移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processDown = {
+ title: '下移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processTop = {
+ title: '置顶',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processBottom = {
+ title: '置底',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+
+ let bSplitMaterials = true; /* 默认拆分材料*/
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitMaterials');
+ if (iIndex > -1) {
+ bSplitMaterials = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+ let bSplitProcess = true; /* 默认拆分工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitProcess');
+ if (iIndex > -1) {
+ bSplitProcess = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+
+ let chooseProcessConfigRow;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfigRow;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+
+ /* 获取toolbar 选择成品工序 */
+ let bShowProductProcess = false;
+ let chooseProductProcessConfigRow = {};
+ let onChooseProductProcessIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (onChooseProductProcessIndex > -1) {
+ chooseProductProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductProcessIndex];/* 配置了成品工序按钮 */
+ bShowProductProcess = true;/* 配置了成品工序按钮 */
+ }
+ }
+
+ /* 获取toolbar 选择成品材料 */
+ let bShowProductMaterials = false;
+ let chooseProductMaterialsConfigRow = {};
+ let onChooseProductMaterialsIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductMaterialsIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (onChooseProductMaterialsIndex > -1) {
+ chooseProductMaterialsConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductMaterialsIndex];/* 配置了成品工序按钮 */
+ bShowProductMaterials = true;/* 配置了成品材料按钮 */
+ }
+ }
+
+ /* 做树形 */
+ let slaveTreeData = [];
+ const bTree = sTableType === 'single' && commonUtils.isNotEmptyArr(slaveData) && slaveData.findIndex(item => commonUtils.isNotEmptyObject(item.sFatherSlaveId)); /* 树形展示 */
+ if (bTree) {
+ slaveTreeData = commonUtils.genTreeByArr(slaveData, 'sId', 'sFatherSlaveId');
+ } else {
+ slaveTreeData = slaveData;
+ }
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ onKeyDown: props.onKeyDown,
+ data: slaveTreeData,
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%', bShowTreeAddChild: true,
+ },
+ onExpand: props.onExpandTreeSingle,
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ };
+
+ /* 表格是否可以拖拽层级 */
+ let bDragConfig = false;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.controlConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bTableDrag');
+ if (iIndex > -1) {
+ bDragConfig = props.controlConfig.gdsconfigformslave[iIndex].bVisible;/* 配置了成品工序按钮 */
+ }
+ }
+
+ let bShowMaterials = true;
+ const iMaterialsIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials') : -1;
+ bShowMaterials = iMaterialsIndex > -1;
+
+ let bShowProcess = true;
+ const iProcessIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess') : -1;
+ bShowProcess = iProcessIndex > -1;
+
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ data: commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId'),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ // rowSelection: null,
+ // setAdd,
+ // setCopyAll,
+ // setDelete,
+ setCopy,
+ setProcess: bShowProcess,
+ setMaterial : bShowMaterials,
+ bShowTreeAdd: true,
+ bShowTreeAddChild: true,
+ bShowTreeDel: true,
+ bShowTreeCopyAll: true,
+ setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ // bShowProductProcess, /* 是否显示成品工序 */
+ // bShowProductMaterials, /* 是否显示成品工序 */
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ // chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ AutoTableHeight: 232,
+ // onRow: (record) => {
+ // return {
+ // onClick: () => { props.onRowClick('control', record); },
+ // onDoubleClick: () => { props.onDoubleClick('control', record); },
+ // onMouseEnter: () => { props.onRowMouseEnter('control', record); },
+ // };
+ // },
+ },
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ onMoveRow: props.onMoveRow,
+ isDragAndDrop: bDragConfig, /* 拖动层级 */
+ bRowClickRepeat: true
+ };
+ const name = 'controlTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+
+
+ /* 整体树结构 */
+ const totalname = 'totalTree';
+ const totalTreeProps = {
+ ...commonBusiness.getTreeTypes('totalTree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${totalname}Column`]: props[`${totalname}Column`],
+ [`${totalname}Config`]: props[`${totalname}Config`],
+ [`${totalname}Data`]: props[`${totalname}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTotalTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+
+ const dataFilter = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys } = props;
+ const oriData = data.data || [];
+ if (data.data) {
+ let res = [];
+ switch (type) {
+ case 'materials':
+ if (bSplitMaterials && finishedMaterialsColumn) {
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '2';
+ });
+ }
+ } else { /* 部件材料 */
+ res = oriData.filter((val) => {
+ return val.sType !== '2';
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case 'process':
+ if (true) {
+ if (bFinal) { /* 成品工序 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '3';
+ });
+ }
+ } else { /* 部件工序 */
+ if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType !== '3';
+ });
+ }
+ if(isQianCai) {
+ const pre = res.filter(item => item.sType == '0').sort((a, b) => a.iOrder - b.iOrder);
+ const after = res.filter(item => (item.sType == '1' || item.sType == '2')).sort((a, b) => a.iOrder - b.iOrder);
+ res = pre.concat(after);
+ }
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return oriData || [];
+ }
+ };
+
+ /* 根据业务过滤全部材料,油墨 电化铝数据 去重根据sMateriaslId+ sMaterialsStyle */
+ const materialsFilter = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys, materials0Data, materials1Data, materials1ChildData, materials2Data, materials2ChildData, materialsOtherData } = props;
+ if (true) {
+ let oriData = commonUtils.isNotEmptyArr(data.data) ? data.data : [];
+ let res = [];
+ switch (type) {
+ case 'materials2': /* 电化铝 */
+ if (commonUtils.isNotEmptyArr(materials2ChildData)) {
+ const newData = [];
+ materials2ChildData.forEach((val) => {
+ const iIndex = newData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle);
+ if(iIndex === -1){
+ newData.push(val);
+ }
+
+ });
+ res = newData;
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '2';
+ });
+ }
+ } else { /* 部件材料 */
+ res = newData.filter((val) => {
+ return val.sType !== '2';
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case 'materials0': /* 全部材料 */
+ if (true) {
+ let newData0 = commonUtils.isNotEmptyArr(materials1Data) ? materials1Data : []; /* 专色墨 */
+ let newData1 = commonUtils.isNotEmptyArr(materials1ChildData) ? materials1ChildData : []; /* 油墨 */
+ let newDataChild = commonUtils.isNotEmptyArr(materials2ChildData) ? materials2ChildData : []; /* 电化铝明细 */
+
+ const newDhlData = []; /* 电化铝汇总 */
+ newDataChild.forEach((val) => {
+ const iIndex = newDhlData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle);
+ if(iIndex === -1){
+ newDhlData.push(val);
+ }
+
+ });
+
+ let newOtherData = commonUtils.isNotEmptyArr(materialsOtherData) ? materialsOtherData : []; /* 其他子集 */
+
+ /* 如果其他子级是空的 取不是油墨。电化铝、专色墨部分 */
+ if(commonUtils.isNotEmptyArr(newOtherData) && commonUtils.isNotEmptyArr(materials0Data)) {
+ newOtherData = materials0Data.filter(item => item.sZmldlName !== '油墨' &&
+ item.sZmldlName !== '自调专色墨' && item.sZmldlName !== '电化铝' );
+ }
+
+ const newDataTemp = (newData0.concat(newData1)).concat(newDhlData);
+ let allData = newDataTemp.concat(newOtherData);
+
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = allData.filter((val) => {
+ return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = allData.filter((val) => {
+ return val.sType === '3';
+ });
+ }
+ } else { /* 部件材料 */
+ // if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ // res = oriData.filter((val) => {
+ // return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ // });
+ // } else {
+ // res = allData.filter((val) => {
+ // return val.sType !== '3';
+ // });
+ // }
+ res = allData;
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return [];
+ }
+ };
+
+ const materialsFilterNew = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { materials0Data, processSelectedRowKeys, processData, controlSelectedRowKeys, controlData } = props;
+ let oriData = materials0Data; // commonUtils.isNotEmptyArr(data.data) ? data.data : [];
+ let res = [];
+ let newData = [];
+ let processRow = {};
+ let controlRow = {};
+
+ if(commonUtils.isNotEmptyArr(controlData) && commonUtils.isNotEmptyArr(controlSelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ controlRow = controlData[iIndex];
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyArr(processSelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = processData.findIndex(item => processSelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ processRow = processData[iIndex];
+ }
+ }
+ if (type === 'materials0') {
+ /* 根据工序表选中行的部件id +工序id 过滤全部材料数据 */
+ if(commonUtils.isNotEmptyObject(processRow)){
+ const filterData = oriData.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId
+ && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData.filter(item => (commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) ||
+ (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId))
+ );
+ }
+ res = newData;
+ } else if(commonUtils.isNotEmptyObject(controlRow)){
+ const filterData = oriData.filter(item => item.sControlId === controlRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData.filter(item => (commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) ||
+ (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId))
+ );
+ }
+ res = newData;
+ } else {
+ res = commonUtils.isEmptyArr(oriData) ? oriData : oriData.filter(item => commonUtils.isEmptyObject(item.sParentMaterialsId));
+ res = commonUtils.isEmptyArr(oriData) ? oriData : res.filter(item => (commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId) && commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)) ||
+ (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId))
+ );
+ }
+
+ } else if (type === 'materials1' || type === 'materials2' || type === 'materials3') {
+ /* 过滤后的 materials0Data */
+ let materials0FilterData = [];
+ if(commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ }else if(commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else {
+ materials0FilterData = materials0Data;
+ }
+ if (commonUtils.isNotEmptyArr(materials0FilterData)) {
+ const config = data.config;
+ const sSqlCondition = config ? config.sSqlCondition : 'materials0.sBclassifyName.油墨';
+ if (sSqlCondition) {
+ let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */
+ if(commonUtils.isEmptyObject(targetTbName)) {
+ targetTbName = 'materials0';
+ }
+ let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ /* 双重条件 */
+ if(commonUtils.isEmptyObject(targetTbName)){
+ if(type === 'materials1') { /* materials0.sBclassifyName.油墨 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '油墨';
+ } else if(type ==='materials2') { /* materials0.sBclassifyName.电化铝 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '电化铝';
+ }
+ }
+ if (targetTbName === 'materials0') {
+ let filterData = [];
+ if(type === 'materials1') { /* 油墨 */
+ filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) &&
+ (
+ (commonUtils.isNotEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isNotEmptyObject(item.sInkBOMId) && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId)) ||
+ (commonUtils.isEmptyObject(item.sInkBOMsMaterialsId) && commonUtils.isEmptyObject(item.sInkBOMId) && commonUtils.isEmptyObject(item.sInkBOMsSlaveId))
+ ));
+ }else if(type === 'materials2') { /* 电化铝 */
+ filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ } else if(type === 'materials3') { /* 包材 */
+ filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ }
+ newData = filterData;
+ }
+ }
+
+ }
+ res = newData;
+ } else if( type === 'materials1Child') { /* 过滤油墨子集 */
+ /* 过滤后的 materials0Data */
+ let materials0FilterData = [];
+ if(commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId );
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ }else if(commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId);
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else {
+ materials0FilterData = materials0Data;
+ }
+ if (commonUtils.isNotEmptyArr(materials0FilterData)) {
+ const config = data.config;
+ const sSqlCondition = config && commonUtils.isNotEmptyObject(config.sSqlCondition) ? config.sSqlCondition : 'materials0.sBclassifyName.油墨';
+ if (sSqlCondition) {
+ let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */
+ if(commonUtils.isEmptyObject(targetTbName)) {
+ targetTbName = 'materials0';
+ }
+ let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ if(commonUtils.isEmptyObject(targetTbName)){
+ if(type === 'materials1') { /* materials0.sBclassifyName.油墨 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '油墨';
+ } else if(type ==='materials2') { /* materials0.sBclassifyName.电化铝 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '电化铝';
+ }
+ }
+ if (targetTbName === 'materials0') {
+ const filterData = materials0FilterData.filter(item => sParentKey && sParentKey.includes(item[filteredValue]) && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData;
+ }
+ }
+ }
+
+ }
+
+ if( type ==='materials1Child') { /* 油墨过滤子集 相同sInkBOMId, sInkBOMsSlaveId, 有sInkBOMsMaterialsId是父集 */
+ const { materials0Data, materials1SelectedRowKeys } = props;
+ let materials1Row ={}; /* 油墨子级 */
+ if(commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyArr(materials1SelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = materials0Data.findIndex(item => materials1SelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ materials1Row = materials0Data[iIndex];
+ }
+ }
+
+ res = newData.filter(item => item.sInkFatherMaterialsTbId === materials1Row.sId);
+
+ // res = newData.filter(item => commonUtils.isNotEmptyObject(item.sInkBOMId) && item.sInkBOMId === materials1Row.sInkBOMId
+ // && commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId) && item.sInkBOMsSlaveId === materials1Row.sInkBOMsSlaveId &&
+ // commonUtils.isEmptyObject(item.sInkBOMsMaterialsId));
+ }
+
+
+ } else if(type ==='materials0Child') { /* 全部材料 过滤替代料 */
+ const { materials0Data, materials0SelectedRowKeys } = props;
+ let materials0Row ={}; /* 油墨子级 */
+ if(commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyArr(materials0SelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = materials0Data.findIndex(item => materials0SelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ materials0Row = materials0Data[iIndex];
+ }
+ }
+ if(commonUtils.isNotEmptyObject(materials0Row)) { /* 根据工序过滤所有替代料 */
+ if(commonUtils.isNotEmptyObject(materials0Row.sAluminumBomId)) { /* 电化铝替代料过滤 */
+ res = oriData.filter(item => item.sParentMaterialsId === materials0Row.sId ||
+ ( commonUtils.isNotEmptyObject(item.sParentMaterialsId) &&
+ commonUtils.isNotEmptyObject(item.sMaterialsNo) &&
+ item.sMaterialsNo1 === materials0Row.sMaterialsNo) );
+
+ } else {
+ res = oriData.filter(item => item.sParentMaterialsId === materials0Row.sId);
+ }
+ } else if(commonUtils.isNotEmptyObject(processRow)) { /* 根据工序过滤所有替代料 */
+ res = oriData.filter(item => item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId && commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ } else if(commonUtils.isNotEmptyObject(controlRow)){
+ res = oriData.filter(item => item.sControlId=== controlRow.sId && commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ }
+
+ } else {
+ res = oriData;
+ }
+ return res;
+ }
+
+
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: layoutChange ? { offsetHeader: stickyHeight } : true,
+ },
+ };
+
+ /* 选择成品材料 */
+ const finishedMaterialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ configName: 'finishedMaterials',
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials', true),
+ headerColumn: finishedMaterialsColumn,
+ config: finishedMaterialsConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ bShowProductMaterials,
+ chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ sticky: layoutChange ? { offsetHeader: stickyHeight } : true,
+ },
+ };
+
+
+ const materialsTablePropsList = {};
+ if (commonUtils.isNotEmptyArr(materialsInfoList)) {
+ materialsInfoList.forEach((item, index) => {
+ // const slaveTablePagination = {
+ // pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ // ...slavePagination,
+ // size: isSmall ? 'small' : 'large',
+ // pageSizeOptions: commonConfig.pageSizeOptions,
+ // showSizeChanger: !isSmall,
+ // showQuickJumper: !isSmall,
+ // hideOnSinglePage: true,
+ // };
+ materialsTablePropsList[`materialsTable${index}Props`] = {
+ ...commonBusiness.getTableTypes(`materials${index}`, props),
+ onKeyDown: props.onKeyDown,
+ // data: materialsFilter(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false),
+ data: materialsFilterNew(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false),
+ // tableBelone: 'list',
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ },
+ };
+ });
+ }
+
+
+ const materialsChildTablePropsList = {};
+ if (commonUtils.isNotEmptyArr(materialsChildInfoList)) {
+ materialsChildInfoList.forEach((item, index) => {
+ materialsChildTablePropsList[`${item}TableProps`] = {
+ ...commonBusiness.getTableTypes(`${item}`, props),
+ data: materialsFilterNew(commonBusiness.getTableTypes(item, props), item, false),
+ // tableBelone: 'list',
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ },
+ onDrag: props.onDrag,
+ };
+ });
+ }
+
+ /* 是否有拖动功能 是通过配置有没有handleSort功能 */
+ const bProcessSort = commonUtils.isNotEmptyObject(processConfig) && commonUtils.isNotEmptyArr(processConfig.gdsconfigformslave) && commonUtils.isNotEmptyArr(processConfig.gdsconfigformslave.filter(item => item.sControlName === 'handleSort' && item.bVisible)) ? true : false ;
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: layoutChange ? { offsetHeader: stickyHeight } : true,
+ },
+ onDrag: props.onDrag,
+ isDragAndDrop: false,
+ };
+
+ let processShowLeft = {};
+ let processShowTitle = '';
+ let processTitleWidth = "";
+ if (commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft');
+ if (iIndex > -1) {
+ processShowLeft = props.processConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */
+ if(commonUtils.isNotEmptyObject(processShowLeft)) {
+
+ if(processShowLeft.bVisible) {
+ processShowTitle = processShowLeft.sChinese;
+ }
+
+ }
+ }
+
+ const iIndex1 = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'titleWidth');
+ if (iIndex1 > -1) {
+ const processTitleWidthConfig = props.processConfig.gdsconfigformslave[iIndex1];
+ processTitleWidth = processTitleWidthConfig.sDefault;
+ }
+ }
+
+ // const bShowProcessLeft = commonUtils.isNotEmptyObject(props) && props.good
+
+
+
+ /* 选择成品材料 */
+ const finishedProcessPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ configName: 'finishedProcess',
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process', true),
+ headerColumn: finishedProcessColumn,
+ config: finishedProcessConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ onDrag: props.onProductDrag,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ bShowProductProcess,
+ chooseProductProcessConfigRow, /* 成品工序按钮配置s */
+ sticky: layoutChange ? { offsetHeader: stickyHeight } : true,
+ },
+ };
+
+ let finalProcessShowLeft = {};
+ if (commonUtils.isNotEmptyObject(finishedProcessConfig)) {
+ const iIndex = finishedProcessConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft');
+ if (iIndex > -1) {
+ finalProcessShowLeft = finishedProcessConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */
+ }
+ }
+
+
+ let colorTableProps = {};
+ // let cProps = {};
+ if (colorConfigGrdVisible) {
+ colorTableProps = {
+ ...commonBusiness.getTableTypes('color', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // cProps = { ...commonBusiness.createMemoProps('color', props) };
+ }
+
+
+ let dailyRecordTableProps = {};
+ if (dailyConfigGrdVisible) {
+ dailyRecordTableProps = {
+ ...commonBusiness.getTableTypes('daily', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ }
+ let searchProcessType = {};
+ let chooseProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.processChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (iIndex > -1) {
+ chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+
+ searchProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: props.processChooseData.sMenuName,
+ route: props.processChooseData.sName,
+ formId: props.processChooseData.sId,
+ key: sModelsId + props.processChooseData.sId,
+ sModelsType: props.processChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ processData : props.processData,
+ controlSelectedRowKeys: props.controlSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品工序 */
+ let chooseProdutProcessType = {};
+ let chooseProdutProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productProcessChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (iIndex > -1) {
+ chooseProdutProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */
+ });
+ }
+ /* 选择成品工序 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+
+ chooseProdutProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'chooseProductProcess',
+ config: chooseProdutProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProdutProcessConfig),
+ title: props.productProcessChooseData.sMenuName,
+ route: props.productProcessChooseData.sName,
+ formId: props.productProcessChooseData.sId,
+ key: sModelsId + props.productProcessChooseData.sId,
+ sModelsType: 'search/finalProcess',
+ select: props.onSelectFinalProcess, /* 选择成品工序 */
+ selectCancel: props.onCancelModal.bind(this, 'productProcessChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品材料 */
+ let chooseProductMaterialsType = {};
+ let chooseProductMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productMaterialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (iIndex > -1) {
+ chooseProductMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表s */
+ });
+ }
+ /* 选择成品材料 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+ chooseProductMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productMaterials',
+ config: chooseProductMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseProductMaterialsConfig),
+ title: props.productMaterialsChooseData.sMenuName,
+ route: props.productMaterialsChooseData.sName,
+ formId: props.productMaterialsChooseData.sId,
+ key: sModelsId + props.productMaterialsChooseData.sId,
+ sModelsType: 'search/finalMaterials',
+ select: props.onSelectProductMaterial,
+ selectCancel: props.onCancelModal.bind(this, 'productMaterialsChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ const packTableProps = {
+ ...commonBusiness.getTableTypes('pack', props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy, setDelete, CalLastWidth: '1150', AutoTableHeight: '300px',
+ },
+ bRowClick: true,
+ };
+ let combinePartsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.packConfig)) {
+ combinePartsConfig = JSON.parse(JSON.stringify(props.packConfig));
+ const gdsconfigformslaveFilter = combinePartsConfig.gdsconfigformslave.filter(item => (item.sName === 'sId'
+ || item.sName === 'sCustomerName'
+ || item.sName === 'sProductName'
+ || item.sName === 'sCombinePartsName'));
+ combinePartsConfig.gdsconfigformslave = gdsconfigformslaveFilter;
+ combinePartsConfig.bMutiSelect = false;
+ }
+ let combinePartsColumn = [];
+ if (commonUtils.isNotEmptyObject(props.packColumn)) {
+ combinePartsColumn = JSON.parse(JSON.stringify(props.packColumn));
+ const packColumnFilter = props.packColumn.filter(item => (item.dataIndex === 'sId'
+ || item.dataIndex === 'sCustomerName'
+ || item.dataIndex === 'sProductName'
+ || item.dataIndex === 'sCombinePartsName'));
+ combinePartsColumn = packColumnFilter;
+ }
+ const combinePartsTableProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'combineParts',
+ config: combinePartsConfig,
+ select: props.onSelectCombinePartsChoose,
+ selectCancel: props.onCancelModal.bind(this, 'combinePartsChooseVisible'),
+ },
+ },
+ formRoute: '/indexPage/commonList',
+ slaveConfig: combinePartsConfig,
+ slaveColumn: combinePartsColumn,
+ slaveData: props.combinePartsData,
+ slaveSelectedRowKeys: props.combinePartsSelectedRowKeys,
+ selectedRowKeys: props.combinePartsSelectedRowKeys,
+ pageLoading: false,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: props.realizeHeight, /* 拖动偏移高度 */
+ };
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 工序表选择颜色 */
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors');
+ if (iIndex > -1) {
+ chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'sisColor',
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: '选择颜色',
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: 'search/sisColor',
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ bEdit: props.enabled,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {},
+ };
+ }
+
+ /* 新方式的工艺参数 */
+ const sParamProps = {
+ ...commonBusiness.getTableTypes('sParam', props),
+ tableProps: {
+ rowKey: 'sId',
+ // pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ },
+ bRowClick: true,
+ };
+
+ /* 带拖动信息的工艺参数 */
+ // const sCommonParamProps = {
+ // ...props,
+ // sParamType :'sWorkOrder', /* 参数类型 */
+ // slaveData: props.processSelectedData,
+ // };
+
+
+ const tabChange = (e) => {
+ props.onTabChange(e);
+ };
+
+ const tabChange2 = (e) => {
+ props.onTabChange2(e);
+ };
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const productInfo = commonFunc.showMessage(app.commonConst, 'productInfo');/* 产品信息 */
+ const materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */
+ const productMaterialsInfo = commonFunc.showMessage(app.commonConst, 'productMaterialsInfo');/* 成品材料 */
+ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */
+ const productProcessInfo = commonFunc.showMessage(app.commonConst, 'productProcessInfo');/* 成品工序 */
+ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */
+ const dailyInfo = commonFunc.showMessage(app.commonConst, 'dailyInfo');/* 日志信息 */
+ const setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ const setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */
+ const setProductCombinationTitle = commonFunc.showMessage(app.commonConst, 'setProductCombination');/* 选择合拼产品标题 */
+ const setProductProcessTitle = commonFunc.showMessage(app.commonConst, 'setProductProcess');/* 选择成品工序标题 */
+ const setProductMaterialsTitle = commonFunc.showMessage(app.commonConst, 'setProductMaterials');/* 选择成品材料标题 */
+
+ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 */
+ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */
+ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */
+ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */
+ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */
+ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底 */
+ let sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ if(commonUtils.isNotEmptyObject(props) && props.sParamModalType) {
+ if(props.sParamModalType === 'sQuo') {
+ console.log('选择工艺参数标题', props.sParamModalType)
+ sProcessParams = commonFunc.showMessage(app.commonConst, 'sQuoParams');/* 选择报价参数标题 */
+ if(commonUtils.isEmpty(sProcessParams)) {
+ sProcessParams = '报价参数标准';
+ }
+ }
+ }
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAdd = {props.enabled ? setAdd.img : setAdd.disableimg} ;
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAddChild = {props.enabled ? setAddChild.img : setAddChild.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateCopy = {props.enabled ? setCopy.img : setCopy.disableimg};
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateUpdate = {props.enabled ? setCopyAll.img : setCopyAll.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateDel = {props.enabled ? setDelete.img : setDelete.disableimg};
+
+ let bControlShow = true; /* 控制表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexControl = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbControl');
+ if (iIndexControl > -1) {
+ bControlShow = props.masterConfig.gdsconfigformslave[iIndexControl].bVisible;
+ }
+ }
+ let bMaterialShow = true; /* 材料表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexMaterial = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbMaterial');
+ if (iIndexMaterial > -1) {
+ bMaterialShow = props.masterConfig.gdsconfigformslave[iIndexMaterial].bVisible;
+ }
+ }
+ let bProcessShow = true; /* 工序表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexProcess = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbProcess');
+ if (iIndexProcess > -1) {
+ bProcessShow = props.masterConfig.gdsconfigformslave[iIndexProcess].bVisible;
+ }
+ }
+
+ const bFinalMaterialsTabShow = commonUtils.isEmptyObject(finishedMaterialsConfig) ? false :(bSplitMaterials ? true : false); /* 没有成品材料配置 则材料Tab不展示 */
+ const bFinalProcessTabShow = commonUtils.isEmptyObject(finishedProcessConfig) ? false : (bSplitProcess ? true : false); /* 没有成品工序配置 则工序Tab不展示 */
+
+ const panelExtra1 = (type) => {
+ let str = ''
+ if (type === 'material') {
+ str = (
+
+ tabChange(e.target.value)}>
+ {materialsInfo}
+ {bSplitMaterials ? {productMaterialsInfo} : ''}
+
+
+ )
+ } else if (type === 'process') {
+ str = (
+
+ tabChange2(e.target.value)}>
+ {processInfo}
+ {bSplitProcess ? {productProcessInfo} : ''}
+
+
+ )
+ } else if (type === 'daily') {
+ str = (
+
+ {dailyInfo}
+
+ )
+ }
+ return str;
+ }
+
+
+ const panelExtra = (type) => {
+ let str = '';
+ /* 根据materials找到其组所有配置头 */
+
+ let radioConfigArr = [];
+ if(commonUtils.isNotEmptyArr(formData)) {
+ // radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) );
+ radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) && item.bGrdVisible );
+ // console.log('radioConfigArr:', radioConfigArr);
+ }
+ if (type === 'material') {
+ str = (
+
+ tabChange(e.target.value)}>
+ {/*{materialsInfo}*/}
+ {/*{bSplitMaterials ? {productMaterialsInfo} : ''}*/}
+ {/*{dhlInfo}*/}
+ {/*{materialsFlInfo}*/}
+ {
+ radioConfigArr.map((child, index) => {
+ const radioTitle = child.showName;
+ const radioValue = index + 2 + 10;
+ // console.log('radioValue', radioTitle, radioValue);
+ return(
+ {radioTitle}
+ )
+ })
+ }
+
+
+ )
+ } else if (type === 'process') {
+ str = (
+
+ tabChange2(e.target.value)}>
+ {processInfo}
+ {bSplitProcess ? {productProcessInfo} : ''}
+
+
+ )
+ }else if (type === 'daily') {
+ str = (
+
+ tabChange2(e.target.value)}>
+ {dailyInfo}
+
+
+ )
+ }
+ return str;
+ }
+
+ const activeKeyChange = (e) => {
+ props.onActiveKey(e);
+ };
+ const okButtonStyle ={
+ style:{
+ display:"none",
+ backgroundColor:"red"
+ }
+ }
+ const cancelButtonStyle = {
+ htmlType:"退出",
+ style: {
+ width: 70,
+ height: 50,
+ }
+ }
+ const autoHeight = `calc( 100vh - 92px )`;
+
+ const renderByLayout = () => {
+ let res = '';
+ if (isLayout) {
+ res = (
+
+
+
+
+ {bFinalMaterialsTabShow ? :''}
+ {bFinalProcessTabShow? :''}
+
+ {props.currentTab === 4 && bMaterialShow ?
+ : ''
+ }
+ {finishedMaterialsColumn && props.currentTab === 2 ?
+ : ''
+ }
+ {props.currentTab === 5 && bProcessShow ?
+ : ''
+ }
+ {finishedProcessColumn && props.currentTab === 3?
+ : ''
+ }
+ {dailyConfigGrdVisible ?
+
+
+ {dailyInfo}
+
+
+
+
+ : ''
+ }
+
+ );
+ } else if (isLayout2) {
+ res = (
+
+ )}
+ showArrow={false}
+ extra={materialsInfo}
+ key="1"
+ >
+
+
+ {
+ bSplitMaterials ?
+ )}
+ showArrow={false}
+ extra={productMaterialsInfo}
+ key="3"
+ >
+
+ : ''
+ }
+ )}
+ showArrow={false}
+ extra={processInfo}
+ key="2"
+ >
+
+
+ {
+ bProcessShow ?
+ )}
+ showArrow={false}
+ extra={productProcessInfo}
+ key="4"
+ >
+
+ : ''
+ }
+ )}
+ showArrow={false}
+ extra={dailyInfo}
+ key="5"
+ >
+
+
+
+ )
+ } else {
+ res = (
+
+ )}
+ showArrow={false}
+ extra={panelExtra('process')}
+ key="2"
+ >
+ { props.currentTab2 === 1 && commonUtils.isNotEmptyObject(processShowLeft) ?
+
+
+
+
+
+
+ {commonUtils.isNotEmptyObject(processShowTitle) ? {processShowTitle} : '' }
+ {
+ [''].map(() => {
+ const commonViewDragableProps = {
+ ...props,
+ hideTabsNav: true,
+ processTitleWidth,
+ comparedTableId: props.processTableId,
+ sParamData: [
+ {
+ sParamType: 'sWorkOrder',
+ sParamName: '工单参数',
+ }
+ ],
+ tableName: 'process',
+ }
+ return ;
+ })
+ }
+ {/* */}
+
+
+
:
+ }
+ { props.currentTab2 === 3 && bSplitProcess && }
+
+
+ )}
+ showArrow={false}
+ extra={panelExtra('material')}
+ key="1"
+ >
+ {/*{ props.currentTab === 11 && }*/}
+
+ { props.materialsInfoList?.map((item, index) => {
+ let num = 12 + index;
+ const materialsOtherPropsType = materialsTablePropsList[`materialsTable${index}Props`];
+ let sWidth = '100%';
+ let sRightWidth = '100%';
+ /* 全部材料 是否可排序 */
+ let bMaterialsSort = false;
+ bMaterialsSort = commonUtils.isNotEmptyObject(materialsOtherPropsType) && commonUtils.isNotEmptyObject(materialsOtherPropsType.config) &&
+ commonUtils.isNotEmptyArr(materialsOtherPropsType.config.gdsconfigformslave) &&
+ commonUtils.isNotEmptyArr(materialsOtherPropsType.config.gdsconfigformslave.filter(item => item.sControlName === 'handleSort' && item.bVisible)) ? true : false ;
+
+ /* 找到子级 左右列 */
+ let materialsChildTableProps ={};
+ let materialsChildTableTitle = '子表记录';
+ if(commonUtils.isNotEmptyArr(materialsChildInfoList)) {
+ const iIndex = materialsChildInfoList.findIndex(child => child.includes(item));
+ if(iIndex > -1) {
+ materialsChildTableProps = materialsChildTablePropsList[`${item}ChildTableProps`];
+ sWidth = '58.5%';
+ sRightWidth = '42%';
+ materialsChildTableTitle = commonUtils.isNotEmptyObject(materialsChildTableProps) && commonUtils.isNotEmptyObject(materialsChildTableProps.config) ? materialsChildTableProps.config.sChinese : '';
+ } else {
+ sWidth = '100%';
+ }
+ }else {
+ sWidth = '100%';
+ }
+
+ if (index === 0 || index === 3) {
+ materialsOtherPropsType.otherlimitDisabled = props.otherlimitDisabled;
+ }
+
+ return (
+ props.currentTab === num &&
+
+
+
+ {index === 0 ? : ""}
+
+ {
+ commonUtils.isNotEmptyObject(materialsChildTableProps)?
+
+
+ {materialsChildTableTitle}
+
+
+
+ : ''
+ }
+
+ )
+ }) }
+
+ {/*{ props.currentTab === 13 &&*/}
+ {/**/}
+ {/*
*/}
+ {/*
*/}
+ {/*
*/}
+ {/*
*/}
+ {/*
}*/}
+ {/*{ props.currentTab === 14 && bSplitMaterials && }*/}
+
+ )}
+ showArrow={false}
+ extra={panelExtra('daily')}
+ key="3"
+ >
+
+
+
+ )
+ }
+ return res;
+ }
+
+ const handlePartsInfoSubmit = () => {
+ props.onCancelModal("partsInfoModalVisible");
+ props.handlePartsInfoConfig(false);
+ props.onSubmit(true);
+ }
+
+ const handleFooter = () => {
+ if (props.enabled || props.masterData?.partsInfoLock) {
+ return [];
+ }
+ return [, ];
+ };
+
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSales(ProcessCardPackTableTree));
diff --git a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js
new file mode 100644
index 0000000..c8f705b
--- /dev/null
+++ b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js
@@ -0,0 +1,4170 @@
+/* eslint-disable */
+import React, { useEffect, useState, useMemo, useRef } from "react";
+import moment from "moment";
+import { Avatar, Collapse, Radio, Row, Col, Divider, message, Modal } from "antd";
+import { RightOutlined } from "@ant-design/icons";
+import { Form } from "@ant-design/compatible";
+import CommonBase from "@/components/Common/CommonBase";
+import CommonSales from "@/components/Common/CommonBillEvent";
+import { CommonPackEvent, CommonModal } from "../CommonPackEvent";
+import * as commonBusiness from "@/components/Common/commonBusiness";
+import * as commonUtils from "@/utils/utils";
+import * as commonFunc from "@/components/Common/commonFunc";
+import commonConfig from "@/utils/config";
+import * as commonServices from "@/services/services";
+import Toolbar from "@/components/Common/ToolBar/ToolBarNew";
+import CommonView from "@/components/Common/CommonView";
+import StaticEditTable from "@/components/Common/CommonTable";
+import CommonViewDragable from "@/components/Common/CommonViewDragable";
+import styles from "./index.less";
+
+const { Panel } = Collapse;
+
+// 数据处理
+const ProcessCardPackTableTreeNewEvent = props => {
+ const { formData, currentId, app, token, masterConfig = {}, slaveConfig } = props;
+ const sId = currentId || "";
+ const returnProps = {};
+
+ // 初始化获取数据
+ useEffect(
+ () => {
+ if (!masterConfig.sId) return;
+
+ const fetchData = async () => {
+ let addState = {};
+ const tableList = [];
+
+ // 控制表配置
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === "mftproductcontrol".toUpperCase())[0];
+ const controlColumn = commonFunc.getHeaderConfig(controlConfig);
+ tableList.push(["control", controlConfig, controlColumn]);
+
+ // 工序表配置
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === "mftproductprocess".toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sMachineId");
+ if (iIndex !== -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ const processColumn = commonFunc.getHeaderConfig(processConfig);
+ tableList.push(["process", processConfig, processColumn]);
+
+ // 材料表配置
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === "mftproductmaterials".toUpperCase())[0];
+ const materialsColumn = commonFunc.getHeaderConfig(materialsConfig);
+ addState = {
+ ...addState,
+ materialsConfig,
+ materialsColumn,
+ };
+
+ const materialsInfoList = [];
+ const materialsChildInfoList = [];
+ const addStateMap = {};
+ const materialsFormData = formData.filter(item => item.sGrd?.includes("materials") && item.bGrdVisible);
+
+ materialsFormData.forEach((item, index) => {
+ const config = item;
+ const column = commonFunc.getHeaderConfig(item);
+ const tablename = `materials${index}`;
+ materialsInfoList.push(tablename);
+ tableList.push([tablename, config, column]);
+ addStateMap[`${tablename}Config`] = config;
+ /* 找到该配置的子从表 */
+ const childFormData = formData.filter(child => child.sGrd === item.sChildTableName);
+ if (commonUtils.isNotEmptyArr(childFormData)) {
+ childFormData.forEach((child, num) => {
+ const childConfig = child;
+ const childColumn = commonFunc.getHeaderConfig(child);
+ const chlidTablename = `materials${index}Child`;
+ materialsChildInfoList.push(chlidTablename);
+ tableList.push([chlidTablename, childConfig, childColumn]);
+ addStateMap[`${chlidTablename}Config`] = childConfig;
+ });
+ }
+ });
+
+ addState = {
+ ...addState,
+ materialsInfoList,
+ materialsChildInfoList,
+ addStateMap,
+ };
+
+ // 日志表配置
+ const dailyConfig = formData.filter(item => item.sTbName.toUpperCase() === "mftproductchange".toUpperCase())[0];
+ const dailyConfigGrdVisible = dailyConfig?.bGrdVisible;
+
+ if (dailyConfigGrdVisible) {
+ const dailyColumn = commonFunc.getHeaderConfig(dailyConfig);
+ tableList.push(["daily", dailyConfig, dailyColumn]);
+ }
+
+ // 颜色配置
+ const colorConfig = formData.filter(item => item.sTbName.toUpperCase() === "mftProductparam".toUpperCase())[0];
+ const colorConfigGrdVisible = colorConfig?.bGrdVisible;
+
+ if (colorConfigGrdVisible) {
+ const colorColumn = commonFunc.getHeaderConfig(dailcolorConfigyConfig);
+ tableList.push(["color", colorConfig, colorColumn]);
+ }
+
+ // 合版信息配置
+ const packConfig = formData.filter(
+ item =>
+ item.sTbName.toUpperCase() === "mftproductcontrolcombine".toUpperCase() ||
+ item.sTbName.toUpperCase() === "mftworkordercontrolcombine".toUpperCase()
+ )[0];
+
+ // 合版信息拼接从表配置,客户名称 ,产品名称,生产数
+ const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(
+ item =>
+ item.sName === "sCustomerName" ||
+ item.sName === "sProductId" ||
+ item.sName === "sCustomerId" ||
+ item.sName === "sProductNo" ||
+ item.sName === "sProductName" ||
+ item.sName === "dProductQty" ||
+ item.sName === "sProductStyle" ||
+ item.sName === "sProductUnit"
+ );
+ const salveChooseConfigFilter = [];
+ if (commonUtils.isNotEmptyArr(slaveChooseConfig) && commonUtils.isNotEmptyObject(packConfig)) {
+ slaveChooseConfig.forEach(item => {
+ const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName);
+ if (iIndex === -1) {
+ const itemNew = Object.assign({}, item);
+ itemNew.bNotEmpty = false;
+ salveChooseConfigFilter.push(itemNew);
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) {
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === "iOrder");
+ packFilter = packFilter.concat(salveChooseConfigFilter);
+ const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== "iOrder");
+ packFilter = packFilter.concat(packFilterOther);
+ packConfig.gdsconfigformslave = packFilter;
+ }
+ }
+
+ const packColumn = commonFunc.getHeaderConfig(packConfig);
+
+ tableList.push(["pack", packConfig, packColumn]);
+
+ // 改版信息配置
+ const visionConfig = formData.find(item => item.sTbName.toUpperCase() === "sisrevision".toUpperCase() && item.bGrdVisible);
+ if (visionConfig) {
+ const visionColumn = commonFunc.getHeaderConfig(visionConfig);
+ tableList.push(["vision", visionConfig, visionColumn]);
+ addStateMap["visionConfig"] = visionConfig;
+ }
+
+ if (sId) {
+ props.onGetData(masterConfig, slaveConfig);
+
+ // 获取数据
+ const fetchDataPromises = tableList.filter(item => item[1]).map(async item => {
+ const [name, configData, column] = item;
+ const dataSet = await props.handleGetDataSet({
+ name,
+ configData,
+ condition: { sSqlCondition: { sParentId: sId } },
+ isWait: true,
+ });
+ return {
+ [`${name}Config`]: configData,
+ [`${name}Column`]: column,
+ ...dataSet,
+ };
+ });
+ const results = await Promise.all(fetchDataPromises);
+ results.forEach(result => {
+ addState = { ...addState, ...result };
+ });
+ } else {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.packConfig = packConfig;
+ config.colorConfig = colorConfig;
+ config.dailyConfig = dailyConfig;
+ addState = {
+ ...addState,
+ ...(await handleAdd(config, props.app.currentPane.copyTo, true)),
+ };
+
+ tableList.filter(item => item[1]).forEach(item => {
+ const [name, configData, column] = item;
+ addState = {
+ ...addState,
+ [`${name}Config`]: configData,
+ [`${name}Column`]: column,
+ };
+ });
+ }
+
+ props.onSaveState(addState);
+ };
+
+ fetchData();
+ },
+ [masterConfig.sId]
+ );
+
+ // 将事件指派到指定的方法
+ const dispatchFunc = (tableName, funcName, nameList, args) => {
+ const params = nameList.reduce((pre, item, index) => {
+ pre[item] = args[index];
+ return pre;
+ }, {});
+
+ const func = props[`${tableName}Props`]?.[funcName];
+ console.log("=====func", func);
+ if (func) {
+ return func(params);
+ }
+
+ return props[funcName](...args);
+ };
+
+ // 新增
+ const handleAdd = async (config, copyTo, isWait) => {
+ let state = await props.onAdd(config, copyTo, true);
+ const { masterData, slaveData } = state;
+
+ const { sModelsId, token } = props;
+
+ const controlData = [];
+ let packData = [];
+ const materialsData = [];
+ let processData = [];
+ const colorData = [];
+
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const [copyToSlaveDetailConfig, copyToControlConfig, copyToMaterialsConfig, copyToProcessConfig, copyToColorConfig, copyToPackConfig] = [
+ "slave",
+ "control",
+ "materials",
+ "process",
+ "param",
+ "pack",
+ ].map(tablename => copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.${tablename}`.toLowerCase()));
+
+ const slaveDetailAssignField = copyToSlaveDetailConfig[0]?.sAssignField || "";
+ const controlAssignField = copyToControlConfig[0]?.sAssignField || "";
+ const materialsAssignField = copyToMaterialsConfig[0]?.sAssignField || "";
+ const processAssignField = copyToProcessConfig[0]?.sAssignField || "";
+ const colorAssignField = copyToColorConfig[0]?.sAssignField || "";
+ const packAssignField = copyToPackConfig[0]?.sAssignField || "";
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = slaveData?.[0] || {};
+
+ let returnProcessAssort = [];
+ let processAssignAssort = "";
+ let dropDownDataProcessName;
+
+ /* 列表未清复制到执行逻辑体 */
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { sParentId, sId } = copyTo.slaveData[0];
+ const condition = { sParentId: sParentId || sId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.colorData = returnData.colorData;
+ 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 sProcessNameConfig = config.processConfig.gdsconfigformslave.find(item => item.sName === "sProcessName");
+ if (sProcessNameConfig) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", sProcessNameConfig);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = sProcessNameConfig.sAssignField;
+ }
+ }
+ } else {
+ props.getServiceError(dataReturn);
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ let dProductQty = 0;
+ if (commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ if (slaveData.length === 1 && copyTo.slaveData.length === 1) {
+ /* 从表与返回数据从表只有一条时 替换该从表数据 */
+ slaveData.forEach((item, iSlaveIndex) => {
+ item = {
+ ...item,
+ ...commonFunc.getAssignFieldValue(slaveDetailAssignField, copyTo.slaveData[0], newCopyTo),
+ }; // 取赋值字段
+ slaveData[iSlaveIndex] = item;
+ });
+ } else {
+ copyTo.slaveData.forEach(slaveItem => {
+ /* 从工艺卡数据集 找到从表相同产品ID,客户ID */
+ const iSameIndex = slaveData.findIndex(
+ itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId
+ );
+ if (iSameIndex > -1) {
+ slaveData[iSameIndex].sOriginalId = slaveItem.sSlaveId || slaveItem.sId; /* 原始sId */
+ } else if (commonUtils.isNotEmptyObject(slaveDetailAssignField)) {
+ /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow = {};
+ slaveRow = {
+ ...slaveRow,
+ ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo),
+ }; // 取赋值字段
+ slaveRow.handleType = "add";
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = slaveItem.sSlaveId || slaveItem.sId;
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ }
+ const treeCopyNodes = new Map();
+ copyTo.controlData.forEach(controlItem => {
+ newCopyTo.control = controlItem;
+
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = {
+ ...controlRow,
+ ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo),
+ }; // 取赋值字段
+ controlRow.handleType = "add";
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ controlRow.sPartsName = controlRow.sPartsName || slaveData?.[0]?.sPartsName || "";
+ /* 没有sNodeId需要生成一个新的,有的直接带下来 */
+ if (commonUtils.isEmptyObject(controlItem.sNodeId)) {
+ controlRow.sNodeId = commonUtils.createSid();
+ } else {
+ controlRow.sNodeId = controlItem.sNodeId;
+ }
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ // const sAllOldId = controlItem.sAllId;
+ // let arr = [];
+ // if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ // arr = sAllOldId.split(",");
+ // }
+ // const newId = controlRow.sId;
+ // let sOldParentId = "";
+ // let sNewParentAllId = "";
+ // if (arr.length < 2) {
+ // /* 根节点复制 */
+ // controlRow.sAllId = newId;
+ // sOldParentId = newId;
+ // sNewParentAllId = newId;
+ // } else {
+ // sOldParentId = arr[arr.length - 2];
+ // if (treeCopyNodes.has(sOldParentId)) {
+ // sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ // } else {
+ // const obj = arr[arr.length - 1];
+ // sNewParentAllId = sAllOldId.replace(`,${obj}`, "");
+ // }
+ // const sNewArr = sNewParentAllId.split(",");
+ // controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ // sNewParentAllId = `${sNewParentAllId},${newId}`;
+ // controlRow.sAllId = sNewParentAllId;
+ // }
+ // treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async packItem => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = {
+ ...packRow,
+ ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo),
+ }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId; /* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = props.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, "add");
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+
+ /* 将控制表中的合版备注sId为新的sId */
+ const jsonStr = controlRow.sCombinedMemo;
+ const JsonData = commonUtils.convertStrToObj(jsonStr, []);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = "";
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex > -1) {
+ controlData[icontrolIndex] = {
+ ...controlData[icontrolIndex],
+ sCombinedMemo: sCombinedMemoNew,
+ };
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.slice(0, -1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.slice(0, -1) : "";
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId
+ );
+ const iNewProcessIndex = processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId
+ );
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ });
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== "2").forEach(materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sParentMaterialsId = materialsItem.sParentMaterialsId;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(
+ item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId
+ );
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ const materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if (iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ const addState = {};
+ addState.sMaterialsNo1 = materialsData[iIndex].sMaterialsNo; /* 原材料编号 */
+ addState.sMaterialsName1 = materialsData[iIndex].sMaterialsName; /* 原材料名称 */
+ addState.bAlternative = true;
+ addState.sParentMaterialsId = materialsData[iIndex].sId;
+ materialsData[iNexIndex] = {
+ ...materialsData[iNexIndex],
+ ...addState,
+ };
+ materialsData[iIndex] = {
+ ...materialsData[iIndex],
+ bTidaibs: true,
+ };
+ }
+ }
+ });
+ }
+
+ const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if (commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if (iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ materialsData[iNexIndex] = {
+ ...materialsData[iNexIndex],
+ sInkFatherMaterialsTbId: materialsData[iIndex].sId,
+ };
+ }
+ }
+ });
+ }
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData)) {
+ copyTo.materialsData.filter(item => item.sType === "2").forEach(materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.slice(0, -1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.slice(0, -1) : "";
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ copyTo.processData.filter(item => item.sType === "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.slice(0, -1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.slice(0, -1) : "";
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === "single") {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === "all") {
+ controlData.forEach(controlItem => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ });
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach(colorItem => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = {
+ ...colorRow,
+ ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo),
+ }; // 取赋值字段
+ colorRow.handleType = "add";
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductName");
+ if (iIndex > -1) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = changeData?.sParentId || "";
+ if (sParentId) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName");
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach(item => {
+ dProductQty += getDProductQty(dProductQty, item);
+ });
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "master", config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? "" : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(",");
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = props.sortData(controlData, processData);
+ }
+ } else if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName");
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "master", config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === "huace");
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(",");
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(":") > -1) {
+ const sFieldName = child.split(":")[0].trim();
+ const sValueName = child.split(":")[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await handleMasterChange(
+ "master",
+ "sProductClassifyName",
+ { ...masterData, ...returnValue },
+ masterData.sId,
+ null,
+ { masterData, masterConfig: config.masterConfig },
+ true
+ );
+ state = { ...state, ...addState };
+ }
+ }
+ if (controlData.length === 0 && commonUtils.isEmptyObject(copyTo)) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1;
+ tableDataRow.sSlaveId = " ";
+ tableDataRow.sCombinedMemo = "合版信息";
+ tableDataRow.sAllId = tableDataRow.sId;
+ if (commonUtils.isEmptyObject(tableDataRow.sPartsName)) {
+ tableDataRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sProductName : "";
+ }
+ let dProductQty = 0;
+ slaveData.forEach(item => {
+ dProductQty += getDProductQty(dProductQty, item);
+ });
+ tableDataRow.dPartsQty = dProductQty;
+
+ /* 点击新增按钮 控制表自动默认增一条 同时默认新增一条合版表 */
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length === 1 && commonUtils.isEmptyArr(packData)) {
+ const packDataRow = props.handlePackDataAdd(slaveData[0], 0, tableDataRow.sId, "add");
+ packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+
+ controlData.push(tableDataRow);
+ }
+ const treeState = { treeData: [] }; /* 加载树形结构数据 */
+ const stateNew = {
+ ...state,
+ ...treeState,
+ slaveData,
+ controlData,
+ controlSelectedRowKeys: [],
+ materialsData,
+ materials0Data: materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ packData,
+ colorData,
+ processSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ props.onSaveState(stateNew);
+ }
+ };
+
+ // 表格添加表格空行
+ const handleTableAdd = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onDataRowAdd", ["name", "flag", "bchild", "bFinished", "bModalAdd"], args);
+ };
+ returnProps.onDataRowAdd = handleTableAdd;
+
+ // 表格删除行
+ const handleTableDel = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onDataRowDel", ["name", "flag", "tableSelectedRowKeys"], args);
+ };
+ returnProps.onDataRowDel = handleTableDel;
+
+ // 表格数据变化
+ const handleTableChange = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onDataChange", ["name", "sFieldName", "changeValue", "sId", "dropDownData"], args);
+ };
+ returnProps.onDataChange = handleTableChange;
+
+ // 各种超链接点击
+ const handleViewChoose = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onViewChoose", ["name", "sName", "record"], args);
+ };
+ returnProps.onViewChoose = handleViewChoose;
+
+ // toolbar按钮操作事件
+ const handleButtonClick = async name => {
+ if (name === "BtnCalculation") {
+ props.onSaveState({
+ loading: true,
+ });
+ props.handleCalculation();
+ } else if (name === "BtnDraft") {
+ const { masterData } = props;
+
+ const tableList = ["slave", "control", "process", "materials0", "package", "color"];
+
+ tableList.forEach(tablename => {
+ const tableConfig = props[`${tablename}Config`];
+ if (!tableConfig?.gdsconfigformslave) return;
+
+ const tableData = props[`${tablename}Data`];
+ const filterData = tableData.filter(itemData => ["add", "updata"].includes(itemData.handleType));
+ tableConfig.gdsconfigformslave.forEach(itemConfig => {
+ filterData.forEach(itemData => {
+ itemData.NoVerify = "NoVerify";
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ const defaultValues = {
+ s: "",
+ d: 0,
+ i: 0,
+ b: false,
+ t: moment(new Date()).format(props.app.dateFormat),
+ };
+
+ itemData[itemConfig.sName] = defaultValues[firstDataIndex] || undefined;
+ }
+ });
+ });
+ });
+
+ masterData.bIsUnCcg = false;
+ masterData.sStatus = "4";
+ masterData.handleType = masterData.handleType || "update";
+
+ const data = tableList.filter(tablename => props[`${tablename}Config`]?.gdsconfigformslave).map(tablename => {
+ const tableConfig = props[`${tablename}Config`];
+ const tableData = props[`${tablename}Data`];
+ const tableDelData = props[`${tablename}DelData`];
+ const bMaster = tablename === "master";
+ const tablenameNew = tablename === "materials0" ? "materials" : tablename;
+ return commonBusiness.mergeData(tablenameNew, tableConfig.sTbName, bMaster ? [tableData] : tableData, bMaster ? undefined : tableDelData);
+ });
+
+ props.onSaveData({
+ data,
+ sClientType: "1",
+ loading: false,
+ sSysLogSrcId: masterData.sId,
+ bIsUnCcg: false,
+ });
+ } else if (name === "BtnChooseProcess") {
+ const { slaveData, controlData, slaveSelectedRowKeys, masterConfig, app } = props;
+
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoSlaveData")); /* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseSlaveData")); /* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseProduct")); /* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoControlData")); /* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ props.onBtnChoose("process", name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === "BtnChooseMaterials") {
+ const { slaveData, controlData, slaveSelectedRowKeys, masterConfig, app } = props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoSlaveData")); /* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseSlaveData")); /* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseProduct")); /* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoControlData")); /* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ props.onBtnChoose("materials", name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === "BtnWorkFlow") {
+ const dataUrl = `${commonConfig.server_host}workOrderFlow/getWorkOrderFlow/`;
+ let { token } = props.app;
+ let { slaveData, controlData, materials0Data: materialsData, processData, packData } = props;
+ const value = {
+ slave: slaveData,
+ control: controlData,
+ materials: materialsData,
+ process: processData,
+ pack: packData,
+ sModelsType: "processCardPackTableTree",
+ };
+ let dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (commonUtils.isNotEmptyObject(dataReturn)) {
+ if (dataReturn.code === 1) {
+ const flowData = dataReturn.dataset.rows[0];
+ if (commonUtils.isNotEmptyObject(flowData)) {
+ props.onSaveState({
+ flowData: flowData,
+ workFlowVisible: true,
+ });
+ }
+ } else {
+ props.getServiceError(dataReturn);
+ }
+ }
+ } else {
+ props.onButtonClick(name);
+ }
+ };
+ returnProps.onButtonClick = handleButtonClick;
+
+ // 复制到
+ const handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const { masterConfig, masterData, slaveData, controlData, materials0Data, processData, colorData, sModelsId, packData, formRoute } = props;
+
+ const handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = props;
+ dispatch({
+ type: "content/onRouter",
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}` /* 接口地址 */,
+ sSrcModelsId: props.sModelsId,
+ copyTo,
+ },
+ });
+ };
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes(".")) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materials0Data;
+ copyTo.materials0Data = materials0Data;
+ copyTo.processData = processData;
+ copyTo.packData = packData;
+ copyTo.colorData = colorData;
+ copyTo.srcFormRoute = formRoute;
+ const tbSuffix = "";
+ let sId = "";
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${
+ commonConfig.server_host
+ }bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ if (dataReturn.dataset.rows.length > 0) {
+ Modal.confirm({
+ title: commonFunc.showMessage(app.commonConst, "beUsedToNew") /* 单据已存在,是否填写新单据 */,
+ onOk() {
+ handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {},
+ });
+ } else {
+ handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ returnProps.onCopyTo = handleCopyTo;
+
+ // 弹窗选择确定
+ const handleSelect = async (name, selectConfig, selectData) => {
+ const bTmpInfoBySql = selectConfig?.sControlName?.toLowerCase().includes(("tmpinfobysql"));
+ if (name === "productProcessInfo" && !bTmpInfoBySql) {
+ message.info("productProcessInfo已废弃,请改成TmpInfoBySql!");
+ return;
+ }
+ if (name === "materials") {
+ name = "materials0";
+ }
+ const {
+ [`${name}Data`]: tableData,
+ [`${name}Config`]: tableConfig,
+ masterConfig,
+ slaveSelectedRowKeys,
+ controlSelectedRowKeys,
+ sModelsId,
+ token,
+ slaveConfig,
+ controlConfig,
+ materialsConfig,
+ materials0Config,
+ processConfig,
+ colorConfig,
+ slaveData,
+ controlData: controlDataOld,
+ materialsData: materialsDataOld,
+ processData: processDataOld,
+ colorData: colorDataOld,
+ packData: packDataOld,
+ controlDelData: controlDelDataOld,
+ materialsDelData: materialsDelDataOld,
+ processDelData: processDelDataOld,
+ colorDelData: colorDelDataOld,
+ materials0Data: materials0DataOld,
+ packDelData: packDelDataOld,
+ } = props;
+ let { masterData } = props;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materials0Config = materials0Config;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ // 只保留自定义
+ if (bTmpInfoBySql) {
+ /* 复制从部件 根据配置下拉sql获取数据源 通过按钮名称是否包含add来判断数据源新增还是删除 */
+ const addState = {};
+ let controlData = commonUtils.isEmptyArr(controlDataOld) ? [] : controlDataOld;
+ let materialsData = commonUtils.isEmptyArr(materialsDataOld) ? [] : materialsDataOld;
+ let materials0Data = commonUtils.isEmptyArr(materials0DataOld) ? [] : materials0DataOld;
+ let processData = commonUtils.isEmptyArr(processDataOld) ? [] : processDataOld;
+ let packData = commonUtils.isEmptyArr(packDataOld) ? [] : packDataOld;
+ let colorData = commonUtils.isEmptyArr(colorDataOld) ? [] : colorDataOld;
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
+ const sConfigformId = commonUtils.isEmpty(selectConfig) ? "" : selectConfig.sParentId;
+ const sRowData = selectData;
+ const sControlName = selectConfig.sControlName; /* 按钮名称 */
+ const condition = { sConfigformId, sControlName, sRowData };
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyTo = {
+ config: masterConfig.gdsconfigformslave,
+ name: selectConfig.sControlName,
+ };
+ const returnDataSet = dataReturn.dataset.rows[0];
+ const returnData = {};
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.slave`.toLowerCase()
+ );
+ const copyToControlConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.control`.toLowerCase()
+ );
+ const copyToMaterialsConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.materials`.toLowerCase()
+ );
+ const copyToProcessConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.process`.toLowerCase()
+ );
+ const copyToPackConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.pack`.toLowerCase()
+ );
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : "";
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : "";
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : "";
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : "";
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : "";
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : "";
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : "";
+
+ /* 判断是插入 还是删除 */
+ if (commonUtils.isNotEmptyArr(copyToControlConfig)) {
+ if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ if (!copyToControlConfig[0].sControlName.includes("_add") && !copyToControlConfig[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ controlData = [];
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const controlDataFilterData = controlDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sId));
+ if (commonUtils.isNotEmptyArr(controlDataFilterData)) {
+ controlDataFilterData.forEach(item => {
+ item.handleType = "del";
+ controlDelData.push(item);
+ });
+ }
+ addState.controlDelData = controlDelData;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyToMaterialsConfig)) {
+ if (!copyToMaterialsConfig[0].sControlName.includes("_add") && !copyToMaterialsConfig[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ materialsData = [];
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const materialsDataFilterData = materialsDataOld?.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if (commonUtils.isNotEmptyArr(materialsDataFilterData)) {
+ materialsDataFilterData.forEach(item => {
+ item.handleType = "del";
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ }
+
+ materials0Data = [];
+ const materials0DelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const materials0DataFilterData = materialsDataOld?.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if (commonUtils.isNotEmptyArr(materials0DataFilterData)) {
+ materials0DataFilterData.forEach(item => {
+ item.handleType = "del";
+ materials0DelData.push(item);
+ });
+ addState.materials0DelData = materials0DelData;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyToProcessConfig)) {
+ if (!copyToProcessConfig[0].sControlName.includes("_add") && !copyToProcessConfig[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ processData = [];
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const processDataFilterData = processDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if (commonUtils.isNotEmptyArr(processDataFilterData)) {
+ processDataFilterData.forEach(item => {
+ item.handleType = "del";
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyToPackConfig)) {
+ if (!copyToPackConfig[0].sControlName.includes("_add") && !copyToPackConfig[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ packData = [];
+ const packDelData = commonUtils.isEmptyArr(packDelDataOld) ? [] : packDelDataOld;
+ const packDataFilterData = packDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if (commonUtils.isNotEmptyArr(packDataFilterData)) {
+ packDataFilterData.forEach(item => {
+ item.handleType = "del";
+ packDelData.push(item);
+ });
+ addState.packDelData = packDelData;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(colorAssignField)) {
+ if (!colorAssignField[0].sControlName.includes("_add") && !colorAssignField[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ colorData = [];
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach(item => {
+ item.handleType = "del";
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let iSlaveIndex = -1;
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = 0;
+ } else {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = {
+ ...slaveData[iSlaveIndex],
+ ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo),
+ }; // 取赋值字段
+ }
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ masterData = {
+ ...masterData,
+ ...commonFunc.getAssignFieldValue(masterDetailAssignField, selectData[0], newCopyTo),
+ }; // 取赋值字段
+ }
+ let controlSelectedRow = {}; /* 控制表选中行 */
+ let iControlIndex = -1;
+ if (!commonUtils.isEmpty(controlSelectedRowKeys)) {
+ iControlIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ if (iControlIndex > -1) {
+ controlSelectedRow = controlData[iControlIndex];
+ }
+ }
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = "";
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName");
+ if (iIndex > -1) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyObject(returnDataSet)) {
+ /* 数据塞到Data中 */
+ for (const key of Object.keys(returnDataSet)) {
+ const sName = `${key}Data`;
+ returnData[sName] = returnDataSet[key];
+ }
+ }
+ console.log("returnData", returnData);
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bProductQtySelf");
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+
+ if (commonUtils.isNotEmptyObject(copyToSlaveDetailConfig)) {
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = {
+ ...item,
+ ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo),
+ }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty +=
+ commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ }
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach(controlItem => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ if (copyToControlConfig[0].sControlName.includes("_edit")) {
+ controlRow = {
+ ...controlSelectedRow,
+ ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo),
+ }; // 取赋值字段
+ if (iControlIndex > -1) {
+ controlData[iControlIndex] = {
+ ...controlSelectedRow,
+ ...controlRow,
+ };
+ }
+ } else {
+ controlRow = {
+ ...controlRow,
+ ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo),
+ }; // 取赋值字段
+ controlRow.handleType = "add";
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(",");
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = "";
+ let sNewParentAllId = "";
+ if (arr.length < 2) {
+ /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace(`,${obj}`, "");
+ }
+ const sNewArr = sNewParentAllId.split(",");
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async packItem => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = {
+ ...packRow,
+ ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo),
+ }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId; /* 翻单前的sId */
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = props.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, "add");
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = "";
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = {
+ ...controlData[icontrolIndex],
+ sCombinedMemo: sCombinedMemoNew,
+ };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ });
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId
+ );
+ const iNewProcessIndex = processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId
+ );
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== "2").forEach(materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(
+ item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId
+ );
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ materials0Data.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === "2").forEach(materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === "single") {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === "all") {
+ controlData.forEach(controlItem => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach(colorItem => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = {
+ ...colorRow,
+ ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo),
+ }; // 取赋值字段
+ colorRow.handleType = "add";
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = { treeData: [] }; /* 加载树形结构数据 */
+ addState.materials0Data = materials0Data;
+ addState.packData = packData;
+ props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ processData,
+ materialsData,
+ controlData,
+ ...treeState,
+ colorData,
+ masterData,
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const addState = {};
+ const { controlData } = props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys)
+ ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0])
+ : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+
+ const bProcessAssort = name === 'process';
+ let returnProcessAssort = [];
+ let processAssignAssort = "";
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ // 配套数据 */
+ if (commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}processAssort`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}processAssort`)).length > 0) {
+ returnProcessAssort = JSON.parse(localStorage.getItem(`${commonConfig.prefix}processAssort`));
+ }
+ if (commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}dropDownDataProcess`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}dropDownDataProcess`)).length > 0) {
+ dropDownDataProcessName = JSON.parse(localStorage.getItem(`${commonConfig.prefix}dropDownDataProcess`));
+ }
+ if (commonUtils.isEmptyArr(returnProcessAssort)) {
+ 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 && commonUtils.isEmptyArr(dropDownDataProcessName)) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ localStorage.setItem(`${commonConfig.prefix}dropDownDataProcess`, JSON.stringify(dropDownDataProcessName));
+ }
+ localStorage.setItem(`${commonConfig.prefix}processAssort`, JSON.stringify(returnProcessAssort));
+ }
+ }
+ }
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = {
+ ...tableDataRow,
+ ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo),
+ }; // 取赋值字段
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === "process") {
+ /* 设置工单参数下拉 */
+ tableDataRow.sParams = item.sParams;
+ ["sProcess", "sReport", "sWorkOrder", "sNorm", "sTest"].forEach(key => {
+ // 将各种参数的默认值保存到sParams中
+ const sKeyParam = commonUtils.convertStrToObj(tableDataRow[`${key}Param`] || item[`${key}Param`], {});
+ if (commonUtils.isNotEmptyObject(sKeyParam)) {
+ const sKeyParamDefaultValues = Object.keys(sKeyParam)
+ .filter(item => item.startsWith("sParamDefault") && commonUtils.isNotEmptyObject(sKeyParam[item]))
+ .reduce((result, item) => {
+ const sParamsName = item.replace("Default", "");
+ result[sParamsName] = sKeyParam[item];
+ return result;
+ }, {});
+
+ const sParams = commonUtils.convertStrToObj(tableDataRow.sParams, []);
+ const sKeyJsonIndex = sParams.findIndex(item => item.sParamType === key);
+ if (sKeyJsonIndex === -1) {
+ sParams.push({
+ sParamType: key,
+ data: sKeyParamDefaultValues,
+ });
+ } else {
+ const { data: sWorkOrderData = {} } = sParams[sKeyJsonIndex];
+ sParams[sKeyJsonIndex].data = {
+ ...sWorkOrderData,
+ ...sKeyParamDefaultValues,
+ };
+ }
+ tableDataRow.sParams = JSON.stringify(sParams);
+ }
+ });
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex =
+ dropDownDataProcessName[iIndex].sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId
+ );
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === "all") {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach(controlTableRow => {
+ const iNewProcessIndex =
+ dropDownDataProcessName[iIndex].sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId
+ );
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ });
+ }
+ addState.processSelectedRowKeys = [tableDataRow.sId];
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== "3") {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === "3") {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ const tableDataNew = props.sortData(controlData, tableData);
+ props.onSaveState({
+ [`${name}Data`]: tableDataNew,
+ [`${name}ChooseVisible`]: false,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ ...addState,
+ });
+ }
+ };
+ returnProps.onSelect = handleSelect;
+
+ // 主表变化(待优化)
+ const handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const { sModelsId, app } = props;
+ const masterData = commonUtils.isEmpty(config) ? props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (
+ sFieldName === "sProductClassifyId" ||
+ sFieldName === "sProductId" ||
+ sFieldName === "sProductClassifyName" ||
+ sFieldName === "sProductName"
+ ) {
+ backProcessData = await handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(",");
+ }
+
+ if (
+ allPartsName.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined &&
+ sBackProcessClassifyData !== "" &&
+ sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)
+ ) {
+ let iIndex;
+ allPartsName.forEach(sPartsName => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== "3").forEach(processClassify => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === "3").forEach(processClassify => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => item.sName.toLowerCase() === "sbackprocessclassify")[0];
+
+ const values = {
+ sKeyUpFilterName: "",
+ sSqlCondition: { sProductClassifyId },
+ };
+ const dataReturn = (await commonServices.postValueService(
+ token,
+ values,
+ `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`
+ )).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) {
+ /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(",");
+ }
+
+ sBackProcessClassifyData = rows;
+ if (
+ allPartsName.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined &&
+ sBackProcessClassifyData !== "" &&
+ sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0
+ ) {
+ const sumPQtyConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "dSumPQty").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "dSumPQty")[0]
+ : [];
+ const materialsNameConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "sMaterialsName").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "sMaterialsName")[0]
+ : [];
+ const printModePoConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "iPrintModePo").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "iPrintModePo")[0]
+ : [];
+ const positiveColorConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "iPositiveColor").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "iPositiveColor")[0]
+ : [];
+ const processNameConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "sProcessName").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "sProcessName")[0]
+ : [];
+
+ let ConfigNew;
+ allPartsName.forEach(item => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== "3").forEach(processClassify => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === "3").forEach(processClassify => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = {
+ ...masterDataDefault,
+ ...returnChange.masterData,
+ };
+ if (isWait) {
+ return {
+ ...returnChange,
+ sBackProcessClassifyData,
+ masterConfig,
+ ...backProcessData,
+ };
+ } else {
+ props.onSaveState({
+ ...returnChange,
+ sBackProcessClassifyData,
+ masterConfig,
+ ...backProcessData,
+ });
+ }
+ } else {
+ /* 失败 */
+ props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === "sCustomerId" || sFieldName === "sCustomerNo" || sFieldName === "sCustomerName") {
+ const returnChange = await props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = "";
+ returnChange.masterData.sProductNo = "";
+ returnChange.masterData.sProductName = "";
+ }
+ props.onSaveState({ ...returnChange });
+ } else {
+ props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ returnProps.onMasterChange = handleMasterChange;
+
+ const [form, setForm] = useState(null);
+ const handleSave = async bParts => {
+ form.validateFields(err => {
+ if (err) {
+ // 验证失败
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+
+ // 验证成功
+ const {
+ masterData,
+ slaveConfig,
+ slaveData,
+ controlConfig,
+ controlData,
+ materials0Config,
+ materials0Data: materialsData,
+ processConfig,
+ processData,
+ colorConfig,
+ colorData,
+ dailyConfig,
+ dailyData,
+ addStateMap,
+ } = props;
+
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(props.app.commonConst, "isNotNull")}`);
+ props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+
+ if (!bParts) {
+ if (
+ !commonBusiness.validateTable(slaveConfig, slaveData, props) ||
+ !commonBusiness.validateTable(controlConfig, controlData, props) ||
+ !commonBusiness.validateTable(materials0Config, materialsData, props) ||
+ !commonBusiness.validateTable(processConfig, processData, props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, props) ||
+ !commonBusiness.validateTable(dailyConfig, dailyData, props)
+ ) {
+ console.log('=====saveData', { slaveData, controlData, materialsData, processData, colorData, dailyData });
+ window.saveData = { slaveData, controlData, materialsData, processData, colorData, dailyData };
+ props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ const data = [];
+ if (masterData.sStatus === "4" && !bParts) {
+ /* 点保存后 从草稿箱状态变成未审核状态 */
+ masterData.sStatus = "0";
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType;
+ }
+ if (!bParts) {
+ masterData.bIsUnCcg = true;
+ }
+
+ const tableList = ["master", "slave", "control", "process", "pack", "color", "daily"];
+
+ tableList.forEach(tablename => {
+ const tableConfig = props[`${tablename}Config`];
+ const tableData = props[`${tablename}Data`];
+ const tableDelData = props[`${tablename}DelData`];
+
+ if (!tableConfig) return;
+
+ data.push(commonBusiness.mergeData(tablename, tableConfig.sTbName, tablename === "master" ? [tableData] : tableData, tableDelData));
+ });
+
+ if (commonUtils.isNotEmptyObject(addStateMap)) {
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace("Config", "").trim();
+ const { [`${tableName}Data`]: tableData, [`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData } = props;
+ if (tableConfig.sTbName !== "noTable") {
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+ }
+
+ props.onSaveData({
+ data,
+ sClientType: "1",
+ loading: false,
+ sSysLogSrcId: masterData.sId,
+ });
+ });
+ };
+
+ returnProps.currentForm = form;
+ returnProps.setForm = setForm;
+ returnProps.onSubmit = handleSave;
+
+ const handleBackProcessData = async (config, isWait) => {
+ const { token } = props.app;
+ const { sModelsId, sBackProcessData } = props;
+ const masterConfig = commonUtils.isEmpty(config) ? props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === "") {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === "sBackProcess")[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: "", sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ };
+
+ return {
+ ...props,
+ ...returnProps,
+ };
+};
+
+// 从表相关事件
+const slaveProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = ({ name, bchild }) => {
+ const { slaveData, [`${name}Data`]: tableData } = props;
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app } = props;
+ const { expKeys = [] } = props;
+ const tableDataRow = props.onDataRowAdd(name, true);
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warning(commonFunc.showMessage(app.commonConst, "selectedRowKeysNo"));
+ return;
+ }
+ if (bchild === "childNode") {
+ /* 添加子级 */
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ const sNodeId = tableData[iIndex].sNodeId;
+ if (commonUtils.isEmptyObject(sNodeId)) {
+ message.warn("数据生成错误,请删除父级后重新添加"); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sFatherSlaveId = sNodeId;
+ const sAllId = tableData[iIndex].sAllId || tableData[iIndex].sNodeId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn("子部件数据生成错误![sAllId为空]"); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${tableData[iIndex].sAllId},${tableDataRow.sNodeId}`;
+ }
+ /* 新增子级时 子级展开 */
+ expKeys.push(tableSelectedRowKeys[0]); /* 展开只要展开父级即可 */
+ }
+ if (bchild !== "sameNode" && bchild !== "childNode") {
+ /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sNodeId;
+ }
+ tableData.push(tableDataRow);
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ [`${name}SelectedRowKeys`]: [tableDataRow.sId],
+ expKeys,
+ });
+ };
+ returnProps.onDataRowDel = ({ name }) => {
+ /* 删除sSlaveId关联的合版表 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const packReturnData = props.otherTableDel("pack", tableSelectedRowKeys, "sSlaveId");
+ const materielReturnData = props.otherTableDel("materials", tableSelectedRowKeys, "sCombinePartsName"); /* 删除成品材料 */
+ const processReturnData = props.otherTableDel("process", tableSelectedRowKeys, "sCombinePartsName"); /* 删除成品工序 */
+ const slaveReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+ props.onSaveState({
+ ...materielReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...slaveReturnData,
+ });
+ return true;
+ } else {
+ message.warn("请选择要删除的部件!");
+ return false;
+ }
+ };
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const { sModelsId, [`${name}Data`]: tableData, masterConfig, controlConfig, controlData: controlDataOld, masterData, packData } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ const bProductQtySelf = masterConfig?.gdsconfigformslave.some(item => item.sControlName === "bProductQtySelf");
+ if (["dProductQty", "dGiveQty", "dStockupQty"].includes(sFieldName)) {
+ let dPartsQty = 0;
+ tableData.forEach(item => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const controlData = [];
+ controlDataOld.forEach(item => {
+ const itemNew = { ...item };
+ itemNew.dPartsQty = dPartsQty;
+ controlData.push(itemNew);
+ });
+ addState.controlData = controlData;
+ }
+ if (["sCustomerId", "sCustomerNo", "sCustomerName"].includes(sFieldName)) {
+ tableDataRow.sProductId = "";
+ tableDataRow.sProductNo = "";
+ tableDataRow.sProductName = "";
+ tableData[iIndex] = tableDataRow;
+ } else if (["sProductId", "sProductNo", "sProductName"].includes(sFieldName)) {
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (
+ tableDataRow.handleType === "add" &&
+ iProductIdIndex > -1 &&
+ tableDataRow.sProductId !== tableDataRow.sProductName &&
+ commonUtils.isEmptyArr(controlDataOld)
+ ) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? "" : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName");
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach(item => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty +=
+ commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "master", masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? "" : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(",");
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ }
+ /* 从表产品改变带动合版表产品与部件表合版信息 同步改变 */
+ const controlDataNew = commonUtils.isNotEmptyArr(addState.controlData) ? addState.controlData : controlDataOld;
+ /* 如果packData只有一条数据 则同步合版数据 及增加控制表合版备注 */
+ if (commonUtils.isNotEmptyArr(packData) && packData.length === 1 && packData[0].sSlaveId === tableDataRow.sId) {
+ let packDataRow = packData[0];
+ const sControlId = packDataRow.sControlId;
+ packDataRow = props.handlePackDataAdd(tableDataRow, 0, sControlId);
+ packDataRow.dCombineQty = 1;
+ packData[0] = { ...packData[0], ...packDataRow };
+
+ if (commonUtils.isNotEmptyObject(packData[0])) {
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[0];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ // const controlDataNew =commonUtils.isNotEmptyArr(addState.controlData)? addState.controlData: controlDataOld;
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ addState.controlData = controlDataNew;
+ }
+ }
+ } else if (packData.length > 1) {
+ const packFilterData = packData.filter(item => item.sSlaveId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData)) {
+ packFilterData.forEach((itemPack, index) => {
+ let packDataRow = itemPack;
+ const sControlId = packDataRow.sControlId;
+ packDataRow = props.handlePackDataAdd(tableDataRow, 0, sControlId);
+ const iPIndex = packData.findIndex(child => child.sId === itemPack.sId);
+
+ packData[iPIndex] = { ...packData[iPIndex], ...packDataRow };
+ if (iPIndex > -1 && commonUtils.isNotEmptyObject(packData[iPIndex])) {
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[iPIndex];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(controlItem => {
+ const sCombinedMemoArr = JSON.parse(controlItem.sCombinedMemo);
+ const sCombinedMemoFilterArr = sCombinedMemoArr.filter(item => item.dCombineQty > 0 && item.sProductNo === itemPack.sProductNo);
+ return commonUtils.isNotEmptyArr(sCombinedMemoFilterArr);
+ });
+ if (iControlIndex > -1) {
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ }
+ }
+ });
+ addState.controlData = controlDataNew;
+ }
+ }
+ addState.packData = packData;
+ }
+
+ props.onSaveState({ [`${name}Data`]: tableData, ...addState });
+ };
+ return returnProps;
+};
+
+// 控制表相关事件
+const controlProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = ({ name, bchild }) => {
+ const { slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData } = props;
+ let { packData } = props;
+
+ const sTreeKey = "sNodeId";
+
+ /* 增加子部件 */
+ const { [`${name}SelectedRowKeys`]: treeSelectedKeys } = props;
+ if (
+ (bchild === "childNode" || bchild === "sameNode") &&
+ (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))
+ ) {
+ message.warn("请选择部件!"); // 请选择部件
+ return;
+ }
+ const tableDataRow = props.onDataRowAdd(name, true);
+ if (bchild === "sameNode") {
+ /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item[sTreeKey] === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ // if (commonUtils.isEmptyObject(sAllId)) {
+ // message.warn("部件数据生成错误![sAllId为空]");
+ // return;
+ // }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow[sTreeKey]}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow[sTreeKey];
+ }
+ }
+ }
+ if (bchild === "childNode") {
+ /* 添加子级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sNodeId = tableData[iIndex].sNodeId;
+ if (commonUtils.isEmptyObject(sNodeId)) {
+ message.warn("数据生成错误,请删除父级后重新添加"); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sControlParentId = sNodeId;
+ const sAllId = tableData[iIndex].sAllId || sNodeId;
+ // if (commonUtils.isEmptyObject(sAllId)) {
+ // message.warn("子部件数据生成错误![sAllId为空]"); // 获取父节点的sAllId
+ // return;
+ // }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sNodeId}`;
+ }
+ }
+ if (bchild !== "sameNode" && bchild !== "childNode") {
+ /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sNodeId;
+ }
+
+ let slaveSelectedRow = {};
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ /* 从表有选中行 */
+ const iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if (iSlaveIndex > -1) {
+ slaveSelectedRow = slaveData[iSlaveIndex];
+ }
+ } else {
+ /* 没有选中行 */
+ if (slaveData.length === 1) {
+ slaveSelectedRow = slaveData[0];
+ } else {
+ message.error("请选择从表!");
+ }
+ }
+ /* 新增工艺卡,部件名称要默认选中从表行的产品名称 */
+ tableDataRow.sPartsName = slaveSelectedRow.sProductName;
+
+ /* 部件表新增时,若合版表没有该sControlId 则默认取从表选中行,合拼1 作为一条packData数据 */
+ if (commonUtils.isEmptyArr(packData)) {
+ packData = [];
+ }
+ const iIndex = packData.findIndex(item => item.sControlId === tableDataRow.sId);
+ if (iIndex === -1) {
+ if (commonUtils.isEmptyObject(slaveSelectedRow.sProductId)) {
+ message.error("请先选择产品!");
+ return;
+ }
+ if (slaveSelectedRow) {
+ const packDataRow = props.handlePackDataAdd(slaveSelectedRow, 0, tableDataRow.sId, "add");
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if (packDataRow.sProductId) {
+ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packDataRow;
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo = commonUtils.isNotEmptyObject(sCombinedMemo) ? sCombinedMemo : "合版信息";
+ }
+ packData.push(packDataRow);
+ }
+ }
+
+ tableData.push(tableDataRow);
+ props.onSaveState({
+ treeData: [],
+ [`${name}Data`]: tableData,
+ [`${name}SelectedRowKeys`]: [tableDataRow.sId],
+ treeSelectedKeys: [tableDataRow.sId],
+ packData,
+ });
+ };
+ returnProps.onDataRowDel = ({ name }) => {
+ const { controlData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ /* 删除该节点及所有子节点 */
+ const controlChildData = controlData.filter(item => item.sAllId?.indexOf(tableSelectedRowKeys[0]) > -1 && item.sId !== tableSelectedRowKeys[0]);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach(itemNew => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const materialsReturnData = props.otherTableDel("materials", tableSelectedRowKeys);
+ const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys);
+ const processReturnData = props.otherTableDel("process", tableSelectedRowKeys);
+ const packReturnData = props.otherTableDel("pack", tableSelectedRowKeys);
+ const controlReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+ props.onSaveState({
+ treeData: [],
+ ...materialsReturnData,
+ ...materials0ReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, "selectedRowKeysNo")); /* 请选择数据 */
+ return false;
+ }
+ };
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const {
+ [`${name}Data`]: tableData,
+ materialsData: materialsDataOld,
+ materials0Data: materials0DataOld,
+ processData: processDataOld,
+ sModelsId,
+ sModelsType,
+ slaveData,
+ packData,
+ } = props;
+ let { masterData } = props;
+ let tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (
+ sFieldName === "dSinglePQty" ||
+ sFieldName === "dSumPQty" ||
+ sFieldName === "iPrintModePo" ||
+ sFieldName === "iPrintMode" ||
+ sFieldName === "iPrintModePo" ||
+ sFieldName === "iPositiveColor" ||
+ sFieldName === "iPositiveSpecialColor" ||
+ sFieldName === "iOppositeColor" ||
+ sFieldName === "iOppositeSpecialColor"
+ ) {
+ if (sFieldName === "iPrintModePo") {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === "iPrintMode") {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor =
+ commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === "iPositiveColor" || sFieldName === "iPositiveSpecialColor") {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ } else if (sFieldName === "dSinglePQty") {
+ /* 排版数改变时 如果该控制表合版数据只有一条 则改变packData该条的拼版数 改变备注 */
+ if (commonUtils.isNotEmptyArr(packData)) {
+ const packFilterData = packData.filter(item => item.sControlId === tableDataRow.sId);
+ console.log("1222", packFilterData);
+ if (commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length === 1) {
+ const iIndex = packData.findIndex(itemPack => itemPack.sId === packFilterData[0].sId);
+ const addState = {};
+ if (tableDataRow.dSinglePQty > 0) {
+ addState.dCombineQty = tableDataRow.dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? "update" : tableDataRow.handleType;
+ tableDataRow.iCombineNum = tableDataRow.dSinglePQty;
+ if (iIndex > -1) {
+ packData[iIndex] = { ...packData[iIndex], ...addState };
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[iIndex];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo = commonUtils.isNotEmptyObject(sCombinedMemo) ? sCombinedMemo : "合版信息";
+ }
+ }
+ }
+ }
+ }
+ tableDataRow = props.singlePQtyChange(tableDataRow);
+ }
+ /* 膜内工艺卡算法逻辑 */
+ if (sModelsType === "manufacture/workOrder3" && sModelsId === "101251240115016046551448370") {
+ /* 排版数dSinglePQty=列数iCol*iRow个数 */
+ const iCol = commonUtils.isNull(tableDataRow.iCol, 0);
+ const iRow = commonUtils.isNull(tableDataRow.iRow, 0);
+ const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0));
+ const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0));
+ const dCutEdge = commonUtils.isNull(tableDataRow.dCutEdge, 0);
+ const dColGap = commonUtils.isNull(tableDataRow.dColGap, 0);
+ const dRowGap = commonUtils.isNull(tableDataRow.dRowGap, 0);
+ const dScraperGap = commonUtils.isNull(tableDataRow.dScraperGap, 0);
+ const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0));
+ const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0));
+ const dSinglePQty = commonUtils.isNull(tableDataRow.dSinglePQty, 0);
+ if (sFieldName === "iCol" || sFieldName === "iRow") {
+ tableDataRow.dSinglePQty = iCol * iRow;
+ }
+ /* 膜宽dMaterialsWidth =图文尺寸dMachineWidth*列数iCol+图文到膜边尺寸 dCutEdge*2+图文到图文的尺寸dColGap*(列数iCol-1) */
+ if (sFieldName === "dMachineWidth" || sFieldName === "iCol" || sFieldName === "dCutEdge" || sFieldName === "dColGap") {
+ tableDataRow.dMaterialsWidth = dMachineWidth * iCol + dCutEdge * 2 + dColGap * (iCol - 1);
+ }
+ /* 版周长 dMaterialsLength=(版周长图文尺寸dMachineLength+图文到图文尺寸dRowGap)*版周长个数iRow+dScraperGap刮刀距离 */
+ if (sFieldName === "dMachineLength" || sFieldName === "dRowGap" || sFieldName === "iRow" || sFieldName === "dScraperGap") {
+ tableDataRow.dMaterialsLength = (dMachineLength + dRowGap) * iRow + dScraperGap;
+ }
+ if (
+ sFieldName === "dMachineLength" ||
+ sFieldName === "dRowGap" ||
+ sFieldName === "iRow" ||
+ sFieldName === "dScraperGap" ||
+ sFieldName === "dMaterialsLength"
+ ) {
+ let dPlatediameter = dMaterialsLength / Math.PI;
+ dPlatediameter = commonUtils.convertFixNum(dPlatediameter, 2);
+ const addState = {};
+ addState.dPlatediameter = dPlatediameter;
+ addState.handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType;
+ masterData = { ...masterData, ...addState };
+ }
+ /* 1款拼版 从表产品折算率=版周长*膜宽/1000000 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (slaveData.length === 1) {
+ /* 只有一条从表数据 */
+ const addState = {};
+ addState.dConversionRate = (dMaterialsLength * dMaterialsWidth) / 1000000;
+ addState.dCombineCoefficient = dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(slaveData[0].handleType) ? "update" : slaveData[0].handleType;
+ slaveData[0] = { ...slaveData[0], ...addState };
+ } else if (slaveData.length > 1) {
+ /* 多款产品合拼的 折算率 */
+ let sumTotal = 0;
+ slaveData.forEach(itemNew => {
+ const singleSum = itemNew.dProductLength * itemNew.dProductWidth * itemNew.dCombineCoefficient;
+ sumTotal += singleSum;
+ });
+ slaveData.forEach((item, index) => {
+ const addState = {};
+ /* 多产品折算率 */
+ const dConversionRate =
+ (dMaterialsLength * dMaterialsWidth * (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) /
+ sumTotal /
+ item.dCombineCoefficient /
+ 1000000;
+ addState.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ addState.handleType = commonUtils.isEmpty(item.handleType) ? "update" : item.handleType;
+ slaveData[index] = { ...item, ...addState };
+ });
+ }
+ }
+ }
+ const materialsData = [];
+ const materials0Data = [];
+ const processData = [];
+ materialsDataOld?.forEach(item => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ materials0DataOld?.forEach(item => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materials0Data.push(itemNew);
+ });
+ processDataOld.forEach(item => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = props.sortData(tableData, materialsData);
+ const materials0DataNew = props.sortData(tableData, materials0Data);
+ const processDataNew = props.sortData(tableData, processData);
+ if (sFieldName === "sPartsName") {
+ /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ props.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ materialsData: materialsDataNew,
+ materials0Data: materials0DataNew,
+ processData: processDataNew,
+ slaveData,
+ masterData,
+ packData,
+ });
+ };
+ returnProps.onViewChoose = ({ sName, record }) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled, slaveData } = props;
+ let { packData } = props;
+ if (sName === "sCombinedMemo") {
+ const packSelectedRowKeys = [];
+
+ /* 合并从表相同客户、产品数据 */
+ const slaveDataMerge = [];
+ slaveData.forEach(item => {
+ const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ slaveDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew =
+ commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew =
+ commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ slaveDataMerge[iIndex].dProductQty = dProductQtyNew;
+ slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+
+ /* 合并合版表相同客户、产品数据 */
+ const packDataMerge = [];
+ if (commonUtils.isNotEmptyArr(packData)) {
+ packData.forEach(item => {
+ const iIndex = packDataMerge.findIndex(
+ child =>
+ commonUtils.isNotEmptyObject(item.sCombinePartsName) &&
+ child.sCombinePartsName === item.sCombinePartsName &&
+ commonUtils.isNotEmptyObject(item.sProductId) &&
+ child.sProductId === item.sProductId
+ );
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ packDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew =
+ commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew =
+ commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ packDataMerge[iIndex].dProductQty = dProductQtyNew;
+ packDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ packDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(packDataMerge)) {
+ packData = packDataMerge;
+ }
+
+ /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */
+ if (commonUtils.isNotEmptyArr(slaveDataMerge)) {
+ slaveDataMerge.forEach((item, index) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach(itemPack => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = props.handlePackDataAdd(item);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) {
+ packSelectedRowKeys.push(itemPack.sId);
+ }
+ }
+ }
+ });
+ } else {
+ const tableDataRow = props.handlePackDataAdd(item, index, sId, "add");
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ packData.push(tableDataRow);
+ }
+ }
+ });
+ }
+ props.onSaveState({
+ productCombinationVisible: true,
+ sCombinationsControlId: sId /* 合版产品控制表sId */,
+ enabled,
+ packSelectedRowKeys,
+ packData,
+ });
+ }
+ };
+ return returnProps;
+};
+
+// 工序表相关事件
+const processProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = ({ name, bFinished, bModalAdd }) => {
+ if (bModalAdd) {
+ const { masterConfig } = props;
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess");
+ if (iIndex > -1) {
+ props.onBtnChoose("productProcess", "process", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProcess");
+ if (iIndex > -1) {
+ props.onBtnChoose("process", "process", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ }
+
+ const { slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData } = props;
+ const tableDataRow = props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) {
+ message.warn(commonFunc.showMessage(gdsformconst, "pleaseChooseParts")); // 请选择部件
+ return;
+ }
+ if (bFinished) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`;
+ tableDataRow.sCombinePartsName = slaveData[iIndex].sId;
+ if (name === "materials") {
+ /* 新增成品材料 */
+ tableDataRow.sType = "2";
+ }
+ if (name === "process") {
+ /* 新增成品工序 */
+ tableDataRow.sType = "3";
+ }
+ }
+ } else {
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === "") {
+ message.warn(commonFunc.showMessage(gdsformconst, "partsNameNotNull")); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ if (name === "materials" && bFinished) {
+ /* 新增成品材料 */
+ tableDataRow.sType = "2";
+ }
+ if (name === "process" && bFinished) {
+ /* 新增成品工序 */
+ tableDataRow.sType = "3";
+ }
+ }
+ }
+ tableData.push(tableDataRow);
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ [`${name}SelectedRowKeys`]: [tableDataRow.sId],
+ });
+ };
+ returnProps.onDataRowDel = async ({ name, tableSelectedRowKeys }) => {
+ const { sModelsId, [`${name}Data`]: tableData, materialsConfig, token } = props;
+ let { materialsDelData, materials0Data: materialsData } = props;
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsData)) {
+ materialsData = [];
+ }
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ let sProcessId = "";
+ let processReturnData = [];
+ if (iIndex > -1) {
+ sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ processReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(itemProcessAssort => {
+ const iProcessIndex = processReturnData.processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId
+ );
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = "del";
+ tableDelData.push(slaveDataFilter);
+ }
+ });
+ processReturnData.processDelData.concat(tableDelData);
+ }
+ /* 删除工序对应的材料 */
+ const materialsFilterDelData = materialsData.filter(item => tableSelectedRowKeys.includes(item.sProcessTbId) && item.sProcessId === sProcessId);
+ let materialsSelectedDelRowKeys = [];
+ if (commonUtils.isNotEmptyArr(materialsFilterDelData)) {
+ materialsFilterDelData.forEach(item => {
+ const materialsChildFilter = materialsData.filter(
+ row => commonUtils.isNotEmptyObject(row.sParentMaterialsId) && row.sParentMaterialsId === item.sId
+ ); /* 删除对应的替代料 */
+ if (commonUtils.isNotEmptyArr(materialsChildFilter)) {
+ materialsChildFilter.forEach(child => {
+ materialsSelectedDelRowKeys.push(child.sId);
+ });
+ }
+ materialsSelectedDelRowKeys.push(item.sId);
+ });
+ }
+ let materialsReturnData = {};
+ if (commonUtils.isNotEmptyArr(materialsSelectedDelRowKeys)) {
+ materialsReturnData = props.onDataRowDel("materials0", true, materialsSelectedDelRowKeys);
+ if (materialsReturnData?.materials0DelData) {
+ materialsReturnData.materials0DelData = materialsReturnData.materials0DelData.concat(materialsDelData);
+ }
+ }
+ props.onSaveState({
+ ...processReturnData,
+ ...materialsReturnData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ };
+
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const {
+ [`${name}Data`]: tableData,
+ sModelsId,
+ masterData,
+ slaveData,
+ controlData,
+ controlSelectedRowKeys,
+ materialsData,
+ materials0Data,
+ processConfig,
+ token,
+ } = props;
+ let { processDelData, materialsDelData } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let sControlId = "";
+ if (iIndex > -1) {
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === "sProcessId" || sFieldName.includes("sProcessName")) {
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = "";
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessParamStr" && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = "工艺参数";
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = "";
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = {
+ ...tableData[iIndex],
+ ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam),
+ };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName");
+ if (iIndex > -1) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys)
+ ? -1
+ : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(itemProcessAssort => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = "del";
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(
+ item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId
+ );
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = "del";
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ });
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex =
+ dropDownDataProcessName[iIndex].sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === "all") {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach(controlTableRow => {
+ const iNewProcessIndex =
+ dropDownDataProcessName[iIndex].sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ });
+ }
+ if (tableData[iIndex].sType === "3") {
+ tableData[iIndex].sControlId = "";
+ tableData[iIndex].sPartsName = "";
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ materials0Data.forEach(materialsItem => {
+ if (materialsItem.sControlId === tableData[iIndex].sControlId && materialsItem.sProcessTbId === tableData[iIndex].sId) {
+ materialsItem.sProcessId = tableData[iIndex].sProcessId;
+ materialsItem.sProcessName = tableData[iIndex].sProcessName;
+ materialsItem.sProcessNo = tableData[iIndex].sProcessNo;
+ materialsItem.sMaterialsProcessNameOrder = tableData[iIndex].iRowNum + "-" + tableData[iIndex].sProcessName;
+ materialsItem.handleType = commonUtils.isEmpty(materialsItem.handleType) ? "update" : materialsItem.handleType;
+ }
+ });
+ addState.materials0Data = materials0Data;
+ }
+ }
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ materialsSelectedRowKeys: [],
+ ...addState,
+ });
+ };
+ returnProps.onViewChoose = ({ name, sName, record }) => {
+ const { sId } = record; /* 控制表主键 */
+ const { slaveData } = props;
+ let { packData } = props;
+ if (name === "process" && sName === "sCombinePartsNameNew") {
+ const { [`${name}Data`]: tableData } = props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === "3") {
+ /* 成品工序跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = {
+ ...packDataFilter[index],
+ ...packRowAdd,
+ };
+ });
+ } else {
+ /* 成品工序跟着合版表走 */
+ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack, index) => {
+ let slaveDataRow = {};
+ let packRowAdd = {};
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId);
+ if (iIndex > -1) {
+ slaveDataRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveDataRow)) {
+ packRowAdd = props.handlePackDataAdd(slaveDataRow);
+ }
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = {
+ ...packDataFilter[index],
+ ...packRowAdd,
+ };
+ });
+ }
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(",");
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ processSelectedRowId: sId /* 工序表选中行sId */,
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === "process" && sName === "sColorSerialMemo") {
+ props.onViewChoose(name, sName, record);
+ } else if (name === "process" && (sName === "sParams" || sName === "sQuoParams")) {
+ const { processConfig } = props;
+ const bSWorkOrderParams = processConfig.gdsconfigformslave.some(item => item.sName === sName && item.sControlName === "sWorkOrder");
+ if (bSWorkOrderParams) {
+ props.onSaveState({
+ sWorkParamsModalVisible: true,
+ });
+ } else {
+ props.onViewClick(name, sName, record);
+ }
+ }
+ };
+ return returnProps;
+};
+
+// 材料表相关事件
+const materialsProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = params => {
+ const { bModalAdd, bFinished } = params;
+ if (bModalAdd) {
+ const { masterConfig } = props;
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials");
+ if (iIndex > -1) {
+ props.onBtnChoose("productMaterials", "materials", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseMaterials");
+ if (iIndex > -1) {
+ props.onBtnChoose("materials", "materials", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ } else {
+ processProps(props).onDataRowAdd(params);
+ }
+ };
+ returnProps.onDataRowDel = ({ name, tableSelectedRowKeys }) => {
+ if (name === "materials0") {
+ /* 删除全部材料时 对应删除替代料 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materials0Data } = props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.error("请选择数据!");
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(materials0Data)) {
+ const materials0ChildData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(materials0ChildData)) {
+ materials0ChildData.forEach(item => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+
+ /* 删除子墨 */
+ const materials0InkData = materials0Data.filter(item => tableSelectedRowKeys.includes(item.sInkFatherMaterialsTbId));
+ if (commonUtils.isNotEmptyArr(materials0InkData)) {
+ materials0InkData.forEach(item => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+
+ const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys, "sId"); /* 全部材料删除 */
+ const materials0ChildReturnData = props.otherTableDel("materials0Child", tableSelectedRowKeys, "sId"); /* 替代料删除 */
+ props.onSaveState({
+ ...materials0ReturnData,
+ ...materials0ChildReturnData,
+ });
+ }
+ } else if (name === "materials1") {
+ /* 删除油墨时 同时删除油墨子集 */
+ /* 从全部材料里 找到对应数据 进行更改 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materials0Data } = props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.error("请选择数据!");
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(materials0Data)) {
+ const iIndex = materials0Data.findIndex(item => tableSelectedRowKeys.includes(item.sId));
+ let materials1Row = {};
+ if (iIndex > -1) {
+ materials1Row = materials0Data[iIndex];
+ }
+
+ const materials0ChildData = materials0Data.filter(
+ item =>
+ commonUtils.isNotEmptyObject(item.sInkBOMId) &&
+ item.sInkBOMId === materials1Row.sInkBOMId &&
+ commonUtils.isNotEmptyObject(item.sInkBOMsSlaveId) &&
+ item.sInkBOMsSlaveId === materials1Row.sInkBOMsSlaveId &&
+ commonUtils.isEmptyObject(item.sInkBOMsMaterialsId)
+ );
+
+ if (commonUtils.isNotEmptyArr(materials0ChildData)) {
+ materials0ChildData.forEach((item, index) => {
+ tableSelectedRowKeys.push(item.sId);
+ });
+ }
+ const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys, "sId");
+ const tableReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+ props.onSaveState({
+ ...materials0ReturnData,
+ ...tableReturnData,
+ });
+ }
+ } else if (name === "materials2" || name === "materials3" || name === "materials1Child") {
+ /* 删除电化铝、油墨子集 */
+ /* 从全部材料里 找到对应数据 进行删除 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materials0Data } = props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.error("请选择数据!");
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(materials0Data)) {
+ const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys, "sId");
+ const tableReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+ props.onSaveState({
+ ...materials0ReturnData,
+ ...tableReturnData,
+ });
+ }
+ } else if (name === "materials0Child") {
+ // 删除替代料
+ const result = props.onDataRowDel("materials0", true, tableSelectedRowKeys) || {};
+ delete result.materials0SelectedRowKeys;
+ props.onSaveState(result);
+ }
+ };
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ if (name === "materials") {
+ const { [`${name}Data`]: tableData, controlData, controlSelectedRowKeys } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === "sType") {
+ if (tableData[iIndex].sType === "2") {
+ tableData[iIndex].sControlId = "";
+ tableData[iIndex].sPartsName = "";
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys)
+ ? -1
+ : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ props.onSaveState({ [`${name}Data`]: tableData });
+ } else if (name === "materials0" || name === "materials1" || name === "materials2" || name === "materials3" || name === "materials1Child") {
+ name = "materials0";
+ const { [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, masterData } = props;
+ const tableDataRow = await props.onDataChange("materials0", sFieldName, changeValue, sId, dropDownData, true);
+ if (sFieldName === "dPackageQty") {
+ if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ const iControlIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ if (masterData?.sBusinessType === "MergeVersion") {
+ tableDataRow.dAuxiThousheetQty = ((controlData[iControlIndex].iCombineNum * 1000.0) / tableDataRow.dPackageQty).toFixed(3);
+ } else {
+ tableDataRow.dAuxiThousheetQty = ((controlData[iControlIndex].dSinglePQty * 1000.0) / tableDataRow.dPackageQty).toFixed(3);
+ }
+ }
+ }
+ }
+ if (tableDataRow === undefined) return;
+
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+
+ props.onSaveState({ [`${name}Data`]: tableData });
+ } else if (name === "materials0Child") {
+ /* 替代料 */
+ name = "materials0";
+ const { [`${name}Data`]: tableData, controlData, controlSelectedRowKeys } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (sFieldName === "dPackageQty") {
+ if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ const iControlIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableDataRow.dAuxiThousheetQty = ((controlData[iControlIndex].dSinglePQty * 1000.0) / tableDataRow.dPackageQty).toFixed(3);
+ }
+ }
+ }
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ props.onSaveState({ [`${name}Data`]: tableData });
+ }
+ };
+ returnProps.onViewChoose = ({ name, sName, record }) => {
+ const { sId } = record; /* 控制表主键 */
+ const { slaveData } = props;
+ if (name === "materials" && sName === "sCombinePartsNameNew") {
+ const { [`${name}Data`]: tableData } = props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === "2") {
+ /* 成品材料跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = {
+ ...packDataFilter[index],
+ ...packRowAdd,
+ };
+ });
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(",");
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ materialsSelectedRowId: sId /* 工序表选中行sId */,
+ openTable: "materials",
+ combinePartsSelectedRowKeys,
+ });
+ }
+ };
+ return returnProps;
+};
+
+// 合版信息相关事件
+const packProps = props => {
+ const returnProps = {};
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const { [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (sFieldName === "dCombineQty") {
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const dCurrentSqure = commonUtils.convertFixNum(
+ commonUtils.isNull(tableDataRow.dProductWidth, 0) *
+ commonUtils.isNull(tableDataRow.dProductLength, 0) *
+ commonUtils.isNull(tableDataRow.dCombineQty, 0),
+ 2
+ );
+ tableDataRow.dSReserve1 = commonUtils.convertFixNum(dCurrentSqure, 2);
+ if (tableSelectedRowKeys.length === 1) {
+ tableDataRow.dCoefficient = 100; /* 单拼 系数= 100% */
+ } else {
+ const filterData = tableData.filter(child => tableSelectedRowKeys.includes(child.sId) && child.sId !== tableDataRow.sId);
+ let dSumSqure = dCurrentSqure;
+ /* 算面积之和 */
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach(item => {
+ const iFIndex = tableData.findIndex(key => key.sId === item.sId);
+ const dSqure =
+ commonUtils.isNull(tableData[iFIndex].dProductWidth, 0) *
+ commonUtils.isNull(tableData[iFIndex].dProductLength, 0) *
+ commonUtils.isNull(tableData[iFIndex].dCombineQty, 0);
+ dSumSqure += dSqure;
+ });
+ }
+ tableDataRow.dCoefficient = Math.round(commonUtils.convertFixNum(dCurrentSqure / dSumSqure, 2) * 100);
+ console.log("当前系数", Math.round(tableDataRow.dCoefficient));
+ /* 算其他系数 */
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach((row, index) => {
+ const iFIndex = tableData.findIndex(key => key.sId === row.sId);
+ const dSqure = tableData[iFIndex].dProductWidth * tableData[iFIndex].dProductLength * tableData[iFIndex].dCombineQty;
+ const dCoefficient = commonUtils.convertFixNum(dSqure / dSumSqure, 2) * 100;
+ const addState = {};
+ addState.dCoefficient = Math.round(dCoefficient);
+ console.log("其他系数", Math.round(dCoefficient));
+ if (iFIndex > -1) {
+ tableData[iFIndex] = { ...tableData[iFIndex], ...addState };
+ }
+ });
+ }
+ }
+ }
+ }
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ props.onSaveState({ [`${name}Data`]: tableData });
+ };
+ return returnProps;
+};
+
+// 入口
+const ProcessCardPackTableTreeNew = baseProps => {
+ const commonPackProps = { ...baseProps, ...CommonPackEvent(baseProps) };
+ const otherProps = {
+ slaveProps: slaveProps(commonPackProps),
+ controlProps: controlProps(commonPackProps),
+ processProps: processProps(commonPackProps),
+ materialsProps: materialsProps(commonPackProps),
+ packProps: packProps(commonPackProps),
+ };
+ const props = ProcessCardPackTableTreeNewEvent({ ...commonPackProps, ...otherProps });
+ const { masterData } = props;
+ if (!masterData) return "";
+
+ return ;
+};
+
+// 包一层Form
+const ProcessCardPackTableTreeNewComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})(props => {
+ props.onReturnForm(props.form);
+ if (!props.currentForm) {
+ props.setForm(props.form);
+ }
+
+ return (
+
+ );
+});
+
+// ToolBar
+const ToolBarComponent = props => {
+ return (
+
+
+
+ );
+};
+
+// 审核状态
+const AvatarComponent = props => {
+ const { masterData } = props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ if (!imgSrc) return "";
+ return (
+
+ );
+};
+
+// 主表
+const MasterComponent = props => {
+ const { masterConfig: masterConfigOld } = props;
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ const delList = ["dProductQty", "sCustomerName", "sProductClassifyName", "sProductName", "sProductStyle"];
+
+ delList.forEach(delName => {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === delName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+
+ addProps.masterConfig = masterConfig;
+ }
+
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ return (
+
+
+
+ );
+};
+
+// 从表
+const SlaveComponent = props => {
+ const { sTableType, slaveData, slavePagination } = props;
+
+ let slaveTreeData = slaveData;
+ const bTree = sTableType === "single" && slaveData?.some(item => !!item.sFatherSlaveId);
+
+ if (bTree) {
+ slaveTreeData = useMemo(() => commonUtils.genTreeByArr(slaveData, "sNodeId", "sFatherSlaveId"), [JSON.stringify(slaveData)]);
+ }
+
+ const pagination = {
+ total: slaveData?.length || 0,
+ current: slavePagination?.current || 1,
+ size: "large",
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes("slave", props),
+ onKeyDown: props.onKeyDown,
+ data: slaveTreeData,
+ tableProps: {
+ rowSelection: null,
+ pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ bShowTreeAddChild: true,
+ },
+ onExpand: props.onExpandTreeSingle,
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ };
+
+ return (
+
+
+
+ );
+};
+
+// 控制表
+const ControlComponent = props => {
+ const { masterConfig, slaveData = [], slaveSelectedRowKeys = [], controlConfig, controlData = [], controlSelectedRowKeys = [] } = props;
+
+ if (!controlConfig) return "";
+
+ let bControlShow = masterConfig.gdsconfigformslave.find(item => item.sControlName === "tbControl")?.bVisible;
+ bControlShow = bControlShow === undefined ? true : bControlShow;
+ if (!bControlShow) return "";
+
+ // 关联slave合版进行筛选control的数据
+ let controlTableData = [];
+ const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ const slaveSelectedRow = iSlaveIndex !== -1 ? slaveData[iSlaveIndex] : { sProductNo: 0 };
+ if (iSlaveIndex !== -1) {
+ controlData.forEach(item => {
+ if (item.sCombinedMemo && item.sCombinedMemo !== "合版信息") {
+ const sCombinedMemoArr = commonUtils.convertStrToObj(item.sCombinedMemo, []);
+
+ const slaveSelectedRowChildren = props.handleGetSlaveSelectedRowChildren(slaveData, slaveSelectedRow.sId);
+ const slaveRows = [slaveSelectedRow, ...slaveSelectedRowChildren];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo && slaveRows.some(slaveRow => slaveRow.sProductNo === item.sProductNo)).length;
+ if (len) {
+ controlTableData.push(item);
+ }
+ } else {
+ controlTableData.push(item);
+ }
+ });
+ } else {
+ controlTableData = controlData.slice(0);
+ }
+ // 之前代码默认会选中第一行,第一行可能已经被筛选掉,需要判断
+ if (
+ controlTableData.length &&
+ controlSelectedRowKeys[0] !== controlTableData[0].sId &&
+ !controlTableData.map(item => item.sId).includes(controlSelectedRowKeys[0])
+ ) {
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ props.onSaveState({
+ controlSelectedRowKeys: [controlTableData[0].sId],
+ });
+ }
+ }
+
+ const { setCopy } = props.handleGetIcon();
+
+ const bShowProcess = masterConfig.gdsconfigformslave.some(item => item.sControlName === "BtnChooseProcess");
+
+ const bShowMaterials = masterConfig.gdsconfigformslave.some(item => item.sControlName === "BtnChooseMaterials");
+
+ const chooseProcessConfigRow = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseProcess");
+ const chooseMaterialsConfigRow = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseMaterials");
+
+ const bDragConfig = controlConfig.gdsconfigformslave.find(item => item.sControlName === "bTableDrag")?.bVisible || false;
+
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes("control", props),
+ data: commonUtils.genTreeByArr(controlTableData, "sNodeId", "sControlParentId"),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy,
+ setProcess: bShowProcess,
+ setMaterial: bShowMaterials,
+ bShowTreeAdd: true,
+ bShowTreeAddChild: true,
+ bShowTreeDel: true,
+ bShowTreeCopyAll: true,
+ setNoCommonOperate: true,
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ AutoTableHeight: 232,
+ },
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ onMoveRow: props.onMoveRow,
+ isDragAndDrop: bDragConfig,
+ bRowClickRepeat: true,
+ bRowClick: true,
+ };
+
+ return (
+
+
+
+ );
+};
+
+// 其他表布局
+const OtherComponent = props => {
+ const { app, materialsChildInfoList } = props;
+
+ if (materialsChildInfoList === undefined) return "";
+
+ const { commonConst } = app;
+
+ const [processTabValue, setProcessTabValue] = useState("processInfo");
+ const processInfo = commonFunc.showMessage(commonConst, "processInfo"); // 工序信息
+ const dailyInfo = commonFunc.showMessage(commonConst, "dailyInfo"); // 日志信息
+ const visionInfo = "改版记录";
+
+ const [materialsTabValue, setMaterialsTabValue] = useState(12);
+
+ const panelExtra = (type, { selfName, selfId } = {}) => {
+ let str = "";
+ if (type === "material") {
+ const radioConfigArr = props.formData.filter(item => item.sGrd?.includes(type) && item.bGrdVisible);
+
+ str = (
+
+ {
+ setMaterialsTabValue(e.target.value);
+ }}
+ >
+ {radioConfigArr.map((child, index) => {
+ const radioTitle = child.showName;
+ const radioValue = index + 2 + 10;
+ return {radioTitle};
+ })}
+
+
+ );
+ } else if (type === "process") {
+ str = (
+
+ {
+ setProcessTabValue(e.target.value);
+ }}
+ >
+ {processInfo}
+ {/* {bSplitProcess ? {productProcessInfo} : ""} */}
+
+
+ );
+ } else if (type === "daily") {
+ str = (
+
+
+ {dailyInfo}
+
+
+ );
+ } else if (type === "vision") {
+ str = (
+
+
+ {visionInfo}
+
+
+ );
+ } else if (selfName) {
+ str = (
+
+
+ {selfName}
+
+
+ );
+ }
+ return str;
+ };
+
+ const [activeKey, setActiveKey] = useState(["process", "material", "vision", ...materialsChildInfoList]);
+ const getHeaderIcon = tablename => (
+
+ );
+
+ // 过滤出不是替代料的子表
+ const materialsChildInfoListFilter = materialsChildInfoList.filter(tablename => props[`${tablename}Config`]?.sChinese !== "替代料") || [];
+
+ return (
+
+
+ {processTabValue === "processInfo" && }
+
+
+
+
+
+ {materialsChildInfoListFilter.map(tablename => {
+ const { sChinese } = props[`${tablename}Config`];
+ return (
+
+
+
+ );
+ })}
+
+ {props.visionConfig && (
+
+
+
+ )}
+
+ {props.dailyConfig && (
+
+
+
+ )}
+
+ );
+};
+
+// 工序表
+const ProcessComponent = props => {
+ const { processConfig, controlSelectedRowKeys } = props;
+ if (!processConfig) return "";
+
+ const processTableId = useRef(`processTableId_${commonUtils.createSid()}`);
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const bProcessSort = processConfig.gdsconfigformslave.find(item => item.sControlName === "handleSort").bVisible || false;
+
+ const baseData = commonBusiness.getTableTypes("process", props);
+ const processPropsType = {
+ ...baseData,
+ data: props.dataFilter(props, baseData, "process"),
+ filteredValue: controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ sticky: true,
+ // sticky: layoutChange ? { offsetHeader: stickyHeight } : true
+ },
+ onDrag: props.onDrag,
+ isDragAndDrop: false,
+ setOpterationColumn: "Y",
+ bModalAdd: true,
+ dragHandle: bProcessSort && props.enabled,
+ selfTableHeight: 330,
+ noVlist: true,
+ tableId: processTableId.current,
+ };
+
+ const getProcessTable = () => ;
+
+ const showLeftConfig = processConfig.gdsconfigformslave.find(item => item.sControlName === "bShowLeft");
+
+ if (showLeftConfig) {
+ const { iColValue, sChinese: processShowTitle } = showLeftConfig;
+
+ const processTitleWidth = processConfig.gdsconfigformslave.find(item => item.sControlName === "titleWidth")?.sDefault;
+ const commonViewDragableProps = {
+ ...props,
+ hideTabsNav: true,
+ processTitleWidth,
+ comparedTableId: processTableId.current,
+ sParamData: [
+ {
+ sParamType: "sWorkOrder",
+ sParamName: "工单参数",
+ },
+ ],
+ tableName: "process",
+ };
+ return (
+
+
+ {getProcessTable()}
+
+
+ {processShowTitle && (
+
+ {processShowTitle}
+
+ )}
+
+
+
+ );
+ } else {
+ return getProcessTable();
+ }
+};
+
+// 材料表
+const MaterialsComponent = props => {
+ const { materialsInfoList = [], materialsChildInfoList = [], materialsTabValue } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ // 主材料表格配置
+ const materialsTablePropsList = {};
+ materialsInfoList.forEach((item, index) => {
+ const baseProps = commonBusiness.getTableTypes(`materials${index}`, props);
+
+ /* 全部材料 是否可排序 */
+ const bMaterialsSort = baseProps.config.gdsconfigformslave.find(item => item.sControlName === "handleSort")?.bVisible;
+
+ materialsTablePropsList[`materialsTable${index}Props`] = {
+ ...baseProps,
+ onKeyDown: props.onKeyDown,
+ data: props.materialsFilterNew(props, baseProps, `materials${index}`),
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ },
+ setOpterationColumn: "Y",
+ noVlist: true,
+ dragHandle: bMaterialsSort,
+ selfTableHeight: 82,
+ };
+ });
+
+ // 子材料表配置
+ const materialsChildTablePropsList = {};
+ // 只过滤出替代料
+ const materialsChildInfoListFilter = materialsChildInfoList.filter(tablename => props[`${tablename}Config`]?.sChinese === "替代料");
+ materialsChildInfoListFilter.forEach(item => {
+ const baseProps = commonBusiness.getTableTypes(`${item}`, props);
+ materialsChildTablePropsList[`${item}TableProps`] = {
+ ...baseProps,
+ data: props.materialsFilterNew(props, baseProps, item),
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ },
+ onDrag: props.onDrag,
+ setOpterationColumn: "Y",
+ noVlist: true,
+ selfTableHeight: 82,
+ };
+ });
+
+ return materialsInfoList.map((item, index) => {
+ let num = 12 + index;
+ const materialsOtherPropsType = materialsTablePropsList[`materialsTable${index}Props`];
+ let sWidth = "100%";
+ let sRightWidth = "100%";
+
+ /* 找到子级 左右列 */
+ let materialsChildTableProps;
+ let materialsChildTableTitle = "子表记录";
+ if (commonUtils.isNotEmptyArr(materialsChildInfoListFilter)) {
+ const iIndex = materialsChildInfoListFilter.findIndex(child => child.includes(item));
+ if (iIndex > -1) {
+ materialsChildTableProps = materialsChildTablePropsList[`${item}ChildTableProps`];
+ sWidth = "58.5%";
+ sRightWidth = "42%";
+ materialsChildTableTitle = materialsChildTableProps.config.sChinese || "";
+ }
+ } else {
+ sWidth = "100%";
+ }
+
+ // 限制编辑-劲嘉定制
+ if (index === 0 || index === 3) {
+ materialsOtherPropsType.otherlimitDisabled = params => {
+ let { enabledNew, record, sName } = params;
+ if (!["101251240115016082594412050"].includes(props.sModelsId)) return enabledNew;
+ if (enabledNew && ["dAuxiThousheetQty"].includes(sName) && record.dPackageQty > 0) {
+ enabledNew = false;
+ }
+ return enabledNew;
+ };
+ }
+
+ return (
+ materialsTabValue === num && (
+
+
+
+ {/* {index === 0 && (
+
+
+
+ )} */}
+
+ {materialsChildTableProps ? (
+
+
+ {" "}
+
+ {materialsChildTableTitle}
+ {" "}
+
+
+
+ ) : (
+ ""
+ )}
+
+ )
+ );
+ });
+};
+
+// 子材料表
+const MaterialsChildComponent = props => {
+ const { materialsChildName } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const baseProps = commonBusiness.getTableTypes(materialsChildName, props);
+ const materialsChildProps = {
+ ...baseProps,
+ data: props.materialsFilterNew(props, baseProps, materialsChildName),
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ },
+ onDrag: props.onDrag,
+ setOpterationColumn: "Y",
+ noVlist: true,
+ selfTableHeight: 82,
+ };
+
+ return ;
+};
+
+// 改版表
+const VisionComponent = props => {
+ const { visionData = [], visionPagination } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const pagination = {
+ total: visionData.length,
+ current: visionPagination?.current || 1,
+ size: "large",
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+
+ const visionRecordTableProps = {
+ ...commonBusiness.getTableTypes("vision", props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ setOpterationColumn: "Y",
+ selfTableHeight: 82,
+ noVlist: true,
+ },
+ };
+
+ return ;
+};
+
+// 日志表
+const DailyComponent = props => {
+ const { dailyData = [], dailyPagination } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const pagination = {
+ total: dailyData.length,
+ current: dailyPagination?.current || 1,
+ size: "large",
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+
+ const dailyRecordTableProps = {
+ ...commonBusiness.getTableTypes("daily", props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ setOpterationColumn: "Y",
+ selfTableHeight: 82,
+ noVlist: true,
+ },
+ };
+
+ return ;
+};
+
+export default CommonBase(CommonSales(ProcessCardPackTableTreeNew));
diff --git a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.less b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.less
new file mode 100644
index 0000000..bfbbb79
--- /dev/null
+++ b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.less
@@ -0,0 +1,93 @@
+.ProcessCardPackTableTreeNew {
+ width: 100vw;
+ height: 100vh;
+ padding-top: 90px;
+ background-color: #FFF;
+}
+
+.content {
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+}
+
+.header {
+ position: fixed;
+ width: 100%;
+ z-index: 999;
+ top: 60px;
+ height: 30px;
+ padding: 0px;
+ line-height: inherit;
+ background: transparent;
+
+ :global {
+ .ant-menu {
+ line-height: inherit;
+ }
+ }
+}
+
+.avatar {
+ height: 0;
+ line-height: 0;
+
+ :global {
+ img {
+ position: fixed;
+ width: 93px;
+ height: 93px;
+ right: 10px;
+ z-index: 1000;
+ top: 122px;
+ /* 解决审核图标挡住操作按钮 */
+ object-fit: contain;
+ }
+ }
+}
+
+.masterView {
+ :global {
+ .searchMainForm {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ }
+}
+
+.slaveTable {
+ width: 100%;
+ height: auto;
+ padding: 0 10px 0 10px;
+}
+
+.controlTable {
+ width: 100%;
+ height: auto;
+ padding: 0 10px 0 10px;
+ position: sticky;
+ top: 0;
+ z-index: 999;
+}
+
+.collapse {
+ width: calc(100% - 20px);
+ height: auto;
+ margin: 0 10px 0 10px;
+}
+
+.delAll {
+ position: absolute;
+ top: -22px;
+ right: 0;
+ z-index: 15;
+
+ :global {
+ .ant-btn {
+ height: 22px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/components/Manufacture/SplitPaste.less b/src/components/Manufacture/SplitPaste.less
new file mode 100644
index 0000000..7ed51c0
--- /dev/null
+++ b/src/components/Manufacture/SplitPaste.less
@@ -0,0 +1,89 @@
+@import "~@/variable.less";
+.SplitListPartsName {
+ height: 100%
+}
+.rowWrapper{
+ padding: 8px;
+ box-sizing: border-box;
+ padding-bottom: 0;
+}
+.card{
+ padding: 0;
+}
+.introSpan {
+ display: block;
+ text-align: left;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-size: 14px;
+ padding: 0 8px;
+ font-weight: 700;
+ background-color: #fff;
+ border: 1px solid @border-color-base;
+ line-height: 25px;
+ height: 28px;
+ border-radius: @border-radius-base;
+}
+.SplitListTitle {
+ height: 39px;
+ line-height: 39px;
+ text-align: center;
+ background-color: #f5f5f5;
+ font-size: 13px;
+ font-weight: bold;
+}
+.splitPaste{
+ line-height: 14px;
+ .treeContainer{
+ height: 100%;
+ border: 1px solid #d9d9d9;
+ border-right: none;
+ }
+ .list{
+ box-sizing: border-box;
+ border: 1px solid @border-color-base;
+ border-bottom: none;
+ }
+ .lastRow{
+ border: 1px solid @border-color-base;
+ border-top: none;
+ }
+ .borderRight{
+ border-right: 1px solid @border-color-base;
+ }
+ .borderBottom{
+ border-bottom: 1px solid @border-color-base;
+ }
+}
+.splitTree{
+ height: 350px;
+ overflow-y: auto;
+}
+.splitContainer{
+ height: 350px;
+ overflow-y: auto;
+}
+.SplitListLine{
+ position: absolute;
+ height: 100%;
+ width: 1px;
+ left: 16.6%;
+ border-right:1px solid @border-color-base;
+}
+.SplitListLineSec{
+ position: absolute;
+ height: 100%;
+ width: 1px;
+ left: 25%;
+ border-right:1px solid @border-color-base;
+}
+.process{
+ display: block;
+ width: 100%;
+ height: 44px;
+ line-height: 44px;
+ font-size: 16px;
+ text-align: center;
+}
diff --git a/src/components/Manufacture/WorkOrder/SplitPaste.js b/src/components/Manufacture/WorkOrder/SplitPaste.js
new file mode 100644
index 0000000..9d91f88
--- /dev/null
+++ b/src/components/Manufacture/WorkOrder/SplitPaste.js
@@ -0,0 +1,441 @@
+/* eslint-disable */
+/* eslint-disable function-paren-newline */
+import React, { Component } from 'react';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col, List, Card, Checkbox, Select, Form, Tree } from 'antd';
+import ShowType from '@/components/Common/CommonComponent';
+import * as commonUtils from '@/utils/utils';
+import splitstyles from '../SplitPaste.less';
+import commonConfig from '../../../utils/config';
+const { TreeNode } = Tree;
+import file from '@/assets/file.svg';
+import file_single from '@/assets/file_single.svg';
+// import * as commonServices from '../../../services/services';
+
+const FormItem = Form.Item;
+
+class SplitPaste extends Component {
+ constructor(props) {
+ super(props);
+ this.activeTree = [];
+ }
+
+ componentDidMount() {
+ this.props.onSaveState({
+ masterData: {...this.props.masterData, sAllParam: undefined,
+ sAllPartsName: undefined,
+ sFormulaLengthSize: undefined,
+ sFormulaWidthSize: undefined,
+ sProductClassifyId: undefined,
+ sProductClassifyName: undefined,
+ },
+ sBackProcessClassifyData: undefined
+ })
+ this.getTreeData();
+ // const height = document.getElementsByClassName('split-container')[0].offsetHeight;
+ // document.getElementsByClassName('split-tree')[0].style.height = height > 50 ? `${height + 0.5}px` : 200 + 'px';
+ }
+
+ componentDidUpdate() {
+ // document.getElementsByClassName('split-tree')[0].style.height = 0 + 'px';
+ // const height = document.getElementsByClassName('split-container')[0].offsetHeight;
+ // document.getElementsByClassName('split-tree')[0].style.height = height > 50 ? `${height + 0.5}px` : 200 + 'px';
+ }
+
+ getTreeData = async () => {
+ const {
+ masterConfig, slaveFilterCondition,
+ } = this.props;
+ const filterTreeConfigArr = masterConfig.gdsconfigformslave.filter(item => item.bTree);
+ if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) {
+ const filterTreeConfig = filterTreeConfigArr[0];
+ this.handleGetFilterTreeData(filterTreeConfig, slaveFilterCondition, 1);
+ }
+ }
+
+ handleGetFilterTreeData = async (masterConfig, slaveFilterCondition, page, slaveOrderBy) => {
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ await this.props.handleGetTreeDataSet({
+ name: 'master',
+ configData: masterConfig,
+ condition: {
+ pageNum,
+ pageSize: commonConfig.pageSize,
+ bFilter: slaveFilterCondition,
+ sFilterOrderBy: slaveOrderBy,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ if(this.props.treeData[0] && this.props.treeData[0].children[0]) {
+ this.handleTreeSelect([this.props.treeData[0].children[0].sId],
+ {
+ node: { treeNode: this.props.treeData[0].children[0] }
+ }
+ )
+ }
+ };
+
+ handleTreeSelect = async (e, select) => {
+ if (e[0]) {
+ this.activeTree = e;
+ const selected = select.node.treeNode;
+ this.props.onMasterChange('master', 'sProductClassifyName', {
+ sAllParam: undefined,
+ sAllPartsName: selected.sAllPartsName,
+ sFormulaLengthSize: undefined,
+ sFormulaWidthSize: undefined,
+ sProductClassifyId: selected.sId,
+ sProductClassifyName: selected.sName,
+ });
+ }
+ }
+
+ handleToggle = () => {
+ this.props.onToggle();
+ };
+
+ handleViewClick = (name, sName, record) => {
+ this.props.onViewClick(name, sName, record);
+ this.props.onSaveState({ fastOrderModalVisible: false });
+ };
+
+ renderTreeNodes = (data) => {
+ return data.map((item) => {
+ if (item.children && item.children.length > 0) {
+ return (
+
+ {this.renderTreeNodes(item.children)}
+
+ );
+ }
+ return (}
+ />);
+ });
+ };
+
+ render() {
+ const {
+ masterConfig, enabled, sBackProcessClassifyData, checkProcessClassifyData, sModelsId,
+ } = this.props;
+ let { masterData } = this.props;
+ masterData = masterData === undefined ? {} : masterData;
+ const expand = true;
+ const { getFieldDecorator } = this.props.form;
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ const newConfig = {};
+ if (commonUtils.isNotEmptyObject(masterConfig) && masterConfig.gdsconfigformslave.length > 0) {
+ const filterConfig = masterConfig.gdsconfigformslave.filter(item => (item.sName.indexOf('dSumPQty') > -1 || item.sName.indexOf('sMaterialsName') > -1 || item.sName.indexOf('iPrintModePo') > -1 || item.sName.indexOf('iPositiveColor') > -1));
+ filterConfig.forEach((childNew) => {
+ const child = { ...childNew };
+ child.bVisible = true;
+ if (child.sName.indexOf('dSumPQty') > -1) {
+ child.placeholder = 'P数';
+ } else if (child.sName.indexOf('sMaterialsName') > -1) {
+ child.placeholder = '选择材料';
+ } else if (child.sName.indexOf('iPrintModePo') > -1) {
+ child.placeholder = '选择单双面';
+ } else if (child.sName.indexOf('iPositiveColor') > -1) {
+ child.placeholder = '印刷颜色';
+ }
+ let enabledNew = (enabled && !child.bReadonly && !child.specialControl);
+ if (child.iTag === 1) {
+ enabledNew = false;
+ } else if (child.iTag === 3) {
+ enabledNew = true;
+ }
+ const sMemo = child.sName.toLowerCase().endsWith('memo');
+ const formItemLayout = { labelCol: { span: 2 }, wrapperCol: { span: 18 } };
+ const showTypeProps = {
+ form: this.props.form,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ onChange: this.props.onMasterChange,
+ showConfig: child,
+ formItemLayout: sMemo ? formItemLayout : {},
+ textArea: sMemo,
+ enabled: enabledNew,
+ dataValue: masterData[child.sName],
+ bTable: false,
+ };
+ newConfig[child.sName] = showTypeProps;
+ });
+ }
+
+
+
+ /* 主表根据产品分类增加参数1,参数2,参数3,参数4,展开尺寸 */
+ const modalFilterConfig = masterConfig.gdsconfigformslave.filter(item => (item.sName.indexOf('dProductQty') > -1 || item.sName.indexOf('sProductName') > -1 || item.sName.indexOf('sCustomerName') > -1 || item.sName.indexOf('sProductClassifyName') > -1 || item.sName.indexOf('sProductStyle') > -1));
+ const formItemLayout = { labelCol: { span: 2 }, wrapperCol: { span: 18 } };
+ const fullFormItemLayout = { labelCol: { span: 0 }, wrapperCol: { span: 24, offset: 0 } };
+ const halfFormItemLayout = { labelCol: { span: 0 }, wrapperCol: { span: 24, offset: 0 } };
+
+ return (
+
+
+
+
+ {
+ modalFilterConfig.map((child, index) => {
+ const sMemo = child.sName.toLowerCase().endsWith('memo');
+ const iOrder = sMemo ? 100 : child.iOrder > 100 ? 100 : child.iOrder; /* 排序 */
+ let enabledNew = (enabled && !child.bReadonly && !child.specialControl);
+ if (child.iTag === 1) {
+ enabledNew = false;
+ } else if (child.iTag === 3) {
+ enabledNew = true;
+ }
+ const showTypeProps = {
+ name: 'master',
+ form: this.props.form,
+ formId: sModelsId,
+ record: masterData,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ getDateFormat: this.props.getDateFormat,
+ onChange: this.props.onMasterChange,
+ onViewClick: this.handleViewClick,
+ showConfig: child,
+ formItemLayout: sMemo ? formItemLayout : {},
+ textArea: sMemo,
+ enabled: enabledNew,
+ dataValue: masterData[child.sName],
+ bTable: false,
+ itemLabel: child.sName === 'sType' ? 'hide' : null,
+ onFilterDropDownData: this.props.onFilterDropDownData,
+ };
+ return (
+
+
+
+ );
+ })
+ }
+
+
+
+
+
+ 产品分类
+
+
}
+ onSelect={this.handleTreeSelect}
+ selectedKeys={this.activeTree}
+ defaultExpandAll={true}
+ >
+ {this.renderTreeNodes(this.props.treeData)}
+
+
+
+
+ {allPartsName.length > 0 && Object.keys(newConfig).length > 4 ?
+ (
+
+
+ {
+ i === 0 ?
+
+ 部件信息
+
+ : null
+ }
+
+
+
+ {sPartsName}
+
+
+ {
+ newConfig[`dSumPQty${sPartsName}`] &&
+ }
+
+
+ {
+ newConfig[`sMaterialsName${sPartsName}`] &&
+ }
+
+
+
+
+
+ {
+ i === 0 ?
+ 印刷颜色
+
+ : null
+ }
+
+
+
+ {
+ newConfig[`iPrintModePo${sPartsName}`] &&
+ }
+
+
+ {
+ newConfig[`iPositiveColor${sPartsName}`] &&
+ }
+
+
+
+
+
+ {
+ i === 0 ?
+ 工序
+
+ : null
+ }
+
+
+ {sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' ?
+ (item.sType !== '3' && (item.sPartsName === sPartsName || item.sPartsName === '')))}
+ size="small"
+ renderItem={item => (
+
+
+
+
+ (card.sId === item.sId && card.sPartsName === sPartsName)).length > 0}
+ onChange={(e) => {
+ this.props.handleProcessChange(e, item, sPartsName);
+ }}
+ title={item}
+ >
+ {item.sName}
+
+
+
+
+ {getFieldDecorator(`${item.sId + sPartsName}`, {
+ })(
+ )}
+
+
+
+
+
+ )}
+ />
+ : ''}
+
+
+
+
+
+
+ )}
+ />
+ : ''}
+
+
+
+ {sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' ?
+
+ 成品工序
+
+ : null
+ }
+
+ {sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' ?
+ (item.sType === '3'))}
+ size="small"
+ renderItem={item => (
+
+
+
+
+ (card.sId === item.sId)).length > 0}
+ onChange={(e) => {
+ this.props.handleProcessChange(e, item, '');
+ }}
+ title={item}
+ >
+ {item.sName}
+
+
+
+
+ {getFieldDecorator(`${item.sId}`, {
+ })(
+ )}
+
+
+
+
+
+ )}
+ />
+ : ''}
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default SplitPaste;
diff --git a/src/components/Manufacture/WorkOrder/WorkOrder.js b/src/components/Manufacture/WorkOrder/WorkOrder.js
new file mode 100644
index 0000000..b2dea91
--- /dev/null
+++ b/src/components/Manufacture/WorkOrder/WorkOrder.js
@@ -0,0 +1,4520 @@
+/* eslint-disable prefer-destructuring,no-loop-func */
+import React, { Component } from 'react';
+import moment from 'moment';
+import '@ant-design/compatible/assets/index.css';
+import { Form } from '@ant-design/compatible';
+import {
+ Modal,
+ Layout,
+ Spin,
+ Avatar,
+ Select,
+ message,
+ Button,
+ Table,
+ Checkbox,
+ Row,
+ Col,
+ Slider,
+} from 'antd';
+import AddIcon from '@/assets/add.svg';
+import DisableAddIcon from '@/assets/disableadd.svg';
+import DelIcon from '@/assets/delete.svg';
+import DisableDelIcon from '@/assets/disabledelete.svg';
+import CopyIcon from '@/assets/copy.svg';
+import CopyAllIcon from '@/assets/copyall.svg';
+import DisableCopyIcon from '@/assets/disablecopy.svg';
+import DisableCopyAllIcon from '@/assets/disablecopyall.svg';
+import MateriallIcon from '@/assets/material.svg';
+import DisableMateriallIcon from '@/assets/disablematerial.svg';
+import ProcessIcon from '@/assets/process.svg';
+import DisableProcessIcon from '@/assets/disableprocess.svg';
+import ProcessUp from '@/assets/processUp.svg';
+import ProcessDown from '@/assets/processDown.svg';
+import DisableProcessUp from '@/assets/disableprocessUp.svg';
+import DisableProcessDown from '@/assets/disableprocessDown.svg';
+import ProcessTop from '@/assets/processTop.svg';
+import DisableProcessTop from '@/assets/disableprocessTop.svg';
+import ProcessBottom from '@/assets/processBottom.svg';
+import DisableProcessBottom from '@/assets/disableprocessBottom.svg';
+import CommonSales from '@/components/Common/CommonBillEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import CommonView from '@/components/Common/CommonView';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import commonConfig from '@/utils/config';
+import * as commonServices from '@/services/services';/* 服务类 */
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+import CommonListSelectFlex from '@/components/Common/CommonListSelectFlex';/* 可编辑的选择界面 */
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';/* 树形选择界面 */
+import SlavesInfo from '@/components/Common/SlavesInfo';
+import ContextMenuModal from '@/components/Common/ContextMenuModal';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import ShowType from '@/components/Common/CommonComponent';
+import selfstyles from '../index.less';
+import SplitPaste from './SplitPaste';
+
+const { Header, Content, Sider } = Layout;
+const { Option } = Select;
+const { confirm } = Modal;
+
+class WorkOrder extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+
+ };
+ // this.props.onSaveState({
+ // checkProcessClassifyData: [], /* 选择工序分类数据 */
+ // sBackProcessData: [], /* 后道工艺数据 */
+ // controlConfig: {}, /* 控制表表配置 */
+ // controlColumn: [], /* 显示的控制表表头 */
+ // controlShowConfig: [], /* 控制表显示配置 */
+ // controlData: [], /* 控制表数据 */
+ // controlDelData: [], /* 控制表数据 */
+ // controlSelectedRowKeys: [], /* 控制表数据 */
+ //
+ // materialsConfig: {}, /* 材料表表配置 */
+ // materialsColumn: [], /* 显示的材料表表头 */
+ // materialsShowConfig: [], /* 材料表显示配置 */
+ // materialsData: [], /* 材料表数据 */
+ // materialsDelData: [], /* 材料表数据 */
+ // materialsSelectedRowKeys: [], /* 材料表数据 */
+ //
+ // processConfig: {}, /* 工序表表配置 */
+ // processColumn: [], /* 显示的工序表表头 */
+ // processShowConfig: [], /* 工序表显示配置 */
+ // processData: [], /* 工序表数据 */
+ // processDelData: [], /* 工序表数据 */
+ // processSelectedRowKeys: [], /* 材料表数据 */
+ // });
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ let {
+ controlColumn, materialsColumn, processColumn, colorColumn,
+ } = nextProps;
+ const { formData, currentId } = nextProps;
+ if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ /* bGrd代表是否是表格 */
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ const checkConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0];
+ const checkColumn = commonFunc.getHeaderConfig(checkConfig);
+
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderControl'.toUpperCase())[0];
+ controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn);
+
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase())[0];
+ materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn);
+
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderProcess'.toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId');
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ processColumn = commonFunc.getHeaderConfig(processConfig, processColumn);
+ let colorConfigGrdVisible;
+ const colorConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftworkorderparam'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(colorConfigTrue)) {
+ colorConfigGrdVisible = colorConfigTrue.bGrdVisible;
+ if (colorConfigGrdVisible) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ }
+ }
+
+ let addState = {};
+ const colorConfig = colorConfigGrdVisible ? colorConfigTrue : '';
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig);
+ }
+ this.props.onSaveState({
+ masterConfig,
+ slaveConfig,
+ slaveColumn,
+ checkConfig,
+ checkColumn,
+ sId,
+ pageLoading: false,
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ ...addState,
+ colorConfigGrdVisible,
+ });
+ }
+
+ // // 未清复制到时,产品ID需要再获取动态部件
+ // const sId = currentId !== undefined ? currentId : '';
+ // if (sId === '' && commonUtils.isNotEmptyObject(this.props.masterData) && !this.props.bGetPartsData) {
+ // const { sAllPartsName } = this.props.masterData;
+ // if (sAllPartsName !== undefined) {
+ // const allPartsName = sAllPartsName.split(',');
+ // const sPartsName = allPartsName[0];
+ // if (commonUtils.isEmptyObject(this.props.masterConfig[`dSumPQty${sPartsName}`])) {
+ // await this.handleMasterChange('master', 'sProductClassifyName');
+ // this.props.onSaveState({ bGetPartsData: true });
+ // }
+ // }
+ // }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { controlColumn, slaveConfig } = nextProps;
+ return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn);
+ }
+
+ /** 行选择 */
+ // onRowClick = (name, record) => {
+ // if (name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // };
+ //
+ // onRowMouseEnter = (name, record) => {
+ // if (this.props.enabled && name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // }
+ //
+ // onDoubleClick = (name, record) => {
+ // if (this.props.onDoubleClick !== undefined) {
+ // this.props.onDoubleClick(record);
+ // }
+ // };
+ onChange1 = (checkedValues) => {
+ this.props.onSaveState({
+ dataPersonArray: checkedValues,
+ });
+ };
+
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnCombine' || menu.sControlName === 'BtnFastOrder' || menu.sControlName === 'BtnChooseProcess' ||
+ menu.sControlName === 'BtnChooseMaterials' || menu.sControlName === 'BtnBsOperation.BtnDraft') {
+ return !this.props.enabled;
+ }
+ };
+
+ /* 获取表数据 */
+ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, extraState = {}) => {
+ const { currentId } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ const addStateControl = await this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ this.props.handleGetDataSet({
+ name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ const addStateProcess = await this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ }
+ });
+ addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ }
+ }
+ let addStateColor = {};
+ if (colorConfig) {
+ addStateColor = await this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+
+ this.props.onSaveState({
+ pageLoading: false, ...addStateControl, ...addStateProcess, ...addStateColor, controlSelectedRowKeys: [], ...extraState,
+ });
+ };
+
+ handleBackProcessData = async (config, isWait) => {
+ const { token } = this.props.app;
+ const { sModelsId, sBackProcessData } = this.props;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === '') {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: '', sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ this.props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ }
+
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /* 非列表联动下拉 */
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const {
+ sModelsId, app,
+ } = this.props;
+ const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = this.props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') {
+ backProcessData = await this.handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) {
+ let iIndex;
+ allPartsName.forEach((sPartsName) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0];
+
+ const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) { /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ sBackProcessClassifyData = rows;
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) {
+ const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : [];
+ const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : [];
+ const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : [];
+ const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : [];
+ const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : [];
+
+ let ConfigNew;
+ allPartsName.forEach((item) => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...returnChange.masterData, ...masterDataDefault };
+ if (isWait) {
+ return {
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ };
+ } else {
+ this.props.onSaveState({
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ });
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = '';
+ returnChange.masterData.sProductNo = '';
+ returnChange.masterData.sProductName = '';
+ }
+ this.props.onSaveState({ ...returnChange });
+ } else {
+ this.props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ /* 数据生成按钮 */
+ handleDataCreate= async (flag) => {
+ let { checkProcessClassifyData } = this.props;
+ const {
+ masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app, dispatch,
+ } = this.props;
+ const { token } = this.props.app;
+ const paramMap = {};
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ 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);
+ }
+ }
+ }
+ });
+ 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;
+ }
+
+
+ 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;
+ }
+ 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 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) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+
+ partInfo.processInfo.forEach((process, iOrder) => {
+ let processAfterDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processAfterDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processAfterDataRow[child] = process[child];
+ }
+ processAfterDataRow.handleType = 'add';
+ processAfterDataRow.sProcessId = process.sProcessId;
+ const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId);
+ if (iProcessAfterIndex > -1) {
+ processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段
+ }
+ processAfterDataRow.sType = process.sType;
+ processAfterDataRow.iPartOrder = iIndex;
+ processAfterDataRow.iOrder = iOrder + 1;
+ processAfterDataRow.sPartsName = partsDataRow.sPartsName;
+ processAfterDataRow.sId = commonUtils.createSid();
+ processAfterDataRow.sParentId = masterData.sId;
+ processAfterDataRow.sControlId = partsDataRow.sId;
+ processData.push(processAfterDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ });
+ productProcessInfo.forEach((process, iOrder) => {
+ let processProductDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processProductDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processProductDataRow[child] = process[child];
+ }
+ const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId);
+ if (iProductProcessIndex > -1) {
+ processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段
+ }
+ processProductDataRow.handleType = 'add';
+ processProductDataRow.sType = '3';
+ processProductDataRow.sPartsName = '';
+ processProductDataRow.iPartOrder = 999;
+ processProductDataRow.iOrder = iOrder + 1;
+ processProductDataRow.sId = commonUtils.createSid();
+ processProductDataRow.sParentId = masterData.sId;
+ processData.push(processProductDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ processData = this.sortData(controlData, processData);
+ const addState = {};
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ }
+ 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,
+ });
+ }
+ }, timValue);
+ };
+
+ /* 勾选工序分类 */
+ handleProcessChange=(e, value, sPartsName) => {
+ let { checkProcessClassifyData } = this.props;
+ let index = -1;
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (e.target.checked) {
+ if (index <= -1) {
+ const newvalue = { ...value };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ } else if (index > -1) {
+ checkProcessClassifyData.splice(index, 1);
+ }
+ this.props.onSaveState({ checkProcessClassifyData });
+ };
+
+ handleSelectChangeProcess = (sAssignField, value, option) => {
+ const { masterData, sBackProcessClassifyData } = this.props;
+ let { checkProcessClassifyData } = this.props;
+ if (sAssignField !== undefined) {
+ // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype
+ const sAssignFields = sAssignField.split(',');
+ const recordRow = option.props['data-recordrow'];
+ sAssignFields.forEach((item, iAssignIndex) => {
+ const itemsplits = item.split(':');
+ masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]];
+ if (iAssignIndex === 0) {
+ let index = -1;
+ const sPartsName = itemsplits[0].replace(recordRow.sParentId, '');
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (index <= -1) {
+ const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId);
+ if (iBackProcessIndex > -1) {
+ const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ }
+ }
+ });
+ this.props.onSaveState({ masterData, checkProcessClassifyData });
+ }
+ }
+
+ handleA = (sId) => {
+ const { sBackProcessData } = this.props;
+ const data = sBackProcessData.filter(item => item.sParentId === sId);
+ const optionProcess = [];
+ data.forEach((item) => {
+ optionProcess.push();
+ });
+ return optionProcess;
+ }
+
+ handleSave = async () => {
+ this.form.validateFields((err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) ||
+ (!commonBusiness.validateTable(materialsConfig, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ let flag = true;
+ for (const item of materialsData) {
+ if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ flag = false;
+ break;
+ }
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ }
+ });
+ };
+
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ const {
+ slaveData, controlData, materialsData, enabled,
+ app,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若从表相关联的材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ materialsData.filter(item => item.sParentId === slaveData[iIndex].sParentId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ }
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData, app, enabled,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若此条控制表中材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ materialsData.filter(item => item.sControlId === tableData[iIndex].sId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ if (iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'materials' || name === 'process') {
+ const { [`${name}Data`]: tableData, app, enabled } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 工单中材料或工序,若该条数据被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ const sOrderdetailUsed = tableData[iIndex].sOrderdetailUsed;
+ const sProductionUsed = tableData[iIndex].sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ return;
+ }
+ }
+ if (enabled && iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ }
+ this.props.onSaveState(addState);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleGetFilterData = (name) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys } = this.props;
+ if (data !== undefined && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ };
+ handleKeyDown = (e, record, sName, name) => {
+ /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */
+ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) {
+ if (e.key !== 'F12') {
+ e.preventDefault();
+ }
+ } else {
+ this.props.onKeyDown(e, record, sName, name);
+ }
+ }
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, flag) => {
+ /* 外置处理业务 */
+ const {
+ gdsformconst, slaveData, controlData, controlSelectedRowKeys, [`${name}Data`]: tableData,
+ } = this.props;
+ if (name === 'control') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ let dPartsQty = 0;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item) => {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ // if (productIdDropDown) {
+ // const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId);
+ // if (iProductIdIndex > -1) {
+ // tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName;
+ // }
+ // }
+ }
+ tableDataRow.dPartsQty = dPartsQty;
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if (name === 'materials' || name === 'process') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件
+ return;
+ }
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else {
+ return this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = (name, tableSelectedRowKeys) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ }
+ /** 删除表格数据 */
+ handleTableDel = async (name, flag, tableSelectedRowKeys) => {
+ if (name === 'control') {
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const { controlData } = this.props;
+ const iIndex = controlData.findIndex(item => tableSelectedRowKeys.includes(item.sId) && item.rowTag === 1);
+ if (iIndex > -1) {
+ /* 如果行被锁定不可更改删除时 */
+ return false;
+ }
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materialsReturnData,
+ ...processReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ return false;
+ }
+ } else if (name === 'process') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, materialsData, token,
+ } = this.props;
+ let { materialsDelData } = this.props;
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ let iMaterialsIndex = -1;
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ const sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ const processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === slaveDataFilter.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+
+ processReturnData.processDelData.concat(tableDelData);
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = '';
+ materialsData[iMaterialsIndex].sProcessTbId = '';
+ materialsData[iMaterialsIndex].sMaterialsProcessName = '';
+ }
+ this.props.onSaveState({
+ ...processReturnData,
+ materialsDelData,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ } else {
+ return this.props.onDataRowDel(name, flag, tableSelectedRowKeys);
+ }
+ };
+ /** 材料被使用锁定表格数据行 */
+ handleTableRowLock = async (name, record) => {
+ const { slaveData, controlData, enabled } = this.props;
+ if (commonUtils.isNotEmptyObject(record) && enabled) {
+ if (name === 'materials' || name === 'process') {
+ const { sOrderdetailUsed, sProductionUsed } = record;
+ if (commonUtils.isNotEmptyObject(sOrderdetailUsed) || commonUtils.isNotEmptyObject(sProductionUsed)) {
+ record.rowTag = 1;
+ controlData.filter(item => item.sId === record.sControlId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ slaveData.filter(item => item.sParentId === record.sParentId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ }
+ }
+ }
+ }
+
+ handleCalculation = async () => {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`;
+ const {
+ masterConfig, slaveConfig, controlConfig, materialsConfig, processConfig, app, sModelsType, colorData,
+ } = this.props;
+ let {
+ slaveData, controlData, materialsData, processData, masterData,
+ } = this.props;
+ const sMakePerson = masterData.sMakePerson;
+ const data = [];
+ if ((masterData.sFormId === '101251240115015840916341460' || sModelsType.includes('manufacture/workOrderSupple')) && commonUtils.isNotEmptyArr(colorData)) {
+ controlData.forEach((item) => {
+ item.iPositiveColor = colorData.filter(item => !item.bNotColor).length;
+ });
+ }
+ data.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ data.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ data.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ data.push(commonBusiness.mergeData('materials', `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true));
+ data.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ const value = { data, sClientType: '1', sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) { /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ if (masterData.handleType === 'update' && !commonUtils.isEmpty(sMakePerson)) {
+ masterData.sMakePerson = sMakePerson;
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+ this.props.onSaveState({
+ slaveData, controlData, materialsData, processData, masterData, loading: false,
+ });
+ console.log('dataReturn:', dataReturn);
+
+ message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess'));
+ } else { /* 失败 */
+ this.props.onSaveState({
+ loading: false,
+ });
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ /** 按钮操作事件 */
+ handleButtonClick = async (name) => {
+ if (name === 'BtnCalculation') {
+ this.props.onSaveState({
+ loading: true,
+ });
+ this.handleCalculation();
+ } else if (name === 'BtnChooseProcess') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnChooseMaterials') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnFastOrder') {
+ const {
+ masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData,
+ } = this.props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (commonUtils.isEmptyArr(checkProcessClassifyData) && commonUtils.isNotEmptyArr(controlData) && !commonUtils.isEmpty(changeData) && !commonUtils.isEmpty(changeData.sAllPartsName)) {
+ const allPartsName = changeData.sAllPartsName.split(',');
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach((item) => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData.filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ }
+ this.props.onSaveState({ fastOrderModalVisible: true, workOrderAllprogress: 0, ...addState });
+ } else if (name === 'BtnCombine') {
+ const { slaveData: slaveDataOld, controlData: controlDataOld } = this.props;
+ let dMaxQty = 0;
+ let dSumMachineQty = 0;
+ slaveDataOld.forEach((item) => {
+ if (commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty > dMaxQty) {
+ dMaxQty = Math.ceil(commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty);
+ }
+ });
+ const controlData = [];
+ if (commonUtils.isNotEmptyArr(controlDataOld)) {
+ controlDataOld.forEach((item) => {
+ let controlRow = { ...item, dPartsQty: dMaxQty };
+ controlRow = this.singlePQtyChange(controlRow);
+ controlData.push(controlRow);
+ });
+ dSumMachineQty = controlData[0].dSumMachineQty;
+ }
+ const slaveData = [];
+ slaveDataOld.forEach((item) => {
+ slaveData.push({ ...item, dProductQty: dSumMachineQty * item.dCombineQty });
+ });
+ this.props.onSaveState({ slaveData, controlData });
+ } else if (name === 'BtnDraft') {
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData,
+ } = this.props;
+ const data = [];
+ slaveConfig.gdsconfigformslave.forEach((itemConfig) => {
+ slaveData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ controlConfig.gdsconfigformslave.forEach((itemConfig) => {
+ controlData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ materialsConfig.gdsconfigformslave.forEach((itemConfig) => {
+ materialsData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ processConfig.gdsconfigformslave.forEach((itemConfig) => {
+ processData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorConfig.gdsconfigformslave.forEach((itemConfig) => {
+ colorData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId, bIsUnCcg: false,
+ });
+ } else {
+ this.props.onButtonClick(name);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ controlConfig, materialsConfig, processConfig,
+ } = this.props;
+ const bReturn = await this.props.onSearchData(handleType);
+ if (bReturn) {
+ this.handleGetData(controlConfig, materialsConfig, processConfig);
+ }
+ };
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig,
+ } = this.props;
+ this.props.onEdit(() => {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, { loading: false, enabled: true });
+ });
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, masterData, slaveData, controlData, materialsData, processData, colorData, app, token, sModelsId, formRoute,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.processData = processData;
+ copyTo.colorData = colorData;
+
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ },
+ });
+ }
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app,
+ } = props;
+ const { userinfo, systemData } = app;
+ const { sMakePerson } = masterData; /* 本单据制单人 */
+ const { sUserName, sType } = userinfo;/* 登录用户 */
+ const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson');
+ if (iIndex > -1) {
+ const sValue = systemData[iIndex].sValue;
+ if (sValue === '0') { /* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */
+ if (sType !== 'sysadmin' && sUserName !== sMakePerson) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoDelByNoMakePerson'));
+ return;
+ }
+ }
+ }
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ sSlaveTable: [
+ {
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: checkConfig.sTbName,
+ relationName: 'sBillId',
+ }, {
+ tableName: controlConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: materialsConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: processConfig.sTbName,
+ relationName: 'sParentId',
+ }],
+ },
+ };
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.props.onDelDataSuccess(props);
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app,
+ } = this.props;
+ const onGetData = this.props.onGetData;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const { copyTo } = app.currentPane;
+ const { userinfo } = app;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onGetData(masterConfig, slaveConfig, checkConfig);
+ onGetDataOk(controlConfig, materialsConfig, processConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const {
+ masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig,
+ } = this.props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await this.props.onAdd(config, copyTo, true);
+
+ const { slaveData } = state;
+ let { masterData } = state;
+ const controlData = [];
+ const materialsData = [];
+ let processData = [];
+ const colorData = [];
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const {
+ app, sModelsId, token, sModelsType,
+ } = this.props;
+ const bCkxCopyFromTechnology = app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1' && (sModelsType !== 'manufacture/workOrder2' && sModelsType !== 'manufacture/workOrderSupple2')) {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach((slaveItem) => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ await returnData.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ // eslint-disable-next-line radix
+ if ((slaveData.length <= 1) || (slaveData.length > 1 && parseInt(processItem.sType) <= 1)) {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData) && (slaveData.length <= 1)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ } else if (slaveData.length > 1) {
+ let sInfo;
+ slaveData.forEach((item) => {
+ sInfo = commonUtils.isEmpty(sInfo) ? `${item.sCustomerId}|${item.sProductId}` : `${sInfo},${item.sCustomerId}|${item.sProductId}`;
+ });
+ const dataUrl = `${commonConfig.server_host}salesorder/getgdsemigoodsMatchInfo?sModelsId=${sModelsId}`;
+ const params = {
+ customerProductInfo: sInfo,
+ };
+ const dataCombineProcess = (await commonServices.postValueService(token, params, dataUrl)).data;
+ if (dataCombineProcess.code === 1) {
+ const returnData = dataCombineProcess.dataset.rows;
+ returnData.forEach((processItem, processIndex) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.sSlaveCustomerId = processItem.sCustomerId;
+ processRow.sCustomerName = processItem.sCustomerName;
+ processRow.sSlaveProductId = processItem.sProductId;
+ processRow.sProductName = processItem.sProductName;
+ processRow.iOrder = processIndex + 1;
+ processRow.sType = '3';
+
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ });
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let bProcessAssort = true;
+ /* 生产翻单不生成配套工序 */
+ const srcFormRoute = copyTo.srcFormRoute; /* 未清来源路径 */
+ if (sModelsType === 'manufacture/workOrder' && (commonUtils.isEmpty(srcFormRoute) || srcFormRoute.includes('workOrder'))) {
+ bProcessAssort = false;
+ }
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = this.props;
+ const sSlaveId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sSlaveId) ? copyTo.slaveData[0].sSlaveId : copyTo.slaveData[0].sId;
+ // const condition = { sSlaveId: copyTo.slaveData[0].sSlaveId };
+ const condition = { sSlaveId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ await this.props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ // let dProductQty = 0;
+ // slaveData.forEach((item) => {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ await copyTo.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ // controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData) && commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData) && commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ }
+
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = this.sortData(controlData, processData);
+ }
+ } else {
+ state.fastOrderModalVisible = this.props.bFastOrderView;
+ const { sModelsId } = this.props;
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const [changeData] = sqlDropDownData.dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true);
+ state = { ...state, ...addState };
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1; /* 序号从1开始 */
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ const stateNew = {
+ ...state,
+ controlData,
+ controlSelectedRowKeys: [],
+ materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ colorData,
+ processSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ this.props.onSaveState(stateNew);
+ }
+ };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, controlSelectedRowKeys, sModelsId, token,
+ slaveConfig, controlConfig, materialsConfig, processConfig, colorConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld,
+ controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld,
+ } = this.props;
+ let { masterData, slaveSelectedRowKeys } = this.props;
+ if (name === 'productProcessInfo') {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ const controlData = [];
+ const materialsData = [];
+ const processData = [];
+ const colorData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ controlDataOld.forEach((item) => {
+ item.handleType = 'del';
+ controlDelData.push(item);
+ });
+ addState.controlDelData = controlDelData;
+ materialsDataOld.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ processDataOld.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ let iSlaveIndex = -1;
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ slaveSelectedRowKeys = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : [];
+ }
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+
+ let condition = { sCardId: selectData[0].sId };
+ let dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+
+ /* 复制从工单功能 */
+ const { productProcessInfoCopyFromKey } = this.props;
+ if (commonUtils.isNotEmptyObject(productProcessInfoCopyFromKey) && productProcessInfoCopyFromKey.includes('BtnCopyFrom.sworkorder')) {
+ condition = { sWorkOrderId: selectData[0].sId };
+ dataUrl = `${commonConfig.server_host}salesorder/getCopyFromWorkOrder/?sModelsId=${sModelsId}`;
+ }
+
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ processData,
+ materialsData,
+ controlData,
+ colorData,
+ masterData,
+ controlSelectedRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ const bProcessAssort = (name === 'process');
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ // let dropDownDataProcessName = commonUtils.getStoreDropDownData(sModelsId, 'process', 'sProcessName');
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ // 配套数据 */
+ if (commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}processAssort`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}processAssort`)).length > 0) {
+ returnProcessAssort = JSON.parse(localStorage.getItem(`${commonConfig.prefix}processAssort`));
+ }
+ console.log('缓存returnProcessAssort', returnProcessAssort);
+ if (commonUtils.isEmptyArr(returnProcessAssort)) {
+ 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;
+ }
+ console.log('调接口returnProcessAssort', returnProcessAssort);
+ localStorage.setItem(`${commonConfig.prefix}processAssort`, JSON.stringify(returnProcessAssort));
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === 'process') {
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ }
+ // const value = { sSqlCondition: { sParentId: item.sId } };
+ // const configDataId = '11811781131121915166093023980';
+ // const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ // const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ // if (returnData.code === 1) {
+ // const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ // const newData = eleprocessmachineData.filter(item => item.bDefault);
+ // if (commonUtils.isNotEmptyArr(newData)) {
+ // tableDataRow.sMachineId = newData[0].sMachineId;
+ // }
+ // }
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsSelectedRowKeys: [],
+ });
+ }
+ };
+
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = '';
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = '';
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace('.', '');
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace('.', '');
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2);
+ });
+ return processData;
+ };
+ /* 控制排序 */
+ orderData = (e, name, type) => {
+ const {
+ [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app,
+ } = this.props;
+ let { [`${name}Data`]: processData } = this.props;
+ if (name === 'process') {
+ if (commonUtils.isEmptyArr(tableselectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */
+ return;
+ }
+ if (commonUtils.isEmptyArr(processData)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */
+ return;
+ }
+ const processNew = processData.filter((item) => { /* 获取勾选数据集 */
+ return tableselectedRowKeys.indexOf(item.sId) > -1;
+ });
+ if (commonUtils.isEmptyArr(processNew)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */
+ return;
+ }
+ const len = processData.length;
+ const newLen = processNew.length;
+ let num = 0.01;/* 循环增加体 */
+ let targetiOrder = -1;
+ if (type === 1) { /* 上移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex - 1].iOrder - 1; /* 目标排序号 */
+ }
+ } else if (type === 2) { /* 下移 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */
+ return;
+ } else {
+ targetiOrder = processData[iIndex + 1].iOrder;
+ }
+ } else if (type === 0) { /* 置顶 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */
+ return;
+ } else {
+ targetiOrder = processData[0].iOrder - 1;
+ }
+ } else if (type === 3) { /* 置底 */
+ const iIndex = processData.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */
+ return;
+ } else {
+ targetiOrder = 999;
+ }
+ }
+ processNew.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.sType)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */
+ return;
+ }
+ const index1 = processData.findIndex(item1 => item1.sId === item.sId);
+ processData[index1] = { ...item, iOrder: targetiOrder + num };
+ num += 0.01;
+ });
+ processData = this.sortData(controlData, processData);
+ const processSortData = this.props.orderNum(processData, controlSelectedRowKeys);
+ if (commonUtils.isNotEmptyArr(processSortData)) {
+ processData = processSortData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: processData });
+ }
+ };
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ if (name === 'slave') {
+ const {
+ sModelsId, masterConfig, controlConfig, masterData, [`${name}Data`]: tableData, controlData: controlDataOld, sModelsType,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') {
+ let dPartsQty = 0;
+ tableData.forEach((item) => {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ tableDataRow.dProductionQty = commonUtils.isNull(tableDataRow.dProductQty, 0) + commonUtils.isNull(tableDataRow.dGiveQty, 0) + commonUtils.isNull(tableDataRow.dStockupQty, 0);
+ const controlData = [];
+ controlDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ itemNew.dPartsQty = dPartsQty;
+ controlData.push(itemNew);
+ });
+ addState.controlData = controlData;
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ tableDataRow.sProductId = '';
+ tableDataRow.sProductNo = '';
+ tableDataRow.sProductName = '';
+ tableData[iIndex] = tableDataRow;
+ } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && tableDataRow.handleType === 'add') {
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach((item) => {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ // else if (sFieldName === 'sProductName') {
+ // const controlData = [];
+ // controlDataOld.forEach((item) => {
+ // const itemNew = { ...item };
+ // controlData.push(itemNew);
+ // });
+ // if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmpty(controlData[0].sPartsName)) {
+ // controlData[0].sPartsName = tableDataRow.sProductName;
+ // addState.controlData = controlData;
+ // }
+ // }
+ }
+ }
+ /* 膜内工艺卡算法逻辑 */
+ if (sModelsType.includes('manufacture/workOrderSupple')) {
+ const controlData = addState.controlData;
+ if (sFieldName === 'dProductLength' || sFieldName === 'dProductWidth' || sFieldName === 'dCombineCoefficient') {
+ if (commonUtils.isNotEmptyArr(tableData) && tableData.length > 1 && commonUtils.isNotEmptyArr(controlData)) {
+ let sumTotal = 0;
+ tableData.forEach((item) => {
+ const singleSum = item.dProductLength * item.dProductWidth * item.dCombineCoefficient;
+ sumTotal += singleSum;
+ });
+ /* 计算多产品合拼的折算率 */
+ const dConversionRate = ((controlData[0].dMaterialsLength * controlData[0].dMaterialsWidth) *
+ (tableDataRow.dProductLength * tableDataRow.dProductWidth * tableDataRow.dCombineCoefficient)) / sumTotal / tableDataRow.dCombineCoefficient / 1000000;
+ tableDataRow.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ tableData[iIndex] = tableDataRow;
+ tableData.forEach((item, index) => {
+ if (item.sId !== sId) {
+ const addSata = {};
+ const dConversionRate = ((controlData[0].dMaterialsLength * controlData[0].dMaterialsWidth) *
+ (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) / sumTotal / item.dCombineCoefficient / 1000000;
+ addSata.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ tableData[index] = { ...item, ...addSata };
+ }
+ });
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, ...addState });
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsType, slaveData,
+ } = this.props;
+ let { masterData } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ }
+ /* 膜内算法逻辑 */
+ if (sModelsType.includes('manufacture/workOrderSupple')) {
+ /* 排版数dSinglePQty=列数iCol*iRow个数 */
+ const iCol = commonUtils.isNull(tableDataRow.iCol, 0);
+ const iRow = commonUtils.isNull(tableDataRow.iRow, 0);
+ const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0));
+ const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0));
+ const dCutEdge = commonUtils.isNull(tableDataRow.dCutEdge, 0);
+ const dColGap = commonUtils.isNull(tableDataRow.dColGap, 0);
+ const dRowGap = commonUtils.isNull(tableDataRow.dRowGap, 0);
+ const dScraperGap = commonUtils.isNull(tableDataRow.dScraperGap, 0);
+ const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0));
+ const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0));
+ const dSinglePQty = commonUtils.isNull(tableDataRow.dSinglePQty, 0);
+ if (sFieldName === 'iCol' || sFieldName === 'iRow') {
+ tableDataRow.dSinglePQty = iCol * iRow;
+ }
+ /* 膜宽dMaterialsWidth =图文尺寸dMachineWidth*列数iCol+图文到膜边尺寸 dCutEdge*2+图文到图文的尺寸dColGap*(列数iCol-1) */
+ if (sFieldName === 'dMachineWidth' || sFieldName === 'iCol' || sFieldName === 'dCutEdge' || sFieldName === 'dColGap') {
+ tableDataRow.dMaterialsWidth = (dMachineWidth * iCol) + (dCutEdge * 2) + (dColGap * (iCol - 1));
+ }
+ /* 版周长 dMaterialsLength=(版周长图文尺寸dMachineLength+图文到图文尺寸dRowGap)*版周长个数iRow+dScraperGap刮刀距离 */
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap') {
+ tableDataRow.dMaterialsLength = ((dMachineLength + dRowGap) * iRow) + dScraperGap;
+ }
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dRowGap' || sFieldName === 'iRow' || sFieldName === 'dScraperGap' || sFieldName === 'dMaterialsLength') {
+ let dPlatediameter = dMaterialsLength / Math.PI;
+ dPlatediameter = commonUtils.convertFixNum(dPlatediameter, 2);
+ const addState = {};
+ addState.dPlatediameter = dPlatediameter;
+ addState.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ masterData = { ...masterData, ...addState };
+ }
+ /* 1款拼版 从表产品折算率=版周长*膜宽/1000000 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (slaveData.length === 1) { /* 只有一条从表数据 */
+ const addState = {};
+ addState.dConversionRate = (dMaterialsLength * dMaterialsWidth) / 1000000;
+ addState.dCombineCoefficient = dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(slaveData[0].handleType) ? 'update' : slaveData[0].handleType;
+ slaveData[0] = { ...slaveData[0], ...addState };
+ } else if (slaveData.length > 1) { /* 多款产品合拼的 折算率 */
+ let sumTotal = 0;
+ slaveData.forEach((itemNew) => {
+ const singleSum = itemNew.dProductLength * itemNew.dProductWidth * itemNew.dCombineCoefficient;
+ sumTotal += singleSum;
+ });
+ slaveData.forEach((item, index) => {
+ const addState = {};
+ /* 多产品折算率 */
+ const dConversionRate = ((dMaterialsLength * dMaterialsWidth) *
+ (item.dProductLength * item.dProductWidth * item.dCombineCoefficient)) / sumTotal / item.dCombineCoefficient / 1000000;
+ addState.dConversionRate = commonUtils.convertFixNum(dConversionRate, 6);
+ addState.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ slaveData[index] = { ...item, ...addState };
+ });
+ }
+ }
+ } else if (sModelsType.includes('manufacture/workOrder')) {
+ /* 计算材料开数 */
+ if (sFieldName === 'dMachineLength' || sFieldName === 'dMachineWidth' || sFieldName === 'dMaterialsLength' || sFieldName === 'dMaterialsWidth') {
+ let dProductLength = 0; /* 产品长 */
+ let dProductWidth = 0; /* 产品宽 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ dProductLength = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[0] : 0;
+ dProductLength = commonUtils.convertStrToNumber(commonUtils.isNull(dProductLength, 0)); /* 产品长 */
+ dProductLength = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductLength : 0; /* 产品长 */
+ dProductWidth = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[1] : 0;
+ dProductWidth = commonUtils.convertStrToNumber(commonUtils.isNull(dProductWidth, 0)); /* 产品宽 */
+ dProductWidth = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductWidth : 0; /* 产品宽 */
+ }
+ const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+
+ /* 算材料开数 */
+ const mapMaterialsKQty = this.props.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ if (commonUtils.isNotEmptyObject(mapMaterialsKQty)) {
+ const dMaterialsKQty = mapMaterialsKQty.totalNum;
+ tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ }
+
+ /* 算拼版数 */
+ if (dProductLength !== 0 && dProductWidth !== 0) {
+ const mapSinglePQty = this.props.onResolveMachineComposing(dProductLength, dProductWidth, dMachineLength, dMachineWidth);
+ if (commonUtils.isNotEmptyObject(mapSinglePQty)) {
+ const dSinglePQty = mapSinglePQty.totalNum;
+ tableDataRow.dSinglePQty = dSinglePQty;
+ }
+ }
+ }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, slaveData, masterData,
+ });
+ } else if (name === 'materials') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, app, sModelsId,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === 'sType') {
+ if (tableData[iIndex].sType === '2') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData });
+ } else if (name === 'process') {
+ const {
+ [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, processConfig, token,
+ } = this.props;
+ let { processDelData, materialsDelData } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let iMaterialsIndex = -1;
+ let sControlId = '';
+ if (iIndex > -1) {
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) {
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = '工艺参数';
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = '';
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = 'del';
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ if (tableData[iIndex].sType === '3') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState });
+ } else {
+ this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ handleCancelFastOrderModal = () => {
+ this.props.onSaveState({ fastOrderModalVisible: false, workOrderAllprogress: 0, Loading: false });
+ };
+ handleCancelProcessChooseModal = () => {
+ this.props.onSaveState({ processChooseVisible: false });
+ };
+ handleCancelMaterialsChooseModal = () => {
+ this.props.onSaveState({ materialsChooseVisible: false });
+ };
+ handleCancelProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData, app,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'control') {
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`;
+ tableDataRow.sAllId = tableDataRow.sId;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSrcProcessTbId = item.sId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ this.props.onSaveState({
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { total: tableData.length, current: 9999 },
+ materialsSelectedRowKeys: [],
+ materialsData,
+ processData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+
+ /* 计算材料开数 */
+ // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ // const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ // const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+ // const sResult = this.prop.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ // if (commonUtils.isNotEmptyObject(sResult)) {
+ // const dMaterialsKQty = sResult.totalNum;
+ // tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ // }
+
+ return tableDataRow;
+ };
+
+ handleCancel1 = () => {
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+
+ handleOk = async (flag, tmpCheck, isWait) => {
+ const {
+ sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig,
+ } = this.props;
+ const { currentPane } = app;
+ const bCkxTmpCheck = app.systemData.filter(item => item.sName === 'CkxTmpCheck')[0].sValue;
+ if (bCkxTmpCheck === '1') {
+ const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait);
+ if (returnData.code === 1) {
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ } else {
+ const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray;
+ if (commonUtils.isEmptyObject(dataPersonArray)) {
+ checkPersonData.forEach((item) => {
+ dataPersonArray.push(item.sUserId);
+ });
+ }
+ const dataPersonString = dataPersonArray.join(',');
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const value = {
+ sProName: 'Sp_System_AutoSendCheckMsg',
+ paramsMap: {
+ sFormGuid: sModelsId,
+ sBillKey: currentPane.sProcName,
+ sTbName: masterConfig.sTbName,
+ sGuid: masterData.sId,
+ sBillNo: masterData.sBillNo,
+ sCheckCondition: checkConditions,
+ sMemo: '',
+ sCheckModelGuid: sCheckModelId,
+ sCheckPerson: dataPersonString,
+ },
+ };
+
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ const noCheckMsg = commonFunc.showMessage(app.commonConst, 'NoCheckMsg'); /* 您有消息待审核 */
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.handleSendSocketMessage('examine', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`;
+ const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId };
+ const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data;
+ if (returnCanCheckBill.code === 1) {
+ if (returnCanCheckBill.dataset.rows[0].iCount === 1) {
+ this.props.onDataAudit(1, 1);
+ this.props.onSaveState({
+ visible: false,
+ });
+ return;
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnCanCheckBill);
+ }
+ this.props.handleSendSocketMessage('reflush', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ }
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+ // ---
+ handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ let sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) {
+ sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`;
+ }
+ }
+ processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr };
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+
+ render() {
+ const { pageLoading, masterData, fastOrderModalVisible } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+
+
+ );
+ }
+}
+const WorkOrderComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ masterConfig: masterConfigOld,
+ slaveData,
+ slavePagination,
+ sModelsId,
+ sTabId,
+ app,
+ colorConfigGrdVisible,
+ visible,
+ checkConditions,
+ checkPersonData,
+ Loading,
+ sModelsType,
+ sisColorChooseVisible,
+ } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ addProps.masterConfig = masterConfig;
+ }
+ const checkCondition = commonFunc.showMessage(app.commonConst, 'checkCondition');/* 审核条件 */
+ const checkSmemo = commonFunc.showMessage(app.commonConst, 'checkSmemo');/* 备注 */
+ const columns = [{
+ title: checkCondition,
+ dataIndex: 'condition',
+ key: 'condition',
+ }, {
+ title: checkSmemo,
+ dataIndex: 'sMemo',
+ key: 'sMemo',
+ }];
+ const btnSure = commonFunc.showMessage(app.commonConst, 'btnSure');/* 确认 */
+ const check = commonFunc.showMessage(app.commonConst, 'check');/* 审核 */
+ const BtnClose = commonFunc.showMessage(app.commonConst, 'BtnClose');/* 关闭 */
+ const checkPerson = commonFunc.showMessage(app.commonConst, 'checkPerson');/* 审核人 */
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ const pagination = {
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const width = '18px';
+ const height = '18px';
+ const setAdd = {
+ title: '增加',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const setCopy = {
+ title: '复制',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const setCopyAll = {
+ title: '复制部件',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const setDelete = {
+ title: '删除',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const setProcess = {
+ title: '工序',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const setMaterial = {
+ title: '材料',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processUp = {
+ title: '上移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processDown = {
+ title: '下移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processTop = {
+ title: '置顶',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processBottom = {
+ title: '置底',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ let chooseProcessConfigRow;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfigRow;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // const mProps = { ...commonBusiness.createMemoProps('slave', props) };
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ onKeyDown: props.onKeyDown,
+ bMutiSelect1: true, // 设置点击整行勾选框不勾选,只有点击勾选框才勾选
+ tableProps: {
+ // rowSelection: enabled ? null : '',
+ setAdd,
+ sModelsType,
+ setCopyAll,
+ setDelete,
+ setProcess,
+ setMaterial,
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ AutoTableHeight: '100%',
+ // onRow: (record) => {
+ // return {
+ // onClick: () => { props.onRowClick('control', record); },
+ // onDoubleClick: () => { props.onDoubleClick('control', record); },
+ // onMouseEnter: () => { props.onRowMouseEnter('control', record); },
+ // };
+ // },
+ },
+ };
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ // filteredValue: props.controlSelectedRowKeys,
+ filteredValue: commonUtils.isNotEmptyArr(props.controlSelectedRowKeys) ? props.controlSelectedRowKeys : '-1',
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ filteredValue: commonUtils.isNotEmptyArr(props.controlSelectedRowKeys) ? props.controlSelectedRowKeys : '-1',
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ isDragAndDrop: true,
+ };
+ let colorTableProps = {};
+ // let cProps = {};
+ if (colorConfigGrdVisible) {
+ colorTableProps = {
+ ...commonBusiness.getTableTypes('color', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // cProps = { ...commonBusiness.createMemoProps('color', props) };
+ }
+ let searchProcessType = {};
+ let chooseProcessConfig = {};
+ let setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ if (commonUtils.isNotEmptyObject(props.processChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (iIndex > -1) {
+ chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setProcessTitle = props.processChooseData.sMenuName;
+ searchProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: props.processChooseData.sMenuName,
+ route: props.processChooseData.sName,
+ formId: props.processChooseData.sId,
+ key: sModelsId + props.processChooseData.sId,
+ sModelsType: props.processChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ let setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setMaterialTitle = props.materialsChooseData.sMenuName;
+
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ realizeHeight: props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从标题 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+ /* 工序表选择颜色 */
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors');
+ if (iIndex > -1) {
+ chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'sisColor',
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: '选择颜色',
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: 'search/sisColor',
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {},
+ };
+ }
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const productInfo = commonFunc.showMessage(app.commonConst, 'productInfo');/* 产品信息 */
+ const controlInfo = commonFunc.showMessage(app.commonConst, 'controlInfo');/* 部件信息 */
+ const materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */
+ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */
+ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */
+ // const setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ // const setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */
+
+ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 */
+ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */
+ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */
+ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */
+ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */
+ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底 */
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ let bControlShow = true; /* 控制表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexControl = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbControl');
+ if (iIndexControl > -1) {
+ bControlShow = props.masterConfig.gdsconfigformslave[iIndexControl].bVisible;
+ }
+ }
+ let bMaterialShow = true; /* 材料表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexMaterial = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbMaterial');
+ if (iIndexMaterial > -1) {
+ bMaterialShow = props.masterConfig.gdsconfigformslave[iIndexMaterial].bVisible;
+ }
+ }
+ let bProcessShow = true; /* 工序表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexProcess = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbProcess');
+ if (iIndexProcess > -1) {
+ bProcessShow = props.masterConfig.gdsconfigformslave[iIndexProcess].bVisible;
+ }
+ }
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSales(WorkOrder));
diff --git a/src/components/Manufacture/WorkOrderPack/WorkOrderPack.js b/src/components/Manufacture/WorkOrderPack/WorkOrderPack.js
new file mode 100644
index 0000000..4adaa41
--- /dev/null
+++ b/src/components/Manufacture/WorkOrderPack/WorkOrderPack.js
@@ -0,0 +1,6855 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring,no-loop-func */
+import React, { Component } from 'react';
+import moment from 'moment';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import {
+ Modal,
+ Layout,
+ Spin,
+ Select,
+ message,
+ Button,
+ Table,
+ Checkbox,
+ Row,
+ Col,
+ Avatar,
+ Slider,
+ Tabs
+} from 'antd';
+import AddIcon from '@/assets/add.svg';
+import AddChildIcon from '@/assets/addChild.svg';
+import DisableAddIcon from '@/assets/disableadd.svg';
+import DisableAddChildIcon from '@/assets/disableaddChild.svg';
+import DelIcon from '@/assets/delete.svg';
+import DisableDelIcon from '@/assets/disabledelete.svg';
+import CopyIcon from '@/assets/copy.svg';
+import CopyAllIcon from '@/assets/copyall.svg';
+import DisableCopyIcon from '@/assets/disablecopy.svg';
+import DisableCopyAllIcon from '@/assets/disablecopyall.svg';
+import MateriallIcon from '@/assets/material.svg';
+import DisableMateriallIcon from '@/assets/disablematerial.svg';
+import ProcessIcon from '@/assets/process.svg';
+import DisableProcessIcon from '@/assets/disableprocess.svg';
+import ProcessUp from '@/assets/processUp.svg';
+import ProcessDown from '@/assets/processDown.svg';
+import DisableProcessUp from '@/assets/disableprocessUp.svg';
+import DisableProcessDown from '@/assets/disableprocessDown.svg';
+import ProcessTop from '@/assets/processTop.svg';
+import DisableProcessTop from '@/assets/disableprocessTop.svg';
+import ProcessBottom from '@/assets/processBottom.svg';
+import DisableProcessBottom from '@/assets/disableprocessBottom.svg';
+import CommonSales from '@/components/Common/CommonBillEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import CommonView from '@/components/Common/CommonView';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import commonConfig from '@/utils/config';
+import * as commonServices from '@/services/services';/* 服务类 */
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+import CommonListSelectFlex from '@/components/Common/CommonListSelectFlex';
+/* 可编辑的选择界面 */
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
+/* 树形选择界面 */
+import CommonListSelectProductProcess from '@/components/Common/CommonListSelectAssignment';
+import CommonListSelectProductMaterial from '@/components/Common/CommonListSelectProductMaterial';
+/* 选择成品工序 */
+// import SlaveMemo from '../../Common/SlaveMemo';
+import SlavesInfo from '@/components/Common/SlavesInfo';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import AntdDraggableDiv from '@/components/Common/AntdDraggableDiv';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/ejectleft.svg';
+import Close from '@/assets/closeleft.svg';
+import ShowType from '@/components/Common/CommonComponent';
+import ContextMenuModal from '@/components/Common/ContextMenuModal';
+import SplitPaste from '@/components/Manufacture/WorkOrder/SplitPaste';/* 选择界面 */
+import SvgIcon from "../../SvgIcon";
+
+import selfstyles from '../index.less';
+
+const { Header, Content, Sider } = Layout;
+const { Option } = Select;
+const { confirm } = Modal;
+const { TabPane } = Tabs;
+
+const isQianCai = false;
+
+class WorkOrderPack extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ currentTab: 1,
+ };
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ let {
+ controlColumn, materialsColumn, processColumn, colorColumn, packColumn,
+ } = nextProps;
+ const { formData, currentId } = nextProps;
+ if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ /* bGrd代表是否是表格 */
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ const checkConfig = formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0];
+ const checkColumn = commonFunc.getHeaderConfig(checkConfig);
+
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderControl'.toUpperCase())[0];
+ controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn);
+
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase())[0];
+ materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn);
+
+ const finishedMaterialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase() && item.showName === '成品材料')[0];
+ const finishedMaterialsColumn = finishedMaterialsConfig ? commonFunc.getHeaderConfig(finishedMaterialsConfig) : false;
+
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderProcess'.toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId');
+
+ const finishedProcessConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderProcess'.toUpperCase() && item.showName === '成品工序')[0];
+ const finishedProcessColumn = finishedProcessConfig ? commonFunc.getHeaderConfig(finishedProcessConfig) : false;
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ processColumn = commonFunc.getHeaderConfig(processConfig, processColumn);
+ /* 合版信息表s */
+ const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftworkordercontrolcombine'.toUpperCase())[0];
+ const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'sCustomerName'
+ || item.sName === 'sProductId'
+ || item.sName === 'sCustomerId'
+ || item.sName === 'sProductNo'
+ || item.sName === 'sProductName'
+ || item.sName === 'dProductQty'
+ || item.sName === 'sProductStyle'
+ || item.sName === 'sProductUnit')); /* 拼接从表配置,客户名称 ,产品名称,生产数 */
+ const salveChooseConfigFilter = [];
+ if (commonUtils.isNotEmptyArr(slaveChooseConfig)) {
+ slaveChooseConfig.forEach((item) => {
+ const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName);
+ if (iIndex === -1) {
+ const itemNew = Object.assign({}, item);
+ itemNew.bNotEmpty = false;
+ salveChooseConfigFilter.push(itemNew);
+ }
+ });
+ }
+ /* 拼接排序 */
+ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) {
+ let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === 'iOrder');
+ packFilter = packFilter.concat(salveChooseConfigFilter);
+ const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== 'iOrder');
+ packFilter = packFilter.concat(packFilterOther);
+ packConfig.gdsconfigformslave = packFilter;
+ }
+ packColumn = commonFunc.getHeaderConfig(packConfig, packColumn);
+ let colorConfigGrdVisible;
+ const colorConfigTrue = formData.filter(item => item.sTbName.toUpperCase() === 'mftworkorderparam'.toUpperCase())[0];
+ if (commonUtils.isNotEmptyObject(colorConfigTrue)) {
+ colorConfigGrdVisible = colorConfigTrue.bGrdVisible;
+ if (colorConfigGrdVisible) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ }
+ }
+ let addState = {};
+ const colorConfig = colorConfigGrdVisible ? colorConfigTrue : '';
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ }
+ this.props.onSaveState({
+ masterConfig,
+ slaveConfig,
+ slaveColumn,
+ checkConfig,
+ checkColumn,
+ sId,
+ pageLoading: false,
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ packConfig,
+ packColumn,
+ ...addState,
+ colorConfigGrdVisible,
+ });
+ }
+ if(nextProps.treeData && this.props.treeData && nextProps.treeData.length !== 0 && this.props.treeData.length !== 0) {
+ if ((nextProps.treeData.length > this.props.treeData.length) && (nextProps.treeData[nextProps.treeData.length - 1].key !== this.props.treeData[this.props.treeData.length - 1].key)) {
+ this.handleTreeScrollToBottom();
+ }
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { controlColumn, slaveConfig } = nextProps;
+ return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn);
+ }
+
+ /** 行选择 */
+ // onRowClick = (name, record) => {
+ // if (name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // };
+ //
+ // onRowMouseEnter = (name, record) => {
+ // if (this.props.enabled && name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // }
+ //
+ // onDoubleClick = (name, record) => {
+ // if (this.props.onDoubleClick !== undefined) {
+ // this.props.onDoubleClick(record);
+ // }
+ // };
+ onChange1 = (checkedValues) => {
+ this.props.onSaveState({
+ dataPersonArray: checkedValues,
+ });
+ };
+
+
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnCombine' || menu.sControlName === 'BtnFastOrder' || menu.sControlName === 'BtnChooseProcess' ||
+ menu.sControlName === 'BtnChooseMaterials' || menu.sControlName === 'BtnBsOperation.BtnDraft') {
+ return !this.props.enabled;
+ }
+ };
+
+ handleTreeScrollToBottom = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ const treeNode = currentTab.getElementsByClassName('xly-control-tree')[0];
+ if (treeNode) {
+ setTimeout(() => {
+ treeNode.scrollTop = treeNode.scrollHeight;
+ }, 0)
+ }
+ }
+ };
+
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+
+ /* 获取表数据 */
+ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, packConfig, extraState = {}) => {
+ const { currentId, slaveData, sModelsType } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ const addStateControl = await this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */
+ const treeState = this.handleGetControlTreeData(controlData, true);
+
+ const addStateMaterials = await this.props.handleGetDataSet({
+ name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ const addStateProcess = await this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ let iIndex = -1;
+ iIndex = addStateProcess.processData.findIndex(item => item.sId === itemProcess.sId);
+ if (iIndex > -1) {
+ addStateProcess.processData[iIndex] = { ...itemProcess, ...commonUtils.convertStrToObj(itemProcess.sWorkOrderParam) };
+ }
+ }
+ }
+ });
+ addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ }
+ }
+ const addStatePack = await this.props.handleGetDataSet({
+ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ let addStateColor = {};
+ if (colorConfig) {
+ addStateColor = await this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ /* 合版表合并产品信息 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const { packData } = addStatePack;
+ slaveData.forEach((itemSlave) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(itemSlave);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ }
+ }
+ });
+ }
+ });
+ addStatePack.packData = packData;
+ }
+ /**
+ * 修改日期:2021-03-26
+ * 修改人:吕杰
+ * 区域:以下 3 行
+ * BUG:2173
+ * 说明:通用工单刷新后 需显示所有部件的工序
+ * 原代码:
+ */
+ const noSelected = sModelsType === 'manufacture/workOrderPack';
+ this.props.onSaveState({
+ pageLoading: false, ...addStateControl,...addStateMaterials, ...addStateProcess, ...addStateColor, ...addStatePack, ...treeState, treeSelectedKeys: noSelected ? [] : controlSelectedRowKeys, ...extraState,
+ });
+ };
+
+ /** 获取部件树 */
+ handleGetControlTreeData= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ const expandedKeys = [];
+ let { treeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ const rootData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => commonUtils.isEmpty(item.sControlParentId)) : []; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRow = {};
+ const { sId, sPartsName } = item;
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.sAllId = item.sAllId;
+ const children = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(children)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(children) ? children : [];
+ treeData.push(treeDataRow);
+ });
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ expandedKeys.push(treeData[treeData.length - 1].key);
+ }
+ } else {
+ treeSelectedKeys = [];
+ treeData = [];
+ }
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+
+ /** 获取子节点数据 */
+ handleGetControlTreeChildData= (sParentId, controlData) => {
+ if (commonUtils.isNotEmptyObject(sParentId) && commonUtils.isNotEmptyArr(controlData)) {
+ const childTree = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sControlParentId === sParentId) : [];
+ const children = [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.parentKey = sParentId;
+ treeDataRow.sAllId = child.sAllId;
+ const data = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(data)) {
+ sChildren = '0';
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(data) ? data : [];
+ children.push(treeDataRow);
+ });
+ }
+ return children;
+ }
+ };
+
+ /** 根据key查找树节点并改变属性 */
+ handleSearchNodes= (key, data, showNameNew) => {
+ if (commonUtils.isNotEmptyObject(showNameNew)) {
+ data.forEach((item) => {
+ if (item.key === key) {
+ item.showName = showNameNew;
+ } else if (commonUtils.isNotEmptyArr(item.children)) {
+ this.handleSearchNodes(key, item.children, showNameNew);
+ }
+ });
+ }
+ };
+
+ handleBackProcessData = async (config, isWait) => {
+ const { token } = this.props.app;
+ const { sModelsId, sBackProcessData } = this.props;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === '') {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: '', sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ this.props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ }
+
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /* 非列表联动下拉 */
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const {
+ sModelsId, app,
+ } = this.props;
+ const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = this.props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') {
+ backProcessData = await this.handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) {
+ let iIndex;
+ allPartsName.forEach((sPartsName) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0];
+
+ const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) { /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ sBackProcessClassifyData = rows;
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) {
+ const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : [];
+ const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : [];
+ const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : [];
+ const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : [];
+ const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : [];
+
+ let ConfigNew;
+ allPartsName.forEach((item) => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...masterDataDefault, ...returnChange.masterData };
+ if (isWait) {
+ return {
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ };
+ } else {
+ this.props.onSaveState({
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ });
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = '';
+ returnChange.masterData.sProductNo = '';
+ returnChange.masterData.sProductName = '';
+ }
+ this.props.onSaveState({ ...returnChange });
+ } else {
+ this.props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ /* 数据生成按钮 */
+ handleDataCreate= async () => {
+ let { checkProcessClassifyData } = this.props;
+ const {
+ masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app, dispatch,
+ } = this.props;
+ const { token } = this.props.app;
+ const paramMap = {};
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ 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);
+ }
+ }
+ }
+ });
+ 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;
+ }
+
+
+ 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);
+ });
+ }
+ 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.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) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+
+ partInfo.processInfo.forEach((process, iOrder) => {
+ let processAfterDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processAfterDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processAfterDataRow[child] = process[child];
+ }
+ processAfterDataRow.handleType = 'add';
+ processAfterDataRow.sProcessId = process.sProcessId;
+ const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId);
+ if (iProcessAfterIndex > -1) {
+ processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段
+ }
+ processAfterDataRow.sType = process.sType;
+ processAfterDataRow.iPartOrder = iIndex;
+ processAfterDataRow.iOrder = iOrder + 1;
+ processAfterDataRow.sPartsName = partsDataRow.sPartsName;
+ processAfterDataRow.sId = commonUtils.createSid();
+ processAfterDataRow.sParentId = masterData.sId;
+ processAfterDataRow.sControlId = partsDataRow.sId;
+ processData.push(processAfterDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ });
+ productProcessInfo.forEach((process, iOrder) => {
+ let processProductDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processProductDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processProductDataRow[child] = process[child];
+ }
+ const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId);
+ if (iProductProcessIndex > -1) {
+ processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段
+ }
+ processProductDataRow.handleType = 'add';
+ processProductDataRow.sType = '3';
+ processProductDataRow.sPartsName = '';
+ processProductDataRow.iPartOrder = 999;
+ processProductDataRow.iOrder = iOrder + 1;
+ processProductDataRow.sId = commonUtils.createSid();
+ processProductDataRow.sParentId = masterData.sId;
+ processData.push(processProductDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ processData = this.sortData(controlData, processData);
+ const addState = {};
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ }
+ 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,
+ });
+ }
+ }, timValue);
+ };
+
+ /* 勾选工序分类 */
+ handleProcessChange=(e, value, sPartsName) => {
+ let { checkProcessClassifyData } = this.props;
+ let index = -1;
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (e.target.checked) {
+ if (index <= -1) {
+ const newvalue = { ...value };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ } else if (index > -1) {
+ checkProcessClassifyData.splice(index, 1);
+ }
+ this.props.onSaveState({ checkProcessClassifyData });
+ };
+
+ handleSelectChangeProcess = (sAssignField, value, option) => {
+ const { masterData, sBackProcessClassifyData } = this.props;
+ let { checkProcessClassifyData } = this.props;
+ if (sAssignField !== undefined) {
+ // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype
+ const sAssignFields = sAssignField.split(',');
+ const recordRow = option.props['data-recordrow'];
+ sAssignFields.forEach((item, iAssignIndex) => {
+ const itemsplits = item.split(':');
+ masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]];
+ if (iAssignIndex === 0) {
+ let index = -1;
+ const sPartsName = itemsplits[0].replace(recordRow.sParentId, '');
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (index <= -1) {
+ const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId);
+ if (iBackProcessIndex > -1) {
+ const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ }
+ }
+ });
+ this.props.onSaveState({ masterData, checkProcessClassifyData });
+ }
+ }
+
+ handleA = (sId) => {
+ const { sBackProcessData } = this.props;
+ const data = sBackProcessData.filter(item => item.sParentId === sId);
+ const optionProcess = [];
+ data.forEach((item) => {
+ optionProcess.push();
+ });
+ return optionProcess;
+ }
+
+ handleSave = async () => {
+ this.form.validateFields(async (err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, packConfig, packData, packDelData, app, calculated, sModelsType,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) ||
+ (!commonBusiness.validateTable(materialsConfig, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, this.props) || !commonBusiness.validateTable(packConfig, packData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ let flag = true;
+ for (const item of materialsData) {
+ if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ flag = false;
+ break;
+ }
+ }
+ if (!flag) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ }
+ if (['manufacture/workOrder'].includes(sModelsType) && !calculated) {
+ message.warning('自动计算中,请稍后再试。');
+ await this.handleCalculation(true);
+ } else {
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ }
+ }
+ });
+ };
+
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ const {
+ slaveData, controlData, materialsData, enabled,
+ app,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若从表相关联的材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ if (materialsData) {
+ materialsData.filter(item => item.sParentId === slaveData[iIndex].sParentId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ }
+ }
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ addState.treeSelectedKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ addState.treeSelectedKeys = [];
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData, app, enabled,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若此条控制表中材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ materialsData.filter(item => item.sControlId === tableData[iIndex].sId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ if (iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ const { treeData } = this.props; /* 赋值给树组件节点 */
+ let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */
+ if (treeData !== undefined) {
+ treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ addState.treeSelectedKeys = treeSelectedKeys;
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'materials' || name === 'process') {
+ const { [`${name}Data`]: tableData, app, enabled } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 工单中材料或工序,若该条数据被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ const sOrderdetailUsed = tableData[iIndex].sOrderdetailUsed;
+ const sProductionUsed = tableData[iIndex].sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ return;
+ }
+ }
+ if (enabled && iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'pack') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ this.handleGetdFactProductQty(selectedRowKeys, tableData);
+ }
+ this.props.onSaveState(addState);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /** 控制选择控制表时,显示成品材料与成品工序 */
+ handleFilterProductData = (name, dataIndex, value, record) => {
+ const { slaveSelectedRowKeys } = this.props;
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') &&
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ }
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleGetFilterData = (name, bFinished) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props;
+ if (data !== undefined && ((commonUtils.isNotEmptyArr(controlSelectedRowKeys) && !bFinished) || bFinished)) {
+ if (name === 'materials' && bFinished) { /* 新增成品材料 */
+ return data.filter(item => item.sType === '2' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else if (name === 'process' && bFinished) { /* 新增成品工序s */
+ return data.filter(item => item.sType === '3' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ }
+ };
+ handleKeyDown = (e, record, sName, name) => {
+ /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */
+ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) {
+ if (e.key !== 'F12') {
+ e.preventDefault();
+ }
+ } else {
+ this.props.onKeyDown(e, record, sName, name);
+ }
+ }
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, flag, bchild, bFinished, bModalAdd) => {
+ const { masterConfig } = this.props;
+ if(bModalAdd === true) {
+ if(name === 'materials') {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productMaterials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ if(name === 'process') {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productProcess', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ return;
+ }
+ /* 外置处理业务 */
+ const {
+ gdsformconst, slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData,
+ } = this.props;
+ if (name === 'control') {
+ /* 增加子部件 */
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (bchild === 'sameNode') { /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item.sId === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('部件数据生成错误![sAllId为空]');
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sId}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ }
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sControlParentId = treeSelectedKeys[0];
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = controlData[iIndex].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`;
+ }
+ }
+ let dPartsQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ }
+ tableDataRow.dPartsQty = dPartsQty;
+ tableData.push(tableDataRow);
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ this.props.onSaveState({
+ ...treeState, [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], treeSelectedKeys: [tableDataRow.sId],
+ });
+ } else if (name === 'materials' || name === 'process') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) {
+ message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件
+ return;
+ }
+ if(bFinished) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`;
+ tableDataRow.sCombinePartsName = slaveData[iIndex].sId;
+ if (name === 'materials') { /* 新增成品材料 */
+ tableDataRow.sType = '2';
+ }
+ if (name === 'process') { /* 新增成品工序 */
+ tableDataRow.sType = '3';
+ }
+ }
+ } else {
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ // tableDataRow.iOrder = controlData[iIndex];
+ }
+ }
+
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if (name === 'slave') {
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app, packData } = this.props;
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.forEach((item) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(tableDataRow, slaveData.length, item.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }, packData);
+ } else {
+ return this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = (name, tableSelectedRowKeys, sField) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ const sFieldName = commonUtils.isEmpty(sField) ? 'sControlId' : sField;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据s */
+ let tableDataIndex = tableData.findIndex(item => item[sFieldName] === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item[sFieldName] === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ }
+ /** 删除表格数据 */
+ handleTableDel = async (name, flag, tableSelectedRowKeys) => {
+ if (name === 'slave') {
+ /* 删除sSlaveId关联的合版表 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys, 'sSlaveId');
+ const materielReturnData = this.otherTableDel('materials', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品材料 */
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品工序 */
+ const slaveReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materielReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...slaveReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'control') {
+ const { controlData, treeSelectedKeys, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const iIndex = controlData.findIndex(item => tableSelectedRowKeys.includes(item.sId) && item.rowTag === 1);
+ if (iIndex > -1) {
+ /* 如果行被锁定不可更改删除时 */
+ return false;
+ }
+ /* 删除该节点及所有子节点 */
+ const controlChildData = controlData.filter(item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ const treeState = this.handleGetControlTreeData(controlReturnData.controlData, true);
+ this.props.onSaveState({
+ ...treeState,
+ ...materialsReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'process') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, materialsConfig, materialsData, token,
+ } = this.props;
+ let { materialsDelData } = this.props;
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ let iMaterialsIndex = -1;
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+
+ const sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ const processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === slaveDataFilter.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+
+ processReturnData.processDelData.concat(tableDelData);
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = '';
+ materialsData[iMaterialsIndex].sProcessTbId = '';
+ materialsData[iMaterialsIndex].sMaterialsProcessName = '';
+ }
+ this.props.onSaveState({
+ ...processReturnData,
+ materialsDelData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ } else {
+ return this.props.onDataRowDel(name, flag, tableSelectedRowKeys);
+ }
+ };
+ /** 材料被使用锁定表格数据行 */
+ handleTableRowLock = async (name, record) => {
+ const { slaveData, controlData, enabled } = this.props;
+ if (commonUtils.isNotEmptyObject(record) && enabled) {
+ if (name === 'materials' || name === 'process') {
+ const { sOrderdetailUsed, sProductionUsed } = record;
+ if (commonUtils.isNotEmptyObject(sOrderdetailUsed) || commonUtils.isNotEmptyObject(sProductionUsed)) {
+ record.rowTag = 1;
+ controlData.filter(item => item.sId === record.sControlId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ slaveData.filter(item => item.sParentId === record.sParentId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ }
+ }
+ }
+ }
+
+ handleCalculation = async (bSave) => {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`;
+ const {
+ app, masterConfig, slaveConfig, packConfig, controlConfig, materialsConfig, processConfig, colorConfig, sModelsType, colorData, slaveDelData, controlDelData, materialsDelData, processDelData, colorDelData, packDelData,
+ } = this.props;
+ let {
+ slaveData, packData, controlData, materialsData, processData, masterData,
+ } = this.props;
+ const sMakePerson = masterData.sMakePerson;
+ const dataCalculation = [];
+ if ((masterData.sFormId === '101251240115015840916341460' || sModelsType.includes('manufacture/workOrderSupple')) && commonUtils.isNotEmptyArr(colorData)) {
+ controlData.forEach((item) => {
+ item.iPositiveColor = colorData.filter(item => !item.bNotColor).length;
+ });
+ }
+ dataCalculation.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ dataCalculation.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('pack', `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('materials', `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ const value = { data: dataCalculation, sClientType: '1', sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) { /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ if (masterData.handleType === 'update' && !commonUtils.isEmpty(sMakePerson)) {
+ masterData.sMakePerson = sMakePerson;
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+
+ /* 计算成功后自动调用保存 */
+ if (bSave) {
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ } else {
+ this.props.onSaveState({
+ slaveData, packData, controlData, materialsData, processData, masterData, loading: false, calculated: true,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess'));
+ }
+ } else { /* 失败 */
+ this.props.onSaveState({
+ loading: false,
+ calculated: false,
+ });
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ /** 按钮操作事件 */
+ handleButtonClick = async (name) => {
+ if (name === 'BtnCalculation') {
+ this.props.onSaveState({
+ loading: true,
+ });
+ this.handleCalculation();
+ } else if (name === 'BtnChooseProcess') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnChooseMaterials') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnFastOrder') {
+ const {
+ masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData,
+ } = this.props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (commonUtils.isEmptyArr(checkProcessClassifyData) && commonUtils.isNotEmptyArr(controlData) && !commonUtils.isEmpty(changeData) && !commonUtils.isEmpty(changeData.sAllPartsName)) {
+ const allPartsName = changeData.sAllPartsName.split(',');
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach((item) => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData.filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ }
+ this.props.onSaveState({ fastOrderModalVisible: true, workOrderAllprogress: 0, ...addState });
+ } else if (name === 'BtnCombine') {
+ const { slaveData: slaveDataOld, controlData: controlDataOld } = this.props;
+ let dMaxQty = 0;
+ let dSumMachineQty = 0;
+ slaveDataOld.forEach((item) => {
+ if (commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty > dMaxQty) {
+ dMaxQty = Math.ceil(commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty);
+ }
+ });
+ const controlData = [];
+ if (commonUtils.isNotEmptyArr(controlDataOld)) {
+ controlDataOld.forEach((item) => {
+ let controlRow = { ...item, dPartsQty: dMaxQty };
+ controlRow = this.singlePQtyChange(controlRow);
+ controlData.push(controlRow);
+ });
+ dSumMachineQty = controlData[0].dSumMachineQty;
+ }
+ const slaveData = [];
+ slaveDataOld.forEach((item) => {
+ slaveData.push({ ...item, dProductQty: dSumMachineQty * item.dCombineQty });
+ });
+ this.props.onSaveState({ slaveData, controlData });
+ } else if (name === 'BtnDraft') {
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData,
+ } = this.props;
+ const data = [];
+ slaveConfig.gdsconfigformslave.forEach((itemConfig) => {
+ slaveData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ controlConfig.gdsconfigformslave.forEach((itemConfig) => {
+ controlData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ materialsConfig.gdsconfigformslave.forEach((itemConfig) => {
+ materialsData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ processConfig.gdsconfigformslave.forEach((itemConfig) => {
+ processData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorConfig.gdsconfigformslave.forEach((itemConfig) => {
+ colorData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId, bIsUnCcg: false,
+ });
+ } else {
+ this.props.onButtonClick(name);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, packConfig,
+ } = this.props;
+ const bReturn = await this.props.onSearchData(handleType);
+ if (bReturn) {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ }
+ };
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, packConfig,
+ } = this.props;
+ this.props.onEdit(() => {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig, { loading: false, enabled: true });
+ });
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, masterData, slaveData, controlData, materialsData, processData, colorData, packData, app, token, sModelsId, formRoute,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.processData = processData;
+ copyTo.colorData = colorData;
+ copyTo.packData = packData;
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ },
+ });
+ };
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app,
+ } = props;
+ const { userinfo, systemData } = app;
+ const { sMakePerson } = masterData; /* 本单据制单人 */
+ const { sUserName, sType } = userinfo;/* 登录用户 */
+ const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson');
+ if (iIndex > -1) {
+ const sValue = systemData[iIndex].sValue;
+ if (sValue === '0') { /* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */
+ if (sType !== 'sysadmin' && sUserName !== sMakePerson) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoDelByNoMakePerson'));
+ return;
+ }
+ }
+ }
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ sSlaveTable: [
+ {
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: checkConfig.sTbName,
+ relationName: 'sBillId',
+ }, {
+ tableName: controlConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: materialsConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: processConfig.sTbName,
+ relationName: 'sParentId',
+ }],
+ },
+ };
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.props.onDelDataSuccess(props);
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, app,
+ } = this.props;
+ const onGetData = this.props.onGetData;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const { copyTo } = app.currentPane;
+ const { userinfo } = app;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onGetData(masterConfig, slaveConfig, checkConfig);
+ onGetDataOk(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const {
+ masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig,
+ } = this.props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await this.props.onAdd(config, copyTo, true);
+ let { slaveData, masterData } = state;
+ let controlData = [];
+ let packData = [];
+ let materialsData = [];
+ let processData = [];
+ const colorData = [];
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const {
+ app, sModelsId, token, sModelsType,
+ } = this.props;
+ const bCkxCopyFromTechnology = app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1' && (sModelsType !== 'manufacture/workOrder2' && sModelsType !== 'manufacture/workOrderSupple2')) {
+ if (slaveData.length > 1) {
+ const dataUrl = `${commonConfig.server_host}business/getCopyToWorkOrderData?sModelsId=${sModelsId}`;
+ const data = [];
+ data.push(commonBusiness.mergeData('master', `${config.masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ data.push(commonBusiness.mergeData('slave', `${config.slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ const value = {
+ data, sClientType: '1', sGuid: masterData.sId, sConfigId: copyTo.config[0].sId, sControlName: copyTo.name,
+ };
+ const dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${config.masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ slaveData = valueReturn[`${config.slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${config.controlConfig.sTbName.toLowerCase()}_tmp`];
+ packData = valueReturn[`${config.packConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${config.materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${config.processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach((slaveItem) => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData.forEach((item, iSlaveIndex) => {
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSlaveIndex] = item;
+ if (dProductQty) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ }
+ });
+ const treeCopyNodes = new Map();
+ await returnData.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ await copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ // eslint-disable-next-line radix
+ if ((slaveData.length <= 1) || (slaveData.length > 1 && parseInt(processItem.sType) <= 1)) {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData) && (slaveData.length <= 1)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ } else if (slaveData.length > 1) {
+ let sInfo;
+ slaveData.forEach((item) => {
+ sInfo = commonUtils.isEmpty(sInfo) ? `${item.sCustomerId}|${item.sProductId}` : `${sInfo},${item.sCustomerId}|${item.sProductId}`;
+ });
+ const dataUrl = `${commonConfig.server_host}salesorder/getgdsemigoodsMatchInfo?sModelsId=${sModelsId}`;
+ const params = {
+ customerProductInfo: sInfo,
+ };
+ const dataCombineProcess = (await commonServices.postValueService(token, params, dataUrl)).data;
+ if (dataCombineProcess.code === 1) {
+ const returnData = dataCombineProcess.dataset.rows;
+ returnData.forEach((processItem, processIndex) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.sSlaveCustomerId = processItem.sCustomerId;
+ processRow.sCustomerName = processItem.sCustomerName;
+ processRow.sSlaveProductId = processItem.sProductId;
+
+ processRow.sProductName = processItem.sProductName;
+ processRow.iOrder = processIndex + 1;
+ processRow.sType = '3';
+
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ });
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let bProcessAssort = true;
+ /* 生产翻单不生成配套工序 */
+ const srcFormRoute = copyTo.srcFormRoute; /* 未清来源路径 */
+ if (sModelsType === 'manufacture/workOrder' && (commonUtils.isEmpty(srcFormRoute) || srcFormRoute.includes('workOrder'))) {
+ bProcessAssort = false;
+ }
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = this.props;
+ const sSlaveId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sSlaveId) ? copyTo.slaveData[0].sSlaveId : copyTo.slaveData[0].sId;
+ const condition = { sSlaveId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.packData = returnData.packData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ await this.props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ // let dProductQty = 0;
+ // slaveData.forEach((item) => {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ const treeCopyNodes = new Map();
+ await copyTo.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sOriginalId = controlItem.sId; /* 复制前的部件表sId */
+ controlRow.sParentId = masterData.sId;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ // controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ await copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId || item.sOrderSlaveId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData) && commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)&& commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ if (sModelsType.includes('workOrderSet')) { /* 通用工单的合版部件名称来自于控制表,复制到时需换成新生成的控制表sId */
+ const controlFilterData = controlData.filter(item => sOldArr.includes(item.sOriginalId));
+ if (commonUtils.isNotEmptyArr(controlFilterData)) {
+ controlFilterData.forEach((item) => {
+ sNewIds += `${item.sId},`;
+ sNewNames += `${item.sPartsName},`;
+ });
+ }
+ } else {
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (dProductQty) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ tableDataRow.sAllId = tableDataRow.sId;/* 第一级sAllId等于sId */
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = this.sortData(controlData, processData);
+ }
+ } else {
+ state.fastOrderModalVisible = this.props.bFastOrderView;
+ const { sModelsId } = this.props;
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true);
+ state = { ...state, ...addState };
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1; /* 序号从1开始 */
+ tableDataRow.sCombinedMemo = '合版信息';
+ tableDataRow.sAllId = tableDataRow.sId;
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ /* 新增时,增加一条合版信息 */
+ if (packData.length === 0) {
+ slaveData.forEach((item, index) => {
+ const tableDataRow = this.handlePackDataAdd(item, index, controlData[0].sId, 'add');
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ // tableDataRow.dCombineQty = 1;
+ packData.push(tableDataRow);
+ }
+ });
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ const stateNew = {
+ ...state,
+ ...treeState,
+ controlData,
+ controlSelectedRowKeys: [],
+ packData,
+ packSelectedRowKeys: [],
+ materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ processSelectedRowKeys: [],
+ colorData,
+ colorSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ this.props.onSaveState(stateNew);
+ }
+ };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, controlSelectedRowKeys, sModelsId, token,
+ slaveConfig, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld,
+ controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld,
+ } = this.props;
+ let { masterData, slaveSelectedRowKeys } = this.props;
+ if (name === 'productProcessInfo') {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ let controlData = [];
+ let materialsData = [];
+ let processData = [];
+ let colorData = [];
+ let packData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ controlDataOld.forEach((item) => {
+ item.handleType = 'del';
+ controlDelData.push(item);
+ });
+ addState.controlDelData = controlDelData;
+ materialsDataOld.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ processDataOld.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ let iSlaveIndex = -1;
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ slaveSelectedRowKeys = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : [];
+ }
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ let condition = { sCardId: selectData[0].sId };
+ let dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+
+ /* 复制从工单功能 */
+ const { productProcessInfoCopyFromKey } = this.props;
+ let bCopyFromWorkOrder = false;
+ if (commonUtils.isNotEmptyObject(productProcessInfoCopyFromKey) && productProcessInfoCopyFromKey.includes('BtnCopyFrom.sworkorder')) {
+ // bCopyFromWorkOrder = true;
+ condition = { sWorkOrderId: selectData[0].sId, slaveData };
+ // dataUrl = `${commonConfig.server_host}salesorder/getCopyFromWorkOrder/?sModelsId=${sModelsId}`;
+ dataUrl = `${commonConfig.server_host}salesorder/getWorkOrderToWorkOrder/?sModelsId=${sModelsId}`;
+ }
+
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+
+ /* 复制从工单逻辑 源数据集整体赋值 */
+ if (bCopyFromWorkOrder && dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ let treeState = [];
+ if (commonUtils.isNotEmptyArr(returnData)) {
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ controlData = returnData.controlData;
+ treeState = this.handleGetControlTreeData(controlData, true);
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ materialsData = returnData.materialsData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ processData = returnData.processData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ packData = returnData.packData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ colorData = returnData.controlData;
+ }
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ processData,
+ materialsData,
+ controlData,
+ colorData,
+ packData,
+ masterData,
+ ...treeState,
+ tableSelectedNewRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ controlSelectedRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ }
+ } else if (!bCopyFromWorkOrder && dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ returnData.slaveData.forEach((slaveItem, iIndex) => {
+ /* 从工艺卡数据集 找到从表选中行的产品ID,客户ID */
+ if(slaveItem.sProductId === slaveData[iSlaveIndex].sProductId && slaveItem.sCustomerId === slaveData[iSlaveIndex].sCustomerId ){
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSlaveIndex].sOriginalId = slaveItem.sSlaveId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0) + commonUtils.isNull(slaveItem.dGiveQty, 0) + commonUtils.isNull(slaveItem.dStockupQty, 0);
+ }
+ }else{ /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow ={};
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField,slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = slaveItem.sSlaveId;
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true);
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ processData,
+ materialsData,
+ controlData,
+ colorData,
+ packData,
+ masterData,
+ ...treeState,
+ tableSelectedNewRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ controlSelectedRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === 'process') {
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ }
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+
+ const processLen = tableData.filter(item => item.sType !== '3').length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ const processLen = tableData.filter(item => item.sType === '3').length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ }
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ };
+
+ handleSelectProductMaterial = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ // 选择成品材料,将sType改为2
+ if (name === 'productMaterials') {
+ selectData = selectData.map(val => ({ ...val, sType: '2' }));
+ name = 'materials';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, controlSelectedRowKeys, materialsConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+
+ tableDataRow.sParentId = masterData.sId;
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品材料sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName;
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ if (iControlIndex > -1 && tableDataRow.sType !== '2') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '2') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+
+ /* 选择成品工序点确定 */
+ /* 工单从表选中selectedRowKeys */
+ handleSelectFinalProcess = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ const targetname = 'process';
+ const {
+ [`${targetname}Data`]: tableData, [`${targetname}Config`]: tableConfig, controlSelectedRowKeys, sModelsId, token,
+ materialsConfig, processConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ if (name === 'chooseProductProcess') {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ /* 通过slaveFinalSelectedRowKeys找到slaveData数据 */
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ tableDataRow.sType = '3';
+ if (targetname === 'process') {
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ const processLen = tableData.filter(item => item.sType !== '3').length + 1; /* 工序序号自增 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ const processLen = tableData.filter(item => item.sType === '3').length + 1; /* 工序序号自增 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${targetname}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ }
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled, slaveData } = this.props;
+ let { packData } = this.props;
+ if (name === 'control') {
+ const packSelectedRowKeys = [];
+
+ /* 合并从表相同客户、产品数据 */
+ const slaveDataMerge = [];
+ slaveData.forEach((item) => {
+ const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ slaveDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ slaveDataMerge[iIndex].dProductQty = dProductQtyNew;
+ slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+
+ /* 合并合版表相同客户、产品数据 */
+ const packDataMerge = [];
+ packData.forEach((item) => {
+ const iIndex = packDataMerge.findIndex(child => commonUtils.isNotEmptyObject(item.sCombinePartsName) && child.sCombinePartsName === item.sCombinePartsName && commonUtils.isNotEmptyObject(item.sProductId) && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ packDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ packDataMerge[iIndex].dProductQty = dProductQtyNew;
+ packDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ packDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+ if (commonUtils.isNotEmptyArr(packDataMerge)) {
+ packData = packDataMerge;
+ }
+
+ /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */
+ if (commonUtils.isNotEmptyArr(slaveDataMerge)) {
+ slaveDataMerge.forEach((item, index) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(item);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) {
+ packSelectedRowKeys.push(itemPack.sId);
+ }
+ }
+ }
+ });
+ } else {
+ const tableDataRow = this.handlePackDataAdd(item, index, sId, 'add');
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ packData.push(tableDataRow);
+ }
+ }
+ });
+ }
+ this.props.onSaveState({
+ productCombinationVisible: true,
+ sCombinationsControlId: sId, /* 合版产品控制表sId */
+ enabled,
+ packSelectedRowKeys,
+ packData,
+ });
+ } else if (name === 'process' && (sName === 'sCombinePartsNameNew'|| sName === 'sCombineProductNameNew')) {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '3') { /* 成品工序跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ } else { /* 成品工序跟着合版表走 */
+ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack, index) => {
+ let slaveDataRow = {};
+ let packRowAdd = {};
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId);
+ if (iIndex > -1) {
+ slaveDataRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveDataRow)) {
+ packRowAdd = this.handlePackDataAdd(slaveDataRow);
+ }
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ processSelectedRowId: sId, /* 工序表选中行sId */
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'materials' && (sName === 'sCombinePartsNameNew'|| sName === 'sCombineProductNameNew')) {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '2') { /* 成品材料跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ materialsSelectedRowId: sId, /* 工序表选中行sId */
+ openTable: 'materials',
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'process' && sName === 'sColorSerialMemo') {
+ this.props.onViewChoose(name, sName, record);
+ }
+ }
+ handlePackDataAdd= (item, index, sControlId, handleType) => {
+ const tableDataRow = {};
+ if (handleType === 'add') {
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.sSlaveId = item.sId;
+ tableDataRow.iOrder = item.iOrder;
+ }
+ tableDataRow.sParentId = item.sParentId;
+ if (commonUtils.isNotEmptyObject(sControlId)) {
+ tableDataRow.sControlId = sControlId;
+ }
+ // if (commonUtils.isNotEmptyObject(index)) {
+ // tableDataRow.iOrder = index + 1;
+ // }
+ tableDataRow.sProductId = item.sProductId; /* 产品id */
+ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */
+ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */
+ tableDataRow.sProductName = item.sProductName; /* 产品名称 */
+ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (bProductQtySelf) {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */
+ }
+ tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */
+ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */
+ return tableDataRow;
+ }
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = '';
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = '';
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace('.', '');
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace('.', '');
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ // return parseFloat(sPartOrder1 + sOrder1) - parseFloat(sPartOrder2 + sOrder2);
+ return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2);
+ });
+ return processData;
+ };
+ /* 控制排序 */
+ orderData = (e, name, type) => {
+ const {
+ [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app,
+ } = this.props;
+ let { [`${name}Data`]: processData } = this.props;
+ // const processDataFiltered = processData.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1);
+ const processDataFiltered = processData;
+ if (name === 'process') {
+ if (commonUtils.isEmptyArr(tableselectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */
+ return;
+ }
+ if (commonUtils.isEmptyArr(processData)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */
+ return;
+ }
+ const processNew = processData.filter((item) => { /* 获取勾选数据集 */
+ return tableselectedRowKeys.indexOf(item.sId) > -1;
+ });
+ if (commonUtils.isEmptyArr(processNew)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */
+ return;
+ }
+ const len = processDataFiltered.length;
+ const newLen = processNew.length;
+ let num = 0.01;/* 循环增加体 */
+ let targetiOrder = -1;
+ // 上下排序修改为两个item的order对调
+ if (type === 1) { /* 上移 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[iIndex - 1].iOrder - 1; /* 目标排序号 */
+ }
+ } else if (type === 2) { /* 下移 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[iIndex + 1].iOrder;
+ }
+ } else if (type === 0) { /* 置顶 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[0].iOrder - 1;
+ }
+ } else if (type === 3) { /* 置底 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */
+ return;
+ } else {
+ targetiOrder = 999;
+ }
+ }
+ processNew.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.sType)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */
+ return;
+ }
+ const index1 = processData.findIndex(item1 => item1.sId === item.sId);
+ processData[index1] = { ...item, iOrder: targetiOrder + num };
+ num += 0.01;
+ });
+ processData = this.sortData(controlData, processData);
+ const processSortData = this.props.orderNum(processData, controlSelectedRowKeys);
+ if (commonUtils.isNotEmptyArr(processSortData)) {
+ processData = processSortData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: processData });
+ }
+ };
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ if (name === 'slave') {
+ const {
+ sModelsId, masterConfig, controlConfig, masterData, [`${name}Data`]: tableData, controlData: controlDataOld, packData,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iProductQtyIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iProductQtyIndex > -1) {
+ bProductQtySelf = true; /* 生产数量无需叠加 */
+ }
+ }
+ if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') {
+ let dPartsQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ /* 找到所有一级部件 */
+ const controlRootData = commonUtils.isNotEmptyArr(controlDataOld) ? controlDataOld.filter(item => commonUtils.isEmpty(item.sControlParentId)) : [];
+ if (commonUtils.isNotEmptyArr(controlRootData)) {
+ controlRootData.forEach((item) => {
+ let itemNew = { ...item };
+ /* 父级的dPartsQty为dPartsQty */
+ itemNew.dPartsQty = dPartsQty;
+ itemNew = this.singlePQtyChange(itemNew);
+ /* 找到子部件 */
+ const controlChildData = controlDataOld.filter(itemOld => commonUtils.isNotEmptyObject(itemOld.sAllId) && itemOld.sAllId.indexOf(item.sId) > -1 && itemOld.sId !== item.sId);
+ if (commonUtils.isNotEmptyArr(controlChildData)) {
+ const { dMachineQty } = itemNew;
+ controlChildData.forEach((child) => {
+ let tableDataRow = { ...child };
+ const iIndex = controlDataOld.findIndex(item => item.sId === child.sId);
+ if (iIndex > -1) {
+ /* 子部件部件数量为父部件上机数量 */
+ tableDataRow.dPartsQty = dMachineQty;
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ controlDataOld[iIndex] = tableDataRow;
+ }
+ });
+ }
+ const addStata = {};
+ addStata.dPartsQty = dPartsQty;
+ const iRootIndex = controlDataOld.findIndex(itemControl => itemControl.sId === item.sId);
+ controlDataOld[iRootIndex] = { ...controlDataOld[iRootIndex], ...itemNew };
+ });
+ }
+ addState.controlData = controlDataOld;
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ tableDataRow.sProductId = '';
+ tableDataRow.sProductNo = '';
+ tableDataRow.sProductName = '';
+ tableData[iIndex] = tableDataRow;
+ } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && tableDataRow.handleType === 'add') {
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', sFieldName);
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ }
+ }
+ /* 从表改变时合版表数据对应改变,从新改变packData数据 */
+ packData.forEach((item, index) => {
+ if (item.sSlaveId === tableDataRow.sId) {
+ const addState = {};
+ addState.sProductId = tableDataRow.sProductId; /* 产品id */
+ addState.sCustomerId = tableDataRow.sCustomerId; /* 客户id */
+ addState.sCustomerName = tableDataRow.sCustomerName; /* 客户名称 */
+ addState.sProductName = tableDataRow.sProductName; /* 产品名称 */
+ addState.sProductNo = tableDataRow.sProductNo; /* 产品编号 */
+ addState.dProductQty = tableDataRow.dProductQty; /* 生产数量 */
+ addState.sProductUnit = tableDataRow.sProductUnit; /* 单位 */
+ addState.sProductStyle = tableDataRow.sProductStyle; /* 产品规格 */
+ packData[index] = { ...packData[index], ...addState };
+ }
+ });
+ addState.packData = packData;
+ this.props.onSaveState({ [`${name}Data`]: tableData, ...addState, calculated: false });
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsType,
+ } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dPartsQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ /* 上机数量改变时,子级部件数量同步改变 */
+ const { dMachineQty } = tableDataRow;
+ /* 查找该节的所有子节点,将上机数量改为部件数量 */
+ tableData.forEach((item, index) => {
+ if (commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableDataRow.sId) > -1 && item.sId !== tableDataRow.sId) {
+ const addstate = {};
+ addstate.dPartsQty = dMachineQty;
+ tableData[index] = { ...tableData[index], ...addstate };
+ }
+ });
+ } else if (sFieldName === 'dMachineLength' || sFieldName === 'dMachineWidth') { /* 控制表长宽改变 关联材料表type为0的上机长宽对应改变 */
+ if (commonUtils.isNotEmptyArr(materialsDataOld)) {
+ materialsDataOld.forEach((item, index) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === tableDataRow.sId && itemNew.sType === '0') {
+ itemNew.sMachineStyle = `${tableDataRow.dMachineLength.toString()}*${tableDataRow.dMachineWidth.toString()}`;
+ itemNew.handleType = commonUtils.isEmpty(itemNew.handleType) ? 'update' : itemNew.handleType;
+ }
+ materialsDataOld[index] = { ...materialsDataOld[index], ...itemNew };
+ });
+ }
+ } else if (sModelsType.includes('manufacture/workOrder')) {
+ /* 计算材料开数 */
+ // if (sFieldName === 'dMachineLength' || sFieldName === 'dMachineWidth' || sFieldName === 'dMaterialsLength' || sFieldName === 'dMaterialsWidth') {
+ // let dProductLength = 0; /* 产品长 */
+ // let dProductWidth = 0; /* 产品宽 */
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // dProductLength = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[0] : 0;
+ // dProductLength = commonUtils.convertStrToNumber(commonUtils.isNull(dProductLength, 0)); /* 产品长 */
+ // dProductLength = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductLength : 0; /* 产品长 */
+ // dProductWidth = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[1] : 0;
+ // dProductWidth = commonUtils.convertStrToNumber(commonUtils.isNull(dProductWidth, 0)); /* 产品宽 */
+ // dProductWidth = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductWidth : 0; /* 产品宽 */
+ // }
+ // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ // const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ // const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+ //
+ // /* 算材料开数 */
+ // const mapMaterialsKQty = this.props.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ // if (commonUtils.isNotEmptyObject(mapMaterialsKQty)) {
+ // const dMaterialsKQty = mapMaterialsKQty.totalNum;
+ // tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ // }
+ //
+ // /* 算拼版数 */
+ // if (dProductLength !== 0 && dProductWidth !== 0) {
+ // const mapSinglePQty = this.props.onResolveMachineComposing(dProductLength, dProductWidth, dMachineLength, dMachineWidth);
+ // if (commonUtils.isNotEmptyObject(mapSinglePQty)) {
+ // const dSinglePQty = mapSinglePQty.totalNum;
+ // tableDataRow.dSinglePQty = dSinglePQty;
+ // }
+ // }
+ // }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+ if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = this.props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, calculated: false,
+ });
+ } else if (name === 'materials') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, app, sModelsId,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === 'sType') {
+ if (tableData[iIndex].sType === '2') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, calculated: false });
+ } else if (name === 'process') {
+ const {
+ [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, processConfig, token,
+ } = this.props;
+ let { processDelData, materialsDelData } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let iMaterialsIndex = -1;
+ let sControlId = '';
+ if (iIndex > -1) {
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) {
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = '工艺参数';
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = '';
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = 'del';
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ if (tableData[iIndex].sType === '3') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ }
+ }
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState, calculated: false,
+ });
+ } else if (name === 'pack') {
+ const { packData, packSelectedRowKeys } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ packData[iIndex] = tableDataRow;
+ if (sFieldName === 'dCombineQty' || sFieldName === 'dProductQty') {
+ this.handleGetdFactProductQty(packSelectedRowKeys, packData);
+ }
+ this.props.onSaveState({ packData, calculated: false });
+ } else {
+ this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+ /* 重新计算实际生产数 */
+ handleGetdFactProductQty = (selectedRowKeys, tableData) => {
+ const maxArr = [];
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const tableFilter = tableData.filter(item => selectedRowKeys.includes(item.sId) && item.dCombineQty > 0);
+ if (selectedRowKeys.length === 1 || tableFilter.length === 1) { /* 当选中行只有一行时,实际生产数等于生产数 */
+ const iSlaveIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ const dProductQty = tableData[iSlaveIndex].dProductQty;
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty: dProductQty };
+ }
+ } else {
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ const { dCombineQty, dProductQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ let dNum = commonUtils.convertFixNum(dCombineQty !== 0 ? dProductQty / dCombineQty : 0, 2); /* 生产数/排版数 取最大值 */
+ dNum = Math.ceil(dNum);
+ maxArr.push(dNum);
+ }
+ }
+ }
+ let dMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ dMax = Math.max(...maxArr);
+ }
+ dMax = commonUtils.isNotNum(dMax) ? 0 : dMax;
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ let { dCombineQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ dCombineQty = commonUtils.isNotNum(dCombineQty) ? 0 : dCombineQty;
+ const dFactProductQty = commonUtils.convertFixNum(dCombineQty * dMax, 2); /* 实际生产数 =最大值 * 排版数 */
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty };
+ }
+ }
+ }
+ }
+ this.props.onSaveState({ packData: tableData });
+ }
+ }
+ handleCancelFastOrderModal = () => {
+ this.props.onSaveState({ fastOrderModalVisible: false, workOrderAllprogress: 0, Loading: false });
+ };
+ handleCancelProcessChooseModal = () => {
+ this.props.onSaveState({ processChooseVisible: false });
+ };
+ handleCancelMaterialsChooseModal = () => {
+ this.props.onSaveState({ materialsChooseVisible: false });
+ };
+ handleCancelProductMaterialsChooseModal = () => {
+ this.props.onSaveState({ productMaterialsChooseVisible: false });
+ };
+ handleCancelProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+ handleCancelProductCombinationChooseModal = () => {
+ this.props.onSaveState({ productCombinationVisible: false });
+ };
+
+ handleSelectProductCombination= () => {
+ const {
+ controlData, sCombinationsControlId, packData, enabled, app,
+ } = this.props;
+ let { packSelectedRowKeys: selectedRowKeys } = this.props;
+ let sCombinedMemo = '';
+ const tableCombineSelectedData = [];
+ selectedRowKeys = commonUtils.isNotEmptyArr(selectedRowKeys) ? selectedRowKeys : [];
+ const maxArr = [];
+ const maxMap = new Map();
+ for (const sId of selectedRowKeys) {
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ const tableDataRow = packData[iIndex];
+ const {
+ sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName,
+ } = tableDataRow;
+ if (dCombineQty > 0) { /* 排版数大于0时,把数据带回到控制表 */
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ maxMap.set(dFactProductQty, jsonObj);
+ maxArr.push(dFactProductQty);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseInputQty'));/* 请填写合拼排版数 */
+ return;
+ }
+ }
+ }
+
+ /* 没勾选的合版数据 合拼排版数置为0 */
+ const packNoChooseData = packData.filter(item => item.sControlId === sCombinationsControlId && !selectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(packNoChooseData) && packNoChooseData.length > 0) {
+ packNoChooseData.forEach((item) => {
+ const iIndex = packData.findIndex(child => child.sId === item.sId);
+ if (iIndex > -1) {
+ packData[iIndex].dCombineQty = 0;
+ }
+ });
+ }
+
+ let iMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ iMax = Math.max(...maxArr);
+ }
+ sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ const iControlIndex = controlData.findIndex(item => item.sId === sCombinationsControlId);
+ if (iControlIndex > -1 && enabled) {
+ const addState = {};
+ const maxObj = maxMap.get(iMax);
+ let { handleType } = controlData[iControlIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinedMemo = sCombinedMemo;
+ addState.dPartsQty = iMax;
+ addState.dSinglePQty = commonUtils.isNotEmptyObject(maxObj) ? maxObj.dCombineQty : 0;
+ controlData[iControlIndex] = { ...controlData[iControlIndex], ...addState };
+ }
+ this.props.onSaveState({
+ productCombinationVisible: false,
+ packData,
+ controlData,
+ });
+ };
+ handleCancelCombinePartsChooseModal = () => {
+ this.props.onSaveState({ combinePartsChooseVisible: false });
+ };
+ /* 选择合版部件名称 */
+ handleSelectCombineParts = (name, selectConfig, selectData) => {
+ const {
+ processData, processSelectedRowId, materialsData, materialsSelectedRowId, openTable,
+ } = this.props;
+ let sCombinedStr = '';
+ let sCombinedId = '';
+ if (selectData !== undefined) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ const { sId } = item;
+ let { sProductName } = item;
+ let { sCombinePartsName } = item;
+ sProductName = commonUtils.isNotEmptyObject(sProductName) ? sProductName : '';
+ sCombinePartsName = commonUtils.isNotEmptyObject(sCombinePartsName) ? sCombinePartsName : '';
+ // sCombinedStr += `${sCustomerName}-${sProductName}-${sCombinePartsName},`;
+ if (commonUtils.isNotEmptyObject(sCombinePartsName)) {
+ sCombinedStr += `${sProductName}-${sCombinePartsName},`;
+ sCombinedId += `${sId},`;
+ } else {
+ sCombinedStr += `${sProductName},`;
+ sCombinedId += `${sId},`;
+ }
+ });
+ // sCombinedStr = `${selectData.length.toString()} `;
+ if (commonUtils.isNotEmptyObject(sCombinedStr)) {
+ sCombinedStr = commonUtils.isNotEmptyObject(sCombinedStr) ? sCombinedStr.substr(0, sCombinedStr.length - 1) : '';
+ }
+ if (commonUtils.isNotEmptyObject(sCombinedId)) {
+ sCombinedId = commonUtils.isNotEmptyObject(sCombinedId) ? sCombinedId.substr(0, sCombinedId.length - 1) : '';
+ }
+ }
+ if (commonUtils.isNotEmptyObject(openTable) && openTable === 'materials') {
+ const iIndex = materialsData.findIndex(item => item.sId === materialsSelectedRowId);
+ if (iIndex > -1) {
+ if(!materialsData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = materialsData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ materialsData[iIndex] = { ...materialsData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ materialsData, combinePartsChooseVisible: false });
+ } else {
+ const iIndex = processData.findIndex(item => item.sId === processSelectedRowId);
+ if (iIndex > -1) {
+ if(!processData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ processData[iIndex] = { ...processData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ processData, combinePartsChooseVisible: false });
+ }
+ }
+ };
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+ /** 复制 */
+ handleTableCopy = (name, isWait) => {
+ /* 部件树节点复制功能 */
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination, packData, slaveData,
+ } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = commonUtils.createSid();
+ tableDataRow.sId = newId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sSrcSlaveId = '';
+ tableDataRow.sSrcId = '';
+ tableDataRow.dSrcQty = null;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
+ tableDataRow.sMaterialsMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
+ tableDataRow.sProcessMemo = '';
+ }
+ tableData.push(tableDataRow);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys, treeSelectedKeys: tableSelectedNewRowKeys, packData,
+ });
+ }
+ }
+ this.handleGetControlTreeData(tableData);
+ } else if (name === 'slave') {
+ const { packData, controlData } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn('请选择数据!'); // 请选择从表数据
+ return;
+ }
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = this.props.onDataRowCopy(name, true);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.forEach((item) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(tableDataRow, tableData.length, item.sId, 'add');
+ // packDataRow.dCombineQty = 1;
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ packData.push(packDataRow);
+ }
+ });
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, packData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 },
+ });
+ }
+ }
+ } else {
+ this.props.onDataRowCopy(name, isWait);
+ }
+ }
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData, app, packData, slaveData,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`;
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = tableDataRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSrcProcessTbId = item.sId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ materialsRow.bPurchaseApplyComplete = 0;
+ materialsRow.dPurchaseApplyAuxiliaryQty = 0;
+ materialsRow.dPurchaseApplyQty = 0;
+ materialsRow.bPurchaseComplete = 0;
+ materialsRow.dPurchaseAuxiliaryQty = 0;
+ materialsRow.dPurchaseQty = 0;
+ materialsRow.dProductionAuxiliaryQty = 0;
+ materialsRow.dProductionQty = 0;
+ materialsRow.bProductionComplete = 0;
+
+ materialsRow.dProductionApplyAuxiliaryQty = 0;
+ materialsRow.dProductionApplyQty = 0;
+ materialsRow.bProductionApplyComplete = 0;
+
+ materialsRow.bComComplete = 0;
+ materialsRow.dComAuxiliaryQty = 0;
+ materialsRow.dComQty = 0;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ ...treeState,
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { total: tableData.length, current: 9999 },
+ [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys,
+ treeSelectedKeys: tableSelectedNewRowKeys,
+ materialsSelectedRowKeys: [],
+ materialsData,
+ processData,
+ packData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+
+ /* 计算材料开数 */
+ // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ // const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ // const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+ // const sResult = this.props.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ // if (commonUtils.isNotEmptyObject(sResult)) {
+ // const dMaterialsKQty = sResult.totalNum;
+ // tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ // }
+
+ return tableDataRow;
+ };
+
+ handleCancel1 = () => {
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+
+ handleOk = async (flag, tmpCheck, isWait) => {
+ const {
+ sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig,
+ } = this.props;
+ const { currentPane } = app;
+ const bCkxTmpCheck = app.systemData.filter(item => item.sName === 'CkxTmpCheck')[0].sValue;
+ if (bCkxTmpCheck === '1') {
+ const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait);
+ if (returnData.code === 1) {
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ } else {
+ const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray;
+ if (commonUtils.isEmptyObject(dataPersonArray)) {
+ checkPersonData.forEach((item) => {
+ dataPersonArray.push(item.sUserId);
+ });
+ }
+ const dataPersonString = dataPersonArray.join(',');
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const value = {
+ sProName: 'Sp_System_AutoSendCheckMsg',
+ paramsMap: {
+ sFormGuid: sModelsId,
+ sBillKey: currentPane.sProcName,
+ sTbName: masterConfig.sTbName,
+ sGuid: masterData.sId,
+ sBillNo: masterData.sBillNo,
+ sCheckCondition: checkConditions,
+ sMemo: '',
+ sCheckModelGuid: sCheckModelId,
+ sCheckPerson: dataPersonString,
+ },
+ };
+
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ const noCheckMsg = commonFunc.showMessage(app.commonConst, 'NoCheckMsg'); /* 您有消息待审核 */
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.handleSendSocketMessage('examine', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`;
+ const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId };
+ const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data;
+ if (returnCanCheckBill.code === 1) {
+ if (returnCanCheckBill.dataset.rows[0].iCount === 1) {
+ this.props.onDataAudit(1, 1);
+ this.props.onSaveState({
+ visible: false,
+ });
+ return;
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnCanCheckBill);
+ }
+ this.props.handleSendSocketMessage('reflush', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ }
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ let { controlSelectedRowKeys } = this.props;
+ controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ this.props.onTreeSelect(name, checkedKeys, e);
+ this.props.onSaveState({
+ controlSelectedRowKeys,
+ });
+ };
+
+ handleTabChange = (value) => {
+ this.setState({
+ currentTab: +value
+ });
+ }
+
+ handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ let sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) {
+ sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`;
+ }
+ }
+ processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr };
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+
+ handleDrag = (data) => {
+ let { controlSelectedRowKeys } = this.props;
+ if(this.props.enabled && controlSelectedRowKeys.length) {
+ if(isQianCai) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType !== '3' && item.sType !== '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ } else {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+ let inDataIndex = 0;
+ let inData = data.filter(item => item.sType === '1' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ inDataIndex = inDataIndex + 1;
+ return {...item, iOrder: inDataIndex}
+ });
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType === '2' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(inData, afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ }
+ }
+ }
+
+ handleProductDrag = (data) => {
+ if(this.props.enabled) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let dataIndex = 0;
+ const allData = data.filter(item => item.sType === '3' && item.sCombinePartsName === this.props.slaveSelectedRowKeys[0]).map((item) => {
+ dataIndex = dataIndex + 1;
+ return {...item, iOrder: dataIndex, handleType: item.handleType ? item.handleType : 'update'};
+ });
+ processData = processData.filter(item => item.sCombinePartsName !== this.props.slaveSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData });
+ }
+ }
+
+ render() {
+ const { pageLoading, masterData, fastOrderModalVisible } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+
+
+ );
+ }
+}
+
+const WorkOrderComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ masterConfig: masterConfigOld,
+ slaveData,
+ slavePagination,
+ sModelsId,
+ sTabId,
+ app,
+ // AutoTableHeight,
+ colorConfigGrdVisible,
+ visible,
+ checkConditions,
+ checkPersonData,
+ Loading,
+ sModelsType,
+ productCombinationVisible,
+ combinePartsChooseVisible,
+ sisColorChooseVisible,
+ // currentTab,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ } = props;
+
+ // 计算控制表记录数量,计算sticky高度
+ const controlLen = props.controlData ? props.controlData.length : 0;
+ let stickyHeight = 0;
+ let stickyTabHeight = 0;
+ if(props.currentTab === 1) {
+ if (controlLen && controlLen < 5) {
+ stickyHeight = (controlLen * 29) + 40 + 30 - 4; // 153
+ } else {
+ stickyHeight = 162 + 30;
+ }
+ } else {
+ const slaveLen = props.slaveData ? props.slaveData.length : 0;
+ if (slaveLen && slaveLen < 5) {
+ stickyHeight = (slaveLen * 29) + 40 + 30 - 4;
+ stickyTabHeight = (slaveLen * 29) + 40;
+ } else {
+ stickyHeight = 162 + 30;
+ stickyTabHeight = 162;
+ }
+ }
+
+ /* 回带表单 */
+ onReturnForm(form);
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ addProps.masterconfig = masterConfig;
+ }
+ const checkCondition = commonFunc.showMessage(app.commonConst, 'checkCondition');/* 审核条件 */
+ const checkSmemo = commonFunc.showMessage(app.commonConst, 'checkSmemo');/* 备注 */
+ const columns = [{
+ title: checkCondition,
+ dataIndex: 'condition',
+ key: 'condition',
+ }, {
+ title: checkSmemo,
+ dataIndex: 'sMemo',
+ key: 'sMemo',
+ }];
+ const btnSure = commonFunc.showMessage(app.commonConst, 'btnSure');/* 确认 */
+ const check = commonFunc.showMessage(app.commonConst, 'check');/* 审核 */
+ const BtnClose = commonFunc.showMessage(app.commonConst, 'BtnClose');/* 关闭 */
+ const checkPerson = commonFunc.showMessage(app.commonConst, 'checkPerson');/* 审核人 */
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ const pagination = {
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const width = '16px';
+ const height = '16px';
+ const setAdd = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setAddChild = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+
+ const setCopy = {
+ title: '复制',
+ img: ,
+ disableimg: ,
+ };
+ const setCopyAll = {
+ title: '复制部件',
+ img: ,
+ disableimg: ,
+ };
+ const setDelete = {
+ title: '删除',
+ img: ,
+ disableimg: ,
+ };
+ const setProcess = {
+ title: '工序',
+ img: ,
+ disableimg: ,
+ };
+ const setMaterial = {
+ title: '材料',
+ img: ,
+ disableimg: ,
+ };
+ const processUp = {
+ title: '上移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processDown = {
+ title: '下移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processTop = {
+ title: '置顶',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processBottom = {
+ title: '置底',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ let chooseProcessConfigRow;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+
+
+ /* 获取toolbar 选择成品工序 */
+ let bShowProductProcess = false;
+ let chooseProductProcessConfigRow = {};
+ let onChooseProductProcessIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (onChooseProductProcessIndex > -1) {
+ chooseProductProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductProcessIndex];/* 配置了成品工序按钮 */
+ bShowProductProcess = true;/* 配置了成品工序按钮 */
+ }
+ }
+
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfigRow;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+
+ /* 获取toolbar 选择成品材料 */
+ let bShowProductMaterials = false;
+ let chooseProductMaterialsConfigRow = {};
+ let onChooseProductMaterialsIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductMaterialsIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (onChooseProductMaterialsIndex > -1) {
+ chooseProductMaterialsConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductMaterialsIndex];/* 配置了成品工序按钮 */
+ bShowProductMaterials = true;/* 配置了成品材料按钮 */
+ }
+ }
+
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: {
+ rowSelection: null, pagination, onChange: props.onTitleChange, setAdd, setCopy, setDelete, AutoTableHeight: 132,
+ },
+ onKeyDown: props.onKeyDown,
+ };
+ // const mProps = { ...commonBusiness.createMemoProps('slave', props) };
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ onKeyDown: props.onKeyDown,
+ bMutiSelect1: true, // 设置点击整行勾选框不勾选,只有点击勾选框才勾选
+ tableProps: {
+ // rowSelection: enabled ? null : '',
+ // setAdd,
+ sModelsType,
+ // setCopyAll,
+ // setDelete,
+ setProcess,
+ setMaterial,
+ // bShowProductProcess, /* 是否显示成品工序 */
+ // bShowProductMaterials, /* 是否显示成品工序 */
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ // chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: 132,
+ // onRow: (record) => {
+ // return {
+ // onClick: () => { props.onRowClick('control', record); },
+ // onDoubleClick: () => { props.onDoubleClick('control', record); },
+ // onMouseEnter: () => { props.onRowMouseEnter('control', record); },
+ // };
+ // },
+ },
+ };
+ const name = 'controlTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+ const genCustomDropData = () => {
+ const data = commonBusiness.getTableTypes('process', props).data;
+ const selectData = commonBusiness.getTableTypes('materials', props).data;
+ const materialKey = props.materialsSelectedRowKeys ? props.materialsSelectedRowKeys[0] : 0;
+ let selectRow = {};
+ if (selectData && materialKey) {
+ selectRow = selectData.filter(val => val.sId === materialKey)[0];
+ }
+
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;;
+ const ruleMap = {
+ 0: '0-1-2',
+ 1: '0-1-2',
+ 2: '3',
+ };
+ const arr = [];
+ if (data && selectRow) {
+ const rule = ruleMap[selectRow.sType];
+ const sParentId = selectRow.sSlaveProductId ? selectRow.sSlaveProductId : selectRow.sParentId;
+ data.forEach((val) => {
+ const obj = {};
+ obj.value = val.sProcessName;
+ obj.sId = val.sId;
+ const valSparentId = val.sCombinePartsName ? val.sCombinePartsName : val.sParentId;
+ if (rule && rule.split('-').indexOf(val.sType) !== -1 && valSparentId === sParentId) {
+ arr.push(obj);
+ }
+ });
+ }
+ return arr;
+ };
+
+ /* 通过bFinal判断是否成品 */
+ const dataFilter = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys } = props;
+ const oriData = data.data || [];
+ if (data.data) {
+ let res = [];
+ switch (type) {
+ case 'materials':
+ if (finishedMaterialsColumn) {
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '2';
+ });
+ }
+ } else { /* 部件材料 */
+ res = oriData.filter((val) => {
+ return val.sType !== '2';
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case 'process':
+ if (finishedProcessColumn) {
+ if (bFinal) { /* 成品工序 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '3';
+ });
+ }
+ } else { /* 部件工序 */
+ if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType !== '3' && (val.sControlId === controlSelectedRowKeys[0] || !val.sControlId);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType !== '3';
+ });
+ }
+ if(isQianCai) {
+ const pre = res.filter(item => item.sType == '0').sort((a, b) => a.iOrder - b.iOrder);
+ const after = res.filter(item => (item.sType == '1' || item.sType == '2')).sort((a, b) => a.iOrder - b.iOrder);
+ res = pre.concat(after);
+ }
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return oriData || [];
+ }
+ };
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ customDropData: genCustomDropData(),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ };
+ const finishedMaterialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ configName: 'finishedMaterials',
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials', true),
+ headerColumn: finishedMaterialsColumn,
+ config: finishedMaterialsConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ customDropData: genCustomDropData(),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ bShowProductMaterials,
+ chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ // setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: '100%',
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ };
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ onDrag: props.onDrag,
+ isDragAndDrop: true,
+ };
+
+ const finishedProcessPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ configName: 'finishedProcess',
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process', true),
+ headerColumn: finishedProcessColumn,
+ config: finishedProcessConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ bShowProductProcess,
+ chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: '100%',
+ sticky: {
+ offsetHeader: stickyHeight,
+ },
+ },
+ onDrag: props.onProductDrag,
+ };
+
+ let colorTableProps = {};
+ if (colorConfigGrdVisible) {
+ colorTableProps = {
+ ...commonBusiness.getTableTypes('color', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // cProps = { ...commonBusiness.createMemoProps('color', props) };
+ }
+ const packTableProps = {
+ ...commonBusiness.getTableTypes('pack', props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy, setDelete, CalLastWidth: '1150', AutoTableHeight: '300px',
+ },
+ bRowClick: true,
+ };
+
+ let combinePartsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.packConfig)) {
+ combinePartsConfig = JSON.parse(JSON.stringify(props.packConfig));
+ const gdsconfigformslaveFilter = combinePartsConfig.gdsconfigformslave.filter(item => (item.sName === 'sId'
+ || item.sName === 'sCustomerName'
+ || item.sName === 'sProductName'
+ || item.sName === 'sCombinePartsName'));
+ combinePartsConfig.gdsconfigformslave = gdsconfigformslaveFilter;
+ combinePartsConfig.bMutiSelect = false;
+ }
+ let combinePartsColumn = [];
+ if (commonUtils.isNotEmptyObject(props.packColumn)) {
+ combinePartsColumn = JSON.parse(JSON.stringify(props.packColumn));
+ const packColumnFilter = props.packColumn.filter(item => (item.dataIndex === 'sId'
+ || item.dataIndex === 'sCustomerName'
+ || item.dataIndex === 'sProductName'
+ || item.dataIndex === 'sCombinePartsName'));
+ combinePartsColumn = packColumnFilter;
+ }
+ const combinePartsTableProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'combineParts',
+ config: combinePartsConfig,
+ select: props.onSelectCombinePartsChoose,
+ selectCancel: props.onCancelModal.bind(this, 'combinePartsChooseVisible'),
+ },
+ },
+ formRoute: '/indexPage/commonList',
+ slaveConfig: combinePartsConfig,
+ slaveColumn: combinePartsColumn,
+ slaveData: props.combinePartsData,
+ slaveSelectedRowKeys: props.combinePartsSelectedRowKeys,
+ selectedRowKeys: props.combinePartsSelectedRowKeys,
+ pageLoading: false,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ /* 工序表选择颜色 */
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors');
+ if (iIndex > -1) {
+ chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'sisColor',
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: '选择颜色',
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: 'search/sisColor',
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ bEdit: props.enabled,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ // sisColorSelectedData: props.slaveFilterData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {},
+ };
+ }
+
+ let searchProcessType = {};
+ let chooseProcessConfig = {};
+ let setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ if (commonUtils.isNotEmptyObject(props.processChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (iIndex > -1) {
+ chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setProcessTitle = props.processChooseData.sMenuName;
+ searchProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: props.processChooseData.sMenuName,
+ route: props.processChooseData.sName,
+ formId: props.processChooseData.sId,
+ key: sModelsId + props.processChooseData.sId,
+ sModelsType: props.processChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品工序 */
+ let chooseProdutProcessType = {};
+ let chooseProdutProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productProcessChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (iIndex > -1) {
+ chooseProdutProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */
+ });
+ }
+ /* 选择成品工序 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+
+ chooseProdutProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'chooseProductProcess',
+ config: chooseProdutProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProdutProcessConfig),
+ title: props.productProcessChooseData.sMenuName,
+ route: props.productProcessChooseData.sName,
+ formId: props.productProcessChooseData.sId,
+ key: sModelsId + props.productProcessChooseData.sId,
+ sModelsType: 'search/finalProcess',
+ select: props.onSelectFinalProcess, /* 选择成品工序 */
+ selectCancel: props.onCancelModal.bind(this, 'productProcessChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品材料 */
+ let chooseProductMaterialsType = {};
+ let chooseProductMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productMaterialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (iIndex > -1) {
+ chooseProductMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表s */
+ });
+ }
+ /* 选择成品材料 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+ chooseProductMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productMaterials',
+ config: chooseProductMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseProductMaterialsConfig),
+ title: props.productMaterialsChooseData.sMenuName,
+ route: props.productMaterialsChooseData.sName,
+ formId: props.productMaterialsChooseData.sId,
+ key: sModelsId + props.productMaterialsChooseData.sId,
+ sModelsType: 'search/finalMaterials',
+ select: props.onSelectProductMaterial,
+ selectCancel: props.onCancelModal.bind(this, 'productMaterialsChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ let setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setMaterialTitle = props.materialsChooseData.sMenuName;
+
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ const tabChange = (e) => {
+ props.onTabChange(e);
+ };
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ const materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */
+ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */
+ const productMaterialsInfo = commonFunc.showMessage(app.commonConst, 'productMaterialsInfo');/* 成品材料 */
+ const productProcessInfo = commonFunc.showMessage(app.commonConst, 'productProcessInfo');/* 成品工序 */
+ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */
+
+ const setProductProcessTitle = commonFunc.showMessage(app.commonConst, 'setProductProcess');/* 选择成品工序标题 */
+ const setProductMaterialsTitle = commonFunc.showMessage(app.commonConst, 'setProductMaterials');/* 选择成品工序标题 */
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */
+ const setProductCombinationTitle = commonFunc.showMessage(app.commonConst, 'setProductCombination');/* 选择合拼产品标题 */
+
+ // tree组件新增滚动至底部方法
+ // let treeNode = null;
+ // const treeRef = (n) => {
+ // treeNode = n;
+ // };
+ // const treeScrollToBottom = (node) => {
+ // console.log(node, 112233);
+ // if (node) {
+ // node.scrollTop = node.scrollHeight;
+ // }
+ // };
+ // tree组件新增滚动至底部方法ends
+
+ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 s */
+ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */
+ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */
+ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */
+ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */
+ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底s */
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAdd = {props.enabled ? setAdd.img : setAdd.disableimg} ;
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAddChild = {props.enabled ? setAddChild.img : setAddChild.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateCopy = {props.enabled ? setCopy.img : setCopy.disableimg};
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateUpdate = {props.enabled ? setCopyAll.img : setCopyAll.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateDel = {props.enabled ? setDelete.img : setDelete.disableimg};
+
+ let bControlShow = true; /* 控制表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexControl = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbControl');
+ if (iIndexControl > -1) {
+ bControlShow = props.masterConfig.gdsconfigformslave[iIndexControl].bVisible;
+ }
+ }
+ let bMaterialShow = true; /* 材料表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexMaterial = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbMaterial');
+ if (iIndexMaterial > -1) {
+ bMaterialShow = props.masterConfig.gdsconfigformslave[iIndexMaterial].bVisible;
+ }
+ }
+ let bProcessShow = true; /* 工序表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexProcess = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbProcess');
+ if (iIndexProcess > -1) {
+ bProcessShow = props.masterConfig.gdsconfigformslave[iIndexProcess].bVisible;
+ }
+ }
+
+
+ const bFinalMaterialsTabShow = commonUtils.isEmptyObject(finishedMaterialsConfig) ? false :true; /* 没有成品材料配置 则材料Tab不展示 */
+ const bFinalProcessTabShow = commonUtils.isEmptyObject(finishedProcessConfig) ? false :true; /* 没有成品工序配置 则工序Tab不展示 */
+
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSales(WorkOrderPack));
diff --git a/src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js b/src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js
new file mode 100644
index 0000000..9d622db
--- /dev/null
+++ b/src/components/Manufacture/WorkOrderPack/WorkOrderPackTableTree.js
@@ -0,0 +1,9501 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring,no-loop-func */
+import React, { Component } from 'react';
+import moment from 'moment';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import {
+ Modal,
+ Layout,
+ Spin,
+ Select,
+ Button,
+ Table,
+ Checkbox,
+ Row,
+ Col,
+ Avatar,
+ Slider,
+ Tabs,
+ Collapse,
+ Radio,
+ Divider
+} from 'antd';
+import {
+ RightOutlined,
+} from '@ant-design/icons';
+
+import AddIcon from '@/assets/add.svg';
+import AddChildIcon from '@/assets/addChild.svg';
+import DisableAddIcon from '@/assets/disableadd.svg';
+import DisableAddChildIcon from '@/assets/disableaddChild.svg';
+import DelIcon from '@/assets/delete.svg';
+import DisableDelIcon from '@/assets/disabledelete.svg';
+import CopyIcon from '@/assets/copy.svg';
+import CopyAllIcon from '@/assets/copyall.svg';
+import DisableCopyIcon from '@/assets/disablecopy.svg';
+import DisableCopyAllIcon from '@/assets/disablecopyall.svg';
+import MateriallIcon from '@/assets/material.svg';
+import DisableMateriallIcon from '@/assets/disablematerial.svg';
+import ProcessIcon from '@/assets/process.svg';
+import DisableProcessIcon from '@/assets/disableprocess.svg';
+import ProcessUp from '@/assets/processUp.svg';
+import ProcessDown from '@/assets/processDown.svg';
+import DisableProcessUp from '@/assets/disableprocessUp.svg';
+import DisableProcessDown from '@/assets/disableprocessDown.svg';
+import ProcessTop from '@/assets/processTop.svg';
+import DisableProcessTop from '@/assets/disableprocessTop.svg';
+import ProcessBottom from '@/assets/processBottom.svg';
+import DisableProcessBottom from '@/assets/disableprocessBottom.svg';
+import CommonSales from '@/components/Common/CommonBillEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import CommonView from '@/components/Common/CommonView';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import commonConfig from '@/utils/config';
+import * as commonServices from '@/services/services';/* 服务类 */
+import EjectRight from '@/assets/eject.svg';/* 弹出图标 */
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+import CommonListSelectFlex from '@/components/Common/CommonListSelectFlex';
+/* 可编辑的选择界面 */
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
+import CommonListSelectMulti from '@/components/Common/CommonListSelectMulti';
+import CommonExamInfo from '@/components/Common/CommonExamInfo';
+
+// import CommonListSelectParam from '@/components/Common/CommonListSelectParam';
+import CommonViewDragable from '@/components/Common/CommonViewDragable';
+import CommonPartsInfo from '@/components/Common/CommonPartsInfo';
+/* 树形选择界面 */
+import CommonListSelectProductProcess from '@/components/Common/CommonListSelectAssignment';
+import CommonListSelectProductMaterial from '@/components/Common/CommonListSelectProductMaterial';
+import WorkFlow from '@/components/Common/Flows/CommonFlow'; /* 工作流 */
+/* 选择成品工序 */
+// import SlaveMemo from '../../Common/SlaveMemo';
+import SlavesInfo from '@/components/Common/SlavesInfo';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import AntdDraggableDiv from '@/components/Common/AntdDraggableDiv';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/ejectleft.svg';
+import Close from '@/assets/closeleft.svg';
+import ShowType from '@/components/Common/CommonComponent';
+import ContextMenuModal from '@/components/Common/ContextMenuModal';
+import SplitPaste from '@/components/Manufacture/WorkOrder/SplitPaste';/* 选择界面 */
+import { message } from '@/utils/common/message';
+import selfstyles from '../index.less';
+import CloseRight from "../../../assets/close.svg";
+import SvgIcon from "../../SvgIcon";
+const { Header, Content, Sider } = Layout;
+const { Option } = Select;
+const { confirm } = Modal;
+const { TabPane } = Tabs;
+const { Panel } = Collapse;
+
+const isQianCai = false;
+const isYaChang = false;
+
+
+class WorkOrderPack extends Component {
+ constructor(props) {
+ super(props);
+ window.fetchCount = 0;
+ this.baseTableHeight = document?.documentElement?.getBoundingClientRect()?.height >= 700 ? '40vh' : '250px';
+ this.state = {
+ currentTab: 12,
+ currentTab2: 1,
+ activeKey: ['1', '2', '3', '3-1'],
+ processTableId: `processTableId_${commonUtils.createSid()}`,
+ pageLoadingPage: false,
+ };
+ this.isLayout = false;
+ }
+
+ /**
+ * 无法确认哪些接口billevent\base当前会调用, 修改地方太多
+ * 简单解决loading问题
+ * 忽略弹窗请求等类似问题,**当前弹窗控制以Visible结尾**
+ */
+ componentDidMount() {
+ window.addEventListener('fetchCount', (e) => {
+ const modalOption = Object.keys(this.props).map(i => i?.toString()?.endsWith('Visible') && i).filter(i => i && i !== 'colorConfigGrdVisible');
+ if (modalOption.find(i => this.props[i]) || this.props.visible) return;
+ if (e.detail.value > 0) {
+ this.setState({
+ pageLoadingPage: true
+ })
+ } else {
+ this.setState({
+ pageLoadingPage: false
+ })
+ }
+ })
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ let {
+ controlColumn, materialsColumn, processColumn, colorColumn, packColumn,
+ } = nextProps;
+ const { formData, currentId, sModelsId } = nextProps;
+ if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ if(masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0]) {
+ this.isLayout = masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0].bVisible;
+ }
+ /* bGrd代表是否是表格 */
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ let checkConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')) ?
+ formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0] : {};
+ let checkColumn = {};
+ if(commonUtils.isNotEmptyObject(checkConfig)) {
+ checkColumn = commonFunc.getHeaderConfig(checkConfig);
+ }
+
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderControl'.toUpperCase())[0];
+ controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn);
+
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase())[0];
+ materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn);
+
+ let finishedMaterialsConfig = commonUtils.isNotEmptyArr( formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase() && item.showName === '成品材料')) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase() && item.showName === '成品材料')[0] : false;
+ const finishedMaterialsColumn = finishedMaterialsConfig ? commonFunc.getHeaderConfig(finishedMaterialsConfig) : false;
+ const addState2 ={};
+ const addStateConfig ={};
+ /* 取材料组配置放在数组 */
+ let materialsInfoList = [];
+ let materialsChildInfoList = [];
+ let materialsFormData = formData.filter(item => item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible );
+ if(sModelsId === '12710101116950085152680') { /* 研发工单 不要成品材料 */
+ materialsFormData = formData.filter(item => item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible
+ && item.showName !== '成品材料');
+ }
+ // const materialsFormData = formData.filter(item => item.sTbName !== 'mftworkordermaterials' && item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible );
+ /* 找到除了材料,成品材料外的其他所有父级材料 */
+
+ if(commonUtils.isNotEmptyArr(materialsFormData)) {
+ materialsFormData.forEach((item, index) => {
+ addState2[`materials${index}Config`] = item;
+ addStateConfig[`materials${index}Config`] = item;
+ addState2[`materials${index}Column`] = commonFunc.getHeaderConfig(item);
+ /* 找到该配置的子从表 */
+ const childFormData = formData.filter(child => child.sGrd === item.sChildTableName );
+ if(commonUtils.isNotEmptyArr(childFormData)) {
+ childFormData.forEach((child, num) => {
+ addState2[`materials${index}ChildConfig`] = child;
+ addStateConfig[`materials${index}ChildConfig`] = child;
+ addState2[`materials${index}ChildColumn`] = commonFunc.getHeaderConfig(child);
+ // materialsInfoList.push(child.showName);
+ const sChildName = item.showName + num +1;
+ materialsChildInfoList.push(`materials${index}Child`);
+ });
+ }
+ materialsInfoList.push(`materials${index}`);
+ });
+ }
+ const addStateMap = addStateConfig;
+
+ const packingConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'mftworkorderpacking'.toUpperCase())) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'mftworkorderpacking'.toUpperCase())[0] : {};
+ const packingColumn = commonUtils.isNotEmptyObject(packingConfig) ? commonFunc.getHeaderConfig(packingConfig) : false;
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderProcess'.toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId');
+
+ const finishedProcessConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderProcess'.toUpperCase() && item.showName === '成品工序')[0];
+ const finishedProcessColumn = finishedProcessConfig ? commonFunc.getHeaderConfig(finishedProcessConfig) : false;
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ processColumn = commonFunc.getHeaderConfig(processConfig, processColumn);
+ /* 合版信息表s */
+ let packConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'mftworkordercontrolcombine'.toUpperCase())) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'mftworkordercontrolcombine'.toUpperCase())[0] : {};
+ const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'sCustomerName'
+ || item.sName === 'sProductId'
+ || item.sName === 'sCustomerId'
+ || item.sName === 'sProductNo'
+ || item.sName === 'sProductName'
+ || item.sName === 'dProductQty'
+ || item.sName === 'sProductStyle'
+ || item.sName === 'sProductUnit')); /* 拼接从表配置,客户名称 ,产品名称,生产数 */
+ const salveChooseConfigFilter = [];
+ if (commonUtils.isNotEmptyArr(slaveChooseConfig) && commonUtils.isNotEmptyObject(packConfig)) {
+ slaveChooseConfig.forEach((item) => {
+ const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName);
+ if (iIndex === -1) {
+ const itemNew = Object.assign({}, item);
+ itemNew.bNotEmpty = false;
+ salveChooseConfigFilter.push(itemNew);
+ }
+ });
+ }
+ /* 拼接排序 */
+ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) {
+ if(commonUtils.isNotEmptyObject(packConfig)) {
+ let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === 'iOrder');
+ packFilter = packFilter.concat(salveChooseConfigFilter);
+ const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== 'iOrder');
+ packFilter = packFilter.concat(packFilterOther);
+ packConfig.gdsconfigformslave = packFilter;
+ }
+ }
+ packColumn = commonUtils.isNotEmptyObject(packConfig) ? commonFunc.getHeaderConfig(packConfig, packColumn) : [];
+ let colorConfigGrdVisible;
+ const colorConfigTrue = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())[0] : {};
+
+ if (commonUtils.isNotEmptyObject(colorConfigTrue)) {
+ colorConfigGrdVisible = colorConfigTrue.bGrdVisible;
+ if (colorConfigGrdVisible) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ }
+ }
+
+ /* 改版信息表 */
+ let visionConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'sisrevision'.toUpperCase() && item.bGrdVisible )) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'sisrevision'.toUpperCase() && item.bGrdVisible)[0] : {};
+ let visionColumn = [];
+ if (commonUtils.isNotEmptyObject(visionConfig)) {
+ visionColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ addStateConfig['visionConfig'] = visionConfig;
+ addStateMap['visionConfig'] = visionConfig;
+ addState2['visionColumn'] = visionColumn;
+ }
+
+
+ let addState = {};
+ const colorConfig = colorConfigGrdVisible ? colorConfigTrue : '';
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ config.visionConfig = visionConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ this.handleGetOtherData(materialsInfoList, materialsChildInfoList, addStateConfig);
+ }
+ this.setState({ activeKey: [...this.state.activeKey, ...materialsInfoList.map((_, index) => `1-${index}`)]});
+ this.props.onSaveState({
+ masterConfig,
+ slaveConfig,
+ slaveColumn,
+ checkConfig,
+ checkColumn,
+ sId,
+ pageLoading: false,
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ packConfig,
+ packColumn,
+ ...addState,
+ ...addState2,
+ ...addStateConfig,
+ addStateMap,
+ materialsInfoList,
+ materialsChildInfoList,
+ colorConfigGrdVisible,
+ });
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { controlColumn, slaveConfig } = nextProps;
+ return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn);
+ }
+
+ componentDidUpdate() {
+ // 处理选择材料新增返回有时不更新问题
+ const materialsId = this.getModalId('materials');
+ if (materialsId) {
+ const modalMaterials = document.querySelector(`.modalMaterials_${materialsId}`);
+ if (!this.forbidForceUpdate && modalMaterials && modalMaterials.parentNode && modalMaterials.parentNode.parentNode && modalMaterials.parentNode.parentNode.style.display === 'none') {
+ this.forbidForceUpdate = true;
+ this.didUpdateTimer = setTimeout(() => {
+ this.forbidForceUpdate = false;
+ }, 1000);
+ this.forceUpdate();
+ }
+ }
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener('fetchCount', () => { window.fetchCount = 0 });
+ }
+
+ /** 行选择 */
+ // onRowClick = (name, record) => {
+ // if (name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // };
+ //
+ // onRowMouseEnter = (name, record) => {
+ // if (this.props.enabled && name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // }
+ //
+ // onDoubleClick = (name, record) => {
+ // if (this.props.onDoubleClick !== undefined) {
+ // this.props.onDoubleClick(record);
+ // }
+ // };
+ onChange1 = (checkedValues) => {
+ this.props.onSaveState({
+ dataPersonArray: checkedValues,
+ });
+ };
+
+
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnCombine' || menu.sControlName === 'BtnFastOrder' || menu.sControlName === 'BtnChooseProcess' ||
+ menu.sControlName === 'BtnChooseMaterials' || menu.sControlName === 'BtnBsOperation.BtnDraft') {
+ return !this.props.enabled;
+ }
+ };
+
+
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+
+ handleEjectRight = () => { /* 右侧树形弹出展开 */
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+
+ const { masterData, slaveData, controlData, materialsData, processData }=this.props;
+ if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyArr(slaveData)) {
+ const totalTreeState = this.handleGetTotalTreeData(masterData, slaveData, controlData, materialsData, processData, true);
+ if (commonUtils.isNotEmptyObject(totalTreeState)) {
+ const totalTreeData = totalTreeState.totalTreeData;
+ const expandedKeys = totalTreeState.expandedKeys;
+ if (commonUtils.isNotEmptyArr(totalTreeData)) {
+ this.props.onSaveState({
+ totalTreeData,
+ expandedKeys
+ });
+ }
+ }
+ }
+
+ }
+ }
+ }
+ }
+
+ };
+
+ handleGetProcessData = (processConfig, addStateControl, addStateProcess) => {
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ let iIndex = -1;
+ iIndex = addStateProcess.processData.findIndex(item => item.sId === itemProcess.sId);
+ if (iIndex > -1) {
+ addStateProcess.processData[iIndex] = { ...itemProcess, ...commonUtils.convertStrToObj(itemProcess.sWorkOrderParam) };
+ }
+ }
+ }
+ });
+ addStateProcess.processSelectedRowKeys = [];
+ addStateProcess.processSelectedRowKeys = [];
+ if(commonUtils.isNotEmptyArr(addStateProcess.processData) && commonUtils.isNotEmptyArr(addStateControl?.controlSelectedRowKeys)) {
+ const processFilterData = addStateProcess.processData.filter(item => item.sControlId === addStateControl?.controlSelectedRowKeys[0])
+ if (commonUtils.isNotEmptyArr(processFilterData)) {
+ addStateProcess.processSelectedData = [processFilterData[0]];
+ addStateProcess.processSelectedRowKeys = [processFilterData[0].sId];
+ }
+ }
+ }
+ }
+ return { ...addStateProcess || {} };
+ }
+
+ handleGetControlData = (addStateControl) => {
+ const { sModelsType } = this.props; /* 当前页签数据 */
+ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */
+ const treeState = this.handleGetControlTreeData(controlData, true);
+ const noSelected = sModelsType === 'manufacture/workOrderPackTableTree';
+ return ({ ...addStateControl, ...treeState, treeSelectedKeys: noSelected ? [] : controlSelectedRowKeys });
+ }
+
+ handleGetAllData = (controlConfig, processConfig, sId, materialsConfig, colorConfig, packConfig, extraState) => {
+ const { slaveData } = this.props; /* 当前页签数据 */
+
+ const allRequest = [];
+
+ if (commonUtils.isNotEmptyObject(controlConfig)) {
+ allRequest.push(
+ this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }),
+ )
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (commonUtils.isNotEmptyObject(processConfig)) {
+ allRequest.push(
+ this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ })
+ )
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (commonUtils.isNotEmptyObject(materialsConfig)) {
+ allRequest.push(this.props.handleGetDataSet({
+ name: "materials",
+ configData: materialsConfig,
+ condition: { sSqlCondition: { sParentId: sId } },
+ isWait: true
+ }));
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ allRequest.push(this.props.handleGetDataSet({
+ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }));
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ if (colorConfig) {
+ allRequest.push(this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }))
+ } else {
+ allRequest.push(Promise.reject());
+ }
+
+ Promise.allSettled(allRequest).then(
+ ([
+ { status: controlStatus, value: addStateControl },
+ { status: processStatus, value: addStateProcess },
+ { status: materialsStatus, value: addStateMaterials },
+ { status: packStatus, value: addStatePack },
+ { status: colorStatus, value: addStateColor },
+ ]) => {
+
+ let result = {};
+
+ if (controlStatus === 'fulfilled') {
+ const controlValue = this.handleGetControlData(addStateControl);
+ result = { ...result, ...controlValue };
+ }
+
+ if (processStatus === 'fulfilled') {
+ const processValue = this.handleGetProcessData(processConfig, addStateControl, addStateProcess);
+ result = { ...result, ...processValue };
+ }
+
+ if (materialsStatus === 'fulfilled') {
+ addStateMaterials.materials0Data = addStateMaterials.materialsData;
+ result = { ...result, ...addStateMaterials };
+ }
+
+ if (packStatus === 'fulfilled') {
+ const { packData } = addStatePack;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((itemSlave) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(itemSlave);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ }
+ }
+ });
+ }
+ });
+ }
+ addStatePack.packData = packData;
+ result = { ...result, ...addStatePack };
+ }
+
+ if (colorStatus === 'fulfilled') {
+ result = { ...result, ...addStateColor };
+ }
+
+ this.props.onSaveState({ ...result, pageLoading: false, ...extraState, })
+
+ })
+ }
+
+ /* 获取表数据 */
+ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, packConfig, extraState = {}) => {
+ const { currentId, slaveData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+
+ this.handleGetAllData(controlConfig, processConfig, sId, materialsConfig, colorConfig, packConfig, extraState);
+ };
+
+
+ handleGetOtherData = async (tableList, childTableList, configMap) => {
+ const { currentId, slaveData, sModelsType, masterData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ if(commonUtils.isNotEmptyObject(configMap)){
+ for (const configName of Object.keys(configMap)) {
+ const tableName = configName.replace('Config', '').trim();
+ const childConfig = configMap[configName];
+ this.props.handleGetDataSet({
+ name: tableName, configData: childConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+
+ }
+
+ };
+
+ /* 获取套件树形全部结构 */
+ handleGetTotalTreeData= (masterData,slaveData,controlData,materialsData,processData, isWait) => {
+ /* 生成部件树结构 */
+ let totalTreeData = [];
+ const expandedKeys = [];
+ const addState ={};
+ // let { totalTreeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sProductName1)) {
+ const rootData = [masterData]; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRoot = {};
+ const { sId, sProductName1 } = item;
+ treeDataRoot.key = sId;
+ treeDataRoot.showName = sProductName1;
+ treeDataRoot.sAllId = item.sId;
+ expandedKeys.push(sId);
+ /* 添加从表作为二级节点 */
+ const childrenSlave = [];
+ let bRelation = false; /* 从表与控制表没有关联性 */
+ if(commonUtils.isNotEmptyArr(slaveData)){
+ slaveData.forEach((itemSlave,index) => {
+ const { sId, sProductName } = itemSlave;
+ const treeSlaveRow = {};
+ treeSlaveRow.key = sId;
+ treeSlaveRow.showName ='产品-'+ sProductName;
+ treeSlaveRow.sAllId = itemSlave.sId;
+ /* 获取从表关联的控制表 */
+ const childrenControl = [];
+ if(commonUtils.isNotEmptyArr(controlData)){
+ const controlCollection =[];
+ controlData.forEach((itemControl) => {
+ if(itemControl.sCombinedMemo && itemControl.sCombinedMemo !== '') {
+ const sCombinedMemoArr = commonUtils.isJSON(itemControl.sCombinedMemo) ? JSON.parse(itemControl.sCombinedMemo) : [];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo.indexOf(itemSlave.sProductNo) !== -1).length;
+ if(len > 0) {
+ const sAllId =itemControl.sAllId;
+ /* 找到这个sAllId的第一级 把整个部件挂到产品下面 */
+ if (commonUtils.isNotEmptyObject(sAllId)) {
+ const arr = sAllId.split(',');
+ if (arr.length > 0){
+ const firstsId =arr[0]; /* 从sAllId找第一级*/
+ if(!controlCollection.includes(firstsId)){
+ controlCollection.push(firstsId)
+ }
+ }
+ }
+ }
+ }
+ });
+ if(commonUtils.isNotEmptyArr(controlCollection)){ /* 作为子表子级 */
+ bRelation =true;
+ for (const key of controlCollection) {
+ const iIndex =controlData.findIndex(item => item.sId === key);
+ if(iIndex > -1) {
+ const tableRow = controlData[iIndex];
+ const { sId,sAllId } = tableRow;
+ const treeControlRow = {}
+ treeControlRow.key = sId + '-' +commonUtils.createSid();
+ treeControlRow.showName = '部件-' + tableRow.sPartsName;
+ treeControlRow.sAllId = sAllId;
+ /* 控制表根据一级菜单获取子集 */
+ let childrenChild = [];
+ childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(childrenChild)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeControlRow.sChildren = sChildren;
+ treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : [];
+
+ childrenControl.push(treeControlRow);
+
+
+ }
+ };
+ }
+ }
+
+ treeSlaveRow.children = commonUtils.isNotEmptyArr(childrenControl) ? childrenControl : [];
+ childrenSlave.push(treeSlaveRow);
+
+ /* 如果从表与控制表没有关联 */
+ if(!bRelation){
+ controlData.forEach((itemControl) => {
+ const { sId,sAllId,sPartsName } = itemControl;
+ const treeControlRow = {}
+ treeControlRow.key = sId + '-' +commonUtils.createSid();
+ treeControlRow.showName = '部件-' + sPartsName;
+ treeControlRow.sAllId = sAllId;
+ treeControlRow.sId =sId;
+ /* 控制表根据一级菜单获取子集 */
+ let childrenChild = [];
+ childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(childrenChild)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeControlRow.sChildren = sChildren;
+ treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : [];
+ const filterData =childrenSlave.filter(item => item.sId ===treeControlRow.sId);
+ if(commonUtils.isEmptyArr(filterData)){
+ childrenSlave.push(treeControlRow);
+ }
+ });
+ }
+
+ /* 加载成品材料、成品工序作为从表的同级 */
+ if(commonUtils.isNotEmptyArr(materialsData)){
+ const childTree = commonUtils.isNotEmptyArr(materialsData) ? materialsData.filter(item => item.sType === 2) : [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sMaterialsName,sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = '成品材料' +'-'+ sMaterialsName;
+ treeDataRow.sAllId = child.sAllId;
+ childrenSlave.push(treeDataRow);
+ });
+ }
+ }
+ /* 获取工序表 */
+ if(commonUtils.isNotEmptyArr(processData)){
+ const childTree = commonUtils.isNotEmptyArr(processData) ? processData.filter(item => item.sType === 3) : [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sProcessName,sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = '成品工序' +'-'+ sProcessName;
+ treeDataRow.sAllId = child.sAllId;
+ childrenSlave.push(treeDataRow);
+ });
+ }
+ }
+
+
+
+
+ if(!expandedKeys.includes(sId)){
+ expandedKeys.push(sId);
+ }
+ });
+ treeDataRoot.children = commonUtils.isNotEmptyArr(childrenSlave) ? childrenSlave : [];
+ }
+ totalTreeData.push(treeDataRoot);
+ });
+ } else {
+ totalTreeData = [];
+ }
+ addState.totalTreeData=totalTreeData;
+ addState.expandedKeys=expandedKeys;
+ if (isWait) {
+ return { ...addState };
+ } else {
+ this.props.onSaveState({
+ totalTreeData,
+ expandedKeys,
+ });
+ }
+ };
+
+ /** 获取部件树 */
+ handleGetControlTreeData= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+
+ handleGetControlTreeDataBak= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ const expandedKeys = [];
+ let { treeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ const rootData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => commonUtils.isEmpty(item.sControlParentId)) : []; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRow = {};
+ const { sId, sPartsName } = item;
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.sAllId = item.sAllId;
+ const children = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(children)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(children) ? children : [];
+ treeData.push(treeDataRow);
+ });
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ expandedKeys.push(treeData[treeData.length - 1].key);
+ }
+ } else {
+ treeSelectedKeys = [];
+ treeData = [];
+ }
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+ /** 获取子节点数据 */
+ handleGetControlTreeChildData= (sParentId, controlData) => {
+ if (commonUtils.isNotEmptyObject(sParentId) && commonUtils.isNotEmptyArr(controlData)) {
+ const childTree = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sControlParentId === sParentId) : [];
+ const children = [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.parentKey = sParentId;
+ treeDataRow.sAllId = child.sAllId;
+ const data = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(data)) {
+ sChildren = '0';
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(data) ? data : [];
+ children.push(treeDataRow);
+ });
+ }
+ return children;
+ }
+ };
+
+ /** 根据key查找树节点并改变属性 */
+ handleSearchNodes= (key, data, showNameNew) => {
+ if (commonUtils.isNotEmptyObject(showNameNew)) {
+ data.forEach((item) => {
+ if (item.key === key) {
+ item.showName = showNameNew;
+ } else if (commonUtils.isNotEmptyArr(item.children)) {
+ this.handleSearchNodes(key, item.children, showNameNew);
+ }
+ });
+ }
+ };
+
+ handleBackProcessData = async (config, isWait) => {
+ const { token } = this.props.app;
+ const { sModelsId, sBackProcessData } = this.props;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === '') {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: '', sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ this.props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ }
+
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /* 非列表联动下拉 */
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const {
+ sModelsId, app,
+ } = this.props;
+ const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = this.props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') {
+ backProcessData = await this.handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) {
+ let iIndex;
+ allPartsName.forEach((sPartsName) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0];
+
+ const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) { /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ sBackProcessClassifyData = rows;
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) {
+ const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : [];
+ const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : [];
+ const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : [];
+ const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : [];
+ const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : [];
+
+ let ConfigNew;
+ allPartsName.forEach((item) => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...masterDataDefault, ...returnChange.masterData };
+ if (isWait) {
+ return {
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ };
+ } else {
+ this.props.onSaveState({
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ });
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = '';
+ returnChange.masterData.sProductNo = '';
+ returnChange.masterData.sProductName = '';
+ }
+ this.props.onSaveState({ ...returnChange });
+ } else {
+ this.props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ /* 数据生成按钮 */
+ handleDataCreate= async (flag) => {
+ let { checkProcessClassifyData } = this.props;
+ const {
+ masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app, dispatch,
+ } = this.props;
+ const { token } = this.props.app;
+ const paramMap = {};
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ 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);
+ }
+ }
+ }
+ });
+ 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;
+ }
+
+
+ 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,
+ });
+
+ let dataReturn = paramMap;
+ if (!flag) {
+ const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`;
+ dataReturn = (await commonServices.postValueService(token, paramMap, url)).data;
+ }
+ if (dataReturn.code === 1 || flag) {
+ const {
+ productClassify, productProcessInfo, partsInfo: partsOldInfo,
+ } = flag ? dataReturn : dataReturn.dataset.rows[0];
+ let partsNewInfo = [];
+ if (!flag) {
+ partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo;
+ } else {
+ partsNewInfo = partsOldInfo;
+ }
+ const slaveData = [];
+ const controlData = [];
+ const materialsData = [];
+ let processData = [];
+ const tableDataRow = {};
+ for (const item of slaveConfig.gdsconfigformslave) {
+ tableDataRow[item.sName] = masterData[item.sName];
+ }
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.iOrder = 1;
+ tableDataRow.sParentId = masterData.sId;
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ let productIdDropDown;
+ const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (slaveIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow);
+ productIdDropDown = sqlDropDownData.dropDownData;
+ }
+ const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
+ if (iProductIdIndex === -1) {
+ tableDataRow.sProductId = tableDataRow.sProductName;
+ tableDataRow.sProductInfo = JSON.stringify({
+ sProductId: tableDataRow.sProductName,
+ sProductName: tableDataRow.sProductName,
+ sProductStyle: tableDataRow.sProductStyle,
+ sProductUnit: tableDataRow.sProductUnit,
+ sProductNo: tableDataRow.sProductNo,
+ sCustomerProductNo: tableDataRow.sCustomerProductNo,
+ sProductClassifyId: tableDataRow.sProductClassifyId,
+ sProductClassifyName: tableDataRow.sProductClassifyName,
+ });
+ } else {
+ tableDataRow.sProductInfo = '';
+ }
+ slaveData.push(tableDataRow);
+ 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) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+
+ partInfo.processInfo.forEach((process, iOrder) => {
+ let processAfterDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processAfterDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processAfterDataRow[child] = process[child];
+ }
+ processAfterDataRow.handleType = 'add';
+ processAfterDataRow.sProcessId = process.sProcessId;
+ const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId);
+ if (iProcessAfterIndex > -1) {
+ processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段
+ }
+ processAfterDataRow.sType = process.sType;
+ processAfterDataRow.iPartOrder = iIndex;
+ processAfterDataRow.iOrder = iOrder + 1;
+ processAfterDataRow.sPartsName = partsDataRow.sPartsName;
+ processAfterDataRow.sId = commonUtils.createSid();
+ processAfterDataRow.sParentId = masterData.sId;
+ processAfterDataRow.sControlId = partsDataRow.sId;
+ processData.push(processAfterDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ });
+ productProcessInfo.forEach((process, iOrder) => {
+ let processProductDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processProductDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processProductDataRow[child] = process[child];
+ }
+ const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId);
+ if (iProductProcessIndex > -1) {
+ processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段
+ }
+ processProductDataRow.handleType = 'add';
+ processProductDataRow.sType = '3';
+ processProductDataRow.sPartsName = '';
+ processProductDataRow.iPartOrder = 999;
+ processProductDataRow.iOrder = iOrder + 1;
+ processProductDataRow.sId = commonUtils.createSid();
+ processProductDataRow.sParentId = masterData.sId;
+ processData.push(processProductDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ processData = this.sortData(controlData, processData);
+ const addState = {};
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ }
+ 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,
+ });
+ }
+ }, timValue);
+ };
+
+ /* 勾选工序分类 */
+ handleProcessChange=(e, value, sPartsName) => {
+ let { checkProcessClassifyData } = this.props;
+ let index = -1;
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (e.target.checked) {
+ if (index <= -1) {
+ const newvalue = { ...value };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ } else if (index > -1) {
+ checkProcessClassifyData.splice(index, 1);
+ }
+ this.props.onSaveState({ checkProcessClassifyData });
+ };
+
+ handleSelectChangeProcess = (sAssignField, value, option) => {
+ const { masterData, sBackProcessClassifyData } = this.props;
+ let { checkProcessClassifyData } = this.props;
+ if (sAssignField !== undefined) {
+ // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype
+ const sAssignFields = sAssignField.split(',');
+ const recordRow = option.props['data-recordrow'];
+ sAssignFields.forEach((item, iAssignIndex) => {
+ const itemsplits = item.split(':');
+ masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]];
+ if (iAssignIndex === 0) {
+ let index = -1;
+ const sPartsName = itemsplits[0].replace(recordRow.sParentId, '');
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (index <= -1) {
+ const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId);
+ if (iBackProcessIndex > -1) {
+ const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ }
+ }
+ });
+ this.props.onSaveState({ masterData, checkProcessClassifyData });
+ }
+ }
+
+ handleA = (sId) => {
+ const { sBackProcessData } = this.props;
+ const data = sBackProcessData.filter(item => item.sParentId === sId);
+ const optionProcess = [];
+ data.forEach((item) => {
+ optionProcess.push();
+ });
+ return optionProcess;
+ }
+
+ handleSave = async () => {
+ // 判断控制表不能为空--开始
+ // let len = this.handleCheckControlLen();
+ // if (!len) {
+ // message.error('请选择部件');/* 请填写从表数据 */
+ // this.props.onSaveState({
+ // loading: false,
+ // calculated: false,
+ // });
+ // return;
+ // }
+ // 判断控制表不能为空--结束
+ this.form.validateFields(async (err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materials0Config: materialsConfig, materials0Data: materialsData, materials0DelData: materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, packConfig, packData, packDelData, app, calculated, sModelsType, addStateMap
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) ||
+ (!commonBusiness.validateTable(materialsConfig, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ // if (commonUtils.isNotEmptyArr(materialsData)) {
+ // let flag = true;
+ // for (const item of materialsData) {
+ // if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ // message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ // flag = false;
+ // break;
+ // }
+ // }
+ // if (!flag) {
+ // this.props.onSaveState({
+ // loading: false,
+ // });
+ // return;
+ // }
+ // }
+ if (sModelsType.includes('manufacture/workOrder') && !calculated) {
+ message.warning('自动计算中,请稍后再试。');
+ await this.handleCalculation(true);
+ } else {
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ // data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+
+ if(commonUtils.isNotEmptyObject(addStateMap)){
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace('Config', '').trim();
+ const { [`${tableName}Data`]: tableData,[`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData} = this.props;
+ if(tableConfig.sTbName !== 'noTable') {
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+ }
+
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ }
+ }
+ });
+ };
+
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = async (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ const {
+ slaveData, controlData, materialsData, enabled,
+ app,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若从表相关联的材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ if (materialsData) {
+ materialsData.filter(item => item.sParentId === slaveData[iIndex].sParentId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ }
+ }
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ addState.treeSelectedKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ addState.treeSelectedKeys = [];
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData, app, enabled,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若此条控制表中材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ materialsData.filter(item => item.sControlId === tableData[iIndex].sId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ if (iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ const { treeData } = this.props; /* 赋值给树组件节点 */
+ let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */
+ if (treeData !== undefined) {
+ treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ addState.treeSelectedKeys = treeSelectedKeys;
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'materials' || name === 'process') {
+ const { [`${name}Data`]: tableData, app, enabled , masterData} = this.props;
+ const addState = await this.props.onTableSelectRowChange(name, selectedRowKeys, null, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 工单中材料或工序,若该条数据被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ const sOrderdetailUsed = tableData[iIndex].sOrderdetailUsed;
+ const sProductionUsed = tableData[iIndex].sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ return;
+ }
+ }
+ if (enabled && iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ if(name === 'process') {
+ addState.processSelectedData = [tableData[iIndex]];
+ addState.processSelectedRowKeys = selectedRowKeys;
+ const sTypeName = 'sWorkOrderParam';
+ /* 把工艺参数塞入masterData */
+ const sParams = commonUtils.isNotEmptyArr(addState.processSelectedData) ? addState.processSelectedData[0].sParams : '';
+ const sParamData = commonUtils.isNotEmptyObject(sParams) && commonUtils.isJSON(sParams) ? JSON.parse(sParams) : [];
+ tableData[iIndex] = { ... tableData[iIndex], ...commonUtils.convertStrToObj( tableData[iIndex].sWorkOrderParam) };
+ const viewRow = tableData[iIndex];
+
+ /* 把sParams的数据替换到viewRow */
+ if(commonUtils.isNotEmptyArr(sParamData)) {
+ for (const key of Object.keys(viewRow)) {
+ if(key.includes('sParam')){
+ const filterData = sParamData.filter(item => item.sParamKey === key);
+ if(commonUtils.isNotEmptyArr(filterData)){
+ const num = key.replace('sParam', '').trim();
+ const newKey = `${key}_${sTypeName}_${addState.processSelectedData[0].sId}`;
+ const newDefalut = 'sParamDefault' + num;
+ masterData[newKey] = filterData[0].sParamValue;
+ // masterData[key] = filterData[0].sParamValue;
+ }
+ }
+ }
+ }
+ addState.masterData = masterData;
+
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'pack') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ this.handleGetdFactProductQty(selectedRowKeys, tableData);
+ }
+ this.props.onSaveState(addState);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ handleShowParam = (processSelectedData, masterData) => {
+ const sTypeName = 'sWorkOrderParam';
+ /* 把工艺参数塞入masterData */
+ const sParams = commonUtils.isNotEmptyArr(processSelectedData) ? processSelectedData[0].sParams : '';
+ const sParamData = commonUtils.isNotEmptyObject(sParams) ? JSON.parse(sParams) : [];
+ let viewRow ={ ...processSelectedData[0], ...commonUtils.convertStrToObj(processSelectedData[0].sWorkOrderParam)};
+ /* 把sParams的数据替换到viewRow */
+ if(commonUtils.isNotEmptyArr(sParamData)) {
+ for (const key of Object.keys(viewRow)) {
+ if(key.includes('sParam')){
+ const filterData = sParamData.filter(item => item.sParamKey === key);
+ if(commonUtils.isNotEmptyArr(filterData)){
+ const num = key.replace('sParam', '').trim();
+ const newKey = `${key}_${sTypeName}_${processSelectedData[0].sId}`;
+ const newDefalut = 'sParamDefault' + num;
+ masterData[newKey] = filterData[0].sParamValue;
+ // masterData[key] = filterData[0].sParamValue;
+ }
+ }
+ }
+ }
+ return masterData;
+ }
+
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /** 控制选择控制表时,显示成品材料与成品工序 */
+ handleFilterProductData = (name, dataIndex, value, record) => {
+ const { slaveSelectedRowKeys } = this.props;
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') &&
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ }
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleGetFilterData = (name, bFinished) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props;
+ if (data !== undefined && ((commonUtils.isNotEmptyArr(controlSelectedRowKeys) && !bFinished) || bFinished)) {
+ if (name === 'materials' && bFinished) { /* 新增成品材料 */
+ return data.filter(item => item.sType === '2' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else if (name === 'process' && bFinished) { /* 新增成品工序s */
+ return data.filter(item => item.sType === '3' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ }
+ };
+ handleKeyDown = (e, record, sName, name) => {
+ /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */
+ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) {
+ if (e.key !== 'F12') {
+ e.preventDefault();
+ }
+ } else {
+ this.props.onKeyDown(e, record, sName, name);
+ }
+ }
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, flag, bchild, bFinished, bModalAdd) => {
+ const { masterConfig } = this.props;
+ if(bModalAdd === true) {
+ if(name === 'materials') {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productMaterials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ }
+ if(name === 'process') {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productProcess', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ }
+ return;
+ }
+ /* 外置处理业务 */
+ const {
+ gdsformconst, slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData,
+ } = this.props;
+ let { packData }=this.props;
+ if (name === 'control') {
+ /* 增加子部件 */
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (bchild === 'sameNode') { /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item.sId === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('部件数据生成错误![sAllId为空]');
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sId}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ }
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sControlParentId = treeSelectedKeys[0];
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = controlData[iIndex].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`;
+ }
+ }
+ if(bchild !=='sameNode' && bchild !=='childNode') { /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ let slaveSelectedRow = {};
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)){ /* 从表有选中行 */
+ const iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if(iSlaveIndex > -1){
+ slaveSelectedRow = slaveData[iSlaveIndex];
+ }
+ }else{ /* 没有选中行 */
+ if(slaveData.length ===1){
+ slaveSelectedRow =slaveData[0];
+ }else{
+ message.error('请选择从表!')
+ }
+ }
+
+ /* 新增工艺卡,部件名称要默认选中从表行的产品名称 */
+ tableDataRow.sPartsName = slaveSelectedRow.sProductName;
+
+ /* 部件表新增时,若合版表没有该sControlId 则默认取从表选中行,合拼1 作为一条packData数据 */
+ if(commonUtils.isEmptyArr(packData)){
+ packData =[];
+ }
+ if(false){
+ packData =[];
+ } else{
+ const iIndex =packData.findIndex(item=> item.sControlId === tableDataRow.sId);
+ if(iIndex ===-1){
+
+ if(commonUtils.isEmptyObject(slaveSelectedRow.sProductId)) {
+ message.error('请先选择产品!');
+ return;
+ }
+ if(slaveSelectedRow){
+ const packDataRow = this.handlePackDataAdd(slaveSelectedRow, 0, tableDataRow.sId, 'add');
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if(commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packDataRow;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ packData.push(packDataRow);
+ }
+
+ }
+ }
+
+ let dPartsQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ }
+ tableDataRow.dPartsQty = dPartsQty;
+ tableData.push(tableDataRow);
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ this.props.onSaveState({
+ ...treeState, [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], treeSelectedKeys: [tableDataRow.sId], packData,
+ });
+ } else if (name === 'materials' || name === 'process') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) {
+ message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件
+ return;
+ }
+ if(bFinished) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`;
+ tableDataRow.sCombinePartsName = slaveData[iIndex].sId;
+ if (name === 'materials') { /* 新增成品材料 */
+ tableDataRow.sType = '2';
+ }
+ if (name === 'process') { /* 新增成品工序 */
+ tableDataRow.sType = '3';
+ }
+ }
+ } else {
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ // tableDataRow.iOrder = controlData[iIndex];
+ }
+ }
+
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if (name === 'slave') {
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app } = this.props;
+ let { expKeys }= this.props;
+ if(commonUtils.isEmptyArr(expKeys)) {
+ expKeys = [];
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));
+ return;
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sFatherSlaveId = tableSelectedRowKeys[0];
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = commonUtils.isNotEmptyObject(tableData[iIndex].sAllId)? tableData[iIndex].sAllId : tableData[iIndex].sId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${tableData[iIndex].sAllId},${tableDataRow.sId}`;
+ tableDataRow.sCustomerId = tableData[iIndex].sCustomerId;
+ tableDataRow.sCustomerName= tableData[iIndex].sCustomerName;
+ }
+ /* 新增子级时 子级展开 */
+ expKeys.push(tableSelectedRowKeys[0]); /* 展开只要展开父级即可 */
+ }
+ if(bchild !=='sameNode' && bchild !=='childNode') { /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ console.log(333, tableDataRow);
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], expKeys });
+ } else {
+ return this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = (name, tableSelectedRowKeys, sField) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ const sFieldName = commonUtils.isEmpty(sField) ? 'sControlId' : sField;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据s */
+ let tableDataIndex = tableData.findIndex(item => item[sFieldName] === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item[sFieldName] === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ }
+ /** 删除表格数据 */
+ handleTableDel = async (name, flag, tableSelectedRowKeys) => {
+ if (name === 'slave') {
+ /* 删除sSlaveId关联的合版表 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys, 'sSlaveId');
+ const materielReturnData = this.otherTableDel('materials', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品材料 */
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品工序 */
+ const slaveReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materielReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...slaveReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'control') {
+ const { controlData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ let { treeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const iIndex = controlData.findIndex(item => tableSelectedRowKeys.includes(item.sId) && item.rowTag === 1);
+ if (iIndex > -1) {
+ /* 如果行被锁定不可更改删除时 */
+ return false;
+ }
+ /* 删除该节点及所有子节点 */
+ treeSelectedKeys = treeSelectedKeys || [];
+ const controlChildData = controlData.filter(item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableSelectedRowKeys[0]) > -1 && item.sId !== tableSelectedRowKeys[0]);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ const treeState = this.handleGetControlTreeData(controlReturnData.controlData, true);
+ this.props.onSaveState({
+ ...treeState,
+ ...materialsReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'process') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, materialsConfig, materialsData, token,
+ } = this.props;
+ let { materialsDelData } = this.props;
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ // const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ // const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ // if (dataProcessAssort.code === 1) {
+ // returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ // }
+
+ let iMaterialsIndex = -1;
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+
+ const sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ const processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === slaveDataFilter.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+
+ processReturnData.processDelData.concat(tableDelData);
+ /* 删除工序对应的材料 */
+ const materialsFilterDelData = materialsData.filter(item => tableSelectedRowKeys.includes(item.sProcessTbId) && item.sProcessId === sProcessId );
+ let materialsSelectedDelRowKeys = [];
+ if(commonUtils.isNotEmptyArr(materialsFilterDelData)) {
+ materialsFilterDelData.forEach((item) =>{
+ const materialsChildFilter = materialsData.filter(row => commonUtils.isNotEmptyObject(row.sParentMaterialsId ) && row.sParentMaterialsId === item.sId); /* 删除对应的替代料 */
+ if(commonUtils.isNotEmptyArr(materialsChildFilter)) {
+ materialsChildFilter.forEach((child) =>{
+ materialsSelectedDelRowKeys.push(child.sId);
+ })
+ }
+ materialsSelectedDelRowKeys.push(item.sId);
+ })
+ }
+ let materialsReturnData = {};
+ if (commonUtils.isNotEmptyArr(materialsSelectedDelRowKeys)) {
+ materialsReturnData = this.props.onDataRowDel('materials0', true, materialsSelectedDelRowKeys);
+ if(commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) {
+ materialsReturnData.materials0DelData = materialsReturnData.materials0DelData.concat(materialsDelData);
+ }
+ }
+ this.props.onSaveState({
+ ...processReturnData,
+ ...materialsReturnData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ } else {
+ return this.props.onDataRowDel(name, flag, tableSelectedRowKeys);
+ }
+ };
+ /** 材料被使用锁定表格数据行 */
+ handleTableRowLock = async (name, record) => {
+ const { slaveData, controlData, enabled } = this.props;
+ if (commonUtils.isNotEmptyObject(record) && enabled) {
+ if (name === 'materials' || name === 'process') {
+ const { sOrderdetailUsed, sProductionUsed } = record;
+ if (commonUtils.isNotEmptyObject(sOrderdetailUsed) || commonUtils.isNotEmptyObject(sProductionUsed)) {
+ record.rowTag = 1;
+ controlData.filter(item => item.sId === record.sControlId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ slaveData.filter(item => item.sParentId === record.sParentId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ }
+ }
+ }
+ }
+
+ handleCheckControlLen = () => {
+ let controlTableData = [];
+ if(commonBusiness.getTableTypes('control', this.props).data && commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.slaveData)) {
+ const iSlaveIndex = this.props.slaveData.findIndex(item => item.sId === this.props.slaveSelectedRowKeys[0]);
+ const slaveSelectedRow = this.props.slaveData[iSlaveIndex] || {sProductNo: 0};
+ if(iSlaveIndex !== -1) {
+ commonBusiness.getTableTypes('control', this.props).data.forEach(item => {
+ if(item.sCombinedMemo && item.sCombinedMemo !== '' && item.sCombinedMemo !== '合版信息') {
+ const sCombinedMemoArr = commonUtils.isJSON(item.sCombinedMemo) ? JSON.parse(item.sCombinedMemo) : [];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo && item.sProductNo.indexOf(slaveSelectedRow.sProductNo) !== -1).length;
+ if(len) {
+ controlTableData.push(item);
+ }
+ } else {
+ controlTableData.push(item);
+ }
+ })
+ } else {
+ controlTableData = commonBusiness.getTableTypes('control', this.props).data;
+ }
+ }
+ return controlTableData.length;
+ }
+
+ handleCalculation = async (bSave) => {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`;
+ const {
+ app, masterConfig, slaveConfig, packConfig, controlConfig, materialsConfig, processConfig, colorConfig, sModelsType, colorData, slaveDelData, controlDelData, materialsDelData, processDelData, colorDelData, packDelData,
+ addStateMap, materials0Config, materials0DelData,
+ } = this.props;
+ // 判断控制表不能为空--开始
+ // let len = this.handleCheckControlLen();
+ // if (!len) {
+ // message.error('请选择部件');/* 请填写从表数据 */
+ // this.props.onSaveState({
+ // loading: false,
+ // calculated: false,
+ // });
+ // return;
+ // }
+ // 判断控制表不能为空--结束
+ let {
+ slaveData, packData, controlData, materialsData, processData, masterData, materials0Data,
+ } = this.props;
+ const sMakePerson = masterData.sMakePerson;
+ const dataCalculation = [];
+ if ((masterData.sFormId === '101251240115015840916341460' || sModelsType.includes('manufacture/workOrderSupple')) && commonUtils.isNotEmptyArr(colorData)) {
+ controlData.forEach((item) => {
+ item.iPositiveColor = colorData.filter(item => !item.bNotColor).length;
+ });
+ }
+ dataCalculation.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ dataCalculation.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('pack', `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('materials', `${materials0Config.sTbName.toLowerCase()}_tmp`, materials0Data, [], true));
+ dataCalculation.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ const value = { data: dataCalculation, sClientType: '1', sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) { /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ if (masterData.handleType === 'update' && !commonUtils.isEmpty(sMakePerson)) {
+ masterData.sMakePerson = sMakePerson;
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materials0Data = valueReturn[`${materials0Config.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ // processData = this.sortData(controlData, processData);
+
+ /* 计算成功后自动调用保存 */
+ if (bSave) {
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materials0Config.sTbName, materials0Data, materials0DelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ if(commonUtils.isNotEmptyObject(addStateMap)){
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace('Config', '').trim();
+ const { [`${tableName}Data`]: tableData,[`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData} = this.props;
+ if(tableConfig.sTbName !== 'noTable' && tableConfig.sTbName!=='MftWorkOrderMaterials') {
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+ }
+
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ this.props.onSaveState({
+ slaveData, packData, controlData, materials0Data, processData, masterData, loading: false, calculated: true,
+ });
+ } else {
+ this.props.onSaveState({
+ slaveData, packData, controlData, materials0Data, processData, masterData, loading: false, calculated: true,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess'));
+ }
+ } else { /* 失败 */
+ this.props.onSaveState({
+ loading: false,
+ calculated: false,
+ });
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ /** 按钮操作事件 */
+ handleButtonClick = async (name) => {
+ if (name === 'BtnCalculation') {
+ this.props.onSaveState({
+ loading: true,
+ });
+ this.handleCalculation();
+ } else if (name === 'BtnChooseProcess') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnChooseMaterials') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnFastOrder') {
+ const {
+ masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData,
+ } = this.props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (commonUtils.isEmptyArr(checkProcessClassifyData) && commonUtils.isNotEmptyArr(controlData) && !commonUtils.isEmpty(changeData) && !commonUtils.isEmpty(changeData.sAllPartsName)) {
+ const allPartsName = changeData.sAllPartsName.split(',');
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach((item) => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData.filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ }
+ this.props.onSaveState({ fastOrderModalVisible: true, workOrderAllprogress: 0, ...addState });
+ } else if (name === 'BtnCombine') {
+ const { slaveData: slaveDataOld, controlData: controlDataOld } = this.props;
+ let dMaxQty = 0;
+ let dSumMachineQty = 0;
+ slaveDataOld.forEach((item) => {
+ if (commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty > dMaxQty) {
+ dMaxQty = Math.ceil(commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty);
+ }
+ });
+ const controlData = [];
+ if (commonUtils.isNotEmptyArr(controlDataOld)) {
+ controlDataOld.forEach((item) => {
+ let controlRow = { ...item, dPartsQty: dMaxQty };
+ controlRow = this.singlePQtyChange(controlRow);
+ controlData.push(controlRow);
+ });
+ dSumMachineQty = controlData[0].dSumMachineQty;
+ }
+ const slaveData = [];
+ slaveDataOld.forEach((item) => {
+ slaveData.push({ ...item, dProductQty: dSumMachineQty * item.dCombineQty });
+ });
+ this.props.onSaveState({ slaveData, controlData });
+ } else if (name === 'BtnDraft') {
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, packConfig, packData, packDelData,
+ } = this.props;
+ const data = [];
+ slaveConfig.gdsconfigformslave.forEach((itemConfig) => {
+ slaveData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ controlConfig.gdsconfigformslave.forEach((itemConfig) => {
+ controlData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ materialsConfig.gdsconfigformslave.forEach((itemConfig) => {
+ materialsData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ processConfig.gdsconfigformslave.forEach((itemConfig) => {
+ processData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packConfig.gdsconfigformslave.forEach((itemConfig) => {
+ packData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorConfig.gdsconfigformslave.forEach((itemConfig) => {
+ colorData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ }
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId, bIsUnCcg: false,
+ });
+ } else if(name === 'BtnWorkFlow') {
+ const dataUrl = `${commonConfig.server_host}workOrderFlow/getWorkOrderFlow/`;
+ let {token} = this.props.app
+ let { slaveData, controlData, materialsData, processData, packData} = this.props
+ const value = {
+ slave:slaveData,
+ control:controlData,
+ materials:materialsData,
+ process:processData,
+ pack:packData
+ }
+ let dataReturn = (await commonServices.postValueService(token,value,dataUrl)).data;
+ if (commonUtils.isNotEmptyObject(dataReturn)) {
+ if (dataReturn.code === 1) {
+ const flowData = dataReturn.dataset.rows[0];
+ console.log(flowData);
+ if (commonUtils.isNotEmptyObject(flowData)) {
+ this.props.onSaveState({
+ flowData: flowData,workFlowVisible:true
+ });
+ // localStorage.setItem('flow', JSON.stringify(flowData));
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ } else {
+ this.props.onButtonClick(name);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, packConfig, materialsInfoList, materialsChildInfoList, visionConfig,
+ } = this.props;
+ const bReturn = await this.props.onSearchData(handleType);
+ if (bReturn) {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ const addStateConfig = {};
+ addStateConfig['visionConfig'] = visionConfig;
+ this.handleGetOtherData(materialsInfoList, materialsChildInfoList, addStateConfig);
+ }
+ };
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, packConfig, materialsInfoList, materialsChildInfoList, visionConfig,
+ } = this.props;
+ this.props.onEdit(() => {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig, { loading: false, enabled: true });
+ const addStateConfig = {};
+ addStateConfig['visionConfig'] = visionConfig;
+ this.handleGetOtherData(materialsInfoList, materialsChildInfoList, addStateConfig);
+ });
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, masterData, slaveData, controlData, materialsData, processData, colorData, packData, app, token, sModelsId, formRoute, visionData,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.processData = processData;
+ copyTo.colorData = colorData;
+ copyTo.packData = packData;
+ copyTo.visionData = visionData;
+ copyTo.srcFormRoute = formRoute; /* 来源路由 */
+ copyTo.oldFormId = sModelsId; /* 生成前的模块ID */
+ copyTo.newFormId = sActiveId; /* 生成后的模块ID */
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ const getDataNew = this.getDataNew;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ refresh: getDataNew.bind(this),
+ sSrcModelsId: this.props.sModelsId
+ },
+ });
+ };
+
+ getDataNew = () => {
+ const { masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, materialsInfoList, materialsChildInfoList, visionConfig } = this.props;
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ const addStateConfig = {};
+ addStateConfig['visionConfig'] = visionConfig;
+ this.handleGetOtherData(materialsInfoList, materialsChildInfoList, addStateConfig);
+ }
+
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app,
+ } = props;
+ const { userinfo, systemData } = app;
+ const { sMakePerson } = masterData; /* 本单据制单人 */
+ const { sUserName, sType } = userinfo;/* 登录用户 */
+ const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson');
+ if (iIndex > -1) {
+ const sValue = systemData[iIndex].sValue;
+ if (sValue === '0') { /* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */
+ if (sType !== 'sysadmin' && sUserName !== sMakePerson) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoDelByNoMakePerson'));
+ return;
+ }
+ }
+ }
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ sSlaveTable: [
+ {
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: checkConfig.sTbName,
+ relationName: 'sBillId',
+ }, {
+ tableName: controlConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: materialsConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: processConfig.sTbName,
+ relationName: 'sParentId',
+ }],
+ },
+ };
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.props.onDelDataSuccess(props);
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, app,
+ } = this.props;
+ const onGetData = this.props.onGetData;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const { copyTo } = app.currentPane;
+ const { userinfo } = app;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onGetData(masterConfig, slaveConfig, checkConfig);
+ onGetDataOk(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const {
+ masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig,
+ } = this.props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await this.props.onAdd(config, copyTo, true);
+ let { slaveData, masterData } = state;
+ let controlData = [];
+ let packData = [];
+ let materialsData = [];
+ let materials0Data = []; /* 全部材料 */
+ let processData = [];
+ const colorData = [];
+ const visionData = [];
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const {
+ app, sModelsId, token, sModelsType,
+ } = this.props;
+ const bCkxCopyFromTechnology = app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ const bCopyFromProcessCard = (commonUtils.isNotEmptyObject(copyTo.oldFormId) && copyTo.oldFormId === copyTo.newFormId) || sModelsType === 'manufacture/workOrder2';
+ if (bCkxCopyFromTechnology === '1' && !bCopyFromProcessCard) {
+ if (slaveData.length > 1) {
+ const dataUrl = `${commonConfig.server_host}business/getCopyToWorkOrderData?sModelsId=${sModelsId}`;
+ const data = [];
+ data.push(commonBusiness.mergeData('master', `${config.masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ data.push(commonBusiness.mergeData('slave', `${config.slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ const value = {
+ data, sClientType: '1', sGuid: masterData.sId, sConfigId: copyTo.config[0].sId, sControlName: copyTo.name,
+ };
+ const dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${config.masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ slaveData = valueReturn[`${config.slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${config.controlConfig.sTbName.toLowerCase()}_tmp`];
+ packData = valueReturn[`${config.packConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${config.materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${config.processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach((slaveItem) => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase());
+ const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveAssignField = commonUtils.isNotEmptyObject(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ const 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 = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ state.masterData = masterData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ if (slaveData.length === 1 && returnData.slaveData.length ===1){ /* 从表与返回数据从表只有一条时 替换该从表数据 */
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ slaveData.forEach((item, iSlaveIndex) => {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ slaveData[iSlaveIndex] = item;
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ } else {
+ // slaveData =[];
+ returnData.slaveData.forEach((slaveItem) => {
+ newCopyTo.slave = slaveItem;
+ const iSameIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId) : -1;
+ if(iSameIndex > -1){
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex] = { ...slaveData[iSameIndex], ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0) + commonUtils.isNull(slaveItem.dGiveQty, 0) + commonUtils.isNull(slaveItem.dStockupQty, 0);
+ }
+ } else {
+ let slaveRow = {};
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = slaveItem.sSlaveId;
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ }
+ // slaveData.forEach((item, iSlaveIndex) => {
+ // if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ // item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ // }
+ // slaveData[iSlaveIndex] = item;
+ // if (dProductQty) {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ // } else {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // }
+ // });
+ const treeCopyNodes = new Map();
+ await returnData.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ await returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ // eslint-disable-next-line radix
+ if (true) {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sZmldlt = materialsItem.sZmldlt;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if(commonUtils.isNotEmptyArr(materialsData)) {
+ const materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if(commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if(iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ materialsData[iNexIndex] = {...materialsData[iNexIndex], sParentMaterialsId: materialsData[iIndex].sId }
+ }
+ }
+
+ });
+ }
+
+ const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if(commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if(iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ materialsData[iNexIndex] = { ...materialsData[iNexIndex], sInkFatherMaterialsTbId: materialsData[iIndex].sId}
+ }
+ }
+ });
+ }
+ }
+
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ } else if (false && slaveData.length > 1) {
+ let sInfo;
+ slaveData.forEach((item) => {
+ sInfo = commonUtils.isEmpty(sInfo) ? `${item.sCustomerId}|${item.sProductId}` : `${sInfo},${item.sCustomerId}|${item.sProductId}`;
+ });
+ const dataUrl = `${commonConfig.server_host}salesorder/getgdsemigoodsMatchInfo?sModelsId=${sModelsId}`;
+ const params = {
+ customerProductInfo: sInfo,
+ };
+ const dataCombineProcess = (await commonServices.postValueService(token, params, dataUrl)).data;
+ if (dataCombineProcess.code === 1) {
+ const returnData = dataCombineProcess.dataset.rows;
+ returnData.forEach((processItem, processIndex) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.sSlaveCustomerId = processItem.sCustomerId;
+ processRow.sCustomerName = processItem.sCustomerName;
+ processRow.sSlaveProductId = processItem.sProductId;
+
+ processRow.sProductName = processItem.sProductName;
+ processRow.iOrder = processIndex + 1;
+ processRow.sType = '3';
+
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ });
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const copyToVisionConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.vision`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ const visionAssignField = commonUtils.isNotEmptyArr(copyToVisionConfig) ? copyToVisionConfig[0].sAssignField : '';
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let bProcessAssort = false;
+ /* 生产翻单不生成配套工序 */
+ const srcFormRoute = copyTo.srcFormRoute; /* 未清来源路径 */
+ if (sModelsType === 'manufacture/workOrder' && (commonUtils.isEmpty(srcFormRoute) || srcFormRoute.includes('workOrder'))) {
+ bProcessAssort = false;
+ }
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = this.props;
+ const sSlaveId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sSlaveId) ? copyTo.slaveData[0].sSlaveId : copyTo.slaveData[0].sId;
+ const condition = { sSlaveId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.packData = returnData.packData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ await this.props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ // let dProductQty = 0;
+ // slaveData.forEach((item) => {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ const treeCopyNodes = new Map();
+ await copyTo.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sOriginalId = controlItem.sId; /* 复制前的部件表sId */
+ controlRow.sParentId = masterData.sId;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ // controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ await copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId || item.sOrderSlaveId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData) && commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)&& commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ if (sModelsType.includes('workOrderSet')) { /* 通用工单的合版部件名称来自于控制表,复制到时需换成新生成的控制表sId */
+ const controlFilterData = controlData.filter(item => sOldArr.includes(item.sOriginalId));
+ if (commonUtils.isNotEmptyArr(controlFilterData)) {
+ controlFilterData.forEach((item) => {
+ sNewIds += `${item.sId},`;
+ sNewNames += `${item.sPartsName},`;
+ });
+ }
+ } else {
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.visionData)) {
+ if (commonUtils.isNotEmptyObject(config.visionConfig)) {
+ copyTo.visionData.forEach((visionItem) => {
+ newCopyTo.vision = visionItem;
+ let visionRow = commonFunc.getDefaultData(config.visionConfig, newCopyTo); // 取默认值
+ visionRow = { ...visionRow, ...commonFunc.getAssignFieldValue(visionAssignField, visionItem, newCopyTo) }; // 取赋值字段
+ visionRow.handleType = 'add';
+ visionRow.sId = commonUtils.createSid();
+ visionRow.sParentId = masterData.sId;
+ visionData.push(visionRow);
+ });
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (dProductQty) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ tableDataRow.sAllId = tableDataRow.sId;/* 第一级sAllId等于sId */
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = this.sortData(controlData, processData);
+ }
+ } else {
+ state.fastOrderModalVisible = this.props.bFastOrderView;
+ const { sModelsId } = this.props;
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true);
+ state = { ...state, ...addState };
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1; /* 序号从1开始 */
+ tableDataRow.sCombinedMemo = '合版信息';
+ tableDataRow.sAllId = tableDataRow.sId;
+
+ if(commonUtils.isEmptyObject(tableDataRow.sPartsName)) {
+ tableDataRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sProductName : '';
+ }
+
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ tableDataRow.dPartsQty = dProductQty;
+ /* 点击新增按钮 控制表自动默认增一条 同时默认新增一条合版表 */
+ if(commonUtils.isNotEmptyArr(slaveData) && slaveData.length === 1 && commonUtils.isEmptyArr(packData)){
+ const packDataRow = this.handlePackDataAdd(slaveData[0], 0, tableDataRow.sId, 'add');
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if(commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packDataRow;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ packData.push(packDataRow);
+ }
+ controlData.push(tableDataRow);
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ const stateNew = {
+ ...state,
+ ...treeState,
+ slaveData,
+ controlData,
+ controlSelectedRowKeys: [],
+ packData,
+ packSelectedRowKeys: [],
+ materialsData,
+ materials0Data: materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ processSelectedRowKeys: [],
+ colorData,
+ colorSelectedRowKeys: [],
+ visionData,
+ visionSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ this.props.onSaveState(stateNew);
+ }
+ };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ if(name ==='materials') {
+ name = 'materials0';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, controlSelectedRowKeys,processSelectedRowKeys, sModelsId, token,
+ slaveConfig, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld,
+ controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld,
+ } = this.props;
+ let { masterData, slaveSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyObject(selectConfig) && selectConfig.sControlName.includes('TmpInfoBySql')) { /* 复制从部件 根据配置下拉sql获取数据源 通过按钮名称是否包含add来判断数据源新增还是删除 */
+ const addState = {};
+ let controlData = commonUtils.isEmptyArr(controlDataOld) ? [] : controlDataOld;
+ let materialsData = commonUtils.isEmptyArr(materialsDataOld) ? [] : materialsDataOld;
+ let processData = commonUtils.isEmptyArr(processDataOld) ? [] : processDataOld;
+ let colorData = commonUtils.isEmptyArr(colorDataOld) ? [] : colorDataOld;
+
+
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
+ const sConfigformId = commonUtils.isEmpty(selectConfig) ? '' : selectConfig.sParentId;
+ const sRowData = selectData;
+ const sControlName = selectConfig.sControlName; /* 按钮名称 */
+ // const sSqlCondition = { sId: selectData[0].sSlaveId }; /* 后台根据rowData自己取 */
+ const condition = { sConfigformId, sControlName, sRowData };
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ console.log('aaaadataReturn', dataReturn);
+ if (dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnDataSet = dataReturn.dataset.rows[0];
+ const returnData = {};
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase().replace('_add','').replace('_edit','').trim() === `${copyTo.name}.process`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+
+ /* 判断是插入 还是删除 */
+ if(commonUtils.isNotEmptyArr(copyToControlConfig)) {
+ if(commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ if(!copyToControlConfig[0].sControlName.includes('_add') && !copyToControlConfig[0].sControlName.includes('_edit')) { /* 删除 */
+ controlData = [];
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const controlDataFilterData = controlDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sId));
+ if(commonUtils.isNotEmptyArr(controlDataFilterData)) {
+ controlDataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ controlDelData.push(item);
+ });
+ }
+ addState.controlDelData = controlDelData;
+ }
+ } else {
+ message.error('请选择部件!');
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(copyToMaterialsConfig)) {
+ if(!copyToMaterialsConfig[0].sControlName.includes('_add') && !copyToMaterialsConfig[0].sControlName.includes('_edit')) { /* 删除 */
+ materialsData = [];
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const materialsDataFilterData = materialsDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if(commonUtils.isNotEmptyArr(materialsDataFilterData)) {
+ materialsDataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ }
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(copyToProcessConfig)) {
+ if(!copyToProcessConfig[0].sControlName.includes('_add') && !copyToProcessConfig[0].sControlName.includes('_edit')) { /* 删除 */
+ processData = [];
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const processDataFilterData = processDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if(commonUtils.isNotEmptyArr(processDataFilterData)) {
+ processDataFilterData.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ }
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(colorAssignField)) {
+ if(!colorAssignField[0].sControlName.includes('_add') && !colorAssignField[0].sControlName.includes('_edit')) { /* 删除 */
+ colorData = [];
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let iSlaveIndex = -1;
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+ let controlSelectedRow = {}; /* 控制表选中行 */
+ let iControlIndex = -1;
+ if (!commonUtils.isEmpty(controlSelectedRowKeys)) {
+ iControlIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ if(iControlIndex > -1) {
+ controlSelectedRow = controlData[iControlIndex];
+ }
+ }
+
+ const bProcessAssort = 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 = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if(commonUtils.isNotEmptyObject(returnDataSet)) {
+ /* 数据塞到Data中 */
+ for (const key of Object.keys(returnDataSet)) {
+ const sName = `${key}Data`;
+ returnData[sName] = returnDataSet[key];
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ let dProductQty = 0;
+ if(commonUtils.isNotEmptyObject(copyToSlaveDetailConfig)) {
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ console.log(22, returnData.slaveData);
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ returnData.slaveData.forEach((slaveItem, iIndex) => {
+ /* 从工艺卡数据集 找到从表相同产品ID,客户ID */
+ const iSameIndex = slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId);
+ if(false){
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0) + commonUtils.isNull(slaveItem.dGiveQty, 0) + commonUtils.isNull(slaveItem.dStockupQty, 0);
+ }
+ } else if(commonUtils.isNotEmptyObject(slaveDetailAssignField)){ /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow ={};
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField,slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.controlData) && commonUtils.isNotEmptyObject(controlAssignField)) {
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ if(copyToControlConfig[0].sControlName.includes('_edit')) {
+ controlRow = { ...controlSelectedRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ if(iControlIndex > -1) {
+ controlData[iControlIndex] = { ...controlSelectedRow, ...controlRow};
+ }
+ } else {
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sZmldlt = materialsItem.sZmldlt;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if(commonUtils.isNotEmptyArr(materialsData)) {
+ const materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if(commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if(iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ materialsData[iNexIndex] = {...materialsData[iNexIndex], sParentMaterialsId: materialsData[iIndex].sId }
+ }
+ }
+
+ });
+ }
+
+ const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if(commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if(iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ materialsData[iNexIndex] = { ...materialsData[iNexIndex], sInkFatherMaterialsTbId: materialsData[iIndex].sId}
+ }
+ }
+ });
+ }
+ }
+
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData) && materialsAssignField) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData) && processAssignField) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sOriginalId = processItem.sId;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ addState.materials0DelData = addState.materialsDelData;
+ addState.materials0Data = materialsData;
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ processData,
+ materialsData,
+ controlData,
+ ...treeState,
+ colorData,
+ masterData,
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else if (false && commonUtils.isNotEmptyObject(selectConfig) && selectConfig.sControlName.includes('BtnCopyFrom.sworkorder')) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ let packData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ // controlDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // controlDelData.push(item);
+ // });
+ addState.controlDelData = controlDelData;
+ materialsDataOld.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ processDataOld.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ let iSlaveIndex = -1;
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ slaveSelectedRowKeys = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : [];
+ }
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ const copyTo = {config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName};
+ const returnData = {
+ slaveData: selectData,
+ controlData: controlDataOld
+ };
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = {...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo)}; // 取赋值字段
+ }
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = {...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo)}; // 取赋值字段
+ }
+ console.log('ss', slaveDetailAssignField);
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ returnData.slaveData.forEach((slaveItem, iIndex) => {
+ /* 从工艺卡数据集 找到从表相同产品ID,客户ID */
+ const iSameIndex = iSlaveIndex;
+ if (iSameIndex > -1) {
+ if (commonUtils.isNotEmptyObject(slaveDetailAssignField)) {
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex] = {...slaveData[iSameIndex], ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo)}; // 取赋值字段
+ }
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(slaveData[iSameIndex].dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(slaveData[iSameIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSameIndex].dGiveQty, 0) +
+ commonUtils.isNull(slaveData[iSameIndex].dStockupQty, 0);
+ }
+ } else if (commonUtils.isNotEmptyObject(slaveDetailAssignField)) { /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow = {};
+ slaveRow = {...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo)}; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(controlDataOld)) {
+ let packRow = {};
+ const slaveSelectedRow = iSlaveIndex > -1 ? slaveData[iSlaveIndex] : {};
+ const controlRow = controlDataOld[0];
+ if(slaveSelectedRow){
+ const packDataRow = this.handlePackDataAdd(slaveSelectedRow, 0, controlRow.sId, 'add');
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if(commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packDataRow;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ controlRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ controlDataOld[0].sCombinedMemo = controlRow.sCombinedMemo;
+ }
+ packData.push(packDataRow);
+ }
+ }
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ controlData: controlDataOld,
+ packData,
+ masterData,
+ ...addState,
+ });
+ }
+ }
+ } else if (name === 'productProcessInfo') {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ let controlData = [];
+ let materialsData = [];
+ let processData = [];
+ let colorData = [];
+ let packData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ controlDataOld.forEach((item) => {
+ item.handleType = 'del';
+ controlDelData.push(item);
+ });
+ addState.controlDelData = controlDelData;
+ materialsDataOld.forEach((item) => {
+ item.handleType = 'del';
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ processDataOld.forEach((item) => {
+ item.handleType = 'del';
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach((item) => {
+ item.handleType = 'del';
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ let iSlaveIndex = -1;
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ slaveSelectedRowKeys = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : [];
+ }
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ let condition = { sCardId: selectData[0].sId };
+ let dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+
+ /* 复制从工单功能 */
+ const { productProcessInfoCopyFromKey } = this.props;
+ let bCopyFromWorkOrder = false;
+ if (commonUtils.isNotEmptyObject(productProcessInfoCopyFromKey) && productProcessInfoCopyFromKey.includes('BtnCopyFrom.sworkorder')) {
+ // bCopyFromWorkOrder = true;
+ condition = { sWorkOrderId: selectData[0].sId, slaveData };
+ // dataUrl = `${commonConfig.server_host}salesorder/getCopyFromWorkOrder/?sModelsId=${sModelsId}`;
+ dataUrl = `${commonConfig.server_host}salesorder/getWorkOrderToWorkOrder/?sModelsId=${sModelsId}`;
+ }
+
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+
+ /* 复制从工单逻辑 源数据集整体赋值 */
+ if (bCopyFromWorkOrder && dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ let treeState = [];
+ if (commonUtils.isNotEmptyArr(returnData)) {
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ controlData = returnData.controlData;
+ treeState = this.handleGetControlTreeData(controlData, true);
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ materialsData = returnData.materialsData;
+ materialsData.forEach((item, idx) => {
+ materialsData[idx].sPartsName = controlData.filter(o => o.sId === item.sControlId).length ?
+ controlData.filter(o => o.sId === item.sControlId)[0].sPartsName : '';
+ })
+ }
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ processData = returnData.processData;
+ processData.forEach((item, idx) => {
+ processData[idx].sPartsName = controlData.filter(o => o.sId === item.sControlId).length ?
+ controlData.filter(o => o.sId === item.sControlId)[0].sPartsName : '';
+ })
+ }
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ packData = returnData.packData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ colorData = returnData.controlData;
+ }
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ processData,
+ materialsData,
+ controlData,
+ colorData,
+ packData,
+ masterData,
+ ...treeState,
+ tableSelectedNewRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ controlSelectedRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ }
+ } else if (!bCopyFromWorkOrder && dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ 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 = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ returnData.slaveData.forEach((slaveItem, iIndex) => {
+ /* 从工艺卡数据集 找到从表相同产品ID,客户ID */
+ let iSameIndex = slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId);
+ if(commonUtils.isNotEmptyObject(selectConfig) && selectConfig.sControlName.includes('BtnCopyFrom.sworkorder')){
+ /* 复制从历史工单 只要把数据赋值到选中行即可 */
+ iSameIndex = iSlaveIndex;
+ }
+ if(iSameIndex > -1){
+ if(commonUtils.isNotEmptyObject(slaveDetailAssignField)) {
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex] = { ...slaveData[iSameIndex], ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull( slaveData[iSameIndex].dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull( slaveData[iSameIndex].dProductQty, 0) + commonUtils.isNull( slaveData[iSameIndex].dGiveQty, 0) +
+ commonUtils.isNull(slaveData[iSameIndex].dStockupQty, 0);
+ }
+ } else if(commonUtils.isNotEmptyObject(slaveDetailAssignField)){ /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow ={};
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField,slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && jsonStr !== '合版信息' && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }else {
+ packRowAdd.dCombineQty = 1; /* 排版数 */
+ if(commonUtils.isNotEmptyObject(packRowAdd) && commonUtils.isNotEmptyObject(packRowAdd.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packRowAdd;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ const sCombinedMemoNew =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ console.log('66116', sCombinedMemoNew);
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ console.log('icontrolIndex', icontrolIndex);
+ if (icontrolIndex > -1) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sOriginalId = processItem.sId;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true);
+ addState.materials0DelData = materialsDelData;
+ addState.materials0Data = materialsData;
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ processData,
+ materialsData,
+ controlData,
+ colorData,
+ packData,
+ masterData,
+ ...treeState,
+ tableSelectedNewRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ controlSelectedRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ const iProcessIndex = commonUtils.isNotEmptyArr(processDataOld) ?
+ commonUtils.isNotEmptyArr(processSelectedRowKeys) ? processDataOld.findIndex(item => item.sId === processSelectedRowKeys[0]) : 0 : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === 'process') {
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ tableDataRow.sParams = item.sParams;
+ }
+ // const value = { sSqlCondition: { sParentId: item.sId } };
+ // const configDataId = '11811781131121915166093023980';
+ // const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ // const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ // if (returnData.code === 1) {
+ // const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ // const newData = eleprocessmachineData.filter(item => item.bDefault);
+ // if (commonUtils.isNotEmptyArr(newData)) {
+ // tableDataRow.sMachineId = newData[0].sMachineId;
+ // }
+ // }
+ const bProcessAssort = 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;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }else if(name ==='materials0') {
+ if(iProcessIndex > -1) {
+ tableDataRow.sProcessId = processDataOld[iProcessIndex].sProcessId; /* 工序ID */
+ tableDataRow.sProcessTbId = processDataOld[iProcessIndex].sId; /* 工序表格ID */
+ }
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+
+ const processLen = tableData.filter(item => item.sType !== '3').length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ const processLen = tableData.filter(item => item.sType === '3').length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ }
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ };
+
+ handleSelectProductMaterial = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ // 选择成品材料,将sType改为2
+ if (name === 'productMaterials') {
+ selectData = selectData.map(val => ({ ...val, sType: '2' }));
+ name = 'materials';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, controlSelectedRowKeys, materialsConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+
+ tableDataRow.sParentId = masterData.sId;
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品材料sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName;
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ if (iControlIndex > -1 && tableDataRow.sType !== '2') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '2') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+
+ /* 选择成品工序点确定 */
+ /* 工单从表选中selectedRowKeys */
+ handleSelectFinalProcess = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ const targetname = 'process';
+ const {
+ [`${targetname}Data`]: tableData, [`${targetname}Config`]: tableConfig, controlSelectedRowKeys, sModelsId, token,
+ materialsConfig, processConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ if (name === 'chooseProductProcess') {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ /* 通过slaveFinalSelectedRowKeys找到slaveData数据 */
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ tableDataRow.sType = '3';
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ }
+ if (targetname === 'process') {
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = 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;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+
+ // 成品工序的配套工序带入产品名称-开始
+ processRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ processRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ processRow.sCombineProductNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // processRow.sParentProcessId = item.sId;
+ // 成品工序的配套工序带入产品名称-结束
+
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+
+ // 成品工序的配套工序带入产品名称-开始
+ processRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ processRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ processRow.sCombineProductNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // processRow.sParentProcessId = item.sId;
+ // 成品工序的配套工序带入产品名称-结束
+
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ const processLen = tableData.filter(item => item.sType !== '3').length + 1; /* 工序序号自增 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ const processLen = tableData.filter(item => item.sType === '3').length + 1; /* 工序序号自增 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${targetname}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ }
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled, slaveData } = this.props;
+ let { packData } = this.props;
+ if (name === 'control' && sName === 'sCombinedMemo') {
+ const packSelectedRowKeys = [];
+
+ /* 合并从表相同客户、产品数据 */
+ const slaveDataMerge = [];
+ slaveData.forEach((item) => {
+ const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ slaveDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ slaveDataMerge[iIndex].dProductQty = dProductQtyNew;
+ slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+
+ /* 合并合版表相同客户、产品数据 */
+ const packDataMerge = [];
+ packData.forEach((item) => {
+ const iIndex = packDataMerge.findIndex(child => commonUtils.isNotEmptyObject(item.sCombinePartsName) && child.sCombinePartsName === item.sCombinePartsName && commonUtils.isNotEmptyObject(item.sProductId) && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ packDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ packDataMerge[iIndex].dProductQty = dProductQtyNew;
+ packDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ packDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+ if (commonUtils.isNotEmptyArr(packDataMerge)) {
+ packData = packDataMerge;
+ }
+
+ /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */
+ if (commonUtils.isNotEmptyArr(slaveDataMerge)) {
+ slaveDataMerge.forEach((item, index) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(item);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) {
+ packSelectedRowKeys.push(itemPack.sId);
+ }
+ }
+ }
+ });
+ } else {
+ const tableDataRow = this.handlePackDataAdd(item, index, sId, 'add');
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ packData.push(tableDataRow);
+ }
+ }
+ });
+ }
+ this.props.onSaveState({
+ productCombinationVisible: true,
+ sCombinationsControlId: sId, /* 合版产品控制表sId */
+ enabled,
+ packSelectedRowKeys,
+ packData,
+ });
+ }else if (name === 'control' && sName === 'sPositiveColor' || sName === 'sOppositeColor') {
+ this.props.onViewChoose(name, sName, record);
+ } else if (name === 'sParam' && sName === 'sParamValue') {
+ this.props.onViewChoose(name, sName, record);
+ } else if (name === 'process' && (sName === 'sCombinePartsNameNew'|| sName === 'sCombineProductNameNew')) {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '3') { /* 成品工序跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ } else { /* 成品工序跟着合版表走 */
+ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack, index) => {
+ let slaveDataRow = {};
+ let packRowAdd = {};
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId);
+ if (iIndex > -1) {
+ slaveDataRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveDataRow)) {
+ packRowAdd = this.handlePackDataAdd(slaveDataRow);
+ }
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ processSelectedRowId: sId, /* 工序表选中行sId */
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'materials' && (sName === 'sCombinePartsNameNew'|| sName === 'sCombineProductNameNew')) {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '2') { /* 成品材料跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ materialsSelectedRowId: sId, /* 工序表选中行sId */
+ openTable: 'materials',
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'process' && sName === 'sColorSerialMemo') {
+ this.props.onViewChoose(name, sName, record);
+ } else if(name === 'process' && sName === 'sParams') {
+ if (this.bSWorkOrderParams) {
+ this.props.onSaveState({
+ sWorkParamsModalVisible: true
+ });
+ } else {
+ this.props.onViewClick(name, sName, record);
+ }
+ }
+ }
+ handlePackDataAdd= (item, index, sControlId, handleType) => {
+ const tableDataRow = {};
+ if (handleType === 'add') {
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.sSlaveId = item.sId;
+ tableDataRow.iOrder = item.iOrder;
+ }
+ tableDataRow.sParentId = item.sParentId;
+ if (commonUtils.isNotEmptyObject(sControlId)) {
+ tableDataRow.sControlId = sControlId;
+ }
+ // if (commonUtils.isNotEmptyObject(index)) {
+ // tableDataRow.iOrder = index + 1;
+ // }
+ tableDataRow.sProductId = item.sProductId; /* 产品id */
+ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */
+ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */
+ tableDataRow.sProductName = item.sProductName; /* 产品名称 */
+ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (bProductQtySelf) {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */
+ }
+ tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */
+ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */
+ return tableDataRow;
+ }
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = '';
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = '';
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace('.', '');
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace('.', '');
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ return parseFloat(sPartOrder1 + sOrder1) - parseFloat(sPartOrder2 + sOrder2);
+ // return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2);
+ });
+ return processData;
+ };
+ /* 控制排序 */
+ orderData = (e, name, type) => {
+ const {
+ [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app,
+ } = this.props;
+ let { [`${name}Data`]: processData } = this.props;
+ // const processDataFiltered = processData.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1);
+ const processDataFiltered = processData;
+ if (name === 'process') {
+ if (commonUtils.isEmptyArr(tableselectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */
+ return;
+ }
+ if (commonUtils.isEmptyArr(processData)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */
+ return;
+ }
+ const processNew = processData.filter((item) => { /* 获取勾选数据集 */
+ return tableselectedRowKeys.indexOf(item.sId) > -1;
+ });
+ if (commonUtils.isEmptyArr(processNew)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */
+ return;
+ }
+ const len = processDataFiltered.length;
+ const newLen = processNew.length;
+ let num = 0.01;/* 循环增加体 */
+ let targetiOrder = -1;
+ // 上下排序修改为两个item的order对调
+ if (type === 1) { /* 上移 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[iIndex - 1].iOrder - 1; /* 目标排序号 */
+ }
+ } else if (type === 2) { /* 下移 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[iIndex + 1].iOrder;
+ }
+ } else if (type === 0) { /* 置顶 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[0].iOrder - 1;
+ }
+ } else if (type === 3) { /* 置底 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */
+ return;
+ } else {
+ targetiOrder = 999;
+ }
+ }
+ processNew.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.sType)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */
+ return;
+ }
+ const index1 = processData.findIndex(item1 => item1.sId === item.sId);
+ processData[index1] = { ...item, iOrder: targetiOrder + num };
+ num += 0.01;
+ });
+ processData = this.sortData(controlData, processData);
+ const processSortData = this.props.orderNum(processData, controlSelectedRowKeys);
+ if (commonUtils.isNotEmptyArr(processSortData)) {
+ processData = processSortData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: processData });
+ }
+ };
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ if (name === 'slave') {
+ const {
+ sModelsId, masterConfig, controlConfig, masterData, [`${name}Data`]: tableData, controlData: controlDataOld, packData,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iProductQtyIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iProductQtyIndex > -1) {
+ bProductQtySelf = true; /* 生产数量无需叠加 */
+ }
+ }
+ if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') {
+ let dPartsQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ /* 找到所有一级部件 */
+ const controlRootData = commonUtils.isNotEmptyArr(controlDataOld) ? controlDataOld.filter(item => commonUtils.isEmpty(item.sControlParentId)) : [];
+ if (commonUtils.isNotEmptyArr(controlRootData)) {
+ controlRootData.forEach((item) => {
+ let itemNew = { ...item };
+ /* 父级的dPartsQty为dPartsQty */
+ itemNew.dPartsQty = dPartsQty;
+ itemNew = this.singlePQtyChange(itemNew);
+ /* 找到子部件 */
+ const controlChildData = controlDataOld.filter(itemOld => commonUtils.isNotEmptyObject(itemOld.sAllId) && itemOld.sAllId.indexOf(item.sId) > -1 && itemOld.sId !== item.sId);
+ if (commonUtils.isNotEmptyArr(controlChildData)) {
+ const { dMachineQty } = itemNew;
+ controlChildData.forEach((child) => {
+ let tableDataRow = { ...child };
+ const iIndex = controlDataOld.findIndex(item => item.sId === child.sId);
+ if (iIndex > -1) {
+ /* 子部件部件数量为父部件上机数量 */
+ tableDataRow.dPartsQty = dMachineQty;
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ controlDataOld[iIndex] = tableDataRow;
+ }
+ });
+ }
+ const addStata = {};
+ addStata.dPartsQty = dPartsQty;
+ const iRootIndex = controlDataOld.findIndex(itemControl => itemControl.sId === item.sId);
+ controlDataOld[iRootIndex] = { ...controlDataOld[iRootIndex], ...itemNew };
+ });
+ }
+ addState.controlData = controlDataOld;
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ let tableDataRowNew = {};
+ tableDataRowNew.sProductId = '';
+ tableDataRowNew.sProductNo = '';
+ tableDataRowNew.sProductName = '';
+ tableData[iIndex] ={...tableDataRowNew, ...tableDataRow } ;
+ } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName')) {
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', sFieldName);
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (tableDataRow.handleType === 'add' && iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ }
+ /* 从表产品改变带动合版表产品与部件表合版信息 同步改变 */
+ const controlDataNew = commonUtils.isNotEmptyArr(addState.controlData) ? addState.controlData : controlDataOld;
+ /* 如果packData只有一条数据 则同步合版数据 及增加控制表合版备注 */
+ if (commonUtils.isNotEmptyArr(packData) && packData.length === 1 && packData[0].sSlaveId === tableDataRow.sId) {
+
+ let packDataRow = packData[0];
+ const sControlId = packDataRow.sControlId;
+ packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId);
+ packDataRow.dCombineQty = 1;
+ packData[0] = { ...packData[0], ...packDataRow }
+
+ if (commonUtils.isNotEmptyObject(packData[0])) {
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[0];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ // const controlDataNew =commonUtils.isNotEmptyArr(addState.controlData)? addState.controlData: controlDataOld;
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ addState.controlData = controlDataNew;
+ }
+ }
+ } else if (packData.length > 1) {
+ const packFilterData = packData.filter(item => item.sSlaveId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData)) {
+ packFilterData.forEach((itemPack, index) => {
+ let packDataRow = itemPack;
+ const sControlId = packDataRow.sControlId;
+ packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId);
+ // packDataRow.dCombineQty = 1;
+ const pIndex = packData.findIndex(item => item.sId === itemPack.sId);
+ if (pIndex > -1){
+ packData[pIndex] = { ...packData[pIndex], ...packDataRow}; /* 根据选中的从表 找到所有的合版数据,将合版数据中的产品换成切换后的产品 */
+ let sCombinedMemoStr = ''; /* 将控制表合版信息中的产品换成新选择的产品 */
+ if(commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ sCombinedMemoStr = controlDataNew[iControlIndex].sCombinedMemo;
+ if(sCombinedMemoStr) {
+ const sCombinedMemoArr = commonUtils.isNotEmptyObject(sCombinedMemoStr) ? JSON.parse(sCombinedMemoStr): {};
+ if(commonUtils.isNotEmptyArr(sCombinedMemoArr)) {
+ const iIndex = sCombinedMemoArr.findIndex(item => item.sId === itemPack.sId);
+ if(iIndex > -1){
+ const addState ={};
+ addState.sProductId = tableDataRow.sProductId; /* 产品id */
+ addState.sCustomerId = tableDataRow.sCustomerId; /* 客户id */
+ addState.sCustomerName = tableDataRow.sCustomerName; /* 客户名称 */
+ addState.sProductName = tableDataRow.sProductName; /* 产品名称 */
+ addState.sProductNo = tableDataRow.sProductNo; /* 产品编号 */
+ sCombinedMemoArr[iIndex] ={...sCombinedMemoArr[iIndex], ...addState};
+ const sCombinedMemo = commonUtils.isNotEmptyArr(sCombinedMemoArr) ? JSON.stringify(sCombinedMemoArr) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ controlDataNew[iControlIndex].sCombinedMemo =sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ }
+ }
+ }
+ }
+ }
+ });
+ addState.controlData = controlDataNew;
+ }
+
+ }
+ addState.packData = packData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, ...addState, calculated: false });
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsType, packData,
+ } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dPartsQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ } else if ( sFieldName === 'dSinglePQty' ) { /* 排版数改变时 如果该控制表合版数据只有一条 则改变packData该条的拼版数 改变备注 */
+ if(commonUtils.isNotEmptyArr(packData)){
+ const packFilterData = packData.filter(item => item.sControlId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length ===1 ) {
+ const iIndex = packData.findIndex(itemPack => itemPack.sId === packFilterData[0].sId);
+ const addState ={};
+ if(tableDataRow.dSinglePQty > 0){
+ addState.dCombineQty = tableDataRow.dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ if(iIndex > -1) {
+ packData[iIndex] ={ ...packData[iIndex] , ...addState};
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packData[iIndex];
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ }
+ }
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ /* 上机数量改变时,子级部件数量同步改变 */
+ const { dMachineQty } = tableDataRow;
+ /* 查找该节的所有子节点,将上机数量改为部件数量 */
+ tableData.forEach((item, index) => {
+ if (commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableDataRow.sId) > -1 && item.sId !== tableDataRow.sId) {
+ const addstate = {};
+ addstate.dPartsQty = dMachineQty;
+ tableData[index] = { ...tableData[index], ...addstate };
+ }
+ });
+ } else if (sFieldName === 'dMachineLength' || sFieldName === 'dMachineWidth') { /* 控制表长宽改变 关联材料表type为0的上机长宽对应改变 */
+ if (commonUtils.isNotEmptyArr(materialsDataOld)) {
+ materialsDataOld.forEach((item, index) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === tableDataRow.sId && itemNew.sType === '0') {
+ itemNew.sMachineStyle = `${tableDataRow.dMachineLength.toString()}*${tableDataRow.dMachineWidth.toString()}`;
+ itemNew.handleType = commonUtils.isEmpty(itemNew.handleType) ? 'update' : itemNew.handleType;
+ }
+ materialsDataOld[index] = { ...materialsDataOld[index], ...itemNew };
+ });
+ }
+ } else if (sModelsType.includes('manufacture/workOrder')) {
+ /* 计算材料开数 */
+ // if (sFieldName === 'dMachineLength' || sFieldName === 'dMachineWidth' || sFieldName === 'dMaterialsLength' || sFieldName === 'dMaterialsWidth') {
+ // let dProductLength = 0; /* 产品长 */
+ // let dProductWidth = 0; /* 产品宽 */
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // dProductLength = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[0] : 0;
+ // dProductLength = commonUtils.convertStrToNumber(commonUtils.isNull(dProductLength, 0)); /* 产品长 */
+ // dProductLength = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductLength : 0; /* 产品长 */
+ // dProductWidth = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[1] : 0;
+ // dProductWidth = commonUtils.convertStrToNumber(commonUtils.isNull(dProductWidth, 0)); /* 产品宽 */
+ // dProductWidth = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductWidth : 0; /* 产品宽 */
+ // }
+ // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ // const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ // const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+ //
+ // /* 算材料开数 */
+ // const mapMaterialsKQty = this.props.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ // if (commonUtils.isNotEmptyObject(mapMaterialsKQty)) {
+ // const dMaterialsKQty = mapMaterialsKQty.totalNum;
+ // tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ // }
+ //
+ // /* 算拼版数 */
+ // if (dProductLength !== 0 && dProductWidth !== 0) {
+ // const mapSinglePQty = this.props.onResolveMachineComposing(dProductLength, dProductWidth, dMachineLength, dMachineWidth);
+ // if (commonUtils.isNotEmptyObject(mapSinglePQty)) {
+ // const dSinglePQty = mapSinglePQty.totalNum;
+ // tableDataRow.dSinglePQty = dSinglePQty;
+ // }
+ // }
+ // }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+ if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = this.props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, calculated: false, packData,
+ });
+ } else if (name === 'materials') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, app, sModelsId,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === 'sType') {
+ if (tableData[iIndex].sType === '2') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, calculated: false });
+ } else if (name === 'process') {
+ const {
+ [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, processConfig, token,
+ } = this.props;
+ let { processDelData, materialsDelData } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let iMaterialsIndex = -1;
+ let sControlId = '';
+ if (iIndex > -1) {
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) {
+ const bProcessAssort = false;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = '工艺参数';
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = '';
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = 'del';
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ if (tableData[iIndex].sType === '3') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ }
+ }
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState, calculated: false,
+ });
+ } else if (name === 'pack') {
+ const { packData, packSelectedRowKeys } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ packData[iIndex] = tableDataRow;
+ if (sFieldName === 'dCombineQty' || sFieldName === 'dProductQty') {
+ this.handleGetdFactProductQty(packSelectedRowKeys, packData);
+ }
+ this.props.onSaveState({ packData, calculated: false });
+ } else {
+ this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+ /* 重新计算实际生产数 */
+ handleGetdFactProductQty = (selectedRowKeys, tableData) => {
+ const maxArr = [];
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const tableFilter = tableData.filter(item => selectedRowKeys.includes(item.sId) && item.dCombineQty > 0);
+ if (selectedRowKeys.length === 1 || tableFilter.length === 1) { /* 当选中行只有一行时,实际生产数等于生产数 */
+ const iSlaveIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ const dProductQty = tableData[iSlaveIndex].dProductQty;
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty: dProductQty };
+ }
+ } else {
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ const { dCombineQty, dProductQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ let dNum = commonUtils.convertFixNum(dCombineQty !== 0 ? dProductQty / dCombineQty : 0, 2); /* 生产数/排版数 取最大值 */
+ dNum = Math.ceil(dNum);
+ maxArr.push(dNum);
+ }
+ }
+ }
+ let dMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ dMax = Math.max(...maxArr);
+ }
+ dMax = commonUtils.isNotNum(dMax) ? 0 : dMax;
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ let { dCombineQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ dCombineQty = commonUtils.isNotNum(dCombineQty) ? 0 : dCombineQty;
+ const dFactProductQty = commonUtils.convertFixNum(dCombineQty * dMax, 2); /* 实际生产数 =最大值 * 排版数 */
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty };
+ }
+ }
+ }
+ }
+ this.props.onSaveState({ packData: tableData });
+ }
+ }
+ handleCancelFastOrderModal = () => {
+ this.props.onSaveState({ fastOrderModalVisible: false, workOrderAllprogress: 0, Loading: false });
+ };
+ handleCancelProcessChooseModal = () => {
+ this.props.onSaveState({ processChooseVisible: false });
+ };
+ handleCancelMaterialsChooseModal = () => {
+ this.props.onSaveState({ materialsChooseVisible: false });
+ };
+ handleCancelProductMaterialsChooseModal = () => {
+ this.props.onSaveState({ productMaterialsChooseVisible: false });
+ };
+ handleCancelProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+ handleCancelProductCombinationChooseModal = () => {
+ this.props.onSaveState({ productCombinationVisible: false });
+ };
+
+ handleSelectProductCombination= () => {
+ const {
+ controlData, sCombinationsControlId, packData, enabled, app,
+ } = this.props;
+ let { packSelectedRowKeys: selectedRowKeys } = this.props;
+ let sCombinedMemo = '';
+ const tableCombineSelectedData = [];
+ selectedRowKeys = commonUtils.isNotEmptyArr(selectedRowKeys) ? selectedRowKeys : [];
+ const maxArr = [];
+ const maxMap = new Map();
+ for (const sId of selectedRowKeys) {
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ const tableDataRow = packData[iIndex];
+ const {
+ sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName,
+ } = tableDataRow;
+ if (dCombineQty > 0) { /* 排版数大于0时,把数据带回到控制表 */
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ maxMap.set(dFactProductQty, jsonObj);
+ maxArr.push(dFactProductQty);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseInputQty'));/* 请填写合拼排版数 */
+ return;
+ }
+ }
+ }
+
+ /* 没勾选的合版数据 合拼排版数置为0 */
+ const packNoChooseData = packData.filter(item => item.sControlId === sCombinationsControlId && !selectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(packNoChooseData) && packNoChooseData.length > 0) {
+ packNoChooseData.forEach((item) => {
+ const iIndex = packData.findIndex(child => child.sId === item.sId);
+ if (iIndex > -1) {
+ packData[iIndex].dCombineQty = 0;
+ packData[iIndex].handleType = commonUtils.isEmpty(packData[iIndex].handleType) ? 'update' : packData[iIndex].handleType;
+ }
+ });
+ }
+
+ let iMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ iMax = Math.max(...maxArr);
+ }
+ sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ const iControlIndex = controlData.findIndex(item => item.sId === sCombinationsControlId);
+ if (iControlIndex > -1 && enabled) {
+ const addState = {};
+ const maxObj = maxMap.get(iMax);
+ let { handleType } = controlData[iControlIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinedMemo = sCombinedMemo;
+ addState.dPartsQty = iMax;
+ addState.dSinglePQty = commonUtils.isNotEmptyObject(maxObj) ? maxObj.dCombineQty : 0;
+ controlData[iControlIndex] = { ...controlData[iControlIndex], ...addState };
+ }
+ this.props.onSaveState({
+ productCombinationVisible: false,
+ packData,
+ controlData,
+ });
+ };
+ handleCancelCombinePartsChooseModal = () => {
+ this.props.onSaveState({ combinePartsChooseVisible: false });
+ };
+ /* 选择合版部件名称 */
+ handleSelectCombineParts = async (name, selectConfig, selectData) => {
+ const {
+ processData, processSelectedRowId, materialsData, materialsSelectedRowId, openTable,
+ } = this.props;
+ let sCombinedStr = '';
+ let sCombinedId = '';
+ if (selectData !== undefined) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ const { sId } = item;
+ let { sProductName } = item;
+ let { sCombinePartsName } = item;
+ sProductName = commonUtils.isNotEmptyObject(sProductName) ? sProductName : '';
+ sCombinePartsName = commonUtils.isNotEmptyObject(sCombinePartsName) ? sCombinePartsName : '';
+ // sCombinedStr += `${sCustomerName}-${sProductName}-${sCombinePartsName},`;
+ if (commonUtils.isNotEmptyObject(sCombinePartsName)) {
+ sCombinedStr += `${sProductName}-${sCombinePartsName},`;
+ sCombinedId += `${sId},`;
+ } else {
+ sCombinedStr += `${sProductName},`;
+ sCombinedId += `${sId},`;
+ }
+ });
+ // sCombinedStr = `${selectData.length.toString()} `;
+ if (commonUtils.isNotEmptyObject(sCombinedStr)) {
+ sCombinedStr = commonUtils.isNotEmptyObject(sCombinedStr) ? sCombinedStr.substr(0, sCombinedStr.length - 1) : '';
+ }
+ if (commonUtils.isNotEmptyObject(sCombinedId)) {
+ sCombinedId = commonUtils.isNotEmptyObject(sCombinedId) ? sCombinedId.substr(0, sCombinedId.length - 1) : '';
+ }
+ }
+ if (commonUtils.isNotEmptyObject(openTable) && openTable === 'materials') {
+ const iIndex = materialsData.findIndex(item => item.sId === materialsSelectedRowId);
+ if (iIndex > -1) {
+ if(!materialsData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = materialsData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ materialsData[iIndex] = { ...materialsData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ materialsData, combinePartsChooseVisible: false });
+ } else {
+ const iIndex = processData.findIndex(item => item.sId === processSelectedRowId);
+ if (iIndex > -1) {
+ if(!processData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ processData[iIndex] = { ...processData[iIndex], ...addState };
+
+ // 查询是否有配套工序 sParentProcessId字段判断--开始
+ const {
+ sModelsId, token,
+ } = this.props;
+ // const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ // const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ let returnProcessAssort = [];
+ // if (dataProcessAssort.code === 1) {
+ // returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ // }
+
+ returnProcessAssort.filter(item => item.sParentId === processData[iIndex].sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === processData[iIndex].sControlId);
+ if (iProcessIndex > -1) {
+ processData[iProcessIndex] = { ...processData[iProcessIndex], ...addState };
+ }
+ }));
+ // 查询是否有配套工序 sParentProcessId字段判断--结束
+ }
+ this.props.onSaveState({ processData, combinePartsChooseVisible: false });
+ }
+ }
+ };
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+ /** 复制 */
+ handleTableCopy = (name, isWait) => {
+ /* 部件树节点复制功能 */
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination, packData, slaveData,
+ } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = commonUtils.createSid();
+ tableDataRow.sId = newId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sSrcSlaveId = '';
+ tableDataRow.sSrcId = '';
+ tableDataRow.dSrcQty = null;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
+ tableDataRow.sMaterialsMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
+ tableDataRow.sProcessMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) {
+ tableDataRow.sCombinedMemo = '';
+ }
+ tableData.push(tableDataRow);
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys, treeSelectedKeys: tableSelectedNewRowKeys, packData, ...treeState,
+ });
+ }
+ }
+ } else if (name === 'slave') {
+ const { packData, controlData } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn('请选择数据!'); // 请选择从表数据
+ return;
+ }
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = this.props.onDataRowCopy(name, true);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.forEach((item) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(tableDataRow, tableData.length, item.sId, 'add');
+ // packDataRow.dCombineQty = 1;
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ packData.push(packDataRow);
+ }
+ });
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, packData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 },
+ });
+ }
+ }
+ } else {
+ this.props.onDataRowCopy(name, isWait);
+ }
+ }
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData, app, packData, slaveData,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`;
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = tableDataRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) {
+ tableDataRow.sCombinedMemo = '';
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSrcProcessTbId = item.sId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ materialsRow.bPurchaseApplyComplete = 0;
+ materialsRow.dPurchaseApplyAuxiliaryQty = 0;
+ materialsRow.dPurchaseApplyQty = 0;
+ materialsRow.bPurchaseComplete = 0;
+ materialsRow.dPurchaseAuxiliaryQty = 0;
+ materialsRow.dPurchaseQty = 0;
+ materialsRow.dProductionAuxiliaryQty = 0;
+ materialsRow.dProductionQty = 0;
+ materialsRow.bProductionComplete = 0;
+
+ materialsRow.dProductionApplyAuxiliaryQty = 0;
+ materialsRow.dProductionApplyQty = 0;
+ materialsRow.bProductionApplyComplete = 0;
+
+ materialsRow.bComComplete = 0;
+ materialsRow.dComAuxiliaryQty = 0;
+ materialsRow.dComQty = 0;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ ...treeState,
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { total: tableData.length, current: 9999 },
+ [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys,
+ treeSelectedKeys: tableSelectedNewRowKeys,
+ materialsSelectedRowKeys: [],
+ materialsData,
+ processData,
+ packData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+
+ /* 计算材料开数 */
+ // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ // const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ // const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+ // const sResult = this.props.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ // if (commonUtils.isNotEmptyObject(sResult)) {
+ // const dMaterialsKQty = sResult.totalNum;
+ // tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ // }
+
+ return tableDataRow;
+ };
+
+ handleCancel1 = () => {
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+
+ handleOk = async (flag, tmpCheck, isWait) => {
+ const {
+ sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig,
+ } = this.props;
+ const { currentPane } = app;
+ const bCkxTmpCheck = app.systemData.filter(item => item.sName === 'CkxTmpCheck')[0].sValue;
+ if (bCkxTmpCheck === '1') {
+ const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait);
+ if (returnData.code === 1) {
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ } else {
+ const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray;
+ if (commonUtils.isEmptyObject(dataPersonArray)) {
+ checkPersonData.forEach((item) => {
+ dataPersonArray.push(item.sUserId);
+ });
+ }
+ const dataPersonString = dataPersonArray.join(',');
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const value = {
+ sProName: 'Sp_System_AutoSendCheckMsg',
+ paramsMap: {
+ sFormGuid: sModelsId,
+ sBillKey: currentPane.sProcName,
+ sTbName: masterConfig.sTbName,
+ sGuid: masterData.sId,
+ sBillNo: masterData.sBillNo,
+ sCheckCondition: checkConditions,
+ sMemo: '',
+ sCheckModelGuid: sCheckModelId,
+ sCheckPerson: dataPersonString,
+ },
+ };
+
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ const noCheckMsg = commonFunc.showMessage(app.commonConst, 'NoCheckMsg'); /* 您有消息待审核 */
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.handleSendSocketMessage('examine', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`;
+ const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId };
+ const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data;
+ if (returnCanCheckBill.code === 1) {
+ if (returnCanCheckBill.dataset.rows[0].iCount === 1) {
+ this.props.onDataAudit(1, 1);
+ this.props.onSaveState({
+ visible: false,
+ });
+ return;
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnCanCheckBill);
+ }
+ this.props.handleSendSocketMessage('reflush', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ }
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ let { controlSelectedRowKeys } = this.props;
+ controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ this.props.onTreeSelect(name, checkedKeys, e);
+ this.props.onSaveState({
+ controlSelectedRowKeys,
+ });
+ };
+ handleTreeExpandSingle = (expanded, record) => {
+ let { controlShowExpandedRowKeys } = this.props;
+ let expandKey = record.sId;
+ if(commonUtils.isEmpty(controlShowExpandedRowKeys)) {
+ controlShowExpandedRowKeys ={};
+ controlShowExpandedRowKeys.expandedRowKeys = [];
+ }
+ const idx = controlShowExpandedRowKeys.expandedRowKeys.indexOf(expandKey);
+ let arr = JSON.parse(JSON.stringify(controlShowExpandedRowKeys.expandedRowKeys));
+ if (idx !== -1) {
+ arr.splice(idx, 1);
+ } else {
+ arr.push(expandKey);
+ }
+ this.props.onSaveState({
+ controlShowExpandedRowKeys: { expandedRowKeys: arr }
+ })
+ };
+
+ handleTabChange = (value) => {
+ this.setState({
+ currentTab: +value
+ });
+ }
+
+ handleTabChange2 = (value) => {
+ this.setState({
+ currentTab2: +value
+ });
+ }
+
+ handleActiveKey = (value) => {
+ this.setState({
+ activeKey: value
+ });
+ }
+
+ handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ let sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) {
+ sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`;
+ }
+ }
+ processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr };
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+
+ handleParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ sParamData,
+ enabled,
+ } = this.props;
+ if(enabled) {
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ if (commonUtils.isNotEmptyArr(sParamData)) {
+ const sParamSeletedData = sParamData.filter(item => item.bSelfCbx);
+ if(commonUtils.isNotEmptyObject(sParamSeletedData)) {
+ const sParamJsonData = JSON.stringify(sParamSeletedData);
+ processData[processSelectDataIndex].sParams = sParamJsonData;
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sParamsModalVisible: false,
+ });
+ } else {
+ this.props.onSaveState({
+ sParamsModalVisible: false,
+ });
+ }
+ }
+
+ handleDrag = (data) => {
+ let { controlSelectedRowKeys } = this.props;
+ if(this.props.enabled && controlSelectedRowKeys.length) {
+ if(true) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData;
+
+ // let preDataIndex = 0;
+ // let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ // preDataIndex = preDataIndex + 1;
+ // return {...item, iOrder: preDataIndex}
+ // });
+
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = afterData;
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ } else {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+ let inDataIndex = 0;
+ let inData = data.filter(item => item.sType === '1' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ inDataIndex = inDataIndex + 1;
+ return {...item, iOrder: inDataIndex}
+ });
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType === '2' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(inData, afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ }
+ }
+ }
+
+ handleProductDrag = (data) => {
+ if(this.props.enabled) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let dataIndex = 0;
+ const allData = data.filter(item => item.sType === '3' && item.sCombinePartsName === this.props.slaveSelectedRowKeys[0]).map((item) => {
+ dataIndex = dataIndex + 1;
+ return {...item, iOrder: dataIndex, handleType: item.handleType ? item.handleType : 'update'};
+ });
+ processData = processData.filter(item => item.sCombinePartsName !== this.props.slaveSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData });
+ }
+ }
+
+ setModalId = (name) => {
+ this[`${name}_id`] = new Date().getTime().toString();
+ }
+
+ getModalId = (name) => {
+ return this[`${name}_id`];
+ }
+
+ // 自定义params参数处理
+ handleGetParamsValue = ({ sName, sValue, record = {} }) => {
+ const jsonData = commonUtils.convertStrToObj(sValue, []);
+ if (sName === 'sParams') {
+ const { sWorkOrderParam: sWorkOrderParamStr } = record;
+ const sWorkOrderParam = commonUtils.convertStrToObj(sWorkOrderParamStr, {});
+ const sWorkOrderData = jsonData.find(item => item.sParamType === 'sWorkOrder') || {};
+ const { data = {} } = sWorkOrderData;
+ const result = [];
+ Object.keys(data).forEach(key => {
+ if (sWorkOrderParam[key] !== undefined) {
+ if (sWorkOrderParam[key] === "电化铝BOM" || sWorkOrderParam[key] === "电化铝版本") {
+ result.push(`${sWorkOrderParam[key]}: ${record.sAlumiteBomBillNo}`);
+ } else {
+ result.push(`${sWorkOrderParam[key]}: ${data[key]}`);
+ }
+ }
+ })
+ return result.join(';');
+ }
+
+ return sValue;
+ }
+
+/**
+ * 复制, 控制弹窗编辑
+ * @param {*} tableName
+ * @returns
+ */
+ getTableBtnState = (tableName) => {
+ let result = false;
+ const { enabled, masterData } = this.props;
+ result = enabled;
+
+ const { sInstruct: sInstructStr } = this.props[`${tableName}Config`] ;
+ const sInstruct = commonUtils.convertStrToObj(sInstructStr, {});
+ const { data = [] } = sInstruct;
+
+ const btnConfig = data.find(item => item && item.name === tableName && item.enabled !== undefined);
+ if (btnConfig && result) {
+ if (!Array.isArray(this.props[`${tableName}Data`]) || !Array.isArray([`${tableName}SelectedRowKeys`])) {
+ return ;
+ }
+ const { enabled: enabledContent } = btnConfig;
+ if (typeof enabledContent === 'boolean') {
+ result = enabledContent;
+ } else if (enabledContent) {
+ const tempData = {
+ props: {
+ enabled
+ },
+ masterData,
+ [tableName]: this.props[`${tableName}Data`]?.find(i =>
+ i && (this.props[`${tableName}SelectedRowKeys`].includes(i.sId)
+ || this.props[`${tableName}SelectedRowKeys`].includes(i.sSlaveId)))
+ || {},
+ };
+ let strNew = enabledContent;
+ Object.keys(tempData).forEach(key => {
+ const reg = new RegExp(`${key}\\.`, "g");
+ strNew = strNew.replace(reg, `tempData["${key}"].`);
+ });
+ try {
+ const evalStr = eval("`" + strNew + "`");
+ result = !!eval(evalStr);
+ console.log('=====表格行按钮状态结果', result, { btnName, enabledContent, tempData, strNew, evalStr });
+ } catch (error) {
+ console.log('=====表格行按钮状态错误', { error, enabledContent, strNew, tempData });
+ }
+ }
+ }
+ return result;
+ }
+
+ render() {
+ const { pageLoading, masterData, fastOrderModalVisible } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ const addState = {};
+ const { processConfig = {} } = this.props;
+ const { gdsconfigformslave = [] } = processConfig;
+ const bSWorkOrderParams = gdsconfigformslave.some(item => item.sName === 'sParams' && item.sControlName === 'sWorkOrder');
+ if (bSWorkOrderParams) {
+ this.bSWorkOrderParams = true;
+ addState.onGetParamsValue = this.handleGetParamsValue;
+ }
+ return (
+
+
+
+ );
+ }
+}
+
+const WorkOrderComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ masterConfig: masterConfigOld,
+ slaveConfig,
+ slaveData,
+ slavePagination,
+ sModelsId,
+ sTabId,
+ app,
+ // AutoTableHeight,
+ colorConfigGrdVisible,
+ visible,
+ checkConditions,
+ checkPersonData,
+ Loading,
+ sModelsType,
+ productCombinationVisible,
+ combinePartsChooseVisible,
+ sisColorChooseVisible,
+ // currentTab,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ isLayout,
+ packConfig,
+ formData,
+ materialsInfoList,
+ materialsChildInfoList,
+ colorConfig,
+ visionConfig,
+ processConfig,
+ } = props;
+
+ const { currentPane } = app;
+ const bFlow = currentPane?.bFlow; /* 是否需要展示审批流程信息 */
+
+ // 关联slave合版进行筛选control的数据
+ let controlTableData = [];
+ if(commonBusiness.getTableTypes('control', props).data && commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.slaveData)) {
+ const iSlaveIndex = props.slaveData.findIndex(item => item.sId === props.slaveSelectedRowKeys[0]);
+ const slaveSelectedRow = props.slaveData[iSlaveIndex] || {sProductNo: 0};
+ if(iSlaveIndex !== -1) {
+ commonBusiness.getTableTypes('control', props).data.forEach(item => {
+ if(item.sCombinedMemo && item.sCombinedMemo !== '' && item.sCombinedMemo !== '合版信息') {
+ const sCombinedMemoArr = commonUtils.isJSON(item.sCombinedMemo) ? JSON.parse(item.sCombinedMemo) : [];
+ const getSlaveSelectedRowChildren = (allData, sId) => {
+ let result = [];
+ allData.forEach(item => {
+ if (item.sFatherSlaveId === sId) {
+ result.push(item);
+ result = [...result, ...getSlaveSelectedRowChildren(allData, item.sId)]
+ }
+ });
+ return result;
+ };
+ const slaveSelectedRowChildren = getSlaveSelectedRowChildren(props.slaveData, slaveSelectedRow.sId);
+ const slaveRows = [slaveSelectedRow, ...slaveSelectedRowChildren];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo && slaveRows.some(slaveRow => slaveRow.sProductNo === item.sProductNo)).length;
+ if(len) {
+ controlTableData.push(item);
+ }
+ } else {
+ controlTableData.push(item);
+ }
+ })
+ } else {
+ controlTableData = JSON.parse(JSON.stringify(commonBusiness.getTableTypes('control', props).data));
+ // controlTableData = commonBusiness.getTableTypes('control', props).data.slice(0);
+ }
+ }
+ // 之前代码默认会选中第一行,第一行可能已经被筛选掉,需要判断
+ if(controlTableData.length && props.controlSelectedRowKeys[0] !== controlTableData[0].sId && controlTableData.map(item => item.sId).indexOf(props.controlSelectedRowKeys[0]) === -1) {
+ if(commonUtils.isNotEmptyArr(props.slaveSelectedRowKeys)) {
+ props.onSaveState({
+ controlSelectedRowKeys: [controlTableData[0].sId]
+ });
+ }
+ }
+
+ // 计算控制表记录数量,计算sticky高度
+ const controlLen = controlTableData.length ? commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId').length : 0;
+ const slaveLen = props.slaveData ? props.slaveData.length : 0;
+ let stickyHeight = 0;
+ let stickyTabHeight = 0;
+ if(isLayout) {
+ if (controlLen && controlLen < 5) {
+ stickyTabHeight += (slaveLen * 29) + 40;
+ stickyHeight += (controlLen * 29) + 40 + 30 - 4;
+ } else {
+ stickyHeight += 162;
+ }
+ stickyHeight += 40;
+ } else {
+ if(props.currentTab === 1) {
+ if (controlLen && controlLen < 5) {
+ stickyHeight = (controlLen * 29) + 40 + 30 - 4; // 153
+ } else {
+ stickyHeight = 162 + 30;
+ }
+ } else {
+ if (slaveLen && slaveLen < 5) {
+ stickyHeight = (slaveLen * 29) + 40 + 30 - 4;
+ stickyTabHeight = (slaveLen * 29) + 40;
+ } else {
+ stickyHeight = 162 + 30;
+ stickyTabHeight = 162;
+ }
+ }
+ }
+
+ /* 回带表单 */
+ onReturnForm(form);
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ addProps.masterconfig = masterConfig;
+ }
+ const checkCondition = commonFunc.showMessage(app.commonConst, 'checkCondition');/* 审核条件 */
+ const checkSmemo = commonFunc.showMessage(app.commonConst, 'checkSmemo');/* 备注 */
+ const columns = [{
+ title: checkCondition,
+ dataIndex: 'condition',
+ key: 'condition',
+ }, {
+ title: checkSmemo,
+ dataIndex: 'sMemo',
+ key: 'sMemo',
+ }];
+ const btnSure = commonFunc.showMessage(app.commonConst, 'btnSure');/* 确认 */
+ const check = commonFunc.showMessage(app.commonConst, 'check');/* 审核 */
+ const BtnClose = commonFunc.showMessage(app.commonConst, 'BtnClose');/* 关闭 */
+ const checkPerson = commonFunc.showMessage(app.commonConst, 'checkPerson');/* 审核人 */
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ const pagination = {
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const width = '16px';
+ const height = '16px';
+ const setAdd = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setAddChild = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+
+ const setCopy = {
+ title: '复制',
+ img: ,
+ disableimg: ,
+ };
+ const setCopyAll = {
+ title: '复制部件',
+ img: ,
+ disableimg: ,
+ };
+ const setDelete = {
+ title: '删除',
+ img: ,
+ disableimg: ,
+ };
+ const setProcess = {
+ title: '工序',
+ img: ,
+ disableimg: ,
+ };
+ const setMaterial = {
+ title: '材料',
+ img: ,
+ disableimg: ,
+ };
+ const processUp = {
+ title: '上移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processDown = {
+ title: '下移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processTop = {
+ title: '置顶',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processBottom = {
+ title: '置底',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+
+ let bSplitMaterials = true; /* 默认拆分材料*/
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitMaterials');
+ if (iIndex > -1) {
+ bSplitMaterials = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+ let bSplitProcess = true; /* 默认拆分工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitProcess');
+ if (iIndex > -1) {
+ bSplitProcess = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+ let chooseProcessConfigRow;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+
+
+ /* 获取toolbar 选择成品工序 */
+ let bShowProductProcess = false;
+ let chooseProductProcessConfigRow = {};
+ let onChooseProductProcessIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (onChooseProductProcessIndex > -1) {
+ chooseProductProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductProcessIndex];/* 配置了成品工序按钮 */
+ bShowProductProcess = true;/* 配置了成品工序按钮 */
+ }
+ }
+
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfigRow;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+
+ /* 获取toolbar 选择成品材料 */
+ let bShowProductMaterials = false;
+ let chooseProductMaterialsConfigRow = {};
+ let onChooseProductMaterialsIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductMaterialsIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (onChooseProductMaterialsIndex > -1) {
+ chooseProductMaterialsConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductMaterialsIndex];/* 配置了成品工序按钮 */
+ bShowProductMaterials = true;/* 配置了成品材料按钮 */
+ }
+ }
+
+ /* 做树形 */
+ let slaveTreeData = [];
+ const bTree = slaveConfig && slaveConfig.sTableType === 'single' && commonUtils.isNotEmptyArr(slaveData) && slaveData.findIndex(item => commonUtils.isNotEmptyObject(item.sFatherSlaveId)) > -1; /* 树形展示 */
+ if (bTree) {
+ slaveTreeData = commonUtils.genTreeByArr(slaveData, 'sId', 'sFatherSlaveId');
+ } else {
+ slaveTreeData = slaveData;
+ }
+
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ data: slaveTreeData,
+ tableProps: {
+ rowSelection: null, pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ // AutoTableHeight: 132,
+ sticky: false,
+ bShowTreeAddChild: true,
+ },
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onKeyDown: props.onKeyDown,
+ };
+ let bShowMaterials = true;
+ const iMaterialsIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials') : -1;
+ bShowMaterials = iMaterialsIndex > -1;
+
+ let bShowProcess = true;
+ const iProcessIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess') : -1;
+ bShowProcess = iProcessIndex > -1;
+
+ // const mProps = { ...commonBusiness.createMemoProps('slave', props) };
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ data: commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId'),
+ onKeyDown: props.onKeyDown,
+ bMutiSelect1: true, // 设置点击整行勾选框不勾选,只有点击勾选框才勾选
+ tableProps: {
+ // rowSelection: enabled ? null : '',
+ // setAdd,
+ sModelsType,
+ // setCopyAll,
+ // setDelete,
+ setProcess : bShowProcess,
+ setMaterial : bShowMaterials,
+ bShowTreeAdd: true,
+ bShowTreeAddChild: true,
+ bShowTreeDel: true,
+ bShowTreeCopyAll: true,
+ // bShowProductProcess, /* 是否显示成品工序 */
+ // bShowProductMaterials, /* 是否显示成品工序 */
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ // chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: 232,
+ // sticky: {
+ // offsetHeader: stickyHeight,
+ // },
+ sticky: false
+ // onRow: (record) => {
+ // return {
+ // onClick: () => { props.onRowClick('control', record); },
+ // onDoubleClick: () => { props.onDoubleClick('control', record); },
+ // onMouseEnter: () => { props.onRowMouseEnter('control', record); },
+ // };
+ // },
+ },
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ };
+
+ /* 展示所有部件结构 */
+ const controlShowPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ data: commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId'),
+ onKeyDown: props.onKeyDown,
+ bMutiSelect1: true, // 设置点击整行勾选框不勾选,只有点击勾选框才勾选
+ tableProps: {
+ AutoTableHeight: 550,
+ expandable: props.controlShowExpandedRowKeys,
+ },
+ onExpand: props.onExpandTreeSingleShow,
+ };
+
+
+ const name = 'controlTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+
+ /* 整体树结构 */
+ const totalname = 'totalTree';
+ const totalTreeProps = {
+ ...commonBusiness.getTreeTypes('totalTree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${totalname}Column`]: props[`${totalname}Column`],
+ [`${totalname}Config`]: props[`${totalname}Config`],
+ [`${totalname}Data`]: props[`${totalname}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ // onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+
+ const genCustomDropData = () => {
+ const data = commonBusiness.getTableTypes('process', props).data;
+ const selectData = commonBusiness.getTableTypes('materials', props).data;
+ const materialKey = props.materialsSelectedRowKeys ? props.materialsSelectedRowKeys[0] : 0;
+ let selectRow = {};
+ if (selectData && materialKey) {
+ selectRow = selectData.filter(val => val.sId === materialKey)[0];
+ }
+
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;;
+ const ruleMap = {
+ 0: '0-1-2',
+ 1: '0-1-2',
+ 2: '3',
+ };
+ const arr = [];
+ if (data && selectRow) {
+ const rule = ruleMap[selectRow.sType];
+ const sParentId = selectRow.sSlaveProductId ? selectRow.sSlaveProductId : selectRow.sParentId;
+ data.forEach((val) => {
+ const obj = {};
+ obj.value = val.sProcessName;
+ obj.sId = val.sId;
+ const valSparentId = val.sCombinePartsName ? val.sCombinePartsName : val.sParentId;
+ if (rule && rule.split('-').indexOf(val.sType) !== -1 && valSparentId === sParentId) {
+ arr.push(obj);
+ }
+ });
+ }
+ return arr;
+ };
+
+ /* 通过bFinal判断是否成品 */
+ const dataFilter = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys } = props;
+ const oriData = data.data || [];
+ if (data.data) {
+ let res = [];
+ switch (type) {
+ case 'materials':
+ if (bSplitMaterials && finishedMaterialsColumn) {
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '2';
+ });
+ }
+ } else { /* 部件材料 */
+ res = oriData.filter((val) => {
+ return val.sType !== '2';
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case 'process':
+ if (bSplitProcess && finishedProcessColumn) {
+ if (bFinal) { /* 成品工序 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '3';
+ });
+ }
+ } else { /* 部件工序 */
+ if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType !== '3';
+ });
+ }
+ if(isQianCai) {
+ const pre = res.filter(item => item.sType == '0').sort((a, b) => a.iOrder - b.iOrder);
+ const after = res.filter(item => (item.sType == '1' || item.sType == '2')).sort((a, b) => a.iOrder - b.iOrder);
+ res = pre.concat(after);
+ }
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return oriData || [];
+ }
+ };
+
+ /* 根据业务过滤全部材料,油墨 电化铝数据 去重根据sMateriaslId+ sMaterialsStyle */
+ const materialsFilter = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys, materials0Data, materials1Data, materials1ChildData, materials2Data, materials2ChildData, materialsOtherData } = props;
+ if (true) {
+ let oriData = commonUtils.isNotEmptyArr(data.data) ? data.data : [];
+ let res = [];
+ switch (type) {
+ case 'materials2': /* 电化铝 */
+ if (commonUtils.isNotEmptyArr(materials2ChildData)) {
+ const newData = [];
+ materials2ChildData.forEach((val) => {
+ const iIndex = newData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle);
+ if(iIndex === -1){
+ newData.push(val);
+ }
+
+ });
+ res = newData;
+ console.log('电化铝子集', newData);
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '2';
+ });
+ }
+ } else { /* 部件材料 */
+ res = newData.filter((val) => {
+ return val.sType !== '2';
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case 'materials0': /* 全部材料 */
+ if (true) {
+ let newData0 = commonUtils.isNotEmptyArr(materials1Data) ? materials1Data : []; /* 专色墨 */
+ let newData1 = commonUtils.isNotEmptyArr(materials1ChildData) ? materials1ChildData : []; /* 油墨 */
+ let newDataChild = commonUtils.isNotEmptyArr(materials2ChildData) ? materials2ChildData : []; /* 电化铝明细 */
+
+ const newDhlData = []; /* 电化铝汇总 */
+ newDataChild.forEach((val) => {
+ const iIndex = newDhlData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle);
+ if(iIndex === -1){
+ newDhlData.push(val);
+ }
+
+ });
+
+ let newOtherData = commonUtils.isNotEmptyArr(materialsOtherData) ? materialsOtherData : []; /* 其他子集 */
+
+ /* 如果其他子级是空的 取不是油墨。电化铝、专色墨部分 */
+ if(commonUtils.isNotEmptyArr(newOtherData) && commonUtils.isNotEmptyArr(materials0Data)) {
+ newOtherData = materials0Data.filter(item => item.sZmldlName !== '油墨' &&
+ item.sZmldlName !== '自调专色墨' && item.sZmldlName !== '电化铝' );
+ }
+
+ const newDataTemp = (newData0.concat(newData1)).concat(newDhlData);
+ let allData = newDataTemp.concat(newOtherData);
+
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = allData.filter((val) => {
+ return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = allData.filter((val) => {
+ return val.sType === '3';
+ });
+ }
+ } else { /* 部件材料 */
+ // if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ // res = oriData.filter((val) => {
+ // return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ // });
+ // } else {
+ // res = allData.filter((val) => {
+ // return val.sType !== '3';
+ // });
+ // }
+ res = allData;
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return [];
+ }
+ };
+
+
+ const materialsFilterNew = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { materials0Data, materials0SelectedRowKeys, materials0ChildData, materials0ChildSelectedRowKeys } = props;
+ let oriData = commonUtils.isNotEmptyArr(data.data) ? data.data : [];
+ let res = [];
+ let newData = [];
+ if (type === 'materials1' || type === 'materials2') {
+ if (commonUtils.isNotEmptyArr(materials0Data)) {
+ const config = data.config;
+ const sSqlCondition = config ? config.sSqlCondition : '';
+ if (sSqlCondition) {
+ const targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */
+ const filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ const sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+
+ if (targetTbName === 'materials0') {
+ const filterData = materials0Data.filter(item => sParentKey && sParentKey.includes(item[filteredValue]));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData;
+ }
+ }
+ }
+
+ }
+ res = newData;
+ } else if (type === 'materials0') { /* 根据sSqlConditionId 过滤材料变更 */
+ if (commonUtils.isNotEmptyArr(oriData)) {
+ oriData.forEach(i => {
+ const value = i && i.sSqlConditionId && materials0ChildData?.find(k => k && k.sId === materials0ChildSelectedRowKeys?.[0])?.sSqlConditionId === i.sSqlConditionId;
+ if (value) {
+ i.changeFlag = 1;
+ } else {
+ if (i) i.changeFlag = 0;
+ }
+ });
+ res = oriData;
+ }
+ } else {
+ res = oriData;
+ }
+ return res;
+ }
+
+
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ customDropData: genCustomDropData(),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ };
+ const finishedMaterialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ configName: 'finishedMaterials',
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials', true),
+ headerColumn: finishedMaterialsColumn,
+ config: finishedMaterialsConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ customDropData: genCustomDropData(),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ bShowProductMaterials,
+ chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ // setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: '100%',
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ };
+
+ const materialsTablePropsList = {};
+ if (commonUtils.isNotEmptyArr(materialsInfoList)) {
+ materialsInfoList.forEach((item, index) => {
+ // const slaveTablePagination = {
+ // pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ // ...slavePagination,
+ // size: isSmall ? 'small' : 'large',
+ // pageSizeOptions: commonConfig.pageSizeOptions,
+ // showSizeChanger: !isSmall,
+ // showQuickJumper: !isSmall,
+ // hideOnSinglePage: true,
+ // };
+ materialsTablePropsList[`materialsTable${index}Props`] = {
+ ...commonBusiness.getTableTypes(`materials${index}`, props),
+ // data: materialsFilter(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false),
+ data: materialsFilterNew(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false),
+ // tableBelone: 'list',
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: props.baseTableHeight,
+ },
+ };
+ });
+ }
+
+
+ const materialsChildTablePropsList = {};
+ if (commonUtils.isNotEmptyArr(materialsChildInfoList)) {
+ materialsChildInfoList.forEach((item, index) => {
+ materialsChildTablePropsList[`${item}TableProps`] = {
+ ...commonBusiness.getTableTypes(`${item}`, props),
+ data: materialsFilterNew(commonBusiness.getTableTypes(`${item}`, props), item, false),
+ // tableBelone: 'list',
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ },
+ };
+ });
+ }
+
+ /* 是否有拖动功能 是通过配置有没有handleSort功能 */
+ const bProcessSort = commonUtils.isNotEmptyObject(processConfig) && commonUtils.isNotEmptyArr(processConfig.gdsconfigformslave) && commonUtils.isNotEmptyArr(processConfig.gdsconfigformslave.filter(item => item.sControlName === 'handleSort' && item.bVisible)) ? true : false ;
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: props.baseTableHeight,
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ onDrag: props.onDrag,
+ isDragAndDrop: false,
+ dragHandle: bProcessSort,
+ noVlistTable: bProcessSort,
+ tableId: props.processTableId
+ };
+
+ let processShowLeft = {};
+ let processShowTitle = '';
+ if (commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft');
+ if (iIndex > -1) {
+ processShowLeft = props.processConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */
+ if(commonUtils.isNotEmptyObject(processShowLeft)) {
+
+ if(processShowLeft.bVisible) {
+ processShowTitle = processShowLeft.sChinese;
+ }
+
+ }
+ }
+ }
+
+
+
+ const finishedProcessPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ configName: 'finishedProcess',
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process', true),
+ headerColumn: finishedProcessColumn,
+ config: finishedProcessConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ bShowProductProcess,
+ chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: '100%',
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ onDrag: props.onProductDrag,
+ };
+
+ let finalProcessShowLeft = {};
+ if (commonUtils.isNotEmptyObject(finishedProcessConfig)) {
+ const iIndex = finishedProcessConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft');
+ if (iIndex > -1) {
+ finalProcessShowLeft = finishedProcessConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */
+ }
+ }
+
+ let colorTableProps = {};
+ if (colorConfigGrdVisible) {
+ colorTableProps = {
+ ...commonBusiness.getTableTypes('color', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: props.baseTableHeight,
+ },
+ };
+ // cProps = { ...commonBusiness.createMemoProps('color', props) };
+ }
+
+ let visionTableProps = {};
+
+ if (commonUtils.isNotEmptyObject(visionConfig)) {
+ visionTableProps = {
+ ...commonBusiness.getTableTypes('vision', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: props.baseTableHeight,
+ },
+ };
+ }
+
+ const packTableProps = {
+ ...commonBusiness.getTableTypes('pack', props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy, setDelete, CalLastWidth: '1150', AutoTableHeight: '300px',
+ },
+ bRowClick: true,
+ };
+
+ let combinePartsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.packConfig)) {
+ combinePartsConfig = JSON.parse(JSON.stringify(props.packConfig));
+ const gdsconfigformslaveFilter = combinePartsConfig.gdsconfigformslave.filter(item => (item.sName === 'sId'
+ || item.sName === 'sCustomerName'
+ || item.sName === 'sProductName'
+ || item.sName === 'sCombinePartsName'));
+ combinePartsConfig.gdsconfigformslave = gdsconfigformslaveFilter;
+ combinePartsConfig.bMutiSelect = false;
+ }
+ let combinePartsColumn = [];
+ if (commonUtils.isNotEmptyObject(props.packColumn)) {
+ combinePartsColumn = JSON.parse(JSON.stringify(props.packColumn));
+ const packColumnFilter = props.packColumn.filter(item => (item.dataIndex === 'sId'
+ || item.dataIndex === 'sCustomerName'
+ || item.dataIndex === 'sProductName'
+ || item.dataIndex === 'sCombinePartsName'));
+ combinePartsColumn = packColumnFilter;
+ }
+ const combinePartsTableProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'combineParts',
+ config: combinePartsConfig,
+ select: props.onSelectCombinePartsChoose,
+ selectCancel: props.onCancelModal.bind(this, 'combinePartsChooseVisible'),
+ },
+ },
+ formRoute: '/indexPage/commonList',
+ slaveConfig: combinePartsConfig,
+ slaveColumn: combinePartsColumn,
+ slaveData: props.combinePartsData,
+ slaveSelectedRowKeys: props.combinePartsSelectedRowKeys,
+ selectedRowKeys: props.combinePartsSelectedRowKeys,
+ pageLoading: false,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ /* 工序表选择颜色 */
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors');
+ if (iIndex > -1) {
+ chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'sisColor',
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: '选择颜色',
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: 'search/sisColor',
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ bEdit: props.enabled,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ // sisColorSelectedData: props.slaveFilterData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {},
+ };
+ }
+
+ let searchProcessType = {};
+ let chooseProcessConfig = {};
+ let setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ if (commonUtils.isNotEmptyObject(props.processChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (iIndex > -1) {
+ chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setProcessTitle = props.processChooseData.sMenuName;
+ searchProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: props.processChooseData.sMenuName,
+ route: props.processChooseData.sName,
+ formId: props.processChooseData.sId,
+ key: sModelsId + props.processChooseData.sId,
+ sModelsType: props.processChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品工序 */
+ let chooseProdutProcessType = {};
+ let chooseProdutProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productProcessChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (iIndex > -1) {
+ chooseProdutProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */
+ });
+ }
+ /* 选择成品工序 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+
+ chooseProdutProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'chooseProductProcess',
+ config: chooseProdutProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProdutProcessConfig),
+ title: props.productProcessChooseData.sMenuName,
+ route: props.productProcessChooseData.sName,
+ formId: props.productProcessChooseData.sId,
+ key: sModelsId + props.productProcessChooseData.sId,
+ sModelsType: 'search/finalProcess',
+ select: props.onSelectFinalProcess, /* 选择成品工序 */
+ selectCancel: props.onCancelModal.bind(this, 'productProcessChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品材料 */
+ let chooseProductMaterialsType = {};
+ let chooseProductMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productMaterialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (iIndex > -1) {
+ chooseProductMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表s */
+ });
+ }
+ /* 选择成品材料 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+ chooseProductMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productMaterials',
+ config: chooseProductMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseProductMaterialsConfig),
+ title: props.productMaterialsChooseData.sMenuName,
+ route: props.productMaterialsChooseData.sName,
+ formId: props.productMaterialsChooseData.sId,
+ key: sModelsId + props.productMaterialsChooseData.sId,
+ sModelsType: 'search/finalMaterials',
+ select: props.onSelectProductMaterial,
+ selectCancel: props.onCancelModal.bind(this, 'productMaterialsChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ let setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setMaterialTitle = props.materialsChooseData.sMenuName;
+
+ props.setModalId('materials');
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: props.getModalId('materials'),
+ };
+ }
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+ /* 新方式的工艺参数 */
+ const sParamProps = {
+ ...commonBusiness.getTableTypes('sParam', props),
+ tableProps: {
+ rowKey: 'sId',
+ // pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ },
+ bRowClick: true,
+ };
+
+
+ /* 带拖动信息的工艺参数 */
+ // const sCommonParamProps = {
+ // ...props,
+ // sParamType :'sWorkOrder', /* 参数类型 */
+ // slaveData: props.processSelectedData,
+ // // masterData: { ...props.masterData, }
+ // };
+
+
+ const tabChange = (e) => {
+ props.onTabChange(e);
+ };
+
+ const tabChange2 = (e) => {
+ props.onTabChange2(e);
+ };
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ let materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */
+ materialsInfo = '纸张';
+
+
+ let dhlInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 电化铝 */
+ dhlInfo = '电化铝';
+ let materialsFlInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 成品辅料 */
+ materialsFlInfo = '成品辅料';
+
+ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */
+ let productMaterialsInfo = commonFunc.showMessage(app.commonConst, 'productMaterialsInfo') ;/* 成品材料 */
+ productMaterialsInfo = '油墨';
+ const productProcessInfo = commonFunc.showMessage(app.commonConst, 'productProcessInfo');/* 成品工序 */
+ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */
+
+ const setProductProcessTitle = commonFunc.showMessage(app.commonConst, 'setProductProcess');/* 选择成品工序标题 */
+ const setProductMaterialsTitle = commonFunc.showMessage(app.commonConst, 'setProductMaterials');/* 选择成品工序标题 */
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */
+ const setProductCombinationTitle = commonFunc.showMessage(app.commonConst, 'setProductCombination');/* 选择合拼产品标题 */
+
+ const dailyInfo = commonFunc.showMessage(app.commonConst, 'dailyInfo');/* 日志信息 */
+
+ // tree组件新增滚动至底部方法
+ // let treeNode = null;
+ // const treeRef = (n) => {
+ // treeNode = n;
+ // };
+ // const treeScrollToBottom = (node) => {
+ // console.log(node, 112233);
+ // if (node) {
+ // node.scrollTop = node.scrollHeight;
+ // }
+ // };
+ // tree组件新增滚动至底部方法ends
+
+ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 s */
+ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */
+ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */
+ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */
+ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */
+ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底s */
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAdd = {props.enabled ? setAdd.img : setAdd.disableimg} ;
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAddChild = {props.enabled ? setAddChild.img : setAddChild.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateCopy = {props.enabled ? setCopy.img : setCopy.disableimg};
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateUpdate = {props.enabled ? setCopyAll.img : setCopyAll.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateDel = {props.enabled ? setDelete.img : setDelete.disableimg};
+
+ let bControlShow = true; /* 控制表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexControl = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbControl');
+ if (iIndexControl > -1) {
+ bControlShow = props.masterConfig.gdsconfigformslave[iIndexControl].bVisible;
+ }
+ }
+ let bMaterialShow = true; /* 材料表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexMaterial = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbMaterial');
+ if (iIndexMaterial > -1) {
+ bMaterialShow = props.masterConfig.gdsconfigformslave[iIndexMaterial].bVisible;
+ }
+ }
+ let bProcessShow = true; /* 工序表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexProcess = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbProcess');
+ if (iIndexProcess > -1) {
+ bProcessShow = props.masterConfig.gdsconfigformslave[iIndexProcess].bVisible;
+ }
+ }
+ let bShowAllTable = true; /* 显示所有表格 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowAllTable');
+ if (iIndex > -1) {
+ bShowAllTable = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+ const bFinalMaterialsTabShow = commonUtils.isEmptyObject(finishedMaterialsConfig) ? false :(bSplitMaterials ? true : false); /* 没有成品材料配置 则材料Tab不展示 */
+ const bFinalProcessTabShow = commonUtils.isEmptyObject(finishedProcessConfig) ? false : (bSplitProcess ? true : false); /* 没有成品工序配置 则工序Tab不展示 */
+
+ const panelExtra = (type, title) => {
+ let str = '';
+ /* 根据materials找到其组所有配置头 */
+
+ let radioConfigArr = [];
+ if(commonUtils.isNotEmptyArr(formData)) {
+ // radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) );
+ radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) && item.bGrdVisible );
+ // console.log('radioConfigArr:', radioConfigArr);
+ if(sModelsId === '12710101116950085152680') {
+ radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) && item.bGrdVisible &&
+ item.showName !=='成品材料');
+ }
+ }
+ if (type === 'material') {
+ str = (
+
+ tabChange(e.target.value)}>
+ {/*{materialsInfo}*/}
+ {/*{bSplitMaterials ? {productMaterialsInfo} : ''}*/}
+ {/*{dhlInfo}*/}
+ {/*{materialsFlInfo}*/}
+ {
+ radioConfigArr.map((child, index) => {
+ const radioTitle = child.showName;
+ const radioValue = index + 2 + 10;
+ // console.log('radioValue', radioTitle, radioValue);
+ return(
+ {radioTitle}
+ )
+ })
+ }
+
+
+ )
+ } else if (type === 'process') {
+ str = (
+
+ tabChange2(e.target.value)}>
+ {processInfo}
+ {bSplitProcess ? {productProcessInfo} : ''}
+
+
+ )
+ }else if (type === 'daily') {
+ let dailyInfoTitle = dailyInfo;
+ const { colorConfig } = props;
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ const iIndex = colorConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'daily');
+ if (iIndex > -1) {
+ dailyInfoTitle = colorConfig.gdsconfigformslave[iIndex].showName;
+ }
+ }
+ str = (
+
+ tabChange2(e.target.value)}>
+ {dailyInfoTitle}
+
+
+ )
+ } else if (type === 'daily-1') {
+ let visionTableTitle = '改版记录';
+ const { visionConfig } = props;
+ if (commonUtils.isNotEmptyObject(visionConfig)) {
+ visionTableTitle = visionConfig.sChinese;
+ }
+ str =
+ {visionTableTitle}
+
+ } else if (type?.toString().startsWith('material-')) {
+ str =
+ {title}
+
+ }
+ return str;
+ }
+
+ const activeKeyChange = (e) => {
+ props.onActiveKey(e);
+ };
+ const okButtonStyle ={
+ style:{
+ display:"none",
+ backgroundColor:"red"
+ }
+ }
+ const cancelButtonStyle = {
+ htmlType:"退出",
+ style: {
+ width: 70,
+ height: 50,
+ }
+ }
+ const autoHeight = `calc( 100vh - 92px )`;
+
+ return (
+
+ );
+});
+
+// 工艺参数弹窗
+const ModalComponent = props => {
+ const modalName = 'sWorkParamsModalVisible'; // commonParamVisible
+ const sProcessParams = "工单参数";
+ return props[modalName] ?
+ {
+ props.onSaveState({ [modalName]: false });
+ }}
+ footer={
+
+ }
+ >
+
+
+
+
+
+
+
+ {
+ [''].map(() => {
+ const commonViewDragableProps = {
+ ...props,
+ // comparedTableId: props.processTableId,
+ hideTabsNav: true,
+ comparedTableId: props.processTableId,
+ // bSimpleMode: true,
+ sParamData: [
+ {
+ sParamType: 'sWorkOrder',
+ sParamName: '工单参数'
+ },
+ ],
+ tableName: 'process',
+ }
+
+ commonViewDragableProps.enabled = props.getTableBtnState(commonViewDragableProps.tableName);
+
+ return
;
+ })
+ }
+
+ : ''
+
+};
+
+export default CommonBase(CommonSales(WorkOrderPack));
diff --git a/src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js b/src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js
new file mode 100644
index 0000000..8aa312b
--- /dev/null
+++ b/src/components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree.js
@@ -0,0 +1,8986 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring,no-loop-func */
+import React, { Component } from 'react';
+import moment from 'moment';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import {
+ Modal,
+ Layout,
+ Spin,
+ Select,
+ message,
+ Button,
+ Table,
+ Checkbox,
+ Row,
+ Col,
+ Avatar,
+ Slider,
+ Tabs,
+ Collapse,
+ Radio,
+ Divider
+} from 'antd';
+import {
+ RightOutlined,
+} from '@ant-design/icons';
+
+import AddIcon from '@/assets/add.svg';
+import AddChildIcon from '@/assets/addChild.svg';
+import DisableAddIcon from '@/assets/disableadd.svg';
+import DisableAddChildIcon from '@/assets/disableaddChild.svg';
+import DelIcon from '@/assets/delete.svg';
+import DisableDelIcon from '@/assets/disabledelete.svg';
+import CopyIcon from '@/assets/copy.svg';
+import CopyAllIcon from '@/assets/copyall.svg';
+import DisableCopyIcon from '@/assets/disablecopy.svg';
+import DisableCopyAllIcon from '@/assets/disablecopyall.svg';
+import MateriallIcon from '@/assets/material.svg';
+import DisableMateriallIcon from '@/assets/disablematerial.svg';
+import ProcessIcon from '@/assets/process.svg';
+import DisableProcessIcon from '@/assets/disableprocess.svg';
+import ProcessUp from '@/assets/processUp.svg';
+import ProcessDown from '@/assets/processDown.svg';
+import DisableProcessUp from '@/assets/disableprocessUp.svg';
+import DisableProcessDown from '@/assets/disableprocessDown.svg';
+import ProcessTop from '@/assets/processTop.svg';
+import DisableProcessTop from '@/assets/disableprocessTop.svg';
+import ProcessBottom from '@/assets/processBottom.svg';
+import DisableProcessBottom from '@/assets/disableprocessBottom.svg';
+import CommonSales from '@/components/Common/CommonBillEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import CommonView from '@/components/Common/CommonView';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import commonConfig from '@/utils/config';
+import * as commonServices from '@/services/services';/* 服务类 */
+import EjectRight from '@/assets/eject.svg';/* 弹出图标 */
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+import CommonListSelectFlex from '@/components/Common/CommonListSelectFlex';
+/* 可编辑的选择界面 */
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
+import CommonListSelectMulti from '@/components/Common/CommonListSelectMulti';
+import CommonExamInfo from '@/components/Common/CommonExamInfo';
+
+
+// import CommonListSelectParam from '@/components/Common/CommonListSelectParam';
+import CommonViewDragable from '@/components/Common/CommonViewDragable';
+import CommonPartsInfo from '@/components/Common/CommonPartsInfo';
+/* 树形选择界面 */
+import CommonListSelectProductProcess from '@/components/Common/CommonListSelectAssignment';
+import CommonListSelectProductMaterial from '@/components/Common/CommonListSelectProductMaterial';
+import WorkFlow from '@/components/Common/Flows/CommonFlow'; /* 工作流 */
+/* 选择成品工序 */
+// import SlaveMemo from '../../Common/SlaveMemo';
+import SlavesInfo from '@/components/Common/SlavesInfo';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import AntdDraggableDiv from '@/components/Common/AntdDraggableDiv';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/ejectleft.svg';
+import Close from '@/assets/closeleft.svg';
+import ShowType from '@/components/Common/CommonComponent';
+import ContextMenuModal from '@/components/Common/ContextMenuModal';
+import SplitPaste from '@/components/Manufacture/WorkOrder/SplitPaste';/* 选择界面 */
+import selfstyles from '../index.less';
+import CloseRight from "../../../assets/close.svg";
+import SvgIcon from "../../SvgIcon";
+const { Header, Content, Sider } = Layout;
+const { Option } = Select;
+const { confirm } = Modal;
+const { TabPane } = Tabs;
+const { Panel } = Collapse;
+
+const isQianCai = false;
+const isYaChang = false;
+
+
+class WorkOrderPack extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ currentTab: 12,
+ currentTab2: 1,
+ activeKey: ['1', '2'],
+ processTableId: `processTableId_${commonUtils.createSid()}`,
+ };
+ this.isLayout = false;
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ let {
+ controlColumn, materialsColumn, processColumn, colorColumn, packColumn,
+ } = nextProps;
+ const { formData, currentId, sModelsId } = nextProps;
+ if (commonUtils.isEmptyArr(controlColumn) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ if(masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0]) {
+ this.isLayout = masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'bLayout')[0].bVisible;
+ }
+ /* bGrd代表是否是表格 */
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName !== 'sysbillcheckresult')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ let checkConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')) ?
+ formData.filter(item => item.bGrd && item.sTbName === 'sysbillcheckresult')[0] : {};
+ let checkColumn = {};
+ if(commonUtils.isNotEmptyObject(checkConfig)) {
+ checkColumn = commonFunc.getHeaderConfig(checkConfig);
+ }
+
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderControl'.toUpperCase())[0];
+ controlColumn = commonFunc.getHeaderConfig(controlConfig, controlColumn);
+
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase())[0];
+ materialsColumn = commonFunc.getHeaderConfig(materialsConfig, materialsColumn);
+
+ let finishedMaterialsConfig = commonUtils.isNotEmptyArr( formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase() && item.showName === '成品材料')) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderMaterials'.toUpperCase() && item.showName === '成品材料')[0] : false;
+ const finishedMaterialsColumn = finishedMaterialsConfig ? commonFunc.getHeaderConfig(finishedMaterialsConfig) : false;
+ const addState2 ={};
+ const addStateConfig ={};
+ /* 取材料组配置放在数组 */
+ let materialsInfoList = [];
+ let materialsChildInfoList = [];
+ let materialsFormData = formData.filter(item => item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible );
+ if(sModelsId === '12710101116950085152680') { /* 研发工单 不要成品材料 */
+ materialsFormData = formData.filter(item => item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible
+ && item.showName !== '成品材料');
+ }
+ // const materialsFormData = formData.filter(item => item.sTbName !== 'mftworkordermaterials' && item.sGrd && item.sGrd.includes('materials') && item.bGrdVisible );
+ /* 找到除了材料,成品材料外的其他所有父级材料 */
+
+ if(commonUtils.isNotEmptyArr(materialsFormData)) {
+ materialsFormData.forEach((item, index) => {
+ addState2[`materials${index}Config`] = item;
+ addStateConfig[`materials${index}Config`] = item;
+ addState2[`materials${index}Column`] = commonFunc.getHeaderConfig(item);
+ /* 找到该配置的子从表 */
+ const childFormData = formData.filter(child => child.sGrd === item.sChildTableName );
+ if(commonUtils.isNotEmptyArr(childFormData)) {
+ childFormData.forEach((child, num) => {
+ addState2[`materials${index}ChildConfig`] = child;
+ addStateConfig[`materials${index}ChildConfig`] = child;
+ addState2[`materials${index}ChildColumn`] = commonFunc.getHeaderConfig(child);
+ // materialsInfoList.push(child.showName);
+ const sChildName = item.showName + num +1;
+ materialsChildInfoList.push(`materials${index}Child`);
+ });
+ }
+ materialsInfoList.push(`materials${index}`);
+ });
+ }
+ const addStateMap = addStateConfig;
+
+ const packingConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'mftworkorderpacking'.toUpperCase())) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'mftworkorderpacking'.toUpperCase())[0] : {};
+ const packingColumn = commonUtils.isNotEmptyObject(packingConfig) ? commonFunc.getHeaderConfig(packingConfig) : false;
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderProcess'.toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMachineId');
+
+ const finishedProcessConfig = formData.filter(item => item.sTbName.toUpperCase() === 'MftWorkOrderProcess'.toUpperCase() && item.showName === '成品工序')[0];
+ const finishedProcessColumn = finishedProcessConfig ? commonFunc.getHeaderConfig(finishedProcessConfig) : false;
+ if (iIndex > -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ processColumn = commonFunc.getHeaderConfig(processConfig, processColumn);
+ /* 合版信息表s */
+ let packConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'mftworkordercontrolcombine'.toUpperCase())) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'mftworkordercontrolcombine'.toUpperCase())[0] : {};
+ const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'sCustomerName'
+ || item.sName === 'sProductId'
+ || item.sName === 'sCustomerId'
+ || item.sName === 'sProductNo'
+ || item.sName === 'sProductName'
+ || item.sName === 'dProductQty'
+ || item.sName === 'sProductStyle'
+ || item.sName === 'sProductUnit')); /* 拼接从表配置,客户名称 ,产品名称,生产数 */
+ const salveChooseConfigFilter = [];
+ if (commonUtils.isNotEmptyArr(slaveChooseConfig) && commonUtils.isNotEmptyObject(packConfig)) {
+ slaveChooseConfig.forEach((item) => {
+ const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName);
+ if (iIndex === -1) {
+ const itemNew = Object.assign({}, item);
+ itemNew.bNotEmpty = false;
+ salveChooseConfigFilter.push(itemNew);
+ }
+ });
+ }
+ /* 拼接排序 */
+ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) {
+ if(commonUtils.isNotEmptyObject(packConfig)) {
+ let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === 'iOrder');
+ packFilter = packFilter.concat(salveChooseConfigFilter);
+ const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== 'iOrder');
+ packFilter = packFilter.concat(packFilterOther);
+ packConfig.gdsconfigformslave = packFilter;
+ }
+ }
+ packColumn = commonUtils.isNotEmptyObject(packConfig) ? commonFunc.getHeaderConfig(packConfig, packColumn) : [];
+ let colorConfigGrdVisible;
+ const colorConfigTrue = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'mftproductchange'.toUpperCase())[0] : {};
+
+ if (commonUtils.isNotEmptyObject(colorConfigTrue)) {
+ colorConfigGrdVisible = colorConfigTrue.bGrdVisible;
+ if (colorConfigGrdVisible) {
+ colorColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ }
+ }
+
+ /* 改版信息表 */
+ let visionConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'sisrevision'.toUpperCase() && item.bGrdVisible )) ?
+ formData.filter(item => item.sTbName.toUpperCase() === 'sisrevision'.toUpperCase() && item.bGrdVisible)[0] : {};
+ let visionColumn = [];
+ if (commonUtils.isNotEmptyObject(visionConfig)) {
+ visionColumn = commonFunc.getHeaderConfig(colorConfigTrue, colorColumn);
+ addStateConfig['visionConfig'] = visionConfig;
+ addStateMap['visionConfig'] = visionConfig;
+ addState2['visionColumn'] = visionColumn;
+ }
+
+
+ let addState = {};
+ const colorConfig = colorConfigGrdVisible ? colorConfigTrue : '';
+ if (sId === '') {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ config.visionConfig = visionConfig;
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ } else {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ this.handleGetOtherData(materialsInfoList, materialsChildInfoList, addStateConfig);
+ }
+ this.props.onSaveState({
+ masterConfig,
+ slaveConfig,
+ slaveColumn,
+ checkConfig,
+ checkColumn,
+ sId,
+ pageLoading: false,
+ controlConfig,
+ controlColumn,
+ materialsConfig,
+ materialsColumn,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ processConfig,
+ processColumn,
+ colorConfig,
+ colorColumn,
+ packConfig,
+ packColumn,
+ ...addState,
+ ...addState2,
+ ...addStateConfig,
+ addStateMap,
+ materialsInfoList,
+ materialsChildInfoList,
+ colorConfigGrdVisible,
+ });
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { controlColumn, slaveConfig } = nextProps;
+ return typeof slaveConfig === 'object' && Object.keys(slaveConfig).length > 0 && commonUtils.isNotEmptyArr(controlColumn);
+ }
+
+ componentDidUpdate() {
+ // 处理选择材料新增返回有时不更新问题
+ const materialsId = this.getModalId('materials');
+ if (materialsId) {
+ const modalMaterials = document.querySelector(`.modalMaterials_${materialsId}`);
+ if (!this.forbidForceUpdate && modalMaterials && modalMaterials.parentNode && modalMaterials.parentNode.parentNode && modalMaterials.parentNode.parentNode.style.display === 'none') {
+ this.forbidForceUpdate = true;
+ this.didUpdateTimer = setTimeout(() => {
+ this.forbidForceUpdate = false;
+ }, 1000);
+ this.forceUpdate();
+ }
+ }
+ }
+
+ /** 行选择 */
+ // onRowClick = (name, record) => {
+ // if (name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // };
+ //
+ // onRowMouseEnter = (name, record) => {
+ // if (this.props.enabled && name === 'control') {
+ // this.props.onTableSelectRowChange(name, [record.sId]);
+ // }
+ // }
+ //
+ // onDoubleClick = (name, record) => {
+ // if (this.props.onDoubleClick !== undefined) {
+ // this.props.onDoubleClick(record);
+ // }
+ // };
+ onChange1 = (checkedValues) => {
+ this.props.onSaveState({
+ dataPersonArray: checkedValues,
+ });
+ };
+
+
+ getMenuStatus = (menu) => {
+ if (menu.sControlName === 'BtnCalculation' || menu.sControlName === 'BtnCombine' || menu.sControlName === 'BtnFastOrder' || menu.sControlName === 'BtnChooseProcess' ||
+ menu.sControlName === 'BtnChooseMaterials' || menu.sControlName === 'BtnBsOperation.BtnDraft') {
+ return !this.props.enabled;
+ }
+ };
+
+
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+
+ handleEjectRight = () => { /* 右侧树形弹出展开 */
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ // const currentTab = document.getElementById('tabs').getElementsByClassName('ant-tabs-content-no-animated')[0].children[index];
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+
+ const { masterData, slaveData, controlData, materialsData, processData }=this.props;
+ if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyArr(slaveData)) {
+ const totalTreeState = this.handleGetTotalTreeData(masterData, slaveData, controlData, materialsData, processData, true);
+ if (commonUtils.isNotEmptyObject(totalTreeState)) {
+ const totalTreeData = totalTreeState.totalTreeData;
+ const expandedKeys = totalTreeState.expandedKeys;
+ if (commonUtils.isNotEmptyArr(totalTreeData)) {
+ this.props.onSaveState({
+ totalTreeData,
+ expandedKeys
+ });
+ }
+ }
+ }
+
+ }
+ }
+ }
+ }
+
+ };
+
+ /* 获取表数据 */
+ handleGetData = async (controlConfig, materialsConfig, processConfig, colorConfig, packConfig, extraState = {}) => {
+ const { currentId, slaveData, sModelsType, masterData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ const addStateControl = await this.props.handleGetDataSet({
+ name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */
+ const treeState = this.handleGetControlTreeData(controlData, true);
+
+ let addStateMaterials = {};
+ if(commonUtils.isNotEmptyObject(materialsConfig)) {
+ addStateMaterials = await this.props.handleGetDataSet({
+ name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ addStateMaterials.materials0Data = addStateMaterials.materialsData;
+ }
+ let addStateProcess = {};
+ if(commonUtils.isNotEmptyObject(processConfig)) {
+ addStateProcess = await this.props.handleGetDataSet({
+ name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+
+ if (addStateProcess) {
+ if (Array.isArray(addStateProcess.processData)) {
+ // eslint-disable-next-line array-callback-return
+ addStateProcess.processData.map((itemProcess) => {
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ itemProcess.sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) {
+ itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`;
+ }
+ }
+ if (itemProcess.sProcessParamStr === '') {
+ itemProcess.sProcessParamStr = '工艺参数';
+ }
+ if (commonUtils.isNotEmptyObject(itemProcess.sWorkOrderParam)) {
+ let iIndex = -1;
+ iIndex = addStateProcess.processData.findIndex(item => item.sId === itemProcess.sId);
+ if (iIndex > -1) {
+ addStateProcess.processData[iIndex] = { ...itemProcess, ...commonUtils.convertStrToObj(itemProcess.sWorkOrderParam) };
+ }
+ }
+ }
+ });
+ addStateProcess.processSelectedRowKeys = [];
+ addStateProcess.processSelectedRowKeys = [];
+ if(commonUtils.isNotEmptyArr(addStateProcess.processData) && commonUtils.isNotEmptyArr(addStateControl.controlSelectedRowKeys)) {
+ const processFilterData = addStateProcess.processData.filter(item => item.sControlId === addStateControl.controlSelectedRowKeys[0])
+ if (commonUtils.isNotEmptyArr(processFilterData)) {
+ addStateProcess.processSelectedData = [processFilterData[0]];
+ addStateProcess.processSelectedRowKeys = [processFilterData[0].sId];
+ }
+ }
+ // addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ }
+ }
+ let addStatePack = {};
+ if(commonUtils.isNotEmptyObject(packConfig)) {
+ addStatePack = await this.props.handleGetDataSet({
+ name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ let addStateColor = {};
+ if (colorConfig) {
+ addStateColor = await this.props.handleGetDataSet({
+ name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ /* 合版表合并产品信息 */
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const { packData } = addStatePack;
+ slaveData.forEach((itemSlave) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === itemSlave.sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(itemSlave);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ }
+ }
+ });
+ }
+ });
+ addStatePack.packData = packData;
+ }
+ /**
+ * 修改日期:2021-03-26
+ * 修改人:吕杰
+ * 区域:以下 3 行
+ * BUG:2173
+ * 说明:通用工单刷新后 需显示所有部件的工序
+ * 原代码:
+ */
+
+ /* 获取整体树结构 */
+ // const { materialsData } = addStateMaterials; /* 工序表 */
+ // const { processData } = addStateProcess; /* 材料表 */
+ // const totalTreeState = this.handleGetTotalTreeData(masterData,slaveData,controlData,materialsData,processData, true);
+
+ const noSelected = sModelsType === 'manufacture/workOrderPackTableTree';
+ this.props.onSaveState({
+ pageLoading: false, ...addStateControl, ...addStateMaterials, ...addStateProcess, ...addStateColor, ...addStatePack, ...treeState, treeSelectedKeys: noSelected ? [] : controlSelectedRowKeys, ...extraState,
+ });
+ };
+
+
+ handleGetOtherData = async (tableList, childTableList, configMap) => {
+ const { currentId, slaveData, sModelsType, masterData } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ if(commonUtils.isNotEmptyObject(configMap)){
+ for (const configName of Object.keys(configMap)) {
+ const tableName = configName.replace('Config', '').trim();
+ const childConfig = configMap[configName];
+ this.props.handleGetDataSet({
+ name: tableName, configData: childConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+
+ }
+
+ };
+
+ /* 获取套件树形全部结构 */
+ handleGetTotalTreeData= (masterData,slaveData,controlData,materialsData,processData, isWait) => {
+ /* 生成部件树结构 */
+ let totalTreeData = [];
+ const expandedKeys = [];
+ const addState ={};
+ // let { totalTreeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sProductName1)) {
+ const rootData = [masterData]; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRoot = {};
+ const { sId, sProductName1 } = item;
+ treeDataRoot.key = sId;
+ treeDataRoot.showName = sProductName1;
+ treeDataRoot.sAllId = item.sId;
+ expandedKeys.push(sId);
+ /* 添加从表作为二级节点 */
+ const childrenSlave = [];
+ let bRelation = false; /* 从表与控制表没有关联性 */
+ if(commonUtils.isNotEmptyArr(slaveData)){
+ slaveData.forEach((itemSlave,index) => {
+ const { sId, sProductName } = itemSlave;
+ const treeSlaveRow = {};
+ treeSlaveRow.key = sId;
+ treeSlaveRow.showName ='产品-'+ sProductName;
+ treeSlaveRow.sAllId = itemSlave.sId;
+ /* 获取从表关联的控制表 */
+ const childrenControl = [];
+ if(commonUtils.isNotEmptyArr(controlData)){
+ const controlCollection =[];
+ controlData.forEach((itemControl) => {
+ if(itemControl.sCombinedMemo && itemControl.sCombinedMemo !== '') {
+ const sCombinedMemoArr = commonUtils.isJSON(itemControl.sCombinedMemo) ? JSON.parse(itemControl.sCombinedMemo) : [];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo.indexOf(itemSlave.sProductNo) !== -1).length;
+ if(len > 0) {
+ const sAllId =itemControl.sAllId;
+ /* 找到这个sAllId的第一级 把整个部件挂到产品下面 */
+ if (commonUtils.isNotEmptyObject(sAllId)) {
+ const arr = sAllId.split(',');
+ if (arr.length > 0){
+ const firstsId =arr[0]; /* 从sAllId找第一级*/
+ if(!controlCollection.includes(firstsId)){
+ controlCollection.push(firstsId)
+ }
+ }
+ }
+ }
+ }
+ });
+ if(commonUtils.isNotEmptyArr(controlCollection)){ /* 作为子表子级 */
+ bRelation =true;
+ for (const key of controlCollection) {
+ const iIndex =controlData.findIndex(item => item.sId === key);
+ if(iIndex > -1) {
+ const tableRow = controlData[iIndex];
+ const { sId,sAllId } = tableRow;
+ const treeControlRow = {}
+ treeControlRow.key = sId + '-' +commonUtils.createSid();
+ treeControlRow.showName = '部件-' + tableRow.sPartsName;
+ treeControlRow.sAllId = sAllId;
+ /* 控制表根据一级菜单获取子集 */
+ let childrenChild = [];
+ childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(childrenChild)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeControlRow.sChildren = sChildren;
+ treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : [];
+
+ childrenControl.push(treeControlRow);
+
+
+ }
+ };
+ }
+ }
+
+ treeSlaveRow.children = commonUtils.isNotEmptyArr(childrenControl) ? childrenControl : [];
+ childrenSlave.push(treeSlaveRow);
+
+ /* 如果从表与控制表没有关联 */
+ if(!bRelation){
+ controlData.forEach((itemControl) => {
+ const { sId,sAllId,sPartsName } = itemControl;
+ const treeControlRow = {}
+ treeControlRow.key = sId + '-' +commonUtils.createSid();
+ treeControlRow.showName = '部件-' + sPartsName;
+ treeControlRow.sAllId = sAllId;
+ treeControlRow.sId =sId;
+ /* 控制表根据一级菜单获取子集 */
+ let childrenChild = [];
+ childrenChild = this.handleGetControlTreeChildData(sId, controlData,materialsData,processData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(childrenChild)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeControlRow.sChildren = sChildren;
+ treeControlRow.children = commonUtils.isNotEmptyArr(childrenChild) ? childrenChild : [];
+ const filterData =childrenSlave.filter(item => item.sId ===treeControlRow.sId);
+ if(commonUtils.isEmptyArr(filterData)){
+ childrenSlave.push(treeControlRow);
+ }
+ });
+ }
+
+ /* 加载成品材料、成品工序作为从表的同级 */
+ if(commonUtils.isNotEmptyArr(materialsData)){
+ const childTree = commonUtils.isNotEmptyArr(materialsData) ? materialsData.filter(item => item.sType === 2) : [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sMaterialsName,sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = '成品材料' +'-'+ sMaterialsName;
+ treeDataRow.sAllId = child.sAllId;
+ childrenSlave.push(treeDataRow);
+ });
+ }
+ }
+ /* 获取工序表 */
+ if(commonUtils.isNotEmptyArr(processData)){
+ const childTree = commonUtils.isNotEmptyArr(processData) ? processData.filter(item => item.sType === 3) : [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sProcessName,sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = '成品工序' +'-'+ sProcessName;
+ treeDataRow.sAllId = child.sAllId;
+ childrenSlave.push(treeDataRow);
+ });
+ }
+ }
+
+
+
+
+ if(!expandedKeys.includes(sId)){
+ expandedKeys.push(sId);
+ }
+ });
+ treeDataRoot.children = commonUtils.isNotEmptyArr(childrenSlave) ? childrenSlave : [];
+ }
+ totalTreeData.push(treeDataRoot);
+ });
+ } else {
+ totalTreeData = [];
+ }
+ addState.totalTreeData=totalTreeData;
+ addState.expandedKeys=expandedKeys;
+ if (isWait) {
+ return { ...addState };
+ } else {
+ this.props.onSaveState({
+ totalTreeData,
+ expandedKeys,
+ });
+ }
+ };
+
+ /** 获取部件树 */
+ handleGetControlTreeData= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+
+ handleGetControlTreeDataBak= (controlData, isWait) => {
+ /* 生成部件树结构 */
+ let treeData = [];
+ const expandedKeys = [];
+ let { treeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ const rootData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => commonUtils.isEmpty(item.sControlParentId)) : []; /* 找到所有一级树结构 */
+ rootData.forEach((item) => {
+ const treeDataRow = {};
+ const { sId, sPartsName } = item;
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.sAllId = item.sAllId;
+ const children = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 树形结构最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(children)) {
+ sChildren = '0'; /* 树形结构其他节点设置为0 */
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(children) ? children : [];
+ treeData.push(treeDataRow);
+ });
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ expandedKeys.push(treeData[treeData.length - 1].key);
+ }
+ } else {
+ treeSelectedKeys = [];
+ treeData = [];
+ }
+ if (isWait) {
+ return { treeData };
+ } else {
+ this.props.onSaveState({
+ treeData,
+ // expandedKeys,
+ });
+ }
+ };
+ /** 获取子节点数据 */
+ handleGetControlTreeChildData= (sParentId, controlData) => {
+ if (commonUtils.isNotEmptyObject(sParentId) && commonUtils.isNotEmptyArr(controlData)) {
+ const childTree = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sControlParentId === sParentId) : [];
+ const children = [];
+ if (commonUtils.isNotEmptyArr(childTree)) {
+ childTree.forEach((child) => {
+ const { sId, sPartsName } = child;
+ const treeDataRow = {};
+ treeDataRow.key = sId;
+ treeDataRow.showName = sPartsName;
+ treeDataRow.parentKey = sParentId;
+ treeDataRow.sAllId = child.sAllId;
+ const data = this.handleGetControlTreeChildData(sId, controlData);
+ let sChildren = '1'; /* 最后一个节点设置为1 */
+ if (commonUtils.isNotEmptyArr(data)) {
+ sChildren = '0';
+ }
+ treeDataRow.sChildren = sChildren;
+ /* 添加sChildren,sAllId 值 */
+ const iIndex = controlData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ // controlData[iIndex].sAllId = sAllId;
+ controlData[iIndex].sChildren = sChildren;
+ }
+ treeDataRow.children = commonUtils.isNotEmptyArr(data) ? data : [];
+ children.push(treeDataRow);
+ });
+ }
+ return children;
+ }
+ };
+
+ /** 根据key查找树节点并改变属性 */
+ handleSearchNodes= (key, data, showNameNew) => {
+ if (commonUtils.isNotEmptyObject(showNameNew)) {
+ data.forEach((item) => {
+ if (item.key === key) {
+ item.showName = showNameNew;
+ } else if (commonUtils.isNotEmptyArr(item.children)) {
+ this.handleSearchNodes(key, item.children, showNameNew);
+ }
+ });
+ }
+ };
+
+ handleBackProcessData = async (config, isWait) => {
+ const { token } = this.props.app;
+ const { sModelsId, sBackProcessData } = this.props;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === '') {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sBackProcess')[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: '', sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ this.props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ }
+
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /* 非列表联动下拉 */
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const {
+ sModelsId, app,
+ } = this.props;
+ const masterData = commonUtils.isEmpty(config) ? this.props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? this.props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = this.props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductId' || sFieldName === 'sProductClassifyName' || sFieldName === 'sProductName') {
+ backProcessData = await this.handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)) {
+ let iIndex;
+ allPartsName.forEach((sPartsName) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => (item.sName.toLowerCase() === 'sbackprocessclassify'))[0];
+
+ const values = { sKeyUpFilterName: '', sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(token, values, `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`)).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) { /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(',');
+ }
+
+ sBackProcessClassifyData = rows;
+ if (allPartsName.length > 0 && masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined && sBackProcessClassifyData !== '' && sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0) {
+ const sumPQtyConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'dSumPQty')[0] : [];
+ const materialsNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sMaterialsName')[0] : [];
+ const printModePoConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPrintModePo')[0] : [];
+ const positiveColorConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'iPositiveColor')[0] : [];
+ const processNameConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName').length > 0 ? masterConfig.gdsconfigformslave.filter(item => item.sName === 'sProcessName')[0] : [];
+
+ let ConfigNew;
+ allPartsName.forEach((item) => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? '' : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== '') {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === '3').forEach((processClassify) => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...masterDataDefault, ...returnChange.masterData };
+ if (isWait) {
+ return {
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ };
+ } else {
+ this.props.onSaveState({
+ ...returnChange, sBackProcessClassifyData, masterConfig, ...backProcessData,
+ });
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ const returnChange = await this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = '';
+ returnChange.masterData.sProductNo = '';
+ returnChange.masterData.sProductName = '';
+ }
+ this.props.onSaveState({ ...returnChange });
+ } else {
+ this.props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ /* 数据生成按钮 */
+ handleDataCreate= async (flag) => {
+ let { checkProcessClassifyData } = this.props;
+ const {
+ masterData, slaveConfig, materialsConfig, processConfig, sModelsId, app, dispatch,
+ } = this.props;
+ const { token } = this.props.app;
+ const paramMap = {};
+ const { sAllPartsName } = masterData;
+ let allPartsName = [];
+ 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);
+ }
+ }
+ }
+ });
+ 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;
+ }
+
+
+ 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,
+ });
+
+ let dataReturn = paramMap;
+ if (!flag) {
+ const url = `${commonConfig.server_host}calculationStd/countMoney?sModelsId=${sModelsId}`;
+ dataReturn = (await commonServices.postValueService(token, paramMap, url)).data;
+ }
+ if (dataReturn.code === 1 || flag) {
+ const {
+ productClassify, productProcessInfo, partsInfo: partsOldInfo,
+ } = flag ? dataReturn : dataReturn.dataset.rows[0];
+ let partsNewInfo = [];
+ if (!flag) {
+ partsNewInfo = dataReturn.dataset.rows[0].partsNewInfo;
+ } else {
+ partsNewInfo = partsOldInfo;
+ }
+ const slaveData = [];
+ const controlData = [];
+ const materialsData = [];
+ let processData = [];
+ const tableDataRow = {};
+ for (const item of slaveConfig.gdsconfigformslave) {
+ tableDataRow[item.sName] = masterData[item.sName];
+ }
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.iOrder = 1;
+ tableDataRow.sParentId = masterData.sId;
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ let productIdDropDown;
+ const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (slaveIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex], tableDataRow);
+ productIdDropDown = sqlDropDownData.dropDownData;
+ }
+ const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
+ if (iProductIdIndex === -1) {
+ tableDataRow.sProductId = tableDataRow.sProductName;
+ tableDataRow.sProductInfo = JSON.stringify({
+ sProductId: tableDataRow.sProductName,
+ sProductName: tableDataRow.sProductName,
+ sProductStyle: tableDataRow.sProductStyle,
+ sProductUnit: tableDataRow.sProductUnit,
+ sProductNo: tableDataRow.sProductNo,
+ sCustomerProductNo: tableDataRow.sCustomerProductNo,
+ sProductClassifyId: tableDataRow.sProductClassifyId,
+ sProductClassifyName: tableDataRow.sProductClassifyName,
+ });
+ } else {
+ tableDataRow.sProductInfo = '';
+ }
+ slaveData.push(tableDataRow);
+ 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) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+
+ partInfo.processInfo.forEach((process, iOrder) => {
+ let processAfterDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processAfterDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processAfterDataRow[child] = process[child];
+ }
+ processAfterDataRow.handleType = 'add';
+ processAfterDataRow.sProcessId = process.sProcessId;
+ const iProcessAfterIndex = dropDownDataProcessName.findIndex(item => item.sId === processAfterDataRow.sProcessId);
+ if (iProcessAfterIndex > -1) {
+ processAfterDataRow = { ...processAfterDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProcessAfterIndex], newCopyTo) }; // 取赋值字段
+ }
+ processAfterDataRow.sType = process.sType;
+ processAfterDataRow.iPartOrder = iIndex;
+ processAfterDataRow.iOrder = iOrder + 1;
+ processAfterDataRow.sPartsName = partsDataRow.sPartsName;
+ processAfterDataRow.sId = commonUtils.createSid();
+ processAfterDataRow.sParentId = masterData.sId;
+ processAfterDataRow.sControlId = partsDataRow.sId;
+ processData.push(processAfterDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processPrintDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === partsDataRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = partsDataRow.sId;
+ processRow.sPartsName = partsDataRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ });
+ productProcessInfo.forEach((process, iOrder) => {
+ let processProductDataRow = {};
+ for (const item of processConfig.gdsconfigformslave) {
+ processProductDataRow[item.sName] = process[item.sName];
+ }
+ for (const child of Object.keys(process)) {
+ processProductDataRow[child] = process[child];
+ }
+ const iProductProcessIndex = dropDownDataProcessName.findIndex(item => item.sId === processProductDataRow.sProcessId);
+ if (iProductProcessIndex > -1) {
+ processProductDataRow = { ...processProductDataRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iProductProcessIndex], newCopyTo) }; // 取赋值字段
+ }
+ processProductDataRow.handleType = 'add';
+ processProductDataRow.sType = '3';
+ processProductDataRow.sPartsName = '';
+ processProductDataRow.iPartOrder = 999;
+ processProductDataRow.iOrder = iOrder + 1;
+ processProductDataRow.sId = commonUtils.createSid();
+ processProductDataRow.sParentId = masterData.sId;
+ processData.push(processProductDataRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processProductDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = -1;
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ processData = this.sortData(controlData, processData);
+ const addState = {};
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ }
+ 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,
+ });
+ }
+ }, timValue);
+ };
+
+ /* 勾选工序分类 */
+ handleProcessChange=(e, value, sPartsName) => {
+ let { checkProcessClassifyData } = this.props;
+ let index = -1;
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === value.sId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (e.target.checked) {
+ if (index <= -1) {
+ const newvalue = { ...value };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ } else if (index > -1) {
+ checkProcessClassifyData.splice(index, 1);
+ }
+ this.props.onSaveState({ checkProcessClassifyData });
+ };
+
+ handleSelectChangeProcess = (sAssignField, value, option) => {
+ const { masterData, sBackProcessClassifyData } = this.props;
+ let { checkProcessClassifyData } = this.props;
+ if (sAssignField !== undefined) {
+ // 这一段是处理工序的赋值字段,原因工序是动态生成,没用showtype
+ const sAssignFields = sAssignField.split(',');
+ const recordRow = option.props['data-recordrow'];
+ sAssignFields.forEach((item, iAssignIndex) => {
+ const itemsplits = item.split(':');
+ masterData[`${itemsplits[0]}`] = recordRow[itemsplits[1]];
+ if (iAssignIndex === 0) {
+ let index = -1;
+ const sPartsName = itemsplits[0].replace(recordRow.sParentId, '');
+ if (commonUtils.isNotEmptyArr(checkProcessClassifyData)) {
+ index = checkProcessClassifyData.findIndex(item => (item.sId === recordRow.sParentId && item.sPartsName === sPartsName));
+ } else {
+ checkProcessClassifyData = [];
+ }
+ if (index <= -1) {
+ const iBackProcessIndex = sBackProcessClassifyData.findIndex(item => item.sId === recordRow.sParentId);
+ if (iBackProcessIndex > -1) {
+ const newvalue = { ...sBackProcessClassifyData[iBackProcessIndex] };
+ newvalue.sPartsName = sPartsName;
+ checkProcessClassifyData.push(newvalue);
+ }
+ }
+ }
+ });
+ this.props.onSaveState({ masterData, checkProcessClassifyData });
+ }
+ }
+
+ handleA = (sId) => {
+ const { sBackProcessData } = this.props;
+ const data = sBackProcessData.filter(item => item.sParentId === sId);
+ const optionProcess = [];
+ data.forEach((item) => {
+ optionProcess.push();
+ });
+ return optionProcess;
+ }
+
+ handleSave = async () => {
+ // 判断控制表不能为空--开始
+ // let len = this.handleCheckControlLen();
+ // if (!len) {
+ // message.error('请选择部件');/* 请填写从表数据 */
+ // this.props.onSaveState({
+ // loading: false,
+ // calculated: false,
+ // });
+ // return;
+ // }
+ // 判断控制表不能为空--结束
+ this.form.validateFields(async (err) => {
+ /* 验证通过与不通过走不同的流程 */
+ if (err) { /* 验证失败 */
+ /* 直接渲染显示错误提示 */
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ this.props.onSaveState({
+ loading: false,
+ });
+ } else { /* 验证成功 */
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materials0Config: materialsConfig, materials0Data: materialsData, materials0DelData: materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, packConfig, packData, packDelData, app, calculated, sModelsType, addStateMap
+ } = this.props;
+ console.log('sdswwwssssd', slaveData);
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(this.props.app.commonConst, 'isNotNull')}`);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(controlConfig, controlData, this.props) ||
+ (!commonBusiness.validateTable(materialsConfig, materialsData, this.props)) || !commonBusiness.validateTable(processConfig, processData, this.props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ // if (commonUtils.isNotEmptyArr(materialsData)) {
+ // let flag = true;
+ // for (const item of materialsData) {
+ // if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) {
+ // message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */
+ // flag = false;
+ // break;
+ // }
+ // }
+ // if (!flag) {
+ // this.props.onSaveState({
+ // loading: false,
+ // });
+ // return;
+ // }
+ // }
+ /* 根据配置看是否调用自动计算 */
+ let bAutoCalculate = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bAutoCalculate');
+ if (iIndex > -1) {
+ bAutoCalculate = this.props.masterConfig.gdsconfigformslave[iIndex].sDefault === '1';
+ console.log('bAutoCalculate', bAutoCalculate);
+ }
+ }
+ if (sModelsType.includes('manufacture/workOrder') && !calculated && bAutoCalculate) {
+ message.warning('自动计算中,请稍后再试。');
+ await this.handleCalculation(true);
+ } else {
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ // data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+
+ if(commonUtils.isNotEmptyObject(addStateMap)){
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace('Config', '').trim();
+ const { [`${tableName}Data`]: tableData,[`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData} = this.props;
+ if(tableConfig.sTbName !== 'noTable') {
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+ }
+
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ }
+ }
+ });
+ };
+
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = async (name, selectedRowKeys) => {
+ /* 外置处理业务 */
+ if (name === 'slave') {
+ const {
+ slaveData, controlData, materialsData, enabled,
+ app,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若从表相关联的材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ if (materialsData) {
+ materialsData.filter(item => item.sParentId === slaveData[iIndex].sParentId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ }
+ }
+ if (!commonUtils.isEmptyArr(controlData) && controlData.length === 1) {
+ addState.controlSelectedRowKeys = [controlData[0].sId];
+ addState.treeSelectedKeys = [controlData[0].sId];
+ } else {
+ addState.controlSelectedRowKeys = [];
+ addState.treeSelectedKeys = [];
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData, app, enabled,
+ } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 若此条控制表中材料表被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ materialsData.filter(item => item.sControlId === tableData[iIndex].sId).forEach((itemNew) => {
+ const sOrderdetailUsed = itemNew.sOrderdetailUsed;
+ const sProductionUsed = itemNew.sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ }
+ });
+ }
+ if (iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ addState.processSelectedRowKeys = [];
+ addState.materialsSelectedRowKeys = [];
+ const { treeData } = this.props; /* 赋值给树组件节点 */
+ let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */
+ if (treeData !== undefined) {
+ treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ addState.treeSelectedKeys = treeSelectedKeys;
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'materials' || name === 'process') {
+ const { [`${name}Data`]: tableData, app, enabled , masterData} = this.props;
+ const addState = await this.props.onTableSelectRowChange(name, selectedRowKeys, null, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys.toString());
+ if (iIndex > -1) {
+ /* 工单中材料或工序,若该条数据被物料需求计划使用或是生产领料使用,则进行提示,阻止编辑 */
+ const sOrderdetailUsed = tableData[iIndex].sOrderdetailUsed;
+ const sProductionUsed = tableData[iIndex].sProductionUsed;
+ if (enabled && (commonUtils.isNotEmptyObject(sOrderdetailUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'OrderdetailUsed') + sOrderdetailUsed);
+ return;
+ }
+ if (enabled && (commonUtils.isNotEmptyObject(sProductionUsed))) {
+ message.error(commonFunc.showMessage(app.commonConst, 'sProductionUsed') + sProductionUsed);
+ return;
+ }
+ }
+ if (enabled && iIndex > -1 && !commonUtils.isEmpty(tableData[iIndex].sControlId)) {
+ addState.controlSelectedRowKeys = [tableData[iIndex].sControlId];
+ }
+ if(name === 'process') {
+ addState.processSelectedData = [tableData[iIndex]];
+ addState.processSelectedRowKeys = selectedRowKeys;
+ const sTypeName = 'sWorkOrderParam';
+ /* 把工艺参数塞入masterData */
+ const sParams = commonUtils.isNotEmptyArr(addState.processSelectedData) ? addState.processSelectedData[0].sParams : '';
+ const sParamData = commonUtils.isNotEmptyObject(sParams) ? JSON.parse(sParams) : [];
+ tableData[iIndex] = { ... tableData[iIndex], ...commonUtils.convertStrToObj( tableData[iIndex].sWorkOrderParam) };
+ const viewRow = tableData[iIndex];
+
+ /* 把sParams的数据替换到viewRow */
+ if(commonUtils.isNotEmptyArr(sParamData)) {
+ for (const key of Object.keys(viewRow)) {
+ if(key.includes('sParam')){
+ const filterData = sParamData.filter(item => item.sParamKey === key);
+ if(commonUtils.isNotEmptyArr(filterData)){
+ const num = key.replace('sParam', '').trim();
+ const newKey = `${key}_${sTypeName}_${addState.processSelectedData[0].sId}`;
+ const newDefalut = 'sParamDefault' + num;
+ masterData[newKey] = filterData[0].sParamValue;
+ // masterData[key] = filterData[0].sParamValue;
+ }
+ }
+ }
+ }
+ addState.masterData = masterData;
+
+ }
+ }
+ this.props.onSaveState(addState);
+ } else if (name === 'pack') {
+ const { [`${name}Data`]: tableData } = this.props;
+ const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ this.handleGetdFactProductQty(selectedRowKeys, tableData);
+ }
+ this.props.onSaveState(addState);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ };
+
+ handleShowParam = (processSelectedData, masterData) => {
+ const sTypeName = 'sWorkOrderParam';
+ /* 把工艺参数塞入masterData */
+ const sParams = commonUtils.isNotEmptyArr(processSelectedData) ? processSelectedData[0].sParams : '';
+ const sParamData = commonUtils.isNotEmptyObject(sParams) ? JSON.parse(sParams) : [];
+ let viewRow ={ ...processSelectedData[0], ...commonUtils.convertStrToObj(processSelectedData[0].sWorkOrderParam)};
+ /* 把sParams的数据替换到viewRow */
+ if(commonUtils.isNotEmptyArr(sParamData)) {
+ for (const key of Object.keys(viewRow)) {
+ if(key.includes('sParam')){
+ const filterData = sParamData.filter(item => item.sParamKey === key);
+ if(commonUtils.isNotEmptyArr(filterData)){
+ const num = key.replace('sParam', '').trim();
+ const newKey = `${key}_${sTypeName}_${processSelectedData[0].sId}`;
+ const newDefalut = 'sParamDefault' + num;
+ masterData[newKey] = filterData[0].sParamValue;
+ // masterData[key] = filterData[0].sParamValue;
+ }
+ }
+ }
+ }
+ return masterData;
+ }
+
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterData = (name, dataIndex, value, record) => {
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
+ }
+ };
+ /** 控制选择控制表时,显示成品材料与成品工序 */
+ handleFilterProductData = (name, dataIndex, value, record) => {
+ const { slaveSelectedRowKeys } = this.props;
+ if (value === undefined) {
+ return true;
+ }
+ this.handleTableRowLock(name, record);
+ if (name === 'process') {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') &&
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ } else {
+ return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
+ ((commonUtils.isNotEmptyStr(record.sCombinePartsName) && record.sCombinePartsName === slaveSelectedRowKeys[0]) || !record.sCombinePartsName);
+ }
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleGetFilterData = (name, bFinished) => {
+ const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props;
+ if (data !== undefined && ((commonUtils.isNotEmptyArr(controlSelectedRowKeys) && !bFinished) || bFinished)) {
+ if (name === 'materials' && bFinished) { /* 新增成品材料 */
+ return data.filter(item => item.sType === '2' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else if (name === 'process' && bFinished) { /* 新增成品工序s */
+ return data.filter(item => item.sType === '3' && (item.sCombinePartsName === slaveSelectedRowKeys[0] || !item.sCombinePartsName)).length;
+ } else {
+ const newArr = data.filter((item) => {
+ return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
+ });
+ return newArr.length;
+ }
+ }
+ };
+ handleKeyDown = (e, record, sName, name) => {
+ /* 生产施工单,当印刷方式是“自翻”时,反面颜色不应该可输入 */
+ if (commonUtils.isNotEmptyObject(record) && sName === 'iOppositeColor' && record.iPrintMode === 0) {
+ if (e.key !== 'F12') {
+ e.preventDefault();
+ }
+ } else {
+ this.props.onKeyDown(e, record, sName, name);
+ }
+ }
+
+ /** 添加表格空行 */
+ handleTableAdd = (name, flag, bchild, bFinished, bModalAdd) => {
+ const { masterConfig } = this.props;
+ if(bModalAdd === true) {
+ if(name === 'materials') {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productMaterials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseMaterials");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', 'materials', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ }
+ if(name === 'process') {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('productProcess', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProcess");
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', 'process', masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ }
+ return;
+ }
+ /* 外置处理业务 */
+ const {
+ gdsformconst, slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData,
+ } = this.props;
+ let { packData }=this.props;
+ if (name === 'control') {
+ /* 增加子部件 */
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (bchild === 'sameNode') { /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item.sId === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('部件数据生成错误![sAllId为空]');
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sId}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ }
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sControlParentId = treeSelectedKeys[0];
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = controlData[iIndex].sAllId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`;
+ }
+ }
+ if(bchild !=='sameNode' && bchild !=='childNode') { /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ let slaveSelectedRow = {};
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)){ /* 从表有选中行 */
+ const iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if(iSlaveIndex > -1){
+ slaveSelectedRow = slaveData[iSlaveIndex];
+ }
+ }else{ /* 没有选中行 */
+ if(slaveData.length ===1){
+ slaveSelectedRow =slaveData[0];
+ }else{
+ message.error('请选择从表!')
+ }
+ }
+
+ /* 新增工艺卡,部件名称要默认选中从表行的产品名称 */
+ tableDataRow.sPartsName = slaveSelectedRow.sProductName;
+
+ /* 部件表新增时,若合版表没有该sControlId 则默认取从表选中行,合拼1 作为一条packData数据 */
+ if(commonUtils.isEmptyArr(packData)){
+ packData =[];
+ }
+ if(false){
+ packData =[];
+ } else{
+ const iIndex =packData.findIndex(item=> item.sControlId === tableDataRow.sId);
+ if(iIndex ===-1){
+
+ if(commonUtils.isEmptyObject(slaveSelectedRow.sProductId)) {
+ message.error('请先选择产品!');
+ return;
+ }
+ if(slaveSelectedRow){
+ const packDataRow = this.handlePackDataAdd(slaveSelectedRow, 0, tableDataRow.sId, 'add');
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if(commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packDataRow;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ packData.push(packDataRow);
+ }
+
+ }
+ }
+
+ let dPartsQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ }
+ tableDataRow.dPartsQty = dPartsQty;
+ tableData.push(tableDataRow);
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ this.props.onSaveState({
+ ...treeState, [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], treeSelectedKeys: [tableDataRow.sId], packData,
+ });
+ } else if (name === 'materials' || name === 'process') {
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) {
+ message.warn(commonFunc.showMessage(gdsformconst, 'pleaseChooseParts')); // 请选择部件
+ return;
+ }
+ if(bFinished) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`;
+ tableDataRow.sCombinePartsName = slaveData[iIndex].sId;
+ if (name === 'materials') { /* 新增成品材料 */
+ tableDataRow.sType = '2';
+ }
+ if (name === 'process') { /* 新增成品工序 */
+ tableDataRow.sType = '3';
+ }
+ }
+ } else {
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
+ message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ // tableDataRow.iOrder = controlData[iIndex];
+ }
+ }
+
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if( name === 'materials0') {
+ const { processSelectedRowKeys, processData, controlSelectedRowKeys, slaveData, controlData, sModelsType, slaveSelectedRowKeys } = this.props;
+ let tableNewData = [];
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ tableNewData = tableData;
+ }
+ // if(commonUtils.isEmptyArr(controlSelectedRowKeys)) {
+ // message.error('请选择部件!');
+ // }
+
+ const iSlaveIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)) : -1;
+ let slaveRow ={};
+ if(iSlaveIndex > -1 ){
+ slaveRow = slaveData[iSlaveIndex];
+ }else if(commonUtils.isNotEmptyArr(slaveData) && slaveData.length ===1) {
+ slaveRow = slaveData[0];
+ }
+ const iIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ let controlRow ={};
+ if(iIndex > -1 ){
+ controlRow = controlData[iIndex];
+ }
+
+ const iProcessIndex = processData.findIndex(item => processSelectedRowKeys.includes(item.sId));
+ let processRow ={};
+ if(iIndex > -1 ){
+ processRow = processData[iProcessIndex];
+ }
+
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ /* 材料初试工单单独新增按钮增加的是 产品材料 */
+ if(sModelsType === 'manufacture/workOrder3Materials') {
+ tableDataRow.sCombinePartsName = slaveRow.sId;
+ }else {
+ tableDataRow.sControlId = controlRow.sId;
+ if(commonUtils.isNotEmptyObject(processRow)) {
+ tableDataRow.sProcessId = processRow.sProcessId;
+ tableDataRow.sProcessTbId = processRow.sId;
+ }
+ }
+ tableNewData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableNewData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } else if (name === 'slave') {
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app } = this.props;
+ let { expKeys }= this.props;
+ if(commonUtils.isEmptyArr(expKeys)) {
+ expKeys = [];
+ }
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));
+ return;
+ }
+ if (bchild === 'childNode') { /* 添加子级 */
+ tableDataRow.sFatherSlaveId = tableSelectedRowKeys[0];
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ const sAllId = commonUtils.isNotEmptyObject(tableData[iIndex].sAllId)? tableData[iIndex].sAllId : tableData[iIndex].sId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${tableData[iIndex].sAllId},${tableDataRow.sId}`;
+ tableDataRow.sCustomerId = tableData[iIndex].sCustomerId;
+ tableDataRow.sCustomerName= tableData[iIndex].sCustomerName;
+ }
+ /* 新增子级时 子级展开 */
+ expKeys.push(tableSelectedRowKeys[0]); /* 展开只要展开父级即可 */
+ }
+ if(bchild !=='sameNode' && bchild !=='childNode') { /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sId;
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], expKeys });
+ } else {
+ return this.props.onDataRowAdd(name, flag);
+ }
+ };
+ /** 删除表格数据 */
+ otherTableDel = (name, tableSelectedRowKeys, sField) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ const sFieldName = commonUtils.isEmpty(sField) ? 'sControlId' : sField;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据s */
+ let tableDataIndex = tableData.findIndex(item => item[sFieldName] === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item[sFieldName] === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ }
+
+
+ otherCommonTableDel = (name, tableSelectedRowKeys, sKey) => {
+ const tableData = this.props[`${name}Data`];
+ let tableDelData = this.props[`${name}DelData`];
+ tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
+ for (const sId of tableSelectedRowKeys) {
+ /* 看看删除集合和从表中是否都存在该条数据 */
+ let tableDataIndex = tableData.findIndex(item => item[sKey] === sId);
+ while (tableDataIndex > -1) {
+ /* 删除从表中的数据并存入删除集合中 */
+ const slaveDataFilter = tableData[tableDataIndex];
+ tableData.splice(tableDataIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+ tableDataIndex = tableData.findIndex(item => item[sId] === sId);
+ }
+ }
+ return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
+ };
+
+ /** 删除表格数据 */
+ handleTableDel = async (name, flag, tableSelectedRowKeys) => {
+ if (name === 'slave') {
+ /* 删除sSlaveId关联的合版表 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys, 'sSlaveId');
+ const materielReturnData = this.otherTableDel('materials', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品材料 */
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys, 'sCombinePartsName'); /* 删除成品工序 */
+ const slaveReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materielReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...slaveReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'control') {
+ const { controlData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ let { treeSelectedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const iIndex = controlData.findIndex(item => tableSelectedRowKeys.includes(item.sId) && item.rowTag === 1);
+ if (iIndex > -1) {
+ /* 如果行被锁定不可更改删除时 */
+ return false;
+ }
+ /* 删除该节点及所有子节点 */
+ treeSelectedKeys = treeSelectedKeys || [];
+ const controlChildData = controlData.filter(item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableSelectedRowKeys[0]) > -1 && item.sId !== tableSelectedRowKeys[0]);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
+ const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
+ const packReturnData = this.otherTableDel('pack', tableSelectedRowKeys);
+ const controlReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ const treeState = this.handleGetControlTreeData(controlReturnData.controlData, true);
+ this.props.onSaveState({
+ ...treeState,
+ ...materialsReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ message.warn('请选择要删除的部件!');
+ return false;
+ }
+ } else if (name === 'process') {
+ const {
+ sModelsId, [`${name}Data`]: tableData, materialsConfig, materialsData, token,
+ } = this.props;
+ let { materialsDelData } = this.props;
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ const tableDelData = [];
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ let iMaterialsIndex = -1;
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+
+ const sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ const processReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processReturnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = 'del';
+ tableDelData.push(slaveDataFilter);
+
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === slaveDataFilter.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+
+ processReturnData.processDelData.concat(tableDelData);
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = '';
+ materialsData[iMaterialsIndex].sProcessTbId = '';
+ materialsData[iMaterialsIndex].sMaterialsProcessName = '';
+ }
+ /* 删除工序对应的材料 */
+ const materialsFilterDelData = materialsData.filter(item => tableSelectedRowKeys.includes(item.sProcessTbId) && item.sProcessId === sProcessId );
+ let materialsSelectedDelRowKeys = [];
+ if(commonUtils.isNotEmptyArr(materialsFilterDelData)) {
+ materialsFilterDelData.forEach((item) =>{
+ materialsSelectedDelRowKeys.push(item.sId);
+ })
+ }
+ let materialsReturnData = {};
+ if (commonUtils.isNotEmptyArr(materialsSelectedDelRowKeys)) {
+ materialsReturnData = this.props.onDataRowDel('materials0', true, materialsSelectedDelRowKeys);
+ if(commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) {
+ materialsReturnData.materials0DelData = materialsReturnData.materials0DelData.concat(materialsDelData);
+ }
+ }
+ this.props.onSaveState({
+ ...processReturnData,
+ materialsDelData,
+ ...materialsReturnData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ } else if(name ==='materials1' || name === 'materials1Child' || name ==='materials2' || name ==='materials2Child'){
+ /* 从全部材料里 找到对应数据 进行更改 */
+ const {
+ sModelsId, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Data`]: tableData, materialsConfig, materials0Data, token,
+ } = this.props;
+ if(commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.error('请选择数据!');
+ return ;
+ }
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const materials0ReturnData = this.otherCommonTableDel('materials0', tableSelectedRowKeys, 'sId');
+ const tableReturnData = this.props.onDataRowDel(name, true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...materials0ReturnData,
+ ...tableReturnData,
+ });
+
+ }
+ } else {
+ return this.props.onDataRowDel(name, flag, tableSelectedRowKeys);
+ }
+ };
+ /** 材料被使用锁定表格数据行 */
+ handleTableRowLock = async (name, record) => {
+ const { slaveData, controlData, enabled } = this.props;
+ if (commonUtils.isNotEmptyObject(record) && enabled) {
+ if (name === 'materials' || name === 'process') {
+ const { sOrderdetailUsed, sProductionUsed } = record;
+ if (commonUtils.isNotEmptyObject(sOrderdetailUsed) || commonUtils.isNotEmptyObject(sProductionUsed)) {
+ record.rowTag = 1;
+ controlData.filter(item => item.sId === record.sControlId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ slaveData.filter(item => item.sParentId === record.sParentId).forEach((itemNew) => {
+ itemNew.rowTag = 1;
+ });
+ }
+ }
+ }
+ }
+
+ handleCheckControlLen = () => {
+ let controlTableData = [];
+ if(commonBusiness.getTableTypes('control', this.props).data && commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.slaveData)) {
+ const iSlaveIndex = this.props.slaveData.findIndex(item => item.sId === this.props.slaveSelectedRowKeys[0]);
+ const slaveSelectedRow = this.props.slaveData[iSlaveIndex] || {sProductNo: 0};
+ if(iSlaveIndex !== -1) {
+ commonBusiness.getTableTypes('control', this.props).data.forEach(item => {
+ if(item.sCombinedMemo && item.sCombinedMemo !== '' && item.sCombinedMemo !== '合版信息') {
+ const sCombinedMemoArr = commonUtils.isJSON(item.sCombinedMemo) ? JSON.parse(item.sCombinedMemo) : [];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo && item.sProductNo.indexOf(slaveSelectedRow.sProductNo) !== -1).length;
+ if(len) {
+ controlTableData.push(item);
+ }
+ } else {
+ controlTableData.push(item);
+ }
+ })
+ } else {
+ controlTableData = commonBusiness.getTableTypes('control', this.props).data;
+ }
+ }
+ return controlTableData.length;
+ }
+
+ handleCalculation = async (bSave) => {
+ const dataUrl = `${commonConfig.server_host}business/addWorksheet?sModelsId=${this.props.sModelsId}`;
+ const {
+ app, masterConfig, slaveConfig, packConfig, controlConfig, materialsConfig, processConfig, colorConfig, sModelsType, colorData, slaveDelData, controlDelData, materialsDelData, processDelData, colorDelData, packDelData,
+ addStateMap,
+ } = this.props;
+ // 判断控制表不能为空--开始
+ // let len = this.handleCheckControlLen();
+ // if (!len) {
+ // message.error('请选择部件');/* 请填写从表数据 */
+ // this.props.onSaveState({
+ // loading: false,
+ // calculated: false,
+ // });
+ // return;
+ // }
+ // 判断控制表不能为空--结束
+ let {
+ slaveData, packData, controlData, materialsData, materials0Data, processData, masterData,
+ } = this.props;
+ const sMakePerson = masterData.sMakePerson;
+ const dataCalculation = [];
+ if ((masterData.sFormId === '101251240115015840916341460' || sModelsType.includes('manufacture/workOrderSupple')) && commonUtils.isNotEmptyArr(colorData)) {
+ controlData.forEach((item) => {
+ item.iPositiveColor = colorData.filter(item => !item.bNotColor).length;
+ });
+ }
+ dataCalculation.push(commonBusiness.mergeData('master', `${masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ dataCalculation.push(commonBusiness.mergeData('slave', `${slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('control', `${controlConfig.sTbName.toLowerCase()}_tmp`, controlData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('pack', `${packConfig.sTbName.toLowerCase()}_tmp`, packData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('materials0', `${materialsConfig.sTbName.toLowerCase()}_tmp`, materialsData, [], true));
+ dataCalculation.push(commonBusiness.mergeData('process', `${processConfig.sTbName.toLowerCase()}_tmp`, processData, [], true));
+ const value = { data: dataCalculation, sClientType: '1', sGuid: masterData.sId };
+ const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
+ if (dataReturn.code === 1) { /* 成功 */
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ if (masterData.handleType === 'update' && !commonUtils.isEmpty(sMakePerson)) {
+ masterData.sMakePerson = sMakePerson;
+ }
+ slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`];
+ packData = valueReturn[`${packConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${controlConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${processConfig.sTbName.toLowerCase()}_tmp`];
+ // processData = this.sortData(controlData, processData);
+
+ /* 计算成功后自动调用保存 */
+ if (bSave) {
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ // data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ if(commonUtils.isNotEmptyObject(addStateMap)){
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace('Config', '').trim();
+ const { [`${tableName}Data`]: tableData,[`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData} = this.props;
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId,
+ });
+ } else {
+ this.props.onSaveState({
+ slaveData, packData, controlData, materialsData, materials0Data, processData, masterData, loading: false, calculated: true,
+ });
+
+ message.success(commonFunc.getConfigShowName(masterConfig, 'BtnCalculation') + commonFunc.showMessage(app.commonConst, 'handleSuccess'));
+ }
+ } else { /* 失败 */
+ this.props.onSaveState({
+ loading: false,
+ calculated: false,
+ });
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ /** 按钮操作事件 */
+ handleButtonClick = async (name) => {
+ if (name === 'BtnCalculation') {
+ this.props.onSaveState({
+ loading: true,
+ });
+ this.handleCalculation();
+ } else if (name === 'BtnChooseProcess') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('process', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnChooseMaterials') {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, masterConfig, app,
+ } = this.props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoSlaveData'));/* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseSlaveData'));/* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseProduct'));/* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoControlData'));/* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ this.props.onBtnChoose('materials', name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === 'BtnFastOrder') {
+ const {
+ masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData,
+ } = this.props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (commonUtils.isEmptyArr(checkProcessClassifyData) && commonUtils.isNotEmptyArr(controlData) && !commonUtils.isEmpty(changeData) && !commonUtils.isEmpty(changeData.sAllPartsName)) {
+ const allPartsName = changeData.sAllPartsName.split(',');
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach((item) => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData.filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === '3').forEach((processItem) => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await this.handleMasterChange('master', 'sProductClassifyName', returnValue, masterData.sId, null);
+ }
+ }
+ this.props.onSaveState({ fastOrderModalVisible: true, workOrderAllprogress: 0, ...addState });
+ } else if (name === 'BtnCombine') {
+ const { slaveData: slaveDataOld, controlData: controlDataOld } = this.props;
+ let dMaxQty = 0;
+ let dSumMachineQty = 0;
+ slaveDataOld.forEach((item) => {
+ if (commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty > dMaxQty) {
+ dMaxQty = Math.ceil(commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty);
+ }
+ });
+ const controlData = [];
+ if (commonUtils.isNotEmptyArr(controlDataOld)) {
+ controlDataOld.forEach((item) => {
+ let controlRow = { ...item, dPartsQty: dMaxQty };
+ controlRow = this.singlePQtyChange(controlRow);
+ controlData.push(controlRow);
+ });
+ dSumMachineQty = controlData[0].dSumMachineQty;
+ }
+ const slaveData = [];
+ slaveDataOld.forEach((item) => {
+ slaveData.push({ ...item, dProductQty: dSumMachineQty * item.dCombineQty });
+ });
+ this.props.onSaveState({ slaveData, controlData });
+ } else if (name === 'BtnDraft') {
+ const {
+ masterConfig, masterData, slaveConfig, slaveData, slaveDelData, controlConfig, controlData, controlDelData,
+ materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig,
+ colorData, colorDelData, packConfig, packData, packDelData,
+ } = this.props;
+ const data = [];
+ slaveConfig.gdsconfigformslave.forEach((itemConfig) => {
+ slaveData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ controlConfig.gdsconfigformslave.forEach((itemConfig) => {
+ controlData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ materialsConfig.gdsconfigformslave.forEach((itemConfig) => {
+ materialsData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ processConfig.gdsconfigformslave.forEach((itemConfig) => {
+ processData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packConfig.gdsconfigformslave.forEach((itemConfig) => {
+ packData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorConfig.gdsconfigformslave.forEach((itemConfig) => {
+ colorData.filter(itemData => itemData.handleType === 'add' || itemData.handleType === 'update').forEach((itemData) => {
+ itemData.NoVerify = 'NoVerify';
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] = firstDataIndex === 's' ? '' :
+ firstDataIndex === 'd' || firstDataIndex === 'i' ? 0 :
+ firstDataIndex === 'b' ? false :
+ firstDataIndex === 't' ? moment(new Date()).format(this.props.app.dateFormat) : undefined;
+ }
+ });
+ });
+ }
+
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData));
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData));
+ }
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData));
+ }
+ this.props.onSaveData({
+ data, sClientType: '1', loading: false, sSysLogSrcId: masterData.sId, bIsUnCcg: false,
+ });
+ } else if(name === 'BtnWorkFlow') {
+ const dataUrl = `${commonConfig.server_host}workOrderFlow/getWorkOrderFlow/`;
+ let {token} = this.props.app
+ let { slaveData, controlData, materialsData, processData, packData} = this.props
+ const value = {
+ slave:slaveData,
+ control:controlData,
+ materials:materialsData,
+ process:processData,
+ pack:packData
+ }
+ let dataReturn = (await commonServices.postValueService(token,value,dataUrl)).data;
+ if (commonUtils.isNotEmptyObject(dataReturn)) {
+ if (dataReturn.code === 1) {
+ const flowData = dataReturn.dataset.rows[0];
+ console.log(flowData);
+ if (commonUtils.isNotEmptyObject(flowData)) {
+ this.props.onSaveState({
+ flowData: flowData,workFlowVisible:true
+ });
+ // localStorage.setItem('flow', JSON.stringify(flowData));
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ } else {
+ this.props.onButtonClick(name);
+ }
+ };
+
+ /* 上一条、下一条、首条、末条 */
+ handleSearchData = async (handleType) => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, packConfig,
+ } = this.props;
+ const bReturn = await this.props.onSearchData(handleType);
+ if (bReturn) {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ }
+ };
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ const {
+ controlConfig, materialsConfig, processConfig, colorConfig, packConfig,
+ } = this.props;
+ this.props.onEdit(() => {
+ this.handleGetData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig, { loading: false, enabled: true });
+ });
+ };
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, masterData, slaveData, controlData, materialsData, processData, colorData, packData, app, token, sModelsId, formRoute,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materialsData;
+ copyTo.processData = processData;
+ copyTo.colorData = colorData;
+ copyTo.packData = packData;
+ copyTo.srcFormRoute = formRoute; /* 来源路由 */
+ copyTo.oldFormId = sModelsId; /* 生成前的模块ID */
+ copyTo.newFormId = sActiveId; /* 生成后的模块ID */
+ const tbSuffix = '';
+ let sId = '';
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ // eslint-disable-next-line no-underscore-dangle
+ const _this = this; // 解决confirm中this指向问题;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ _this.handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ this.handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = this.props;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */
+ copyTo,
+ },
+ });
+ };
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, masterConfig, masterData, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, app,
+ } = props;
+ const { userinfo, systemData } = app;
+ const { sMakePerson } = masterData; /* 本单据制单人 */
+ const { sUserName, sType } = userinfo;/* 登录用户 */
+ const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson');
+ if (iIndex > -1) {
+ const sValue = systemData[iIndex].sValue;
+ if (sValue === '0') { /* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */
+ if (sType !== 'sysadmin' && sUserName !== sMakePerson) {
+ message.error(commonFunc.showMessage(app.commonConst, 'NoDelByNoMakePerson'));
+ return;
+ }
+ }
+ }
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: masterConfig.sTbName,
+ sId: [masterData.sId],
+ sSlaveTable: [
+ {
+ tableName: slaveConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: checkConfig.sTbName,
+ relationName: 'sBillId',
+ }, {
+ tableName: controlConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: materialsConfig.sTbName,
+ relationName: 'sParentId',
+ }, {
+ tableName: processConfig.sTbName,
+ relationName: 'sParentId',
+ }],
+ },
+ };
+ const { sBillNo, sId } = masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.props.onDelDataSuccess(props);
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ };
+
+ /* 删除 */
+ handleDel = (obj) => {
+ const props = { ...this.props, ...this.state };
+ const onOkDel = this.handleOkDel;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /* 取消操作 */
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig, slaveConfig, checkConfig, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, app,
+ } = this.props;
+ const onGetData = this.props.onGetData;
+ const onGetDataOk = this.handleGetData;
+ const onSaveStateOk = this.props.onSaveState;
+ const onSendSocketMessage = this.props.handleSendSocketMessage;
+ const { copyTo } = app.currentPane;
+ const { userinfo } = app;
+ confirm({
+ title: obj.title,
+ onOk() {
+ onGetData(masterConfig, slaveConfig, checkConfig);
+ onGetDataOk(controlConfig, materialsConfig, processConfig, colorConfig, packConfig);
+ onSaveStateOk({ enabled: false });
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { slaveData } = copyTo;
+ const sIdArray = [];
+ slaveData.forEach((item) => {
+ const redisKey = item.sSlaveId;
+ sIdArray.push(redisKey);
+ });
+ const sId = sIdArray.toString();
+ onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
+ }
+ },
+ onCancel() {
+ },
+ });
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const {
+ masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig,
+ } = this.props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await this.props.onAdd(config, copyTo, true);
+ let { slaveData, masterData } = state;
+ let controlData = [];
+ let packData = [];
+ let materialsData = [];
+ let materials0Data = []; /* 全部材料 */
+ let processData = [];
+ const colorData = [];
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const {
+ app, sModelsId, token, sModelsType,
+ } = this.props;
+ const bCkxCopyFromTechnology = app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ const bCopyFromProcessCard = (commonUtils.isNotEmptyObject(copyTo.oldFormId) && copyTo.oldFormId === copyTo.newFormId) || sModelsType === 'manufacture/workOrder2' || copyTo.name && copyTo.name.includes('tmpInfoBySql');
+ if (bCkxCopyFromTechnology === '1' && !bCopyFromProcessCard) {
+ if (slaveData.length > 1) {
+ const dataUrl = `${commonConfig.server_host}business/getCopyToWorkOrderData?sModelsId=${sModelsId}`;
+ const data = [];
+ data.push(commonBusiness.mergeData('master', `${config.masterConfig.sTbName.toLowerCase()}_Tmp`, [masterData], [], true));
+ data.push(commonBusiness.mergeData('slave', `${config.slaveConfig.sTbName.toLowerCase()}_tmp`, slaveData, [], true));
+ const value = {
+ data, sClientType: '1', sGuid: masterData.sId, sConfigId: copyTo.config[0].sId, sControlName: copyTo.name,
+ };
+ const dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const valueReturn = dataReturn.dataset.rows[0];
+ const masterDataArr = valueReturn[`${config.masterConfig.sTbName.toLowerCase()}_tmp`];
+ if (commonUtils.isNotEmptyArr(masterDataArr)) {
+ masterData = masterDataArr[0];
+ }
+ slaveData = valueReturn[`${config.slaveConfig.sTbName.toLowerCase()}_tmp`];
+ controlData = valueReturn[`${config.controlConfig.sTbName.toLowerCase()}_tmp`];
+ packData = valueReturn[`${config.packConfig.sTbName.toLowerCase()}_tmp`];
+ materialsData = valueReturn[`${config.materialsConfig.sTbName.toLowerCase()}_tmp`];
+ processData = valueReturn[`${config.processConfig.sTbName.toLowerCase()}_tmp`];
+ processData = this.sortData(controlData, processData);
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach((slaveItem) => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase());
+ const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveAssignField = commonUtils.isNotEmptyObject(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ state.masterData = masterData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ if (slaveData.length === 1 && returnData.slaveData.length ===1){ /* 从表与返回数据从表只有一条时 替换该从表数据 */
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ slaveData.forEach((item, iSlaveIndex) => {
+ item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ slaveData[iSlaveIndex] = item;
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ } else {
+ // slaveData =[];
+ returnData.slaveData.forEach((slaveItem) => {
+ newCopyTo.slave = slaveItem;
+ const iSameIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId) : -1;
+ if(iSameIndex > -1){
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex] = { ...slaveData[iSameIndex], ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0) + commonUtils.isNull(slaveItem.dGiveQty, 0) + commonUtils.isNull(slaveItem.dStockupQty, 0);
+ }
+ } else {
+ let slaveRow = {};
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = slaveItem.sSlaveId;
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ }
+ // slaveData.forEach((item, iSlaveIndex) => {
+ // if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ // item = { ...item, ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ // }
+ // slaveData[iSlaveIndex] = item;
+ // if (dProductQty) {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ // } else {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // }
+ // });
+ const treeCopyNodes = new Map();
+ await returnData.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ await returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ // eslint-disable-next-line radix
+ if (true) {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ } else if (false && slaveData.length > 1) {
+ let sInfo;
+ slaveData.forEach((item) => {
+ sInfo = commonUtils.isEmpty(sInfo) ? `${item.sCustomerId}|${item.sProductId}` : `${sInfo},${item.sCustomerId}|${item.sProductId}`;
+ });
+ const dataUrl = `${commonConfig.server_host}salesorder/getgdsemigoodsMatchInfo?sModelsId=${sModelsId}`;
+ const params = {
+ customerProductInfo: sInfo,
+ };
+ const dataCombineProcess = (await commonServices.postValueService(token, params, dataUrl)).data;
+ if (dataCombineProcess.code === 1) {
+ const returnData = dataCombineProcess.dataset.rows;
+ returnData.forEach((processItem, processIndex) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.sSlaveCustomerId = processItem.sCustomerId;
+ processRow.sCustomerName = processItem.sCustomerName;
+ processRow.sSlaveProductId = processItem.sProductId;
+
+ processRow.sProductName = processItem.sProductName;
+ processRow.iOrder = processIndex + 1;
+ processRow.sType = '3';
+
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processData.push(processRow);
+ });
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let bProcessAssort = true;
+ /* 生产翻单不生成配套工序 */
+ const srcFormRoute = copyTo.srcFormRoute; /* 未清来源路径 */
+ if (sModelsType === 'manufacture/workOrder' && (commonUtils.isEmpty(srcFormRoute) || srcFormRoute.includes('workOrder'))) {
+ bProcessAssort = false;
+ }
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData) && copyTo.name && !copyTo.name.includes('tmpInfoBySql')) {
+ const { token } = this.props;
+ const sSlaveId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sSlaveId) ? copyTo.slaveData[0].sSlaveId : copyTo.slaveData[0].sId;
+ const condition = { sSlaveId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.packData = returnData.packData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ await this.props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ // let dProductQty = 0;
+ // slaveData.forEach((item) => {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ const treeCopyNodes = new Map();
+ await copyTo.controlData.forEach(async (controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sOriginalId = controlItem.sId; /* 复制前的部件表sId */
+ controlRow.sParentId = masterData.sId;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ // controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ await copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId || item.sOrderSlaveId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData) && commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sType !== '2').forEach(async (materialsItem) => { //item.sControlId === controlItem.sId &&
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ const iSrcProcessIndex = copyTo.processData.findIndex(item => item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iSrcProcessIndex > -1) {
+ materialsRow.sCombinePartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : '';
+ }
+ } else {
+ materialsRow.sCombinePartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : '';
+ }
+
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sType === '2').forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ materialsRow.sCombinePartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : '';
+ materialsData.push(materialsRow);
+ });
+ // /* 材料初中试工单 */
+ if (commonUtils.isEmptyArr(copyTo.controlData)) {
+ copyTo.materialsData.forEach(async (materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo)}; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+ materialsRow.sCombinePartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : '';
+ materialsData.push(materialsRow);
+ });
+ }
+
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData)&& commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ if (sModelsType.includes('workOrderSet')) { /* 通用工单的合版部件名称来自于控制表,复制到时需换成新生成的控制表sId */
+ const controlFilterData = controlData.filter(item => sOldArr.includes(item.sOriginalId));
+ if (commonUtils.isNotEmptyArr(controlFilterData)) {
+ controlFilterData.forEach((item) => {
+ sNewIds += `${item.sId},`;
+ sNewNames += `${item.sPartsName},`;
+ });
+ }
+ } else {
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (dProductQty) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ tableDataRow.sAllId = tableDataRow.sId;/* 第一级sAllId等于sId */
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = this.sortData(controlData, processData);
+ }
+ } else {
+ state.fastOrderModalVisible = this.props.bFastOrderView;
+ const { sModelsId } = this.props;
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = config.masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === 'huace');
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(',');
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(':') > -1) {
+ const sFieldName = child.split(':')[0].trim();
+ const sValueName = child.split(':')[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ const addState = await this.handleMasterChange('master', 'sProductClassifyName', { ...masterData, ...returnValue }, masterData.sId, null, { masterData, masterConfig: config.masterConfig }, true);
+ state = { ...state, ...addState };
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1; /* 序号从1开始 */
+ tableDataRow.sCombinedMemo = '合版信息';
+ tableDataRow.sAllId = tableDataRow.sId;
+
+ if(commonUtils.isEmptyObject(tableDataRow.sPartsName)) {
+ tableDataRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sProductName : '';
+ }
+
+ let dProductQty = 0;
+ slaveData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ tableDataRow.dPartsQty = dProductQty;
+ /* 点击新增按钮 控制表自动默认增一条 同时默认新增一条合版表 */
+ if(commonUtils.isNotEmptyArr(slaveData) && slaveData.length === 1 && commonUtils.isEmptyArr(packData)){
+ const packDataRow = this.handlePackDataAdd(slaveData[0], 0, tableDataRow.sId, 'add');
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if(commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)){ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packDataRow;
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ packData.push(packDataRow);
+ }
+ controlData.push(tableDataRow);
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true); /* 加载树形结构数据 */
+ const stateNew = {
+ ...state,
+ ...treeState,
+ slaveData,
+ controlData,
+ controlSelectedRowKeys: [],
+ packData,
+ packSelectedRowKeys: [],
+ materialsData,
+ materials0Data: materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ processSelectedRowKeys: [],
+ colorData,
+ colorSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ this.props.onSaveState(stateNew);
+ }
+ };
+
+ handleSelect = async (name, selectConfig, selectData) => {
+ if(name === 'materials') {
+ name = 'materials0';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, controlSelectedRowKeys, sModelsId, token,
+ slaveConfig, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, slaveData, controlData: controlDataOld, materialsData: materialsDataOld, processData: processDataOld, colorData: colorDataOld,
+ controlDelData: controlDelDataOld, materialsDelData: materialsDelDataOld, processDelData: processDelDataOld, colorDelData: colorDelDataOld,
+ materials0Data: materials0DataOld, materials0DelData: materials0DelDataOld, packDelData: packDelDataOld,
+ } = this.props;
+ let { masterData, slaveSelectedRowKeys } = this.props;
+ console.log('name', name, selectConfig);
+ if (name === 'productProcessInfo') {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ let { materials0Data, processData, colorData, controlData, }= this.props;
+ // const controlData = [];
+ // const materials0Data = [];
+ // const processData = [];
+ // const colorData = [];
+ let packData = [];
+ const addState = {};
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const materials0DelData = commonUtils.isEmptyArr(materials0DelDataOld) ? [] : materials0DelDataOld;
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ const packDelData = commonUtils.isEmptyArr(packDelDataOld) ? [] : packDelDataOld;
+
+ let iSlaveIndex = -1;
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ slaveSelectedRowKeys = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sId : [];
+ }
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ /* 选择产品工艺卡 如果选择的从表的packData合拼的其他的 则不删除 没有合拼产品的 或是合拼产品为1的删除 删除新增增加的第一条数据*/
+ const controlDelRowKeys = [];
+ if(iSlaveIndex > -1 && commonUtils.isNotEmptyArr(controlDataOld)) {
+ controlDataOld.forEach((item) => {
+ const jsonArr = commonUtils.isEmptyObject(item.sCombinedMemo) || item.sCombinedMemo ==='合版信息' ? []: JSON.parse(item.sCombinedMemo);
+ if((jsonArr.length ===1 && jsonArr[0].sProductNo === slaveData[iSlaveIndex].sProductNo)){
+ item.handleType = 'del';
+ controlDelData.push(item);
+ controlDelRowKeys.push(item.sId); /* 删除部件时 同步删除材料与工序 */
+ let tableDataIndex = controlData.findIndex(itemOld => itemOld.sId === item.sId);
+ if(tableDataIndex > -1) {
+ /* 同步删除合版表 */
+ const iIndexPack = packData.findIndex(itemDel =>itemDel.sControlId === controlData[tableDataIndex].sId );
+ if (iIndexPack > -1) {
+ const packDataDelRow = packData[iIndexPack];
+ packDataDelRow.handleType = 'del';
+ packDelData.push(packDataDelRow);
+ packData.splice(iIndexPack, 1);
+ }
+ controlData.splice(tableDataIndex, 1);
+ }
+ }
+ });
+ }
+ let materialsReturnData = {};
+ let processReturnData ={};
+ if(commonUtils.isNotEmptyArr(controlDelRowKeys)) {
+ materialsReturnData = this.otherTableDel('materials0', controlDelRowKeys);
+ processReturnData = this.otherTableDel('process', controlDelRowKeys);
+ }
+
+ addState.controlDelData = controlDelData;
+
+
+ if(commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) {
+ addState.materials0DelData= materialsReturnData.materialsDelData;
+ materials0Data= materialsReturnData.materials0Data;
+ } else {
+ addState.materials0DelData = materials0DelData;
+ }
+
+
+ if(commonUtils.isNotEmptyObject(processReturnData) && commonUtils.isNotEmptyArr(processReturnData.processDelData)) {
+ addState.processDelData= processReturnData.processDelData;
+ processData = processReturnData.processData;
+ } else {
+ addState.processDelData = processDelData;
+ }
+
+ addState.colorDelData = colorDelData;
+
+ addState.packDelData = packDelData;
+ console.log('addState删除:', addState);
+ // controlDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // controlDelData.push(item);
+ // });
+ // addState.controlDelData = controlDelData;
+ // materialsDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // materialsDelData.push(item);
+ // });
+ // addState.materialsDelData = materialsDelData;
+ // processDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // processDelData.push(item);
+ // });
+ // addState.processDelData = processDelData;
+ // if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ // colorDataOld.forEach((item) => {
+ // item.handleType = 'del';
+ // colorDelData.push(item);
+ // });
+ // }
+ // addState.colorDelData = colorDelData;
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+ let condition = { sCardId: selectData[0].sId, sRowData: selectData };
+ let dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+
+ /* 复制从工单功能 */
+ const { productProcessInfoCopyFromKey } = this.props;
+ let bCopyFromWorkOrder = false;
+ if (commonUtils.isNotEmptyObject(productProcessInfoCopyFromKey) && productProcessInfoCopyFromKey.includes('BtnCopyFrom.sworkorder')) {
+ // bCopyFromWorkOrder = true;
+ condition = { sWorkOrderId: selectData[0].sId, slaveData };
+ // dataUrl = `${commonConfig.server_host}salesorder/getCopyFromWorkOrder/?sModelsId=${sModelsId}`;
+ dataUrl = `${commonConfig.server_host}salesorder/getWorkOrderToWorkOrder/?sModelsId=${sModelsId}`;
+ }
+
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+
+ /* 复制从工单逻辑 源数据集整体赋值 */
+ if (bCopyFromWorkOrder && dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ let treeState = [];
+ if (commonUtils.isNotEmptyArr(returnData)) {
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ controlData = returnData.controlData;
+ treeState = this.handleGetControlTreeData(controlData, true);
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ materials0Data = returnData.materialsData;
+ materials0Data.forEach((item, idx) => {
+ materialsData[idx].sPartsName = controlData.filter(o => o.sId === item.sControlId).length ?
+ controlData.filter(o => o.sId === item.sControlId)[0].sPartsName : '';
+ })
+ }
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ processData = returnData.processData;
+ processData.forEach((item, idx) => {
+ processData[idx].sPartsName = controlData.filter(o => o.sId === item.sControlId).length ?
+ controlData.filter(o => o.sId === item.sControlId)[0].sPartsName : '';
+ })
+ }
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ packData = returnData.packData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ colorData = returnData.controlData;
+ }
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ processData,
+ materialsData,
+ controlData,
+ colorData,
+ packData,
+ masterData,
+ ...treeState,
+ tableSelectedNewRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ controlSelectedRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ }
+ } else if (!bCopyFromWorkOrder && dataReturn.code === 1) {
+ const copyTo = { config: masterConfig.gdsconfigformslave, name: selectConfig.sControlName };
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : '';
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : '';
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : '';
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : '';
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : '';
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : '';
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = { ...slaveData[iSlaveIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo) }; // 取赋值字段
+ }
+
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ returnData.slaveData.forEach((slaveItem, iIndex) => {
+ /* 从工艺卡数据集 找到从表相同产品ID,客户ID */
+ let iSameIndex = slaveData.findIndex(itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId);
+ /* 复制从 只要把数据赋值到选中行即可 */
+ iSameIndex = iSlaveIndex;
+ if(iSameIndex > -1){
+ if(commonUtils.isNotEmptyObject(slaveDetailAssignField)) {
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex] = { ...slaveData[iSameIndex], ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ }
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull( slaveData[iSameIndex].dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull( slaveData[iSameIndex].dProductQty, 0) + commonUtils.isNull( slaveData[iSameIndex].dGiveQty, 0) +
+ commonUtils.isNull(slaveData[iSameIndex].dStockupQty, 0);
+ }
+ } else if(commonUtils.isNotEmptyObject(slaveDetailAssignField)){ /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow ={};
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveDetailAssignField,slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach((controlItem) => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
+ controlRow.handleType = 'add';
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(',');
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+
+ /* 增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId;/* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = this.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = '';
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ }));
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materials0Data.push(materialsRow);
+ });
+
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const materialsFilterData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if(commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materials0Data.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if(iIndex > -1) {
+ // materialsFilterData[index] = {... materialsFilterData[index], sParentMaterialsId: materialsData[iIndex].sId };
+
+ const iNexIndex = materials0Data.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ const addState = {};
+ addState.sMaterialsNo1 = materials0Data[iIndex].sMaterialsNo; /* 原材料编号 */
+ addState.sMaterialsName1 = materials0Data[iIndex].sMaterialsName; /* 原材料名称 */
+ addState.bAlternative = true;
+ addState.sParentMaterialsId = materials0Data[iIndex].sId;
+ materials0Data[iNexIndex] = { ...materials0Data[iNexIndex], ...addState};
+ materials0Data[iIndex] = { ...materials0Data[iIndex], bTidaibs:true };
+ }
+ }
+ });
+ }
+
+ const materialsInkFilterData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if(commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materials0Data.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if(iIndex > -1) {
+ const iNexIndex = materials0Data.findIndex(item => item.sId === filterItem.sId);
+ if(iNexIndex > -1) {
+ materials0Data[iNexIndex] = { ...materials0Data[iNexIndex], sInkFatherMaterialsTbId: materials0Data[iIndex].sId}
+ }
+ }
+ });
+ }
+
+
+ }
+
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
+ materialsRow.handleType = 'add';
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+ materials0Data.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === '3').forEach((processItem) => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sOriginalId = processItem.sId;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = '';
+ let sNewNames = '';
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(',');
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : '';
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : '';
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === 'single') {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === 'all') {
+ controlData.forEach((controlItem) => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ }));
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach((colorItem) => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = this.handleGetControlTreeData(controlData, true);
+ this.props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ slaveData,
+ processData,
+ materials0Data,
+ // materialsData,
+ // materials0Data: materialsData,
+ // materials0DelData: materialsDelData,
+ controlData,
+ colorData,
+ packData,
+ masterData,
+ ...treeState,
+ tableSelectedNewRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ controlSelectedRowKeys: commonUtils.isEmptyArr(controlData) ? [] : [controlData[0].sId],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: commonUtils.isEmptyArr(processData) ? [] : [processData[0].sId],
+ ...addState,
+ });
+ } else {
+ this.props.getServiceError(dataReturn.msg);
+ }
+ }
+ } else {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === 'process') {
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ tableDataRow.sParams = item.sParams;
+ }
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+
+ const processLen = tableData.filter(item => item.sType !== '3').length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ const processLen = tableData.filter(item => item.sType === '3').length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ }
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ };
+
+ handleSelectProductMaterial = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ // 选择成品材料,将sType改为2
+ if (name === 'productMaterials') {
+ selectData = selectData.map(val => ({ ...val, sType: '2' }));
+ name = 'materials';
+ }
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, controlSelectedRowKeys, materialsConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+
+ tableDataRow.sParentId = masterData.sId;
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品材料sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName;
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ if (iControlIndex > -1 && tableDataRow.sType !== '2') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '2') {
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+
+ /* 选择成品工序点确定 */
+ /* 工单从表选中selectedRowKeys */
+ handleSelectFinalProcess = async (name, selectConfig, selectData, slaveFinalSelectedData) => {
+ const targetname = 'process';
+ const {
+ [`${targetname}Data`]: tableData, [`${targetname}Config`]: tableConfig, controlSelectedRowKeys, sModelsId, token,
+ materialsConfig, processConfig,masterConfig,
+ } = this.props;
+ const { masterData } = this.props;
+ if (name === 'chooseProductProcess') {
+ const { controlData } = this.props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
+ /* 取选择工序从表配置 */
+ const slavesControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? `${selectConfig.sControlName}.slave` : '';
+ let slaveSelectConfig = {};
+ let slaveIndex = -1;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ slaveIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === slavesControlName);
+ if (slaveIndex > -1) {
+ slaveSelectConfig = masterConfig.gdsconfigformslave[slaveIndex];
+ }
+ }
+ /* 通过slaveFinalSelectedRowKeys找到slaveData数据 */
+ if (commonUtils.isNotEmptyArr(slaveFinalSelectedData)) {
+ for (const slaveObj of slaveFinalSelectedData) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ if (commonUtils.isNotEmptyObject(slaveSelectConfig)) {
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveSelectConfig.sAssignField, slaveObj, newCopyTo) }; // 取从表赋值字段
+ }
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+
+ tableDataRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ tableDataRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // tableDataRow.sSlaveProductId = slaveObj.sId;
+
+ tableDataRow.sType = '3';
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = { ...tableDataRow, ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam) };
+ }
+ if (targetname === 'process') {
+ const value = { sSqlCondition: { sParentId: item.sId } };
+ const configDataId = '11811781131121915166093023980';
+ const dataUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${configDataId}?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (returnData.code === 1) {
+ const eleprocessmachineData = returnData.dataset.rows[0].dataSet;
+ const newData = eleprocessmachineData.filter(item => item.bDefault);
+ if (commonUtils.isNotEmptyArr(newData)) {
+ tableDataRow.sMachineId = newData[0].sMachineId;
+ }
+ }
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = tableDataRow.sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+
+ // 成品工序的配套工序带入产品名称-开始
+ processRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ processRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ processRow.sCombineProductNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // processRow.sParentProcessId = item.sId;
+ // 成品工序的配套工序带入产品名称-结束
+
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+
+ // 成品工序的配套工序带入产品名称-开始
+ processRow.sCombinePartsName = slaveObj.sId; /* 成品工序sCombinePartsName 为从表id */
+ processRow.sCombinePartsNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ processRow.sCombineProductNameNew = slaveObj.sProductName; /* 成品工序sCombinePartsName 为从表产品名称 */
+ // processRow.sParentProcessId = item.sId;
+ // 成品工序的配套工序带入产品名称-结束
+
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ }
+ // const processLen = commonBusiness.getTableTypes('process', this.props).data.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1).length;
+ // tableDataRow.iOrder = processLen;
+ if (iControlIndex > -1 && tableDataRow.sType !== '3') {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+ const processLen = tableData.filter(item => item.sType !== '3').length + 1; /* 工序序号自增 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === '3') {
+ const processLen = tableData.filter(item => item.sType === '3').length + 1; /* 工序序号自增 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ } else {
+ message.error('请选择产品!');
+ return;
+ }
+ const tableDataNew = this.sortData(controlData, tableData);
+ this.props.onSaveState({
+ [`${targetname}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, materialsConfig, materialsSelectedRowKeys: [],
+ });
+ }
+ }
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled, slaveData } = this.props;
+ let { packData } = this.props;
+ if (name === 'control' && sName === 'sCombinedMemo') {
+ const packSelectedRowKeys = [];
+
+ /* 合并从表相同客户、产品数据 */
+ const slaveDataMerge = [];
+ slaveData.forEach((item) => {
+ const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ slaveDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ slaveDataMerge[iIndex].dProductQty = dProductQtyNew;
+ slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+
+ /* 合并合版表相同客户、产品数据 */
+ const packDataMerge = [];
+ packData.forEach((item) => {
+ const iIndex = packDataMerge.findIndex(child => commonUtils.isNotEmptyObject(item.sCombinePartsName) && child.sCombinePartsName === item.sCombinePartsName && commonUtils.isNotEmptyObject(item.sProductId) && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ packDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew = commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew = commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ packDataMerge[iIndex].dProductQty = dProductQtyNew;
+ packDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ packDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+ if (commonUtils.isNotEmptyArr(packDataMerge)) {
+ packData = packDataMerge;
+ }
+
+ /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */
+ if (commonUtils.isNotEmptyArr(slaveDataMerge)) {
+ slaveDataMerge.forEach((item, index) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack) => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = this.handlePackDataAdd(item);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) {
+ packSelectedRowKeys.push(itemPack.sId);
+ }
+ }
+ }
+ });
+ } else {
+ const tableDataRow = this.handlePackDataAdd(item, index, sId, 'add');
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ packData.push(tableDataRow);
+ }
+ }
+ });
+ }
+ this.props.onSaveState({
+ productCombinationVisible: true,
+ sCombinationsControlId: sId, /* 合版产品控制表sId */
+ enabled,
+ packSelectedRowKeys,
+ packData,
+ });
+ }else if (name === 'control' && sName === 'sPositiveColor' || sName === 'sOppositeColor') {
+ this.props.onViewChoose(name, sName, record);
+ } else if (name === 'sParam' && sName === 'sParamValue') {
+ this.props.onViewChoose(name, sName, record);
+ } else if (name === 'process' && (sName === 'sCombinePartsNameNew'|| sName === 'sCombineProductNameNew')) {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '3') { /* 成品工序跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ } else { /* 成品工序跟着合版表走 */
+ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack, index) => {
+ let slaveDataRow = {};
+ let packRowAdd = {};
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId);
+ if (iIndex > -1) {
+ slaveDataRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveDataRow)) {
+ packRowAdd = this.handlePackDataAdd(slaveDataRow);
+ }
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ processSelectedRowId: sId, /* 工序表选中行sId */
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'materials' && (sName === 'sCombinePartsNameNew'|| sName === 'sCombineProductNameNew')) {
+ const { [`${name}Data`]: tableData } = this.props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === '2') { /* 成品材料跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((itemPack, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(',');
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ materialsSelectedRowId: sId, /* 工序表选中行sId */
+ openTable: 'materials',
+ combinePartsSelectedRowKeys,
+ });
+ } else if (name === 'process' && sName === 'sColorSerialMemo') {
+ this.props.onViewChoose(name, sName, record);
+ } else if(name === 'process' && sName === 'sParams') {
+ this.props.onViewClick(name, sName, record);
+ }
+ }
+ handlePackDataAdd= (item, index, sControlId, handleType) => {
+ const tableDataRow = {};
+ if (handleType === 'add') {
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.sSlaveId = item.sId;
+ tableDataRow.iOrder = item.iOrder;
+ }
+ tableDataRow.sParentId = item.sParentId;
+ if (commonUtils.isNotEmptyObject(sControlId)) {
+ tableDataRow.sControlId = sControlId;
+ }
+ // if (commonUtils.isNotEmptyObject(index)) {
+ // tableDataRow.iOrder = index + 1;
+ // }
+ tableDataRow.sProductId = item.sProductId; /* 产品id */
+ tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */
+ tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */
+ tableDataRow.sProductName = item.sProductName; /* 产品名称 */
+ tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ if (bProductQtySelf) {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */
+ }
+ tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */
+ tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */
+ return tableDataRow;
+ }
+ sortData = (tableData, processData) => {
+ processData.sort((g1, g2) => {
+ const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
+ if (g1.iOrder === undefined) {
+ g1.iOrder = '';
+ }
+ if (g2.iOrder === undefined) {
+ g2.iOrder = '';
+ }
+ let sPartOrder1 = `0000${iIndex1}`;
+ sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
+ let sOrder1 = `00000${g1.iOrder.toString()}`;
+ sOrder1 = sOrder1.indexOf('.') > -1 ? sOrder1 : `${sOrder1}.00`;
+ sOrder1 = sOrder1.replace('.', '');
+ sOrder1 = sOrder1.substring(sOrder1.length - 5);
+ const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
+ let sPartOrder2 = `0000${iIndex2}`;
+ sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
+ let sOrder2 = `00000${g2.iOrder.toString()}`;
+ sOrder2 = sOrder2.indexOf('.') > -1 ? sOrder2 : `${sOrder2}.00`;
+ sOrder2 = sOrder2.replace('.', '');
+ sOrder2 = sOrder2.substring(sOrder2.length - 5);
+ return parseFloat(sPartOrder1 + sOrder1) - parseFloat(sPartOrder2 + sOrder2);
+ // return parseFloat(sPartOrder1 + g1.sType + sOrder1) - parseFloat(sPartOrder2 + g2.sType + sOrder2);
+ });
+ return processData;
+ };
+ /* 控制排序 */
+ orderData = (e, name, type) => {
+ const {
+ [`${name}SelectedRowKeys`]: tableselectedRowKeys, controlData, controlSelectedRowKeys, app,
+ } = this.props;
+ let { [`${name}Data`]: processData } = this.props;
+ // const processDataFiltered = processData.filter(item => this.state.currentTab.process.split('-').indexOf(item.sType) !== -1);
+ const processDataFiltered = processData;
+ if (name === 'process') {
+ if (commonUtils.isEmptyArr(tableselectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */
+ return;
+ }
+ if (commonUtils.isEmptyArr(processData)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */
+ return;
+ }
+ const processNew = processData.filter((item) => { /* 获取勾选数据集 */
+ return tableselectedRowKeys.indexOf(item.sId) > -1;
+ });
+ if (commonUtils.isEmptyArr(processNew)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */
+ return;
+ }
+ const len = processDataFiltered.length;
+ const newLen = processNew.length;
+ let num = 0.01;/* 循环增加体 */
+ let targetiOrder = -1;
+ // 上下排序修改为两个item的order对调
+ if (type === 1) { /* 上移 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[iIndex - 1].iOrder - 1; /* 目标排序号 */
+ }
+ } else if (type === 2) { /* 下移 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[iIndex + 1].iOrder;
+ }
+ } else if (type === 0) { /* 置顶 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[0].sId);/* 选中第一个节点的下标 */
+ if (iIndex === 0) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */
+ return;
+ } else {
+ targetiOrder = processDataFiltered[0].iOrder - 1;
+ }
+ } else if (type === 3) { /* 置底 */
+ const iIndex = processDataFiltered.findIndex(item => item.sId === processNew[newLen - 1].sId);/* 选中最后一个节点的下标 */
+ if (iIndex === len - 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */
+ return;
+ } else {
+ targetiOrder = 999;
+ }
+ }
+ processNew.forEach((item) => {
+ if (commonUtils.isEmptyObject(item.sType)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseProcessType'));/* 请选择工序名称 */
+ return;
+ }
+ const index1 = processData.findIndex(item1 => item1.sId === item.sId);
+ processData[index1] = { ...item, iOrder: targetiOrder + num };
+ num += 0.01;
+ });
+ processData = this.sortData(controlData, processData);
+ const processSortData = this.props.orderNum(processData, controlSelectedRowKeys);
+ if (commonUtils.isNotEmptyArr(processSortData)) {
+ processData = processSortData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: processData });
+ }
+ };
+ /** 表格数据更改 */
+ // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
+ handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData) => {
+ /* 从CommonBase获取默认参数 */
+ if (name === 'slave') {
+ const {
+ sModelsId, masterConfig, controlConfig, masterData, [`${name}Data`]: tableData, controlData: controlDataOld, packData,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(this.props.masterConfig) && commonUtils.isNotEmptyArr(this.props.masterConfig.gdsconfigformslave)) {
+ const iProductQtyIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bProductQtySelf');
+ if (iProductQtyIndex > -1) {
+ bProductQtySelf = true; /* 生产数量无需叠加 */
+ }
+ }
+ if (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') {
+ let dPartsQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ /* 找到所有一级部件 */
+ const controlRootData = commonUtils.isNotEmptyArr(controlDataOld) ? controlDataOld.filter(item => commonUtils.isEmpty(item.sControlParentId)) : [];
+ if (commonUtils.isNotEmptyArr(controlRootData)) {
+ controlRootData.forEach((item) => {
+ let itemNew = { ...item };
+ /* 父级的dPartsQty为dPartsQty */
+ itemNew.dPartsQty = dPartsQty;
+ itemNew = this.singlePQtyChange(itemNew);
+ /* 找到子部件 */
+ const controlChildData = controlDataOld.filter(itemOld => commonUtils.isNotEmptyObject(itemOld.sAllId) && itemOld.sAllId.indexOf(item.sId) > -1 && itemOld.sId !== item.sId);
+ if (commonUtils.isNotEmptyArr(controlChildData)) {
+ const { dMachineQty } = itemNew;
+ controlChildData.forEach((child) => {
+ let tableDataRow = { ...child };
+ const iIndex = controlDataOld.findIndex(item => item.sId === child.sId);
+ if (iIndex > -1) {
+ /* 子部件部件数量为父部件上机数量 */
+ tableDataRow.dPartsQty = dMachineQty;
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ controlDataOld[iIndex] = tableDataRow;
+ }
+ });
+ }
+ const addStata = {};
+ addStata.dPartsQty = dPartsQty;
+ const iRootIndex = controlDataOld.findIndex(itemControl => itemControl.sId === item.sId);
+ controlDataOld[iRootIndex] = { ...controlDataOld[iRootIndex], ...itemNew };
+ });
+ }
+ addState.controlData = controlDataOld;
+ } else if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') {
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
+ // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
+ let tableDataRowNew = {};
+ tableDataRowNew.sProductId = '';
+ tableDataRowNew.sProductNo = '';
+ tableDataRowNew.sProductName = '';
+ tableData[iIndex] ={...tableDataRowNew, ...tableDataRow } ;
+ } else if ((sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName')) {
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', sFieldName);
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (tableDataRow.handleType === 'add' && iProductIdIndex > -1 && tableDataRow.sProductId !== tableDataRow.sProductName && commonUtils.isEmptyArr(controlDataOld)) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? '' : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach((item) => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? '' : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(',');
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = 'add';
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ }
+ /* 从表产品改变带动合版表产品与部件表合版信息 同步改变 */
+ const controlDataNew = commonUtils.isNotEmptyArr(addState.controlData) ? addState.controlData : controlDataOld;
+ /* 如果packData只有一条数据 则同步合版数据 及增加控制表合版备注 */
+ if (commonUtils.isNotEmptyArr(packData) && packData.length === 1 && packData[0].sSlaveId === tableDataRow.sId) {
+
+ let packDataRow = packData[0];
+ const sControlId = packDataRow.sControlId;
+ packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId);
+ packDataRow.dCombineQty = 1;
+ packData[0] = { ...packData[0], ...packDataRow };
+
+ if (commonUtils.isNotEmptyObject(packData[0])) {
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[0];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ // const controlDataNew =commonUtils.isNotEmptyArr(addState.controlData)? addState.controlData: controlDataOld;
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ controlDataNew[iControlIndex].handleType = commonUtils.isEmpty(controlDataNew[iControlIndex].handleType) ? 'update' : controlDataNew[iControlIndex].handleType;
+ }
+ addState.controlData = controlDataNew;
+ }
+ }
+ } else if (packData.length > 1) {
+ const packFilterData = packData.filter(item => item.sSlaveId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData)) {
+ packFilterData.forEach((itemPack, index) => {
+ let packDataRow = itemPack;
+ const sControlId = packDataRow.sControlId;
+ packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId);
+ // packDataRow.dCombineQty = 1;
+ const pIndex = packData.findIndex(item => item.sId === itemPack.sId);
+ if (pIndex > -1){
+ packData[pIndex] = { ...packData[pIndex], ...packDataRow}; /* 根据选中的从表 找到所有的合版数据,将合版数据中的产品换成切换后的产品 */
+ let sCombinedMemoStr = ''; /* 将控制表合版信息中的产品换成新选择的产品 */
+ if(commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ sCombinedMemoStr = controlDataNew[iControlIndex].sCombinedMemo;
+ if(sCombinedMemoStr) {
+ const sCombinedMemoArr = commonUtils.isNotEmptyObject(sCombinedMemoStr) ? JSON.parse(sCombinedMemoStr): {};
+ if(commonUtils.isNotEmptyArr(sCombinedMemoArr)) {
+ const iIndex = sCombinedMemoArr.findIndex(item => item.sId === itemPack.sId);
+ if(iIndex > -1){
+ const addState ={};
+ addState.sProductId = tableDataRow.sProductId; /* 产品id */
+ addState.sCustomerId = tableDataRow.sCustomerId; /* 客户id */
+ addState.sCustomerName = tableDataRow.sCustomerName; /* 客户名称 */
+ addState.sProductName = tableDataRow.sProductName; /* 产品名称 */
+ addState.sProductNo = tableDataRow.sProductNo; /* 产品编号 */
+ sCombinedMemoArr[iIndex] ={...sCombinedMemoArr[iIndex], ...addState};
+ const sCombinedMemo = commonUtils.isNotEmptyArr(sCombinedMemoArr) ? JSON.stringify(sCombinedMemoArr) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ controlDataNew[iControlIndex].sCombinedMemo =sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ controlDataNew[iControlIndex].handleType = commonUtils.isEmpty(controlDataNew[iControlIndex].handleType) ? 'update' : controlDataNew[iControlIndex].handleType;
+
+ }
+ }
+ }
+ }
+ }
+ }
+ });
+ addState.controlData = controlDataNew;
+ }
+
+ }
+ addState.packData = packData;
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, ...addState, calculated: false });
+ } else if (name === 'control') {
+ const {
+ [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, sModelsType, packData,
+ } = this.props;
+ let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (sFieldName === 'dSinglePQty' || sFieldName === 'dPartsQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' ||
+ sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') {
+ if (sFieldName === 'iPrintModePo') {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === 'iPrintMode') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ } else if ( sFieldName === 'dSinglePQty' ) { /* 排版数改变时 如果该控制表合版数据只有一条 则改变packData该条的拼版数 改变备注 */
+ if(commonUtils.isNotEmptyArr(packData)){
+ const packFilterData = packData.filter(item => item.sControlId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length ===1 ) {
+ const iIndex = packData.findIndex(itemPack => itemPack.sId === packFilterData[0].sId);
+ const addState ={};
+ if(tableDataRow.dSinglePQty > 0){
+ addState.dCombineQty = tableDataRow.dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ if(iIndex > -1) {
+ packData[iIndex] ={ ...packData[iIndex] , ...addState};
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty,sCombinePartsName }= packData[iIndex];
+ const tableCombineSelectedData =[];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0;; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo =commonUtils.isNotEmptyObject(sCombinedMemo)? sCombinedMemo: '合版信息';
+ }
+ }
+ }
+ }
+ }
+ tableDataRow = this.singlePQtyChange(tableDataRow);
+ /* 上机数量改变时,子级部件数量同步改变 */
+ const { dMachineQty } = tableDataRow;
+ /* 查找该节的所有子节点,将上机数量改为部件数量 */
+ tableData.forEach((item, index) => {
+ if (commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableDataRow.sId) > -1 && item.sId !== tableDataRow.sId) {
+ const addstate = {};
+ addstate.dPartsQty = dMachineQty;
+ tableData[index] = { ...tableData[index], ...addstate };
+ }
+ });
+ } else if (sFieldName === 'dMachineLength' || sFieldName === 'dMachineWidth') { /* 控制表长宽改变 关联材料表type为0的上机长宽对应改变 */
+ if (commonUtils.isNotEmptyArr(materialsDataOld)) {
+ materialsDataOld.forEach((item, index) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === tableDataRow.sId && itemNew.sType === '0') {
+ itemNew.sMachineStyle = `${(tableDataRow.dMachineLength || '').toString()}*${(tableDataRow.dMachineWidth || '').toString()}`;
+ itemNew.handleType = commonUtils.isEmpty(itemNew.handleType) ? 'update' : itemNew.handleType;
+ }
+ materialsDataOld[index] = { ...materialsDataOld[index], ...itemNew };
+ });
+ }
+ } else if (sModelsType.includes('manufacture/workOrder')) {
+ /* 计算材料开数 */
+ // if (sFieldName === 'dMachineLength' || sFieldName === 'dMachineWidth' || sFieldName === 'dMaterialsLength' || sFieldName === 'dMaterialsWidth') {
+ // let dProductLength = 0; /* 产品长 */
+ // let dProductWidth = 0; /* 产品宽 */
+ // if (commonUtils.isNotEmptyArr(slaveData)) {
+ // dProductLength = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[0] : 0;
+ // dProductLength = commonUtils.convertStrToNumber(commonUtils.isNull(dProductLength, 0)); /* 产品长 */
+ // dProductLength = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductLength : 0; /* 产品长 */
+ // dProductWidth = !commonUtils.isEmpty(slaveData[0].sProductStyle) && slaveData[0].sProductStyle.split('*').length === 2 ? slaveData[0].sProductStyle.split('*')[1] : 0;
+ // dProductWidth = commonUtils.convertStrToNumber(commonUtils.isNull(dProductWidth, 0)); /* 产品宽 */
+ // dProductWidth = (typeof dProductLength === 'number' && !isNaN(dProductLength)) ? dProductWidth : 0; /* 产品宽 */
+ // }
+ // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ // const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ // const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+ //
+ // /* 算材料开数 */
+ // const mapMaterialsKQty = this.props.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ // if (commonUtils.isNotEmptyObject(mapMaterialsKQty)) {
+ // const dMaterialsKQty = mapMaterialsKQty.totalNum;
+ // tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ // }
+ //
+ // /* 算拼版数 */
+ // if (dProductLength !== 0 && dProductWidth !== 0) {
+ // const mapSinglePQty = this.props.onResolveMachineComposing(dProductLength, dProductWidth, dMachineLength, dMachineWidth);
+ // if (commonUtils.isNotEmptyObject(mapSinglePQty)) {
+ // const dSinglePQty = mapSinglePQty.totalNum;
+ // tableDataRow.dSinglePQty = dSinglePQty;
+ // }
+ // }
+ // }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = this.sortData(tableData, materialsData);
+ const processDataNew = this.sortData(tableData, processData);
+ if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = this.props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, calculated: false, packData,
+ });
+ } else if (name === 'materials') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, app, sModelsId,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: 'Sp_Inventory_MaterialsInventoryV56',
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === 'sType') {
+ if (tableData[iIndex].sType === '2') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, calculated: false });
+ } else if (name === 'process') {
+ const {
+ [`${name}Data`]: tableData, sModelsId, masterData, slaveData, controlData, controlSelectedRowKeys, materialsData, processConfig, token,
+ } = this.props;
+ let { processDelData, materialsDelData } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let iMaterialsIndex = -1;
+ let sControlId = '';
+ if (iIndex > -1) {
+ iMaterialsIndex = materialsData.findIndex(item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId);
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === 'sProcessId' || sFieldName.includes('sProcessName')) {
+ const bProcessAssort = true;
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessParamStr' && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = '工艺参数';
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = '';
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys) ? -1 : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = 'del';
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId);
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = 'del';
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ }));
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(((itemProcessAssort) => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+ if (itemProcessAssort.sType === 'all') {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach((controlTableRow) => {
+ const iNewProcessIndex = dropDownDataProcessName[iIndex].sType === '3' ?
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId) :
+ tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = 'add';
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== '3') {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ }));
+ }
+ if (tableData[iIndex].sType === '3') {
+ tableData[iIndex].sControlId = '';
+ tableData[iIndex].sPartsName = '';
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ }
+ }
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, materialsSelectedRowKeys: [], ...addState, calculated: false,
+ });
+ } else if (name === 'pack') {
+ const { packData, packSelectedRowKeys } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ packData[iIndex] = tableDataRow;
+ if (sFieldName === 'dCombineQty' || sFieldName === 'dProductQty') {
+ this.handleGetdFactProductQty(packSelectedRowKeys, packData);
+ }
+ this.props.onSaveState({ packData, calculated: false });
+ } else if (name === 'materials1' || name === 'materials2' || name === 'materials1Child') {
+ const {
+ [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, materials0Data, materials0SelectedRowKeys,
+ } = this.props;
+ const tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ /* 从全部材料数据集中找到该数据集 */
+ if(commonUtils.isNotEmptyArr(materials0Data)) {
+ const iIndex = materials0Data.findIndex(item => item.sId === tableDataRow.sId);
+ if(iIndex > -1) {
+ materials0Data[iIndex] = {...materials0Data[iIndex], ...tableDataRow};
+ }
+
+ }
+ this.props.onSaveState({ [`${name}Data`]: tableData, materials0Data });
+ } else {
+ this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+ /* 重新计算实际生产数 */
+ handleGetdFactProductQty = (selectedRowKeys, tableData) => {
+ const maxArr = [];
+ if (commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ const tableFilter = tableData.filter(item => selectedRowKeys.includes(item.sId) && item.dCombineQty > 0);
+ if (selectedRowKeys.length === 1 || tableFilter.length === 1) { /* 当选中行只有一行时,实际生产数等于生产数 */
+ const iSlaveIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]);
+ if (iSlaveIndex > -1) {
+ const dProductQty = tableData[iSlaveIndex].dProductQty;
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty: dProductQty };
+ }
+ } else {
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ const { dCombineQty, dProductQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ let dNum = commonUtils.convertFixNum(dCombineQty !== 0 ? dProductQty / dCombineQty : 0, 2); /* 生产数/排版数 取最大值 */
+ dNum = Math.ceil(dNum);
+ maxArr.push(dNum);
+ }
+ }
+ }
+ let dMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ dMax = Math.max(...maxArr);
+ }
+ dMax = commonUtils.isNotNum(dMax) ? 0 : dMax;
+ for (const sId of selectedRowKeys) {
+ const iSlaveIndex = tableData.findIndex(item => item.sId === sId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = tableData[iSlaveIndex];
+ let { dCombineQty } = slaveDataRow;
+ if (dCombineQty > 0) {
+ dCombineQty = commonUtils.isNotNum(dCombineQty) ? 0 : dCombineQty;
+ const dFactProductQty = commonUtils.convertFixNum(dCombineQty * dMax, 2); /* 实际生产数 =最大值 * 排版数 */
+ tableData[iSlaveIndex] = { ...tableData[iSlaveIndex], dFactProductQty };
+ }
+ }
+ }
+ }
+ this.props.onSaveState({ packData: tableData });
+ }
+ }
+ handleCancelFastOrderModal = () => {
+ this.props.onSaveState({ fastOrderModalVisible: false, workOrderAllprogress: 0, Loading: false });
+ };
+ handleCancelProcessChooseModal = () => {
+ this.props.onSaveState({ processChooseVisible: false });
+ };
+ handleCancelMaterialsChooseModal = () => {
+ this.props.onSaveState({ materialsChooseVisible: false });
+ };
+ handleCancelProductMaterialsChooseModal = () => {
+ this.props.onSaveState({ productMaterialsChooseVisible: false });
+ };
+ handleCancelProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({ productProcessInfoChooseVisible: false });
+ };
+ handleCancelProductCombinationChooseModal = () => {
+ this.props.onSaveState({ productCombinationVisible: false });
+ };
+
+ handleSelectProductCombination= () => {
+ const {
+ controlData, sCombinationsControlId, packData, enabled, app,
+ } = this.props;
+ let { packSelectedRowKeys: selectedRowKeys } = this.props;
+ let sCombinedMemo = '';
+ const tableCombineSelectedData = [];
+ selectedRowKeys = commonUtils.isNotEmptyArr(selectedRowKeys) ? selectedRowKeys : [];
+ const maxArr = [];
+ const maxMap = new Map();
+ for (const sId of selectedRowKeys) {
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ const tableDataRow = packData[iIndex];
+ const {
+ sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName,
+ } = tableDataRow;
+ if (dCombineQty > 0) { /* 排版数大于0时,把数据带回到控制表 */
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ maxMap.set(dFactProductQty, jsonObj);
+ maxArr.push(dFactProductQty);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseInputQty'));/* 请填写合拼排版数 */
+ return;
+ }
+ }
+ }
+
+ /* 没勾选的合版数据 合拼排版数置为0 */
+ const packNoChooseData = packData.filter(item => item.sControlId === sCombinationsControlId && !selectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(packNoChooseData) && packNoChooseData.length > 0) {
+ packNoChooseData.forEach((item) => {
+ const iIndex = packData.findIndex(child => child.sId === item.sId);
+ if (iIndex > -1) {
+ packData[iIndex].dCombineQty = 0;
+ packData[iIndex].handleType = commonUtils.isEmpty(packData[iIndex].handleType) ? 'update' : packData[iIndex].handleType;
+ }
+ });
+ }
+
+ let iMax = 0;
+ if (commonUtils.isNotEmptyArr(maxArr)) {
+ iMax = Math.max(...maxArr);
+ }
+ sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */
+ const iControlIndex = controlData.findIndex(item => item.sId === sCombinationsControlId);
+ if (iControlIndex > -1 && enabled) {
+ const addState = {};
+ const maxObj = maxMap.get(iMax);
+ let { handleType } = controlData[iControlIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinedMemo = sCombinedMemo;
+ addState.dPartsQty = iMax;
+ addState.dSinglePQty = commonUtils.isNotEmptyObject(maxObj) ? maxObj.dCombineQty : 0;
+ controlData[iControlIndex] = { ...controlData[iControlIndex], ...addState };
+ }
+ this.props.onSaveState({
+ productCombinationVisible: false,
+ packData,
+ controlData,
+ });
+ };
+ handleCancelCombinePartsChooseModal = () => {
+ this.props.onSaveState({ combinePartsChooseVisible: false });
+ };
+ /* 选择合版部件名称 */
+ handleSelectCombineParts = async (name, selectConfig, selectData) => {
+ const {
+ processData, processSelectedRowId, materialsData, materialsSelectedRowId, openTable,
+ } = this.props;
+ let sCombinedStr = '';
+ let sCombinedId = '';
+ if (selectData !== undefined) {
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ selectData.forEach((item) => {
+ const { sId } = item;
+ let { sProductName } = item;
+ let { sCombinePartsName } = item;
+ sProductName = commonUtils.isNotEmptyObject(sProductName) ? sProductName : '';
+ sCombinePartsName = commonUtils.isNotEmptyObject(sCombinePartsName) ? sCombinePartsName : '';
+ // sCombinedStr += `${sCustomerName}-${sProductName}-${sCombinePartsName},`;
+ if (commonUtils.isNotEmptyObject(sCombinePartsName)) {
+ sCombinedStr += `${sProductName}-${sCombinePartsName},`;
+ sCombinedId += `${sId},`;
+ } else {
+ sCombinedStr += `${sProductName},`;
+ sCombinedId += `${sId},`;
+ }
+ });
+ // sCombinedStr = `${selectData.length.toString()} `;
+ if (commonUtils.isNotEmptyObject(sCombinedStr)) {
+ sCombinedStr = commonUtils.isNotEmptyObject(sCombinedStr) ? sCombinedStr.substr(0, sCombinedStr.length - 1) : '';
+ }
+ if (commonUtils.isNotEmptyObject(sCombinedId)) {
+ sCombinedId = commonUtils.isNotEmptyObject(sCombinedId) ? sCombinedId.substr(0, sCombinedId.length - 1) : '';
+ }
+ }
+ if (commonUtils.isNotEmptyObject(openTable) && openTable === 'materials') {
+ const iIndex = materialsData.findIndex(item => item.sId === materialsSelectedRowId);
+ if (iIndex > -1) {
+ if(!materialsData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = materialsData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ materialsData[iIndex] = { ...materialsData[iIndex], ...addState };
+ }
+ this.props.onSaveState({ materialsData, combinePartsChooseVisible: false });
+ } else {
+ const iIndex = processData.findIndex(item => item.sId === processSelectedRowId);
+ if (iIndex > -1) {
+ if(!processData[iIndex]) {
+ return;
+ }
+ const addState = {};
+ let { handleType } = processData[iIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ addState.handleType = handleType;
+ addState.sCombinePartsNameNew = sCombinedStr;
+ addState.sCombineProductNameNew = sCombinedStr;
+ addState.sCombinePartsName = sCombinedId;
+ processData[iIndex] = { ...processData[iIndex], ...addState };
+
+ // 查询是否有配套工序 sParentProcessId字段判断--开始
+ const {
+ sModelsId, token,
+ } = this.props;
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ let returnProcessAssort = [];
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ }
+
+ returnProcessAssort.filter(item => item.sParentId === processData[iIndex].sProcessId).forEach(((itemProcessAssort) => {
+ const iProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === processData[iIndex].sControlId);
+ if (iProcessIndex > -1) {
+ processData[iProcessIndex] = { ...processData[iProcessIndex], ...addState };
+ }
+ }));
+ // 查询是否有配套工序 sParentProcessId字段判断--结束
+ }
+ this.props.onSaveState({ processData, combinePartsChooseVisible: false });
+ }
+ }
+ };
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+ /** 复制 */
+ handleTableCopy = (name, isWait) => {
+ /* 部件树节点复制功能 */
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination, packData, slaveData,
+ } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn('请选择部件!'); // 请选择部件
+ return;
+ }
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = commonUtils.createSid();
+ tableDataRow.sId = newId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sSrcSlaveId = '';
+ tableDataRow.sSrcId = '';
+ tableDataRow.dSrcQty = null;
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
+ tableDataRow.sMaterialsMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
+ tableDataRow.sProcessMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) {
+ tableDataRow.sCombinedMemo = '';
+ }
+ tableData.push(tableDataRow);
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys, treeSelectedKeys: tableSelectedNewRowKeys, packData, ...treeState,
+ });
+ }
+ }
+ } else if (name === 'slave') {
+ const { packData, controlData } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn('请选择数据!'); // 请选择从表数据
+ return;
+ }
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = this.props.onDataRowCopy(name, true);
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlData.forEach((item) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(tableDataRow, tableData.length, item.sId, 'add');
+ // packDataRow.dCombineQty = 1;
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ packData.push(packDataRow);
+ }
+ });
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({
+ [`${name}Data`]: tableData, packData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 },
+ });
+ }
+ }
+ } else {
+ this.props.onDataRowCopy(name, isWait);
+ }
+ }
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, materialsData, app, packData, slaveData,
+ } = this.props;
+ let { processData } = this.props;
+ if (name === 'control') {
+ const {
+ [`${name}SelectedRowKeys`]: treeSelectedKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ /* 获取复制节点下的所有子节点 */
+ const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ controlChildData.forEach((itemNew) => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const treeCopyNodes = new Map();
+ for (const sId of tableSelectedRowKeys) {
+ const tableDataIndex = tableData.findIndex(item => item.sId === sId);
+ if (tableDataIndex > -1) {
+ const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.handleType = 'add';
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.sPartsName = `${tableData[tableDataIndex].sPartsName}new`;
+ const sAllOldId = tableData[tableDataIndex].sAllId;
+ const arr = sAllOldId.split(',');
+ const newId = tableDataRow.sId;
+ let sOldParentId = '';
+ let sNewParentAllId = '';
+ if (arr.length < 2) { /* 根节点复制 */
+ tableDataRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
+ }
+ const sNewArr = sNewParentAllId.split(',');
+ tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ tableDataRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(sId, sNewParentAllId);
+ const iOrderArr = [];
+ tableData.forEach((item) => {
+ const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
+ iOrderArr.push(iOrder);
+ });
+ const iOrderMax = Math.max(...iOrderArr);
+ tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sCombinedMemo)) {
+ tableDataRow.sCombinedMemo = '';
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => {
+ const processRow = JSON.parse(JSON.stringify(item));
+ processRow.sId = commonUtils.createSid();
+ processRow.handleType = 'add';
+ processRow.sControlId = tableDataRow.sId;
+ processRow.sPartsName = tableDataRow.sPartsName;
+ processRow.sSrcProcessTbId = item.sId;
+ processData.push(processRow);
+ });
+ processData = this.sortData(tableData, processData);
+ materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((materialsItem) => {
+ const materialsRow = JSON.parse(JSON.stringify(materialsItem));
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.handleType = 'add';
+ materialsRow.sControlId = tableDataRow.sId;
+ materialsRow.sPartsName = tableDataRow.sPartsName;
+ materialsRow.bPurchaseApplyComplete = 0;
+ materialsRow.dPurchaseApplyAuxiliaryQty = 0;
+ materialsRow.dPurchaseApplyQty = 0;
+ materialsRow.bPurchaseComplete = 0;
+ materialsRow.dPurchaseAuxiliaryQty = 0;
+ materialsRow.dPurchaseQty = 0;
+ materialsRow.dProductionAuxiliaryQty = 0;
+ materialsRow.dProductionQty = 0;
+ materialsRow.bProductionComplete = 0;
+
+ materialsRow.dProductionApplyAuxiliaryQty = 0;
+ materialsRow.dProductionApplyQty = 0;
+ materialsRow.bProductionApplyComplete = 0;
+
+ materialsRow.bComComplete = 0;
+ materialsRow.dComAuxiliaryQty = 0;
+ materialsRow.dComQty = 0;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(processData)) {
+ const iProcessIndex = processData.findIndex(item => item.sControlId === tableDataRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId);
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ const treeState = this.handleGetControlTreeData(tableData, true);
+ const tableSelectedNewRowKeys = [];
+ if (commonUtils.isNotEmptyObject(newId)) {
+ tableSelectedNewRowKeys.push(newId);
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((item, index) => {
+ /* 合版信息表增加一条从表数据 */
+ const packDataRow = this.handlePackDataAdd(item, index, tableDataRow.sId, 'add');
+ if (commonUtils.isNotEmptyObject(packDataRow)) {
+ // packDataRow.dCombineQty = 1;
+ packData.push(packDataRow);
+ }
+ });
+ }
+ this.props.onSaveState({
+ ...treeState,
+ [`${name}Data`]: tableData,
+ [`${name}Pagination`]: { total: tableData.length, current: 9999 },
+ [`${name}SelectedRowKeys`]: tableSelectedNewRowKeys,
+ treeSelectedKeys: tableSelectedNewRowKeys,
+ materialsSelectedRowKeys: [],
+ materialsData,
+ processData,
+ packData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ singlePQtyChange = (tableDataRow) => {
+ const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
+ const bSample = tableDataRow.dSumPQty >= 4; // 样本
+ tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
+
+ if (bSample) {
+ if (tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
+ }
+
+ if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反
+ if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
+ }
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ }
+ } else {
+ if (tableDataRow.iPrintModePo !== 2) { // 单面样本
+ tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
+ } else {
+ tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
+ }
+ tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+ if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ } else {
+ tableDataRow.iStick = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (
+ commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ if (bZfZf && tableDataRow.iPrintModePo === 2) {
+ tableDataRow.dPlateQty = 2;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
+ commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
+ } else {
+ tableDataRow.dPlateQty = 1;
+ tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
+ commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
+ }
+
+ if (tableDataRow.dSinglePQty > 0) {
+ if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
+ tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
+ } else {
+ tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
+ tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
+ }
+ }
+ }
+
+ /* 计算材料开数 */
+ // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */
+ // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */
+ // const dMaterialsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsLength, 0)); /* 材料长 */
+ // const dMaterialsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMaterialsWidth, 0)); /* 材料宽 */
+ // const sResult = this.props.onResolveMachineComposing(dMachineLength, dMachineWidth, dMaterialsLength, dMaterialsWidth);
+ // if (commonUtils.isNotEmptyObject(sResult)) {
+ // const dMaterialsKQty = sResult.totalNum;
+ // tableDataRow.dMaterialsKQty = dMaterialsKQty;
+ // }
+
+ return tableDataRow;
+ };
+
+ handleCancel1 = () => {
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+
+ handleOk = async (flag, tmpCheck, isWait) => {
+ const {
+ sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig,
+ } = this.props;
+ const { currentPane } = app;
+ const bCkxTmpCheck = app.systemData.filter(item => item.sName === 'CkxTmpCheck')[0].sValue;
+ if (bCkxTmpCheck === '1') {
+ const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait);
+ if (returnData.code === 1) {
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.onGetData(masterConfig, slaveConfig, checkConfig);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ } else {
+ const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray;
+ if (commonUtils.isEmptyObject(dataPersonArray)) {
+ checkPersonData.forEach((item) => {
+ dataPersonArray.push(item.sUserId);
+ });
+ }
+ const dataPersonString = dataPersonArray.join(',');
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const value = {
+ sProName: 'Sp_System_AutoSendCheckMsg',
+ paramsMap: {
+ sFormGuid: sModelsId,
+ sBillKey: currentPane.sProcName,
+ sTbName: masterConfig.sTbName,
+ sGuid: masterData.sId,
+ sBillNo: masterData.sBillNo,
+ sCheckCondition: checkConditions,
+ sMemo: '',
+ sCheckModelGuid: sCheckModelId,
+ sCheckPerson: dataPersonString,
+ },
+ };
+
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ const noCheckMsg = commonFunc.showMessage(app.commonConst, 'NoCheckMsg'); /* 您有消息待审核 */
+ if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
+ this.props.handleSendSocketMessage('examine', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`;
+ const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId };
+ const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data;
+ if (returnCanCheckBill.code === 1) {
+ if (returnCanCheckBill.dataset.rows[0].iCount === 1) {
+ this.props.onDataAudit(1, 1);
+ this.props.onSaveState({
+ visible: false,
+ });
+ return;
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnCanCheckBill);
+ }
+ this.props.handleSendSocketMessage('reflush', 'showImg', currentId, dataPersonString, noCheckMsg, null);
+ message.success(returnData.msg);
+ } else {
+ message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(returnData);
+ }
+ }
+ this.props.onSaveState({
+ visible: false,
+ });
+ };
+
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ let { controlSelectedRowKeys } = this.props;
+ controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */
+ this.props.onTreeSelect(name, checkedKeys, e);
+ this.props.onSaveState({
+ controlSelectedRowKeys,
+ });
+ };
+ handleTreeExpandSingle = (expanded, record) => {
+ let { controlShowExpandedRowKeys } = this.props;
+ let expandKey = record.sId;
+ if(commonUtils.isEmpty(controlShowExpandedRowKeys)) {
+ controlShowExpandedRowKeys ={};
+ controlShowExpandedRowKeys.expandedRowKeys = [];
+ }
+ const idx = controlShowExpandedRowKeys.expandedRowKeys.indexOf(expandKey);
+ let arr = JSON.parse(JSON.stringify(controlShowExpandedRowKeys.expandedRowKeys));
+ if (idx !== -1) {
+ arr.splice(idx, 1);
+ } else {
+ arr.push(expandKey);
+ }
+ this.props.onSaveState({
+ controlShowExpandedRowKeys: { expandedRowKeys: arr }
+ })
+ };
+
+ handleTabChange = (value) => {
+ this.setState({
+ currentTab: +value
+ });
+ }
+
+ handleTabChange2 = (value) => {
+ this.setState({
+ currentTab2: +value
+ });
+ }
+
+ handleActiveKey = (value) => {
+ this.setState({
+ activeKey: value
+ });
+ }
+
+ handleCancelProcessParamsModalVisible = () => { // 工艺参数弹窗消失
+ this.props.onSaveState({
+ sProcessParamsModalVisible: false,
+ });
+ }
+ handleProcessParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ let sProcessParamStr = '';
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 7; i++) {
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(processData[processSelectDataIndex][`sParam${i.toString()}`])) {
+ sProcessParamStr += `${processData[processSelectDataIndex][`sParam${i.toString()}`]}:${processData[processSelectDataIndex][`sParamValue${i.toString()}`] === undefined ? '' : processData[processSelectDataIndex][`sParamValue${i.toString()}`]},`;
+ }
+ }
+ processData[processSelectDataIndex] = { ...processData[processSelectDataIndex], sProcessParamStr };
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sProcessParamsModalVisible: false,
+ });
+ }
+
+ handleParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ sParamData,
+ enabled,
+ } = this.props;
+ if(enabled) {
+ if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
+ const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
+ if (processSelectDataIndex > -1) {
+ if (commonUtils.isNotEmptyArr(sParamData)) {
+ const sParamSeletedData = sParamData.filter(item => item.bSelfCbx);
+ if(commonUtils.isNotEmptyObject(sParamSeletedData)) {
+ const sParamJsonData = JSON.stringify(sParamSeletedData);
+ processData[processSelectDataIndex].sParams = sParamJsonData;
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ processData,
+ sParamsModalVisible: false,
+ });
+ } else {
+ this.props.onSaveState({
+ sParamsModalVisible: false,
+ });
+ }
+ }
+
+ handleDrag = (data) => {
+ let { controlSelectedRowKeys } = this.props;
+ if(this.props.enabled && controlSelectedRowKeys.length) {
+ if(true) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData;
+
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+
+ // let afterDataIndex = 0;
+ // let afterData = data.filter(item => item.sType !== '3' && item.sType !== '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ // afterDataIndex = afterDataIndex + 1;
+ // return {...item, iOrder: afterDataIndex}
+ // });
+ let allData = preData; //.concat(afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ } else {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let preDataIndex = 0;
+ let preData = data.filter(item => item.sType === '0' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ preDataIndex = preDataIndex + 1;
+ return {...item, iOrder: preDataIndex}
+ });
+ let inDataIndex = 0;
+ let inData = data.filter(item => item.sType === '1' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ inDataIndex = inDataIndex + 1;
+ return {...item, iOrder: inDataIndex}
+ });
+ let afterDataIndex = 0;
+ let afterData = data.filter(item => item.sType === '2' && item.sControlId === this.props.controlSelectedRowKeys[0]).map((item) => {
+ afterDataIndex = afterDataIndex + 1;
+ return {...item, iOrder: afterDataIndex}
+ });
+ let allData = preData.concat(inData, afterData);
+ allData.forEach((item, index) => {
+ if(item.sControlId === this.props.controlSelectedRowKeys[0]) {
+ if(!allData[index].handleType) {
+ allData[index].handleType = 'update';
+ }
+ }
+ });
+ processData = processData.filter(item => item.sControlId !== this.props.controlSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData});
+ }
+ }
+ }
+
+ handleProductDrag = (data) => {
+ if(this.props.enabled) {
+ // process : 0-1-2 部品工序 : 3成品工序;
+ let processData = this.props.processData.slice(0);
+ let dataIndex = 0;
+ const allData = data.filter(item => item.sType === '3' && item.sCombinePartsName === this.props.slaveSelectedRowKeys[0]).map((item) => {
+ dataIndex = dataIndex + 1;
+ return {...item, iOrder: dataIndex, handleType: item.handleType ? item.handleType : 'update'};
+ });
+ processData = processData.filter(item => item.sCombinePartsName !== this.props.slaveSelectedRowKeys[0]);
+ processData = processData.concat(allData);
+ this.props.onSaveState({ processData });
+ }
+ }
+
+ setModalId = (name) => {
+ this[`${name}_id`] = new Date().getTime().toString();
+ }
+
+ getModalId = (name) => {
+ return this[`${name}_id`];
+ }
+
+ render() {
+ const { pageLoading, masterData, fastOrderModalVisible } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+
+
+ );
+ }
+}
+
+const WorkOrderComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ masterConfig: masterConfigOld,
+ slaveConfig,
+ slaveData,
+ slavePagination,
+ sModelsId,
+ sTabId,
+ app,
+ // AutoTableHeight,
+ colorConfigGrdVisible,
+ visible,
+ checkConditions,
+ checkPersonData,
+ Loading,
+ sModelsType,
+ productCombinationVisible,
+ combinePartsChooseVisible,
+ sisColorChooseVisible,
+ // currentTab,
+ finishedMaterialsColumn,
+ finishedMaterialsConfig,
+ finishedProcessColumn,
+ finishedProcessConfig,
+ isLayout,
+ packConfig,
+ formData,
+ materialsInfoList,
+ materialsChildInfoList,
+ colorConfig,
+ visionConfig,
+ } = props;
+
+ const { currentPane } = app;
+ const bFlow = currentPane?.bFlow; /* 是否需要展示审批流程信息 */
+ console.log('fffff', currentPane);
+ // 关联slave合版进行筛选control的数据
+ let controlTableData = [];
+ if(commonBusiness.getTableTypes('control', props).data && commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.slaveData)) {
+ const iSlaveIndex = props.slaveData.findIndex(item => item.sId === props.slaveSelectedRowKeys[0]);
+ const slaveSelectedRow = props.slaveData[iSlaveIndex] || {sProductNo: 0};
+ if(iSlaveIndex !== -1) {
+ commonBusiness.getTableTypes('control', props).data.forEach(item => {
+ if(item.sCombinedMemo && item.sCombinedMemo !== '' && item.sCombinedMemo !== '合版信息') {
+ const sCombinedMemoArr = commonUtils.isJSON(item.sCombinedMemo) ? JSON.parse(item.sCombinedMemo) : [];
+ const getSlaveSelectedRowChildren = (allData, sId) => {
+ let result = [];
+ allData.forEach(item => {
+ if (item.sFatherSlaveId === sId) {
+ result.push(item);
+ result = [...result, ...getSlaveSelectedRowChildren(allData, item.sId)]
+ }
+ });
+ return result;
+ };
+ const slaveSelectedRowChildren = getSlaveSelectedRowChildren(props.slaveData, slaveSelectedRow.sId);
+ const slaveRows = [slaveSelectedRow, ...slaveSelectedRowChildren];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo && slaveRows.some(slaveRow => slaveRow.sProductNo === item.sProductNo)).length;
+ if(len) {
+ controlTableData.push(item);
+ }
+ } else {
+ controlTableData.push(item);
+ }
+ })
+ } else {
+ controlTableData = JSON.parse(JSON.stringify(commonBusiness.getTableTypes('control', props).data));
+ // controlTableData = commonBusiness.getTableTypes('control', props).data.slice(0);
+ }
+ }
+ // 之前代码默认会选中第一行,第一行可能已经被筛选掉,需要判断
+ if(controlTableData.length && props.controlSelectedRowKeys[0] !== controlTableData[0].sId && controlTableData.map(item => item.sId).indexOf(props.controlSelectedRowKeys[0]) === -1) {
+ if(commonUtils.isNotEmptyArr(props.slaveSelectedRowKeys)) {
+ props.onSaveState({
+ controlSelectedRowKeys: [controlTableData[0].sId]
+ });
+ }
+ }
+
+ // 计算控制表记录数量,计算sticky高度
+ const controlLen = controlTableData.length ? commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId').length : 0;
+ const slaveLen = props.slaveData ? props.slaveData.length : 0;
+ let stickyHeight = 0;
+ let stickyTabHeight = 0;
+ if(isLayout) {
+ if (controlLen && controlLen < 5) {
+ stickyTabHeight += (slaveLen * 29) + 40;
+ stickyHeight += (controlLen * 29) + 40 + 30 - 4;
+ } else {
+ stickyHeight += 162;
+ }
+ stickyHeight += 40;
+ } else {
+ if(props.currentTab === 1) {
+ if (controlLen && controlLen < 5) {
+ stickyHeight = (controlLen * 29) + 40 + 30 - 4; // 153
+ } else {
+ stickyHeight = 162 + 30;
+ }
+ } else {
+ if (slaveLen && slaveLen < 5) {
+ stickyHeight = (slaveLen * 29) + 40 + 30 - 4;
+ stickyTabHeight = (slaveLen * 29) + 40;
+ } else {
+ stickyHeight = 162 + 30;
+ stickyTabHeight = 162;
+ }
+ }
+ }
+
+ /* 回带表单 */
+ onReturnForm(form);
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'dProductQty');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductStyle');
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ addProps.masterconfig = masterConfig;
+ }
+ const checkCondition = commonFunc.showMessage(app.commonConst, 'checkCondition');/* 审核条件 */
+ const checkSmemo = commonFunc.showMessage(app.commonConst, 'checkSmemo');/* 备注 */
+ const columns = [{
+ title: checkCondition,
+ dataIndex: 'condition',
+ key: 'condition',
+ }, {
+ title: checkSmemo,
+ dataIndex: 'sMemo',
+ key: 'sMemo',
+ }];
+ const btnSure = commonFunc.showMessage(app.commonConst, 'btnSure');/* 确认 */
+ const check = commonFunc.showMessage(app.commonConst, 'check');/* 审核 */
+ const BtnClose = commonFunc.showMessage(app.commonConst, 'BtnClose');/* 关闭 */
+ const checkPerson = commonFunc.showMessage(app.commonConst, 'checkPerson');/* 审核人 */
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ const pagination = {
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ const width = '16px';
+ const height = '16px';
+ const setAdd = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+ const setAddChild = {
+ title: '增加',
+ img: ,
+ disableimg: ,
+ };
+
+ const setCopy = {
+ title: '复制',
+ img: ,
+ disableimg: ,
+ };
+ const setCopyAll = {
+ title: '复制部件',
+ img: ,
+ disableimg: ,
+ };
+ const setDelete = {
+ title: '删除',
+ img: ,
+ disableimg: ,
+ };
+ const setProcess = {
+ title: '工序',
+ img: ,
+ disableimg: ,
+ };
+ const setMaterial = {
+ title: '材料',
+ img: ,
+ disableimg: ,
+ };
+ const processUp = {
+ title: '上移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processDown = {
+ title: '下移',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processTop = {
+ title: '置顶',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+ const processBottom = {
+ title: '置底',
+ width: { width },
+ height: { height },
+ img:
,
+ disableimg:
,
+ };
+
+ let bSplitMaterials = true; /* 默认拆分材料*/
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitMaterials');
+ if (iIndex > -1) {
+ bSplitMaterials = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+ let bSplitProcess = true; /* 默认拆分工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bSplitProcess');
+ if (iIndex > -1) {
+ bSplitProcess = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+ let chooseProcessConfigRow;
+ let onChooseProcessIndex;
+ /* 获取toolbar 选择工序 */
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (onChooseProcessIndex > -1) {
+ chooseProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProcessIndex];
+ }
+ }
+
+
+ /* 获取toolbar 选择成品工序 */
+ let bShowProductProcess = false;
+ let chooseProductProcessConfigRow = {};
+ let onChooseProductProcessIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductProcessIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (onChooseProductProcessIndex > -1) {
+ chooseProductProcessConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductProcessIndex];/* 配置了成品工序按钮 */
+ bShowProductProcess = true;/* 配置了成品工序按钮 */
+ }
+ }
+
+ /* 获取toolbar 选择材料 */
+ let chooseMaterialsConfigRow;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfigRow = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ }
+
+ /* 获取toolbar 选择成品材料 */
+ let bShowProductMaterials = false;
+ let chooseProductMaterialsConfigRow = {};
+ let onChooseProductMaterialsIndex;
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ onChooseProductMaterialsIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (onChooseProductMaterialsIndex > -1) {
+ chooseProductMaterialsConfigRow = props.masterConfig.gdsconfigformslave[onChooseProductMaterialsIndex];/* 配置了成品工序按钮 */
+ bShowProductMaterials = true;/* 配置了成品材料按钮 */
+ }
+ }
+
+ /* 做树形 */
+ let slaveTreeData = [];
+ const bTree = slaveConfig && slaveConfig.sTableType === 'single' && commonUtils.isNotEmptyArr(slaveData) && slaveData.findIndex(item => commonUtils.isNotEmptyObject(item.sFatherSlaveId)) > -1; /* 树形展示 */
+ if (bTree) {
+ slaveTreeData = commonUtils.genTreeByArr(slaveData, 'sId', 'sFatherSlaveId');
+ } else {
+ slaveTreeData = slaveData;
+ }
+
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ data: slaveTreeData,
+ tableProps: {
+ rowSelection: null, pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ // AutoTableHeight: 132,
+ sticky: false,
+ bShowTreeAddChild: true,
+ },
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onKeyDown: props.onKeyDown,
+ };
+ let bShowMaterials = true;
+ const iMaterialsIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials') : -1;
+ bShowMaterials = iMaterialsIndex > -1;
+
+ let bShowProcess = true;
+ const iProcessIndex = props && props.masterConfig ? props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess') : -1;
+ bShowProcess = iProcessIndex > -1;
+
+ // const mProps = { ...commonBusiness.createMemoProps('slave', props) };
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ data: commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId'),
+ onKeyDown: props.onKeyDown,
+ bMutiSelect1: true, // 设置点击整行勾选框不勾选,只有点击勾选框才勾选
+ tableProps: {
+ // rowSelection: enabled ? null : '',
+ // setAdd,
+ sModelsType,
+ // setCopyAll,
+ // setDelete,
+ setProcess : bShowProcess,
+ setMaterial : bShowMaterials,
+ bShowTreeAdd: true,
+ bShowTreeAddChild: true,
+ bShowTreeDel: true,
+ bShowTreeCopyAll: true,
+ // bShowProductProcess, /* 是否显示成品工序 */
+ // bShowProductMaterials, /* 是否显示成品工序 */
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ // chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: 232,
+ // sticky: {
+ // offsetHeader: stickyHeight,
+ // },
+ sticky: false
+ // onRow: (record) => {
+ // return {
+ // onClick: () => { props.onRowClick('control', record); },
+ // onDoubleClick: () => { props.onDoubleClick('control', record); },
+ // onMouseEnter: () => { props.onRowMouseEnter('control', record); },
+ // };
+ // },
+ },
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ };
+
+ /* 展示所有部件结构 */
+ const controlShowPropsType = {
+ ...commonBusiness.getTableTypes('control', props),
+ data: commonUtils.genTreeByArr(controlTableData, 'sId', 'sControlParentId'),
+ onKeyDown: props.onKeyDown,
+ bMutiSelect1: true, // 设置点击整行勾选框不勾选,只有点击勾选框才勾选
+ tableProps: {
+ AutoTableHeight: 550,
+ expandable: props.controlShowExpandedRowKeys,
+ },
+ onExpand: props.onExpandTreeSingleShow,
+ };
+
+
+ const name = 'controlTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+
+ /* 整体树结构 */
+ const totalname = 'totalTree';
+ const totalTreeProps = {
+ ...commonBusiness.getTreeTypes('totalTree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${totalname}Column`]: props[`${totalname}Column`],
+ [`${totalname}Config`]: props[`${totalname}Config`],
+ [`${totalname}Data`]: props[`${totalname}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ // onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ showLine: true,
+ };
+
+ const genCustomDropData = () => {
+ const data = commonBusiness.getTableTypes('process', props).data;
+ const selectData = commonBusiness.getTableTypes('materials', props).data;
+ const materialKey = props.materialsSelectedRowKeys ? props.materialsSelectedRowKeys[0] : 0;
+ let selectRow = {};
+ if (selectData && materialKey) {
+ selectRow = selectData.filter(val => val.sId === materialKey)[0];
+ }
+
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;;
+ const ruleMap = {
+ 0: '0-1-2',
+ 1: '0-1-2',
+ 2: '3',
+ };
+ const arr = [];
+ if (data && selectRow) {
+ const rule = ruleMap[selectRow.sType];
+ const sParentId = selectRow.sSlaveProductId ? selectRow.sSlaveProductId : selectRow.sParentId;
+ data.forEach((val) => {
+ const obj = {};
+ obj.value = val.sProcessName;
+ obj.sId = val.sId;
+ const valSparentId = val.sCombinePartsName ? val.sCombinePartsName : val.sParentId;
+ if (rule && rule.split('-').indexOf(val.sType) !== -1 && valSparentId === sParentId) {
+ arr.push(obj);
+ }
+ });
+ }
+ return arr;
+ };
+
+ /* 通过bFinal判断是否成品 */
+ const dataFilter = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { slaveSelectedRowKeys, controlSelectedRowKeys } = props;
+ const oriData = data.data || [];
+ if (data.data) {
+ let res = [];
+ switch (type) {
+ case 'materials':
+ if (bSplitMaterials && finishedMaterialsColumn) {
+ if (bFinal) { /* 成品材料 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '2';
+ });
+ }
+ } else { /* 部件材料 */
+ res = oriData.filter((val) => {
+ return val.sType !== '2';
+ });
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ case 'process':
+ if (bSplitProcess && finishedProcessColumn) {
+ if (bFinal) { /* 成品工序 */
+ if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType === '3';
+ });
+ }
+ } else { /* 部件工序 */
+ if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ res = oriData.filter((val) => {
+ return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ });
+ } else {
+ res = oriData.filter((val) => {
+ return val.sType !== '3';
+ });
+ }
+ if(isQianCai) {
+ const pre = res.filter(item => item.sType == '0').sort((a, b) => a.iOrder - b.iOrder);
+ const after = res.filter(item => (item.sType == '1' || item.sType == '2')).sort((a, b) => a.iOrder - b.iOrder);
+ res = pre.concat(after);
+ }
+ }
+ } else {
+ res = oriData;
+ }
+ break;
+ default:
+ res = oriData;
+ }
+ return res;
+ } else {
+ return oriData || [];
+ }
+ };
+
+ /* 根据业务过滤全部材料,油墨 电化铝数据 去重根据sMateriaslId+ sMaterialsStyle */
+ // const materialsFilter = (data, type, bFinal) => {
+ // // materials : 0-1部件材料 : 2成品材料;
+ // // process : 0-1-2 部品工序 : 3成品工序;
+ // // bfinal: 是否成品
+ // const { slaveSelectedRowKeys, controlSelectedRowKeys, materials0Data, materials1Data, materials1ChildData, materials2Data, materials2ChildData, materialsOtherData } = props;
+ // if (true) {
+ // let oriData = commonUtils.isNotEmptyArr(data.data) ? data.data : [];
+ // let res = [];
+ // switch (type) {
+ // case 'materials2': /* 电化铝 */
+ // if (commonUtils.isNotEmptyArr(materials2ChildData)) {
+ // const newData = [];
+ // materials2ChildData.forEach((val) => {
+ // const iIndex = newData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle);
+ // if(iIndex === -1){
+ // newData.push(val);
+ // }
+ //
+ // });
+ // res = newData;
+ // console.log('电化铝子集', newData);
+ // if (bFinal) { /* 成品材料 */
+ // if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ // res = oriData.filter((val) => {
+ // return val.sType === '2' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ // });
+ // } else {
+ // res = oriData.filter((val) => {
+ // return val.sType === '2';
+ // });
+ // }
+ // } else { /* 部件材料 */
+ // res = newData.filter((val) => {
+ // return val.sType !== '2';
+ // });
+ // }
+ // } else {
+ // res = oriData;
+ // }
+ // break;
+ // case 'materials0': /* 全部材料 */
+ // if (true) {
+ // let newData0 = commonUtils.isNotEmptyArr(materials1Data) ? materials1Data : []; /* 专色墨 */
+ // let newData1 = commonUtils.isNotEmptyArr(materials1ChildData) ? materials1ChildData : []; /* 油墨 */
+ // let newDataChild = commonUtils.isNotEmptyArr(materials2ChildData) ? materials2ChildData : []; /* 电化铝明细 */
+ //
+ // const newDhlData = []; /* 电化铝汇总 */
+ // newDataChild.forEach((val) => {
+ // const iIndex = newDhlData.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle);
+ // if(iIndex === -1){
+ // newDhlData.push(val);
+ // }
+ //
+ // });
+ //
+ // let newOtherData = commonUtils.isNotEmptyArr(materialsOtherData) ? materialsOtherData : []; /* 其他子集 */
+ //
+ // /* 如果其他子级是空的 取不是油墨。电化铝、专色墨部分 */
+ // if(commonUtils.isNotEmptyArr(newOtherData) && commonUtils.isNotEmptyArr(materials0Data)) {
+ // newOtherData = materials0Data.filter(item => item.sZmldlName !== '油墨' &&
+ // item.sZmldlName !== '自调专色墨' && item.sZmldlName !== '电化铝' );
+ // }
+ //
+ // const newDataTemp = (newData0.concat(newData1)).concat(newDhlData);
+ // let allData = newDataTemp.concat(newOtherData);
+ //
+ // if (bFinal) { /* 成品材料 */
+ // if (slaveSelectedRowKeys && slaveSelectedRowKeys.length) {
+ // res = allData.filter((val) => {
+ // return val.sType === '3' && (val.sCombinePartsName === slaveSelectedRowKeys[0] || !val.sCombinePartsName);
+ // });
+ // } else {
+ // res = allData.filter((val) => {
+ // return val.sType === '3';
+ // });
+ // }
+ // } else { /* 部件材料 */
+ // // if (controlSelectedRowKeys && controlSelectedRowKeys.length) {
+ // // res = oriData.filter((val) => {
+ // // return val.sType !== '3' && (controlSelectedRowKeys.includes(val.sControlId) || !val.sControlId);
+ // // });
+ // // } else {
+ // // res = allData.filter((val) => {
+ // // return val.sType !== '3';
+ // // });
+ // // }
+ // res = allData;
+ // }
+ // } else {
+ // res = oriData;
+ // }
+ // break;
+ // default:
+ // res = oriData;
+ // }
+ // return res;
+ // } else {
+ // return [];
+ // }
+ // };
+
+
+ // const materialsFilterNew1 = (data, type, bFinal) => {
+ // // materials : 0-1部件材料 : 2成品材料;
+ // // process : 0-1-2 部品工序 : 3成品工序;
+ // // bfinal: 是否成品
+ // const { materials0Data } = props;
+ // let oriData = commonUtils.isNotEmptyArr(data.data) ? data.data : [];
+ // let res = [];
+ // let newData = [];
+ // if (type === 'materials1' || type === 'materials2') {
+ // if (commonUtils.isNotEmptyArr(materials0Data)) {
+ // const config = data.config;
+ // const sSqlCondition = config ? config.sSqlCondition : '';
+ // if (sSqlCondition) {
+ // const targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */
+ // const filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ // const sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ //
+ // if (targetTbName === 'materials0') {
+ // const filterData = materials0Data.filter(item => item[filteredValue] === sParentKey);
+ // if (commonUtils.isNotEmptyArr(filterData)) {
+ // newData = filterData;
+ // }
+ // }
+ // }
+ //
+ // }
+ // res = newData;
+ // } else {
+ // res = oriData;
+ // }
+ // return res;
+ // }
+
+ const materialsFilterNew = (data, type, bFinal) => {
+ // materials : 0-1部件材料 : 2成品材料;
+ // process : 0-1-2 部品工序 : 3成品工序;
+ // bfinal: 是否成品
+ const { materials0Data, processSelectedRowKeys, processData, controlSelectedRowKeys, controlData, slaveData, slaveSelectedRowKeys } = props;
+ let oriData = materials0Data;
+ let res = [];
+ let newData = [];
+ let processRow = {};
+ let controlRow = {};
+
+ const iSlaveIndex = commonUtils.isNotEmptyArr(slaveData) ? slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)) : -1;
+ let slaveRow ={};
+ if(iSlaveIndex > -1 ){
+ slaveRow = slaveData[iSlaveIndex];
+ } else if(commonUtils.isNotEmptyArr(slaveData) && slaveData.length ===1 ) {
+ slaveRow = slaveData[0];
+ }
+
+ if(commonUtils.isNotEmptyArr(controlData) && commonUtils.isNotEmptyArr(controlSelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ controlRow = controlData[iIndex];
+ }
+ }
+
+ if(commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyArr(processSelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = processData.findIndex(item => processSelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ processRow = processData[iIndex];
+ }
+ }
+
+ if (type === 'materials0') {
+ /* 根据工序表选中行的部件id +工序id 过滤全部材料数据 */
+ if(commonUtils.isNotEmptyObject(processRow)){
+ const filterData = oriData.filter(item => ( (item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId)
+ || (commonUtils.isNotEmptyObject(slaveRow) && item.sCombinePartsName === slaveRow.sId)) && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData;
+ }
+ res = newData;
+ } else if(commonUtils.isNotEmptyObject(controlRow)){
+ const filterData = oriData.filter(item => (item.sControlId === controlRow.sId || commonUtils.isEmptyObject(item.sControlId) ) && commonUtils.isEmptyObject(item.sParentMaterialsId) ); // || (commonUtils.isNotEmptyObject(slaveRow) && item.sCombinePartsName === slaveRow.sId)
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData;
+ }
+
+ res = newData;
+ } else {
+ res = oriData;
+ }
+
+ } else if (type === 'materials1' || type === 'materials2') {
+ /* 过滤后的 materials0Data */
+ let materials0FilterData = [];
+ if(commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ }else if(commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else {
+ materials0FilterData = materials0Data;
+ }
+ if (commonUtils.isNotEmptyArr(materials0FilterData)) {
+ const config = data.config;
+ const sSqlCondition = config ? config.sSqlCondition : 'materials0.sBclassifyName.油墨';
+ if (sSqlCondition) {
+ let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */
+ if(commonUtils.isEmptyObject(targetTbName)) {
+ targetTbName = 'materials0';
+ }
+ let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ if(commonUtils.isEmptyObject(targetTbName)){
+ if(type === 'materials1') { /* materials0.sBclassifyName.油墨 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '油墨';
+ } else if(type ==='materials2') { /* materials0.sBclassifyName.电化铝 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '电化铝';
+ }
+ }
+ if (targetTbName === 'materials0') {
+ const filterData = materials0FilterData.filter(item => item[filteredValue] === sParentKey && commonUtils.isEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData;
+ }
+ }
+ }
+
+ }
+ res = newData;
+ } else if( type === 'materials1Child') {
+ /* 过滤后的 materials0Data */
+ let materials0FilterData = [];
+ if(commonUtils.isNotEmptyObject(processRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === processRow.sControlId && item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId );
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ }else if(commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(materials0Data)){
+ const filterData = materials0Data.filter(item => item.sControlId === controlRow.sId);
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ materials0FilterData = filterData;
+ }
+ } else {
+ materials0FilterData = materials0Data;
+ }
+ if (commonUtils.isNotEmptyArr(materials0FilterData)) {
+ const config = data.config;
+ const sSqlCondition = config && commonUtils.isNotEmptyObject(config.sSqlCondition) ? config.sSqlCondition : 'materials0.sBclassifyName.油墨';
+ if (sSqlCondition) {
+ let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */
+ if(commonUtils.isEmptyObject(targetTbName)) {
+ targetTbName = 'materials0';
+ }
+ let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */
+ let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */
+ if(commonUtils.isEmptyObject(targetTbName)){
+ if(type === 'materials1') { /* materials0.sBclassifyName.油墨 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '油墨';
+ } else if(type ==='materials2') { /* materials0.sBclassifyName.电化铝 */
+ filteredValue = 'sBclassifyName';
+ sParentKey = '电化铝';
+ }
+ }
+ if (targetTbName === 'materials0') {
+ const filterData = materials0FilterData.filter(item => item[filteredValue] === sParentKey && commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ newData = filterData;
+ }
+ }
+ }
+
+ }
+
+ if( type ==='materials1Child') { /* 油墨过滤子集 */
+ const { materials1Data, materials1SelectedRowKeys } = props;
+ let materials1Row ={}; /* 油墨子级 */
+ if(commonUtils.isNotEmptyArr(materials1Data) && commonUtils.isNotEmptyArr(materials1SelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = materials1Data.findIndex(item => materials1SelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ materials1Row = materials1Data[iIndex];
+ }
+ }
+ res = newData.filter(item => item.sParentMaterialsId === materials1Row.sId);
+ }
+
+
+ } else if(type ==='materials0Child') { /* 全部材料 过滤替代料 */
+ const { materials0Data, materials0SelectedRowKeys } = props;
+ let materials0Row ={}; /* 油墨子级 */
+ if(commonUtils.isNotEmptyArr(materials0Data) && commonUtils.isNotEmptyArr(materials0SelectedRowKeys)){ /* 没有工序选中行 则不进行数据过滤 */
+ const iIndex = materials0Data.findIndex(item => materials0SelectedRowKeys.includes(item.sId));
+ if(iIndex > -1) {
+ materials0Row = materials0Data[iIndex];
+ }
+ }
+ if(commonUtils.isNotEmptyObject(materials0Row)) { /* 根据工序过滤所有替代料 */
+ res = oriData.filter(item => item.sParentMaterialsId === materials0Row.sId);
+ } else if(commonUtils.isNotEmptyObject(processRow)) { /* 根据工序过滤所有替代料 */
+ res = oriData.filter(item => item.sProcessId === processRow.sProcessId && item.sProcessTbId === processRow.sId);
+ }
+
+ } else {
+ res = oriData;
+ }
+ return res;
+ }
+
+
+ const materialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ customDropData: genCustomDropData(),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ };
+ const finishedMaterialsPropsType = {
+ ...commonBusiness.getTableTypes('materials', props),
+ configName: 'finishedMaterials',
+ data: dataFilter(commonBusiness.getTableTypes('materials', props), 'materials', true),
+ headerColumn: finishedMaterialsColumn,
+ config: finishedMaterialsConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ customDropData: genCustomDropData(),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ bShowProductMaterials,
+ chooseProductMaterialsConfigRow, /* 成品材料按钮配置 */
+ // setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: '100%',
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ };
+
+ const materialsTablePropsList = {};
+ if (commonUtils.isNotEmptyArr(materialsInfoList)) {
+ materialsInfoList.forEach((item, index) => {
+ // const slaveTablePagination = {
+ // pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ // ...slavePagination,
+ // size: isSmall ? 'small' : 'large',
+ // pageSizeOptions: commonConfig.pageSizeOptions,
+ // showSizeChanger: !isSmall,
+ // showQuickJumper: !isSmall,
+ // hideOnSinglePage: true,
+ // };
+ materialsTablePropsList[`materialsTable${index}Props`] = {
+ ...commonBusiness.getTableTypes(`materials${index}`, props),
+ // data: materialsFilter(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false),
+ data: materialsFilterNew(commonBusiness.getTableTypes(`materials${index}`, props), `materials${index}`, false),
+ // tableBelone: 'list',
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ },
+ };
+ });
+ }
+
+
+ const materialsChildTablePropsList = {};
+ if (commonUtils.isNotEmptyArr(materialsChildInfoList)) {
+ materialsChildInfoList.forEach((item, index) => {
+ materialsChildTablePropsList[`${item}TableProps`] = {
+ ...commonBusiness.getTableTypes(`${item}`, props),
+ // tableBelone: 'list',
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ },
+ };
+ });
+ }
+
+
+ const processPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process'),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: '100%',
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ onDrag: props.onDrag,
+ isDragAndDrop: false,
+ };
+
+ let processShowLeft = {};
+ let processShowTitle = '';
+ if (commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft');
+ if (iIndex > -1) {
+ processShowLeft = props.processConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */
+ if(commonUtils.isNotEmptyObject(processShowLeft)) {
+
+ if(processShowLeft.bVisible) {
+ processShowTitle = processShowLeft.sChinese;
+ }
+
+ }
+ }
+ }
+
+
+
+ const finishedProcessPropsType = {
+ ...commonBusiness.getTableTypes('process', props),
+ configName: 'finishedProcess',
+ data: dataFilter(commonBusiness.getTableTypes('process', props), 'process', true),
+ headerColumn: finishedProcessColumn,
+ config: finishedProcessConfig,
+ filteredValue: props.controlSelectedRowKeys,
+ // onFilterData: props.onFilterProductData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ bShowProductProcess,
+ chooseProductProcessConfigRow, /* 成品工序按钮配置 */
+ // setNoCommonOperate: true, /* 没有新增、修改、删除通用操作按钮 */
+ AutoTableHeight: '100%',
+ sticky: isLayout ? { offsetHeader: stickyHeight } : true,
+ },
+ onDrag: props.onProductDrag,
+ };
+
+ let finalProcessShowLeft = {};
+ if (commonUtils.isNotEmptyObject(finishedProcessConfig)) {
+ const iIndex = finishedProcessConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft');
+ if (iIndex > -1) {
+ finalProcessShowLeft = finishedProcessConfig.gdsconfigformslave[iIndex];/* 配置了成品工序按钮 */
+ }
+ }
+
+ let colorTableProps = {};
+ if (colorConfigGrdVisible) {
+ colorTableProps = {
+ ...commonBusiness.getTableTypes('color', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ // cProps = { ...commonBusiness.createMemoProps('color', props) };
+ }
+
+ let visionTableProps = {};
+
+ let visionTableTitle = '改版记录';
+ if (commonUtils.isNotEmptyObject(visionConfig)) {
+ visionTableProps = {
+ ...commonBusiness.getTableTypes('vision', props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null, setAdd, setCopy, setDelete, AutoTableHeight: '100%',
+ },
+ };
+ visionTableTitle = visionConfig.sChinese;
+ }
+
+ const packTableProps = {
+ ...commonBusiness.getTableTypes('pack', props),
+ filteredValue: props.controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy, setDelete, CalLastWidth: '1150', AutoTableHeight: '300px',
+ },
+ bRowClick: true,
+ };
+
+ let combinePartsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.packConfig)) {
+ combinePartsConfig = JSON.parse(JSON.stringify(props.packConfig));
+ const gdsconfigformslaveFilter = combinePartsConfig.gdsconfigformslave.filter(item => (item.sName === 'sId'
+ || item.sName === 'sCustomerName'
+ || item.sName === 'sProductName'
+ || item.sName === 'sCombinePartsName'));
+ combinePartsConfig.gdsconfigformslave = gdsconfigformslaveFilter;
+ combinePartsConfig.bMutiSelect = false;
+ }
+ let combinePartsColumn = [];
+ if (commonUtils.isNotEmptyObject(props.packColumn)) {
+ combinePartsColumn = JSON.parse(JSON.stringify(props.packColumn));
+ const packColumnFilter = props.packColumn.filter(item => (item.dataIndex === 'sId'
+ || item.dataIndex === 'sCustomerName'
+ || item.dataIndex === 'sProductName'
+ || item.dataIndex === 'sCombinePartsName'));
+ combinePartsColumn = packColumnFilter;
+ }
+ const combinePartsTableProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'combineParts',
+ config: combinePartsConfig,
+ select: props.onSelectCombinePartsChoose,
+ selectCancel: props.onCancelModal.bind(this, 'combinePartsChooseVisible'),
+ },
+ },
+ formRoute: '/indexPage/commonList',
+ slaveConfig: combinePartsConfig,
+ slaveColumn: combinePartsColumn,
+ slaveData: props.combinePartsData,
+ slaveSelectedRowKeys: props.combinePartsSelectedRowKeys,
+ selectedRowKeys: props.combinePartsSelectedRowKeys,
+ pageLoading: false,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ /* 工序表选择颜色 */
+ let chooseColorsConfig = {};
+ let searchColorsType = {};
+ if (commonUtils.isNotEmptyObject(props) && commonUtils.isNotEmptyObject(props.processConfig)) {
+ const iIndex = props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseColors');
+ if (iIndex > -1) {
+ chooseColorsConfig = props.processConfig.gdsconfigformslave[iIndex];
+ }
+ searchColorsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'sisColor',
+ config: chooseColorsConfig,
+ conditonValues: props.getSqlCondition(chooseColorsConfig),
+ title: '选择颜色',
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: chooseColorsConfig.sActiveId,
+ key: sModelsId + chooseColorsConfig.sId,
+ sModelsType: 'search/sisColor',
+ select: props.onSelectSisColor,
+ selectCancel: props.onSelectCancel,
+ bEdit: props.enabled,
+ },
+ },
+ enabled: props.enabled,
+ sisColorSelectedData: props.sisColorSelectedData,
+ // sisColorSelectedData: props.slaveFilterData,
+ slaveSelectedRowKeys: props.sisColorSelectedRowKeys,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ searchColorsType.app = {
+ ...searchColorsType.app,
+ ...props.showCacheData(props.isSColorSerialMemo?.current, props.processData, props.processSelectedRowId) || {},
+ };
+ }
+
+ let searchProcessType = {};
+ let chooseProcessConfig = {};
+ let setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */
+ if (commonUtils.isNotEmptyObject(props.processChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
+ if (iIndex > -1) {
+ chooseProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setProcessTitle = props.processChooseData.sMenuName;
+ searchProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'process',
+ config: chooseProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProcessConfig),
+ title: props.processChooseData.sMenuName,
+ route: props.processChooseData.sName,
+ formId: props.processChooseData.sId,
+ key: sModelsId + props.processChooseData.sId,
+ sModelsType: props.processChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品工序 */
+ let chooseProdutProcessType = {};
+ let chooseProdutProcessConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productProcessChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductProcess');
+ if (iIndex > -1) {
+ chooseProdutProcessConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表 */
+ });
+ }
+ /* 选择成品工序 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+
+ chooseProdutProcessType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'chooseProductProcess',
+ config: chooseProdutProcessConfig,
+ conditonValues: props.getSqlCondition(chooseProdutProcessConfig),
+ title: props.productProcessChooseData.sMenuName,
+ route: props.productProcessChooseData.sName,
+ formId: props.productProcessChooseData.sId,
+ key: sModelsId + props.productProcessChooseData.sId,
+ sModelsType: 'search/finalProcess',
+ select: props.onSelectFinalProcess, /* 选择成品工序 */
+ selectCancel: props.onCancelModal.bind(this, 'productProcessChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ /* 选择成品材料 */
+ let chooseProductMaterialsType = {};
+ let chooseProductMaterialsConfig = {};
+ if (commonUtils.isNotEmptyObject(props.productMaterialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProductMaterials');
+ if (iIndex > -1) {
+ chooseProductMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ let slaveFinalData = [];
+ let slaveFinalSelectedRowKeys =[];
+ if (commonUtils.isNotEmptyArr(props.slaveData)) {
+ slaveFinalData = JSON.parse(JSON.stringify(props.slaveData));
+ if (commonUtils.isNotEmptyArr(slaveFinalData) && slaveFinalData.length > 0) {
+ slaveFinalData.forEach((item) => {
+ item.sSlaveId = commonUtils.createSid(); /* 添加成品工序从表s */
+ });
+ }
+ /* 选择成品材料 只有一条从表 则默认选中 */
+ if(slaveFinalData.length ===1){
+ slaveFinalSelectedRowKeys.push(slaveFinalData[0].sSlaveId);
+ }
+ }
+
+ let slaveFinalConfig = {};
+ if (commonUtils.isNotEmptyObject(props.slaveConfig)) {
+ slaveFinalConfig = JSON.parse(JSON.stringify(props.slaveConfig));
+ slaveFinalConfig.bMutiSelect = true;
+ }
+ chooseProductMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productMaterials',
+ config: chooseProductMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseProductMaterialsConfig),
+ title: props.productMaterialsChooseData.sMenuName,
+ route: props.productMaterialsChooseData.sName,
+ formId: props.productMaterialsChooseData.sId,
+ key: sModelsId + props.productMaterialsChooseData.sId,
+ sModelsType: 'search/finalMaterials',
+ select: props.onSelectProductMaterial,
+ selectCancel: props.onCancelModal.bind(this, 'productMaterialsChooseVisible'),
+ },
+ },
+ slaveFinalConfig,
+ slaveFinalColumn: props.slaveColumn,
+ slaveFinalData,
+ slaveFinalSelectedRowKeys,
+ dispatch: props.dispatch,
+ fatherModelsType: props.sModelsType,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+
+ let searchMaterialsType = {};
+ let chooseMaterialsConfig = {};
+ let setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */
+ if (commonUtils.isNotEmptyObject(props.materialsChooseData)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials');
+ if (iIndex > -1) {
+ chooseMaterialsConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ }
+ setMaterialTitle = props.materialsChooseData.sMenuName;
+
+ props.setModalId('materials');
+ searchMaterialsType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'materials',
+ config: chooseMaterialsConfig,
+ conditonValues: props.getSqlCondition(chooseMaterialsConfig),
+ title: props.materialsChooseData.sMenuName,
+ route: props.materialsChooseData.sName,
+ formId: props.materialsChooseData.sId,
+ key: sModelsId + props.materialsChooseData.sId,
+ sModelsType: props.materialsChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: props.getModalId('materials'),
+ };
+ }
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex];
+ processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult;
+ }
+ productProcessInfoType = {
+ app: {
+ ...props.app,
+ currentPane: {
+ name: 'productProcessInfo',
+ config: productProcessInfoConfig,
+ conditonValues: props.getSqlCondition(productProcessInfoConfig),
+ title: props.productProcessInfoChooseData.sMenuName,
+ route: props.productProcessInfoChooseData.sName,
+ formId: props.productProcessInfoChooseData.sId,
+ key: sModelsId + props.productProcessInfoChooseData.sId,
+ sModelsType: props.productProcessInfoChooseData.sModelType,
+ select: props.onSelect,
+ selectCancel: props.onSelectCancel,
+ },
+ },
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ };
+ }
+ /* 新方式的工艺参数 */
+ const sParamProps = {
+ ...commonBusiness.getTableTypes('sParam', props),
+ tableProps: {
+ rowKey: 'sId',
+ // pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ },
+ bRowClick: true,
+ };
+
+
+ /* 带拖动信息的工艺参数 */
+ // const sCommonParamProps = {
+ // ...props,
+ // sParamType :'sWorkOrder', /* 参数类型 */
+ // slaveData: props.processSelectedData,
+ // // masterData: { ...props.masterData, }
+ // };
+
+
+ const tabChange = (e) => {
+ props.onTabChange(e);
+ };
+
+ const tabChange2 = (e) => {
+ props.onTabChange2(e);
+ };
+
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ let materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */
+ materialsInfo = '纸张';
+
+
+ let dhlInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 电化铝 */
+ dhlInfo = '电化铝';
+ let materialsFlInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 成品辅料 */
+ materialsFlInfo = '成品辅料';
+
+ const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */
+ let productMaterialsInfo = commonFunc.showMessage(app.commonConst, 'productMaterialsInfo') ;/* 成品材料 */
+ productMaterialsInfo = '油墨';
+ const productProcessInfo = commonFunc.showMessage(app.commonConst, 'productProcessInfo');/* 成品工序 */
+ const colorInfo = commonFunc.showMessage(app.commonConst, 'colorInfo');/* 颜色信息 */
+
+ const setProductProcessTitle = commonFunc.showMessage(app.commonConst, 'setProductProcess');/* 选择成品工序标题 */
+ const setProductMaterialsTitle = commonFunc.showMessage(app.commonConst, 'setProductMaterials');/* 选择成品工序标题 */
+ const setSisColorTitle = commonFunc.showMessage(app.commonConst, 'setSisColor');/* 选择颜色标题 */
+ const setProductCombinationTitle = commonFunc.showMessage(app.commonConst, 'setProductCombination');/* 选择合拼产品标题 */
+
+ const dailyInfo = commonFunc.showMessage(app.commonConst, 'dailyInfo');/* 日志信息 */
+
+ // tree组件新增滚动至底部方法
+ // let treeNode = null;
+ // const treeRef = (n) => {
+ // treeNode = n;
+ // };
+ // const treeScrollToBottom = (node) => {
+ // console.log(node, 112233);
+ // if (node) {
+ // node.scrollTop = node.scrollHeight;
+ // }
+ // };
+ // tree组件新增滚动至底部方法ends
+
+ const fastOrder = commonFunc.showMessage(app.commonConst, 'fastOrder');/* 快速下单 s */
+ const comfirmOrder = commonFunc.showMessage(app.commonConst, 'comfirmOrder');/* 确认下单 */
+ const setUp = commonFunc.showMessage(app.commonConst, 'setUp');/* 上移 */
+ const setDown = commonFunc.showMessage(app.commonConst, 'setDown');/* 下移 */
+ const setTop = commonFunc.showMessage(app.commonConst, 'setTop');/* 置顶 */
+ const setBottom = commonFunc.showMessage(app.commonConst, 'setBottom');/* 置底s */
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAdd = {props.enabled ? setAdd.img : setAdd.disableimg} ;
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateAddChild = {props.enabled ? setAddChild.img : setAddChild.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateCopy = {props.enabled ? setCopy.img : setCopy.disableimg};
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateUpdate = {props.enabled ? setCopyAll.img : setCopyAll.disableimg };
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+ const operateDel = {props.enabled ? setDelete.img : setDelete.disableimg};
+
+ let bControlShow = true; /* 控制表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexControl = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbControl');
+ if (iIndexControl > -1) {
+ bControlShow = props.masterConfig.gdsconfigformslave[iIndexControl].bVisible;
+ }
+ }
+ let bMaterialShow = true; /* 材料表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexMaterial = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbMaterial');
+ if (iIndexMaterial > -1) {
+ bMaterialShow = props.masterConfig.gdsconfigformslave[iIndexMaterial].bVisible;
+ }
+ }
+ let bProcessShow = true; /* 工序表 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndexProcess = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'tbProcess');
+ if (iIndexProcess > -1) {
+ bProcessShow = props.masterConfig.gdsconfigformslave[iIndexProcess].bVisible;
+ }
+ }
+ let bShowAllTable = true; /* 显示所有表格 */
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowAllTable');
+ if (iIndex > -1) {
+ bShowAllTable = props.masterConfig.gdsconfigformslave[iIndex].bVisible;
+ }
+ }
+
+ const bFinalMaterialsTabShow = commonUtils.isEmptyObject(finishedMaterialsConfig) ? false :(bSplitMaterials ? true : false); /* 没有成品材料配置 则材料Tab不展示 */
+ const bFinalProcessTabShow = commonUtils.isEmptyObject(finishedProcessConfig) ? false : (bSplitProcess ? true : false); /* 没有成品工序配置 则工序Tab不展示 */
+
+ const panelExtra = (type) => {
+ let str = '';
+ /* 根据materials找到其组所有配置头 */
+
+ let radioConfigArr = [];
+ if(commonUtils.isNotEmptyArr(formData)) {
+ // radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) );
+ radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) && item.bGrdVisible );
+ // console.log('radioConfigArr:', radioConfigArr);
+ if(sModelsId === '12710101116950085152680') {
+ radioConfigArr = formData.filter(item => commonUtils.isNotEmptyObject(item.sGrd) && item.sGrd.includes(type) && item.bGrdVisible &&
+ item.showName !=='成品材料');
+ }
+ }
+ if (type === 'material') {
+ str = (
+
+ tabChange(e.target.value)}>
+ {/*{materialsInfo}*/}
+ {/*{bSplitMaterials ? {productMaterialsInfo} : ''}*/}
+ {/*{dhlInfo}*/}
+ {/*{materialsFlInfo}*/}
+ {
+ radioConfigArr.map((child, index) => {
+ const radioTitle = child.showName;
+ const radioValue = index + 2 + 10;
+ // console.log('radioValue', radioTitle, radioValue);
+ return(
+ {radioTitle}
+ )
+ })
+ }
+
+
+ )
+ } else if (type === 'process') {
+ str = (
+
+ tabChange2(e.target.value)}>
+ {processInfo}
+ {bSplitProcess ? {productProcessInfo} : ''}
+
+
+ )
+ }else if (type === 'daily') {
+ str = (
+
+ tabChange2(e.target.value)}>
+ {dailyInfo}
+
+
+ )
+ }
+ return str;
+ }
+
+ const activeKeyChange = (e) => {
+ props.onActiveKey(e);
+ };
+ const okButtonStyle ={
+ style:{
+ display:"none",
+ backgroundColor:"red"
+ }
+ }
+ const cancelButtonStyle = {
+ htmlType:"退出",
+ style: {
+ width: 70,
+ height: 50,
+ }
+ }
+ const autoHeight = `calc( 100vh - 92px )`;
+
+ return (
+
+ );
+});
+
+export default CommonBase(CommonSales(WorkOrderPack));
diff --git a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js
new file mode 100644
index 0000000..1903fe5
--- /dev/null
+++ b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.js
@@ -0,0 +1,4695 @@
+/* eslint-disable */
+import React, { useEffect, useState, useMemo, useRef } from "react";
+import moment from "moment";
+import { Avatar, Collapse, Radio, Row, Col, Divider, message, Modal } from "antd";
+import { RightOutlined } from "@ant-design/icons";
+import { Form } from "@ant-design/compatible";
+import CommonBase from "@/components/Common/CommonBase";
+import CommonSales from "@/components/Common/CommonBillEvent";
+import { CommonPackEvent, CommonModal } from "../CommonPackEvent";
+import * as commonBusiness from "@/components/Common/commonBusiness";
+import * as commonUtils from "@/utils/utils";
+import * as commonFunc from "@/components/Common/commonFunc";
+import * as commonConfig from "@/utils/config";
+import * as commonServices from "@/services/services";
+import Toolbar from "@/components/Common/ToolBar/ToolBarNew";
+import CommonView from "@/components/Common/CommonView";
+import StaticEditTable from "@/components/Common/CommonTable";
+import CommonViewDragable from "@/components/Common/CommonViewDragable";
+import AntdDraggableModal from "@/components/Common/AntdDraggableModal";
+import styles from "./index.less";
+
+const { Panel } = Collapse;
+
+// 数据处理
+const WorkOrderPackTableTreeNewEvent = props => {
+ const { formData, currentId, app, token, masterConfig = {}, slaveConfig } = props;
+ const sId = currentId || "";
+ const returnProps = {};
+ const pageType = useRef("pbom");
+
+ // 初始化获取数据
+ useEffect(
+ () => {
+ if (!masterConfig.sId) return;
+ if (masterConfig.sTbName.toLowerCase().includes("workorder")) {
+ pageType.current = "workorder";
+ }
+
+ const fetchData = async () => {
+ let addState = { pageType: pageType.current };
+ const tableList = [];
+
+ // 控制表配置
+ const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === "MftWorkOrderControl".toUpperCase())[0];
+ const controlColumn = commonFunc.getHeaderConfig(controlConfig);
+ tableList.push(["control", controlConfig, controlColumn]);
+
+ // 工序表配置
+ const processConfig = formData.filter(item => item.sTbName.toUpperCase() === "MftWorkOrderProcess".toUpperCase())[0];
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sMachineId");
+ if (iIndex !== -1) {
+ processConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
+ }
+ const processColumn = commonFunc.getHeaderConfig(processConfig);
+ tableList.push(["process", processConfig, processColumn]);
+
+ // 材料表配置
+ const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === "MftWorkOrderMaterials".toUpperCase())[0];
+ const materialsColumn = commonFunc.getHeaderConfig(materialsConfig);
+ addState = {
+ ...addState,
+ materialsConfig,
+ materialsColumn,
+ };
+
+ const materialsInfoList = [];
+ const materialsChildInfoList = [];
+ const addStateMap = {};
+ const materialsFormData = formData.filter(item => item.sGrd?.includes("materials") && item.bGrdVisible);
+
+ materialsFormData.forEach((item, index) => {
+ const config = item;
+ const column = commonFunc.getHeaderConfig(item);
+ const tablename = `materials${index}`;
+ materialsInfoList.push(tablename);
+ tableList.push([tablename, config, column]);
+ addStateMap[`${tablename}Config`] = config;
+ /* 找到该配置的子从表 */
+ const childFormData = formData.filter(child => child.sGrd === item.sChildTableName);
+ if (commonUtils.isNotEmptyArr(childFormData)) {
+ childFormData.forEach((child, num) => {
+ const childConfig = child;
+ const childColumn = commonFunc.getHeaderConfig(child);
+ const chlidTablename = `materials${index}Child`;
+ materialsChildInfoList.push(chlidTablename);
+ tableList.push([chlidTablename, childConfig, childColumn]);
+ addStateMap[`${chlidTablename}Config`] = childConfig;
+ });
+ }
+ });
+
+ addState = {
+ ...addState,
+ materialsInfoList,
+ materialsChildInfoList,
+ addStateMap,
+ };
+
+ // // 日志表配置
+ // const dailyConfig = formData.filter(item => item.sTbName.toUpperCase() === "mftproductchange".toUpperCase())[0];
+ // const dailyConfigGrdVisible = dailyConfig?.bGrdVisible;
+
+ // if (dailyConfigGrdVisible) {
+ // const dailyColumn = commonFunc.getHeaderConfig(dailyConfig);
+ // tableList.push(["daily", dailyConfig, dailyColumn]);
+ // }
+
+ // 颜色配置
+ const colorConfig = formData.filter(item => item.sTbName.toUpperCase() === "mftproductchange".toUpperCase())[0];
+ const colorConfigGrdVisible = colorConfig?.bGrdVisible;
+
+ if (colorConfigGrdVisible) {
+ const colorColumn = commonFunc.getHeaderConfig(colorConfig);
+ tableList.push(["color", colorConfig, colorColumn]);
+ }
+
+ // 合版信息配置
+ const packConfig = formData.filter(
+ item =>
+ item.sTbName.toUpperCase() === "mftproductcontrolcombine".toUpperCase() ||
+ item.sTbName.toUpperCase() === "mftworkordercontrolcombine".toUpperCase()
+ )[0];
+
+ // 合版信息拼接从表配置,客户名称 ,产品名称,生产数
+ const slaveChooseConfig = slaveConfig.gdsconfigformslave.filter(
+ item =>
+ item.sName === "sCustomerName" ||
+ item.sName === "sProductId" ||
+ item.sName === "sCustomerId" ||
+ item.sName === "sProductNo" ||
+ item.sName === "sProductName" ||
+ item.sName === "dProductQty" ||
+ item.sName === "sProductStyle" ||
+ item.sName === "sProductUnit"
+ );
+ const salveChooseConfigFilter = [];
+ if (commonUtils.isNotEmptyArr(slaveChooseConfig) && commonUtils.isNotEmptyObject(packConfig)) {
+ slaveChooseConfig.forEach(item => {
+ const iIndex = packConfig.gdsconfigformslave.findIndex(itemNew => itemNew.sName === item.sName);
+ if (iIndex === -1) {
+ const itemNew = Object.assign({}, item);
+ itemNew.bNotEmpty = false;
+ salveChooseConfigFilter.push(itemNew);
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(salveChooseConfigFilter)) {
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ let packFilter = packConfig.gdsconfigformslave.filter(item => item.sName === "iOrder");
+ packFilter = packFilter.concat(salveChooseConfigFilter);
+ const packFilterOther = packConfig.gdsconfigformslave.filter(item => item.sName !== "iOrder");
+ packFilter = packFilter.concat(packFilterOther);
+ packConfig.gdsconfigformslave = packFilter;
+ }
+ }
+
+ const packColumn = commonFunc.getHeaderConfig(packConfig);
+
+ tableList.push(["pack", packConfig, packColumn]);
+
+ // 改版信息配置
+ const visionConfig = formData.find(item => item.sTbName.toUpperCase() === "sisrevision".toUpperCase() && item.bGrdVisible);
+ if (visionConfig) {
+ const visionColumn = commonFunc.getHeaderConfig(visionConfig);
+ tableList.push(["vision", visionConfig, visionColumn]);
+ addStateMap["visionConfig"] = visionConfig;
+ }
+
+ if (sId) {
+ props.onGetData(masterConfig, slaveConfig);
+
+ // 获取数据
+ const fetchDataPromises = tableList.filter(item => item[1]).map(async item => {
+ const [name, configData, column] = item;
+ const dataSet = await props.handleGetDataSet({
+ name,
+ configData,
+ condition: { sSqlCondition: { sParentId: sId } },
+ isWait: true,
+ });
+ return {
+ [`${name}Config`]: configData,
+ [`${name}Column`]: column,
+ ...dataSet,
+ };
+ });
+ const results = await Promise.all(fetchDataPromises);
+ results.forEach(result => {
+ addState = { ...addState, ...result };
+ });
+ } else {
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.packConfig = packConfig;
+ config.colorConfig = colorConfig;
+ // config.dailyConfig = dailyConfig;
+ addState = {
+ ...addState,
+ ...(await handleAdd(config, props.app.currentPane.copyTo, true)),
+ };
+
+ tableList.filter(item => item[1]).forEach(item => {
+ const [name, configData, column] = item;
+ addState = {
+ ...addState,
+ [`${name}Config`]: configData,
+ [`${name}Column`]: column,
+ };
+ });
+ }
+
+ props.onSaveState(addState);
+ };
+
+ fetchData();
+ },
+ [masterConfig.sId]
+ );
+
+ // 将事件指派到指定的方法
+ const dispatchFunc = (tableName, funcName, nameList, args) => {
+ const params = nameList.reduce((pre, item, index) => {
+ pre[item] = args[index];
+ return pre;
+ }, {});
+
+ const func = props[`${tableName}Props`]?.[funcName];
+ console.log("=====func", func);
+ if (func) {
+ return func(params);
+ }
+
+ return props[funcName](...args);
+ };
+
+ // 新增
+ const handleAdd = async (config, copyTo, isWait) => {
+ if (commonUtils.isEmptyObject(config)) {
+ const { masterConfig, slaveConfig, controlConfig, processConfig, materialsConfig, colorConfig } = props;
+ config = config === undefined ? {} : config;
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.materialsConfig = materialsConfig;
+ config.controlConfig = controlConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ }
+ let state = await props.onAdd(config, copyTo, true);
+ let { slaveData, masterData } = state;
+ let controlData = [];
+ let packData = [];
+ let materialsData = [];
+ let processData = [];
+ const colorData = [];
+ const visionData = [];
+ /* 未清复制到或是翻单走的逻辑 */
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ const { app, sModelsId, token, sModelsType } = props;
+ const bCkxCopyFromTechnology = app.systemData.filter(item => item.sName === "CkxCopyFromTechnology")[0].sValue;
+ const bCopyFromProcessCard =
+ (commonUtils.isNotEmptyObject(copyTo.oldFormId) && copyTo.oldFormId === copyTo.newFormId) || sModelsType === "manufacture/workOrder2";
+ /* 未清列表复制到,以工艺卡为主时所走的逻辑 */
+ if (bCkxCopyFromTechnology === "1" && !bCopyFromProcessCard) {
+ const sCustomerId = commonUtils.isEmptyStr(copyTo.masterData.sCustomerId) ? copyTo.slaveData[0].sCustomerId : copyTo.masterData.sCustomerId;
+ const sProductIdArray = [];
+ copyTo.slaveData.forEach(slaveItem => {
+ const sProductId = slaveItem.sProductId;
+ if (commonUtils.isNotEmptyStr(sProductId)) {
+ sProductIdArray.push(sProductId);
+ }
+ });
+ const sProductIds = sProductIdArray.toString();
+ const condition = { sCustomerId, sProductIds };
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ const copyToMasterDetailConfig = copyTo.config.filter(
+ item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase()
+ );
+ const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(
+ item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase()
+ );
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : "";
+ const slaveAssignField = commonUtils.isNotEmptyObject(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : "";
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : "";
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : "";
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : "";
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : "";
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : "";
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : "";
+
+ const bProcessAssort = false;
+ let returnProcessAssort = [];
+ let processAssignAssort = "";
+ let dropDownDataProcessName;
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ if (commonUtils.isNotEmptyArr(returnData.controlData)) {
+ let dProductQty = 0;
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = {
+ ...masterData,
+ ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo),
+ }; // 取赋值字段
+ state.masterData = masterData;
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ if (slaveData.length === 1 && returnData.slaveData.length === 1) {
+ /* 从表与返回数据从表只有一条时 替换该从表数据 */
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo) }; // 取赋值字段
+ slaveData.forEach((item, iSlaveIndex) => {
+ item = {
+ ...item,
+ ...commonFunc.getAssignFieldValue(slaveDetailAssignField, returnData.slaveData[0], newCopyTo),
+ }; // 取赋值字段
+ slaveData[iSlaveIndex] = item;
+ });
+ } else {
+ // slaveData =[];
+ returnData.slaveData.forEach(slaveItem => {
+ newCopyTo.slave = slaveItem;
+ const iSameIndex = commonUtils.isNotEmptyArr(slaveData)
+ ? slaveData.findIndex(
+ itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId
+ )
+ : -1;
+ if (iSameIndex > -1) {
+ masterData = {
+ ...masterData,
+ ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo),
+ }; // 取赋值字段
+ slaveData[iSameIndex] = {
+ ...slaveData[iSameIndex],
+ ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo),
+ }; // 取赋值字段
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId)
+ ? slaveItem.sSlaveId
+ : slaveItem.sId; /* 原始sId */
+ } else {
+ let slaveRow = {};
+ slaveRow = {
+ ...slaveRow,
+ ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo),
+ }; // 取赋值字段
+ slaveRow.handleType = "add";
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = slaveItem.sSlaveId;
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ }
+ const treeCopyNodes = new Map();
+ await returnData.controlData.forEach(async controlItem => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = {
+ ...controlRow,
+ ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo),
+ }; // 取赋值字段
+ controlRow.handleType = "add";
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(",");
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = "";
+ let sNewParentAllId = "";
+ if (arr.length < 2) {
+ /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace(`,${obj}`, "");
+ }
+ const sNewArr = sNewParentAllId.split(",");
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(returnData.packData)) {
+ await returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach(async packItem => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = {
+ ...packRow,
+ ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo),
+ }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId; /* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = props.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, "add");
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = "";
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = {
+ ...controlData[icontrolIndex],
+ sCombinedMemo: sCombinedMemoNew,
+ };
+ }
+ }
+ }
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== "3").forEach(processItem => {
+ // eslint-disable-next-line radix
+ if (true) {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : "";
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData
+ .filter(item => item.sControlId === controlItem.sId && item.sType !== "2")
+ .forEach(async materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sZmldlt = materialsItem.sZmldlt;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(
+ item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId
+ );
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ const materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if (iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ materialsData[iNexIndex] = {
+ ...materialsData[iNexIndex],
+ sParentMaterialsId: materialsData[iIndex].sId,
+ };
+ }
+ }
+ });
+ }
+
+ const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if (commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if (iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ materialsData[iNexIndex] = {
+ ...materialsData[iNexIndex],
+ sInkFatherMaterialsTbId: materialsData[iIndex].sId,
+ };
+ }
+ }
+ });
+ }
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ await returnData.materialsData.filter(item => item.sType === "2").forEach(async materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : "";
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sType === "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : "";
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === "single") {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === "all") {
+ controlData.forEach(controlItem => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ returnData.colorData.forEach(colorItem => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = {
+ ...colorRow,
+ ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo),
+ }; // 取赋值字段
+ colorRow.handleType = "add";
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ } else {
+ props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase());
+ const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase());
+ const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase());
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase());
+ const copyToVisionConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.vision`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : "";
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : "";
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : "";
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : "";
+ const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : "";
+ const visionAssignField = commonUtils.isNotEmptyArr(copyToVisionConfig) ? copyToVisionConfig[0].sAssignField : "";
+
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let bProcessAssort = false;
+ /* 生产翻单不生成配套工序 */
+ const srcFormRoute = copyTo.srcFormRoute; /* 未清来源路径 */
+ if (sModelsType === "manufacture/workOrder" && (commonUtils.isEmpty(srcFormRoute) || srcFormRoute.includes("workOrder"))) {
+ bProcessAssort = false;
+ }
+ if (commonUtils.isEmptyArr(copyTo.controlData) && commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { token } = props;
+ const sSlaveId = commonUtils.isNotEmptyStr(copyTo.slaveData[0].sSlaveId) ? copyTo.slaveData[0].sSlaveId : copyTo.slaveData[0].sId;
+ const condition = { sSlaveId };
+ const dataUrl = `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ // bProcessAssort = false;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ copyTo.controlData = returnData.controlData;
+ copyTo.materialsData = returnData.materialsData;
+ copyTo.processData = returnData.processData;
+ copyTo.packData = returnData.packData;
+ copyTo.colorData = returnData.colorData;
+ } else {
+ await props.getServiceError(dataReturn);
+ }
+ }
+
+ let returnProcessAssort = [];
+ let processAssignAssort = "";
+ let dropDownDataProcessName;
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName");
+ if (iIndex > -1) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.controlData)) {
+ // let dProductQty = 0;
+ // slaveData.forEach((item) => {
+ // dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0);
+ // });
+ const treeCopyNodes = new Map();
+ await copyTo.controlData.forEach(async controlItem => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ controlRow = {
+ ...controlRow,
+ ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo),
+ }; // 取赋值字段
+ controlRow.handleType = "add";
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sOriginalId = controlItem.sId; /* 复制前的部件表sId */
+ controlRow.sParentId = masterData.sId;
+ /* 没有sNodeId需要生成一个新的,有的直接带下来 */
+ if (commonUtils.isEmptyObject(controlItem.sNodeId)) {
+ controlRow.sNodeId = commonUtils.createSid();
+ } else {
+ controlRow.sNodeId = controlItem.sNodeId;
+ }
+ /* CopyTo时sAllId,sControlParentId 设置 */
+ // const sAllOldId = controlItem.sAllId;
+ // let arr = [];
+ // if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ // arr = sAllOldId.split(",");
+ // }
+ // const newId = controlRow.sId;
+ // let sOldParentId = "";
+ // let sNewParentAllId = "";
+ // if (arr.length < 2) {
+ // /* 根节点复制 */
+ // controlRow.sAllId = newId;
+ // sOldParentId = newId;
+ // sNewParentAllId = newId;
+ // } else {
+ // sOldParentId = arr[arr.length - 2];
+ // if (treeCopyNodes.has(sOldParentId)) {
+ // sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ // } else {
+ // const obj = arr[arr.length - 1];
+ // sNewParentAllId = sAllOldId.replace(`,${obj}`, "");
+ // }
+ // const sNewArr = sNewParentAllId.split(",");
+ // controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ // sNewParentAllId = `${sNewParentAllId},${newId}`;
+ // controlRow.sAllId = sNewParentAllId;
+ // }
+ // treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ // controlRow.dPartsQty = dProductQty;
+ controlData.push(controlRow);
+
+ /* 复制到时增加合版表 */
+ if (commonUtils.isNotEmptyArr(copyTo.packData)) {
+ await copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async packItem => {
+ newCopyTo.pack = packItem;
+ let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值
+ packRow = {
+ ...packRow,
+ ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo),
+ }; // 取赋值字段
+ packRow.sOriginalId = packItem.sId; /* 翻单前的sId */
+ /* sSlaveId赋值 */
+ const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId || item.sOrderSlaveId === packItem.sSlaveId);
+ if (iSlaveIndex > -1) {
+ const slaveDataRow = slaveData[iSlaveIndex];
+ const packRowAdd = props.handlePackDataAdd(slaveDataRow, 0, controlRow.sId, "add");
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packRow = { ...packRow, ...packRowAdd };
+
+ /* 将控制表中的合版备注sId为新的sId */
+ let JsonData = [];
+ const jsonStr = controlRow.sCombinedMemo;
+ if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) {
+ JsonData = JSON.parse(jsonStr);
+ if (commonUtils.isNotEmptyArr(JsonData)) {
+ let sCombinedMemoNew = "";
+ JsonData.forEach((item, index) => {
+ if (item.sId === packItem.sId) {
+ JsonData[index].sId = packRow.sId;
+ }
+ });
+ sCombinedMemoNew = JSON.stringify(JsonData);
+ controlRow.sCombinedMemo = sCombinedMemoNew;
+ const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId);
+ if (icontrolIndex) {
+ controlData[icontrolIndex] = {
+ ...controlData[icontrolIndex],
+ sCombinedMemo: sCombinedMemoNew,
+ };
+ }
+ }
+ }
+
+ packData.push(packRow);
+ }
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData) && commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = processItem.sType;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = packData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = packData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : "";
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId
+ );
+ const iNewProcessIndex = processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId
+ );
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== "2").forEach(async materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sType = materialsItem.sType;
+ if (
+ Object.keys(materialsRow).length > 0 &&
+ Object.keys(materialsRow).findIndex(item => item === "dMaterialsStockAuxiliaryQty") > -1
+ ) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: "Sp_Inventory_MaterialsInventoryV56",
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (
+ Object.keys(materialsRow).length > 0 &&
+ Object.keys(materialsRow).findIndex(item => item === "dMaterialsStockAvailableQty") > -1
+ ) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: "Sp_Inventory_MaterialsInventoryV56",
+ paramsMap: {
+ sMaterialsGuid: materialsRow.sMaterialsId,
+ sMaterialsStyle: materialsRow.sMaterialsStyle,
+ sWarehouseGuid: materialsRow.sWarehouseId,
+ sLocationalGuid: materialsRow.sLocationId,
+ sWarehouseLocationGuid: materialsRow.sWarehouseLocationId,
+ sDefine_no: materialsRow.sDefineNo,
+ sDefine_no2: materialsRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(
+ app.token,
+ valueMaterialsAvailableQty,
+ urlMaterialsAvailableQty
+ )).data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(copyTo.processData)) {
+ const iProcessIndex = processData.findIndex(
+ item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId
+ );
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.materialsData) && commonUtils.isNotEmptyObject(materialsAssignField)) {
+ await copyTo.materialsData.filter(item => item.sType === "2").forEach(async materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sType = materialsItem.sType;
+
+ /* 根据从表源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = materialsItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sProductName},`;
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : "";
+ }
+ materialsRow.sCombinePartsName = sNewIds;
+ materialsRow.sCombinePartsNameNew = sNewNames;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.processData) && commonUtils.isNotEmptyObject(processAssignField)) {
+ copyTo.processData.filter(item => item.sType === "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = processItem.sType;
+ /* 根据从表的源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ if (sModelsType.includes("workOrderSet")) {
+ /* 通用工单的合版部件名称来自于控制表,复制到时需换成新生成的控制表sId */
+ const controlFilterData = controlData.filter(item => sOldArr.includes(item.sOriginalId));
+ if (commonUtils.isNotEmptyArr(controlFilterData)) {
+ controlFilterData.forEach(item => {
+ sNewIds += `${item.sId},`;
+ sNewNames += `${item.sPartsName},`;
+ });
+ }
+ } else {
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : "";
+ }
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = copyTo.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === "single") {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === "all") {
+ controlData.forEach(controlItem => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ });
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(copyTo.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ copyTo.colorData.forEach(colorItem => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = {
+ ...colorRow,
+ ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo),
+ }; // 取赋值字段
+ colorRow.handleType = "add";
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyTo.visionData)) {
+ if (commonUtils.isNotEmptyObject(config.visionConfig)) {
+ copyTo.visionData.forEach(visionItem => {
+ newCopyTo.vision = visionItem;
+ let visionRow = commonFunc.getDefaultData(config.visionConfig, newCopyTo); // 取默认值
+ visionRow = {
+ ...visionRow,
+ ...commonFunc.getAssignFieldValue(visionAssignField, visionItem, newCopyTo),
+ }; // 取赋值字段
+ visionRow.handleType = "add";
+ visionRow.sId = commonUtils.createSid();
+ visionRow.sParentId = masterData.sId;
+ visionData.push(visionRow);
+ });
+ }
+ }
+ }
+ if (controlData.length === 0) {
+ if (!commonUtils.isEmpty(slaveData[0].sProductId)) {
+ const iIndex = config.slaveConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductName");
+ if (iIndex > -1) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", config.slaveConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sProductId === slaveData[0].sProductId);
+ const sParentId = commonUtils.isEmpty(changeData) ? "" : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = config.masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName");
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ slaveData.forEach(item => {
+ if (dProductQty) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty +=
+ commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "master", config.masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? "" : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(",");
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 0;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ tableDataRow.sAllId = tableDataRow.sId; /* 第一级sAllId等于sId */
+ controlData.push(tableDataRow);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ processData = props.sortData(controlData, processData);
+ }
+ }
+ if (controlData.length === 0) {
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ const tableDataRow = commonFunc.getDefaultData(config.controlConfig, allTableData);
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = 1; /* 序号从1开始 */
+ tableDataRow.sCombinedMemo = "合版信息";
+ tableDataRow.sAllId = tableDataRow.sId;
+
+ if (commonUtils.isEmptyObject(tableDataRow.sPartsName)) {
+ tableDataRow.sPartsName = commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sProductName : "";
+ }
+
+ const bProductQtySelf = masterConfig.gdsconfigformslave.some(item => item.sControlName === "bProductQtySelf");
+
+ let dProductQty = 0;
+ slaveData.forEach(item => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ tableDataRow.dPartsQty = dProductQty;
+ /* 点击新增按钮 控制表自动默认增一条 同时默认新增一条合版表 */
+ if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length === 1 && commonUtils.isEmptyArr(packData)) {
+ const packDataRow = props.handlePackDataAdd(slaveData[0], 0, tableDataRow.sId, "add");
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if (commonUtils.isNotEmptyObject(packDataRow) && commonUtils.isNotEmptyObject(packDataRow.sProductId)) {
+ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packDataRow;
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo = commonUtils.isNotEmptyObject(sCombinedMemo) ? sCombinedMemo : "合版信息";
+ }
+ packData.push(packDataRow);
+ }
+ controlData.push(tableDataRow);
+ }
+ const treeState = { treeData: [] }; /* 加载树形结构数据 */
+ const stateNew = {
+ ...state,
+ ...treeState,
+ slaveData,
+ controlData,
+ controlSelectedRowKeys: [],
+ packData,
+ packSelectedRowKeys: [],
+ materialsData,
+ materials0Data: materialsData,
+ materialsSelectedRowKeys: [],
+ processData,
+ processSelectedRowKeys: [],
+ colorData,
+ colorSelectedRowKeys: [],
+ visionData,
+ visionSelectedRowKeys: [],
+ checkProcessClassifyData: [],
+ };
+ if (isWait) {
+ return stateNew;
+ } else {
+ props.onSaveState(stateNew);
+ }
+ };
+
+ // 表格添加表格空行
+ const handleTableAdd = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onDataRowAdd", ["name", "flag", "bchild", "bFinished", "bModalAdd"], args);
+ };
+ returnProps.onDataRowAdd = handleTableAdd;
+
+ // 删除表格数据
+ const handleTableDel = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onDataRowDel", ["name", "flag", "tableSelectedRowKeys"], args);
+ };
+ returnProps.onDataRowDel = handleTableDel;
+
+ // 从表数据变化
+ const handleTableChange = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onDataChange", ["name", "sFieldName", "changeValue", "sId", "dropDownData"], args);
+ };
+ returnProps.onDataChange = handleTableChange;
+
+ // 各种超链接点击
+ const handleViewChoose = (...args) => {
+ const [name0] = args;
+ const name = name0.includes("materials") ? "materials" : name0;
+ dispatchFunc(name, "onViewChoose", ["name", "sName", "record"], args);
+ };
+ returnProps.onViewChoose = handleViewChoose;
+
+ // toolbar按钮操作事件
+ const handleButtonClick = async name => {
+ if (name === "BtnCalculation") {
+ props.onSaveState({
+ loading: true,
+ });
+ props.handleCalculation("workOrder");
+ } else if (name === "BtnChooseProcess") {
+ const { slaveData, controlData, slaveSelectedRowKeys, masterConfig, app } = props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoSlaveData")); /* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseSlaveData")); /* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseProduct")); /* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoControlData")); /* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ props.onBtnChoose("process", name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === "BtnChooseMaterials") {
+ const { slaveData, controlData, slaveSelectedRowKeys, masterConfig, app } = props;
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoSlaveData")); /* 请填写从表数据 */
+ return;
+ }
+ const slaveSelectedData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
+ if (commonUtils.isEmptyArr(slaveSelectedData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseSlaveData")); /* 请选择从表数据 */
+ return;
+ }
+ if (commonUtils.isEmptyStr(slaveSelectedData[0].sProductId)) {
+ message.error(commonFunc.showMessage(app.commonConst, "pleaseChooseProduct")); /* 请选择产品 */
+ return;
+ }
+ if (commonUtils.isEmptyObject(controlData)) {
+ message.error(commonFunc.showMessage(app.commonConst, "NoControlData")); /* 请填写控制表数据 */
+ return;
+ }
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === name);
+ if (iIndex > -1) {
+ props.onBtnChoose("materials", name, masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else if (name === "BtnFastOrder") {
+ const { masterData, masterConfig, sModelsId, slaveData, controlData, materialsData, checkProcessClassifyData, processData } = props;
+ const addState = {};
+ if (commonUtils.isEmpty(masterData.sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName");
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "master", masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sType === "huace");
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(",");
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(":") > -1) {
+ const sFieldName = child.split(":")[0].trim();
+ const sValueName = child.split(":")[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ await handleMasterChange("master", "sProductClassifyName", returnValue, masterData.sId, null);
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData) && !commonUtils.isEmpty(slaveData[0].sProductClassifyId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName");
+ if (iIndex > -1) {
+ const returnValue = {};
+ const { sAssignField } = masterConfig.gdsconfigformslave[iIndex];
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "master", masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === slaveData[0].sProductClassifyId);
+ if (!commonUtils.isEmpty(sAssignField)) {
+ /* 赋值数组 */
+ const sAssignFieldObj = sAssignField.split(",");
+ if (commonUtils.isNotEmptyObject(changeData)) {
+ for (const child of sAssignFieldObj) {
+ if (child.indexOf(":") > -1) {
+ const sFieldName = child.split(":")[0].trim();
+ const sValueName = child.split(":")[1].trim();
+ returnValue[sFieldName] = changeData[sValueName];
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ returnValue.sProductClassifyId = slaveData[0].sProductClassifyId;
+ returnValue.sProductClassifyName = slaveData[0].sProductClassifyName;
+ returnValue.sCustomerId = slaveData[0].sCustomerId;
+ returnValue.sCustomerNo = slaveData[0].sCustomerNo;
+ returnValue.sCustomerName = slaveData[0].sCustomerName;
+ returnValue.sProductId = slaveData[0].sProductId;
+ returnValue.sProductNo = slaveData[0].sProductNo;
+ returnValue.sProductName = slaveData[0].sProductName;
+ returnValue.sProductStyle = slaveData[0].sProductStyle;
+ returnValue.dProductQty = slaveData[0].dProductQty;
+ }
+ if (
+ commonUtils.isEmptyArr(checkProcessClassifyData) &&
+ commonUtils.isNotEmptyArr(controlData) &&
+ !commonUtils.isEmpty(changeData) &&
+ !commonUtils.isEmpty(changeData.sAllPartsName)
+ ) {
+ const allPartsName = changeData.sAllPartsName.split(",");
+ const checkProcessClassifyNewData = [];
+ allPartsName.forEach(item => {
+ const iControlIndex = controlData.findIndex(itemControl => itemControl.sPartsName === item);
+ if (iControlIndex > -1) {
+ returnValue[`dSumPQty${item}`] = controlData[iControlIndex].dSumPQty;
+ returnValue[`iPrintModePo${item}`] = controlData[iControlIndex].iPrintModePo;
+ returnValue[`iPositiveColor${item}`] = controlData[iControlIndex].iPositiveColor;
+
+ const iMaterialsIndex = materialsData.findIndex(materialsItem => materialsItem.sControlId === controlData[iControlIndex].sId);
+ if (iMaterialsIndex > -1) {
+ returnValue[`sMaterialsId${item}`] = materialsData[iMaterialsIndex].sMaterialsId;
+ returnValue[`sMaterialsNo${item}`] = materialsData[iMaterialsIndex].sMaterialsNo;
+ returnValue[`sMaterialsName${item}`] = materialsData[iMaterialsIndex].sMaterialsName;
+ }
+ processData
+ .filter(processItem => processItem.sControlId === controlData[iControlIndex].sId && processItem.sType !== "3")
+ .forEach(processItem => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId, sPartsName: item });
+ returnValue[processItem.sProcessClassifyId + item] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName + item] = processItem.sProcessName;
+ });
+ }
+ });
+ processData.filter(processItem => processItem.sType === "3").forEach(processItem => {
+ checkProcessClassifyNewData.push({ sId: processItem.sProcessClassifyId });
+ returnValue[processItem.sProcessClassifyId] = processItem.sProcessId;
+ returnValue[processItem.sProcessClassifyId + processItem.sProcessClassifyName] = processItem.sProcessName;
+ });
+ addState.checkProcessClassifyData = checkProcessClassifyNewData;
+ }
+ await handleMasterChange("master", "sProductClassifyName", returnValue, masterData.sId, null);
+ }
+ }
+ props.onSaveState({ fastOrderModalVisible: true, workOrderAllprogress: 0, ...addState });
+ } else if (name === "BtnCombine") {
+ const { slaveData: slaveDataOld, controlData: controlDataOld } = props;
+ let dMaxQty = 0;
+ let dSumMachineQty = 0;
+ slaveDataOld.forEach(item => {
+ if (commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty > dMaxQty) {
+ dMaxQty = Math.ceil(commonUtils.isEmpty(item.dCombineQty) || item.dCombineQty === 0 ? 0 : item.dSrcQty / item.dCombineQty);
+ }
+ });
+ const controlData = [];
+ if (commonUtils.isNotEmptyArr(controlDataOld)) {
+ controlDataOld.forEach(item => {
+ let controlRow = { ...item, dPartsQty: dMaxQty };
+ controlRow = props.singlePQtyChange(controlRow);
+ controlData.push(controlRow);
+ });
+ dSumMachineQty = controlData[0].dSumMachineQty;
+ }
+ const slaveData = [];
+ slaveDataOld.forEach(item => {
+ slaveData.push({ ...item, dProductQty: dSumMachineQty * item.dCombineQty });
+ });
+ props.onSaveState({ slaveData, controlData });
+ } else if (name === "BtnDraft") {
+ const {
+ masterConfig,
+ masterData,
+ slaveConfig,
+ slaveData,
+ slaveDelData,
+ controlConfig,
+ controlData,
+ controlDelData,
+ materialsConfig,
+ materialsData,
+ materialsDelData,
+ processConfig,
+ processData,
+ processDelData,
+ colorConfig,
+ colorData,
+ colorDelData,
+ packConfig,
+ packData,
+ packDelData,
+ } = props;
+ const data = [];
+ slaveConfig.gdsconfigformslave.forEach(itemConfig => {
+ slaveData.filter(itemData => itemData.handleType === "add" || itemData.handleType === "update").forEach(itemData => {
+ itemData.NoVerify = "NoVerify";
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] =
+ firstDataIndex === "s"
+ ? ""
+ : firstDataIndex === "d" || firstDataIndex === "i"
+ ? 0
+ : firstDataIndex === "b"
+ ? false
+ : firstDataIndex === "t"
+ ? moment(new Date()).format(props.app.dateFormat)
+ : undefined;
+ }
+ });
+ });
+ controlConfig.gdsconfigformslave.forEach(itemConfig => {
+ controlData.filter(itemData => itemData.handleType === "add" || itemData.handleType === "update").forEach(itemData => {
+ itemData.NoVerify = "NoVerify";
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] =
+ firstDataIndex === "s"
+ ? ""
+ : firstDataIndex === "d" || firstDataIndex === "i"
+ ? 0
+ : firstDataIndex === "b"
+ ? false
+ : firstDataIndex === "t"
+ ? moment(new Date()).format(props.app.dateFormat)
+ : undefined;
+ }
+ });
+ });
+
+ materialsConfig.gdsconfigformslave.forEach(itemConfig => {
+ materialsData.filter(itemData => itemData.handleType === "add" || itemData.handleType === "update").forEach(itemData => {
+ itemData.NoVerify = "NoVerify";
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] =
+ firstDataIndex === "s"
+ ? ""
+ : firstDataIndex === "d" || firstDataIndex === "i"
+ ? 0
+ : firstDataIndex === "b"
+ ? false
+ : firstDataIndex === "t"
+ ? moment(new Date()).format(props.app.dateFormat)
+ : undefined;
+ }
+ });
+ });
+
+ processConfig.gdsconfigformslave.forEach(itemConfig => {
+ processData.filter(itemData => itemData.handleType === "add" || itemData.handleType === "update").forEach(itemData => {
+ itemData.NoVerify = "NoVerify";
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] =
+ firstDataIndex === "s"
+ ? ""
+ : firstDataIndex === "d" || firstDataIndex === "i"
+ ? 0
+ : firstDataIndex === "b"
+ ? false
+ : firstDataIndex === "t"
+ ? moment(new Date()).format(props.app.dateFormat)
+ : undefined;
+ }
+ });
+ });
+
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ packConfig.gdsconfigformslave.forEach(itemConfig => {
+ packData.filter(itemData => itemData.handleType === "add" || itemData.handleType === "update").forEach(itemData => {
+ itemData.NoVerify = "NoVerify";
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] =
+ firstDataIndex === "s"
+ ? ""
+ : firstDataIndex === "d" || firstDataIndex === "i"
+ ? 0
+ : firstDataIndex === "b"
+ ? false
+ : firstDataIndex === "t"
+ ? moment(new Date()).format(props.app.dateFormat)
+ : undefined;
+ }
+ });
+ });
+ }
+
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ colorConfig.gdsconfigformslave.forEach(itemConfig => {
+ colorData.filter(itemData => itemData.handleType === "add" || itemData.handleType === "update").forEach(itemData => {
+ itemData.NoVerify = "NoVerify";
+ const firstDataIndex = itemConfig.sName.substring(0, 1);
+ if (commonUtils.isEmpty(itemData[itemConfig.sName])) {
+ itemData[itemConfig.sName] =
+ firstDataIndex === "s"
+ ? ""
+ : firstDataIndex === "d" || firstDataIndex === "i"
+ ? 0
+ : firstDataIndex === "b"
+ ? false
+ : firstDataIndex === "t"
+ ? moment(new Date()).format(props.app.dateFormat)
+ : undefined;
+ }
+ });
+ });
+ }
+
+ data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData("control", controlConfig.sTbName, controlData, controlDelData));
+ data.push(commonBusiness.mergeData("materials", materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData("process", processConfig.sTbName, processData, processDelData));
+ if (commonUtils.isNotEmptyObject(colorConfig)) {
+ data.push(commonBusiness.mergeData("color", colorConfig.sTbName, colorData, colorDelData));
+ }
+ if (commonUtils.isNotEmptyObject(packConfig)) {
+ data.push(commonBusiness.mergeData("pack", packConfig.sTbName, packData, packDelData));
+ }
+ props.onSaveData({
+ data,
+ sClientType: "1",
+ loading: false,
+ sSysLogSrcId: masterData.sId,
+ bIsUnCcg: false,
+ });
+ } else if (name === "BtnWorkFlow") {
+ const dataUrl = `${commonConfig.server_host}workOrderFlow/getWorkOrderFlow/`;
+ let { token } = props.app;
+ let { slaveData, controlData, materials0Data, processData, packData } = props;
+ const value = {
+ slave: slaveData,
+ control: controlData,
+ materials: materials0Data,
+ process: processData,
+ pack: packData,
+ };
+ let dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data;
+ if (commonUtils.isNotEmptyObject(dataReturn)) {
+ if (dataReturn.code === 1) {
+ const flowData = dataReturn.dataset.rows[0];
+ console.log(flowData);
+ if (commonUtils.isNotEmptyObject(flowData)) {
+ props.onSaveState({
+ flowData: flowData,
+ workFlowVisible: true,
+ });
+ }
+ } else {
+ props.getServiceError(dataReturn);
+ }
+ }
+ } else {
+ props.onButtonClick(name);
+ }
+ };
+ returnProps.onButtonClick = handleButtonClick;
+
+ // 复制到
+ const handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ masterConfig,
+ masterData,
+ slaveData,
+ controlData,
+ materials0Data,
+ processData,
+ colorData,
+ sModelsId,
+ packData,
+ visionData,
+ formRoute,
+ } = props;
+
+ const handleDispatch = (copyTo, sActiveId) => {
+ const { dispatch } = props;
+ dispatch({
+ type: "content/onRouter",
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}` /* 接口地址 */,
+ sSrcModelsId: props.sModelsId,
+ copyTo,
+ },
+ });
+ };
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveData) && name.includes(".")) {
+ const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ const copyTo = {};
+ const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = masterData;
+ copyTo.slaveData = slaveData;
+ copyTo.controlData = controlData;
+ copyTo.materialsData = materials0Data;
+ copyTo.materials0Data = materials0Data;
+ copyTo.processData = processData;
+ copyTo.packData = packData;
+ copyTo.colorData = colorData;
+ copyTo.visionData = visionData;
+ copyTo.srcFormRoute = formRoute;
+ const tbSuffix = "";
+ let sId = "";
+ if (!commonUtils.isEmpty(slaveData)) {
+ sId = slaveData[0].sId;
+ }
+
+ const dataUrl = `${
+ commonConfig.server_host
+ }bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ if (dataReturn.dataset.rows.length > 0) {
+ Modal.confirm({
+ title: commonFunc.showMessage(app.commonConst, "beUsedToNew") /* 单据已存在,是否填写新单据 */,
+ onOk() {
+ handleDispatch(copyTo, sActiveId);
+ },
+ onCancel() {},
+ });
+ } else {
+ handleDispatch(copyTo, sActiveId);
+ }
+ }
+ };
+ returnProps.onCopyTo = handleCopyTo;
+
+ // 弹窗选择确定
+ const handleSelect = async (name, selectConfig, selectData) => {
+ if (name === "materials") {
+ name = "materials0";
+ }
+ const {
+ [`${name}Data`]: tableData,
+ [`${name}Config`]: tableConfig,
+ masterConfig,
+ controlSelectedRowKeys,
+ processSelectedRowKeys,
+ sModelsId,
+ token,
+ slaveConfig,
+ controlConfig,
+ materialsConfig,
+ processConfig,
+ colorConfig,
+ packConfig,
+ slaveData,
+ controlData: controlDataOld,
+ materials0Data: materialsDataOld,
+ processData: processDataOld,
+ colorData: colorDataOld,
+ controlDelData: controlDelDataOld,
+ materials0DelData: materialsDelDataOld,
+ processDelData: processDelDataOld,
+ colorDelData: colorDelDataOld,
+ } = props;
+ let { masterData, slaveSelectedRowKeys } = props;
+ const bTmpInfoBySql = selectConfig?.sControlName?.toLowerCase().includes(("tmpinfobysql"));
+ if (name === "productProcessInfo" && !bTmpInfoBySql) {
+ message.info("productProcessInfo已废弃,请改成TmpInfoBySql!");
+ return;
+ }
+ if (bTmpInfoBySql) {
+ /* 复制从部件 根据配置下拉sql获取数据源 通过按钮名称是否包含add来判断数据源新增还是删除 */
+ const addState = {};
+ let controlData = commonUtils.isEmptyArr(controlDataOld) ? [] : controlDataOld;
+ let materialsData = commonUtils.isEmptyArr(materialsDataOld) ? [] : materialsDataOld;
+ let processData = commonUtils.isEmptyArr(processDataOld) ? [] : processDataOld;
+ let colorData = commonUtils.isEmptyArr(colorDataOld) ? [] : colorDataOld;
+
+ const config = {};
+ config.masterConfig = masterConfig;
+ config.slaveConfig = slaveConfig;
+ config.controlConfig = controlConfig;
+ config.materialsConfig = materialsConfig;
+ config.processConfig = processConfig;
+ config.colorConfig = colorConfig;
+ config.packConfig = packConfig;
+
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
+ const sConfigformId = commonUtils.isEmpty(selectConfig) ? "" : selectConfig.sParentId;
+ const sRowData = selectData;
+ const sControlName = selectConfig.sControlName; /* 按钮名称 */
+ // const sSqlCondition = { sId: selectData[0].sSlaveId }; /* 后台根据rowData自己取 */
+ const condition = { sConfigformId, sControlName, sRowData };
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ console.log("aaaadataReturn", dataReturn);
+ if (dataReturn.code === 1) {
+ const copyTo = {
+ config: masterConfig.gdsconfigformslave,
+ name: selectConfig.sControlName,
+ };
+ const returnDataSet = dataReturn.dataset.rows[0];
+ const returnData = {};
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
+ const copyToSlaveDetailConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.slave`.toLowerCase()
+ );
+ const copyToControlConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.control`.toLowerCase()
+ );
+ const copyToMaterialsConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.materials`.toLowerCase()
+ );
+ const copyToProcessConfig = copyTo.config.filter(
+ item =>
+ item.sControlName
+ .toLowerCase()
+ .replace("_add", "")
+ .replace("_edit", "")
+ .trim() === `${copyTo.name}.process`.toLowerCase()
+ );
+ const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : "";
+ const slaveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : "";
+ const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : "";
+ const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : "";
+ const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : "";
+ const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : "";
+
+ /* 判断是插入 还是删除 */
+ if (commonUtils.isNotEmptyArr(copyToControlConfig)) {
+ if (commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
+ if (!copyToControlConfig[0].sControlName.includes("_add") && !copyToControlConfig[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ controlData = [];
+ const controlDelData = commonUtils.isEmptyArr(controlDelDataOld) ? [] : controlDelDataOld;
+ const controlDataFilterData = controlDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sId));
+ if (commonUtils.isNotEmptyArr(controlDataFilterData)) {
+ controlDataFilterData.forEach(item => {
+ item.handleType = "del";
+ controlDelData.push(item);
+ });
+ }
+ addState.controlDelData = controlDelData;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyToMaterialsConfig)) {
+ if (!copyToMaterialsConfig[0].sControlName.includes("_add") && !copyToMaterialsConfig[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ materialsData = [];
+ const materialsDelData = commonUtils.isEmptyArr(materialsDelDataOld) ? [] : materialsDelDataOld;
+ const materialsDataFilterData = materialsDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if (commonUtils.isNotEmptyArr(materialsDataFilterData)) {
+ materialsDataFilterData.forEach(item => {
+ item.handleType = "del";
+ materialsDelData.push(item);
+ });
+ addState.materialsDelData = materialsDelData;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(copyToProcessConfig)) {
+ if (!copyToProcessConfig[0].sControlName.includes("_add") && !copyToProcessConfig[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ processData = [];
+ const processDelData = commonUtils.isEmptyArr(processDelDataOld) ? [] : processDelDataOld;
+ const processDataFilterData = processDataOld.filter(obj => controlSelectedRowKeys.includes(obj.sControlId));
+ if (commonUtils.isNotEmptyArr(processDataFilterData)) {
+ processDataFilterData.forEach(item => {
+ item.handleType = "del";
+ processDelData.push(item);
+ });
+ addState.processDelData = processDelData;
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(colorAssignField)) {
+ if (!colorAssignField[0].sControlName.includes("_add") && !colorAssignField[0].sControlName.includes("_edit")) {
+ /* 删除 */
+ colorData = [];
+ const colorDelData = commonUtils.isEmptyArr(colorDelDataOld) ? [] : colorDelDataOld;
+ if (commonUtils.isNotEmptyArr(colorDataOld) && colorDataOld.length > 0) {
+ colorDataOld.forEach(item => {
+ item.handleType = "del";
+ colorDelData.push(item);
+ });
+ }
+ addState.colorDelData = colorDelData;
+ }
+ }
+ const newCopyTo = {};
+ newCopyTo.master = copyTo.masterData;
+ newCopyTo.slave = commonUtils.isEmptyArr(slaveData) ? {} : slaveData[0];
+ let iSlaveIndex = -1;
+ if (!commonUtils.isEmpty(slaveSelectedRowKeys)) {
+ iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys.toString());
+ }
+ if (iSlaveIndex > -1) {
+ slaveData[iSlaveIndex] = {
+ ...slaveData[iSlaveIndex],
+ ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, selectData[0], newCopyTo),
+ }; // 取赋值字段
+ }
+ let controlSelectedRow = {}; /* 控制表选中行 */
+ let iControlIndex = -1;
+ if (!commonUtils.isEmpty(controlSelectedRowKeys)) {
+ iControlIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId));
+ if (iControlIndex > -1) {
+ controlSelectedRow = controlData[iControlIndex];
+ }
+ }
+
+ const bProcessAssort = 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 = config.processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName");
+ if (iIndex > -1) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", config.processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = config.processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyObject(returnDataSet)) {
+ /* 数据塞到Data中 */
+ for (const key of Object.keys(returnDataSet)) {
+ const sName = `${key}Data`;
+ returnData[sName] = returnDataSet[key];
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ masterData = {
+ ...masterData,
+ ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.slaveData[0], newCopyTo),
+ }; // 取赋值字段
+ }
+ let dProductQty = 0;
+ if (commonUtils.isNotEmptyObject(copyToSlaveDetailConfig)) {
+ /* 主表配置bProductQtyAdd 则代表产品数量不叠加备货数 赠送数 */
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bProductQtySelf");
+ if (iIndex > -1) {
+ bProductQtySelf = true;
+ }
+ }
+ console.log(22, returnData.slaveData);
+ if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
+ returnData.slaveData.forEach((slaveItem, iIndex) => {
+ /* 从工艺卡数据集 找到从表相同产品ID,客户ID */
+ const iSameIndex = slaveData.findIndex(
+ itemCurrent => itemCurrent.sProductId === slaveItem.sProductId && itemCurrent.sCustomerId === slaveItem.sCustomerId
+ );
+ if (false) {
+ // masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveData[iSameIndex].sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId)
+ ? slaveItem.sSlaveId
+ : slaveItem.sId; /* 原始sId */
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(slaveItem.dProductQty, 0);
+ } else {
+ dProductQty +=
+ commonUtils.isNull(slaveItem.dProductQty, 0) +
+ commonUtils.isNull(slaveItem.dGiveQty, 0) +
+ commonUtils.isNull(slaveItem.dStockupQty, 0);
+ }
+ } else if (commonUtils.isNotEmptyObject(slaveDetailAssignField)) {
+ /* 其他数据 新增 */
+ newCopyTo.slave = slaveItem;
+ let slaveRow = {};
+ slaveRow = {
+ ...slaveRow,
+ ...commonFunc.getAssignFieldValue(slaveDetailAssignField, slaveItem, newCopyTo),
+ }; // 取赋值字段
+ slaveRow.handleType = "add";
+ slaveRow.sId = commonUtils.createSid();
+ slaveRow.sParentId = masterData.sId;
+ slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
+ slaveData.push(slaveRow);
+ }
+ });
+ }
+ }
+ if (commonUtils.isNotEmptyArr(returnData.controlData) && commonUtils.isNotEmptyObject(controlAssignField)) {
+ const treeCopyNodes = new Map();
+ returnData.controlData.forEach(controlItem => {
+ newCopyTo.control = controlItem;
+ let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo); // 取默认值
+ if (copyToControlConfig[0].sControlName.includes("_edit")) {
+ controlRow = {
+ ...controlSelectedRow,
+ ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo),
+ }; // 取赋值字段
+ if (iControlIndex > -1) {
+ controlData[iControlIndex] = {
+ ...controlSelectedRow,
+ ...controlRow,
+ };
+ }
+ } else {
+ controlRow = {
+ ...controlRow,
+ ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo),
+ }; // 取赋值字段
+ controlRow.handleType = "add";
+ controlRow.sId = commonUtils.createSid();
+ controlRow.sParentId = masterData.sId;
+ controlRow.dPartsQty = dProductQty;
+ const sAllOldId = controlItem.sAllId;
+ let arr = [];
+ if (commonUtils.isNotEmptyObject(sAllOldId)) {
+ arr = sAllOldId.split(",");
+ }
+ const newId = controlRow.sId;
+ let sOldParentId = "";
+ let sNewParentAllId = "";
+ if (arr.length < 2) {
+ /* 根节点复制 */
+ controlRow.sAllId = newId;
+ sOldParentId = newId;
+ sNewParentAllId = newId;
+ } else {
+ sOldParentId = arr[arr.length - 2];
+ if (treeCopyNodes.has(sOldParentId)) {
+ sNewParentAllId = treeCopyNodes.get(sOldParentId);
+ } else {
+ const obj = arr[arr.length - 1];
+ sNewParentAllId = sAllOldId.replace(`,${obj}`, "");
+ }
+ const sNewArr = sNewParentAllId.split(",");
+ controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
+ sNewParentAllId = `${sNewParentAllId},${newId}`;
+ controlRow.sAllId = sNewParentAllId;
+ }
+ treeCopyNodes.set(controlItem.sId, sNewParentAllId);
+ controlData.push(controlRow);
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ returnData.processData.filter(item => item.sControlId === controlItem.sId && item.sType !== "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processData.push(processRow);
+
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlItem.sId
+ );
+ const iNewProcessIndex = processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlRow.sId
+ );
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlRow.sId;
+ processRow.sPartsName = controlRow.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ }
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
+ returnData.materialsData.filter(item => item.sControlId === controlItem.sId && item.sType !== "2").forEach(materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsRow.sControlId = controlRow.sId;
+ materialsRow.sPartsName = controlRow.sPartsName;
+ materialsRow.sOriginalId = materialsItem.sId;
+ materialsRow.sZmldlt = materialsItem.sZmldlt;
+ materialsRow.sInkFatherMaterialsTbId = materialsItem.sInkFatherMaterialsTbId;
+ // 材料对应工序的ID要变化
+ if (commonUtils.isNotEmptyArr(returnData.processData)) {
+ const iProcessIndex = processData.findIndex(
+ item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId
+ );
+ if (iProcessIndex > -1) {
+ materialsRow.sProcessTbId = processData[iProcessIndex].sId;
+ }
+ }
+ materialsData.push(materialsRow);
+ });
+ }
+ /* 将 materialsData中sParentMaterialsId替换为最新的sid */
+ if (commonUtils.isNotEmptyArr(materialsData)) {
+ const materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
+ if (commonUtils.isNotEmptyArr(materialsFilterData)) {
+ materialsFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sParentMaterialsId);
+ if (iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ materialsData[iNexIndex] = {
+ ...materialsData[iNexIndex],
+ sParentMaterialsId: materialsData[iIndex].sId,
+ };
+ }
+ }
+ });
+ }
+
+ const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
+ if (commonUtils.isNotEmptyArr(materialsInkFilterData)) {
+ materialsInkFilterData.forEach((filterItem, index) => {
+ const iIndex = materialsData.findIndex(item => item.sOriginalId === filterItem.sInkFatherMaterialsTbId);
+ if (iIndex > -1) {
+ const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
+ if (iNexIndex > -1) {
+ materialsData[iNexIndex] = {
+ ...materialsData[iNexIndex],
+ sInkFatherMaterialsTbId: materialsData[iIndex].sId,
+ };
+ }
+ }
+ });
+ }
+ }
+ });
+ }
+ if (commonUtils.isNotEmptyArr(returnData.materialsData) && materialsAssignField) {
+ returnData.materialsData.filter(item => item.sType === "2").forEach(materialsItem => {
+ newCopyTo.materials = materialsItem;
+ let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo); // 取默认值
+ materialsRow = {
+ ...materialsRow,
+ ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo),
+ }; // 取赋值字段
+ materialsRow.handleType = "add";
+ materialsRow.sId = commonUtils.createSid();
+ materialsRow.sParentId = masterData.sId;
+ materialsData.push(materialsRow);
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.processData) && processAssignField) {
+ returnData.processData.filter(item => item.sType === "3").forEach(processItem => {
+ newCopyTo.process = processItem;
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sOriginalId = processItem.sId;
+ /* 根据合版表的源sOriginalId找到新sId */
+ let sNewIds = "";
+ let sNewNames = "";
+ const sOldIds = processItem.sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sOldIds)) {
+ const sOldArr = sOldIds.split(",");
+ for (const sId of sOldArr) {
+ const index = slaveData.findIndex(item => item.sOriginalId === sId);
+ if (index > -1) {
+ const tableDataRow = slaveData[index];
+ sNewIds += `${tableDataRow.sId},`;
+ sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`;
+ }
+ }
+ }
+ sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : "";
+ sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : "";
+ processRow.sCombinePartsName = sNewIds;
+ processRow.sCombinePartsNameNew = sNewNames;
+ processData.push(processRow);
+
+ // 成品配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === processRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iProcessIndex = returnData.processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex = processData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId);
+ if (iIndex > -1 && iProcessIndex < 0 && iNewProcessIndex < 0) {
+ if (itemProcessAssort.sType === "single") {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ } else if (itemProcessAssort.sType === "all") {
+ controlData.forEach(controlItem => {
+ let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sControlId = controlItem.sId;
+ processRow.sPartsName = controlItem.sPartsName;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ processData.push(processRow);
+ });
+ }
+ }
+ });
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(returnData.colorData)) {
+ if (commonUtils.isNotEmptyObject(config.colorConfig)) {
+ returnData.colorData.forEach(colorItem => {
+ newCopyTo.color = colorItem;
+ let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo); // 取默认值
+ colorRow = {
+ ...colorRow,
+ ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo),
+ }; // 取赋值字段
+ colorRow.handleType = "add";
+ colorRow.sId = commonUtils.createSid();
+ colorRow.sParentId = masterData.sId;
+ colorData.push(colorRow);
+ });
+ }
+ }
+ const treeState = { treeData: [] }; /* 加载树形结构数据 */
+ addState.materials0DelData = addState.materialsDelData;
+ addState.materials0Data = materialsData;
+ props.onSaveState({
+ [`${name}ChooseVisible`]: false,
+ processData,
+ materialsData,
+ controlData,
+ ...treeState,
+ colorData,
+ masterData,
+ controlSelectedRowKeys: [],
+ materialsSelectedRowKeys: [],
+ processSelectedRowKeys: [],
+ ...addState,
+ });
+ } else {
+ props.getServiceError(dataReturn.msg);
+ }
+ } else {
+ const { controlData } = props;
+ const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys)
+ ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0])
+ : -1;
+ const iProcessIndex = commonUtils.isNotEmptyArr(processDataOld)
+ ? commonUtils.isNotEmptyArr(processSelectedRowKeys)
+ ? processDataOld.findIndex(item => item.sId === processSelectedRowKeys[0])
+ : 0
+ : -1;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+
+ const bProcessAssort = name === 'process';
+ let returnProcessAssort = [];
+ let processAssignAssort = '';
+ let dropDownDataProcessName = [];
+ if (bProcessAssort) {
+ // 配套数据 */
+ if (commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}processAssort`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}processAssort`)).length > 0) {
+ returnProcessAssort = JSON.parse(localStorage.getItem(`${commonConfig.prefix}processAssort`));
+ }
+ if (commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}dropDownDataProcess`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}dropDownDataProcess`)).length > 0) {
+ dropDownDataProcessName = JSON.parse(localStorage.getItem(`${commonConfig.prefix}dropDownDataProcess`));
+ }
+ if (commonUtils.isEmptyArr(returnProcessAssort)) {
+ 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 && commonUtils.isEmptyArr(dropDownDataProcessName)) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, 'slave', processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ localStorage.setItem(`${commonConfig.prefix}dropDownDataProcess`, JSON.stringify(dropDownDataProcessName));
+ }
+ localStorage.setItem(`${commonConfig.prefix}processAssort`, JSON.stringify(returnProcessAssort));
+ }
+ }
+ }
+
+ for (const item of selectData) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (iControlIndex > -1) {
+ newCopyTo.control = controlData[iControlIndex];
+ }
+ let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
+ tableDataRow = {
+ ...tableDataRow,
+ ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo),
+ }; // 取赋值字段
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData.sId;
+ if (name === "process") {
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableDataRow.sWorkOrderParam)) {
+ tableDataRow = {
+ ...tableDataRow,
+ ...commonUtils.convertStrToObj(tableDataRow.sWorkOrderParam),
+ };
+ tableDataRow.sParams = item.sParams;
+ }
+ // 配套工序
+ if (bProcessAssort) {
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iProcessIndex = selectData.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ const iNewProcessIndex =
+ tableDataRow.sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId
+ );
+ if (iProcessIndex < 0 && iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+
+ if (itemProcessAssort.sType === "all") {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach(controlTableRow => {
+ const iNewProcessIndex =
+ dropDownDataProcessName[iIndex].sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId
+ );
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ });
+ }
+ } else if (name === "materials0") {
+ if (iProcessIndex > -1) {
+ tableDataRow.sProcessId = processDataOld[iProcessIndex].sProcessId; /* 工序ID */
+ tableDataRow.sProcessTbId = processDataOld[iProcessIndex].sId; /* 工序表格ID */
+ tableDataRow.sMaterialsProcessNameOrder = processDataOld[iProcessIndex].sProcessName; /* 工序ID */
+ tableDataRow.sMaterialsProcessName = processDataOld[iProcessIndex].sProcessName; /* 工序ID */
+ }
+ }
+ if (iControlIndex > -1 && tableDataRow.sType !== "3") {
+ tableDataRow.sControlId = controlData[iControlIndex].sId;
+ tableDataRow.sPartsName = controlData[iControlIndex].sPartsName;
+
+ const processLen = tableData.filter(item => item.sType !== "3").length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ } else if (tableDataRow.sType === "3") {
+ const processLen = tableData.filter(item => item.sType === "3").length + 1; /* 工序序号 */
+ tableDataRow.iOrder = processLen;
+ tableData.push(tableDataRow);
+ }
+ }
+ }
+ const tableDataNew = props.sortData(controlData, tableData);
+ props.onSaveState({
+ [`${name}Data`]: tableDataNew,
+ [`${name}ChooseVisible`]: false,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ }
+ };
+
+ returnProps.onSelect = handleSelect;
+
+ // 主表变化(待优化)
+ const handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, config, isWait) => {
+ /* 数据集类型,对象型为Map 数组型为List */
+ const { sModelsId, app } = props;
+ const masterData = commonUtils.isEmpty(config) ? props.masterData : config.masterData;
+ const masterConfig = commonUtils.isEmpty(config) ? props.masterConfig : config.masterConfig;
+ const { token } = app;
+ let { sBackProcessClassifyData } = props;
+ let { sAllPartsName } = masterData;
+ let backProcessData;
+ if (
+ sFieldName === "sProductClassifyId" ||
+ sFieldName === "sProductId" ||
+ sFieldName === "sProductClassifyName" ||
+ sFieldName === "sProductName"
+ ) {
+ backProcessData = await handleBackProcessData(config, true);
+ let allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(",");
+ }
+ if (
+ allPartsName.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length > 0 &&
+ (sBackProcessClassifyData !== undefined &&
+ sBackProcessClassifyData !== "" &&
+ sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length > 0)
+ ) {
+ let iIndex;
+ allPartsName.forEach(sPartsName => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `dSumPQty${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `sMaterialsName${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPrintModePo${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === `iPositiveColor${sPartsName}`);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== "3").forEach(processClassify => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId + sPartsName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === "3").forEach(processClassify => {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === processClassify.sId);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+ }
+ }
+
+ let sProductClassifyId;
+ if (changeValue !== null && changeValue !== undefined) {
+ sProductClassifyId = commonUtils.isEmpty(changeValue.sProductClassifyId) ? masterData.sProductClassifyId : changeValue.sProductClassifyId;
+ sAllPartsName = commonUtils.isEmpty(changeValue.sAllPartsName) ? masterData.sAllPartsName : changeValue.sAllPartsName;
+ } else {
+ sProductClassifyId = masterData.sProductClassifyId;
+ }
+ if (commonUtils.isEmpty(sProductClassifyId)) {
+ return;
+ }
+ const sBackProcessClassify = masterConfig.gdsconfigformslave.filter(item => item.sName.toLowerCase() === "sbackprocessclassify")[0];
+
+ const values = { sKeyUpFilterName: "", sSqlCondition: { sProductClassifyId } };
+ const dataReturn = (await commonServices.postValueService(
+ token,
+ values,
+ `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcessClassify.sId}?sModelsId=${sModelsId}`
+ )).data;
+ /* 接收返回值 */
+ /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
+ if (dataReturn.code === 1) {
+ /* 成功 */
+ const { rows } = dataReturn.dataset;
+
+ allPartsName = [];
+ if (sAllPartsName !== undefined) {
+ allPartsName = sAllPartsName.split(",");
+ }
+
+ sBackProcessClassifyData = rows;
+ if (
+ allPartsName.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `sMaterialsName${allPartsName[0]}`).length <= 0 &&
+ sBackProcessClassifyData !== undefined &&
+ sBackProcessClassifyData !== "" &&
+ sBackProcessClassifyData.length > 0 &&
+ masterConfig.gdsconfigformslave.filter(item => item.sName === `${sBackProcessClassifyData[0].sId}${allPartsName[0]}`).length <= 0
+ ) {
+ const sumPQtyConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "dSumPQty").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "dSumPQty")[0]
+ : [];
+ const materialsNameConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "sMaterialsName").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "sMaterialsName")[0]
+ : [];
+ const printModePoConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "iPrintModePo").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "iPrintModePo")[0]
+ : [];
+ const positiveColorConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "iPositiveColor").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "iPositiveColor")[0]
+ : [];
+ const processNameConfig =
+ masterConfig.gdsconfigformslave.filter(item => item.sName === "sProcessName").length > 0
+ ? masterConfig.gdsconfigformslave.filter(item => item.sName === "sProcessName")[0]
+ : [];
+
+ let ConfigNew;
+ allPartsName.forEach(item => {
+ ConfigNew = { ...sumPQtyConfig };
+ ConfigNew.sName = `dSumPQty${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...materialsNameConfig };
+ ConfigNew.sName = `sMaterialsName${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...printModePoConfig };
+ ConfigNew.sName = `iPrintModePo${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+
+ ConfigNew = { ...positiveColorConfig };
+ ConfigNew.sName = `iPositiveColor${item}`;
+ ConfigNew.sAssignField = commonUtils.isEmpty(ConfigNew.sAssignField) ? "" : ConfigNew.sAssignField.replace(/:/g, `${item}:`);
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType !== "3").forEach(processClassify => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId + item;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ });
+ if (sBackProcessClassifyData !== "") {
+ sBackProcessClassifyData.filter(processClassify => processClassify.sType === "3").forEach(processClassify => {
+ ConfigNew = { ...processNameConfig };
+ ConfigNew.sName = processClassify.sId;
+ masterConfig.gdsconfigformslave.push(ConfigNew);
+ });
+ }
+ }
+ const returnChange = await props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
+ const masterDataDefault = commonFunc.getDefaultData(masterConfig, {});
+ returnChange.masterData = { ...masterDataDefault, ...returnChange.masterData };
+ if (isWait) {
+ return {
+ ...returnChange,
+ sBackProcessClassifyData,
+ masterConfig,
+ ...backProcessData,
+ };
+ } else {
+ props.onSaveState({
+ ...returnChange,
+ sBackProcessClassifyData,
+ masterConfig,
+ ...backProcessData,
+ });
+ }
+ } else {
+ /* 失败 */
+ props.getServiceError(dataReturn);
+ }
+ } else if (sFieldName === "sCustomerId" || sFieldName === "sCustomerNo" || sFieldName === "sCustomerName") {
+ const returnChange = await props.onChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (returnChange !== undefined && returnChange.masterData !== undefined) {
+ returnChange.masterData.sProductId = "";
+ returnChange.masterData.sProductNo = "";
+ returnChange.masterData.sProductName = "";
+ }
+ props.onSaveState({ ...returnChange });
+ } else {
+ props.onChange(name, sFieldName, changeValue, sId, dropDownData);
+ }
+ };
+
+ returnProps.onMasterChange = handleMasterChange;
+
+ const [form, setForm] = useState(null);
+ const handleSave = () => {
+ form.validateFields(async err => {
+ if (err) {
+ // 验证失败
+ for (const key of Object.keys(err)) {
+ message.warning(err[key].errors[0].message);
+ }
+ props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+
+ // 验证成功
+ const {
+ masterConfig,
+ masterData,
+ slaveConfig,
+ slaveData,
+ slaveDelData,
+ controlConfig,
+ controlData,
+ controlDelData,
+ materials0Config: materialsConfig,
+ materials0Data: materialsData,
+ processConfig,
+ processData,
+ processDelData,
+ colorConfig,
+ colorData,
+ colorDelData,
+ packConfig,
+ packData,
+ packDelData,
+ calculated,
+ sModelsType,
+ addStateMap,
+ } = props;
+ console.log("🚀 ~ handleSave ~ materialsConfig:", materialsConfig,materialsData)
+
+ if (commonUtils.isEmptyArr(slaveData)) {
+ message.warning(`从表${commonFunc.showMessage(props.app.commonConst, "isNotNull")}`);
+ props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (
+ !commonBusiness.validateTable(slaveConfig, slaveData, props) ||
+ !commonBusiness.validateTable(controlConfig, controlData, props) ||
+ !commonBusiness.validateTable(materialsConfig, materialsData, props) ||
+ !commonBusiness.validateTable(processConfig, processData, props) ||
+ !commonBusiness.validateTable(colorConfig, colorData, props)
+ ) {
+ props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ console.log(555555555);
+
+ if (sModelsType.includes("manufacture/workOrder") && !calculated) {
+ message.warning("自动计算中,请稍后再试。");
+ await props.handleCalculation("workOrder", true);
+ } else {
+ const data = [];
+ data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData]));
+ data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData));
+ data.push(commonBusiness.mergeData("control", controlConfig.sTbName, controlData, controlDelData));
+ // data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData));
+ data.push(commonBusiness.mergeData("process", processConfig.sTbName, processData, processDelData));
+ data.push(commonBusiness.mergeData("color", colorConfig.sTbName, colorData, colorDelData));
+ data.push(commonBusiness.mergeData("pack", packConfig.sTbName, packData, packDelData));
+
+ if (commonUtils.isNotEmptyObject(addStateMap)) {
+ for (const childConfig of Object.keys(addStateMap)) {
+ const tableName = childConfig.replace("Config", "").trim();
+ const { [`${tableName}Data`]: tableData, [`${tableName}Config`]: tableConfig, [`${tableName}DelData`]: tableDelData } = props;
+ if (tableConfig.sTbName !== "noTable") {
+ data.push(commonBusiness.mergeData(tableName, tableConfig.sTbName, tableData, tableDelData));
+ }
+ }
+ }
+
+ props.onSaveData({
+ data,
+ sClientType: "1",
+ loading: false,
+ sSysLogSrcId: masterData.sId,
+ });
+ }
+ });
+ };
+
+ returnProps.currentForm = form;
+ returnProps.setForm = setForm;
+ returnProps.onSubmit = handleSave;
+
+ const handleBackProcessData = async (config, isWait) => {
+ const { token } = props.app;
+ const { sModelsId, sBackProcessData } = props;
+ const masterConfig = commonUtils.isEmpty(config) ? props.masterConfig : config.masterConfig;
+ if (sBackProcessData === undefined || sBackProcessData === "") {
+ const sBackProcess = masterConfig.gdsconfigformslave.filter(item => item.sName === "sBackProcess")[0];
+ const url = `${commonConfig.server_host}business/getSelectDataBysControlId/${sBackProcess.sId}?sModelsId=${sModelsId}`;
+ const values = { sKeyUpFilterName: "", sSqlCondition: {} };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ const sBackProcessDataValue = masterReturn.dataset.rows;
+ if (isWait) {
+ return { sBackProcessData: sBackProcessDataValue };
+ } else {
+ props.onSaveState({ sBackProcessData: sBackProcessDataValue });
+ }
+ } else {
+ message.warn(masterReturn.msg);
+ }
+ }
+ };
+
+ return {
+ ...props,
+ ...returnProps,
+ };
+};
+
+// 从表相关事件
+const slaveProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = ({ name, bchild }) => {
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys, app, slaveData, [`${name}Data`]: tableData } = props;
+ const { expKeys = [] } = props;
+ const tableDataRow = props.onDataRowAdd(name, true);
+ if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warning(commonFunc.showMessage(app.commonConst, "selectedRowKeysNo"));
+ return;
+ }
+ if (bchild === "childNode") {
+ /* 添加子级 */
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ const sNodeId = tableData[iIndex].sNodeId;
+ if (commonUtils.isEmptyObject(sNodeId)) {
+ message.warn("数据生成错误,请删除父级后重新添加"); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sFatherSlaveId = sNodeId;
+ const sAllId = tableData[iIndex].sAllId || sNodeId;
+ // if (commonUtils.isEmptyObject(sAllId)) {
+ // message.warn("子部件数据生成错误![sAllId为空]"); // 获取父节点的sAllId
+ // return;
+ // }
+ tableDataRow.sAllId = `${tableData[iIndex].sAllId},${tableDataRow.sNodeId}`;
+ }
+ /* 新增子级时 子级展开 */
+ expKeys.push(tableSelectedRowKeys[0]); /* 展开只要展开父级即可 */
+ }
+ if (bchild !== "sameNode" && bchild !== "childNode") {
+ /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sNodeId;
+ }
+ tableData.push(tableDataRow);
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ [`${name}SelectedRowKeys`]: [tableDataRow.sId],
+ expKeys,
+ });
+ };
+ returnProps.onDataRowDel = ({ name }) => {
+ /* 删除sSlaveId关联的合版表 */
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const packReturnData = props.otherTableDel("pack", tableSelectedRowKeys, "sSlaveId");
+ const materielReturnData = props.otherTableDel("materials", tableSelectedRowKeys, "sCombinePartsName"); /* 删除成品材料 */
+ const processReturnData = props.otherTableDel("process", tableSelectedRowKeys, "sCombinePartsName"); /* 删除成品工序 */
+ const slaveReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+ props.onSaveState({
+ ...materielReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...slaveReturnData,
+ });
+ return true;
+ } else {
+ message.warn("请选择要删除的部件!");
+ return false;
+ }
+ };
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const { sModelsId, masterConfig, controlConfig, masterData, [`${name}Data`]: tableData, controlData: controlDataOld, packData } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ const addState = {};
+ let bProductQtySelf = false;
+ if (commonUtils.isNotEmptyObject(props.masterConfig) && commonUtils.isNotEmptyArr(props.masterConfig.gdsconfigformslave)) {
+ const iProductQtyIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "bProductQtySelf");
+ if (iProductQtyIndex > -1) {
+ bProductQtySelf = true; /* 生产数量无需叠加 */
+ }
+ }
+ if (sFieldName === "dProductQty" || sFieldName === "dGiveQty" || sFieldName === "dStockupQty") {
+ let dPartsQty = 0;
+ tableData.forEach(item => {
+ if (bProductQtySelf) {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ /* 找到所有一级部件 */
+ const controlRootData = commonUtils.isNotEmptyArr(controlDataOld)
+ ? controlDataOld.filter(item => commonUtils.isEmpty(item.sControlParentId))
+ : [];
+ if (commonUtils.isNotEmptyArr(controlRootData)) {
+ controlRootData.forEach(item => {
+ let itemNew = { ...item };
+ /* 父级的dPartsQty为dPartsQty */
+ itemNew.dPartsQty = dPartsQty;
+ itemNew = props.singlePQtyChange(itemNew);
+ /* 找到子部件 */
+ const controlChildData = controlDataOld.filter(
+ itemOld => commonUtils.isNotEmptyObject(itemOld.sAllId) && itemOld.sAllId.indexOf(item.sId) > -1 && itemOld.sId !== item.sId
+ );
+ if (commonUtils.isNotEmptyArr(controlChildData)) {
+ const { dMachineQty } = itemNew;
+ controlChildData.forEach(child => {
+ let tableDataRow = { ...child };
+ const iIndex = controlDataOld.findIndex(item => item.sId === child.sId);
+ if (iIndex > -1) {
+ /* 子部件部件数量为父部件上机数量 */
+ tableDataRow.dPartsQty = dMachineQty;
+ tableDataRow = props.singlePQtyChange(tableDataRow);
+ controlDataOld[iIndex] = tableDataRow;
+ }
+ });
+ }
+ const addStata = {};
+ addStata.dPartsQty = dPartsQty;
+ const iRootIndex = controlDataOld.findIndex(itemControl => itemControl.sId === item.sId);
+ controlDataOld[iRootIndex] = { ...controlDataOld[iRootIndex], ...itemNew };
+ });
+ }
+ addState.controlData = controlDataOld;
+ } else if (sFieldName === "sCustomerId" || sFieldName === "sCustomerNo" || sFieldName === "sCustomerName") {
+ let tableDataRowNew = {};
+ tableDataRowNew.sProductId = "";
+ tableDataRowNew.sProductNo = "";
+ tableDataRowNew.sProductName = "";
+ tableData[iIndex] = { ...tableDataRowNew, ...tableDataRow };
+ } else if (sFieldName === "sProductId" || sFieldName === "sProductNo" || sFieldName === "sProductName") {
+ const iProductIdIndex = dropDownData.findIndex(item => item.sId === tableData[0].sProductId);
+ if (
+ tableDataRow.handleType === "add" &&
+ iProductIdIndex > -1 &&
+ tableDataRow.sProductId !== tableDataRow.sProductName &&
+ commonUtils.isEmptyArr(controlDataOld)
+ ) {
+ const changeData = dropDownData[iProductIdIndex];
+ const sParentId = commonUtils.isEmpty(changeData) ? "" : changeData.sParentId;
+ if (!commonUtils.isEmpty(sParentId)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyName");
+ if (iIndex > -1) {
+ let dProductQty = 0;
+ tableData.forEach(item => {
+ if (bProductQtySelf) {
+ dProductQty += commonUtils.isNull(item.dProductQty, 0);
+ } else {
+ dProductQty +=
+ commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
+ }
+ });
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "master", masterConfig.gdsconfigformslave[iIndex]);
+ const dropDownData = sqlDropDownData.dropDownData;
+ const [changeData] = dropDownData.filter(item => item.sId === sParentId);
+ const sAllPartsName = commonUtils.isEmpty(changeData) ? "" : changeData.sAllPartsName;
+ if (commonUtils.isNotEmptyStr(sAllPartsName)) {
+ const sAssignFieldObj = sAllPartsName.split(",");
+ const controlData = [];
+ for (const child of sAssignFieldObj) {
+ let allTableData = {};
+ allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData[0];
+ const tableDataRow = commonFunc.getDefaultData(controlConfig, allTableData);
+ tableDataRow.handleType = "add";
+ tableDataRow.sId = commonUtils.createSid();
+ tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRow.key = tableDataRow.sId;
+ tableDataRow.bDefault = false;
+ tableDataRow.iOrder = controlData.length + 1;
+ tableDataRow.sPartsName = child;
+ tableDataRow.dPartsQty = dProductQty;
+ controlData.push(tableDataRow);
+ }
+ addState.controlData = controlData;
+ }
+ }
+ }
+ }
+ /* 从表产品改变带动合版表产品与部件表合版信息 同步改变 */
+ const controlDataNew = commonUtils.isNotEmptyArr(addState.controlData) ? addState.controlData : controlDataOld;
+ /* 如果packData只有一条数据 则同步合版数据 及增加控制表合版备注 */
+ if (commonUtils.isNotEmptyArr(packData) && packData.length === 1 && packData[0].sSlaveId === tableDataRow.sId) {
+ let packDataRow = packData[0];
+ const sControlId = packDataRow.sControlId;
+ packDataRow = props.handlePackDataAdd(tableDataRow, 0, sControlId);
+ packDataRow.dCombineQty = 1;
+ packData[0] = { ...packData[0], ...packDataRow };
+
+ if (commonUtils.isNotEmptyObject(packData[0])) {
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[0];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ addState.controlData = controlDataNew;
+ }
+ }
+ } else if (packData.length > 1) {
+ const packFilterData = packData.filter(item => item.sSlaveId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData)) {
+ packFilterData.forEach((itemPack, index) => {
+ let packDataRow = itemPack;
+ const sControlId = packDataRow.sControlId;
+ packDataRow = props.handlePackDataAdd(tableDataRow, 0, sControlId);
+ const pIndex = packData.findIndex(item => item.sId === itemPack.sId);
+ if (pIndex > -1) {
+ packData[pIndex] = { ...packData[pIndex], ...packDataRow }; /* 根据选中的从表 找到所有的合版数据,将合版数据中的产品换成切换后的产品 */
+ let sCombinedMemoStr = ""; /* 将控制表合版信息中的产品换成新选择的产品 */
+ if (commonUtils.isNotEmptyArr(controlDataNew)) {
+ const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId);
+ if (iControlIndex > -1) {
+ sCombinedMemoStr = controlDataNew[iControlIndex].sCombinedMemo;
+ if (sCombinedMemoStr) {
+ const sCombinedMemoArr = commonUtils.isNotEmptyObject(sCombinedMemoStr) ? JSON.parse(sCombinedMemoStr) : {};
+ if (commonUtils.isNotEmptyArr(sCombinedMemoArr)) {
+ const iIndex = sCombinedMemoArr.findIndex(item => item.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const addState = {};
+ addState.sProductId = tableDataRow.sProductId; /* 产品id */
+ addState.sCustomerId = tableDataRow.sCustomerId; /* 客户id */
+ addState.sCustomerName = tableDataRow.sCustomerName; /* 客户名称 */
+ addState.sProductName = tableDataRow.sProductName; /* 产品名称 */
+ addState.sProductNo = tableDataRow.sProductNo; /* 产品编号 */
+ sCombinedMemoArr[iIndex] = { ...sCombinedMemoArr[iIndex], ...addState };
+ const sCombinedMemo = commonUtils.isNotEmptyArr(sCombinedMemoArr)
+ ? JSON.stringify(sCombinedMemoArr)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo;
+ controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName;
+ }
+ }
+ }
+ }
+ }
+ }
+ });
+ addState.controlData = controlDataNew;
+ }
+ }
+ addState.packData = packData;
+ }
+ props.onSaveState({ [`${name}Data`]: tableData, ...addState, calculated: false });
+ };
+ return returnProps;
+};
+
+// 控制表相关事件
+const controlProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = ({ name, bchild }) => {
+ /* 外置处理业务 */
+ const { slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData } = props;
+ let { packData } = props;
+ /* 增加子部件 */
+ const { [`${name}SelectedRowKeys`]: treeSelectedKeys } = props;
+ if (
+ (bchild === "childNode" || bchild === "sameNode") &&
+ (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))
+ ) {
+ message.warn("请选择部件!"); // 请选择部件
+ return;
+ }
+ const tableDataRow = props.onDataRowAdd(name, true);
+ if (bchild === "sameNode") {
+ /* 添加同级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ /* 找到同级子元素的sControlParentId */
+ if (iIndex > -1) {
+ tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
+ /* 找到同级父级sAllId */
+ const pId = controlData[iIndex].sControlParentId;
+ const sControlParentId = controlData.findIndex(item => item.sNodeId === pId);
+ if (sControlParentId > -1) {
+ const sAllId = controlData[sControlParentId].sAllId;
+ // if (commonUtils.isEmptyObject(sAllId)) {
+ // message.warn("部件数据生成错误![sAllId为空]");
+ // return;
+ // }
+ tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sNodeId}`;
+ } else {
+ tableDataRow.sAllId = tableDataRow.sNodeId;
+ }
+ }
+ }
+ if (bchild === "childNode") {
+ /* 添加子级 */
+ const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
+ if (iIndex > -1) {
+ const sNodeId = tableData[iIndex].sNodeId;
+ if (commonUtils.isEmptyObject(sNodeId)) {
+ message.warn("数据生成错误,请删除父级后重新添加"); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sControlParentId = sNodeId;
+ const sAllId = tableData[iIndex].sAllId || sNodeId;
+ if (commonUtils.isEmptyObject(sAllId)) {
+ message.warn("子部件数据生成错误![sAllId为空]"); // 获取父节点的sAllId
+ return;
+ }
+ tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sNodeId}`;
+ }
+ }
+ if (bchild !== "sameNode" && bchild !== "childNode") {
+ /* 列头新增 */
+ tableDataRow.sAllId = tableDataRow.sNodeId;
+ }
+
+ let slaveSelectedRow = {};
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ /* 从表有选中行 */
+ const iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
+ if (iSlaveIndex > -1) {
+ slaveSelectedRow = slaveData[iSlaveIndex];
+ }
+ } else {
+ /* 没有选中行 */
+ if (slaveData.length === 1) {
+ slaveSelectedRow = slaveData[0];
+ } else {
+ message.error("请选择从表!");
+ }
+ }
+ /* 新增工艺卡,部件名称要默认选中从表行的产品名称 */
+ tableDataRow.sPartsName = slaveSelectedRow.sProductName;
+
+ /* 部件表新增时,若合版表没有该sControlId 则默认取从表选中行,合拼1 作为一条packData数据 */
+ if (commonUtils.isEmptyArr(packData)) {
+ packData = [];
+ }
+ const iIndex = packData.findIndex(item => item.sControlId === tableDataRow.sId);
+ if (iIndex === -1) {
+ if (commonUtils.isEmptyObject(slaveSelectedRow.sProductId)) {
+ message.error("请先选择产品!");
+ return;
+ }
+ if (slaveSelectedRow) {
+ const packDataRow = props.handlePackDataAdd(slaveSelectedRow, 0, tableDataRow.sId, "add");
+ packDataRow.dCombineQty = 1; /* 排版数 */
+ if (packDataRow.sProductId) {
+ /* 从表要选择产品 */
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packDataRow;
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo = commonUtils.isNotEmptyObject(sCombinedMemo) ? sCombinedMemo : "合版信息";
+ }
+ packData.push(packDataRow);
+ }
+ }
+
+ tableData.push(tableDataRow);
+ props.onSaveState({
+ treeData: [],
+ [`${name}Data`]: tableData,
+ [`${name}SelectedRowKeys`]: [tableDataRow.sId],
+ treeSelectedKeys: [tableDataRow.sId],
+ packData,
+ });
+ };
+ returnProps.onDataRowDel = ({ name }) => {
+ const { controlData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = props;
+ let { treeSelectedKeys } = props;
+ if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
+ const iIndex = controlData.findIndex(item => tableSelectedRowKeys.includes(item.sId) && item.rowTag === 1);
+ if (iIndex > -1) {
+ /* 如果行被锁定不可更改删除时 */
+ return false;
+ }
+ /* 删除该节点及所有子节点 */
+ treeSelectedKeys = treeSelectedKeys || [];
+ const controlChildData = controlData.filter(
+ item => commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableSelectedRowKeys[0]) > -1 && item.sId !== tableSelectedRowKeys[0]
+ );
+ if (commonUtils.isNotEmptyArr(controlData)) {
+ controlChildData.forEach(itemNew => {
+ tableSelectedRowKeys.push(itemNew.sId);
+ });
+ }
+ const materialsReturnData = props.otherTableDel("materials", tableSelectedRowKeys);
+ const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys);
+ const processReturnData = props.otherTableDel("process", tableSelectedRowKeys);
+ const packReturnData = props.otherTableDel("pack", tableSelectedRowKeys);
+ const controlReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+ const treeState = { treeData: [] };
+ props.onSaveState({
+ ...treeState,
+ ...materialsReturnData,
+ ...materials0ReturnData,
+ ...processReturnData,
+ ...packReturnData,
+ ...controlReturnData,
+ });
+ return true;
+ } else {
+ message.warn("请选择要删除的部件!");
+ return false;
+ }
+ };
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const { [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld, packData } = props;
+ let tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (
+ sFieldName === "dSinglePQty" ||
+ sFieldName === "dPartsQty" ||
+ sFieldName === "dSumPQty" ||
+ sFieldName === "iPrintModePo" ||
+ sFieldName === "iPrintMode" ||
+ sFieldName === "iPrintModePo" ||
+ sFieldName === "iPositiveColor" ||
+ sFieldName === "iPositiveSpecialColor" ||
+ sFieldName === "iOppositeColor" ||
+ sFieldName === "iOppositeSpecialColor"
+ ) {
+ if (sFieldName === "iPrintModePo") {
+ if (tableDataRow.iPrintModePo === 0) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else {
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (tableDataRow.iPrintModePo === 1) {
+ tableDataRow.iPrintMode = 3;
+ if (tableDataRow.iPositiveColor === 0) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
+ } else {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ }
+ } else {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ }
+ } else if (sFieldName === "iPrintMode") {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iPositiveColor =
+ commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ } else if (tableDataRow.iPrintMode === 2) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
+ } else if (tableDataRow.iPrintMode === 3) {
+ tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ } else if (tableDataRow.iPrintMode === 4) {
+ tableDataRow.iPositiveColor = 0;
+ tableDataRow.iPositiveSpecialColor = 0;
+ tableDataRow.iOppositeColor = 0;
+ tableDataRow.iOppositeSpecialColor = 0;
+ }
+ } else if (sFieldName === "iPositiveColor" || sFieldName === "iPositiveSpecialColor") {
+ if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
+ tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
+ tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
+ }
+ } else if (sFieldName === "dSinglePQty") {
+ /* 排版数改变时 如果该控制表合版数据只有一条 则改变packData该条的拼版数 改变备注 */
+ if (commonUtils.isNotEmptyArr(packData)) {
+ const packFilterData = packData.filter(item => item.sControlId === tableDataRow.sId);
+ if (commonUtils.isNotEmptyArr(packFilterData) && packFilterData.length === 1) {
+ const iIndex = packData.findIndex(itemPack => itemPack.sId === packFilterData[0].sId);
+ const addState = {};
+ if (tableDataRow.dSinglePQty > 0) {
+ addState.dCombineQty = tableDataRow.dSinglePQty;
+ addState.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? "update" : tableDataRow.handleType;
+ if (iIndex > -1) {
+ packData[iIndex] = { ...packData[iIndex], ...addState };
+ const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[iIndex];
+ const tableCombineSelectedData = [];
+ const jsonObj = {};
+ jsonObj.sId = sId;
+ jsonObj.sProductNo = sProductNo; /* 产品编号 */
+ jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */
+ jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */
+ jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */
+ jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */
+ tableCombineSelectedData.push(jsonObj);
+ const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData)
+ ? JSON.stringify(tableCombineSelectedData)
+ : ""; /* JSON对象转换为字符串存放到合版信息中 */
+ tableDataRow.sCombinedMemo = commonUtils.isNotEmptyObject(sCombinedMemo) ? sCombinedMemo : "合版信息";
+ }
+ }
+ }
+ }
+ }
+ tableDataRow = props.singlePQtyChange(tableDataRow);
+ /* 上机数量改变时,子级部件数量同步改变 */
+ const { dMachineQty } = tableDataRow;
+ /* 查找该节的所有子节点,将上机数量改为部件数量 */
+ tableData.forEach((item, index) => {
+ if (commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableDataRow.sId) > -1 && item.sId !== tableDataRow.sId) {
+ const addstate = {};
+ addstate.dPartsQty = dMachineQty;
+ tableData[index] = { ...tableData[index], ...addstate };
+ }
+ });
+ } else if (sFieldName === "dMachineLength" || sFieldName === "dMachineWidth") {
+ /* 控制表长宽改变 关联材料表type为0的上机长宽对应改变 */
+ if (commonUtils.isNotEmptyArr(materialsDataOld)) {
+ materialsDataOld.forEach((item, index) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === tableDataRow.sId && itemNew.sType === "0") {
+ itemNew.sMachineStyle = `${(tableDataRow.dMachineLength || 0).toString()}*${(tableDataRow.dMachineWidth || 0).toString()}`;
+ itemNew.handleType = commonUtils.isEmpty(itemNew.handleType) ? "update" : itemNew.handleType;
+ }
+ materialsDataOld[index] = { ...materialsDataOld[index], ...itemNew };
+ });
+ }
+ }
+ const materialsData = [];
+ const processData = [];
+ materialsDataOld?.forEach(item => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ materialsData.push(itemNew);
+ });
+ processDataOld.forEach(item => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ processData.push(itemNew);
+ });
+ const materialsDataNew = props.sortData(tableData, materialsData);
+ const processDataNew = props.sortData(tableData, processData);
+ if (sFieldName === "sPartsName") {
+ /* 部件名称与子部件同步 */
+ const { sPartsName } = tableDataRow;
+ const { treeSelectedKeys, treeData } = props;
+ if (commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ props.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName);
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ materialsData: materialsDataNew,
+ processData: processDataNew,
+ calculated: false,
+ packData,
+ });
+ };
+ returnProps.onViewChoose = ({ name, sName, record }) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled, slaveData } = props;
+ let { packData } = props;
+ if (sName === "sCombinedMemo") {
+ const packSelectedRowKeys = [];
+
+ /* 合并从表相同客户、产品数据 */
+ const slaveDataMerge = [];
+ slaveData.forEach(item => {
+ const iIndex = slaveDataMerge.findIndex(child => child.sCustomerId === item.sCustomerId && child.sProductId === item.sProductId);
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ slaveDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew =
+ commonUtils.isNull(slaveDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(slaveDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew =
+ commonUtils.isNull(slaveDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ slaveDataMerge[iIndex].dProductQty = dProductQtyNew;
+ slaveDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ slaveDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+
+ /* 合并合版表相同客户、产品数据 */
+ const packDataMerge = [];
+ packData.forEach(item => {
+ const iIndex = packDataMerge.findIndex(
+ child =>
+ commonUtils.isNotEmptyObject(item.sCombinePartsName) &&
+ child.sCombinePartsName === item.sCombinePartsName &&
+ commonUtils.isNotEmptyObject(item.sProductId) &&
+ child.sProductId === item.sProductId
+ );
+ if (iIndex === -1) {
+ const itemNew = JSON.parse(JSON.stringify(item));
+ packDataMerge.push(itemNew);
+ } else if (iIndex > -1) {
+ const dProductQtyNew =
+ commonUtils.isNull(packDataMerge[iIndex].dProductQty, 0) + commonUtils.isNull(item.dProductQty, 0); /* 生产数量叠加 */
+ const dGiveQtyNew = commonUtils.isNull(packDataMerge[iIndex].dGiveQty, 0) + commonUtils.isNull(item.dGiveQty, 0); /* 赠送数量叠加 */
+ const dStockupQtyNew =
+ commonUtils.isNull(packDataMerge[iIndex].dStockupQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 备货数量叠加 */
+ packDataMerge[iIndex].dProductQty = dProductQtyNew;
+ packDataMerge[iIndex].dGiveQty = dGiveQtyNew;
+ packDataMerge[iIndex].dStockupQty = dStockupQtyNew;
+ }
+ });
+ if (commonUtils.isNotEmptyArr(packDataMerge)) {
+ packData = packDataMerge;
+ }
+
+ /* 填充合版信息数值 如果packData为空,则填充从表所有数据 */
+ if (commonUtils.isNotEmptyArr(slaveDataMerge)) {
+ slaveDataMerge.forEach((item, index) => {
+ const packDataFilter = packData.filter(itemNew => itemNew.sSlaveId === item.sId && itemNew.sControlId === sId);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach(itemPack => {
+ const iIndex = packData.findIndex(child => child.sId === itemPack.sId);
+ if (iIndex > -1) {
+ const packRowAdd = props.handlePackDataAdd(item);
+ if (commonUtils.isNotEmptyObject(packRowAdd)) {
+ packData[iIndex] = { ...packData[iIndex], ...packRowAdd };
+ if (itemPack.dCombineQty !== undefined && itemPack.dCombineQty !== null && itemPack.dCombineQty !== 0) {
+ packSelectedRowKeys.push(itemPack.sId);
+ }
+ }
+ }
+ });
+ } else {
+ const tableDataRow = props.handlePackDataAdd(item, index, sId, "add");
+ if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ packData.push(tableDataRow);
+ }
+ }
+ });
+ }
+ props.onSaveState({
+ productCombinationVisible: true,
+ sCombinationsControlId: sId /* 合版产品控制表sId */,
+ enabled,
+ packSelectedRowKeys,
+ packData,
+ });
+ } else {
+ props.onViewChoose(name, sName, record);
+ }
+ };
+ return returnProps;
+};
+
+// 工序表相关事件
+const processProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = ({ name, bFinished, bModalAdd }) => {
+ const { masterConfig } = props;
+ if (bModalAdd === true) {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductProcess");
+ if (iIndex > -1) {
+ props.onBtnChoose("productProcess", "process", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProcess");
+ if (iIndex > -1) {
+ props.onBtnChoose("process", "process", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ return;
+ }
+ /* 外置处理业务 */
+ const { gdsformconst, slaveData, controlData, controlSelectedRowKeys, slaveSelectedRowKeys, [`${name}Data`]: tableData } = props;
+ const tableDataRow = props.onDataRowAdd(name, true);
+ if (commonUtils.isEmptyArr(controlSelectedRowKeys) && !bFinished) {
+ message.warn(commonFunc.showMessage(gdsformconst, "pleaseChooseParts")); // 请选择部件
+ return;
+ }
+ if (bFinished) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ tableDataRow.sCombinePartsNameNew = `${slaveData[iIndex].sCustomerName}-${slaveData[iIndex].sProductName}`;
+ tableDataRow.sCombinePartsName = slaveData[iIndex].sId;
+ if (name === "materials") {
+ /* 新增成品材料 */
+ tableDataRow.sType = "2";
+ }
+ if (name === "process") {
+ /* 新增成品工序 */
+ tableDataRow.sType = "3";
+ }
+ }
+ } else {
+ const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === "") {
+ message.warn(commonFunc.showMessage(gdsformconst, "partsNameNotNull")); // 部件名称不能为空
+ return;
+ }
+ tableDataRow.sControlId = controlData[iIndex].sId;
+ tableDataRow.sPartsName = controlData[iIndex].sPartsName;
+ if (name === "materials" && bFinished) {
+ /* 新增成品材料 */
+ tableDataRow.sType = "2";
+ }
+ if (name === "process" && bFinished) {
+ /* 新增成品工序 */
+ tableDataRow.sType = "3";
+ }
+ }
+ }
+ tableData.push(tableDataRow);
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ [`${name}SelectedRowKeys`]: [tableDataRow.sId],
+ });
+ };
+ returnProps.onDataRowDel = ({ name, tableSelectedRowKeys }) => {
+ const { [`${name}Data`]: tableData, materialsConfig, materials0Data: materialsData } = props;
+ let { materialsDelData } = props;
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ const iIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
+
+ const tableDelData = [];
+ let returnProcessAssort = [];
+
+ const sProcessId = tableData[iIndex].sProcessId;
+ const sControlId = tableData[iIndex].sControlId;
+ const processReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys);
+
+ returnProcessAssort.filter(item => item.sParentId === sProcessId).forEach(itemProcessAssort => {
+ const iProcessIndex = processReturnData.processData.findIndex(
+ item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId
+ );
+ if (iProcessIndex > -1) {
+ const slaveDataFilter = processReturnData.processData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ slaveDataFilter.handleType = "del";
+ tableDelData.push(slaveDataFilter);
+
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(
+ item => item.sMaterialsName === slaveDataFilter.sProcessName && item.sControlId === sControlId
+ );
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = "del";
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ });
+
+ processReturnData.processDelData.concat(tableDelData);
+ /* 删除工序对应的材料 */
+ const materialsFilterDelData = materialsData.filter(item => tableSelectedRowKeys.includes(item.sProcessTbId) && item.sProcessId === sProcessId);
+ let materialsSelectedDelRowKeys = [];
+ if (commonUtils.isNotEmptyArr(materialsFilterDelData)) {
+ materialsFilterDelData.forEach(item => {
+ const materialsChildFilter = materialsData.filter(
+ row => commonUtils.isNotEmptyObject(row.sParentMaterialsId) && row.sParentMaterialsId === item.sId
+ ); /* 删除对应的替代料 */
+ if (commonUtils.isNotEmptyArr(materialsChildFilter)) {
+ materialsChildFilter.forEach(child => {
+ materialsSelectedDelRowKeys.push(child.sId);
+ });
+ }
+ materialsSelectedDelRowKeys.push(item.sId);
+ });
+ }
+ let materialsReturnData = {};
+ if (commonUtils.isNotEmptyArr(materialsSelectedDelRowKeys)) {
+ materialsReturnData = props.onDataRowDel("materials0", true, materialsSelectedDelRowKeys);
+ if (commonUtils.isNotEmptyObject(materialsReturnData) && commonUtils.isNotEmptyArr(materialsReturnData.materials0DelData)) {
+ materialsReturnData.materials0DelData = materialsReturnData.materials0DelData.concat(materialsDelData);
+ }
+ }
+ props.onSaveState({
+ ...processReturnData,
+ ...materialsReturnData,
+ materialsConfig,
+ materialsSelectedRowKeys: [],
+ });
+ return true;
+ };
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const {
+ [`${name}Data`]: tableData,
+ sModelsId,
+ masterData,
+ slaveData,
+ controlData,
+ controlSelectedRowKeys,
+ materialsData,
+ processConfig,
+ token,
+ } = props;
+ let { processDelData, materialsDelData } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ let iIndex = tableData.findIndex(item => item.sId === sId);
+ let tableDataRowOld = {};
+ let iMaterialsIndex = -1;
+ let sControlId = "";
+ if (iIndex > -1) {
+ iMaterialsIndex = materialsData.findIndex(
+ item => item.sControlId === tableData[iIndex].sControlId && item.sProcessId === tableData[iIndex].sProcessId
+ );
+ tableDataRowOld = tableData[iIndex];
+ tableData[iIndex] = tableDataRow;
+ sControlId = tableData[iIndex].sControlId;
+ }
+ const addState = {};
+ if (sFieldName === "sProcessId" || sFieldName.includes("sProcessName")) {
+ const bProcessAssort = false;
+ let returnProcessAssort = [];
+ let processAssignAssort = "";
+ let dropDownDataProcessName;
+ const sProcessParamStriIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessParamStr" && item.bVisible);
+ if (sProcessParamStriIndex > -1 && commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex].sProcessParamStr = "工艺参数";
+ } else if (sProcessParamStriIndex > -1) {
+ tableData[iIndex].sProcessParamStr = "";
+ }
+ /* 设置工单参数下拉 */
+ if (commonUtils.isNotEmptyObject(tableData[iIndex].sWorkOrderParam)) {
+ tableData[iIndex] = { ...tableData[iIndex], ...commonUtils.convertStrToObj(tableData[iIndex].sWorkOrderParam) };
+ }
+ if (bProcessAssort) {
+ const dataUrl = `${commonConfig.server_host}salesorder/getProcessAssort?sModelsId=${sModelsId}`;
+ const dataProcessAssort = (await commonServices.postValueService(token, {}, dataUrl)).data;
+ if (dataProcessAssort.code === 1) {
+ returnProcessAssort = dataProcessAssort.dataset.rows[0].processassort;
+ const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === "sProcessName");
+ if (iIndex > -1) {
+ const sqlDropDownData = await props.getSqlDropDownData(sModelsId, "slave", processConfig.gdsconfigformslave[iIndex]);
+ dropDownDataProcessName = sqlDropDownData.dropDownData;
+ processAssignAssort = processConfig.gdsconfigformslave[iIndex].sAssignField;
+ }
+ }
+ }
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys)
+ ? -1
+ : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ // 配套工序
+ if (bProcessAssort) {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ newCopyTo.slave = slaveData[0];
+ }
+ /* 切换工序时 先删除原工序配套工序 */
+ if (commonUtils.isEmptyArr(processDelData)) {
+ processDelData = [];
+ }
+ if (commonUtils.isEmptyArr(materialsDelData)) {
+ materialsDelData = [];
+ }
+ returnProcessAssort.filter(item => item.sParentId === tableDataRowOld.sProcessId).forEach(itemProcessAssort => {
+ const iProcessIndex = tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === sControlId);
+ if (iProcessIndex > -1) {
+ const processDataRow = tableData[iProcessIndex];
+ tableData.splice(iProcessIndex, 1);
+ processDataRow.handleType = "del";
+ processDelData.push(processDataRow);
+ /* 删除配套材料 */
+ const iMaterialsIndex = materialsData.findIndex(
+ item => item.sMaterialsName === processDataRow.sProcessName && item.sControlId === sControlId
+ );
+ if (iMaterialsIndex > -1) {
+ const materialsDataRow = materialsData[iMaterialsIndex];
+ materialsData.splice(iMaterialsIndex, 1);
+ materialsDataRow.handleType = "del";
+ materialsDelData.push(materialsDataRow);
+ }
+ }
+ });
+ if (commonUtils.isNotEmptyArr(processDelData)) {
+ addState.processDelData = processDelData;
+ }
+ if (commonUtils.isNotEmptyArr(materialsDelData)) {
+ addState.materialsDelData = materialsDelData;
+ }
+ iIndex = tableData.findIndex(item => item.sId === tableDataRow.sId);
+ returnProcessAssort.filter(item => item.sParentId === tableDataRow.sProcessId).forEach(itemProcessAssort => {
+ const iIndex = dropDownDataProcessName.findIndex(item => item.sId === itemProcessAssort.sProcessId);
+ if (iIndex > -1) {
+ const iNewProcessIndex =
+ dropDownDataProcessName[iIndex].sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlData[iControlIndex].sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo) }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlData[iControlIndex].sId;
+ processRow.sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ tableData.push(processRow);
+ if (itemProcessAssort.sType === "all") {
+ controlData.filter(item => item.sId !== controlData[iControlIndex].sId).forEach(controlTableRow => {
+ const iNewProcessIndex =
+ dropDownDataProcessName[iIndex].sType === "3"
+ ? tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId)
+ : tableData.findIndex(item => item.sProcessId === itemProcessAssort.sProcessId && item.sControlId === controlTableRow.sId);
+ if (iNewProcessIndex < 0) {
+ let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
+ processRow = {
+ ...processRow,
+ ...commonFunc.getAssignFieldValue(processAssignAssort, dropDownDataProcessName[iIndex], newCopyTo),
+ }; // 取赋值字段
+ processRow.handleType = "add";
+ processRow.sId = commonUtils.createSid();
+ processRow.sParentId = masterData.sId;
+ processRow.sType = dropDownDataProcessName[iIndex].sType;
+ if (iControlIndex > -1 && processRow.sType !== "3") {
+ processRow.sControlId = controlTableRow.sId;
+ processRow.sPartsName = controlTableRow.sPartsName;
+ }
+ tableData.push(processRow);
+ }
+ });
+ }
+ }
+ }
+ });
+ }
+ if (tableData[iIndex].sType === "3") {
+ tableData[iIndex].sControlId = "";
+ tableData[iIndex].sPartsName = "";
+ } else if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ if (iMaterialsIndex > -1) {
+ materialsData[iMaterialsIndex].sProcessId = tableData[iIndex].sProcessId;
+ materialsData[iMaterialsIndex].sProcessTbId = tableData[iIndex].sId;
+ materialsData[iMaterialsIndex].sMaterialsProcessName = tableData[iIndex].sProcessName;
+ }
+ }
+ }
+ props.onSaveState({
+ [`${name}Data`]: tableData,
+ materialsSelectedRowKeys: [],
+ ...addState,
+ calculated: false,
+ });
+ };
+ returnProps.onViewChoose = ({ name, sName, record }) => {
+ const { sId } = record; /* 控制表主键 */
+ const { slaveData, processConfig = {} } = props;
+ let { packData } = props;
+ const { gdsconfigformslave = [] } = processConfig;
+ const bSWorkOrderParams = gdsconfigformslave.some(item => item.sName === "sParams" && item.sControlName === "sWorkOrder");
+
+ if (["sCombinePartsNameNew", "sCombineProductNameNew"].includes(sName)) {
+ const { [`${name}Data`]: tableData } = props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === "3") {
+ /* 成品工序跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((_, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ } else {
+ /* 成品工序跟着合版表走 */
+ packDataFilter = packData.filter(itemNew => itemNew.sControlId === tableData[iIndex].sControlId && itemNew.dCombineQty > 0);
+ if (commonUtils.isNotEmptyArr(packDataFilter)) {
+ packDataFilter.forEach((itemPack, index) => {
+ let slaveDataRow = {};
+ let packRowAdd = {};
+ const iIndex = slaveData.findIndex(itemSlave => itemSlave.sId === itemPack.sSlaveId);
+ if (iIndex > -1) {
+ slaveDataRow = slaveData[iIndex];
+ }
+ if (commonUtils.isNotEmptyObject(slaveDataRow)) {
+ packRowAdd = props.handlePackDataAdd(slaveDataRow);
+ }
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(",");
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ processSelectedRowId: sId /* 工序表选中行sId */,
+ combinePartsSelectedRowKeys,
+ });
+ } else if (sName === "sParams" && bSWorkOrderParams) {
+ props.onSaveState({
+ sWorkParamsModalVisible: true,
+ });
+ } else {
+ props.onViewChoose(name, sName, record);
+ }
+ };
+ return returnProps;
+};
+
+// 材料表相关事件
+const materialsProps = props => {
+ const returnProps = {};
+ returnProps.onDataRowAdd = params => {
+ const { bFinished, bModalAdd } = params;
+ const { masterConfig } = props;
+ if (bModalAdd === true) {
+ let iIndex = -1;
+ if (bFinished) {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseProductMaterials");
+ if (iIndex > -1) {
+ props.onBtnChoose("productMaterials", "materials", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ } else {
+ iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === "BtnChooseMaterials");
+ if (iIndex > -1) {
+ props.onBtnChoose("materials", "materials", masterConfig.gdsconfigformslave[iIndex]);
+ }
+ }
+ return;
+ } else {
+ processProps(props).onDataRowAdd(params);
+ }
+ };
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const { [`${name}Data`]: tableData, controlData, controlSelectedRowKeys, app, sModelsId } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === "dMaterialsStockAuxiliaryQty") > -1) {
+ const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsStock = {
+ sProName: "Sp_Inventory_MaterialsInventoryV56",
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 1,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data;
+ if (returnDataMaterialsStock.code === 1) {
+ tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === "dMaterialsStockAvailableQty") > -1) {
+ const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const valueMaterialsAvailableQty = {
+ sProName: "Sp_Inventory_MaterialsInventoryV56",
+ paramsMap: {
+ sMaterialsGuid: tableDataRow.sMaterialsId,
+ sMaterialsStyle: tableDataRow.sMaterialsStyle,
+ sWarehouseGuid: tableDataRow.sWarehouseId,
+ sLocationalGuid: tableDataRow.sLocationId,
+ sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId,
+ sDefine_no: tableDataRow.sDefineNo,
+ sDefine_no2: tableDataRow.sDefineNo2,
+ iGetQty: 2,
+ iHasZero: 1,
+ },
+ };
+ const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty))
+ .data;
+ if (returnDataMaterialsAvailableQty.code === 1) {
+ tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty;
+ }
+ }
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ if (iIndex > -1) {
+ tableData[iIndex] = tableDataRow;
+ }
+ if (sFieldName === "sType") {
+ if (tableData[iIndex].sType === "2") {
+ tableData[iIndex].sControlId = "";
+ tableData[iIndex].sPartsName = "";
+ } else {
+ const iControlIndex = commonUtils.isEmptyArr(controlSelectedRowKeys)
+ ? -1
+ : controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
+ if (iControlIndex > -1) {
+ tableData[iIndex].sControlId = controlData[iControlIndex].sId;
+ tableData[iIndex].sPartsName = controlData[iControlIndex].sPartsName;
+ }
+ }
+ }
+ props.onSaveState({ [`${name}Data`]: tableData, calculated: false });
+ };
+ returnProps.onViewChoose = ({ name, sName, record }) => {
+ const { sId } = record; /* 控制表主键 */
+ const { slaveData } = props;
+ if (["sCombinePartsNameNew", "sCombineProductNameNew"].includes(sName)) {
+ const { [`${name}Data`]: tableData } = props;
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ let packDataFilter = [];
+ const combinePartsSelectedRowKeys = [];
+ if (iIndex > -1) {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ if (tableData[iIndex].sType === "2") {
+ /* 成品材料跟着从表走 */
+ packDataFilter = JSON.parse(JSON.stringify(slaveData));
+ packDataFilter.forEach((_, index) => {
+ const packRowAdd = {};
+ packRowAdd.sSlaveOldId = packRowAdd.sSlaveId;
+ packRowAdd.sSlaveId = commonUtils.createSid();
+ packDataFilter[index] = { ...packDataFilter[index], ...packRowAdd };
+ });
+ }
+ }
+ const sCombinePartsIds = tableData[iIndex].sCombinePartsName;
+ if (commonUtils.isNotEmptyObject(sCombinePartsIds) && commonUtils.isNotEmptyArr(packDataFilter)) {
+ const DataIds = sCombinePartsIds.split(",");
+ for (const sId of DataIds) {
+ const index = packDataFilter.findIndex(item => item.sId === sId);
+ if (index > -1) {
+ const rowKey = packDataFilter[index].sSlaveId;
+ combinePartsSelectedRowKeys.push(rowKey);
+ }
+ }
+ }
+ }
+ props.onSaveState({
+ combinePartsChooseVisible: true,
+ combinePartsData: packDataFilter,
+ materialsSelectedRowId: sId /* 工序表选中行sId */,
+ openTable: "materials",
+ combinePartsSelectedRowKeys,
+ });
+ } else {
+ props.onViewChoose(name, sName, record);
+ }
+ };
+ return returnProps;
+};
+
+// 合版信息相关事件
+const packProps = props => {
+ const returnProps = {};
+ returnProps.onDataChange = async ({ name, sFieldName, changeValue, sId, dropDownData }) => {
+ const { packData, packSelectedRowKeys } = props;
+ const tableDataRow = await props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
+ if (tableDataRow === undefined) return;
+ const iIndex = packData.findIndex(item => item.sId === sId);
+ packData[iIndex] = tableDataRow;
+ if (sFieldName === "dCombineQty" || sFieldName === "dProductQty") {
+ props.handleGetdFactProductQty(packSelectedRowKeys, packData);
+ }
+ props.onSaveState({ packData, calculated: false });
+ };
+ return returnProps;
+};
+
+// 入口
+const WorkOrderPackTableTreeNew = baseProps => {
+ const commonPackProps = { ...baseProps, ...CommonPackEvent(baseProps) };
+ const otherProps = {
+ slaveProps: slaveProps(commonPackProps),
+ controlProps: controlProps(commonPackProps),
+ processProps: processProps(commonPackProps),
+ materialsProps: materialsProps(commonPackProps),
+ packProps: packProps(commonPackProps),
+ };
+ const props = WorkOrderPackTableTreeNewEvent({ ...commonPackProps, ...otherProps });
+ const { masterData } = props;
+ if (!masterData) return "";
+
+ return ;
+};
+
+// 包一层Form
+const WorkOrderPackTableTreeNewComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})(props => {
+ props.onReturnForm(props.form);
+ if (!props.currentForm) {
+ props.setForm(props.form);
+ }
+
+ return (
+
+ );
+});
+
+// ToolBar
+const ToolBarComponent = props => {
+ return (
+
+
+
+ );
+};
+
+// 审核状态
+const AvatarComponent = props => {
+ const { masterData } = props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ if (!imgSrc) return "";
+ return (
+
+ );
+};
+
+// 主表
+const MasterComponent = props => {
+ const { masterConfig: masterConfigOld } = props;
+ const addProps = {};
+ if (commonUtils.isNotEmptyObject(masterConfigOld)) {
+ const masterConfig = JSON.parse(JSON.stringify(masterConfigOld));
+ const delList = ["dProductQty", "sCustomerName", "sProductClassifyName", "sProductName", "sProductStyle"];
+
+ delList.forEach(delName => {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === delName);
+ if (iIndex > -1) {
+ masterConfig.gdsconfigformslave.splice(iIndex, 1);
+ }
+ });
+
+ addProps.masterConfig = masterConfig;
+ }
+
+ const propsType = {
+ ...props,
+ ...addProps,
+ onChange: props.onMasterChange,
+ };
+ return (
+
+
+
+ );
+};
+
+// 从表
+const SlaveComponent = props => {
+ const { sTableType, slaveData, slavePagination } = props;
+
+ let slaveTreeData = slaveData;
+ const bTree = sTableType === "single" && slaveData?.some(item => !!item.sFatherSlaveId);
+
+ if (bTree) {
+ slaveTreeData = useMemo(() => commonUtils.genTreeByArr(slaveData, "sNodeId", "sFatherSlaveId"), [JSON.stringify(slaveData)]);
+ }
+
+ const pagination = {
+ total: slaveData?.length || 0,
+ current: slavePagination?.current || 1,
+ size: "large",
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes("slave", props),
+ onKeyDown: props.onKeyDown,
+ data: slaveTreeData,
+ tableProps: {
+ rowSelection: null,
+ pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ bShowTreeAddChild: true,
+ },
+ onExpand: props.onExpandTreeSingle,
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ };
+ return (
+
+
+
+ );
+};
+
+// 控制表
+const ControlComponent = props => {
+ const {
+ masterConfig,
+ slaveData = [],
+ slaveSelectedRowKeys = [],
+ controlConfig,
+ controlData = [],
+ controlSelectedRowKeys = [],
+ showAllTreeVisible,
+ } = props;
+
+ if (!controlConfig) return "";
+
+ let bControlShow = masterConfig.gdsconfigformslave.find(item => item.sControlName === "tbControl")?.bVisible;
+ bControlShow = bControlShow === undefined ? true : bControlShow;
+ if (!bControlShow) return "";
+
+ // 关联slave合版进行筛选control的数据
+ let controlTableData = [];
+ const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ const slaveSelectedRow = iSlaveIndex !== -1 ? slaveData[iSlaveIndex] : { sProductNo: 0 };
+ if (iSlaveIndex !== -1) {
+ controlData.forEach(item => {
+ if (item.sCombinedMemo && item.sCombinedMemo !== "合版信息") {
+ const sCombinedMemoArr = commonUtils.convertStrToObj(item.sCombinedMemo, []);
+
+ const slaveSelectedRowChildren = props.handleGetSlaveSelectedRowChildren(slaveData, slaveSelectedRow.sId);
+ const slaveRows = [slaveSelectedRow, ...slaveSelectedRowChildren];
+ const len = sCombinedMemoArr.filter(item => item.sProductNo && slaveRows.some(slaveRow => slaveRow.sProductNo === item.sProductNo)).length;
+ if (len) {
+ controlTableData.push(item);
+ }
+ } else {
+ controlTableData.push(item);
+ }
+ });
+ } else {
+ controlTableData = controlData.slice(0);
+ }
+ // 之前代码默认会选中第一行,第一行可能已经被筛选掉,需要判断
+ if (
+ controlTableData.length &&
+ controlSelectedRowKeys[0] !== controlTableData[0].sId &&
+ !controlTableData.map(item => item.sId).includes(controlSelectedRowKeys[0])
+ ) {
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ props.onSaveState({
+ controlSelectedRowKeys: [controlTableData[0].sId],
+ });
+ }
+ }
+
+ const { setCopy } = props.handleGetIcon();
+
+ const bShowProcess = masterConfig.gdsconfigformslave.some(item => item.sControlName === "BtnChooseProcess");
+
+ const bShowMaterials = masterConfig.gdsconfigformslave.some(item => item.sControlName === "BtnChooseMaterials");
+
+ const chooseProcessConfigRow = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseProcess");
+ const chooseMaterialsConfigRow = masterConfig.gdsconfigformslave.find(item => item.sControlName === "BtnChooseMaterials");
+
+ const bDragConfig = controlConfig.gdsconfigformslave.find(item => item.sControlName === "bTableDrag")?.bVisible || false;
+
+ const controlPropsType = {
+ ...commonBusiness.getTableTypes("control", props),
+ data: commonUtils.genTreeByArr(controlTableData, "sId", "sControlParentId"),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ setCopy,
+ setProcess: bShowProcess,
+ setMaterial: bShowMaterials,
+ bShowTreeAdd: true,
+ bShowTreeAddChild: true,
+ bShowTreeDel: true,
+ bShowTreeCopyAll: true,
+ setNoCommonOperate: true,
+ chooseProcessConfigRow,
+ chooseMaterialsConfigRow,
+ AutoTableHeight: 232,
+ },
+ onTreeAdd: props.onDataRowAdd,
+ onTreeAddChild: props.onDataRowAdd,
+ onTreeCopyAll: props.onDataRowCopyAll,
+ onTreeDel: props.onDataRowDel,
+ onMoveRow: props.onMoveRow,
+ isDragAndDrop: bDragConfig,
+ bRowClickRepeat: true,
+ bRowClick: true,
+ };
+
+ const controlShowPropsType = {
+ ...commonBusiness.getTableTypes("control", props),
+ data: commonUtils.genTreeByArr(controlTableData, "sId", "sControlParentId"),
+ onKeyDown: props.onKeyDown,
+ bMutiSelect1: true, // 设置点击整行勾选框不勾选,只有点击勾选框才勾选
+ tableProps: {
+ AutoTableHeight: 550,
+ expandable: props.controlShowExpandedRowKeys,
+ },
+ onExpand: props.onExpandTreeSingleShow,
+ };
+
+ const onCancel = () => {
+ props.onSaveState({ showAllTreeVisible: false });
+ };
+
+ return (
+
+
+ {showAllTreeVisible && (
+
+
+
+
+
+ )}
+
+ );
+};
+
+// 其他表布局
+const OtherComponent = props => {
+ const { app, materialsChildInfoList } = props;
+
+ if (materialsChildInfoList === undefined) return "";
+
+ const { commonConst } = app;
+
+ const [processTabValue, setProcessTabValue] = useState("processInfo");
+ const processInfo = commonFunc.showMessage(commonConst, "processInfo"); // 工序信息
+ const dailyInfo = commonFunc.showMessage(commonConst, "dailyInfo"); // 日志信息
+ const visionInfo = "改版记录";
+
+ const [materialsTabValue, setMaterialsTabValue] = useState(12);
+
+ const panelExtra = (type, { selfName, selfId } = {}) => {
+ let str = "";
+ if (type === "material") {
+ const radioConfigArr = props.formData.filter(item => item.sGrd?.includes(type) && item.bGrdVisible);
+
+ str = (
+
+ {
+ setMaterialsTabValue(e.target.value);
+ }}
+ >
+ {radioConfigArr.map((child, index) => {
+ const radioTitle = child.showName;
+ const radioValue = index + 2 + 10;
+ return {radioTitle};
+ })}
+
+
+ );
+ } else if (type === "process") {
+ str = (
+
+ {
+ setProcessTabValue(e.target.value);
+ }}
+ >
+ {processInfo}
+ {/* {bSplitProcess ? {productProcessInfo} : ""} */}
+
+
+ );
+ } else if (type === "daily") {
+ str = (
+
+
+ {dailyInfo}
+
+
+ );
+ } else if (type === "vision") {
+ str = (
+
+
+ {visionInfo}
+
+
+ );
+ } else if (selfName) {
+ str = (
+
+
+ {selfName}
+
+
+ );
+ }
+ return str;
+ };
+
+ const [activeKey, setActiveKey] = useState(["process", "material", "vision", ...materialsChildInfoList]);
+ const getHeaderIcon = tablename => (
+
+ );
+
+ // 过滤出不是替代料的子表
+ const materialsChildInfoListFilter = materialsChildInfoList.filter(tablename => props[`${tablename}Config`]?.sChinese !== "替代料") || [];
+
+ return (
+
+
+ {processTabValue === "processInfo" && }
+
+
+
+
+
+ {materialsChildInfoListFilter.map(tablename => {
+ const { sChinese } = props[`${tablename}Config`];
+ return (
+
+
+
+ );
+ })}
+
+ {props.visionConfig && (
+
+
+
+ )}
+
+ {props.dailyConfig && (
+
+
+
+ )}
+
+ );
+};
+
+// 工序表
+const ProcessComponent = props => {
+ const { processConfig, controlSelectedRowKeys } = props;
+ if (!processConfig) return "";
+
+ const processTableId = useRef(`processTableId_${commonUtils.createSid()}`);
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const bProcessSort = processConfig.gdsconfigformslave.find(item => item.sControlName === "handleSort").bVisible || false;
+
+ const baseData = commonBusiness.getTableTypes("process", props);
+ const processPropsType = {
+ ...baseData,
+ data: props.dataFilter(props, baseData, "process"),
+ filteredValue: controlSelectedRowKeys,
+ onFilterData: props.onFilterData,
+ OnGetFilterData: props.OnGetFilterData,
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ sticky: true,
+ // sticky: layoutChange ? { offsetHeader: stickyHeight } : true
+ },
+ onDrag: props.onDrag,
+ isDragAndDrop: false,
+ setOpterationColumn: "Y",
+ bModalAdd: true,
+ dragHandle: bProcessSort && props.enabled,
+ selfTableHeight: 330,
+ noVlist: true,
+ tableId: processTableId.current,
+ };
+
+ const getProcessTable = () => ;
+
+ const showLeftConfig = processConfig.gdsconfigformslave.find(item => item.sControlName === "bShowLeft");
+
+ if (showLeftConfig) {
+ const { iColValue, sChinese: processShowTitle } = showLeftConfig;
+
+ const processTitleWidth = processConfig.gdsconfigformslave.find(item => item.sControlName === "titleWidth")?.sDefault;
+ const commonViewDragableProps = {
+ ...props,
+ hideTabsNav: true,
+ processTitleWidth,
+ comparedTableId: processTableId.current,
+ sParamData: [
+ {
+ sParamType: "sWorkOrder",
+ sParamName: "工单参数",
+ },
+ ],
+ tableName: "process",
+ };
+ return (
+
+
+ {getProcessTable()}
+
+
+ {processShowTitle && (
+
+ {processShowTitle}
+
+ )}
+
+
+
+ );
+ } else {
+ return getProcessTable();
+ }
+};
+
+// 材料表
+const MaterialsComponent = props => {
+ const { materialsInfoList = [], materialsChildInfoList = [], materialsTabValue } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ // 主材料表格配置
+ const materialsTablePropsList = {};
+ materialsInfoList.forEach((item, index) => {
+ const baseProps = commonBusiness.getTableTypes(`materials${index}`, props);
+
+ /* 全部材料 是否可排序 */
+ const bMaterialsSort = baseProps.config.gdsconfigformslave.find(item => item.sControlName === "handleSort")?.bVisible;
+
+ materialsTablePropsList[`materialsTable${index}Props`] = {
+ ...baseProps,
+ onKeyDown: props.onKeyDown,
+ data: props.materialsFilterNew(props, baseProps, `materials${index}`),
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ },
+ setOpterationColumn: "Y",
+ noVlist: true,
+ dragHandle: bMaterialsSort,
+ selfTableHeight: 82,
+ };
+ });
+
+ // 子材料表配置
+ const materialsChildTablePropsList = {};
+ // 只过滤出替代料
+ const materialsChildInfoListFilter = materialsChildInfoList.filter(tablename => props[`${tablename}Config`]?.sChinese === "替代料");
+ materialsChildInfoListFilter.forEach(item => {
+ const baseProps = commonBusiness.getTableTypes(`${item}`, props);
+ materialsChildTablePropsList[`${item}TableProps`] = {
+ ...baseProps,
+ data: props.materialsFilterNew(props, baseProps, item),
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ },
+ onDrag: props.onDrag,
+ setOpterationColumn: "Y",
+ noVlist: true,
+ selfTableHeight: 82,
+ };
+ });
+
+ return materialsInfoList.map((item, index) => {
+ let num = 12 + index;
+ const materialsOtherPropsType = materialsTablePropsList[`materialsTable${index}Props`];
+ let sWidth = "100%";
+ let sRightWidth = "100%";
+
+ /* 找到子级 左右列 */
+ let materialsChildTableProps;
+ let materialsChildTableTitle = "子表记录";
+ if (commonUtils.isNotEmptyArr(materialsChildInfoListFilter)) {
+ const iIndex = materialsChildInfoListFilter.findIndex(child => child.includes(item));
+ if (iIndex > -1) {
+ materialsChildTableProps = materialsChildTablePropsList[`${item}ChildTableProps`];
+ sWidth = "58.5%";
+ sRightWidth = "42%";
+ materialsChildTableTitle = materialsChildTableProps.config.sChinese || "";
+ }
+ } else {
+ sWidth = "100%";
+ }
+
+ // 限制编辑-劲嘉定制
+ if (index === 0 || index === 3) {
+ materialsOtherPropsType.otherlimitDisabled = params => {
+ const { enabledNew, record, sName } = params;
+ if (!["101251240115016082594412050"].includes(props.sModelsId)) return enabledNew;
+ if (enabledNew && ["dAuxiThousheetQty"].includes(sName) && record.dPackageQty > 0) {
+ enabledNew = false;
+ }
+ return enabledNew;
+ };
+ }
+
+ return (
+ materialsTabValue === num && (
+
+
+
+ {/* {index === 0 && (
+
+
+
+ )} */}
+
+ {materialsChildTableProps ? (
+
+
+ {" "}
+
+ {materialsChildTableTitle}
+ {" "}
+
+
+
+ ) : (
+ ""
+ )}
+
+ )
+ );
+ });
+};
+
+// 子材料表
+const MaterialsChildComponent = props => {
+ const { materialsChildName } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const baseProps = commonBusiness.getTableTypes(materialsChildName, props);
+ const materialsChildProps = {
+ ...baseProps,
+ data: props.materialsFilterNew(props, baseProps, materialsChildName),
+ tableProps: {
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ },
+ onDrag: props.onDrag,
+ setOpterationColumn: "Y",
+ noVlist: true,
+ selfTableHeight: 82,
+ };
+
+ return ;
+};
+
+// 改版表
+const VisionComponent = props => {
+ const { visionData = [], visionPagination } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const pagination = {
+ total: visionData.length,
+ current: visionPagination?.current || 1,
+ size: "large",
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+
+ const visionRecordTableProps = {
+ ...commonBusiness.getTableTypes("vision", props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ setOpterationColumn: "Y",
+ selfTableHeight: 82,
+ noVlist: true,
+ },
+ };
+
+ return ;
+};
+
+// 日志表
+const DailyComponent = props => {
+ const { dailyData = [], dailyPagination } = props;
+
+ const { setAdd, setCopy, setDelete } = props.handleGetIcon();
+
+ const pagination = {
+ total: dailyData.length,
+ current: dailyPagination?.current || 1,
+ size: "large",
+ pageSize: commonConfig.pageSize,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+
+ const dailyRecordTableProps = {
+ ...commonBusiness.getTableTypes("daily", props),
+ onKeyDown: props.onKeyDown,
+ tableProps: {
+ rowSelection: null,
+ pagination,
+ onChange: props.onTitleChange,
+ setAdd,
+ setCopy,
+ setDelete,
+ AutoTableHeight: "100%",
+ setOpterationColumn: "Y",
+ selfTableHeight: 82,
+ noVlist: true,
+ },
+ };
+
+ return ;
+};
+
+export default CommonBase(CommonSales(WorkOrderPackTableTreeNew));
diff --git a/src/components/Manufacture/WorkOrderPackTableTreeNew/index.less b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.less
new file mode 100644
index 0000000..8a1fc31
--- /dev/null
+++ b/src/components/Manufacture/WorkOrderPackTableTreeNew/index.less
@@ -0,0 +1,93 @@
+.WorkOrderPackTableTreeNew {
+ width: 100vw;
+ height: 100vh;
+ padding-top: 90px;
+ background-color: #FFF;
+}
+
+.content {
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+}
+
+.header {
+ position: fixed;
+ width: 100%;
+ z-index: 999;
+ top: 60px;
+ height: 30px;
+ padding: 0px;
+ line-height: inherit;
+ background: transparent;
+
+ :global {
+ .ant-menu {
+ line-height: inherit;
+ }
+ }
+}
+
+.avatar {
+ height: 0;
+ line-height: 0;
+
+ :global {
+ img {
+ position: fixed;
+ width: 93px;
+ height: 93px;
+ right: 10px;
+ z-index: 1000;
+ top: 122px;
+ /* 解决审核图标挡住操作按钮 */
+ object-fit: contain;
+ }
+ }
+}
+
+.masterView {
+ :global {
+ .searchMainForm {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ }
+}
+
+.slaveTable {
+ width: 100%;
+ height: auto;
+ padding: 0 10px 0 10px;
+}
+
+.controlTable {
+ width: 100%;
+ height: auto;
+ padding: 0 10px 0 10px;
+ position: sticky;
+ top: 0;
+ z-index: 999;
+}
+
+.collapse {
+ width: calc(100% - 20px);
+ height: auto;
+ margin: 0 10px 0 10px;
+}
+
+.delAll {
+ position: absolute;
+ top: -22px;
+ right: 0;
+ z-index: 15;
+
+ :global {
+ .ant-btn {
+ height: 22px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/components/Manufacture/index.less b/src/components/Manufacture/index.less
new file mode 100644
index 0000000..9b7959f
--- /dev/null
+++ b/src/components/Manufacture/index.less
@@ -0,0 +1,283 @@
+@import "~@/variable.less";
+:global {
+ .xly-workorder-list {
+ .ant-form-item{
+ margin-bottom: 0px!important;
+ }
+ .workerOrderControlTable{
+ position: sticky;
+ top: 0px;
+ left: 0px;
+ z-index: 99;
+ }
+ .workerOrderSlaveTable{
+ position: sticky;
+ top: 0px;
+ left: 0px;
+ z-index: 99;
+ }
+ /* 折叠Panel */
+ .ant-collapse > .ant-collapse-item > .ant-collapse-header{
+ padding: 0px 0px 0px 8px!important;
+ }
+ span.ant-radio + *{
+ font-size: 12px!important;
+ }
+ .slave-tabs-container{
+ .ant-table-pagination.ant-pagination{ /* 工单从表分页 */
+ position:sticky;
+ margin:10px 0px 0px 0px;
+ }
+ }
+ .ant-table-sticky-scroll{
+ display: none;
+ }
+ .ant-layout{
+ overflow: unset;
+ }
+ .ant-layout-sider {
+ width: 32px !important;
+ flex: 0 0 32px !important;
+ width: 32px !important;
+ max-width: 32px !important;
+ min-width: 32px !important;
+ background-color: #e6f7ff !important;
+ writing-mode: tb-rl;
+ text-align: center;
+ letter-spacing:0px;
+ line-height: 32px;
+ font-size: 12px;
+ font-weight: bold;
+ border: 1px solid #cfcece;
+ }
+ .product{
+ width: 32px;
+ }
+ .control.ant-layout-sider {
+ background-color: #fff8e6 !important;
+ }
+ .controlhandcover.ant-layout-sider {
+ background-color: #fafafa !important;
+ font-size: 12px;
+ font-weight:normal;
+ writing-mode: horizontal-tb;
+ flex: 0 0 14%!important;
+ max-width: 14%!important;
+ margin-right: 5px;
+ }
+ .xly-control{
+ width:100%;
+ height: 100%;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ }
+ .xly-control-header{
+ background: #f5f5f5;
+ height: 21px;
+ color: #101010;
+ font-weight: bold;
+ padding-left: 10px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ border-bottom: 1px solid #d9d9d9!important;
+ }
+ .xly-control-tree{
+ background: #fff;
+ text-align: left!important;
+ width: 100%;
+ padding-left: 20px;
+ min-height: 35px!important;
+ max-height: 110px;
+ overflow-y: auto;
+ height: 100%;
+ .ant-legacy-form-item{
+ margin-bottom: 0;
+ }
+ .ant-tree{
+ text-align: left;
+ }
+ #staticEditTree{
+ width: 100%;
+ overflow: hidden;
+ .ant-tree-child-tree {
+ font-size: 12px;
+ }
+ }
+ .ant-tree > li{
+ padding: 3px!important;
+ }
+ }
+ .xly-control-operate{
+ position: absolute;
+ left: 0;
+ bottom: 0px;
+ width: 100%;
+ background-color: #f5f5f5;
+ height: 20px!important;
+ line-height: 20px!important;
+ display: flex;
+ flex-wrap: nowrap;
+ justify-content: space-around;
+ }
+ .materials.ant-layout-sider {
+ background-color: #f6ffee !important;
+ }
+ .process.ant-layout-sider {
+ background-color: #fff1f0 !important;
+ a{ margin-bottom: 7px;}
+ img{margin-left: -5px}
+ }
+ .left {
+ flex: 0 0 32px !important;
+ width: 32px !important;
+ max-width: 32px !important;
+ }
+ .ant-layout-has-sider .ant-form-item {
+ margin-left: 0px!important;
+ margin-right:0px!important;
+ margin-bottom: 0px!important;
+ }
+ /* 浮动标题 */
+ .StyleTableDiv{
+ position: fixed;
+ opacity: 0.9;
+ top:178px;
+ width: 96%;
+ overflow: hidden;
+ z-index: 100;
+ .ant-table-scroll{
+ overflow: hidden!important;
+ }
+ .ant-table-placeholder{
+ display: none;
+ }
+ }
+ /* 工单工序表控制表格最低高度 */
+ .processTable{
+ overflow: unset;
+ minHeight:160px;
+ .ant-table-scroll{
+ min-height: 160px!important;
+ }
+ }
+ }
+ // 包装工单单独样式
+ .worker-order-pack-container{
+ .process-table-container{
+ min-height: 273px;
+ }
+ .ant-table-fixed-right {
+ border-radius: 0 !important;
+ }
+ .StyleTableDiv{
+ top: 120px;
+ opacity: 1;
+ }
+ // 2021/6/15去除样式
+ #slaveTabs{
+ max-height: ~"calc((100vh) - 130px)"!important;
+ .xly-control-operate{
+ height: 22px!important;
+ line-height: 22px!important;
+ bottom: 0;
+ }
+ .controlhandcover.ant-layout-sider{
+ flex: 0 0 192px!important;
+ max-width: 192px!important;
+ }
+ .materials-table-container, .slave-tabs-container, .process-table-container{
+ .ant-row{
+ margin-left: 0!important;
+ margin-right: 0!important;
+ margin-bottom: 0px!important;
+ margin-top: 0!important;
+ }
+ }
+ .ant-layout-sider{
+ flex: 0 0 40px !important;
+ width: 40px !important;
+ max-width: 40px !important;
+ min-width: 40px !important;
+ line-height: 40px;
+ border: none;
+ }
+ .process.ant-layout-sider{
+ background-color: #f2f2f2!important;
+ }
+ }
+ }
+ .worker-order-pack-modal{
+ // 根据黄工要求修改默认高度
+ .ant-modal-body{
+ padding: 0!important;
+ }
+
+ .xly-tree-box{
+ width: 100%;
+ .ant-row{
+ margin-bottom: 0;
+ }
+ }
+ }
+ .xly-workorder-list .slaveMemo{
+ width: 60vw!important;
+ height: 80vh!important;
+ .ant-modal-body{
+ textarea{
+ height: ~"calc(80vh - 44px - 37px)";
+ }
+ }
+ }
+ .process-table-container,.materials-table-container {
+ .ant-tabs-vertical.ant-tabs-left > .ant-tabs-content{
+ padding-left: 5px!important;
+ }
+ }
+ .dlhStyle{
+ width: 97vw;
+ display: flex;
+ flex-direction: row;
+ }
+ .dlhStyle1{
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ }
+ .commonParamDrag{
+ height: 400px;
+ .ant-modal-body {
+ max-height: calc(100vh - 300px) !important;
+ overflow: auto;
+ }
+ }
+ .workOrderDivider{
+ font-size: 12px!important;
+ margin: 4px 0!important;
+ text-align: center!important;
+ font-weight: bold!important;
+ }
+ .fixChildTitle{
+ position: absolute;
+ top: -24px;
+ left: 11px;
+ font-size: 14px;
+ font-weight: bold
+ }
+}
+
+.delAll {
+ position: absolute;
+ top: -22px;
+ right: 0;
+ z-index: 15;
+ :global {
+ .ant-btn {
+ height: 22px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+}
diff --git a/src/components/NumberInfo/index.js b/src/components/NumberInfo/index.js
new file mode 100644
index 0000000..46969c9
--- /dev/null
+++ b/src/components/NumberInfo/index.js
@@ -0,0 +1,34 @@
+import React from 'react';
+import { Icon as LegacyIcon } from '@ant-design/compatible';
+import classNames from 'classnames';
+import styles from './index.less';
+
+export default ({
+ theme, title, subTitle, total, subTotal, status, suffix, gap, ...rest
+}) => (
+
+ {title &&
{title}
}
+ {subTitle &&
{subTitle}
}
+
+
+ {total}
+ {suffix && {suffix}}
+
+ {
+ (status || subTotal) && (
+
+ {subTotal}
+ {status && }
+
+ )
+ }
+
+
+);
diff --git a/src/components/NumberInfo/index.less b/src/components/NumberInfo/index.less
new file mode 100644
index 0000000..a6059b7
--- /dev/null
+++ b/src/components/NumberInfo/index.less
@@ -0,0 +1,61 @@
+@import "~antd-v4/lib/style/themes/default.less";
+
+.textOverflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ word-break: break-all;
+ white-space: nowrap;
+}
+
+.numberInfo {
+ .suffix {
+ color: @text-color;
+ font-size: 16px;
+ font-style: normal;
+ margin-left: 4px;
+ }
+ .numberInfoTitle {
+ color: @text-color;
+ font-size: @font-size-lg;
+ margin-bottom: 16px;
+ transition: all .3s;
+ }
+ .numberInfoSubTitle {
+ color: @text-color-secondary;
+ font-size: @font-size-base;
+ height: 22px;
+ line-height: 22px;
+ .textOverflow();
+ }
+ .numberInfoValue {
+ margin-top: 4px;
+ font-size: 0;
+ .textOverflow();
+ & > span {
+ color: @heading-color;
+ display: inline-block;
+ line-height: 32px;
+ height: 32px;
+ font-size: 24px;
+ margin-right: 32px;
+ }
+ .subTotal {
+ color: @text-color-secondary;
+ font-size: @font-size-lg;
+ vertical-align: top;
+ margin-right: 0;
+ i {
+ font-size: 12px;
+ transform: scale(0.82);
+ margin-left: 4px;
+ }
+ }
+ }
+}
+.numberInfolight {
+ .numberInfoValue {
+ & > span {
+ color: @text-color;
+ }
+ }
+}
diff --git a/src/index.less b/src/index.less
index 6166f05..175a039 100644
--- a/src/index.less
+++ b/src/index.less
@@ -3281,4 +3281,4 @@ ton:focus {
height: 38px;
justify-content: space-between;
}
-}
\ No newline at end of file
+}
diff --git a/src/routes/basicInfoSetting/checkModel/checkModel.js b/src/routes/basicInfoSetting/checkModel/checkModel.js
new file mode 100644
index 0000000..8d6fd3e
--- /dev/null
+++ b/src/routes/basicInfoSetting/checkModel/checkModel.js
@@ -0,0 +1,32 @@
+import { connect } from 'umi';
+import CheckModelInfoComponent from '../../../components/CommonElementEvent/CheckModelInfo';
+
+function CheckModel({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+
+ const checkModelProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(CheckModel);
diff --git a/src/routes/basicInfoSetting/checkPhase/checkPhase.js b/src/routes/basicInfoSetting/checkPhase/checkPhase.js
new file mode 100644
index 0000000..c2a3ac6
--- /dev/null
+++ b/src/routes/basicInfoSetting/checkPhase/checkPhase.js
@@ -0,0 +1,32 @@
+import { connect } from 'umi';
+import CheckPhaseInfoComponent from '../../../components/CommonElementEvent/CheckPhaseInfo';
+
+function CheckPhase({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+
+ const checkPhaseProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(CheckPhase);
diff --git a/src/routes/basicInfoSetting/commonStyle/commonStyle.js b/src/routes/basicInfoSetting/commonStyle/commonStyle.js
new file mode 100644
index 0000000..a9da702
--- /dev/null
+++ b/src/routes/basicInfoSetting/commonStyle/commonStyle.js
@@ -0,0 +1,31 @@
+import { connect } from 'umi';
+import SisCommonStyleComponent from '../../../components/CommonElementEvent/SisCommonStyle';
+
+function CommonStyle({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ const commonStyleProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(CommonStyle);
diff --git a/src/routes/basicInfoSetting/customerInfo/customerInfo.js b/src/routes/basicInfoSetting/customerInfo/customerInfo.js
new file mode 100644
index 0000000..b1965e3
--- /dev/null
+++ b/src/routes/basicInfoSetting/customerInfo/customerInfo.js
@@ -0,0 +1,32 @@
+import { connect } from 'umi';
+import CustomerInfoComponent from '../../../components/CommonElementEvent/CustomerInfo';
+
+function CustomerInfo({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+
+ const customerInfoProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(CustomerInfo);
diff --git a/src/routes/basicInfoSetting/employee/employee.js b/src/routes/basicInfoSetting/employee/employee.js
new file mode 100644
index 0000000..f583fdc
--- /dev/null
+++ b/src/routes/basicInfoSetting/employee/employee.js
@@ -0,0 +1,32 @@
+import { connect } from 'umi';
+import EmployeeInfoComponent from '../../../components/CommonElementEvent/EmployeeInfo';
+
+function Employee({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+
+ const employeeProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(Employee);
diff --git a/src/routes/basicInfoSetting/materiel/materiel.js b/src/routes/basicInfoSetting/materiel/materiel.js
new file mode 100644
index 0000000..32531df
--- /dev/null
+++ b/src/routes/basicInfoSetting/materiel/materiel.js
@@ -0,0 +1,37 @@
+import { connect } from 'umi';
+import MaterielComponent from '../../../components/CommonElementEvent/MaterialsInfo';
+
+function Materiel({ dispatch, app, content }) {
+ /* const btnData = config.btnData; /!* 工具栏按钮 *!/
+ function getFormData(componentName, dataUrl, value, fastbFilter) {
+ dispatch({ type: 'mergeTable/getFormData', payload: { componentName, dataUrl, value, fastbFilter } });
+ }
+ function removePane(changePanes, activeKey) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, activeKey } });
+ } */
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ const materielProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(Materiel);
diff --git a/src/routes/basicInfoSetting/printInfo/printInfo.js b/src/routes/basicInfoSetting/printInfo/printInfo.js
new file mode 100644
index 0000000..35e8428
--- /dev/null
+++ b/src/routes/basicInfoSetting/printInfo/printInfo.js
@@ -0,0 +1,31 @@
+import { connect } from 'umi';
+import PrintInfoComponent from '@/components/CommonElementEvent/PrintInfo';
+
+function PrintInfo({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ const printInfoProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(PrintInfo);
diff --git a/src/routes/basicInfoSetting/processInfo/processInfo.js b/src/routes/basicInfoSetting/processInfo/processInfo.js
new file mode 100644
index 0000000..68e7f8c
--- /dev/null
+++ b/src/routes/basicInfoSetting/processInfo/processInfo.js
@@ -0,0 +1,31 @@
+import { connect } from 'umi';
+import ProcessInfoComponent from '../../../components/CommonElementEvent/ProcessInfo';
+
+function ProcessInfo({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ const processProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(ProcessInfo);
diff --git a/src/routes/basicInfoSetting/productClassify/productClassify.js b/src/routes/basicInfoSetting/productClassify/productClassify.js
new file mode 100644
index 0000000..a20f4bc
--- /dev/null
+++ b/src/routes/basicInfoSetting/productClassify/productClassify.js
@@ -0,0 +1,31 @@
+import { connect } from 'umi';
+import ProductClassifyComponent from '../../../components/CommonElementEvent/ProductClassifyInfo';
+
+function ProductClassify({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ const productClassifyProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(ProductClassify);
diff --git a/src/routes/basicInfoSetting/sftLoginInfo/sftLoginInfo.js b/src/routes/basicInfoSetting/sftLoginInfo/sftLoginInfo.js
new file mode 100644
index 0000000..96c379b
--- /dev/null
+++ b/src/routes/basicInfoSetting/sftLoginInfo/sftLoginInfo.js
@@ -0,0 +1,31 @@
+import { connect } from 'umi';
+import SftLoginInfoComponent from '../../../components/CommonElementEvent/SftLoginInfo';
+
+function SftLoginInfo({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ const sftLoginInfoProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(SftLoginInfo);
diff --git a/src/routes/basicInfoSetting/supplyInfo/supplyInfo.js b/src/routes/basicInfoSetting/supplyInfo/supplyInfo.js
new file mode 100644
index 0000000..81f4081
--- /dev/null
+++ b/src/routes/basicInfoSetting/supplyInfo/supplyInfo.js
@@ -0,0 +1,32 @@
+import { connect } from 'umi';
+import SupplyInfoComponent from '../../../components/CommonElementEvent/SupplyInfo';
+
+function SupplyInfo({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+
+ const supplyInfoProps = {
+ dispatch,
+ app,
+ content,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(SupplyInfo);
diff --git a/src/routes/basicInfoSetting/systemSetting/systemSetting.js b/src/routes/basicInfoSetting/systemSetting/systemSetting.js
new file mode 100644
index 0000000..c889e60
--- /dev/null
+++ b/src/routes/basicInfoSetting/systemSetting/systemSetting.js
@@ -0,0 +1,31 @@
+import { connect } from 'umi';
+import SystemSettingComponent from '../../../components/CommonSystemSettingEvent/CommonSystemSetting';
+
+function SystemSetting({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ const systemSettingProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(SystemSetting);
diff --git a/src/routes/basicInfoSetting/teststandInfo/teststandInfo.js b/src/routes/basicInfoSetting/teststandInfo/teststandInfo.js
new file mode 100644
index 0000000..d128d9a
--- /dev/null
+++ b/src/routes/basicInfoSetting/teststandInfo/teststandInfo.js
@@ -0,0 +1,32 @@
+import { connect } from 'umi';
+import TestStandInfoComponent from '../../../components/CommonElementEvent/TestStandInfo';
+
+function TeststandInfo({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ function removeModalPan(changePanes) {
+ dispatch({ type: 'app/removeModalPane', payload: { changePanes } });
+ }
+
+ function addPane(pane) {
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+
+ const knifemouldInfoProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: addPane,
+ onRemovePane: removePane,
+ onRemoveModalPane: removeModalPan,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(TeststandInfo);
diff --git a/src/routes/common/commonCheckBill.js b/src/routes/common/commonCheckBill.js
new file mode 100644
index 0000000..1b8c2a3
--- /dev/null
+++ b/src/routes/common/commonCheckBill.js
@@ -0,0 +1,23 @@
+import { connect } from 'umi';
+import CommonBillComponent from '@/components/Common/CommonCheckBill';
+
+function CommonBill({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(CommonBill);
+
diff --git a/src/routes/commonColumnList/commonColumnList.js b/src/routes/commonColumnList/commonColumnList.js
new file mode 100644
index 0000000..86afb6f
--- /dev/null
+++ b/src/routes/commonColumnList/commonColumnList.js
@@ -0,0 +1,24 @@
+
+import { connect } from 'umi';
+import CommonColumnList from '../../components/Common/CommonColumnList';
+
+function commonColumnList({
+ dispatch, app, content,
+}) {
+ const commonListProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: getAddPane, /* 增加标签 */
+ };
+ function getAddPane(pane) {
+ /* 增加标签 */
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(commonColumnList);
diff --git a/src/routes/commonGatte/commonGatte.js b/src/routes/commonGatte/commonGatte.js
new file mode 100644
index 0000000..ed71965
--- /dev/null
+++ b/src/routes/commonGatte/commonGatte.js
@@ -0,0 +1,24 @@
+
+import { connect } from 'umi';
+import CommonGatte from '../../components/Common/Gatte/CommonGatte';
+
+function commonList({
+ dispatch, app, content,
+}) {
+ const commonGatteProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: getAddPane, /* 增加标签 */
+ };
+ function getAddPane(pane) {
+ /* 增加标签 */
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(commonList);
diff --git a/src/routes/commonList/commonListA.js b/src/routes/commonList/commonListA.js
index 7ee2d18..d65b1ef 100644
--- a/src/routes/commonList/commonListA.js
+++ b/src/routes/commonList/commonListA.js
@@ -4,7 +4,7 @@
*/
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import CommonListA from '../../components/Common/CommonListA';
function commonListA({
diff --git a/src/routes/commonList/commonListLeft.js b/src/routes/commonList/commonListLeft.js
index e334fdd..df3b928 100644
--- a/src/routes/commonList/commonListLeft.js
+++ b/src/routes/commonList/commonListLeft.js
@@ -4,7 +4,7 @@
*/
import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
// import CommonListLeft from '../../components/Common/CommonListLeft';
import CommonListLeft from '@/components/Common/CommonListLeft';
diff --git a/src/routes/commonList/commonListTab.js b/src/routes/commonList/commonListTab.js
index e0313d6..e3a78db 100644
--- a/src/routes/commonList/commonListTab.js
+++ b/src/routes/commonList/commonListTab.js
@@ -3,9 +3,8 @@
* @Last modified time: 2019-06-26T18:40:44+08:00
*/
-import React from 'react';
-import { connect } from 'dva';
-import CommonListTabComponent from '@/components/Common/CommonListTab';
+import { connect } from 'umi';
+import CommonListTabComponent from '../../components/Common/CommonListTab';
function CommonTab({ dispatch, app, content }) {
function removePane(changePanes, currentPane) {
diff --git a/src/routes/commonListTree/commonListTree.js b/src/routes/commonListTree/commonListTree.js
new file mode 100644
index 0000000..36145da
--- /dev/null
+++ b/src/routes/commonListTree/commonListTree.js
@@ -0,0 +1,23 @@
+import { connect } from 'umi';
+import CommonListTree from '@/components/Common/CommonListTree';
+
+function commonListTree({
+ dispatch, app, content,
+}) {
+ const commonListProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: getAddPane, /* 增加标签 */
+ };
+ function getAddPane(pane) {
+ /* 增加标签 */
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(commonListTree);
diff --git a/src/routes/manufacture/processCard/processCardInfo.js b/src/routes/manufacture/processCard/processCardInfo.js
new file mode 100644
index 0000000..985e2a8
--- /dev/null
+++ b/src/routes/manufacture/processCard/processCardInfo.js
@@ -0,0 +1,23 @@
+
+import { connect } from 'umi';
+import ProcessCard from '../../../components/Manufacture/ProcessCard/ProcessCard';
+
+function ProcessCardInfoComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(ProcessCardInfoComponent);
+
diff --git a/src/routes/manufacture/processCardPack/processCardInfoPack.js b/src/routes/manufacture/processCardPack/processCardInfoPack.js
new file mode 100644
index 0000000..8d7eb46
--- /dev/null
+++ b/src/routes/manufacture/processCardPack/processCardInfoPack.js
@@ -0,0 +1,23 @@
+
+import { connect } from 'umi';
+import ProcessCardPack from '../../../components/Manufacture/ProcessCardPack/ProcessCardPack';
+
+function ProcessCardInfoComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(ProcessCardInfoComponent);
+
diff --git a/src/routes/manufacture/processCardPackTableTree/processCardPackTableTree.js b/src/routes/manufacture/processCardPackTableTree/processCardPackTableTree.js
new file mode 100644
index 0000000..18f973d
--- /dev/null
+++ b/src/routes/manufacture/processCardPackTableTree/processCardPackTableTree.js
@@ -0,0 +1,22 @@
+
+import { connect } from 'umi';
+import ProcessCardPack from '../../../components/Manufacture/ProcessCardPack/ProcessCardPackTableTree';
+
+function ProcessCardInfoComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(ProcessCardInfoComponent);
diff --git a/src/routes/manufacture/processCardPackTableTreeNew/processCardPackTableTreeNew.js b/src/routes/manufacture/processCardPackTableTreeNew/processCardPackTableTreeNew.js
new file mode 100644
index 0000000..cc3fcf9
--- /dev/null
+++ b/src/routes/manufacture/processCardPackTableTreeNew/processCardPackTableTreeNew.js
@@ -0,0 +1,21 @@
+
+import { connect } from "umi";
+import ProcessCardPackTableTreeNew from "../../../components/Manufacture/ProcessCardPackTableTreeNew";
+
+function ProcessCardPackTableTreeNewComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: "app/removePane", payload: { changePanes, currentPane } });
+ }
+
+ const commonProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane
+ };
+ return ;
+}
+
+export default connect(({ app, content }) => ({ app, content }))(
+ ProcessCardPackTableTreeNewComponent
+);
diff --git a/src/routes/manufacture/workOrder/workOrder.js b/src/routes/manufacture/workOrder/workOrder.js
new file mode 100644
index 0000000..5a6a4a7
--- /dev/null
+++ b/src/routes/manufacture/workOrder/workOrder.js
@@ -0,0 +1,23 @@
+
+import { connect } from 'umi';
+import WorkOrder from '../../../components/Manufacture/WorkOrder/WorkOrder';
+
+function WorkOrderComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(WorkOrderComponent);
+
diff --git a/src/routes/manufacture/workOrderPack/workOrderPack.js b/src/routes/manufacture/workOrderPack/workOrderPack.js
new file mode 100644
index 0000000..f7c07fc
--- /dev/null
+++ b/src/routes/manufacture/workOrderPack/workOrderPack.js
@@ -0,0 +1,23 @@
+
+import { connect } from 'umi';
+import WorkOrderPack from '../../../components/Manufacture/WorkOrderPack/WorkOrderPack';
+
+function WorkOrderPackComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(WorkOrderPackComponent);
+
diff --git a/src/routes/manufacture/workOrderPackTableTree/workOrderPackTableTree.js b/src/routes/manufacture/workOrderPackTableTree/workOrderPackTableTree.js
new file mode 100644
index 0000000..13b5595
--- /dev/null
+++ b/src/routes/manufacture/workOrderPackTableTree/workOrderPackTableTree.js
@@ -0,0 +1,23 @@
+
+import { connect } from 'umi';
+import WorkOrderPackTableTree from '../../../components/Manufacture/WorkOrderPack/WorkOrderPackTableTree';
+
+function WorkOrderPackTableTreeComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(WorkOrderPackTableTreeComponent);
+
diff --git a/src/routes/manufacture/workOrderResearchTableTree/workOrderResearchTableTree.js b/src/routes/manufacture/workOrderResearchTableTree/workOrderResearchTableTree.js
new file mode 100644
index 0000000..c368160
--- /dev/null
+++ b/src/routes/manufacture/workOrderResearchTableTree/workOrderResearchTableTree.js
@@ -0,0 +1,23 @@
+
+import { connect } from 'umi';
+import WorkOrderResearchTableTree from '../../../components/Manufacture/WorkOrderPack/WorkOrderResearchTableTree';
+
+function WorkOrderPackTableTreeComponent({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(WorkOrderPackTableTreeComponent);
+
diff --git a/src/routes/materialRequirementsPlanning/materialRequirementsPlanning.js b/src/routes/materialRequirementsPlanning/materialRequirementsPlanning.js
new file mode 100644
index 0000000..667bab0
--- /dev/null
+++ b/src/routes/materialRequirementsPlanning/materialRequirementsPlanning.js
@@ -0,0 +1,23 @@
+import { connect } from 'umi';
+import MaterialRequirementsPlanning from '../../components/Common/MaterialRequirementsPlanning';
+
+function materialRequirementsPlanning({
+ dispatch, app, content,
+}) {
+ const commonListProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: getAddPane, /* 增加标签 */
+ };
+ function getAddPane(pane) {
+ /* 增加标签 */
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(materialRequirementsPlanning);
diff --git a/src/routes/tab/tab.js b/src/routes/tab/tab.js
index cb89105..f0b2a9b 100644
--- a/src/routes/tab/tab.js
+++ b/src/routes/tab/tab.js
@@ -6,9 +6,38 @@ import IndexCenter from '@/routes/indexCenter/indexCenter';/* 首页 */
import TabComponent from '@/components/Tab/TabComponent';
import CommonListEdit from '@/routes/commonList/commonListEdit'; /* 可编辑公共列表 */
import CommonList from '@/routes/commonList/commonList';/* 公共列表 */
+import CommonListA from '@/routes/commonList/commonListA'; /* 无需注册模块验证的公共列表 */
+import CommonListTab from '@/routes/commonList/commonListTab'; /* 多个列表 */
import CommonBill from '@/routes/commonList/commonBill';/* 通用单据页 */
import CommonNewBill from '@/routes/commonList/commonNewBill';/* 通用单据页 */
import CommonClassify from '@/routes/commonClassify/commonClassify';/* 公共分类 */
+import CustomerInfo from '@/routes/basicInfoSetting/customerInfo/customerInfo';/* 客户信息 */
+import CommonColumnList from '@/routes/commonColumnList/commonColumnList';/* 公共自定义标题列表 */
+import CommonListTree from '@/routes/commonListTree/commonListTree';/* 两层通用结构commonListTree,功能如物料需求计划 */
+import CommonListLeft from '@/routes/commonList/commonListLeft';/* 左侧树形 */
+import CommonGatte from '@/routes/commonGatte/commonGatte';/* 甘特图列表 */
+import MaterialRequirementsPlanning from '@/routes/materialRequirementsPlanning/materialRequirementsPlanning';/* 物料需求计划 */
+import TestStandInfo from '@/routes/basicInfoSetting/teststandInfo/teststandInfo';/* 刀模信息 */
+import Employee from '@/routes/basicInfoSetting/employee/employee';/* 职员信息 */
+import Materiel from '@/routes/basicInfoSetting/materiel/materiel';/* 物料信息 */
+import PrintInfo from '@/routes/basicInfoSetting/printInfo/printInfo';/* 印件信息 */
+import SystemSetting from '@/routes/basicInfoSetting/systemSetting/systemSetting';/* 印件信息 */
+import SupplyInfo from '@/routes/basicInfoSetting/supplyInfo/supplyInfo';/* 权限分配 */
+import ProcessInfo from '@/routes/basicInfoSetting/processInfo/processInfo';/* 工序信息 */
+import CheckModel from '@/routes/basicInfoSetting/checkModel/checkModel';/* 审核模板 */
+import CheckPhase from '@/routes/basicInfoSetting/checkPhase/checkPhase';/* 审核阶段 */
+import SftLoginInfo from '@/routes/basicInfoSetting/sftLoginInfo/sftLoginInfo';/* 用户管理 */
+import Commonstyle from '@/routes/basicInfoSetting/commonStyle/commonStyle';/* 常用规格 */
+import ProductClassify from '@/routes/basicInfoSetting/productClassify/productClassify';/* 印件分类信息 */
+import CommonCheckBill from '@/routes/common/commonCheckBill';/* 通用预览单据页 */
+import WorkOrderNew from '@/routes/manufacture/workOrder/workOrder';/* 生产施工单 */
+import WorkOrderPack from '@/routes/manufacture/workOrderPack/workOrderPack';/* 包装施工单 */
+import WorkOrderPackTableTree from '@/routes/manufacture/workOrderPackTableTree/workOrderPackTableTree';/* 包装施工单 */
+import WorkOrderResearchTableTree from '@/routes/manufacture/workOrderResearchTableTree/workOrderResearchTableTree';/* 研发工单 */
+import ProcessCardInfo from '@/routes/manufacture/processCard/processCardInfo';
+import ProcessCardInfoPack from '@/routes/manufacture/processCardPack/processCardInfoPack';
+import ProcessCardPackTableTree from '@/routes/manufacture/processCardPackTableTree/processCardPackTableTree';
+import ProcessCardPackTableTreeNew from '@/routes/manufacture/processCardPackTableTreeNew/processCardPackTableTreeNew';
import styles from '@/index.less';
import { sendWebSocketMessage } from '@/components/Common/commonFunc';
import { isNotEmptyObject, isNotEmptyArr } from '@/utils/utils'; /* 通用方法 */
@@ -26,11 +55,40 @@ function Tab({ dispatch, app }) {
const bRecordFlagDisabled = (tagArr.length > 0 && pane.key !== tagLastKey);
const routeList = {
'/indexPage/commonList': ,
+ '/indexPage/commonListA': ,
'/indexPage/commonNewBill': ,
'/indexPage/commonBill' : ,
'/indexPage/commonListEdit' : ,
'/indexPage/commonClassify' : ,
- '/indexPage/eleknifemould' :
+ '/indexPage/eleknifemould' : ,
+ '/indexPage/elecustomer' : ,
+ '/indexPage/commonListTab' : ,
+ '/indexPage/commonColumnList' : ,
+ '/indexPage/commonListTree' : ,
+ '/indexPage/commonListLeft' : ,
+ '/indexPage/commonGatte': ,
+ '/indexPage/materialRequirementsPlanning' : ,
+ '/indexPage/eleteststand' : ,
+ '/indexPage/eleemployee' : ,
+ '/indexPage/elematerials' : ,
+ '/indexPage/eleproduct' : ,
+ '/indexPage/syssystemsettings' : ,
+ '/indexPage/elesupply' : ,
+ '/indexPage/eleprocess' : ,
+ '/indexPage/elecheckmodel' : ,
+ '/indexPage/sischeckphase' : ,
+ '/indexPage/sftlogininfo' : ,
+ '/indexPage/siscommonstyle' : ,
+ '/indexPage/sisproductclassify' : ,
+ '/indexPage/commonCheckBill' : ,
+ '/indexPage/workOrderNew' : ,
+ '/indexPage/workOrderPack' : ,
+ '/indexPage/workOrderPackTableTree' : ,
+ '/indexPage/workOrderResearchTableTree' : ,
+ '/indexPage/processCard' : ,
+ '/indexPage/processCardPack' : ,
+ '/indexPage/processCardPackTableTree' : ,
+ '/indexPage/processCardPackTableTreeNew' :
}
const content = routeList[pane.route] || ;
--
libgit2 0.22.2