feat(打包模块): 新增打包单据功能及相关组件
refactor(CoilSelector): 修改change事件返回参数包含完整钢卷信息 chore: 添加打包模块相关图标和API文件 test: 添加打包模块单元测试 docs: 更新打包模块API文档
This commit is contained in:
88
klp-ui/src/api/wms/packing.js
Normal file
88
klp-ui/src/api/wms/packing.js
Normal file
@@ -0,0 +1,88 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询打包单据列表
|
||||
export function listPacking(query) {
|
||||
return request({
|
||||
url: '/wms/coilPackingRecord/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询打包单据详细
|
||||
export function getPacking(packingId) {
|
||||
return request({
|
||||
url: '/wms/coilPackingRecord/' + packingId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增打包单据
|
||||
export function addPacking(data) {
|
||||
return request({
|
||||
url: '/wms/coilPackingRecord',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改打包单据
|
||||
export function updatePacking(data) {
|
||||
return request({
|
||||
url: '/wms/coilPackingRecord',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除打包单据
|
||||
export function delPacking(packingId) {
|
||||
return request({
|
||||
url: '/wms/coilPackingRecord/' + packingId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询打包明细列表
|
||||
export function listPackingDetail(query) {
|
||||
return request({
|
||||
url: '/wms/coilPackingDetail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 新增打包明细
|
||||
export function addPackingDetail(data) {
|
||||
return request({
|
||||
url: '/wms/coilPackingDetail',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改打包明细
|
||||
export function updatePackingDetail(data) {
|
||||
return request({
|
||||
url: '/wms/coilPackingDetail',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除打包明细
|
||||
export function delPackingDetail(detailId) {
|
||||
return request({
|
||||
url: '/wms/coilPackingDetail/' + detailId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 创建打包单据及明细
|
||||
export function createPacking(data) {
|
||||
return request({
|
||||
url: '/wms/coilPackingRecord/execute',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
288
klp-ui/src/api/wms/packing.test.js
Normal file
288
klp-ui/src/api/wms/packing.test.js
Normal file
@@ -0,0 +1,288 @@
|
||||
/**
|
||||
* 打包模块 API 测试用例
|
||||
* 测试打包单据和明细表相关的 API 接口
|
||||
*/
|
||||
|
||||
import { expect, test, describe, beforeEach, afterEach, jest } from '@jest/globals';
|
||||
|
||||
// Mock request 模块
|
||||
jest.mock('@/utils/request', () => ({
|
||||
default: jest.fn(() => Promise.resolve({ code: 200, data: {} }))
|
||||
}));
|
||||
|
||||
import {
|
||||
listPacking,
|
||||
getPacking,
|
||||
addPacking,
|
||||
updatePacking,
|
||||
delPacking,
|
||||
listPackingDetail,
|
||||
listPackedCoil,
|
||||
addPackingDetail,
|
||||
updatePackingDetail,
|
||||
delPackingDetail,
|
||||
batchAddPackingDetail,
|
||||
getPackingByNo,
|
||||
submitPacking,
|
||||
cancelSubmitPacking
|
||||
} from './packing';
|
||||
|
||||
import request from '@/utils/request';
|
||||
|
||||
describe('Packing API Tests', () => {
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
describe('打包单据主表 API', () => {
|
||||
test('listPacking - 查询打包单据列表', () => {
|
||||
const query = {
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
packingNo: 'PK20260323001'
|
||||
};
|
||||
|
||||
listPacking(query);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
});
|
||||
|
||||
test('getPacking - 查询单个打包单据详情', () => {
|
||||
const packingId = '1';
|
||||
|
||||
getPacking(packingId);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/1',
|
||||
method: 'get'
|
||||
});
|
||||
});
|
||||
|
||||
test('addPacking - 新增打包单据', () => {
|
||||
const data = {
|
||||
batchNo: 'BATCH001',
|
||||
packingDate: '2026-03-23',
|
||||
team: '甲',
|
||||
operator: '张三',
|
||||
remark: '测试备注'
|
||||
};
|
||||
|
||||
addPacking(data);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
});
|
||||
|
||||
test('updatePacking - 修改打包单据', () => {
|
||||
const data = {
|
||||
packingId: '1',
|
||||
batchNo: 'BATCH001',
|
||||
packingDate: '2026-03-23',
|
||||
team: '甲',
|
||||
operator: '张三',
|
||||
remark: '修改后的备注'
|
||||
};
|
||||
|
||||
updatePacking(data);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
});
|
||||
|
||||
test('delPacking - 删除打包单据', () => {
|
||||
const packingId = '1';
|
||||
|
||||
delPacking(packingId);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/1',
|
||||
method: 'delete'
|
||||
});
|
||||
});
|
||||
|
||||
test('getPackingByNo - 根据单据号查询打包单据', () => {
|
||||
const packingNo = 'PK20260323001';
|
||||
|
||||
getPackingByNo(packingNo);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/no/PK20260323001',
|
||||
method: 'get'
|
||||
});
|
||||
});
|
||||
|
||||
test('submitPacking - 提交打包单据', () => {
|
||||
const packingId = '1';
|
||||
|
||||
submitPacking(packingId);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/submit/1',
|
||||
method: 'post'
|
||||
});
|
||||
});
|
||||
|
||||
test('cancelSubmitPacking - 取消提交打包单据', () => {
|
||||
const packingId = '1';
|
||||
|
||||
cancelSubmitPacking(packingId);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/cancelSubmit/1',
|
||||
method: 'post'
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('打包明细表 API', () => {
|
||||
test('listPackingDetail - 查询打包明细列表', () => {
|
||||
const query = {
|
||||
packingId: '1',
|
||||
pageNum: 1,
|
||||
pageSize: 20
|
||||
};
|
||||
|
||||
listPackingDetail(query);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packingDetail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
});
|
||||
|
||||
test('addPackingDetail - 新增打包明细', () => {
|
||||
const data = {
|
||||
packingId: '1',
|
||||
coilId: '1001',
|
||||
coilNo: '26L0312345',
|
||||
itemName: '镀锌板',
|
||||
specification: '1.0*1000*C',
|
||||
material: 'DX51D+Z',
|
||||
netWeight: 5.5,
|
||||
beforePosition: 'A区01号位',
|
||||
afterPosition: ''
|
||||
};
|
||||
|
||||
addPackingDetail(data);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packingDetail',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
});
|
||||
|
||||
test('updatePackingDetail - 修改打包明细', () => {
|
||||
const data = {
|
||||
detailId: '1',
|
||||
packingId: '1',
|
||||
afterPosition: 'B区02号位'
|
||||
};
|
||||
|
||||
updatePackingDetail(data);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packingDetail',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
});
|
||||
|
||||
test('delPackingDetail - 删除打包明细', () => {
|
||||
const detailId = '1';
|
||||
|
||||
delPackingDetail(detailId);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packingDetail/1',
|
||||
method: 'delete'
|
||||
});
|
||||
});
|
||||
|
||||
test('batchAddPackingDetail - 批量新增打包明细', () => {
|
||||
const data = [
|
||||
{
|
||||
packingId: '1',
|
||||
coilId: '1001',
|
||||
coilNo: '26L0312345',
|
||||
itemName: '镀锌板',
|
||||
specification: '1.0*1000*C',
|
||||
material: 'DX51D+Z',
|
||||
netWeight: 5.5,
|
||||
beforePosition: 'A区01号位',
|
||||
afterPosition: ''
|
||||
},
|
||||
{
|
||||
packingId: '1',
|
||||
coilId: '1002',
|
||||
coilNo: '26L0312346',
|
||||
itemName: '镀锌板',
|
||||
specification: '1.0*1000*C',
|
||||
material: 'DX51D+Z',
|
||||
netWeight: 5.2,
|
||||
beforePosition: 'A区02号位',
|
||||
afterPosition: ''
|
||||
}
|
||||
];
|
||||
|
||||
batchAddPackingDetail(data);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packingDetail/batch',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('已打包钢卷查询 API', () => {
|
||||
test('listPackedCoil - 查询已打包钢卷列表', () => {
|
||||
const query = {
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
packingNo: 'PK20260323001',
|
||||
batchNo: 'BATCH001',
|
||||
coilNo: '26L0312345',
|
||||
team: '甲'
|
||||
};
|
||||
|
||||
listPackedCoil(query);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/packedCoilList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
});
|
||||
|
||||
test('listPackedCoil - 带日期范围参数查询已打包钢卷', () => {
|
||||
const query = {
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
params: {
|
||||
beginPackingDate: '2026-03-01',
|
||||
endPackingDate: '2026-03-31'
|
||||
}
|
||||
};
|
||||
|
||||
listPackedCoil(query);
|
||||
|
||||
expect(request).toHaveBeenCalledWith({
|
||||
url: '/wms/packing/packedCoilList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user