Files
6098-5/Cowain.Preheat.Common/CsvMap/BatteryMapConverter.cs
T
2026-05-28 22:11:13 +08:00

63 lines
2.2 KiB
C#

using Cowain.Preheat.Common.Converter;
using Cowain.Preheat.Model;
using CsvHelper;
using CsvHelper.Configuration;
using CsvHelper.TypeConversion;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Cowain.Preheat.Common.CsvMap
{
// 4. 创建CsvHelper自定义转换器
public class BatteryMapConverter : DefaultTypeConverter
{
private static readonly BatteryStatusConvertor _converter = new BatteryStatusConvertor();
public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
// 使用IValueConverter转换逻辑
return _converter.Convert(value, typeof(string), null, CultureInfo.InvariantCulture) as string;
}
}
// 5. 创建自定义ClassMap
//public sealed class BatteryInfoMap : ClassMap<TBatteryInfo>
public sealed class BatteryInfoMap : ClassMap<TBatteryInfo>
{
public BatteryInfoMap()
{
Map(m => m.Id).Name("电池虚拟码");
Map(m => m.ScanTime)
.Name("扫码时间")
.TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
Map(m => m.BatteryCode).Name("条码");
Map(m => m.ScannerPos).Name("扫码位置");
// 应用枚举描述转换器
Map(m => m.BatteryStatus)
.Name("状态")
.TypeConverter<BatteryMapConverter>();
Map(m => m.LoadingTime)
.Name("上料时间")
.TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
Map(m => m.PositionY).Name("列号");
Map(m => m.Layer).Name("层号");
Map(m => m.UnLoadingTime)
.Name("下料时间")
.TypeConverterOption.Format("yyyy-MM-dd HH:mm:ss");
Map(m => m.LodingTemperature).Name("上料温度");
Map(m => m.PreheatTemperature).Name("预热温度");
Map(m => m.UnLoadingTemperature).Name("下料温度");
Map(m => m.PreheatTime).Name("预热时长");
//public Nullable<byte> StoveNumber { get; set; }
//public string Desc { get; set; }
}
}
}