ข้อมูลพื้นฐาน

ชื่อ API
conversion.unit.get
ชื่อเมธอด
upConversionUnitCROSS
ตารางเป้าหมาย
ITEM_CONVERSION_UNIT
โหนด JSON
Conversionunit
Primary Key
ITEM_NO + CONVERSION_UNIT
ตำแหน่งโปรแกรม
RegularESB.java (ใหม่)

พารามิเตอร์คำขอ

ฟิลด์ประเภทจำเป็นคำอธิบาย
data_timeStringจำเป็นวันที่เริ่มต้นเปลี่ยนแปลงข้อมูล (รูปแบบ: yyyy-MM-dd)
ตรรกะพารามิเตอร์ data_time
การรันครั้งแรก: ใช้วันที่ปัจจุบัน
การรันครั้งต่อไป: ใช้ LAST_SUCCESS_TIME จากตาราง EAI_PARAMETER
การนำเข้าทันที: ใช้วันที่ที่ระบุจากส่วนหน้า

ฟิลด์การตอบกลับ

ฟิลด์ ERPฟิลด์ MESประเภทคำอธิบาย
item_noITEM_NONVARCHAR(40)รหัสสินค้า (Primary Key รวม)
conversion_unitCONVERSION_UNITNVARCHAR(10)หน่วยแปลง (Primary Key รวม)
molecularCONVERSION_RATE_MOLECULARDECIMAL(18,6)ตัวเศษอัตราแปลง
denominatorCONVERSION_RATE_DENOMINATORDECIMAL(18,6)ตัวส่วนอัตราแปลง
remarkREMARKNVARCHAR(255)หมายเหตุ
tran_statusTRAN_STATUSNVARCHAR(10)สถานะธุรกรรม

ตัวอย่างการตอบกลับ

{
  "Conversionunit": [
    {
      "item_no": "ITEM-001",
      "conversion_unit": "BOX",
      "molecular": "1",
      "denominator": "500",
      "remark": "500 ชิ้นต่อกล่อง",
      "tran_status": "AU"
    }
  ]
}

ตรรกะการประมวลผล

การออกแบบ Primary Key รวม
ใช้ ITEM_NO (รหัสสินค้า) + CONVERSION_UNIT (หน่วยแปลง) เป็น Primary Key รวม

รหัสสินค้าเดียวกันสามารถตั้งค่าหลายหน่วยแปลงได้ เช่น:
• ITEM-001 + BOX (กล่อง)
• ITEM-001 + CTN (ลังกระดาษ)
• ITEM-001 + PAL (พาเลท)
การป้องกันตัวส่วน
ตัวส่วนอัตราแปลง (DENOMINATOR) ไม่สามารถเป็น 0 ได้ โปรแกรมจะตั้งค่าเป็น 1 อัตโนมัติ:
IF denominator = 0 THEN denominator = 1
บันทึก EAI_PARAMETER
หลังจากการซิงค์ครั้งแรกสำเร็จ ระบบจะสร้างบันทึกในตาราง EAI_PARAMETER
การรันครั้งต่อไปจะใช้ LAST_SUCCESS_TIME เป็นพารามิเตอร์ data_time โดยอัตโนมัติ

การคำนวณอัตราแปลง

สูตรการแปลง
อัตราแปลง = ตัวเศษ (MOLECULAR) ÷ ตัวส่วน (DENOMINATOR)

ตัวอย่าง: 500 PCS = 1 BOX
ตัวเศษ = 1, ตัวส่วน = 500, อัตราแปลง = 0.002

SQL อัปเดตฐานข้อมูล

ตรวจสอบเพิ่มหรือแก้ไข

SELECT COUNT(1) FROM ITEM_CONVERSION_UNIT
WHERE ITEM_NO = N'{item_no}' AND CONVERSION_UNIT = N'{conversion_unit}'
-- count > 0 → UPDATE, count = 0 → INSERT

INSERT (เพิ่มหน่วยแปลง)

INSERT INTO ITEM_CONVERSION_UNIT (
    ITEM_NO, CONVERSION_UNIT,
    CONVERSION_RATE_MOLECULAR, CONVERSION_RATE_DENOMINATOR,
    REMARK, TRAN_STATUS, SYNC_TIME, CREATE_TIME, UPDATE_TIME
) VALUES (
    :ITEM_NO,
    :CONVERSION_UNIT,
    :molecular,
    :denominator,
    :remark,
    :tran_status,
    N'{เวลาปัจจุบัน}',
    N'{เวลาปัจจุบัน}',
    N'{เวลาปัจจุบัน}'
)

UPDATE (แก้ไขหน่วยแปลง)

UPDATE ITEM_CONVERSION_UNIT SET
    CONVERSION_RATE_MOLECULAR = :molecular,
    CONVERSION_RATE_DENOMINATOR = :denominator,
    REMARK = :remark,
    TRAN_STATUS = :tran_status,
    UPDATE_TIME = N'{เวลาปัจจุบัน}'
WHERE ITEM_NO = :ITEM_NO AND CONVERSION_UNIT = :CONVERSION_UNIT
ค่าเริ่มต้นของฟิลด์
ถ้า ERP ไม่ส่งคืนฟิลด์ต่อไปนี้ จะใช้ค่าเริ่มต้นอัตโนมัติ:
• CONVERSION_RATE_MOLECULAR = 1
• CONVERSION_RATE_DENOMINATOR = 1 (ไม่สามารถเป็น 0)
• REMARK = '' (สตริงว่าง)
• TRAN_STATUS = '' (สตริงว่าง)