89 lines
2.9 KiB
JavaScript
89 lines
2.9 KiB
JavaScript
import { httpGet, httpPost, httpDelete } from './http.js';
|
||
import { ENV } from './env.js';
|
||
|
||
const BASE_PATH = '/wmsServer/wms/api/orderIn';
|
||
|
||
function buildUrl(endpoint) {
|
||
return `${BASE_PATH}${endpoint}`;
|
||
}
|
||
|
||
/**
|
||
* 统一的响应数据解包器
|
||
* @param {object} response - HTTP 响应对象 { code, data, message }
|
||
* @param {string} fallbackMessage - 失败时的默认错误消息
|
||
* @returns {object} 解包后的业务数据(附带 httpStatus)
|
||
* @throws {Error} 当 HTTP 状态码不是 200 或响应格式不正确时抛出错误
|
||
*/
|
||
function unwrapResponse(response, fallbackMessage) {
|
||
const { code: statusCode, data, message } = response || {};
|
||
if (statusCode !== 200) {
|
||
throw new Error(message || fallbackMessage || '请求失败');
|
||
}
|
||
if (!data || typeof data !== 'object') {
|
||
throw new Error(fallbackMessage || '响应格式不正确');
|
||
}
|
||
return Object.assign({ httpStatus: statusCode }, data);
|
||
}
|
||
|
||
export const WmsApiClient = {
|
||
async engineStockIn({ standId, vehicleNo, goodsId, model, goodsNum = 0, timeout = 10000 }) {
|
||
const payload = {
|
||
efSelect: standId,
|
||
vehicleNo,
|
||
goodsId,
|
||
goodsNum,
|
||
model,
|
||
};
|
||
const res = await httpPost(buildUrl('/loginInBad'), payload, { timeout });
|
||
return unwrapResponse(res, '发动机入库失败');
|
||
},
|
||
|
||
async emptyVehicleIn({ standId, vehicleNo = 'D99999999', timeout = 8000 }) {
|
||
const payload = {
|
||
efSelect: standId,
|
||
vehicleNo,
|
||
goodsId: '',
|
||
goodsNum: 0,
|
||
model: '',
|
||
};
|
||
const res = await httpPost(buildUrl('/loginToByVehicle'), payload, { timeout });
|
||
return unwrapResponse(res, '空载具入库失败');
|
||
},
|
||
|
||
async bindVehicle({ vehicleNo, goodsId, goodsNum = 0, userName = 'PDA', timeout = 8000 }) {
|
||
const payload = {
|
||
goodsId,
|
||
goodsNum,
|
||
vehicleNo,
|
||
userName,
|
||
};
|
||
const res = await httpPost(buildUrl('/bindingVehicl'), payload, { timeout });
|
||
return unwrapResponse(res, '绑定物料失败');
|
||
},
|
||
|
||
async getOrderInWithVehicleNo({ vehicleNo, timeout = 8000 }) {
|
||
const res = await httpGet(buildUrl('/getOrderInWithVehicleNo'), { vehicleNo }, { timeout });
|
||
return unwrapResponse(res, '获取物料列表失败');
|
||
},
|
||
|
||
async rawStockIn({ vehicleNo, standId, orderInType, timeout = 10000 }) {
|
||
const payload = {
|
||
vehicleNo,
|
||
selectByIn: standId,
|
||
orderInType,
|
||
};
|
||
const res = await httpPost(buildUrl('/addInByTask'), payload, { timeout });
|
||
return unwrapResponse(res, '原材料入库失败');
|
||
},
|
||
|
||
async deleteOrderIn({ rowId, timeout = 8000 }) {
|
||
const res = await httpDelete(`${buildUrl('/deleteOrderIn')}/${rowId}`, { timeout });
|
||
return unwrapResponse(res, '删除物料失败');
|
||
},
|
||
|
||
async testLink({ vehicleNo = 'LSP00168', timeout = 8000 } = {}) {
|
||
const res = await httpGet(buildUrl('/getOrderInWithVehicleNo'), { vehicleNo }, { timeout });
|
||
return unwrapResponse(res, '接口不通');
|
||
},
|
||
};
|