using Edge.Core.Parser.BinaryParser.Attributes; using System; using static System.Globalization.CultureInfo; namespace HengShan_Pump_NonIC_Plus.MessageEntity { /// /// 0ABH----- (补流水) 0BBH:表示无该流水 /// 流水号2+加油量3+加油金额3+单价2+状态1+提枪时间7+升累计6+金额累计6+挂枪时间7+交易类型1+校验 /// public class GetTransactionResponse : NonICMessageTemplateResponseBase { [Format(2, EncodingType.BCD, 1)] public int SequenceNo { get; set; } [Format(3, EncodingType.BCD, 3)] public int 加油量 { get; set; } [Format(3, EncodingType.BCD, 6)] public int 加油金额 { get; set; } [Format(2, EncodingType.BCD, 9)] public int 单价 { get; set; } [Format(1, EncodingType.BIN, 10)] public byte Status { get; set; } [Format(7, EncodingType.BcdString, 12)] public string liftNozzle { get; set; } [Format(6, EncodingType.BcdString, 15)] public string volumeTotal { get; set; } [Format(6, EncodingType.BcdString, 16)] public string accountTotal { get; set; } [Format(7, EncodingType.BcdString, 18)] public string returnNozzle { get; set; } [Format(1, EncodingType.BIN, 20)] public byte trxType { get; set; } public DateTime 提枪时间 { get { return DateTime.ParseExact(liftNozzle, "yyyyMMddHHmmss", CurrentCulture); } set {; } } public ulong 升累计 { get { return ulong.Parse(volumeTotal); } set {; } } public ulong 金额累计 { get { return ulong.Parse(accountTotal); } set {; } } public DateTime 挂枪时间 { get { return DateTime.ParseExact(returnNozzle, "yyyyMMddHHmmss", CurrentCulture); } set {; } } public EnumTrxType 交易类型 { get { return (EnumTrxType)trxType; } set {; } } public override string ToLogString() { return $"流水号: {SequenceNo}, 加油量: {加油量}, 加油金额: {加油金额}, 单价: {单价}, Status: {Status}," + $" 提枪时间: {提枪时间:yyyy-MM-dd HH:mm:ss},\r\n 升累计: {升累计}," + $" 金额累计: {金额累计}, 挂枪时间: {挂枪时间:yyyy-MM-dd HH:mm:ss}, 交易类型: {交易类型}"; } } public enum EnumTrxType : byte { 脱机交易 = 0x00, 联网交易 = 0x01 } }