From 3a9c0a33f8358cd81542994701436fbc99def3da Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 06 六月 2023 19:02:54 +0800
Subject: [PATCH] 1.生产入库调用畅捷通接口入库

---
 src/views/produceManager/productWarehouse.vue |  259 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 178 insertions(+), 81 deletions(-)

diff --git a/src/views/produceManager/productWarehouse.vue b/src/views/produceManager/productWarehouse.vue
index 6de1dca..b5a692f 100644
--- a/src/views/produceManager/productWarehouse.vue
+++ b/src/views/produceManager/productWarehouse.vue
@@ -206,12 +206,18 @@
               <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-input
+                v-model="form.hbillno"
+                readonly
+                placeholder="璇疯緭鍏�"
+                style="width: 200px"
+              />
             </el-form-item>
 
             <el-form-item label="鍏ュ簱浠撳簱" style=" display: flex;">
@@ -237,7 +243,14 @@
             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="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>
@@ -560,7 +573,7 @@
                     width="110"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ stockcodeArr.find(i=>i.code===row.stockcode).name }}</div>
+                      <div>{{ stockcodeArr.find(i => i.code === row.stockcode).name }}</div>
                     </template>
                   </el-table-column>
                   <!--                    <template slot-scope="{row}">-->
@@ -677,9 +690,15 @@
   ProductInHouseOrderSearch, ProductInHouseOrderSeave,
   ProductInHouseWkshopOrder
 } from '@/api/produceManager'
-import { handleDatetime, handleDatetime2 } from '@/utils/global'
-import { ErpUserSelect, ErpWarehouseSelect, ErpWkshopDepartmentSelect } from '@/api/basicInfo'
+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',
@@ -703,7 +722,7 @@
         orderdate: '', // 宸ュ崟鏃ユ湡
 
         saleOrderCode: '', // 閿�鍞鍗�
-        lm_date: '', // 鍗曟嵁鏃ユ湡
+        lm_date: new Date(), // 鍗曟嵁鏃ユ湡
         stockcode: '' // 鍏ュ簱浠撳簱
 
       },
@@ -839,6 +858,8 @@
       this.form.orderdate = ''
 
       this.tableDataDetail = []
+      this.tableDataSummary = []
+      this.multipleSelection = []
     },
 
     // 琛ㄦ牸鍗曞厓鏍煎弻鍑�
@@ -971,92 +992,168 @@
       this.tableDataSummary = newData.flat()
     },
 
-    // 鍏ュ簱鎻愪氦
     async  submit() {
       await this.tabClick()
-      if (this.multipleSelection.find(i => !i.stockcode)) {
-        return this.$message('鏄庣粏閲岄潰鏈変骇鍝佹湭濉啓浠撳簱锛�')
-      }
-      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 openToken = await getTPlusToken() // 鑾峰彇TPlus   token
+      const openToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJpc3YiLCJpc3MiOiJjaGFuamV0IiwidXNlcklkIjoiMzkwNTU0MDg2NTMwMjYxIiwib3JnSWQiOiIxMjM0OTc5MDE3MjIxMDM3IiwiYWNjZXNzX3Rva2VuIjoiYmstOGIwNDUxNzEtMDk5Yy00ODFlLTgyZDEtY2Q5NWQ2MjUzZGUwIiwiYXVkIjoiaXN2IiwibmJmIjoxNjg2MDQ3NTgyLCJhcHBJZCI6IjU4Iiwic2NvcGUiOiJhdXRoX2FsbCIsImlkIjoiNjA5Y2ZhYzItNzZmOC00NzJiLWI2NGEtMDg1NmRjMWZmYTg4IiwiZXhwIjoxNjg2NTY1OTgyLCJpYXQiOjE2ODYwNDc1ODIsIm9yZ0FjY291bnQiOiJ1dXhicGtzbTBibmgifQ.slZ_ix3DoGBX2WUX1TOiwe7jCEqDHf9Kc-Gn6cVCFZk'
 
-      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 = []
+      // 鏈夋簮鍗�
+      const RDRecordDetails = []
       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
+        RDRecordDetails.push({
+          Code: index + 1, // 琛屽彿锛屼粠1寮�濮嬭嚜澧為暱
+          SourceVoucherId: this.tableDataDetail[0].mpoid, // 鏉ユ簮鍗曟嵁鐨勫崟鎹甀D
+          BaseQuantity: i.stinhouseqty, // 涓昏閲忓崟浣嶆暟閲�
+          SourceVoucherDetailId: i.sourceVoucherDetailId, // 鏉ユ簮鍗曟嵁鐨勫搴旀槑缁咺D
+          Inventory: {
+            Code: i.materiel_code // 瀛樿揣缂栫爜
+          },
+          IdSourceVoucherType: 69
         })
       })
 
       const data = {
-        head, sub: this.multipleSelection, subsum
+        '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 // 涓氬姟鍛榗ode
+          },
+          'ExternalCode': this.form.hbillno,
+          'VoucherType': {
+            'Code': 'ST1002'
+          }
+        }
       }
-
-      // console.log(JSON.stringify(data))
-
-      const res = await ProductInHouseOrderSeave(data)
-      if (res.code === '200') {
-        this.$message.success('鍏ュ簱鎻愪氦鎴愬姛锛�')
+      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(() => {

--
Gitblit v1.9.3