diff --git a/src/api/haianAutoWarehouse/callOut.js b/src/api/haianAutoWarehouse/callOut.js
index dc949fc..77faef1 100644
--- a/src/api/haianAutoWarehouse/callOut.js
+++ b/src/api/haianAutoWarehouse/callOut.js
@@ -6,8 +6,8 @@ export const getPalletList = data => createAPI(`/haiAnWcsIntegration/palletListF
// 海安-旧页面兼容占位:当前页面未实际使用IFS查料接口 - rqrq
export const getShopOrderFromIFSWithOrderNo = data => createAPI(`/haiAnWcsIntegration/palletListForPartNo`, 'post', data)
-// 海安-立库特殊操作/Call料:固定目标区域“出库口”的下达接口 - rqrq
+// 海安-立库特殊操作/Call料:固定下达到整托出库口 - rqrq
export const callOutToOutboundPort = data => createAPI(`/haiAnWcsIntegration/callOutToOutboundPort`, 'post', data)
-// 海安-立库特殊操作/合托Call板:扫描托盘后直接下达(目的地固定入库口)- rqrq
+// 海安-立库特殊操作/合托Call板:扫描托盘后直接下达(目的地固定整托出库口,与 Call料同一出口)- rqrq
export const scanAndCallPalletForHetuo = data => createAPI(`/haiAnWcsIntegration/scanAndCallPalletForHetuo`, 'post', data)
diff --git a/src/views/modules/haianAutoWarehouse/haianCallOut.vue b/src/views/modules/haianAutoWarehouse/haianCallOut.vue
index b8034d5..9d47a4d 100644
--- a/src/views/modules/haianAutoWarehouse/haianCallOut.vue
+++ b/src/views/modules/haianAutoWarehouse/haianCallOut.vue
@@ -43,9 +43,9 @@
/>
-
+
@@ -121,7 +121,7 @@ export default {
now.getMinutes().toString().padStart(2, '0') + ':' +
now.getSeconds().toString().padStart(2, '0')
},
- // 扫描下达:调用海安专用接口,后端统一按入库口目标执行 - rqrq
+ // 扫描下达:调用海安专用接口,后端统一按下达到整托出库口 - rqrq
handleScanAndCall() {
const palletId = this.formData.palletId ? this.formData.palletId.trim() : ''
if (!this.formData.site) {
diff --git a/src/views/modules/haianAutoWarehouse/haianEmptyPalletAssembly.vue b/src/views/modules/haianAutoWarehouse/haianEmptyPalletAssembly.vue
index 2edbde7..d302316 100644
--- a/src/views/modules/haianAutoWarehouse/haianEmptyPalletAssembly.vue
+++ b/src/views/modules/haianAutoWarehouse/haianEmptyPalletAssembly.vue
@@ -148,7 +148,7 @@ export default {
currentPalletType: '',
palletTypeOptions: [],
count: 1,
- // 通知入库口选择 - rqrq
+ // 通知入库口选择:待确认站点实际编码,当前仍用旧入库口1/2 - rqrq
inboundPortDialogVisible: false,
selectedInboundPort: '',
inboundPortOptions: [
diff --git a/src/views/modules/haianAutoWarehouse/haianPalletAssembly.vue b/src/views/modules/haianAutoWarehouse/haianPalletAssembly.vue
index f418842..ffb0eeb 100644
--- a/src/views/modules/haianAutoWarehouse/haianPalletAssembly.vue
+++ b/src/views/modules/haianAutoWarehouse/haianPalletAssembly.vue
@@ -305,7 +305,7 @@
-
+
{{ cancelReserveLoading ? '取消中...' : '一键取消预留' }}
-
-
+
+
栈板在立库异常位上,不允许取消预留
@@ -211,6 +211,8 @@ export default {
// 栈板库位 - rqrq
locationCode: '',
+ // 是否异常位:由后端 ERROR_STATIONS 判定,禁止前端写死 1101 - rqrq
+ errorStationFlag: false,
// 预留清单相关 - rqrq
reserveModalVisible: false,
@@ -356,21 +358,24 @@ export default {
this.reservedLabels = data.data.reservedLabels || [];
this.reserveCount = data.data.reserveCount || 0;
this.locationCode = data.data.locationCode || '';
+ this.errorStationFlag = data.data.errorStationFlag === true;
} else {
this.reservedLabels = [];
this.reserveCount = 0;
+ this.errorStationFlag = false;
}
}).catch(error => {
console.error('获取预留标签列表失败:', error);
this.reservedLabels = [];
this.reserveCount = 0;
+ this.errorStationFlag = false;
});
},
// 一键取消预留 - rqrq
handleBatchCancelReserve() {
- if (this.locationCode === '1101') {
- this.$alert('栈板在库位1101上,不允许取消预留', '错误', { confirmButtonText: '确定' });
+ if (this.errorStationFlag) {
+ this.$alert('栈板在立库异常位上,不允许取消预留', '错误', { confirmButtonText: '确定' });
return;
}
diff --git a/src/views/modules/haianAutoWarehouse/haianPalletSorting.vue b/src/views/modules/haianAutoWarehouse/haianPalletSorting.vue
index 67999b3..932081e 100644
--- a/src/views/modules/haianAutoWarehouse/haianPalletSorting.vue
+++ b/src/views/modules/haianAutoWarehouse/haianPalletSorting.vue
@@ -18,7 +18,7 @@
v-model="palletCode"
placeholder="请扫描栈板编码"
class="form-input"
- style="flex: 0.75;"
+ :style="{ flex: sortedSourceFlag ? '1' : '0.75' }"
clearable
inputmode="none"
autocomplete="off"
@@ -27,7 +27,7 @@
@keyup.enter.native="handlePalletScan"
ref="palletInput"
/>
-
@@ -101,6 +101,10 @@
刷新
+
+
+ 当前为被分拣站点,扫进=放回标签,提交=通知回库
+
@@ -108,8 +112,8 @@
- 扫进
- 扫回
+ {{ sortedSourceFlag ? '放回' : '扫进' }}
+ {{ sortedSourceFlag ? '解绑' : '扫回' }}
条码数:{{ detailList.length }}
- {{ submitSortingLoading ? '处理中...' : '提交分拣' }}
+ {{ submitSortingLoading ? '处理中...' : (sortedSourceFlag ? '通知回库' : '提交分拣') }}
@@ -277,6 +281,7 @@ import {
getPalletDetails,
savePalletDetail,
restorePalletDetail,
+ deletePalletDetail,
getLabelInfo,
getPalletInfo,
getPalletTypeList,
@@ -299,6 +304,8 @@ export default {
currentPalletType: '',
currentAutoSort: 'N',
currentPalletStation: '',
+ // 被分拣源盘标记:由后端按 location_code 对照 R1-R4 返回,前端不自行猜点位 - rqrq
+ sortedSourceFlag: false,
forceFullPalletOut: false,
palletTypeDisabled: false,
autoSortDisabled: false,
@@ -397,6 +404,7 @@ export default {
this.currentPalletType = ''
this.currentAutoSort = 'N'
this.currentPalletStation = ''
+ this.sortedSourceFlag = false
this.forceFullPalletOut = false
this.palletTypeDisabled = false
this.autoSortDisabled = false
@@ -451,6 +459,7 @@ export default {
this.palletCode = data.palletId
this.positionOptions = data.positions || []
this.palletScanned = true
+ this.sortedSourceFlag = data.sortedSourceFlag === true
this.scanCode = ''
this.scanPosition = ''
this.scanLayer = 1
@@ -715,7 +724,7 @@ export default {
throw new Error((data && data.msg) || '获取分拣清单失败')
})
},
- // 分拣扫码:扫进需命中分拣清单并缓存原位置,扫回需按缓存恢复 - rqrq
+ // 分拣扫码:工作盘扫进卡分拣清单;被分拣源盘扫进=放回本盘、扫回=解绑 - rqrq
handleLabelScan() {
if (!this.ensureSite()) {
return
@@ -743,14 +752,18 @@ export default {
return
}
this.scanRequestLoading = true
- this.loadSortingListIfNeeded()
- .then((list) => {
+ const scanInPromise = this.sortedSourceFlag
+ ? Promise.resolve()
+ : this.loadSortingListIfNeeded().then((list) => {
if (list.length === 0) {
throw new Error('当前不存在分拣任务')
}
if (!list.includes(this.scanCode)) {
throw new Error('该标签不在分拣清单中')
}
+ })
+ scanInPromise
+ .then(() => {
return getLabelInfo({
site: this.site,
serialNo: this.scanCode
@@ -765,7 +778,7 @@ export default {
sortFlag: 1
}).then(({ data: saveData }) => {
if (saveData && saveData.code === 0) {
- if (original) {
+ if (!this.sortedSourceFlag && original) {
this.originalDetailCache[this.scanCode] = {
palletId: original.palletId || '',
position: original.position || '',
@@ -777,25 +790,50 @@ export default {
wcsFlag: original.wcsFlag === null || original.wcsFlag === undefined ? 0 : original.wcsFlag
}
}
- this.$message.success('分拣扫进成功')
+ this.$message.success(this.sortedSourceFlag ? '放回标签成功' : '分拣扫进成功')
this.needRefreshOnClose = true
this.scanCode = ''
this.loadLayerOptions()
this.moveFocusToScanInput()
return
}
- throw new Error((saveData && saveData.msg) || '分拣扫进失败')
+ throw new Error((saveData && saveData.msg) || (this.sortedSourceFlag ? '放回标签失败' : '分拣扫进失败'))
})
})
})
.catch((error) => {
- this.$alert(error.message || '分拣扫进失败', '错误', { confirmButtonText: '确定' })
+ this.$alert(error.message || (this.sortedSourceFlag ? '放回标签失败' : '分拣扫进失败'), '错误', { confirmButtonText: '确定' })
this.scanCode = ''
this.moveFocusToScanInput()
})
.finally(() => {
this.scanRequestLoading = false
})
+ } else if (this.sortedSourceFlag) {
+ // 被分拣源盘扫回=从本盘解绑,不再 restore 到原托盘,避免写回错误栈板 - rqrq
+ this.scanRequestLoading = true
+ deletePalletDetail({
+ site: this.site,
+ palletId: this.palletCode,
+ serialNo: this.scanCode
+ }).then(({ data }) => {
+ if (data && data.code === 0) {
+ this.$message.success('解绑标签成功')
+ this.needRefreshOnClose = true
+ this.scanCode = ''
+ this.moveFocusToScanInput()
+ } else {
+ this.scanCode = ''
+ this.$alert((data && data.msg) || '解绑标签失败', '错误', { confirmButtonText: '确定' })
+ this.moveFocusToScanInput()
+ }
+ }).catch((error) => {
+ this.scanCode = ''
+ this.$alert(error.message || '解绑标签失败', '错误', { confirmButtonText: '确定' })
+ this.moveFocusToScanInput()
+ }).finally(() => {
+ this.scanRequestLoading = false
+ })
} else {
const original = this.originalDetailCache[this.scanCode]
if (!original) {
@@ -855,7 +893,8 @@ export default {
}).then(({ data }) => {
if (data && data.code === 0) {
this.sortingList = []
- this.$message.success('分拣提交成功')
+ const resultRow = data.row || {}
+ this.$message.success(resultRow.message || (this.sortedSourceFlag ? '已通知托盘回库' : '分拣提交成功'))
} else {
this.$alert((data && data.msg) || '分拣提交失败', '错误', { confirmButtonText: '确定' })
}