namespace WIDESEAWCS_Tasks
|
{
|
/// <summary>
|
/// 机械手条码生成器 - 负责生成托盘条码
|
/// </summary>
|
/// <remarks>
|
/// 条码格式:前缀(可选)+ 日期(yyyyMMdd)+ 时间(HHmmss)+ 随机数(100-999)
|
/// 例如:TRAY20260326093045123
|
/// </remarks>
|
public static class RobotBarcodeGenerator
|
{
|
/// <summary>
|
/// 生成托盘条码
|
/// </summary>
|
/// <param name="prefix">条码前缀,默认为空字符串,例如 "TRAY"</param>
|
/// <returns>生成的条码字符串,格式:前缀+日期+时间+随机数</returns>
|
public static string GenerateTrayBarcode(string prefix = "")
|
{
|
// 获取当前日期,格式化为 yyyyMMdd(8位数字)
|
// 例如:20260326
|
string datePart = DateTime.Now.ToString("yyyyMMdd");
|
|
// 获取当前时间(时分秒),格式化为 HHmmss(6位数字)
|
// 例如:093045 表示 09:30:45
|
string timePart = DateTime.Now.ToString("HHmmss");
|
|
// 生成3位随机数,范围 100-999,确保条码唯一性
|
// 使用 Random.Shared 获取线程安全的随机数生成器
|
string randomPart = Random.Shared.Next(100, 1000).ToString();
|
|
// 组合所有部分:前缀 + 日期 + 时间 + 随机数
|
// 如果前缀为空,则直接返回日期+时间+随机数的组合
|
return prefix + datePart + timePart + randomPart;
|
}
|
}
|
}
|