diff --git a/src/api/automatedWarehouse/agvTask.js b/src/api/automatedWarehouse/agvTask.js index 540e379..f3df53d 100644 --- a/src/api/automatedWarehouse/agvTask.js +++ b/src/api/automatedWarehouse/agvTask.js @@ -17,6 +17,9 @@ export const changeLocation = data => createAPI(`agvTask/changeLocation`, 'POST' // 取消TUSK任务 export const cancelTuskTask = data => createAPI(`agvTask/cancelTuskTask`, 'POST', data) +// 取消带WCS任务号的运输任务,并按原WCS任务号重发分拣位补盘 - rqrq +export const cancelAndRetryNeedPallet = data => createAPI(`agvTask/cancelAndRetryNeedPallet`, 'POST', data) + // 获取AGV实时状态 export const getAgvStatus = data => createAPI(`agvTask/getAgvStatus`, 'POST', data) diff --git a/src/views/modules/automatedWarehouse/agvTask.vue b/src/views/modules/automatedWarehouse/agvTask.vue index abf54f1..fa35d38 100644 --- a/src/views/modules/automatedWarehouse/agvTask.vue +++ b/src/views/modules/automatedWarehouse/agvTask.vue @@ -167,13 +167,18 @@ - - + + @@ -431,6 +436,7 @@ import { adjustPriority as adjustPriorityApi, changeLocation as changeLocationApi, cancelTuskTask as cancelTuskTaskApi, + cancelAndRetryNeedPallet as cancelAndRetryNeedPalletApi, getAgvStatus, getAgvAlarms, testTuskConnection as testTuskConnectionApi @@ -466,6 +472,8 @@ export default { // 数据集 dataList: [], dataListLoading: false, + // 取消并重试进行中的任务号,防止同一行或其它行重复提交 - rqrq + cancelRetryTaskNo: '', // 导出相关 exportData: [], exportName: "AGV任务管理", @@ -765,6 +773,41 @@ export default { }); }, + // 有WCS任务号才走取消并重试,空字符串视为没有 - rqrq + hasWcsTaskId(row) { + return !!(row && row.wcsTaskId && String(row.wcsTaskId).trim()) + }, + + // 取消当前运输任务后,按原WCS任务号重发分拣位补盘。补盘失败弹窗确认,不把TUSK取消失败当失败 - rqrq + cancelAndRetryNeedPallet(row) { + if (this.cancelRetryTaskNo) { + return + } + this.$confirm('确定要取消并重试此任务吗?将取消当前运输任务,并按原WCS任务号重新发起分拣位补盘。', '警告', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.cancelRetryTaskNo = row.taskNo + const params = { + site: row.site, + taskNo: row.taskNo + } + cancelAndRetryNeedPalletApi(params).then(({data}) => { + if (data && data.code === 0) { + this.$message.success(data.msg || '取消并重试成功') + this.getDataList() + } else { + this.$alert((data && data.msg) || '取消并重试失败', '错误', { confirmButtonText: '确定' }) + } + }).catch(() => { + this.$message.error('取消并重试请求失败') + }).finally(() => { + this.cancelRetryTaskNo = '' + }) + }).catch(() => {}) + }, + // 取消TUSK任务 cancelTuskTask(row) { this.$confirm('确定要取消此AGV任务吗?取消后会导致任务中断,部分数据或后续操作需要人工干预,请谨慎操作!', '警告', {