瀏覽代碼

添加erp节点相关

hongxudong 1 年之前
父節點
當前提交
5dc1c77cb1

+ 2 - 0
src/api/pages/common/common.js

@@ -219,6 +219,8 @@ export default {
     getQciItem: 'get_qci_item_by_page',
     // 查询母模档案
     getMotherMoldByPage: 'get_mother_mold_by_page',
+    // 查询ERP节点
+    getErpNodeByPage: 'get_erp_node_by_page',
   },
 }
 

+ 2 - 2
src/api/pages/pdm-server/collect.js

@@ -48,9 +48,9 @@ export default {
     //通过条码或载具查询产品
     selectByCodeOrCarrier: '/get_product_by_code_or_carrier',
     //修改成型产品型号
-    updateProductModel:'update_product_model',
+    updateProductModel:'/update_product_model',
     //修改商标或釉色
-    updateLogoOrColour: 'update_logo_or_colour',
+    updateLogoOrColour: '/update_logo_or_colour',
   }
 }
 export const routeUrl = {

+ 11 - 5
src/components/business/process/node-modal/node-modal.vue

@@ -101,6 +101,11 @@
             <SelectPop ref="workShop" v-model="nodeData.workShop" label-key="spaceName" value-key="spaceId"
                        :multiple="false" :options="shopList"/>
           </DkFormItem>
+          <!--    erp节点    -->
+          <DkFormItem prop="erpNodeId" :data-type="$config.dataType.number" :label="$t('erpNode')" v-if="nodeData.nodeKind!=$config.nodeKind.shaping">
+            <SelectPop ref="erpNodeId" v-model="nodeData.erpNodeId" label-key="nodeCodeName" value-key="nodeId"
+                       :multiple="false" :options="erpNodeList"/>
+          </DkFormItem>
           <!--    备注    -->
           <DkFormItem prop="remarks" :span="24">
             <InputPop ref="remarks" v-model="nodeData.remarks"/>
@@ -174,10 +179,7 @@
                        @on-select="changeBackGradeIds" />
           </DkFormItem>
           <!--    入库仓库    -->
-          <DkFormItem prop="whId" :label="$t('whCodeName')" key="whId"
-                      v-if="nodeTypeList.filter(it=>it.dataValue=='入库').length && nodeData.nodeTypes && nodeData.nodeTypes.length &&
-                      nodeData.nodeTypes.includes(nodeTypeList.filter(it=>it.dataValue=='入库')[0].dataId)"
-                      :data-type="$config.dataType.array">
+          <DkFormItem prop="whId" :label="$t('whCodeName')" key="whId" :data-type="$config.dataType.array" v-if="nodeData.nodeKind!=$config.nodeKind.shaping">
             <SelectPop ref="whId" v-model="nodeData.whId" label-key="whName" value-key="whId"
                        :multiple="false" :options="whList" />
           </DkFormItem>
@@ -312,6 +314,10 @@ export default {
       type: Array,
       default: () => []
     },
+    erpNodeList: {
+      type: Array,
+      default: () => []
+    },
     dataKindList: {
       type: Array,
       default: () => []
@@ -1095,7 +1101,7 @@ export default {
      */
     validData() {
       if(!this.nodeData.nodeName||!this.nodeData.flowKind||!this.nodeData.userKind||!this.nodeData.opnKind||!this.nodeData.pieceKind
-        ||([this.$config.processType.dressKilnCar,this.$config.processType.exchangeKilnCar].includes(this.nodeData.opnKind)&&!this.nodeData.carKind)
+        ||!([this.$config.processType.dressKilnCar,this.$config.processType.exchangeKilnCar].includes(this.nodeData.opnKind)&&!this.nodeData.carKind)
       ||(this.nodeControl?.recycledKind?.visible&&!this.nodeData.recycledKind)||(this.nodeControl?.judgeGradeIds?.visible&&!this.nodeData.judgeGradeIds)) {
         this.currentTab='tab1'
         this.$nextTick(() => {

+ 2 - 2
src/locale/lang/zh-CN.js

@@ -1457,7 +1457,7 @@ export const columns = {
   planQty2: '计划数量',
   compQty: '已检数量',
   //erp节点
-  erpNode: 'erp节点',
+  erpNode: '生产节点',
   nodeCode: '节点编号',
   nodeName2: '节点名称',
   nodeType: '节点类别',
@@ -1555,7 +1555,7 @@ export const messages = {
   W_158: '未选择主体标识,请选择后重新操作',
   W_159: '每组分组-模具下至少选择一条主体标识',
   W_160: '未选择默认等级',
-  W_161: '所选明细商标、釉色不可重复',
+  W_161: '所选明细商标、釉色、生产节点不可重复',
   W_162: '当前存在产品型号为空的数据,请替换后重新操作',
   W_163: '当前存在重复明细数据,请替换或删除后重新操作',
   W_164: '优品不允许选择产品缺陷',

+ 52 - 3
src/view/core/system-setting/index.vue

@@ -79,7 +79,7 @@
                               :value="item.key" :label="item.value"></vxe-option>
                 </vxe-select>
                 <vxe-select transfer v-if="row.valueKind == 'M-CHOICE'" v-model="row.settingValue" multiple
-                            size="mini" @change="changeOption($event,row)" :disabled="!row.flgModifiable">
+                            size="mini" @change="changeOptionMulti($event,row)" :disabled="!row.flgModifiable">
                   <vxe-option v-for="item in row.valueFormat.items" :key="item.key"
                               :value="item.key" :label="item.value"></vxe-option>
                 </vxe-select>
@@ -171,6 +171,24 @@ export default {
         })
       }
     },
+    changeOptionMulti(e, row) {
+      console.log(e.value)
+      // 值是否发生变化
+      if (row.settingValueBack != row.settingValue) {
+        this.tableRightData.forEach(it => {
+          if (it.settingCode == row.settingCode) {
+            // valueChangeFlg为true值发生变化
+            // let arraySettingValue = it.valueFormat.items.filter(iv => e.value.some(s => s == iv.key))
+            // if (arraySettingValue && arraySettingValue.length > 0) {
+              // it.settingValue = arraySettingValue[0].value
+            // }
+            // 新增加的
+            it.settingValueKey = e.value
+            it['valueChangeFlg'] = true
+          }
+        })
+      }
+    },
     /**
      * @desc   : 开关值变化事件
      * @author : 寇珊珊
@@ -270,7 +288,7 @@ export default {
       let list = this.tableRightData?.copy();
       if (list && list.length > 0) {
         for (let i = 0; i < list.length; i++) {
-          if (list[i].valueChangeFlg && !(list[i].valueKind == 'BOOL' || list[i].valueKind == 'S-CHOICE') && !list[i].settingValue) {
+          if (list[i].valueChangeFlg && !(list[i].valueKind == 'BOOL' || list[i].valueKind == 'S-CHOICE' || list[i].valueKind == 'M-CHOICE') && !list[i].settingValue) {
             this.$Message.warning(this.$t('W_089', {'param1': (i + 1), 'param2': "参数值"}))
             return false;
           }
@@ -292,7 +310,7 @@ export default {
       if (list && list.length > 0) {
         let message = ''
         list.forEach(it => {
-          if (!(it.valueKind == 'BOOL' || it.valueKind == 'S-CHOICE') && (it.settingValue == '' || it.settingValue === undefined)) {
+          if (!(it.valueKind == 'BOOL' || it.valueKind == 'S-CHOICE' || it.valueKind == 'M-CHOICE') && (it.settingValue == '' || it.settingValue === undefined)) {
             message += this.$t('W_001', {'param': this.$t('settingValue')})
             return
           }
@@ -309,6 +327,12 @@ export default {
               settingValue: it.settingValueKey,//参数值
               ftyId: this.$store.state.user.ftyId,
             })
+          } else if (it.valueKind == 'M-CHOICE') {
+            params.push({
+              settingCode: it.settingCode,  //参数代码
+              settingValue: it.settingValueKey?JSON.stringify(it.settingValueKey):null,//参数值
+              ftyId: this.$store.state.user.ftyId,
+            })
           } else {
             params.push({
               settingCode: it.settingCode,   //参数代码
@@ -346,6 +370,12 @@ export default {
               settingValue: it.settingValueKey,//参数值
               ftyId: this.$store.state.user.ftyId,
             })
+          } else if (it.valueKind == 'M-CHOICE') {
+            params.push({
+              settingCode: it.settingCode,  //参数代码
+              settingValue: it.settingValueKey?JSON.stringify(it.settingValueKey):null,//参数值
+              ftyId: this.$store.state.user.ftyId,
+            })
           } else {
             params.push({
               settingCode: it.settingCode,   //参数代码
@@ -426,6 +456,25 @@ export default {
                 it.settingDefault = arraySettingDefault[0].value
               }
 
+            } else if (it.valueKind == 'M-CHOICE') {
+
+              //循环同步数据源key值类型 和系统参数、默认值 值类型
+              it.valueFormat.items.forEach(str => {
+                str.key = String(str.key);
+                str.value = str.name[this.$store.state.app.local_lan]
+              })
+              it.settingValue = JSON.parse(it.settingValue)
+              // 当前值
+              // let arraySettingValue = it.valueFormat.items.filter(iv => it.settingValue.some(s => s == iv.key))
+              // 默认值
+              // let arraySettingDefault = it.valueFormat.items.filter(iv => iv.key == it.settingDefault)
+              // if (arraySettingValue.length > 0) {
+              //   it.settingValue = arraySettingValue[0].value
+              // }
+              // if (arraySettingDefault.length > 0) {
+              //   it.settingDefault = arraySettingDefault[0].value
+              // }
+
             }
 
             // 判断是否值和原来的值发生变化

+ 0 - 2
src/view/mst/erp-node/index.vue

@@ -32,8 +32,6 @@
         ref="table-select" :pageSize="pageInfo.pageSize" :pageSizeOpts="pageSizeOpts"
         :data="tableData"
         :height="tableHeight-30"
-        :page-flag="false"
-        :page-total-flag="false"
         :show-setting-flag="false"
         :freeze="false"
         :choose-flag="false"

+ 32 - 1
src/view/mst/model-product/form.vue

@@ -174,6 +174,7 @@ export default {
       ProductLabelList: [],   //产品验证标签list
       modelKindBomList: [],   //子件类型
       bomModelList: [],       //子件型号
+      erpNodeList: [],       //erp节点
       tableColumn: [],
       //产品erp型号
       editTableErpColumn: [
@@ -218,6 +219,15 @@ export default {
           fieldUpdate: self.$updateColumns.modelMould,
           searchDetailFlag: true
         },
+        {
+          field: 'erpNodeId',
+          title: self.$t('erpNode'),
+          type: 'select',
+          options: () => self.erpNodeList,
+          labelKey: 'nodeCodeName',
+          valueKey: 'nodeId',
+          width: 'auto'
+        },
         //默认标识
         {
           field: 'flgDefault',
@@ -421,6 +431,21 @@ export default {
       window.location.href = '#' + name
     },
     /**
+     * @desc   : 获取产品商标
+     * @author : 夏常明
+     * @date   : 2023/2/3 10:33
+     */
+    getErpNode() {
+      let params = {
+        ftyId: this.$store.state.user.ftyId,
+      }
+      this.excute(this.$service.commonService, this.$service.commonService.getErpNodeByPage, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.erpNodeList = res.data
+        }
+      })
+    },
+    /**
      * @desc   : 获取bom子件类型
      * @author : 夏常明
      * @date   : 2023/2/28 15:24
@@ -595,6 +620,11 @@ export default {
             this.$Message.warning('产品erp型号:' + this.$t('W_089', {'param1': (i + 1), 'param2': "釉色"}) + ';')
             return false;
           }
+          //erp节点
+          if (!this.formData.erpList[i].erpNodeId) {
+            this.$Message.warning('产品erp型号:' + this.$t('W_089', {'param1': (i + 1), 'param2': this.$t('erpNode')}) + ';')
+            return false;
+          }
 
           //todo 暂时注释 以后可能会有改动 2023年4月21日15:40:18
           //erpModelCode erp物料编码   商标釉色都有时物料编码为必输(2023年4月21日15:39:12)
@@ -630,7 +660,7 @@ export default {
           return false
         }
         //校验重复
-        if (this.formData.erpList.map(m => m.logoId + '-' + m.colourId).unique().length != this.formData.erpList.length) {
+        if (this.formData.erpList.map(m => m.logoId + '-' + m.colourId + '-' + m.erpNodeId).unique().length != this.formData.erpList.length) {
           this.$Message.warning(this.$t('W_161'))
           return false
         }
@@ -798,6 +828,7 @@ export default {
     this.getProductLabel()  // 获取产品验证标签
     this.getBomModelKind()  // 获取子件类型
     this.getBomModel()      // 获取子件型号
+    this.getErpNode() // 获取erp节点
     this.preMaryKey = 'modelId'; //主键id
   }
 }

+ 1 - 0
src/view/mst/model-product/index.vue

@@ -78,6 +78,7 @@
             <DkTableColumn field="logoName"></DkTableColumn>
             <DkTableColumn field="colourName"></DkTableColumn>
             <DkTableColumn field="erpSkuCode" :title="$t('erpSkuId')"></DkTableColumn>
+            <DkTableColumn field="erpNodeCodeName" :title="$t('erpNode')"></DkTableColumn>
             <DkTableColumn field="flgDefault" type="switch"></DkTableColumn>
             <DkTableColumn v-for="(item, index) of kindColumn" :key="index" :field="item.kindCode" :title="item.kindName"></DkTableColumn>
             <DkTableColumn field="remarks" width="auto"></DkTableColumn>

+ 1 - 1
src/view/pdm/molding-record/form.vue

@@ -202,7 +202,7 @@ export default {
       addItemColumns: ['pdtColourId', 'pdtLogoId', 'erpSkuId', 'flgMolding', 'unmoldedReasonId', 'flgScrap', 'flowNodeId', 'ftyId', 'groupId', 'groupItemQty', 'groupNo', 'itemCode', 'itemId'
         , 'itemKind', 'itemNo', 'moldingBatch', 'moldingDate', 'manageUser', 'modelCode', 'modelId', 'moldingUser', 'moldingUsers', 'moldlineGroupQty', 'lastMoldingBatch'
         , 'moldlineItemId', 'moldlineItemQty', 'itemCode', 'mouldId', 'mouldPdtTags', 'outputMoldedNum', 'outputNo', 'outputQty', 'pdtGlueKind', 'repPdtModelList'
-        , 'scrapDate', 'stationId', 'uniqueCode', 'uniqueId', 'userBindKind', 'remarks', 'moldlineTags'],
+        , 'scrapDate', 'stationId', 'uniqueCode', 'uniqueId', 'userBindKind', 'remarks', 'moldlineTags', 'flgMainpart'],
       editItemColumns: ['itemId', 'moldingId', 'flgScrap', 'scrapReasonId', 'remarks', 'flgMolding', 'unmoldedReasonId', 'pdtColourId', 'pdtLogoId', 'erpSkuId'],
       // 成型记录明细列表--新建
       moldingRecordColumns: [

+ 10 - 0
src/view/process/process-flow/process-setting.vue

@@ -180,6 +180,7 @@
                  :shopList="shopList"
                  :kilnList="kilnList"
                  :whList="whList"
+                 :erpNodeList="erpNodeList"
                  :dictionaryDataList="dictionaryDataList"/>
       <!--  连线弹窗  -->
       <EdgeModal key="edge" v-if="process.edgeModal.display"
@@ -227,6 +228,7 @@ export default {
       shopList:[],//车间
       kilnList:[],//窑炉
       whList:[],//仓库
+      erpNodeList: [],//erp节点
       leftMouseContent:'点击切换左键移动画布',
       leftMouseIcon:'md-crop',
       //条件label样式
@@ -413,6 +415,14 @@ export default {
           this.whList = res.data.list
         }
       })
+      //erp节点
+      this.excute(this.$service.commonService, this.$service.commonService.getErpNodeByPage, {
+        ftyId: this.$store.state.user.ftyId,
+      }).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.erpNodeList = res.data
+        }
+      })
     },
     clearMiniMap(){
       document.getElementsByClassName('x6-widget-minimap')?.[0]?.remove()