wms补打页面完善

master
mengjiao 9 months ago
parent 37c81f07de
commit 8ac5c93edb

@ -15,6 +15,13 @@ export function cardDy(data) {
data: data
});
}
export function cardBD(data) {
return request({
url: '/wms/matetowsn/cardBD',
method: 'post',
data: data
});
}
// 查询包材库存明细表详细
export function getMatetowsn(mateOrderInSnId) {
return request({

@ -100,6 +100,10 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" @click="handleUpdate"></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>
@ -167,112 +171,247 @@
@pagination="getList"
/>
<!-- 添加或修改包材库存明细表对话框 -->
<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="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="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入入库单号" />
</el-form-item>
<el-form-item label="采购订单号" prop="poNo">
<el-input v-model="form.poNo" placeholder="请输入采购订单号" />
</el-form-item>
<el-form-item label="采购订单行项目" prop="poLine">
<el-input v-model="form.poLine" placeholder="请输入采购订单行项目" />
</el-form-item>
<el-form-item label="物料号" prop="materialCode">
<el-input v-model="form.materialCode" placeholder="请输入物料号" />
</el-form-item>
<el-form-item label="物料描述" prop="materialDesc">
<el-input v-model="form.materialDesc" placeholder="请输入物料描述" />
</el-form-item>
<el-form-item label="托盘号" prop="sn">
<el-input v-model="form.sn" placeholder="请输入托盘号" />
</el-form-item>
<el-form-item label="条码" prop="barCode">
<el-input v-model="form.barCode" placeholder="请输入条码" />
</el-form-item>
<el-form-item label="数量" prop="amount">
<el-input v-model="form.amount" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="备用1" prop="userDefined1">
<el-input v-model="form.userDefined1" placeholder="请输入备用1" />
</el-form-item>
<el-form-item label="备用2" prop="userDefined2">
<el-input v-model="form.userDefined2" placeholder="请输入备用2" />
</el-form-item>
<el-form-item label="备用3" prop="userDefined3">
<el-input v-model="form.userDefined3" placeholder="请输入备用3" />
</el-form-item>
<el-form-item label="备用4" prop="userDefined4">
<el-input v-model="form.userDefined4" placeholder="请输入备用4" />
</el-form-item>
<el-form-item label="备用5" prop="userDefined5">
<el-input v-model="form.userDefined5" placeholder="请输入备用5" />
</el-form-item>
<el-form-item label="备用6" prop="userDefined6">
<el-input v-model="form.userDefined6" placeholder="请输入备用6" />
</el-form-item>
<el-form-item label="备用7" prop="userDefined7">
<el-input v-model="form.userDefined7" placeholder="请输入备用7" />
</el-form-item>
<el-form-item label="备用8" prop="userDefined8">
<el-input v-model="form.userDefined8" placeholder="请输入备用8" />
</el-form-item>
<el-form-item label="备用9" prop="userDefined9">
<el-input v-model="form.userDefined9" placeholder="请输入备用9" />
</el-form-item>
<el-form-item label="备用10" prop="userDefined10">
<el-input v-model="form.userDefined10" placeholder="请输入备用10" />
</el-form-item>
<el-form-item label="创建时间" prop="gmtCreate">
<el-date-picker clearable
v-model="form.gmtCreate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
<el-form-item label="最后更新人" prop="lastModifiedBy">
<el-input v-model="form.lastModifiedBy" placeholder="请输入最后更新人" />
</el-form-item>
<el-form-item label="最后更新时间" prop="gmtModified">
<el-date-picker clearable
v-model="form.gmtModified"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择最后更新时间">
</el-date-picker>
</el-form-item>
<el-form-item label="有效标记" prop="activeFlag">
<el-input v-model="form.activeFlag" placeholder="请输入有效标记" />
</el-form-item>
<el-form-item label="工厂号" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂号" />
</el-form-item>
<el-form-item label="SAP工厂号" prop="sapFactoryCode">
<el-input v-model="form.sapFactoryCode" placeholder="请输入SAP工厂号" />
</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>
</div>
<!-- &lt;!&ndash; 添加或修改包材库存明细表对话框 &ndash;&gt;-->
<!-- <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="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="orderNo">-->
<!-- <el-input v-model="form.orderNo" placeholder="请输入入库单号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="采购订单号" prop="poNo">-->
<!-- <el-input v-model="form.poNo" placeholder="请输入采购订单号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="采购订单行项目" prop="poLine">-->
<!-- <el-input v-model="form.poLine" placeholder="请输入采购订单行项目" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料号" prop="materialCode">-->
<!-- <el-input v-model="form.materialCode" placeholder="请输入物料号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料描述" prop="materialDesc">-->
<!-- <el-input v-model="form.materialDesc" placeholder="请输入物料描述" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="托盘号" prop="sn">-->
<!-- <el-input v-model="form.sn" placeholder="请输入托盘号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="条码" prop="barCode">-->
<!-- <el-input v-model="form.barCode" placeholder="请输入条码" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="数量" prop="amount">-->
<!-- <el-input v-model="form.amount" placeholder="请输入数量" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用1" prop="userDefined1">-->
<!-- <el-input v-model="form.userDefined1" placeholder="请输入备用1" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用2" prop="userDefined2">-->
<!-- <el-input v-model="form.userDefined2" placeholder="请输入备用2" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用3" prop="userDefined3">-->
<!-- <el-input v-model="form.userDefined3" placeholder="请输入备用3" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用4" prop="userDefined4">-->
<!-- <el-input v-model="form.userDefined4" placeholder="请输入备用4" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用5" prop="userDefined5">-->
<!-- <el-input v-model="form.userDefined5" placeholder="请输入备用5" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用6" prop="userDefined6">-->
<!-- <el-input v-model="form.userDefined6" placeholder="请输入备用6" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用7" prop="userDefined7">-->
<!-- <el-input v-model="form.userDefined7" placeholder="请输入备用7" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用8" prop="userDefined8">-->
<!-- <el-input v-model="form.userDefined8" placeholder="请输入备用8" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用9" prop="userDefined9">-->
<!-- <el-input v-model="form.userDefined9" placeholder="请输入备用9" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用10" prop="userDefined10">-->
<!-- <el-input v-model="form.userDefined10" placeholder="请输入备用10" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建时间" prop="gmtCreate">-->
<!-- <el-date-picker clearable-->
<!-- v-model="form.gmtCreate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择创建时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="最后更新人" prop="lastModifiedBy">-->
<!-- <el-input v-model="form.lastModifiedBy" placeholder="请输入最后更新人" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="最后更新时间" prop="gmtModified">-->
<!-- <el-date-picker clearable-->
<!-- v-model="form.gmtModified"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择最后更新时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="有效标记" prop="activeFlag">-->
<!-- <el-input v-model="form.activeFlag" placeholder="请输入有效标记" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="工厂号" prop="factoryCode">-->
<!-- <el-input v-model="form.factoryCode" placeholder="请输入工厂号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="SAP工厂号" prop="sapFactoryCode">-->
<!-- <el-input v-model="form.sapFactoryCode" placeholder="请输入SAP工厂号" />-->
<!-- </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-form :model="queryParams1" label-width="120px">
<!-- 表单内容 -->
<el-row :gutter="10" class="mb8">
<el-col :span="6">
<el-form-item label="仓库编码">
<el-select v-model="queryParams1.warehouseNo" placeholder="请选择仓库编码" @change="forceUpdate()" clearable
filterable style="width: 100%;">
<el-option v-for="item in Optionlistck" :key="item.warehouseCode" :label="item.warehouseName"
:value="item.warehouseCode"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="6">
<el-form-item label="库区">
<el-input v-model="queryParams1.waCode" placeholder="库区"></el-input>
</el-form-item>
</el-col>
</el-row>
<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="物料描述" align="center" prop="materialDesc" width="255"/>
<el-table-column label="物料编码" align="center" prop="materialCode" width="150">
<template slot-scope="scope">
<span>{{ formatProductCode(scope.row.materialCode) }}</span>
</template>
</el-table-column>
<el-table-column label="单位" align="center" prop="userDefined1" />
<el-table-column label="数量" align="center" width="180">
<template slot-scope="scope">
<el-input v-model="scope.row.planNumber" @change="handleQtyChange(scope.row, $event)"></el-input>
</template>
</el-table-column>
<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>
<!-- 确认和取消按钮 -->
</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="'物料信息'" :visible.sync="showMaterialDialog" width="600px">
<div>
<!-- 查询条件 -->
<el-form :inline="true" :model="queryParams" class="demo-form-inline">
<el-form-item label="物料号">
<el-input v-model="queryParams.materialCode" 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="materialDesc" width="250"/>
<el-table-column label="物料编码" align="center" prop="materialCode" width="150">
<template slot-scope="scope">
<span>{{ formatProductCode(scope.row.materialCode) }}</span>
</template>
</el-table-column>
<el-table-column label="单位" prop="userDefined1" width="100"/>
</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>
<script>
import { listMatetowsn,cardDy, getMatetowsn, delMatetowsn, addMatetowsn, updateMatetowsn } from "@/api/wms/matetowsn";
import { listMatetowsn,cardDy, cardBD,getMatetowsn, delMatetowsn, addMatetowsn, updateMatetowsn } from "@/api/wms/matetowsn";
import {
listOutorder,
getOutorder,
delOutorder,
PurchaseOrderOutboundPda,
addPurchaseOrderOutbound,
getlistCK,
listReturnBC,
OutboundPostingSAP,
OutboundPostingzcSAP,
listOutorderZC,
listProduct,
listckTS,
addOdsProcureOutOrderTS,
getIdCardListTH,
listReturnDY,
listOutorderZU
} from '@/api/wms/outorderfc'
export default {
name: "Matetowsn",
data() {
@ -295,7 +434,27 @@ export default {
title: "",
//
open: false,
showMaterialDialog: false, //
//
currentPage: 1, //
pageSize: 10, //
totalMaterials: 0, //
Optionlistck: [],
addoutorderList: [],
queryParams1: {
pageNum: 1,
pageSize: 10,
produceCode: '',
warehouseNo: '',
planDateMax: '',
accountingSubject: '', //
receiver: '', //
productionDate: '', //
shelfLifeExpiryDate: '' ,// 寿
planDateMin: '',
materialCode:'',
costCenter: '' //
},
queryParams: {
pageNum: 1,
pageSize: 10,
@ -327,6 +486,7 @@ export default {
factoryCode: null,
sapFactoryCode: null
},
materialList: [], //
//
form: {},
//
@ -352,6 +512,9 @@ export default {
this.open = false;
this.reset();
},
indexMethod(index) {
return index + 1;
},
/** 过账按钮操作 */
handleUpdate(row) {
const ids = row.id || this.ids;
@ -368,6 +531,105 @@ export default {
// 7
if (!code) return code; // null undefined
return code.replace(/^0{1,7}/, ''); // 170
},
handlequeryform() {
this.showMaterialDialog = true; //
this.fetchMaterials(); //
// this.queryParams1.pageNum = 1;
// this.getList1();
},
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('已取消删除');
});
},
handleSelectionChange1(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
this.selectedRows = selection;
},
handleQtyChange(row, event) {
// row qty
row.planNumber = event;
//
// this.saveQtyToServer(row.id, event);
},
handleMaterialSelectionChange(selection) {
this.selectedMaterials = selection; //
},
handleCurrentChange(page) {
this.currentPage = page; //
this.fetchMaterials(page); //
},
async confirmMaterialSelection() {
const materialsToAdd = []; //
for (const material of this.selectedMaterials) {
let queryParams = {
produceCode: material.produceCode,
materialCode: material.materialCode
};
try {
const response = await listReturnBC(queryParams);
console.log("Response:", response);
const batches = response.rows || []; //
materialsToAdd.push({
produceCode: material.produceCode,
materialDesc: material.materialDesc,
userDefined1: material.userDefined1,
materialCode: material.materialCode,
planNumber: material.planNumber, //
outNumber: material.outNumber, //
bgnumber: material.bgnumber, //
returnQty: material.planNumber - material.outNumber, //
qty: 0, // 0
});
} catch (error) {
console.error('Error fetching batches:', error);
}
}
// addoutorderList
this.addoutorderList = this.addoutorderList.concat(materialsToAdd);
console.log("Materials processed");
this.showMaterialDialog = false; //
},
/** 重置按钮操作 */
async fetchMaterials(pageNum = 1) { // pageNum
this.loading = true; //
try {
const response = await listProduct({
...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; //
}
},
//
reset() {
@ -420,42 +682,73 @@ export default {
this.single = selection.length!==1
this.multiple = !selection.length
},
forceUpdate(selection) {
console.log(selection)
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加包材库存明细表";
},
/** 修改按钮操作 */
// handleUpdate(row) {
// this.reset();
// const mateOrderInSnId = row.mateOrderInSnId || this.ids
// getMatetowsn(mateOrderInSnId).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "";
// });
// },
handleAdd() {
this.reset();
this.open = true;
this.title = "补打";
this.queryParams1 = {}
this.addoutorderList = []
let factoryCode = localStorage.getItem('USER_POOL_NAME_CURRENT').substring(3)
let params = { factoryCode: factoryCode }; //
let paramsJSON = JSON.stringify(params); // JSON
console.log(factoryCode)
getlistCK(paramsJSON).then(response => {
this.Optionlistck = response.data
console.log(this.Optionlistck)
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.mateOrderInSnId != null) {
updateMatetowsn(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addMatetowsn(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
async submitForm() {
const payload = this.addoutorderList.map(item => ({
qty: item.qty, //
userDefined6: this.selectedOrderType, //
produceCode: item.produceCode, //
materialDesc: item.materialDesc, //
materialCode: item.materialCode, //
unit: item.userDefined1,
// unit
// unit: item.unit,
planNumber: item.planNumber, //
locCode: this.queryParams1.warehouseNo, //
waCode: this.queryParams1.waCode, //
userDefined2: this.queryParams1.accountingSubject, //
userDefined4: this.queryParams1.receiver, //
planDate: this.queryParams1.productionDate, //
userDefined5: this.queryParams1.shelfLifeExpiryDate, // 寿
userDefined3: this.queryParams1.costCenter, //
}));
console.log("payload:", payload); // 使
try {
await this.$confirm('确认提交补打吗?', '确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'info'
});
//
const response = await cardBD(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();
},
/** 删除按钮操作 */
handleDelete(row) {
const mateOrderInSnIds = row.mateOrderInSnId || this.ids;

Loading…
Cancel
Save