sf-apple-sdk
Version:
Apple SF SDK for SF WMS
43 lines (42 loc) • 1.72 kB
JavaScript
// src/services/receipt-serial-number.service.ts
import { SERVICE_CODE } from '../constants/service.js';
import { post } from '../utils/post.js';
/**
* 入库序列号信息接口 Service 3.15 ✅
* ServiceCode = 'RECEIPT_SERIAL_NUMBER_SERVICE'
* 顺丰用来比对入库时扫描的序列号与接口传递的序列号
*/
export class InboundSnService {
constructor(options) {
this.options = options;
}
/**
* 给入库单添加序列号信息
* @param req ReceiptSerialNumberRequest
* @throws 如果 CompanyCode、ReceiptSerialNumber.WarehouseCode
* 或 ReceiptSerialNumber.ErpOrder 缺失,则抛 Error
*/
async addInboundSn(data) {
const body = data.receiptSerialNumber;
if (!body.ErpOrder ||
// 至少要有一个简单序列号
body.Pallets?.every((p) => p.Containers?.every((c) => !c.SerialNumberList?.length))) {
throw new Error('CompanyCode、ReceiptSerialNumber.WarehouseCode、ErpOrder 必填,且至少有一条 SerialNumberList');
}
const res = await post({
url: this.options.baseURL,
checkword: this.options.checkword,
sysSource: this.options.sysSource,
serviceCode: SERVICE_CODE.RECEIPT_SERIAL_NUMBER_SERVICE,
specialStr: this.options.specialStr,
body: {
CompanyCode: this.options.sysSource,
Checkword: this.options.checkword,
AccessCode: this.options.accessCode,
ServiceCode: SERVICE_CODE.RECEIPT_SERIAL_NUMBER_SERVICE,
ReceiptSerialNumber: data.receiptSerialNumber,
},
});
return res;
}
}