Browse Source

2025-11-04

pda调整扫描、查询、确认逻辑(生产领退料)
master
fengyuan_yang 2 months ago
parent
commit
03944b3ba8
  1. 33
      src/api/production/production-issue-return.js
  2. 133
      src/views/modules/production/productionIssueReturnDetail.vue

33
src/api/production/production-issue-return.js

@ -33,6 +33,39 @@ export function scanLabel(data) {
}) })
} }
/**
* 验证标签添加或移除
*/
export function validateLabel(data) {
return http({
url: http.adornUrl('/production/issueReturn/validateLabel'),
method: 'post',
data: http.adornData(data)
})
}
/**
* 获取已扫描标签列表
*/
export function getScannedLabelList(data) {
return http({
url: http.adornUrl('/production/issueReturn/getScannedLabelList'),
method: 'post',
data: http.adornData(data)
})
}
/**
* 确认保存生产领退料
*/
export function confirmSave(data) {
return http({
url: http.adornUrl('/production/issueReturn/confirmSave'),
method: 'post',
data: http.adornData(data)
})
}
/** /**
* 提交生产领退料 * 提交生产领退料
* 包含退仓+领料申请+过账+回传ERP * 包含退仓+领料申请+过账+回传ERP

133
src/views/modules/production/productionIssueReturnDetail.vue

@ -156,7 +156,7 @@
<script> <script>
import { getCurrentWarehouse } from '@/utils' import { getCurrentWarehouse } from '@/utils'
import moment from 'moment' import moment from 'moment'
import { searchIssueOrders, getOrderDetail, scanLabel, submitIssueReturn } from '@/api/production/production-issue-return.js'
import { searchIssueOrders, getOrderDetail, validateLabel, getScannedLabelList, confirmSave } from '@/api/production/production-issue-return.js'
export default { export default {
data() { data() {
@ -194,6 +194,9 @@ export default {
return return
} }
//
this.loadScannedLabelList()
// //
this.$nextTick(() => { this.$nextTick(() => {
if (this.$refs.scanInput) { if (this.$refs.scanInput) {
@ -219,61 +222,96 @@ export default {
// //
addLabel(labelCode) { addLabel(labelCode) {
//
const exists = this.labelList.find(item => item.labelCode === labelCode)
if (exists) {
this.$message.warning('该标签已扫描')
return
}
const currentWarehouse = getCurrentWarehouse() const currentWarehouse = getCurrentWarehouse()
if (!currentWarehouse) { if (!currentWarehouse) {
this.$message.error('请先选择仓库') this.$message.error('请先选择仓库')
return return
} }
//
//
const params = { const params = {
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
buNo: this.buNo, // 使buNo
warehouseId: currentWarehouse,
labelCode: labelCode
buNo: this.buNo,
returnOrderNo: this.returnOrderNo,
issueOrderNo: this.issueOrderNo || '',
operationSeq: this.operationSeq || '',
labelCode: labelCode,
operationType: 'I', //
userName: localStorage.getItem('userName'),
warehouseId: currentWarehouse
} }
scanLabel(params).then(({ data }) => {
if (data && data.code === 0 && data.labelInfo) {
const newLabel = {
id: Date.now(),
labelCode: labelCode,
partNo: data.labelInfo.partNo,
partDesc: data.labelInfo.partDesc,
quantity: data.labelInfo.quantity,
rollNo: data.labelInfo.rollNo,
warehouseId: data.labelInfo.warehouseId,
locationId: data.labelInfo.locationId
}
this.labelList.unshift(newLabel)
validateLabel(params).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('标签添加成功') this.$message.success('标签添加成功')
//
this.loadScannedLabelList()
} else { } else {
this.$message.error(data.msg || '标签信息获取失败')
this.$message.error(data.msg || '标签添加失败')
} }
}).catch(error => { }).catch(error => {
console.error('扫描标签失败:', error)
this.$message.error('标签信息获取失败')
console.error('添加标签失败:', error)
this.$message.error('标签添加失败')
}) })
}, },
// //
removeLabel(labelCode) { removeLabel(labelCode) {
const index = this.labelList.findIndex(item => item.labelCode === labelCode)
if (index === -1) {
this.$message.warning('未找到该标签')
const currentWarehouse = getCurrentWarehouse()
if (!currentWarehouse) {
this.$message.error('请先选择仓库')
return return
} }
this.labelList.splice(index, 1)
this.$message.success('标签移除成功')
//
const params = {
site: localStorage.getItem('site'),
buNo: this.buNo,
returnOrderNo: this.returnOrderNo,
issueOrderNo: this.issueOrderNo || '',
operationSeq: this.operationSeq || '',
labelCode: labelCode,
operationType: 'D', //
userName: localStorage.getItem('userName'),
warehouseId: currentWarehouse
}
validateLabel(params).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('标签移除成功')
//
this.loadScannedLabelList()
} else {
this.$message.error(data.msg || '标签移除失败')
}
}).catch(error => {
console.error('移除标签失败:', error)
this.$message.error('标签移除失败')
})
},
//
loadScannedLabelList() {
const params = {
site: localStorage.getItem('site'),
buNo: this.buNo,
returnOrderNo: this.returnOrderNo
}
getScannedLabelList(params).then(({ data }) => {
if (data && data.code === 0) {
this.labelList = (data.labelList || []).map((item, index) => ({
id: Date.now() + index,
labelCode: item.labelCode || item.rollNo,
partNo: item.partNo,
quantity: item.quantity || item.rollQty
}))
} else {
console.error('加载标签列表失败:', data.msg)
}
}).catch(error => {
console.error('加载标签列表失败:', error)
})
}, },
// top3 // top3
@ -401,12 +439,6 @@ export default {
// 退 // 退
submitIssueReturn() { submitIssueReturn() {
const currentWarehouse = getCurrentWarehouse()
if (!currentWarehouse) {
this.$message.error('请先选择仓库')
return
}
if (this.submitting) { if (this.submitting) {
return return
} }
@ -415,27 +447,16 @@ export default {
const params = { const params = {
site: localStorage.getItem('site'), site: localStorage.getItem('site'),
buNo: this.buNo, // 使buNo
warehouseId: currentWarehouse,
userName: localStorage.getItem('userName'),
buNo: this.buNo,
returnOrderNo: this.returnOrderNo, returnOrderNo: this.returnOrderNo,
issueOrderNo: this.issueOrderNo, issueOrderNo: this.issueOrderNo,
operationSeq: this.operationSeq, operationSeq: this.operationSeq,
operationName: this.operationName,
remark: this.remark,
labelList: this.labelList.map(label => ({
labelCode: label.labelCode,
rollNo: label.rollNo,
partNo: label.partNo,
partDesc: label.partDesc,
quantity: label.quantity,
warehouseId: label.warehouseId,
locationId: label.locationId
}))
locationCode: '', //
userName: localStorage.getItem('userName')
} }
// 退+++ERP
submitIssueReturn(params).then(({ data }) => {
//
confirmSave(params).then(({ data }) => {
this.submitting = false this.submitting = false
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message.success('提交成功') this.$message.success('提交成功')

Loading…
Cancel
Save