using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
namespace Mirle.Component.API.WarehouseExecutionSystem.Models
{
///
/// 檢查載具及物料編號請求類別
///
public class TW009CheckCarrierIDRequestDto : CommonMessage
{
///
/// 搬運命令序號
///
/// W[YYYYMMddHH][Seq * 5]
[Required, StringLength(16), JsonPropertyName("cmd_sno"), JsonPropertyOrder(101)]
public string CommandSequnceNumber { get; set; }
///
/// 任務編號
///
/// A[YYYYMMddHH][Seq * 5]/P[YYYYMMddHH][Seq * 5]
[Required, StringLength(16), JsonPropertyName("task_id"), JsonPropertyOrder(102)]
public string TaskID { get; set; }
///
/// 軟體編號
///
[Required, StringLength(7), JsonPropertyName("software_id"), JsonPropertyOrder(103)]
public string SoftwareID { get; set; }
///
/// 站點編號
///
[Required, StringLength(9), JsonPropertyName("station_id"), JsonPropertyOrder(104)]
public string StationID { get; set; }
///
/// 載具邊號
///
[Required, JsonPropertyName("carrier_id"), JsonPropertyOrder(105)]
public string CarrierID { get; set; }
///
/// 物料編號清單
///
[JsonPropertyName("material_id"), JsonPropertyOrder(106)]
public List MaterialID { get; set; }
///
/// 物料重量
///
/// 單位: kgs
[JsonPropertyName("material_weigth"), JsonPropertyOrder(107)]
public int MaterialWeight { get; set; }
///
/// 取得檢查載具及物料編號請求
///
/// 交易名稱
/// 任務編號
/// 軟體編號
/// 站點編號
/// 載具編號
/// 物料編號清單
/// 物料重量
/// 檢查載具及物料編號請求
public static TW009CheckCarrierIDRequestDto Get(TransactionName transName, string taskID, string softwareID, string stationID,
string carrierID, List materialID = null, int materialWeight = default)
{
return new TW009CheckCarrierIDRequestDto()
{
Timetick = DateTime.Now,
TransactionName = transName.ToTransactionName(),
TaskID = taskID,
SoftwareID = softwareID,
StationID = stationID,
CarrierID = carrierID,
MaterialID = materialID,
MaterialWeight = materialWeight
};
}
}
///
/// 檢查載具及物料編號回應類別
///
public class FW010CheckCarrierIDResponseDto : CommonMessage
{
///
/// 搬運命令序號
///
/// W[YYYYMMddHH][Seq * 5]
[Required, StringLength(16), JsonPropertyName("cmd_sno"), JsonPropertyOrder(101)]
public string CommandSequnceNumber { get; set; }
///
/// 任務編號
///
/// P[YYYYMMDDHH][Sequnce * 5]
[Required, StringLength(16), JsonPropertyName("task_id"), JsonPropertyOrder(102)]
public string TaskID { get; set; }
///
/// 軟體編號
///
[Required, StringLength(7), JsonPropertyName("software_id"), JsonPropertyOrder(103)]
public string SoftwareID { get; set; }
///
/// 站點編號
///
[Required, StringLength(9), JsonPropertyName("station_id"), JsonPropertyOrder(104)]
public string StationID { get; set; }
///
/// 載具邊號
///
[Required, JsonPropertyName("carrier_id"), JsonPropertyOrder(105)]
public string CarrierID { get; set; }
///
/// 物料編號清單
///
[JsonPropertyName("material_id"), JsonPropertyOrder(106)]
public List MaterialID { get; set; }
///
/// 結果代碼
///
///
/// 0 = Success
/// 1 = Carrier ID Error
/// 2 = Material ID Error
///
[Required, JsonPropertyName("result_code"), JsonPropertyOrder(107)]
public CarrierIDInsepectResultCode ResultCode { get; set; }
///
/// 取得檢查載具編號及物料編號回應
///
/// 交易名稱
/// 搬運命令序號
/// 任務編號
/// 軟體編號
/// 站點編號
/// 載具編號
/// 結果代碼
/// 物料編號
/// 檢查載具編號及物料編號回應
public static FW010CheckCarrierIDResponseDto Get(TransactionName transName, string commandSequnceNumberm, string taskID, string softwareID, string stationID,
string carrierID, CarrierIDInsepectResultCode resultCode, List materialID = null)
{
return new FW010CheckCarrierIDResponseDto()
{
Timetick = DateTime.Now,
TransactionName = transName.ToTransactionName(),
CommandSequnceNumber = commandSequnceNumberm,
TaskID = taskID,
SoftwareID = softwareID,
StationID = stationID,
CarrierID = carrierID,
MaterialID = materialID,
ResultCode = resultCode
};
}
}
}