add:增加倒冲领料错误时的展示,增加WMS库存校验

This commit is contained in:
zhangzq
2026-07-31 10:49:25 +08:00
parent 4abbc1a41c
commit ebd07db3ca
11 changed files with 248 additions and 129 deletions

View File

@@ -3,15 +3,20 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<el-form :inline="true" label-width="90px" label-suffix=":" size="mini">
<el-form-item label="单据编号">
<el-form-item label="单号">
<el-input v-model="query.billno" clearable placeholder="请输入单据编号" @keyup.enter.native="crud.toQuery" />
</el-form-item>
<el-form-item label="出入库单号">
<el-input v-model="query.requestId" clearable @keyup.enter.native="crud.toQuery" />
</el-form-item>
<el-form-item label="序列码">
<el-input v-model="query.sn" clearable @keyup.enter.native="crud.toQuery" />
</el-form-item>
<el-form-item label="机构编号">
<el-input v-model="query.orgno" clearable placeholder="请输入机构编号" @keyup.enter.native="crud.toQuery" />
</el-form-item>
<el-form-item label="请求ID">
<el-input v-model="query.requestId" clearable placeholder="请输入请求ID" @keyup.enter.native="crud.toQuery" />
</el-form-item>
<el-form-item label="回传状态">
<el-select v-model="query.status" clearable placeholder="全部" @change="crud.toQuery">
<el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
@@ -36,37 +41,42 @@
<el-button
slot="right"
class="filter-item"
type="primary"
type="warning"
icon="el-icon-position"
size="mini"
:disabled="uploadFlag"
@click="upload"
>
回传
</el-button>
</crudOperation>
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%" @selection-change="crud.selectionChangeHandler">
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%" @selection-change="crud.selectionChangeHandler" @current-change="handleCurrentChange" @select="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column v-permission="['admin','receiveOutReturn:edit','receiveOutReturn:del']" label="操作" width="115" align="center" fixed="right">
<template slot-scope="scope">
<udOperation :data="scope.row" :permission="permission" />
</template>
</el-table-column>
<el-table-column prop="billno" label="单据编号" min-width="140">
<el-table-column prop="billno" label="单号" min-width="140">
<template slot-scope="scope">
<el-link type="primary" @click="toView(scope.row)">{{ scope.row.billno }}</el-link>
</template>
</el-table-column>
<el-table-column prop="requestId" label="出入库单号" min-width="140" />
<el-table-column prop="sn" label="序列码" min-width="140" />
<el-table-column prop="status" label="回传状态" width="100" >
<template slot-scope="scope">
<el-tag :type="statusTagType(scope.row.status)" size="mini">{{ statusLabel(scope.row.status) }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="remark" label="回传备注" min-width="180" show-overflow-tooltip />
<el-table-column prop="orgno" label="机构编号" min-width="120" />
<el-table-column prop="biztype" label="业务类型" min-width="100" />
<el-table-column prop="invscheme" label="库存方案" min-width="100" />
<el-table-column prop="transtype" label="交易类型" min-width="100" />
<el-table-column prop="biztime" label="业务时间" min-width="160" />
<el-table-column prop="requsername" label="请求人" min-width="100" />
<el-table-column prop="status" label="回传状态" width="100" :formatter="statusFormat" />
<el-table-column prop="remark" label="回传备注" min-width="180" show-overflow-tooltip />
<el-table-column prop="requestId" label="请求ID" min-width="140" />
<el-table-column prop="createdBy" label="创建人" min-width="100" />
<el-table-column prop="createTime" label="创建时间" min-width="160" />
<el-table-column prop="reportParam" label="报工参数" min-width="200" show-overflow-tooltip />
</el-table>
<pagination />
</div>
@@ -74,8 +84,10 @@
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="1000px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="110px" label-suffix=":" style="border: 1px solid #cfe0df;margin-top: 10px;padding: 10px;">
<el-row>
<el-col :span="12"><el-form-item label="工单号" prop="billno"><el-input v-model.trim="form.billno" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="出入库单号" prop="requestId"><el-input v-model.trim="form.requestId" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="序列码" prop="sn"><el-input v-model.trim="form.sn" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="机构编号" prop="orgno"><el-input v-model.trim="form.orgno" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="单据编号" prop="billno"><el-input v-model.trim="form.billno" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="业务类型" prop="biztype"><el-input v-model.trim="form.biztype" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="库存方案" prop="invscheme"><el-input v-model.trim="form.invscheme" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="交易类型" prop="transtype"><el-input v-model.trim="form.transtype" style="width: 300px;" /></el-form-item></el-col>
@@ -84,10 +96,10 @@
<el-col :span="12"><el-form-item label="请求人编号" prop="requserno"><el-input v-model.trim="form.requserno" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="请求人姓名" prop="requsername"><el-input v-model.trim="form.requsername" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="操作类型" prop="cztype"><el-input v-model.trim="form.cztype" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="请求ID" prop="requestId"><el-input v-model.trim="form.requestId" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="回传状态" prop="status"><el-select v-model="form.status" style="width: 300px;"><el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" /></el-select></el-form-item></el-col>
<el-col :span="24"><el-form-item label="备注" prop="comment"><el-input v-model.trim="form.comment" type="textarea" :rows="2" style="width: 740px;" /></el-form-item></el-col>
<el-col :span="24"><el-form-item label="回传备注" prop="remark"><el-input v-model.trim="form.remark" type="textarea" :rows="2" style="width: 740px;" /></el-form-item></el-col>
<el-col :span="24"><el-form-item label="报工参数" prop="remark"><el-input v-model.trim="form.reportParam" type="textarea" :rows="2" style="width: 740px;" /></el-form-item></el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer"><el-button type="text" @click="crud.cancelCU">取消</el-button><el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button></div>
@@ -95,20 +107,19 @@
<el-dialog :visible.sync="viewShow" title="倒扣回传详情" width="1200px" :close-on-click-modal="false">
<el-descriptions :column="2" border size="mini">
<el-descriptions-item label="工单号">{{ currentRow.billno }}</el-descriptions-item>
<el-descriptions-item label="出入库单号">{{ currentRow.requestId }}</el-descriptions-item>
<el-descriptions-item label="序列码">{{ currentRow.sn }}</el-descriptions-item>
<el-descriptions-item label="回传状态">{{ statusLabel(currentRow.status) }}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ currentRow.comment }}</el-descriptions-item>
<el-descriptions-item label="机构编号">{{ currentRow.orgno }}</el-descriptions-item>
<el-descriptions-item label="单据编号">{{ currentRow.billno }}</el-descriptions-item>
<el-descriptions-item label="业务类型">{{ currentRow.biztype }}</el-descriptions-item>
<el-descriptions-item label="库存方案">{{ currentRow.invscheme }}</el-descriptions-item>
<el-descriptions-item label="交易类型">{{ currentRow.transtype }}</el-descriptions-item>
<el-descriptions-item label="业务时间">{{ currentRow.biztime }}</el-descriptions-item>
<el-descriptions-item label="请求人编号">{{ currentRow.requserno }}</el-descriptions-item>
<el-descriptions-item label="请求人姓名">{{ currentRow.requsername }}</el-descriptions-item>
<el-descriptions-item label="回传状态">{{ statusLabel(currentRow.status) }}</el-descriptions-item>
<el-descriptions-item label="请求ID">{{ currentRow.requestId }}</el-descriptions-item>
<el-descriptions-item label="创建人">{{ currentRow.createdBy }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ currentRow.createTime }}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ currentRow.comment }}</el-descriptions-item>
<el-descriptions-item label="回传备注" :span="2">{{ currentRow.remark }}</el-descriptions-item>
<el-descriptions-item label="报工参数" :span="2">{{ currentRow.reportParam }}</el-descriptions-item>
</el-descriptions>
<el-table :data="currentRow.details || []" size="mini" style="width: 100%; margin-top: 12px;">
<el-table-column prop="seq" label="行序号" width="80" />
@@ -161,6 +172,7 @@ import { uploadReceiveOut } from './receiveOutReturn'
const createDefaultForm = () => ({
id: null,
orgno: '',
sn: '',
billno: '',
biztype: '',
invscheme: '',
@@ -177,6 +189,7 @@ const createDefaultForm = () => ({
requestId: '',
createdBy: '',
updateTime: '',
reportParam: '',
details: []
})
@@ -197,6 +210,7 @@ export default {
data() {
return {
viewShow: false,
uploadFlag: true,
currentRow: {},
permission: {
add: ['purchasemst:add'],
@@ -206,7 +220,8 @@ export default {
statusOptions: [
{ value: '0', label: '待回传' },
{ value: '1', label: '回传成功' },
{ value: '2', label: '回传失败' }
{ value: '2', label: '回传失败' },
{ value: '3', label: '回传异常' }
],
rules: {
orgno: [{ required: true, message: '请输入机构编号', trigger: 'blur' }],
@@ -225,6 +240,23 @@ export default {
this.query.endTime = ''
}
},
handleSelectionChange(val, row) {
if (val.length == 1) {
if (val[0].status === '0' || val[0].status === '2' ){
this.uploadFlag = false
}
} else {
this.uploadFlag = true
}
},
handleCurrentChange(currentRow) {
console.log(currentRow)
if (currentRow === null) {
this.currentRow = {}
} else {
this.currentRow = currentRow
}
},
handleSyncEasStock(row) {
// 检查必要参数
if (!row.materialno) {
@@ -239,11 +271,11 @@ export default {
if (res.code === 200) {
// 显示同步结果
const qty = res.data.qty
this.$message.success(`EAS库存同步成功!当前库存数量:${qty}`)
this.$message.success(`EAS当前库存数量${qty}`)
// 可选:在行中显示查询到的库存数量
this.$set(row, 'easQty', qty)
} else {
this.$message.error(res.message || 'EAS库存同步失败')
this.$message.error(res.message || 'EAS库存查询失败')
}
})
},
@@ -283,6 +315,14 @@ export default {
const target = this.statusOptions.find(item => String(item.value) === String(status))
return target ? target.label : status
},
statusTagType(status) {
// { value: '0', label: '待回传' },
// { value: '1', label: '回传成功' },
// { value: '2', label: '回传失败' },
// { value: '3', label: '回传异常' }
const map = { '0': 'primary', '2': 'info', '1': 'success', '3': 'danger' }
return map[String(status)] || ''
},
statusFormat(row) {
return this.statusLabel(row.status)
},