增加固体饮料批号初版

This commit is contained in:
2026-04-29 09:52:08 +08:00
parent 7f7eb32ca3
commit add4308b91
17 changed files with 354 additions and 90 deletions

View File

@@ -31,7 +31,12 @@ namespace FATrace.Model
/// <summary>
/// 批号
/// </summary>
public string Batch { get; set; }
public string Batch { get; set; } = string.Empty;
/// <summary>
/// 固体饮料批次
/// </summary>
public string SolidBeveBatch { get; set; } = string.Empty;
/// <summary>
/// 重量(第三段解析后的实际数值,比如 802 -> 80.2
@@ -69,21 +74,28 @@ namespace FATrace.Model
}
var parts = text.Split(',');
if (parts.Length != 6)
if (parts.Length != 7)
{
throw new ArgumentException($"二维码格式不正确,预期 6 段,实际为 {parts.Length} 段。内容:{text}", nameof(text));
throw new ArgumentException($"二维码格式不正确,预期 7 段,实际为 {parts.Length} 段。内容:{text}", nameof(text));
}
var weightIndex = 3;
var shelfLifeIndex = 4;
var rawSourceIndex = 5;
var seqIndex = 6;
var model = new QRModel
{
RawText = text.Trim(),
RawCode = parts[0].Trim(),
Batch = parts[1].Trim(),
RawSource = parts[4].Trim()
RawSource = parts[rawSourceIndex].Trim()
};
model.SolidBeveBatch = parts[2].Trim();
// 重量3/4 位数字,末位为小数位,例如 802 -> 80.2
var weightCode = parts[2].Trim();
var weightCode = parts[weightIndex].Trim();
if (!int.TryParse(weightCode, out var weightInt))
{
throw new ArgumentException($"重量段不是有效数字:{weightCode}", nameof(text));
@@ -92,7 +104,7 @@ namespace FATrace.Model
model.Weight = weightInt / 10m;
// 保质期(月)
var shelfText = parts[3].Trim();
var shelfText = parts[shelfLifeIndex].Trim();
if (!int.TryParse(shelfText, out var shelfMonths) || shelfMonths < 0)
{
throw new ArgumentException($"保质期(月)不是有效数字:{shelfText}", nameof(text));
@@ -100,7 +112,7 @@ namespace FATrace.Model
model.ShelfLife = shelfMonths;
// 当日序号
var seqText = parts[5].Trim();
var seqText = parts[seqIndex].Trim();
if (!int.TryParse(seqText, out var seq) || seq < 0)
{
throw new ArgumentException($"当日生产序号不是有效数字:{seqText}", nameof(text));