refactor(入库任务): 对接wcs

This commit is contained in:
Kelvin 2024-11-25 15:13:07 +08:00
parent 9fc52d5c90
commit bc0ac9d95c
3 changed files with 89 additions and 40 deletions

View File

@ -1,4 +1,4 @@
import request from '@/utils/request'
import request, {requestWcs} from '@/utils/request'
// 查询入库任务列表
export function listWmsInTask(query) {
@ -46,7 +46,15 @@ export function delWmsInTask(id) {
// 批量执行入库任务
export function issueBatchWmsInTask(data) {
return request({
url: '/wm/wmsInTask/open/issueBatch',
url: '/wm/wmsInTask/open/issueBatch/' + data,
method: 'post',
})
}
// 下发任务至 WCS
export function issueWmsInTaskToWcs(data) {
return requestWcs({
url: '/ToolDeliveryInfo',
method: 'post',
data
})

View File

@ -1,15 +1,15 @@
import axios from 'axios'
import { Notification, MessageBox, Message, Loading } from 'element-ui'
import {Notification, MessageBox, Message, Loading} from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'
import {getToken} from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import { tansParams, blobValidate } from "@/utils/ruoyi";
import {tansParams, blobValidate} from "@/utils/ruoyi";
import cache from '@/plugins/cache'
import { saveAs } from 'file-saver'
import {saveAs} from 'file-saver'
let downloadLoadingInstance;
// 是否显示重新登录
export let isRelogin = { show: false };
export let isRelogin = {show: false};
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
@ -20,6 +20,13 @@ const service = axios.create({
timeout: 30000
})
const serviceWcs = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: "http://192.168.8.60:1880",
// 超时
timeout: 30000
})
// request拦截器
service.interceptors.request.use(config => {
// 是否需要设置 token
@ -61,8 +68,8 @@ service.interceptors.request.use(config => {
}
return config
}, error => {
console.log(error)
Promise.reject(error)
console.log(error)
Promise.reject(error)
})
// 响应拦截器
@ -72,26 +79,26 @@ service.interceptors.response.use(res => {
// 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode['default']
// 二进制数据则直接返回
if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
return res.data
}
if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true;
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
isRelogin.show = false;
store.dispatch('LogOut').then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
}
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
isRelogin.show = false;
store.dispatch('LogOut').then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
}
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
} else if (code === 500) {
Message({
@ -110,14 +117,12 @@ service.interceptors.response.use(res => {
},
error => {
console.log('err' + error)
let { message } = error;
let {message} = error;
if (message == "Network Error") {
message = "后端接口连接异常";
}
else if (message.includes("timeout")) {
} else if (message.includes("timeout")) {
message = "系统接口请求超时";
}
else if (message.includes("Request failed with status code")) {
} else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
Message({
@ -131,10 +136,16 @@ service.interceptors.response.use(res => {
// 通用下载方法
export function download(url, params, filename) {
downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
downloadLoadingInstance = Loading.service({
text: "正在下载数据,请稍候",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
})
return service.post(url, params, {
transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
transformRequest: [(params) => {
return tansParams(params)
}],
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
responseType: 'blob'
}).then(async (data) => {
const isLogin = await blobValidate(data);
@ -156,3 +167,5 @@ export function download(url, params, filename) {
}
export default service
export const requestWcs = serviceWcs

View File

@ -102,8 +102,8 @@
type="text"
icon="el-icon-edit"
:disabled="scope.row.planInStatus === '1'"
@click="handleIssue(scope.row.id)"
>执行
@click="handleIssue(scope.row)"
>下发
</el-button>
<!-- <el-button-->
<!-- size="mini"-->
@ -169,7 +169,7 @@ import {
delWmsInTask,
addWmsInTask,
updateWmsInTask,
issueBatchWmsInTask
issueBatchWmsInTask, issueWmsInTaskToWcs
} from "@/api/mes/wm/wmsInTask";
import {listTYPE} from "@/api/md/TYPE";
import {listWmsInPlanDetailsEntity} from "@/api/mes/wm/wmsInPlanDetailsEntity";
@ -272,12 +272,40 @@ export default {
}
return id
},
//
handleIssue(id) {
issueBatchWmsInTask([id.toString()]).then(response => {
this.$modal.msgSuccess("执行成功");
this.getList();
});
// WCS
handleIssue(task) {
let warehouseTypeCode = ""
//
if (task.planTypeId === "8") {
warehouseTypeCode = "LTK"
}
const param = {
// ID
planId: task.planInId,
// ID
taskId: task.id,
//
cellCode: task.cellCode,
//
warehouseTypeCode,
//
materialId: task.materialId,
materialCode: task.materialCode,
materialName: task.materialName,
materialCount: task.actualInQuantity,
rfid: "",
// OR
type: "RK",
}
console.log(task)
issueWmsInTaskToWcs(param).then(res => {
console.log(res)
this.$modal.msgSuccess("下发成功");
})
// issueBatchWmsInTask([task.id.toString()]).then(response => {
// this.$modal.msgSuccess("");
// this.getList();
// });
},
//
cancel() {