| | |
| | | <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" |
| | |
| | | > |
| | | <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" |
| | |
| | | /> |
| | | </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="请输入" |
| | |
| | | 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> |
| | | |
| | |
| | | </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> |
| | |
| | | style="width: 200px" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | /> </el-form-item> |
| | | /> |
| | | </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 |
| | | 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 label="入库仓库" style=" display: flex;"> |
| | | <el-select |
| | | v-model="form.stockcode" |
| | |
| | | filterable |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | @change="stockcodeChange" |
| | | > |
| | | <el-option |
| | | v-for="item in stockcodeArr" |
| | |
| | | </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> |
| | |
| | | <!-- @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 |
| | |
| | | :header-cell-style="this.$headerCellStyle" |
| | | :cell-style="this.$cellStyle" |
| | | @selection-change="handleSelectionChange" |
| | | @cell-dblclick="cellDblclick" |
| | | @cell-click="cellClick" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | |
| | | /> |
| | | |
| | | <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 |
| | |
| | | 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> |
| | |
| | | <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'" |
| | |
| | | <div v-if="row.stockname">{{ row.stockname }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="inbarcode" |
| | |
| | | </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> |
| | | |
| | |
| | | <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 { handleDatetime, handleDatetime2 } from '@/utils/global' |
| | | import { ErpUserSelect, ErpWarehouseSelect, ErpWkshopDepartmentSelect } from '@/api/basicInfo' |
| | | import { getCookie } from '@/utils/auth' |
| | | |
| | | export default { |
| | | name: 'Zzjg', |
| | |
| | | mainHeight: 0, |
| | | tableHeight: 0, |
| | | form: { |
| | | hbillno: '', // 入库单号 |
| | | incbit: '', // 流水号 |
| | | documentType: 'Y', // 单据类型 |
| | | |
| | | erpordercode: '', // 订单编号 |
| | | wkshopcode: 'CJ001', // 生产车间 |
| | | erpordercode: 'MO-2023-05-0007', // 订单编号 |
| | | mesordercode: '', // 工单编号 |
| | | partcode: '', // 产品编码 |
| | | partname: '', // 产品名称 |
| | |
| | | orderdate: '', // 工单日期 |
| | | |
| | | saleOrderCode: '', // 销售订单 |
| | | WorkShop: '', // 生产车间 |
| | | lm_date: '', // 单据日期 |
| | | stockcode: '', // 入库仓库 |
| | | xxx: '' |
| | | 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, // 产品编码 |
| | |
| | | // 根据原单做过滤 |
| | | 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 = [] |
| | | }, |
| | | |
| | | // 表格单元格双击 |
| | | 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.sourceVoucherDetailId, |
| | | saleOrderDetailId: t.saleOrderDetailId, |
| | | ManufactureOrderDetailId: t.ManufactureOrderDetailId, |
| | | stck_id: this.stockcodeArr.find(i => i.code === t.stockcode).id, |
| | | SourceVoucherDetailIdByMergedFlow: t.sbid, |
| | | materiel_code: t.partcode, |
| | | warehouse: t.warehouse, |
| | | 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() |
| | | 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 = { |
| | | hbillno: this.form.hbillno, |
| | | incbit: this.form.incbit, |
| | | 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: handleDatetime(new Date().getTime()), |
| | | idvouchertype: 15, |
| | | voucherdate: handleDatetime(new Date().getTime()), |
| | | madedate: handleDatetime(new Date().getTime()), |
| | | createdtime: handleDatetime2(new Date().getTime()), |
| | | DataSource: '56133' |
| | | } |
| | | |
| | | 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, |
| | | 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 |
| | | } |
| | | |
| | | console.log(JSON.stringify(data)) |
| | | |
| | | const res = await ProductInHouseOrderSeave(data) |
| | | if (res.code === '200') { |
| | | this.$message.success('入库提交成功!') |
| | | } |
| | | }, |
| | | // 获取页面高度 |
| | | getHeight() { |
| | | this.$nextTick(() => { |
| | |
| | | }) |
| | | }, |
| | | tableRowClassName({ row, rowIndex }) { |
| | | // 把每一行的索引放进row |
| | | row.index = rowIndex |
| | | return 'custom-row' |
| | | }, |
| | | tableRowClassName2({ row, rowIndex }) { |
| | | return 'custom-row' |
| | | } |
| | | } |