loulijun2021
2023-06-06 3a9c0a33f8358cd81542994701436fbc99def3da
src/views/produceManager/productWarehouse.vue
@@ -19,6 +19,9 @@
          <div style="font-size: 14px;margin-left: 5px;color: #a7a7a7">
            查询项
          </div>
          <div v-if="!isPermission" style="font-size: 14px;margin-left: 10px;color: red">
            当前用户在ERP系统中不存在或未授权,无法入库提交
          </div>
        </div>
        <el-form
          ref="form"
@@ -29,14 +32,14 @@
        >
          <div class="elForm" style="display: flex;flex-direction: column">
            <div style="display: flex">
              <el-form-item label="单据类型" style=" display: flex;">
              <el-form-item label="单据类型" required style=" display: flex;">
                <el-select
                  v-model="form.documentType"
                  :popper-append-to-body="false"
                  filterable
                  style="width: 200px"
                  placeholder="请选择"
                  @change="getProductInHouseOrderSearch"
                  @change="documentTypeChange"
                >
                  <el-option
                    v-for="item in documentTypeArr"
@@ -46,19 +49,82 @@
                  />
                </el-select>
              </el-form-item>
              <el-form-item label="生产车间" required style=" display: flex;">
                <el-select
                  v-model="form.wkshopcode"
                  :popper-append-to-body="false"
                  filterable
                  style="width: 200px"
                  placeholder="请选择"
                  @change="wkshopcodeChange"
                >
                  <el-option
                    v-for="item in WorkShopArr"
                    :key="item.code"
                    :label="item.name"
                    :value="item.code"
                  />
                </el-select>
              </el-form-item>
              <el-form-item
                v-if="form.documentType==='Y'"
                label="生产订单"
                :required="form.documentType==='Y'"
                style="display: flex;"
              >
                <el-select
                  v-model="form.erpordercode"
                  :popper-append-to-body="false"
                  filterable
                  style="width: 200px"
                  placeholder="请选择"
                  @change="getProductInHouseOrderSearch"
                >
                  <el-option
                    v-for="item in erpordercodeArr"
                    :key="item.ordercode"
                    :label="item.ordercode"
                    :value="item.ordercode"
                  />
                </el-select>
                <!--                <el-input-->
                <!--                  v-model="form.erpordercode"-->
                <!--                  placeholder="请输入"-->
                <!--                  style="width: 200px"-->
                <!--                  @input="getProductInHouseOrderSearch"-->
                <!--                />-->
              </el-form-item>
              <el-form-item
                v-if="form.documentType==='N'"
                label="生产工单"
                :required="form.documentType==='N'"
                style=" display: flex;"
              >
                <el-input
                  v-model="form.erpordercode"
                  placeholder="请输入"
                <el-select
                  v-model="form.mesordercode"
                  :popper-append-to-body="false"
                  filterable
                  style="width: 200px"
                  @input="getProductInHouseOrderSearch"
                />
                  placeholder="请选择"
                  @change="getProductInHouseOrderSearch"
                >
                  <el-option
                    v-for="item in mesordercodeArr"
                    :key="item.ordercode"
                    :label="item.ordercode"
                    :value="item.ordercode"
                  />
                </el-select>
              </el-form-item>
              <el-form-item label="生产工单" style=" display: flex;">
              <el-form-item
                v-if="form.documentType==='Y'"
                label="生产工单"
                style=" display: flex;"
              >
                <el-input
                  v-model="form.mesordercode"
                  placeholder="请输入"
@@ -71,7 +137,12 @@
                label="销售订单"
                style="display: flex;"
              >
                <el-input v-model="form.saleOrderCode" placeholder="请输入" style="width: 200px" @input="getProductInHouseOrderSearch" />
                <el-input
                  v-model="form.saleOrderCode"
                  readonly
                  style="width: 200px"
                />
                <!--                disabled-->
              </el-form-item>
            </div>
@@ -106,8 +177,9 @@
          </div>
          <div
            class="bodySearchReset"
            :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
          >
            <!--            :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"-->
            <!--            <el-button v-waves type="primary" icon="el-icon-search" @click="search">查询</el-button>-->
            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
          </div>
@@ -134,27 +206,20 @@
              <el-date-picker
                v-model="form.lm_date"
                style="width: 200px"
                readonly
                type="date"
                placeholder="选择日期"
              />            </el-form-item>
            <el-form-item label="单据编号" style=" display: flex;">
              <el-input v-model="form.OrgName" placeholder="请输入" style="width: 200px" />
              />
            </el-form-item>
            <el-form-item label="生产车间" style=" display: flex;">
              <el-select
                v-model="form.WorkShop"
                :popper-append-to-body="false"
                filterable
            <el-form-item label="单据编号" style=" display: flex;">
              <el-input
                v-model="form.hbillno"
                readonly
                placeholder="请输入"
                style="width: 200px"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in WorkShopArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>            </el-form-item>
              />
            </el-form-item>
            <el-form-item label="入库仓库" style=" display: flex;">
              <el-select
                v-model="form.stockcode"
@@ -162,6 +227,7 @@
                filterable
                style="width: 200px"
                placeholder="请选择"
                @change="stockcodeChange"
              >
                <el-option
                  v-for="item in stockcodeArr"
@@ -173,8 +239,18 @@
            </el-form-item>
          </div>
          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
            <el-button v-waves type="primary" icon="el-icon-s-promotion" @click="search">入库提交</el-button>
          <div
            class="bodySearchReset"
            :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
          >
            <el-button
              v-waves
              type="primary"
              icon="el-icon-s-promotion"
              @click="submit"
            >入库提交
            </el-button>
            <!--            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button>-->
          </div>
        </el-form>
@@ -196,7 +272,7 @@
          <!--            @click=""-->
          <!--          >入库提交-->
          <!--          </el-button>-->
          <el-tabs style="margin-top: 10px;">
          <el-tabs style="margin-top: 10px;" @tab-click="tabClick">
            <el-tab-pane label="明细">
              <div class="elTableDiv" style="margin: 0 auto 10px;">
                <el-table
@@ -212,6 +288,8 @@
                  :header-cell-style="this.$headerCellStyle"
                  :cell-style="this.$cellStyle"
                  @selection-change="handleSelectionChange"
                  @cell-dblclick="cellDblclick"
                  @cell-click="cellClick"
                >
                  <el-table-column
                    type="selection"
@@ -226,13 +304,29 @@
                  />
                  <el-table-column
                    prop="stockname"
                    prop="stockcode"
                    label="仓库"
                    width="110"
                    width="160"
                    show-tooltip-when-overflow
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.stockname">{{ row.stockname }}</div>
                      <div v-else>/</div>
                      <div
                        v-if="!(row.index === tabClickIndex && tabClickLabel === '仓库')"
                      >
                        {{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }}
                      </div>
                      <el-select
                        v-if="row.index === tabClickIndex && tabClickLabel === '仓库'"
                        v-model="row.stockcode"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in stockcodeArr"
                          :key="item.code"
                          :label="item.name"
                          :value="item.code"
                        />
                      </el-select>
                    </template>
                  </el-table-column>
                  <el-table-column
@@ -277,7 +371,7 @@
                    show-tooltip-when-overflow
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.stockname">{{ row.stockname }}</div>
                      <div v-if="row.partspec">{{ row.partspec }}</div>
                      <div v-else>/</div>
                    </template>
                  </el-table-column>
@@ -318,10 +412,13 @@
                  <el-table-column
                    prop="stinhouseqty"
                    label="可入库数量"
                    min-width="95"
                    min-width="130"
                    fixed="right"
                    show-tooltip-when-overflow
                  />
                  >
                    <!--                    <template slot-scope="{row}">-->
                    <!--                      <el-input-number v-model="row.stinhouseqty" :min="0" :max="row.good_qty" size="small" />-->
                    <!--                    </template>-->
                  </el-table-column>
                </el-table>
                <el-table
                  v-show="form.documentType==='N'"
@@ -358,6 +455,7 @@
                      <div v-if="row.stockname">{{ row.stockname }}</div>
                      <div v-else>/</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="inbarcode"
@@ -449,7 +547,131 @@
                </el-table>
              </div>
            </el-tab-pane>
            <el-tab-pane label="汇总">汇总</el-tab-pane>
            <el-tab-pane label="汇总">
              <div class="elTableDiv" style="margin: 0 auto 10px;">
                <el-table
                  ref="tableDataRef"
                  class="tableFixed"
                  :data="tableDataSummary"
                  :height="(tableHeight-25)+'px'"
                  border
                  :row-class-name="tableRowClassName2"
                  :style="{width: 100+'%',height:(tableHeight-25)+'px',}"
                  highlight-current-row
                  :header-cell-style="this.$headerCellStyle"
                  :cell-style="this.$cellStyle"
                >
                  <el-table-column
                    type="index"
                    width="50"
                    fixed
                    label="序号"
                  />
                  <el-table-column
                    prop="stockcode"
                    label="仓库"
                    width="110"
                  >
                    <template slot-scope="{row}">
                      <div>{{ stockcodeArr.find(i => i.code === row.stockcode).name }}</div>
                    </template>
                  </el-table-column>
                  <!--                    <template slot-scope="{row}">-->
                  <!--                      <div v-if="row.stockname">{{ row.stockname }}</div>-->
                  <!--                      <div v-else>/</div>-->
                  <!--                    </template>-->
                  <!--                  </el-table-column>-->
                  <!--                  <el-table-column-->
                  <!--                    prop="inbarcode"-->
                  <!--                    label="入库条码"-->
                  <!--                    width="160"-->
                  <!--                    show-tooltip-when-overflow-->
                  <!--                  />-->
                  <!--                  <el-table-column-->
                  <!--                    prop="m_po"-->
                  <!--                    label="订单编号"-->
                  <!--                    width="160"-->
                  <!--                    show-tooltip-when-overflow-->
                  <!--                  >-->
                  <!--                    <template slot-scope="{row}">-->
                  <!--                      <div v-if="row.m_po">{{ row.m_po }}</div>-->
                  <!--                      <div v-else>/</div>-->
                  <!--                    </template>-->
                  <!--                  </el-table-column>-->
                  <!--                  <el-table-column-->
                  <!--                    prop="wo_code"-->
                  <!--                    label="工单编号"-->
                  <!--                    width="160"-->
                  <!--                    show-tooltip-when-overflow-->
                  <!--                  />-->
                  <el-table-column
                    prop="partcode"
                    label="产品编码"
                    min-width="160"
                    show-tooltip-when-overflow
                  />
                  <el-table-column
                    prop="partname"
                    label="产品名称"
                    min-width="160"
                    show-tooltip-when-overflow
                  />
                  <el-table-column
                    prop="partspec"
                    label="产品规格"
                    min-width="160"
                    show-tooltip-when-overflow
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.stockname">{{ row.stockname }}</div>
                      <div v-else>/</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="qty"
                    label="订单数量"
                    min-width="95"
                    show-tooltip-when-overflow
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.qty">{{ row.qty }}</div>
                      <div v-else>/</div>
                    </template>
                  </el-table-column>
                  <!--                  <el-table-column-->
                  <!--                    prop="plan_qty"-->
                  <!--                    label="工单数量"-->
                  <!--                    min-width="95"-->
                  <!--                    fixed="right"-->
                  <!--                    show-tooltip-when-overflow-->
                  <!--                  />-->
                  <el-table-column
                    prop="good_qty"
                    label="完工数量"
                    min-width="95"
                    show-tooltip-when-overflow
                  />
                  <el-table-column
                    prop="inhouseqty"
                    label="已入库数量"
                    min-width="95"
                    show-tooltip-when-overflow
                  />
                  <el-table-column
                    prop="stinhouseqty"
                    label="可入库数量"
                    min-width="95"
                    show-tooltip-when-overflow
                  />
                </el-table>
              </div>
            </el-tab-pane>
          </el-tabs>
        </div>
@@ -463,10 +685,20 @@
<script>
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
import { WareHouseSelect } from '@/api/materialManager'
import { ProductInHouseOrderSearch } from '@/api/produceManager'
import { handleDatetime } from '@/utils/global'
import { WorkShopSelect } from '@/api/deviceManager'
import {
  ProductInHouseOrderCodeSearch,
  ProductInHouseOrderSearch, ProductInHouseOrderSeave,
  ProductInHouseWkshopOrder
} from '@/api/produceManager'
import { getTPlusToken, handleDatetime, handleDatetime2 } from '@/utils/global'
import {
  ErpUserSelect,
  ErpWarehouseSelect,
  ErpWkshopDepartmentSelect
} from '@/api/basicInfo'
import { getCookie } from '@/utils/auth'
import Vue from 'vue'
import axios from 'axios'
export default {
  name: 'Zzjg',
@@ -477,8 +709,11 @@
      mainHeight: 0,
      tableHeight: 0,
      form: {
        hbillno: '', // 入库单号
        incbit: '', // 流水号
        documentType: 'Y', // 单据类型
        wkshopcode: '', // 生产车间
        erpordercode: '', // 订单编号
        mesordercode: '', // 工单编号
        partcode: '', // 产品编码
@@ -487,47 +722,101 @@
        orderdate: '', // 工单日期
        saleOrderCode: '', // 销售订单
        WorkShop: '', // 生产车间
        lm_date: '', // 单据日期
        stockcode: '', // 入库仓库
        xxx: ''
        lm_date: new Date(), // 单据日期
        stockcode: '' // 入库仓库
      },
      documentTypeArr: [
        { label: '有源单', value: 'Y' },
        { label: '无源单', value: 'N' }
      ],
      tableDataDetail: [],
      tableDataDetail: [], // 明细表
      multipleSelection: [],
      stockcodeArr: [], // 入库仓库数组
      WorkShopArr: [], // 生产车间数组
      erpordercodeArr: [], // 生产订单数组
      mesordercodeArr: [], // 生产工单数组
      xxx: ''
      tabClickIndex: null, // 点击的单元格
      tabClickLabel: '', // 当前点击的列名
      tableDataSummary: [], // 汇总表
      isPermission: true, // 是否有权限可提交
      userArr: [] // ERP人员数组
    }
  },
  watch: {},
  created() {
    this.handleRequest()
    this.getErpUserSelect()
  },
  mounted() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
    this.getWareHouseSelect()
    this.getWorkShopSelect()
    this.getProductInHouseOrderCodeSearch()
    // this.getProductInHouseOrderSearch()
  },
  methods: {
    handleRequest() {
      this.getProductInHouseOrderSearch().then(res => {
        if (res.code === '200') {
          this.getWareHouseSelect()
          this.getWorkShopSelect()
        }
      })
    async getProductInHouseOrderCodeSearch() {
      const { data: res } = await ProductInHouseOrderCodeSearch({ rightcode: '2064' })
      this.form.hbillno = res[0]
      this.form.incbit = res[1]
    },
    async  getProductInHouseOrderSearch() {
    async getErpUserSelect() {
      const { data: res } = await ErpUserSelect()
      this.userArr = res
      if (!res.map(i => i.name).includes(getCookie('username'))) {
        this.isPermission = false
        await this.$alert('当前用户在ERP系统中不存在或未授权,无法入库提交', '提示', {
          confirmButtonText: '确定'
          // callback: action => {
          //   this.$message({
          //     type: 'info',
          //     message: `action: ${action}`
          //   })
          // }
        })
      }
    },
    // 单据类型改变
    documentTypeChange(val) {
      this.form.erpordercode = ''
      this.form.wkshopcode = ''
    },
    // 生产车间改变
    async wkshopcodeChange(val) {
      this.form.erpordercode = ''
      this.form.mesordercode = ''
      this.form.saleOrderCode = ''
      const data = {
        ordertype: this.form.documentType,
        wkshopcode: val
      }
      const { data: res } = await ProductInHouseWkshopOrder(data)
      if (this.form.documentType === 'Y') {
        this.erpordercodeArr = res
      } else {
        this.mesordercodeArr = res
      }
    },
    async getProductInHouseOrderSearch() {
      let tempDate = this.form.orderdate
      if (tempDate.length > 0) {
        tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
      }
      const data = {
        wkshopcode: this.form.wkshopcode, // 生产车间
        erpordercode: this.form.erpordercode, // 订单编号
        mesordercode: this.form.mesordercode, // 工单编号
        partcode: this.form.partcode, // 产品编码
@@ -541,35 +830,330 @@
      // 根据原单做过滤
      this.tableDataDetail = res.data.filter(i => this.form.documentType === 'Y' ? i.m_po : !i.m_po)
      this.form.saleOrderCode = res.data[0].saleOrderCode
      this.$nextTick(() => {
        this.$refs.tableDataRef.doLayout()
      })
      return { code: res.code }
    },
    // 获取仓库接口
    async getWareHouseSelect() {
      const { data: res } = await WareHouseSelect()
      const { data: res } = await ErpWarehouseSelect()
      this.stockcodeArr = res
    },
    // 获取所属车间
    async getWorkShopSelect() {
      const { data: res } = await WorkShopSelect()
      const { data: res } = await ErpWkshopDepartmentSelect()
      this.WorkShopArr = res
    },
    // 重置
    reset() {
      this.form.OrgCode = ''
      this.form.OrgName = ''
      this.form.OrgType = ''
      this.form.UserName = ''
      this.getOrganizationSearch()
      this.form.wkshopcode = ''
      this.form.erpordercode = ''
      this.form.mesordercode = ''
      this.form.partcode = ''
      this.form.partname = ''
      this.form.partspec = ''
      this.form.orderdate = ''
      this.tableDataDetail = []
      this.tableDataSummary = []
      this.multipleSelection = []
    },
    // 表格单元格双击
    cellDblclick(row, column, cell, event) {
      switch (column.label) {
        case '仓库':
          this.tabClickIndex = row.index
          this.tabClickLabel = column.label
          break
        case '可入库数量':
          this.tabClickIndex = row.index
          this.tabClickLabel = column.label
          break
        // case '判责金额(元)':
        //   this.tabClickIndex = row.index
        //   this.tabClickLabel = column.label
        //   break
        default:
          return
      }
    },
    // 表格单击事件
    cellClick() {
      this.tabClickLabel = ''
    },
    // 入库仓库值改变
    stockcodeChange(val) {
      this.tableDataDetail.forEach(i => {
        i.stockcode = val
      })
    },
    // 多选选中
    handleSelectionChange(val) {
      this.multipleSelection = val
    },
    // tab点击
    tabClick(val) {
      // this.$nextTick(() => {
      //   this.$refs.tableDataRef.doLayout()
      // })
      const stockcodeArr = [...new Set(this.multipleSelection.map(i => i.stockcode))]// 数组去重
      // const partcodeArr = [...new Set(this.multipleSelection.map(i => i.partcode))]// 数组去重
      const newData = []
      const Array2D = []
      stockcodeArr.forEach(i => {
        Array2D.push(this.multipleSelection.filter(j => j.stockcode === i))
      })
      Array2D.forEach(k => {
        const partcodeArr = [...new Set(k.map(j => j.partcode))]
        partcodeArr.forEach(i => {
          const t = k.find(j => j.partcode === i)
          let sum = 0
          const good_qty = k.filter(j => j.partcode === i).map(j => parseFloat(j.good_qty)).reduce((pre, curr) => {
            sum = pre + curr
            return sum
          })
          sum = 0
          const inhouseqty = k.filter(j => j.partcode === i).map(j => parseFloat(j.inhouseqty)).reduce((pre, curr) => {
            sum = pre + curr
            return sum
          })
          sum = 0
          const stinhouseqty = k.filter(j => j.partcode === i).map(j => parseFloat(j.stinhouseqty)).reduce((pre, curr) => {
            sum = pre + curr
            return sum
          })
          newData.push(
            {
              stockcode: t.stockcode,
              partcode: t.partcode,
              partname: t.partname,
              partspec: t.partspec,
              qty: t.qty,
              good_qty,
              inhouseqty,
              stinhouseqty,
              unitid: t.unitid,
              unitname: t.unitname,
              sourceVoucherDetailId: t.sbid,
              saleOrderDetailId: t.saleOrderDetailId,
              ManufactureOrderDetailId: t.sbid,
              stck_id: this.stockcodeArr.find(i => i.code === t.stockcode).id,
              SourceVoucherDetailIdByMergedFlow: t.sbid,
              materiel_code: t.partcode,
              warehouse: t.stockcode,
              materiel_id: t.materiel_id
            }
          )
        })
      })
      // console.log(Array2D, 'Array2D')
      // console.log(newData, 'newData')
      // partcodeArr.forEach(i => {
      //   const t = this.multipleSelection.find(j => j.partcode === i)
      //   let sum = 0
      //   const good_qty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.good_qty)).reduce((pre, curr) => {
      //     sum = pre + curr
      //     return sum
      //   })
      //   sum = 0
      //   const inhouseqty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.inhouseqty)).reduce((pre, curr) => {
      //     sum = pre + curr
      //     return sum
      //   })
      //   sum = 0
      //   const stinhouseqty = this.multipleSelection.filter(j => j.partcode === i).map(j => parseFloat(j.stinhouseqty)).reduce((pre, curr) => {
      //     sum = pre + curr
      //     return sum
      //   })
      //   newData.push(
      //     {
      //       partcode: i,
      //       partname: t.partname,
      //       partspec: t.partspec,
      //       qty: t.qty,
      //       good_qty,
      //       inhouseqty,
      //       stinhouseqty
      //     }
      //   )
      // })
      this.tableDataSummary = newData.flat()
    },
    async  submit() {
      await this.tabClick()
      // const openToken = await getTPlusToken() // 获取TPlus   token
      const openToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJpc3YiLCJpc3MiOiJjaGFuamV0IiwidXNlcklkIjoiMzkwNTU0MDg2NTMwMjYxIiwib3JnSWQiOiIxMjM0OTc5MDE3MjIxMDM3IiwiYWNjZXNzX3Rva2VuIjoiYmstOGIwNDUxNzEtMDk5Yy00ODFlLTgyZDEtY2Q5NWQ2MjUzZGUwIiwiYXVkIjoiaXN2IiwibmJmIjoxNjg2MDQ3NTgyLCJhcHBJZCI6IjU4Iiwic2NvcGUiOiJhdXRoX2FsbCIsImlkIjoiNjA5Y2ZhYzItNzZmOC00NzJiLWI2NGEtMDg1NmRjMWZmYTg4IiwiZXhwIjoxNjg2NTY1OTgyLCJpYXQiOjE2ODYwNDc1ODIsIm9yZ0FjY291bnQiOiJ1dXhicGtzbTBibmgifQ.slZ_ix3DoGBX2WUX1TOiwe7jCEqDHf9Kc-Gn6cVCFZk'
      // 有源单
      const RDRecordDetails = []
      this.tableDataSummary.forEach((i, index) => {
        RDRecordDetails.push({
          Code: index + 1, // 行号,从1开始自增长
          SourceVoucherId: this.tableDataDetail[0].mpoid, // 来源单据的单据ID
          BaseQuantity: i.stinhouseqty, // 主计量单位数量
          SourceVoucherDetailId: i.sourceVoucherDetailId, // 来源单据的对应明细ID
          Inventory: {
            Code: i.materiel_code // 存货编码
          },
          IdSourceVoucherType: 69
        })
      })
      const data = {
        'dto': {
          'Warehouse': {
            'Code': '03'// 仓库编码
          },
          'Code': this.form.hbillno, // 单据编码
          'IsModifiedCode': true,
          'BusiType': {
            'Code': '03'// 业务类型编码
          },
          'Department': {
            'Code': this.form.wkshopcode// 部门编码
          },
          'VoucherDate': handleDatetime(new Date().getTime()), // 单据日期
          'RdStyle': {
            'Code': '21'// 出库类别编码
          },
          'RDRecordDetails': RDRecordDetails,
          'Clerk': {
            'Code': this.userArr.find(i => i.name === getCookie('username')).code // 业务员code
          },
          'ExternalCode': this.form.hbillno,
          'VoucherType': {
            'Code': 'ST1002'
          }
        }
      }
      const res = await axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/ProductReceiveOpenApi/Create',
        data, {
          headers: {
            'openToken': openToken,
            'appKey': Vue.prototype.$AppKey,
            'appSecret': Vue.prototype.$AppSecret,
            'Content-Type': 'application/json'
          }
        }
      )
      if (res.data.code === 0) {
        this.$message.success('入库成功!')
      // 再加一些入库成功之后的逻辑
      }
    },
    // 入库提交
    submit2() {
      this.tabClick()
      this.$confirm('是否确认提交?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        if (this.multipleSelection.length === 0) {
          return this.$message.error('未选择产品!')
        }
        if (this.multipleSelection.find(i => !i.stockcode)) {
          return this.$message.error('明细里面有产品未填写仓库!')
        }
        this.multipleSelection.forEach(i => {
          i.stockname = this.stockcodeArr.find(j => j.code === i.stockcode).name
          i.id = this.stockcodeArr.find(j => j.code === i.stockcode).id
        })
        const head = {
          rightcode: '2064',
          hbillno: this.form.hbillno,
          incbit: this.form.incbit,
          wkshpcode: this.form.wkshopcode,
          sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '',
          sourceVoucherCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code,
          saleOrderId: this.tableDataDetail[0].saleOrderid,
          saleOrderCode: this.tableDataDetail[0].saleOrderCode,
          rdDirectionFlag: 1,
          makerid: this.userArr.find(i => i.name === getCookie('username')).id,
          maker: getCookie('username'),
          accountingyear: new Date().getFullYear(),
          VoucherYear: new Date().getFullYear(),
          VoucherPeriod: new Date().getMonth() + 1,
          ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code,
          idbusitype: '03',
          iddepartment: this.WorkShopArr.find(i => i.code === this.form.wkshopcode).id,
          idrdstyle: 21,
          idwarehouse: '',
          voucherState: 181,
          idvouchertype: 15,
          voucherdate: handleDatetime(new Date().getTime()),
          madedate: handleDatetime(new Date().getTime()),
          createdtime: handleDatetime2(new Date().getTime()),
          DataSource: '56133',
          idsourcevouchertype: 69
        }
        const subsum = []
        this.tableDataSummary.forEach((i, index) => {
          subsum.push({
            code: index.toString().padStart(4, '0'),
            rownumber: index + 1,
            arrivalQuantity: i.qty,
            quantity: i.stinhouseqty,
            compositionQuantity: i.stinhouseqty + i.unitname,
            baseQuantity: i.stinhouseqty,
            sourceVoucherId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '',
            sourceVoucherCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code,
            sourceVoucherDetailId: i.sourceVoucherDetailId,
            idsourcevouchertype: 69,
            saleOrderId: this.tableDataDetail[0].saleOrderid,
            saleOrderCode: this.tableDataDetail[0].saleOrderCode,
            saleOrderDetailId: i.saleOrderDetailId,
            ManufactureOrderId: this.form.documentType === 'Y' ? this.tableDataDetail[0].mpoid : '',
            ManufactureOrderCode: this.form.documentType === 'Y' ? this.tableDataDetail[0].m_po : this.tableDataDetail[0].wo_code,
            ManufactureOrderDetailId: i.ManufactureOrderDetailId,
            idbusiTypeByMergedFlow: 3,
            idinventory: i.materiel_id,
            idbaseunit: i.unitid,
            idunit: i.unitid,
            idwarehouse: i.stck_id,
            SourceVoucherIdByMergedFlow: this.tableDataDetail[0].mpoid,
            SourceVoucherCodeByMergedFlow: this.tableDataDetail[0].m_po,
            SourceVoucherDetailIdByMergedFlow: i.SourceVoucherDetailIdByMergedFlow,
            idsourceVoucherTypeByMergedFlow: 69,
            createdtime: handleDatetime2(new Date().getTime()),
            DataSource: '56133',
            materiel_code: i.materiel_code,
            warehouse: i.warehouse
          })
        })
        const data = {
          head, sub: this.multipleSelection, subsum
        }
        ProductInHouseOrderSeave(data).then(res => {
          if (res.code === '200') {
            this.$message.success('入库提交成功!')
            this.getProductInHouseOrderCodeSearch()
            this.wkshopcodeChange(this.form.wkshopcode)
            this.tableDataDetail = []
            this.tableDataSummary = []
            this.multipleSelection = []
          }
        })
      })
    },
    // 获取页面高度
    getHeight() {
      this.$nextTick(() => {
@@ -579,6 +1163,11 @@
      })
    },
    tableRowClassName({ row, rowIndex }) {
      // 把每一行的索引放进row
      row.index = rowIndex
      return 'custom-row'
    },
    tableRowClassName2({ row, rowIndex }) {
      return 'custom-row'
    }
  }