| Mục | Mô tả |
|---|---|
| Tên API tiếng Trung | Tạo dữ liệu phiếu nhận hàng gia công (Phiếu nhập hàng ủy thác) |
| CROSS API Code | outsourcing.purchase.stockin.create |
| MES taskName | outsourcingPurchaseStockinCreate |
| Đường dẫn ESB | /outsourcingPurchaseStockinCreate |
| Tham khảo DSMS | api-2062 / vid-4462 |
| Hướng gọi | MES → ERP |
| Điều kiện kích hoạt | TRANSTYPE = "59" |
| Định dạng Request | JSON (Content-Type: application/json) |
| Phương thức truyền | HTTP POST qua ESB |
| Đồng bộ/Bất đồng bộ | Gọi đồng bộ |
TransOrderDataToJson.java:648SendFormSbyJson.transferFormToJson()SendFormElementbyJson.getTransferFormHead/Body()XmlToERP_handler.sendToErpByESB()Content-Type: application/json (HttpClient.java:25)
| Trường | Loại | Bắt buộc | Mô tả | Nguồn MES |
|---|---|---|---|---|
| companyID | string | Y | Mã công ty | COMPANYID |
| userId | string | Y | Nhân viên thao tác | CONFIRMER |
| doAction | string | Y | 2=Phiếu điều chuyển | DOACTION |
| docase | string | Y | 1=Thêm mới | DOCASE |
| head | object | Y | Dữ liệu header | - |
| line | array | Y | Chi tiết | - |
| Trường | Loại | Bắt buộc | Mô tả | Nguồn MES |
|---|---|---|---|---|
| transferType | string | Y | Loại phiếu điều chuyển (59=Gia công) → ERP: doc_type_no | TRANSTYPE |
| date | string | Y | Ngày chứng từ YYYY-MM-DD → ERP: receipt_date | TRANSDATE |
| moveOutType | string | Y | Loại xuất | OUTTYPE |
| moveOutCode | string | Y | Mã xuất → ERP: supplier_no | OUTDEPID |
| moveInType | string | Y | Loại nhập | INTYPE |
| moveInCode | string | Y | Mã nhập (Kho) | INDEPID |
| factoryCode | string | Y | Mã nhà máy | FACTORYID |
| remark | string | N | Ghi chú → ERP: remark | COMMENT |
| create | string | N | Nhân viên thao tác → ERP: operator_no | CONFIRMER |
| eMESTransferType | string | Y | Loại MES | TRANSTYPE |
| eMESTransferCode | string | Y | Số MES | TRANSNO |
| source_no | string | Y | Số nguồn (Loại MES-Số) | eMESTransferType + "-" + eMESTransferCode |
| Trường | Loại | Bắt buộc | Mô tả | Nguồn MES |
|---|---|---|---|---|
| moType | string | Y | Loại lệnh SX (kết hợp thành ERP: wo_no) | MOTYPE |
| moCode | string | Y | Số lệnh SX (kết hợp thành ERP: wo_no) | MONO |
| moveOutOpSeq | string | Y | Số thứ tự công đoạn xuất | OUTOPSEQ |
| moveOutOpId | string | Y | Công đoạn xuất → ERP: op_no (Head) | OUTOP |
| qty | decimal | Y | Số lượng → ERP: qty | TRANSQTY |
| unit | string | Y | Đơn vị → ERP: unit_no | UNIT |
| batchCode | string | Y | Số lô → ERP: lot_no | LOTNO |
| prodCode | string | Y | Mã sản phẩm → ERP: item_no | ITEMID |
| acceptanceQty | decimal | N | Số lượng nghiệm thu → ERP: receipt_qty | TL002 |
| inspectionReturnQty | decimal | N | Số lượng trả kiểm → ERP: return_qty | TL003 |
| scrapQty | decimal | N | Số lượng phế phẩm → ERP: scrap_qty | SCRAPQTY |
| valuationQty | decimal | N | Số lượng tính giá → ERP: valuation_qty | VALUATIONQTY |
| moveInLocation | string | N | Vị trí nhập → ERP: storage_spaces_no | INSTORAGESPACE |
| remark | string | N | Ghi chú → ERP: body_remark | NOTE |
| outSourceType | string | N | Loại đơn ủy thác | OUTORDERTYPE |
| outSourceCode | string | N | Số đơn ủy thác | OUTORDERNO |
| Trường | Loại | Mô tả |
|---|---|---|
| code | int | 200=Thành công, khác=Thất bại |
| msg | string | Thông báo kết quả xử lý |
| TB001 | string | Loại ERP → Ghi vào TL011 |
| TB002 | string | Số ERP → Ghi vào TL012 |
| # | Mục kiểm tra | Quy tắc | Vị trí chương trình |
|---|---|---|---|
| 1 | Phán đoán TRANSTYPE | = "59" mới dùng API gia công | TransOrderDataToJson.java:648 |
| 2 | Kiểm tra TO013 | = 1 mới gửi ERP | TransOrderDataToJson.java:612 |
| 3 | Tồn tại dữ liệu chi tiết | SFT_TRANSORDER_LINE_GRID không được rỗng | TransOrderDataToJson.java:609 |
| 4 | Kết nối ERP | SFTConfig.isHasERP() = true | TransOrderDataToJson.java:646 |
| Mã | Thông báo | Mô tả |
|---|---|---|
| E001 | Thiếu trường bắt buộc | Request thiếu trường cần thiết |
| E002 | Lệnh SX gia công không tồn tại | MOTYPE-MONO sai |
| E003 | Trạng thái lệnh SX gia công không cho phép | Lệnh SX đã đóng hoặc hủy |
| E004 | Số lượng phải lớn hơn 0 | qty ≤ 0 |
| E005 | Số lượng vượt quá số dư | Vượt quá số lượng có thể nhập kho của lệnh SX gia công |
| E999 | Lỗi hệ thống | Timeout, lỗi kết nối |
{
"companyID": "COMP01",
"userId": "EMP001",
"doAction": "2",
"docase": "1",
"head": {
"transferType": "59", // → ERP: doc_type_no
"date": "2026-03-19", // → ERP: receipt_date
"moveOutType": "1",
"moveOutCode": "OS001", // → ERP: supplier_no
"moveInType": "2",
"moveInCode": "FG01",
"factoryCode": "P001",
"remark": "Nhập hàng gia công", // → ERP: remark
"create": "EMP001", // → ERP: operator_no
"eMESTransferType": "59",
"eMESTransferCode": "T20260319001"
},
"line": [{
"moType": "5101",
"moCode": "20260319001",
"moveOutOpSeq": "0020",
"moveOutOpId": "OS-OP", // → ERP Head: op_no
"qty": 100, // → ERP: qty
"unit": "PCS", // → ERP: unit_no
"batchCode": "LOT20260319001", // → ERP: lot_no
"prodCode": "FG-A001-001", // → ERP: item_no
"acceptanceQty": 98, // → ERP: receipt_qty (Số lượng nghiệm thu)
"inspectionReturnQty": 1, // → ERP: return_qty (Số lượng trả kiểm)
"scrapQty": 1, // → ERP: scrap_qty (Số lượng phế phẩm)
"valuationQty": 98, // → ERP: valuation_qty (Số lượng tính giá)
"moveInLocation": "A-01-01", // → ERP: storage_spaces_no
"remark": "Chất lượng tốt", // → ERP: body_remark
"outSourceType": "5902",
"outSourceCode": "20260319001"
}]
}
{
"code": 200,
"msg": "Tạo phiếu nhập hàng gia công thành công",
"TB001": "5902",
"TB002": "20260319001"
}
{
"code": 500,
"msg": "Lệnh SX gia công không tồn tại 5101-20260319999"
}