loulijun2021
2023-06-07 a93255e0a0334b51ecbaf3d8f496ad0fae1ed747
src/views/produceManager/productWarehouse.vue
@@ -220,7 +220,7 @@
              />
            </el-form-item>
            <el-form-item label="入库仓库" style=" display: flex;">
            <el-form-item label="入库仓库" required style=" display: flex;">
              <el-select
                v-model="form.stockcode"
                :popper-append-to-body="false"
@@ -247,7 +247,7 @@
              v-waves
              type="primary"
              icon="el-icon-s-promotion"
              :disabled="$store.state.app.buttonIsDisabled"
              @click="submit"
            >入库提交
            </el-button>
@@ -303,32 +303,33 @@
                    label="序号"
                  />
                  <el-table-column
                    prop="stockcode"
                    label="仓库"
                    width="160"
                    show-tooltip-when-overflow
                  >
                    <template slot-scope="{row}">
                      <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-->
                  <!--                    prop="stockcode"-->
                  <!--                    label="仓库"-->
                  <!--                    width="160"-->
                  <!--                    show-tooltip-when-overflow-->
                  <!--                  >-->
                  <!--                    <template slot-scope="{row}">-->
                  <!--                      <div>{{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }}</div>-->
                  <!--                      &lt;!&ndash;                      <div&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                        v-if="!(row.index === tabClickIndex && tabClickLabel === '仓库')"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                      >&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                        {{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }}&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                      </div>&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                      <el-select&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                        v-if="row.index === tabClickIndex && tabClickLabel === '仓库'"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                        v-model="row.stockcode"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                        placeholder="请选择"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                      >&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                        <el-option&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                          v-for="item in stockcodeArr"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                          :key="item.code"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                          :label="item.name"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                          :value="item.code"&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                        />&ndash;&gt;-->
                  <!--                      &lt;!&ndash;                      </el-select>&ndash;&gt;-->
                  <!--                    </template>-->
                  <!--                  </el-table-column>-->
                  <el-table-column
                    prop="inbarcode"
                    label="入库条码"
@@ -993,11 +994,20 @@
    },
    async  submit() {
      if (!this.form.stockcode) {
        return this.$message.error('入库仓库不能为空!')
      }
      if (this.multipleSelection.length === 0) {
        return this.$message.error('未选择产品!')
      }
      await this.tabClick()
      // const openToken = await getTPlusToken() // 获取TPlus   token
      const openToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJpc3YiLCJpc3MiOiJjaGFuamV0IiwidXNlcklkIjoiMzkwNTU0MDg2NTMwMjYxIiwib3JnSWQiOiIxMjM0OTc5MDE3MjIxMDM3IiwiYWNjZXNzX3Rva2VuIjoiYmstOGIwNDUxNzEtMDk5Yy00ODFlLTgyZDEtY2Q5NWQ2MjUzZGUwIiwiYXVkIjoiaXN2IiwibmJmIjoxNjg2MDQ3NTgyLCJhcHBJZCI6IjU4Iiwic2NvcGUiOiJhdXRoX2FsbCIsImlkIjoiNjA5Y2ZhYzItNzZmOC00NzJiLWI2NGEtMDg1NmRjMWZmYTg4IiwiZXhwIjoxNjg2NTY1OTgyLCJpYXQiOjE2ODYwNDc1ODIsIm9yZ0FjY291bnQiOiJ1dXhicGtzbTBibmgifQ.slZ_ix3DoGBX2WUX1TOiwe7jCEqDHf9Kc-Gn6cVCFZk'
      const openToken = await getTPlusToken() // 获取TPlus   token
      // const openToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJpc3YiLCJpc3MiOiJjaGFuamV0IiwidXNlcklkIjoiMzkwNTU0MDg2NTMwMjYxIiwib3JnSWQiOiIxMjM0OTc5MDE3MjIxMDM3IiwiYWNjZXNzX3Rva2VuIjoiYmstOGIwNDUxNzEtMDk5Yy00ODFlLTgyZDEtY2Q5NWQ2MjUzZGUwIiwiYXVkIjoiaXN2IiwibmJmIjoxNjg2MDQ3NTgyLCJhcHBJZCI6IjU4Iiwic2NvcGUiOiJhdXRoX2FsbCIsImlkIjoiNjA5Y2ZhYzItNzZmOC00NzJiLWI2NGEtMDg1NmRjMWZmYTg4IiwiZXhwIjoxNjg2NTY1OTgyLCJpYXQiOjE2ODYwNDc1ODIsIm9yZ0FjY291bnQiOiJ1dXhicGtzbTBibmgifQ.slZ_ix3DoGBX2WUX1TOiwe7jCEqDHf9Kc-Gn6cVCFZk'
      this.$store.state.app.buttonIsDisabled = true
      // 有源单
      if (this.form.documentType === 'Y') {
      const RDRecordDetails = []
      this.tableDataSummary.forEach((i, index) => {
        RDRecordDetails.push({
@@ -1011,11 +1021,10 @@
          IdSourceVoucherType: 69
        })
      })
      const data = {
        'dto': {
          'Warehouse': {
            'Code': '03'// 仓库编码
              'Code': this.form.stockcode// 仓库编码
          },
          'Code': this.form.hbillno, // 单据编码
          'IsModifiedCode': true,
@@ -1030,9 +1039,11 @@
            'Code': '21'// 出库类别编码
          },
          'RDRecordDetails': RDRecordDetails,
          'Clerk': {
            'Code': this.userArr.find(i => i.name === getCookie('username')).code // 业务员code
          },
            // 'Clerk': {
            //   'Code': this.userArr.find(i => i.name === getCookie('username')).code // 业务员code
            //   // 'Code': '001' // 业务员code
            //   // 'Name': getCookie('username')
            // },
          'ExternalCode': this.form.hbillno,
          'VoucherType': {
            'Code': 'ST1002'
@@ -1050,8 +1061,155 @@
        }
      )
      if (res.data.code === 0) {
          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
          }
          const r1 = await ProductInHouseOrderSeave(data)
          if (r1.code === '200') {
        this.$message.success('入库成功!')
      // 再加一些入库成功之后的逻辑
            this.$store.state.app.buttonIsDisabled = false
            await this.getProductInHouseOrderCodeSearch()
            await this.wkshopcodeChange(this.form.wkshopcode)
            this.tableDataDetail = []
            this.tableDataSummary = []
            this.multipleSelection = []
            this.form.stockcode = ''
          }
        } else {
          this.$message.error('入库失败!')
          this.$store.state.app.buttonIsDisabled = false
        }
      }
      // 无源单
      if (this.form.documentType === 'N') {
        const RDRecordDetails = []
        this.tableDataSummary.forEach((i, index) => {
          RDRecordDetails.push({
            Code: index + 1, // 行号,从1开始自增长
            Inventory: {
              Code: i.materiel_code // 存货编码
            },
            BaseQuantity: i.stinhouseqty, // 主计量单位数量
            SNObject: {
              SnAccountDetails: [
                {
                  SNCode: index.toString().padStart(4, '0')
                }
              ]
            }
          })
        })
        const data = {
          'dto': {
            'IsModifiedCode': true,
            'ExternalCode': this.form.hbillno,
            'Code': this.form.hbillno,
            'VoucherType': {
              'Code': 'ST1002'
            },
            'VoucherDate': handleDatetime(new Date().getTime()),
            'BusiType': {
              'Code': '03'
            },
            'Warehouse': {
              'Code': this.form.stockcode
            },
            'Department': {
              'Code': this.form.wkshopcode,
              'Name': this.WorkShopArr.find(i => i.code === this.form.wkshopcode).name
            },
            'RDRecordDetails': RDRecordDetails
          }
        }
        const res = await axios.post(Vue.prototype.$chanjetBaseUrl + '/tplus/api/v2/productReceive/Create',
          data, {
            headers: {
              'openToken': openToken,
              'appKey': Vue.prototype.$AppKey,
              'appSecret': Vue.prototype.$AppSecret,
              'Content-Type': 'application/json'
            }
          }
        )
        if (res.data === null) {
          this.$message.success('入库成功!')
          this.$store.state.app.buttonIsDisabled = false
        } else {
          this.$message.error('入库失败!')
          this.$store.state.app.buttonIsDisabled = false
        }
      }
    },
    // 入库提交