wms备货修改

master
mengjiao 8 months ago
parent 42a68c5fe8
commit 69234bc0d7

@ -8,6 +8,14 @@ export function listSellout(query) {
params: query
});
}
// 查询成品销售出库列表
export function listSelloutlistRE(query) {
return request({
url: '/wms/sellout/listRE',
method: 'get',
params: query
});
}
// 查询成品销售出库详细
export function getSellout(id) {
@ -25,6 +33,14 @@ export function addSellout(data) {
data: data
});
}
// 新增成品销售出库
export function addRE(data) {
return request({
url: '/wms/sellout/addRE',
method: 'post',
data: data
});
}
// 修改成品销售出库
export function updateSellout(data) {

@ -118,6 +118,15 @@
<el-table v-loading="loading" :data="odsRawOrderInList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="送货单号" align="center" prop="orderNo" width="180"/>
<el-table-column label="物料编码" align="center" prop="materialCode" min-width="200">
<template slot-scope="scope">
<span>{{ scope.row.materialCode.replace(/^0{7}/, '') }}</span>
</template>
</el-table-column>
<el-table-column label="物料描述" align="center" prop="materialDesc" :min-width="180"/>
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="收货数量" align="center" prop="requestAmount" />
<el-table-column label="供应商编码" align="center" prop="supplyCode" width="180"/>
<el-table-column label="采购订单号" align="center" prop="poNo" width="180"/>
<el-table-column label="单据状态" align="center" prop="orderStatus">
<template slot-scope="scope">
@ -128,19 +137,6 @@
<el-table-column label="暂收凭证" align="center" prop="userDefined1" width="280"/>
<el-table-column label="物料凭证" align="center" prop="userDefined4" width="280"/>
<el-table-column label="采购行号" align="center" prop="poLine" />
<el-table-column label="物料编码" align="center" prop="materialCode" min-width="200">
<template slot-scope="scope">
<span>{{ scope.row.materialCode.replace(/^0{7}/, '') }}</span>
</template>
</el-table-column>
<el-table-column label="物料描述" align="center" prop="materialDesc" :min-width="180"/>
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="供应商编码" align="center" prop="supplyCode" width="180"/>
<el-table-column label="收货数量" align="center" prop="requestAmount" />
<!-- <el-table-column label="收货数量" align="center" prop="receiptAmount" />-->
<!-- <el-table-column label="备品数量" align="center" prop="shelvesAmount" />-->
<el-table-column label="质检状态" align="center" prop="qualityStatus" />
<el-table-column label="到货单号" align="center" prop="dnNo" width="180"/>
<el-table-column label="物料收货凭证年度" align="center" prop="userDefined5" width="280"/>

@ -2,6 +2,14 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="备货单" prop="stockOrder">
<el-input
v-model="queryParams.stockOrder"
placeholder="请输入备货单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="装运单" prop="deliveryOrder">
<el-input
v-model="queryParams.deliveryOrder"
@ -42,63 +50,23 @@
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['wms:sellout:add']"-->
<!-- >新增-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['wms:sellout:edit']"
>过账
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['wms:sellout:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['wms:sellout:export']"
>导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['wms:outorder:add']">生成备货单</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="selloutList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="ID" align="center" prop="id" v-if="false" />
<el-table-column label="备货单" align="center" prop="stockOrder" width="250"/>
<el-table-column label="装运单" align="center" prop="deliveryOrder" width="250"/>
<el-table-column label="交货单" align="center" prop="attr1" v-if="false" />
<el-table-column label="交货单" align="center" prop="itemNumber" width="150"/>
<el-table-column label="工厂编码" align="center" prop="factoryCode" v-if="false" />
<el-table-column label="出库仓" align="center" prop="whCode" />
<el-table-column label="库区" align="center" prop="waCode" width="250"/>
<el-table-column label="库区编码" align="center" prop="waCode" v-if="false" />
<el-table-column label="库位编码" align="center" prop="wlCode" v-if="false" />
<el-table-column label="出库地点" align="center" prop="deliveryPlace" v-if="false" />
@ -149,26 +117,6 @@
<el-table-column label="发货点名称" align="center" prop="attr9"v-if="false" />
<el-table-column label="发货点编码" align="center" prop="attr10"v-if="false" />
<el-table-column label="备注" align="center" prop="remark"/>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['wms:sellout:edit']"-->
<!-- >修改-->
<!-- </el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['wms:sellout:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
@ -180,106 +128,96 @@
/>
<!-- 添加或修改成品销售出库对话框 -->
<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="交货单号" prop="deliveryOrder">
<el-input v-model="form.deliveryOrder" placeholder="请输入交货单号"/>
</el-form-item>
<el-form-item label="项次" prop="itemNumber">
<el-input v-model="form.itemNumber" placeholder="请输入项次"/>
</el-form-item>
<el-form-item label="工厂编码" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码"/>
</el-form-item>
<el-form-item label="仓库编码" prop="whCode">
<el-input v-model="form.whCode" placeholder="请输入仓库编码"/>
</el-form-item>
<el-form-item label="库区编码" prop="waCode">
<el-input v-model="form.waCode" placeholder="请输入库区编码"/>
</el-form-item>
<el-form-item label="库位编码" prop="wlCode">
<el-input v-model="form.wlCode" placeholder="请输入库位编码"/>
</el-form-item>
<el-form-item label="出库地点" prop="deliveryPlace">
<el-input v-model="form.deliveryPlace" placeholder="请输入出库地点"/>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入产品名称"/>
</el-form-item>
<el-form-item label="产品编码" prop="productCode">
<el-input v-model="form.productCode" placeholder="请输入产品编码"/>
</el-form-item>
<el-form-item label="产品分类" prop="productSort">
<el-input v-model="form.productSort" placeholder="请输入产品分类"/>
</el-form-item>
<el-form-item label="规格型号" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格型号"/>
</el-form-item>
<el-form-item label="单位" prop="unitOfMeasure">
<el-input v-model="form.unitOfMeasure" placeholder="请输入单位"/>
</el-form-item>
<el-form-item label="批号" prop="lotNumber">
<el-input v-model="form.lotNumber" placeholder="请输入批号"/>
</el-form-item>
<el-form-item label="计划出库数量" prop="planQuantity">
<el-input v-model="form.planQuantity" placeholder="请输入计划出库数量"/>
</el-form-item>
<el-form-item label="出库数量" prop="outQuantity">
<el-input v-model="form.outQuantity" placeholder="请输入出库数量"/>
</el-form-item>
<el-form-item label="过账SAP凭证" prop="sapProof">
<el-input v-model="form.sapProof" placeholder="请输入过账SAP凭证"/>
</el-form-item>
<el-form-item label="过账SAP返回信息" prop="sapMessage">
<el-input v-model="form.sapMessage" placeholder="请输入过账SAP返回信息"/>
</el-form-item>
<el-form-item label="出库时间" prop="outDate">
<el-date-picker clearable
v-model="form.outDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择出库时间">
</el-date-picker>
</el-form-item>
<el-form-item label="预留字段1" prop="attr1">
<el-input v-model="form.attr1" placeholder="请输入预留字段1"/>
</el-form-item>
<el-form-item label="预留字段2" prop="attr2">
<el-input v-model="form.attr2" placeholder="请输入预留字段2"/>
</el-form-item>
<el-form-item label="预留字段3" prop="attr3">
<el-input v-model="form.attr3" placeholder="请输入预留字段3"/>
</el-form-item>
<el-form-item label="预留字段4" prop="attr4">
<el-input v-model="form.attr4" placeholder="请输入预留字段4"/>
</el-form-item>
<el-form-item label="预留字段5" prop="attr5">
<el-input v-model="form.attr5" placeholder="请输入预留字段5"/>
</el-form-item>
<el-form-item label="预留字段6" prop="attr6">
<el-input v-model="form.attr6" placeholder="请输入预留字段6"/>
</el-form-item>
<el-form-item label="预留字段7" prop="attr7">
<el-input v-model="form.attr7" placeholder="请输入预留字段7"/>
</el-form-item>
<el-form-item label="预留字段8" prop="attr8">
<el-input v-model="form.attr8" placeholder="请输入预留字段8"/>
</el-form-item>
<el-form-item label="预留字段9" prop="attr9">
<el-input v-model="form.attr9" placeholder="请输入预留字段9"/>
</el-form-item>
<el-form-item label="预留字段10" prop="attr10">
<el-input v-model="form.attr10" placeholder="请输入预留字段10"/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 生成退货单弹窗-->
<el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handlequeryform"></el-button>
</el-col>
</el-row>
<el-table :data="addoutorderList" @selection-change="handleSelectionChange1">
<el-table-column type="selection" width="55" align="center" :index="indexMethod" />
<el-table-column label="序号" type="index"> </el-table-column>
<el-table-column label="id" align="center" prop="id" v-if="false" />
<el-table-column label="装运单" prop="deliveryOrder" width="150"/>
<el-table-column label="交货单" prop="itemNumber" width="150"/>
<el-table-column label="产品名称" prop="productName" width="150"/>
<el-table-column label="产品编码" align="center" prop="productCode" width="150">
<template slot-scope="scope">
<span>{{ formatProductCode(scope.row.productCode) }}</span>
</template>
</el-table-column>
<el-table-column label="单位" prop="unitOfMeasure" />
<el-table-column label="批号" prop="lotNumber" />
<el-table-column label="计划数量" align="center" prop="planQuantity" />
<el-table-column label="交货日期" align="center" prop="outDate" width="150"/>
<el-table-column label="送达方" align="center" prop="attr4" />
<el-table-column label="送达方描述" align="center" prop="attr3" />
<el-table-column label="售达方" align="center" prop="attr6" />
<el-table-column label="售达方描述" align="center" prop="attr5" />
<el-table-column label="渠道类型" align="center" prop="attr7" />
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="danger" size="mini" @click="deleteOutOrder(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 装运单信息弹窗 -->
<el-dialog :title="'装运单信息'" :visible.sync="showMaterialDialog" width="1500px">
<div>
<!-- 查询条件 -->
<el-form :inline="true" :model="queryParams" class="demo-form-inline">
<el-form-item label="装运单">
<el-input v-model="queryParams.deliveryOrder" placeholder="请输入装运单"></el-input>
</el-form-item>
<el-form-item label="交货单">
<el-input v-model="queryParams.itemNumber" placeholder="请输入装运单"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="fetchMaterials"></el-button>
</el-form-item>
</el-form>
<el-table :data="materialList" @selection-change="handleMaterialSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="id" align="center" prop="id" v-if="false" />
<el-table-column label="装运单" prop="deliveryOrder" width="150"/>
<el-table-column label="交货单" prop="itemNumber" width="150"/>
<el-table-column label="产品名称" prop="productName" width="150"/>
<el-table-column label="产品编码" align="center" prop="productCode" width="150">
<template slot-scope="scope">
<span>{{ formatProductCode(scope.row.productCode) }}</span>
</template>
</el-table-column>
<el-table-column label="单位" prop="unitOfMeasure" />
<el-table-column label="批号" prop="lotNumber" />
<el-table-column label="计划数量" align="center" prop="planQuantity" />
<el-table-column label="交货日期" align="center" prop="outDate" width="150"/>
<el-table-column label="送达方" align="center" prop="attr4" />
<el-table-column label="送达方描述" align="center" prop="attr3" />
<el-table-column label="售达方" align="center" prop="attr6" />
<el-table-column label="售达方描述" align="center" prop="attr5" />
<el-table-column label="渠道类型" align="center" prop="attr7" />
</el-table>
<el-pagination
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-size="pageSize"
:total="totalMaterials"
layout="total, prev, pager, next, jumper"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmMaterialSelection"> </el-button>
<el-button @click="showMaterialDialog = false"> </el-button>
</div>
</div>
</el-dialog>
</div>
</template>
@ -287,6 +225,8 @@
import {
listSellout,
getSellout,
addRE,
listSelloutlistRE,
delSellout,
addSellout,
updateSellout } from "@/api/wms/sellout";
@ -309,11 +249,17 @@
total: 0,
//
selloutList: [],
materialList: [], //
//
title: "",
//
open: false,
showMaterialDialog: false, //
addoutorderList: [],
//
currentPage: 1, //
pageSize: 10, //
totalMaterials: 0, //
queryParams: {
pageNum: 1,
pageSize: 10,
@ -365,12 +311,15 @@
/** 查询成品销售出库列表 */
getList() {
this.loading = true;
listSellout(this.queryParams).then(response => {
listSelloutlistRE(this.queryParams).then(response => {
this.selloutList = response.rows;
this.total = response.total;
this.loading = false;
});
},
indexMethod(index) {
return index + 1;
},
//
cancel() {
this.open = false;
@ -424,28 +373,148 @@
this.queryParams.pageNum = 1;
this.getList();
},
handleMaterialSelectionChange(selection) {
this.selectedMaterials = selection; //
},
async submitForm() {
const payload = this.addoutorderList.map(item => ({
id: item.id,
}));
console.log("payload:", payload); // 使
try {
await this.$confirm('确认生成备货单吗?', '确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'info'
});
//
const response = await addRE(payload);
this.$message.success('备货单生成成功');
this.open = false; //
this.addoutorderList = []; //
} catch (error) {
if (error === 'cancel') {
this.$message.info('已取消提交');
} else {
console.error('提交失败:', error);
this.$message.error('提交失败,请重试');
}
}
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
handleSelectionChange1(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
this.selectedRows = selection;
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加成品销售出库";
},
handlequeryform() {
this.showMaterialDialog = true; //
this.fetchMaterials(); //
// this.queryParams1.pageNum = 1;
// this.getList1();
},
handleCurrentChange(page) {
this.currentPage = page; //
this.fetchMaterials(page); //
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "生成备货单";
this.queryParams1 = {}
this.addoutorderList = []
},
async confirmMaterialSelection() {
const materialsToAdd = []; //
for (const material of this.selectedMaterials) {
try {
materialsToAdd.push({
id: material.id,
deliveryOrder: material.deliveryOrder,
itemNumber: material.itemNumber,
productName: material.productName,
productCode: material.productCode,
unitOfMeasure: material.unitOfMeasure,
lotNumber: material.lotNumber,
planQuantity: material.planQuantity,
outDate: material.outDate,
attr4: material.attr4,
attr3: material.attr3,
attr6: material.attr6,
attr5: material.attr5,
attr7: material.attr7
});
} catch (error) {
console.error('Error fetching batches:', error);
}
}
// addoutorderList
this.addoutorderList = this.addoutorderList.concat(materialsToAdd);
console.log("Materials processed");
this.showMaterialDialog = false; //
},
deleteOutOrder(row) {
//
this.$confirm('确认删除该装运单吗?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// addoutorderList
this.addoutorderList = this.addoutorderList.filter(item => item !== row);
this.$message.success('删除成功!');
}).catch(() => {
this.$message.info('已取消删除');
});
},
formatProductCode(code) {
// 7
if (!code) return code; // null undefined
return code.replace(/^0{1,7}/, ''); // 170
},
/** 重置按钮操作 */
async fetchMaterials(pageNum = 1) { // pageNum
this.loading = true; //
try {
const response = await listSellout({
...this.queryParams, // queryParams
pageNum: pageNum, //
pageSize: this.pageSize //
});
//
this.materialList = response.rows.map((item, index) => {
item.index = (pageNum - 1) * this.pageSize + index + 1; //
return item;
});
this.totalMaterials = response.total; //
} catch (error) {
console.error('获取装运单失败:', error);
this.$message.error('加载装运单失败,请稍后重试。');
} finally {
this.loading = false; //
}
}
,
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();

Loading…
Cancel
Save