wms备货修改

master
mengjiao 8 months ago
parent 42a68c5fe8
commit 69234bc0d7

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

@ -118,6 +118,15 @@
<el-table v-loading="loading" :data="odsRawOrderInList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="odsRawOrderInList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <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="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="poNo" width="180"/>
<el-table-column label="单据状态" align="center" prop="orderStatus"> <el-table-column label="单据状态" align="center" prop="orderStatus">
<template slot-scope="scope"> <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="userDefined1" width="280"/>
<el-table-column label="物料凭证" align="center" prop="userDefined4" 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="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="qualityStatus" />
<el-table-column label="到货单号" align="center" prop="dnNo" width="180"/> <el-table-column label="到货单号" align="center" prop="dnNo" width="180"/>
<el-table-column label="物料收货凭证年度" align="center" prop="userDefined5" width="280"/> <el-table-column label="物料收货凭证年度" align="center" prop="userDefined5" width="280"/>

@ -2,6 +2,14 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px"> 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-form-item label="装运单" prop="deliveryOrder">
<el-input <el-input
v-model="queryParams.deliveryOrder" v-model="queryParams.deliveryOrder"
@ -42,51 +50,9 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <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-col :span="1.5">
<el-button <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
type="success" v-hasPermi="['wms:outorder:add']">生成备货单</el-button>
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>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
@ -94,11 +60,13 @@
<el-table v-loading="loading" :data="selloutList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="selloutList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/> <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="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="deliveryOrder" width="250"/>
<el-table-column label="交货单" align="center" prop="attr1" v-if="false" /> <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="itemNumber" width="150"/>
<el-table-column label="工厂编码" align="center" prop="factoryCode" v-if="false" /> <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="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="waCode" v-if="false" />
<el-table-column label="库位编码" align="center" prop="wlCode" 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" /> <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="attr9"v-if="false" />
<el-table-column label="发货点编码" align="center" prop="attr10"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" 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> </el-table>
<pagination <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-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
<el-form-item label="交货单号" prop="deliveryOrder"> <el-row :gutter="10" class="mb8">
<el-input v-model="form.deliveryOrder" placeholder="请输入交货单号"/> <el-col :span="1.5">
</el-form-item> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handlequeryform"></el-button>
<el-form-item label="项次" prop="itemNumber"> </el-col>
<el-input v-model="form.itemNumber" placeholder="请输入项次"/> </el-row>
</el-form-item> <el-table :data="addoutorderList" @selection-change="handleSelectionChange1">
<el-form-item label="工厂编码" prop="factoryCode"> <el-table-column type="selection" width="55" align="center" :index="indexMethod" />
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码"/> <el-table-column label="序号" type="index"> </el-table-column>
</el-form-item> <el-table-column label="id" align="center" prop="id" v-if="false" />
<el-form-item label="仓库编码" prop="whCode"> <el-table-column label="装运单" prop="deliveryOrder" width="150"/>
<el-input v-model="form.whCode" placeholder="请输入仓库编码"/> <el-table-column label="交货单" prop="itemNumber" width="150"/>
</el-form-item> <el-table-column label="产品名称" prop="productName" width="150"/>
<el-form-item label="库区编码" prop="waCode"> <el-table-column label="产品编码" align="center" prop="productCode" width="150">
<el-input v-model="form.waCode" placeholder="请输入库区编码"/> <template slot-scope="scope">
</el-form-item> <span>{{ formatProductCode(scope.row.productCode) }}</span>
<el-form-item label="库位编码" prop="wlCode"> </template>
<el-input v-model="form.wlCode" placeholder="请输入库位编码"/> </el-table-column>
</el-form-item> <el-table-column label="单位" prop="unitOfMeasure" />
<el-form-item label="出库地点" prop="deliveryPlace"> <el-table-column label="批号" prop="lotNumber" />
<el-input v-model="form.deliveryPlace" placeholder="请输入出库地点"/> <el-table-column label="计划数量" align="center" prop="planQuantity" />
</el-form-item> <el-table-column label="交货日期" align="center" prop="outDate" width="150"/>
<el-form-item label="产品名称" prop="productName"> <el-table-column label="送达方" align="center" prop="attr4" />
<el-input v-model="form.productName" placeholder="请输入产品名称"/> <el-table-column label="送达方描述" align="center" prop="attr3" />
</el-form-item> <el-table-column label="售达方" align="center" prop="attr6" />
<el-form-item label="产品编码" prop="productCode"> <el-table-column label="售达方描述" align="center" prop="attr5" />
<el-input v-model="form.productCode" placeholder="请输入产品编码"/> <el-table-column label="渠道类型" align="center" prop="attr7" />
</el-form-item> <el-table-column label="操作" align="center" width="100">
<el-form-item label="产品分类" prop="productSort"> <template slot-scope="scope">
<el-input v-model="form.productSort" placeholder="请输入产品分类"/> <el-button type="danger" size="mini" @click="deleteOutOrder(scope.row)"></el-button>
</el-form-item> </template>
<el-form-item label="规格型号" prop="specification"> </el-table-column>
<el-input v-model="form.specification" placeholder="请输入规格型号"/> </el-table>
</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"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </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> </div>
</template> </template>
@ -287,6 +225,8 @@
import { import {
listSellout, listSellout,
getSellout, getSellout,
addRE,
listSelloutlistRE,
delSellout, delSellout,
addSellout, addSellout,
updateSellout } from "@/api/wms/sellout"; updateSellout } from "@/api/wms/sellout";
@ -309,11 +249,17 @@
total: 0, total: 0,
// //
selloutList: [], selloutList: [],
materialList: [], //
// //
title: "", title: "",
// //
open: false, open: false,
showMaterialDialog: false, //
addoutorderList: [],
// //
currentPage: 1, //
pageSize: 10, //
totalMaterials: 0, //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
@ -365,12 +311,15 @@
/** 查询成品销售出库列表 */ /** 查询成品销售出库列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listSellout(this.queryParams).then(response => { listSelloutlistRE(this.queryParams).then(response => {
this.selloutList = response.rows; this.selloutList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
indexMethod(index) {
return index + 1;
},
// //
cancel() { cancel() {
this.open = false; this.open = false;
@ -424,28 +373,148 @@
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
this.getList(); 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() { resetQuery() {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); 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) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.id) this.ids = selection.map(item => item.id)
this.single = selection.length !== 1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
handlequeryform() {
this.showMaterialDialog = true; //
this.fetchMaterials(); //
// this.queryParams1.pageNum = 1;
// this.getList1();
},
handleCurrentChange(page) {
this.currentPage = page; //
this.fetchMaterials(page); //
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "添加成品销售出库"; 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) { formatProductCode(code) {
// 7 // 7
if (!code) return code; // null undefined if (!code) return code; // null undefined
return code.replace(/^0{1,7}/, ''); // 170 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) { handleUpdate(row) {
this.reset(); this.reset();

Loading…
Cancel
Save