opt:优化倒扣

This commit is contained in:
zhangzq
2026-08-04 10:51:59 +08:00
parent 2d0225bc09
commit b8355e723e
9 changed files with 155 additions and 33 deletions

View File

@@ -49,6 +49,16 @@
>
回传EAS
</el-button>
<el-button
slot="right"
class="filter-item"
type="sucess"
icon="el-icon-position"
size="mini"
@click="deductionOrderSync"
>
重新提交报工
</el-button>
</crudOperation>
<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" />
@@ -62,20 +72,16 @@
<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="trackNo" label="跟踪号" min-width="100" />
<el-table-column prop="workArea" label="产线" min-width="100" />
<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="trackNo" label="跟踪号" min-width="100" />
<el-table-column prop="workArea" label="产线" min-width="100" />
<el-table-column prop="transtype" label="交易类型" min-width="100" />
<el-table-column prop="remark" label="备注" min-width="180" show-overflow-tooltip />
<el-table-column prop="requestId" label="出入库单号" min-width="140" />
<el-table-column prop="biztime" label="业务时间" min-width="160" />
<el-table-column prop="createTime" label="创建时间" min-width="160" />
<el-table-column prop="reportParam" label="报工参数" min-width="200" show-overflow-tooltip />
@@ -87,8 +93,9 @@
<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="sn"><el-input v-model.trim="form.trackNo" style="width: 300px;" /></el-form-item></el-col>
<el-col :span="12"><el-form-item label="产线" prop="sn"><el-input v-model.trim="form.workArea" 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="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>
@@ -101,6 +108,7 @@
<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="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="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>
@@ -110,17 +118,20 @@
<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="跟踪号">{{ currentRow.trackNo }}</el-descriptions-item>
<el-descriptions-item label="产线">{{ currentRow.workArea }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ currentRow.comment }}</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="回传备注" :span="2">{{ currentRow.remark }}</el-descriptions-item>
<el-descriptions-item label="机构编号">{{ currentRow.orgno }}</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.createTime }}</el-descriptions-item>
<el-descriptions-item label="回传备注" :span="2">{{ currentRow.remark }}</el-descriptions-item>
<el-descriptions-item label="出入库单号">{{ currentRow.requestId }}</el-descriptions-item>
<el-descriptions-item label=""></el-descriptions-item>
<el-descriptions-item label="报工参数" :span="2">{{ currentRow.reportParam }}</el-descriptions-item>
</el-descriptions>
<el-table :data="pagedDetails" size="mini" style="width: 100%; margin-top: 12px;">
@@ -135,15 +146,12 @@
<el-table-column prop="qty" label="工单扣减数量" min-width="100" />
<el-table-column prop="baseqty" label="bom数量" min-width="100" />
<el-table-column prop="warehouseno" label="仓库编号" min-width="120" />
<el-table-column prop="easQty" label="eas库存" min-width="120" />
<el-table-column prop="updateTime" label="更新时间" min-width="120" />
<el-table-column prop="remark" label="说明" min-width="120" />
<el-table-column prop="srcbillno" label="源单据编号" min-width="140" />
<el-table-column prop="srcbillno" label="源单据编号" min-width="140" />
<el-table-column prop="lotnumber" label="批号" min-width="100" />
<el-table-column prop="tracknumber" label="追踪号" min-width="120" />
<!-- 新增操作列 -->
<el-table-column label="操作" width="140" align="center" fixed="right">
<el-table-column label="操作" width="210" align="center" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
@@ -151,7 +159,7 @@
plain
@click="handleSyncEasStock(scope.row)"
>
EAS库存
{{ scope.row.easQty || '库存查询' }}
</el-button>
</template>
</el-table-column>
@@ -182,6 +190,8 @@ import { uploadReceiveOut } from './receiveOutReturn'
const createDefaultForm = () => ({
id: null,
orgno: '',
trackNo: '',
workArea: '',
sn: '',
billno: '',
biztype: '',
@@ -295,11 +305,10 @@ export default {
this.$message.warning('仓库编号不能为空')
return
}
crudReceiveOutReturn.easStock({ 'warehouseno': row.warehouseno, 'materialno': row.materialno }).then(res => {
crudReceiveOutReturn.allStock({ 'warehouseno': row.warehouseno, 'materialno': row.materialno }).then(res => {
if (res.code === 200) {
// 显示同步结果
const qty = res.data.qty
this.$message.success(`EAS当前库存数量${qty}`)
const qty = res.data
// 可选:在行中显示查询到的库存数量
this.$set(row, 'easQty', qty)
} else {
@@ -339,6 +348,38 @@ export default {
}
doUpload()
},
deductionOrderSync() {
const rows = this.crud.selections || []
if (rows.length < 1) {
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (rows.length > 1) {
this.crud.notify('只能选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
return
}
const row = rows[0]
const doUpload = () => {
this.fullscreenLoading = true
crudReceiveOutReturn.deductionOrderSync(JSON.parse(row.reportParam)).then(() => {
this.crud.notify('单据重新报工成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
}).finally(() => {
this.fullscreenLoading = false
})
}
if (String(row.status) === '1') {
this.$confirm('该单据已回传成功,是否继续回传?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(doUpload).catch(() => {
this.$message({ type: 'info', message: '已取消回传' })
})
return
}
doUpload()
},
statusLabel(status) {
const target = this.statusOptions.find(item => String(item.value) === String(status))
return target ? target.label : status

View File

@@ -37,6 +37,13 @@ export function easStock(param) {
params: param
})
}
export function allStock(param) {
return request({
url: '/api/receiveOutReturn/allStock',
method: 'get',
params: param
})
}
export function uploadReceiveOut(data) {
return request({
url: '/api/receiveOutReturn/upload',
@@ -44,4 +51,12 @@ export function uploadReceiveOut(data) {
data
})
}
export default { add, edit, del, get, easStock, uploadReceiveOut }
export function deductionOrderSync(data) {
return request({
url: '/app/restful/api/v3/wms/deductionOrderSync',
method: 'post',
data
})
}
export default { add, edit, del, get, easStock, uploadReceiveOut, allStock, deductionOrderSync }