2026.3.19 晚

缓存出库确认后台
This commit is contained in:
1009473166@qq.com
2026-04-27 15:58:34 +08:00
parent 3729d0df5f
commit 52ce9135da
20 changed files with 320 additions and 162 deletions

View File

@@ -62,7 +62,7 @@ export function getOutStockoutDetail(query) {
export function autoAllot(data) {
return request({
url: '/out/outStockout/autoAllot',
method: 'get',
method: 'post',
params: data
})
}

View File

@@ -21,32 +21,32 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="单据来源" prop="stockSource">&lt;!&ndash;单据来源&ndash;&gt;-->
<!-- <el-select v-model="queryParams.stockSource" placeholder="请选择单据来源" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.bill_resource"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="单据来源" prop="stockSource">&lt;!&ndash;单据来源&ndash;&gt;-->
<!-- <el-select v-model="queryParams.stockSource" placeholder="请选择单据来源" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.bill_resource"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="项目号" prop="departmentNo">
<el-input
v-model="queryParams.departmentNo"
placeholder="请输入项目号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="合同号" prop="spare1">-->
<!-- <el-input-->
<!-- v-model="queryParams.spare1"-->
<!-- placeholder="请输入合同号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-input
v-model="queryParams.departmentNo"
placeholder="请输入项目号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="合同号" prop="spare1">-->
<!-- <el-input-->
<!-- v-model="queryParams.spare1"-->
<!-- placeholder="请输入合同号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="erp单据号" prop="erpBill">
<el-input
v-model="queryParams.erpBill"
@@ -73,14 +73,14 @@
/>
</el-form-item>
<!-- <el-form-item label="批次号" prop="lotNo">&lt;!&ndash;品名&ndash;&gt;-->
<!-- <el-input-->
<!-- v-model="queryParams.lotNo"-->
<!-- placeholder="请输入批次号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="组件号" prop="cargoNo"><!--品名-->
<el-input
v-model="queryParams.cargoNo"
placeholder="请输入组件号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="'单据时间'" prop="dateRange">
<el-date-picker
@@ -160,18 +160,18 @@
>单据确认<!--单据确认-->
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-download"
size="mini"
:disabled="detailMultiple"
@click="handleBarcodePrinting"
v-hasPermi="['in:stockIn:barcodePrinting']"
>打印条码<!--打印条码-->
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-download"
size="mini"
:disabled="detailMultiple"
@click="handleBarcodePrinting"
v-hasPermi="['in:stockIn:barcodePrinting']"
>打印条码<!--打印条码-->
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@@ -202,12 +202,12 @@
<el-table-column label="制单人" align="left" prop="createManId" width="140"/><!--创建人-->
<el-table-column label="项目号" align="left" prop="departmentNo" width="140"/><!--部门-->
<el-table-column label="单据时间" align="left" prop="createDate" width="160" sortable/><!--建立时间-->
<el-table-column label="确认时间" align="left" prop="finishDate" width="160" sortable/><!--完成日期-->
<el-table-column label="确认时间" align="left" prop="finishDate" width="160" sortable/><!--完成日期-->
<el-table-column label="合同号" align="left" prop="spare1" width="140" sortable/><!--完成日期-->
<el-table-column label="销售单号" align="left" prop="spare2" width="140" sortable/><!--完成日期-->
<el-table-column label="审核时间" align="left" prop="spare3" width="160" sortable/><!--完成日期-->
<el-table-column label="审核人" align="left" prop="spare4" /><!--完成日期-->
<el-table-column label="备注" align="left" prop="spare5" /><!--完成日期-->
<el-table-column label="审核人" align="left" prop="spare4"/><!--完成日期-->
<el-table-column label="备注" align="left" prop="spare5"/><!--完成日期-->
</el-table>
<pagination
@@ -220,23 +220,24 @@
<el-table v-loading="detailLoading" :data="stockInDetailList" @selection-change="handleDetailSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="子单ID" align="left" prop="stockinDetailId" width="160" /><!--子单ID-->
<el-table-column label="子单ID" align="left" prop="stockinDetailId" width="160"/><!--子单ID-->
<el-table-column label="主单ID" align="left" prop="stockinId" width="160"/><!--主单ID-->
<el-table-column label="存货编码" align="left" prop="productId" /><!--品号-->
<el-table-column label="存货编码" align="left" prop="productId"/><!--品号-->
<el-table-column label="存货名称" align="left" prop="productName" width="160"/><!--品号-->
<el-table-column label="批号" align="left" prop="lotNo" /><!--批号-->
<el-table-column label="批号" align="left" prop="lotNo"/><!--批号-->
<el-table-column label="单位" align="left" prop="unit"/><!--机型-->
<el-table-column label="规格型号" align="left" prop="spec"/><!--规格-->
<el-table-column label="层级关系" align="left" prop="spare1"/><!--型号-->
<el-table-column label="上层物料" align="left" prop="spare2"/><!--净重-->
<el-table-column label="顶层物料" align="left" prop="spare3"/><!--颜色-->
<el-table-column label="计划数量" align="left" prop="quantity" /><!--计划数量-->
<el-table-column label="扫码数量" align="left" prop="scanNum" /><!--扫码数量-->
<el-table-column label="实际数量" align="left" prop="assignNum" /><!--实际数量-->
<el-table-column label="货位号" align="left" prop="assignNum" /><!--实际数量-->
<el-table-column label="托盘号" align="left" prop="assignNum" /><!--实际数量-->
<el-table-column label="条码号" align="left" prop="assignNum" /><!--实际数量-->
<el-table-column label="采购订单" align="left" prop="assignNum" /><!--实际数量-->
<el-table-column label="计划数量" align="left" prop="quantity"/><!--计划数量-->
<el-table-column label="扫码数量" align="left" prop="scanNum"/><!--扫码数量-->
<el-table-column label="实际数量" align="left" prop="assignNum"/><!--实际数量-->
<el-table-column label="货位号" align="left" prop="spare9"/><!--实际数量-->
<el-table-column label="托盘号" align="left" prop="spare8"/><!--实际数量-->
<el-table-column label="条码号" align="left" prop="barCode"/><!--实际数量-->
<el-table-column label="组件号" align="left" prop="cargoNo"/><!--组件号-->
<el-table-column label="项目号" align="left" prop="spare4"/><!--项目号-->
</el-table>
<pagination
@@ -341,7 +342,8 @@ export default {
spare2: null,
spare4: null,
spare3: null,
spare5: null
spare5: null,
cargoNo: null
},
queryDetailParams: {
pageNum: 1,

View File

@@ -25,9 +25,9 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="'erp单据号'" prop="erpStockOutId"> <!-- 出库单编号 -->
<el-form-item :label="'erp单据号'" prop="erpStockoutId"> <!-- 出库单编号 -->
<el-input
v-model="queryParams.erpStockOutId"
v-model="queryParams.erpStockoutId"
:placeholder="'请输入出库单编号'"
clearable
@keyup.enter.native="handleQuery"
@@ -43,6 +43,19 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="'出库方向'" prop="spare8"> <!-- 出库方向 -->
<el-select v-model="queryParams.spare8" :placeholder="'请选择出库方向'" clearable>
<el-option
v-for="dict in dict.type.out_location"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="'单据状态'" prop="status"> <!-- 单据状态 -->
<el-select v-model="queryParams.status" :placeholder="'请选择单据状态'" clearable>
<el-option
@@ -153,7 +166,7 @@
<el-table v-loading="loading" :data="outStockoutList" @selection-change="handleSelectionChange" @row-click="handleRowClick" max-height="400">
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="'出库单编号'" align="left" prop="stockoutId" />
<el-table-column :label="'erp单据号'" align="left" prop="erpStockOutId" />
<el-table-column :label="'erp单据号'" align="left" prop="erpStockoutId" />
<el-table-column :label="'出库类型'" align="left" prop="outType">
<template slot-scope="scope">
<dict-tag :options="dict.type.out_bill_type" :value="scope.row.outType"/>
@@ -184,10 +197,16 @@
<!-- <el-table-column :label="'销售订单号'" align="left" prop="spare2" />-->
<el-table-column :label="'审核时间'" align="left" prop="spare3" />
<el-table-column :label="'审核人'" align="left" prop="spare4" />
<el-table-column :label="'出库方向'" align="left" prop="spare8" >
<template slot-scope="scope">
<dict-tag :options="dict.type.out_location" :value="scope.row.spare8"/>
</template>
</el-table-column>
<el-table-column :label="'创建时间'" align="left" prop="createDate" width="160" sortable/>
<el-table-column :label="'开始时间'" align="left" prop="startDate" width="160" sortable/>
<el-table-column :label="'确认时间'" align="left" prop="finishDate" width="160" sortable/>
<el-table-column :label="'备注'" align="left" prop="spare5" />
</el-table>
<pagination
@@ -356,7 +375,7 @@ import {listWarehouse} from "@/api/bas/warehouse";
export default {
name: "OutStockWithDetail",
dicts: ['out_bill_type', 'out_bill_status', 'out_method', 'bill_resource'],
dicts: ['out_bill_type', 'out_bill_status', 'out_method', 'bill_resource','out_location'],
data() {
return {
// 遮罩层
@@ -413,14 +432,15 @@ export default {
pageNum: 1,
pageSize: 10,
stockoutId: null,
erpStockOutId:null,
erpStockoutId:null,
outType: null,
customerNo: null,
customerName: null,
productName: null,
startDate: null,
finishDate: null,
status: null
status: null,
spare8:null
},
// 子表分页参数
detailQueryParams: {
@@ -605,8 +625,14 @@ export default {
this.$modal.msgError('请先审核出库单')
return
}
if (this.queryParams.spare8==''||this.queryParams.spare8==null){
this.$modal.msgError('请选择出库方向后,再次点击分配!')
return
}
let data = {
stockoutId: stockoutIds[0]
stockoutId: stockoutIds[0],
spare8:this.queryParams.spare8
}
autoAllot(data).then(response => {
if (response.code !== 200){

View File

@@ -44,14 +44,14 @@
</el-select>
</el-form-item>
<!-- <el-form-item label="入库时间" prop="startDate">&lt;!&ndash; 入库时间 &ndash;&gt;
<el-date-picker clearable
v-model="queryParams.inDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择入库时间">
</el-date-picker>
</el-form-item>-->
<!-- <el-form-item label="入库时间" prop="startDate">&lt;!&ndash; 入库时间 &ndash;&gt;
<el-date-picker clearable
v-model="queryParams.inDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择入库时间">
</el-date-picker>
</el-form-item>-->
<el-form-item label="存货名称" prop="productName"><!-- 存货名称 -->
@@ -63,6 +63,28 @@
/>
</el-form-item>
<el-form-item label="托盘类型" prop="ktpType"> <!-- 作业类型 -->
<el-select v-model="queryParams.ktpType" placeholder="请选择托盘类型" clearable>
<el-option
v-for="item in ktpType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="物料类型" prop="model"> <!-- 作业类型 -->
<el-select v-model="queryParams.model" placeholder="请选择物料类型" clearable>
<el-option
v-for="item in productType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button><!-- 搜索 -->
@@ -107,36 +129,36 @@
</el-row>
<el-table v-loading="loading" :data="managementList" @selection-change="handleSelectionChange" max-height="650">
<el-table-column type="selection" align="center" />
<el-table-column type="selection" align="center"/>
<el-table-column label="库存编码" align="left" prop="stockId" width="180" sortable/>
<el-table-column label="货位名称" align="left" prop="cargoSpaceName" width="180"/>
<el-table-column width="180" label="库存状态" align="center" prop="stockStatus" >
<el-table-column width="180" label="库存状态" align="center" prop="stockStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.stock_status" :value="scope.row.stockStatus"/>
</template>
</el-table-column>
<el-table-column width="180" label="物料编码" align="left" prop="productId" />
<el-table-column width="180" label="物料名称" align="left" prop="productName" />
<el-table-column width="180" label="批次号" align="left" prop="lotNo" />
<el-table-column width="180" label="物料编码" align="left" prop="productId"/>
<el-table-column width="180" label="物料名称" align="left" prop="productName"/>
<el-table-column width="180" label="批次号" align="left" prop="lotNo"/>
<el-table-column label="托盘条码" align="center" prop="trayCode" width="160" sortable/>
<el-table-column width="180" label="入库时间" align="left" prop="inDate" sortable/>
<el-table-column width="180" label="入库时间" align="left" prop="inDate" sortable/>
<el-table-column width="100" label="数量" align="left" prop="quantity" sortable/>
<el-table-column width="180" label="作业ID" align="left" prop="jobId" sortable/>
<el-table-column width="180" label="出库数量" align="left" prop="outQuantity" />
<el-table-column width="180" label="入库单ID" align="left" prop="stockinId" sortable/>
<el-table-column width="180" label="作业ID" align="left" prop="jobId" sortable/>
<el-table-column width="180" label="出库数量" align="left" prop="outQuantity"/>
<el-table-column width="180" label="入库单ID" align="left" prop="stockinId" sortable/>
<el-table-column width="180" label="入库子单ID" align="left" prop="stockinDetailId" sortable/>
<!-- <el-table-column label="入库类型" align="center" prop="inType" />-->
<!-- <el-table-column label="仓库编码" align="center" prop="warehouseId" />-->
<el-table-column width="180" label="层级关系" align="left" prop="spare1" />
<el-table-column width="180" label="上层物料" align="left" prop="spare2" />
<el-table-column width="180" label="顶层物料" align="left" prop="spare3" />
<el-table-column width="180" label="项目号" align="left" prop="spare4" />
<el-table-column width="180" label="合同号" align="left" prop="spare5" />
<el-table-column width="180" label="销售订单" align="left" prop="spare6" />
<el-table-column width="180" label="供应商编码" align="left" prop="voltage" />
<el-table-column width="180" label="规格型号" align="left" prop="power" />
<el-table-column width="180" label="计量单位" align="left" prop="phase" />
<!-- <el-table-column label="净重" align="center" prop="netWeight" />-->
<!-- <el-table-column label="入库类型" align="center" prop="inType" />-->
<!-- <el-table-column label="仓库编码" align="center" prop="warehouseId" />-->
<el-table-column width="180" label="层级关系" align="left" prop="spare1"/>
<el-table-column width="180" label="上层物料" align="left" prop="spare2"/>
<el-table-column width="180" label="顶层物料" align="left" prop="spare3"/>
<el-table-column width="180" label="项目号" align="left" prop="spare4"/>
<el-table-column width="180" label="合同号" align="left" prop="spare5"/>
<el-table-column width="180" label="销售订单" align="left" prop="spare6"/>
<el-table-column width="180" label="供应商编码" align="left" prop="voltage"/>
<el-table-column width="180" label="规格型号" align="left" prop="power"/>
<el-table-column width="180" label="计量单位" align="left" prop="phase"/>
<!-- <el-table-column label="净重" align="center" prop="netWeight" />-->
<el-table-column width=120 label="操作" align="center" class-name="small-padding fixed-width"> <!-- 操作 -->
<template slot-scope="scope">
<el-button
@@ -168,12 +190,12 @@
<!-- 添加或修改库存信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="库存ID" prop="stockId"> &lt;!&ndash; 库存id &ndash;&gt;-->
<!-- <el-input v-model="form.stockId" placeholder="请输入库存ID" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="货位ID" prop="cargoSpaceId"> &lt;!&ndash; 货位id &ndash;&gt;-->
<!-- <el-input v-model="form.cargoSpaceId" placeholder="请输入货位ID" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="库存ID" prop="stockId"> &lt;!&ndash; 库存id &ndash;&gt;-->
<!-- <el-input v-model="form.stockId" placeholder="请输入库存ID" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="货位ID" prop="cargoSpaceId"> &lt;!&ndash; 货位id &ndash;&gt;-->
<!-- <el-input v-model="form.cargoSpaceId" placeholder="请输入货位ID" />-->
<!-- </el-form-item>-->
<el-form-item label="物料" prop="productId"> <!-- 物料 -->
<el-input
@@ -215,7 +237,7 @@
</el-form-item>
<el-form-item label="库存数量" prop="quantity"> <!-- 库存数量 -->
<el-input v-model="form.quantity" placeholder="请输入库存数量" />
<el-input v-model="form.quantity" placeholder="请输入库存数量"/>
</el-form-item>
</el-form>
@@ -256,11 +278,11 @@
@row-click="handleProductRowClick"
highlight-current-row
max-height="400">
<el-table-column label="品号" align="center" prop="productId" />
<el-table-column label="品名" align="center" prop="productName" />
<el-table-column label="规格" align="center" prop="spec" />
<el-table-column label="型号" align="center" prop="spare1" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="品号" align="center" prop="productId"/>
<el-table-column label="品名" align="center" prop="productName"/>
<el-table-column label="规格" align="center" prop="spec"/>
<el-table-column label="型号" align="center" prop="spare1"/>
<el-table-column label="单位" align="center" prop="unit"/>
</el-table>
<pagination
@@ -318,17 +340,17 @@
@row-click="handleCargoSpaceRowClick"
highlight-current-row
max-height="400">
<el-table-column label="货位编码" align="center" prop="cargoSpaceId" />
<el-table-column label="货位名称" align="center" prop="cargoSpaceName" />
<el-table-column label="仓库名称" align="center" prop="warehouseName" />
<el-table-column label="货位编码" align="center" prop="cargoSpaceId"/>
<el-table-column label="货位名称" align="center" prop="cargoSpaceName"/>
<el-table-column label="仓库名称" align="center" prop="warehouseName"/>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.cargo_space_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="排" align="center" prop="thePlatoon" />
<el-table-column label="列" align="center" prop="theColumn" />
<el-table-column label="层" align="center" prop="theFloor" />
<el-table-column label="排" align="center" prop="thePlatoon"/>
<el-table-column label="列" align="center" prop="theColumn"/>
<el-table-column label="层" align="center" prop="theFloor"/>
</el-table>
<pagination
@@ -348,13 +370,14 @@
</template>
<script>
import { listManagement, getManagement, delManagement, addManagement, updateManagement } from "@/api/stock/management"
import {listManagement, getManagement, delManagement, addManagement, updateManagement} from "@/api/stock/management"
import {listWarehouse} from "@/api/bas/warehouse"
import { listBasProduct } from "@/api/bas/BasProduct"
import { listCargoSpace } from "@/api/bas/cargoSpace"
import {listBasProduct} from "@/api/bas/BasProduct"
import {listCargoSpace} from "@/api/bas/cargoSpace"
export default {
name: "Management",
dicts: ['product_status', 'stock_status','cargo_space_status','cargo_space_lock_status'],
dicts: ['product_status', 'stock_status', 'cargo_space_status', 'cargo_space_lock_status'],
data() {
return {
// 遮罩层
@@ -373,6 +396,8 @@ export default {
managementList: [],
// 仓库选项
warehouseOptions: [],
productType: [{label: '半托', value: '0'}, {label: '满托', value: '1'}],
ktpType: [{label: '空托盘', value: '1'}, {label: '物料', value: '2'}],
// 弹出层标题
title: "",
// 是否显示弹出层
@@ -405,10 +430,12 @@ export default {
spare3: null,
spare4: null,
spare5: null,
spare6: null
spare6: null,
ktpType: null,
model: null
},
queryWarehouse: {
pageNum:1,
pageNum: 1,
pageSize: 99
},
// 表单参数
@@ -483,8 +510,6 @@ export default {
inDate: null,
backDate: null,
productGuid: null,
productId: null,
productName: null,
quantity: null,
jobId: null,
trayCode: null,
@@ -500,7 +525,9 @@ export default {
spare3: null,
spare4: null,
spare5: null,
spare6: null
spare6: null,
ktpType: null,
productType: null
}
this.resetForm("form")
},
@@ -519,7 +546,7 @@ export default {
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.stockId)
this.single = selection.length!==1
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
@@ -561,12 +588,13 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const stockIds = row.stockId || this.ids
this.$modal.confirm("是否确认删除库存信息编号为" + stockIds).then(function() { // 是否确认删除库存信息编号为
this.$modal.confirm("是否确认删除库存信息编号为" + stockIds).then(function () { // 是否确认删除库存信息编号为
return delManagement(stockIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功") // 删除成功
}).catch(() => {})
}).catch(() => {
})
},
/** 导出按钮操作 */
handleExport() {

View File

@@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
const baseUrl = 'http://127.0.0.1:8080' // 后端接口
const baseUrl = 'http://192.168.188.236:8080' // 后端接口
const port = process.env.port || process.env.npm_config_port || 80 // 端口