| | |
| | | /// <summary> |
| | | /// 机械手条码生成器 - 负责生成托盘条码 |
| | | /// </summary> |
| | | /// <remarks> |
| | | /// 条码格式:前缀(可选)+ 日期(yyyyMMdd)+ 时间(HHmmss)+ 随机数(100-999) |
| | | /// 例如:TRAY20260326093045123 |
| | | /// </remarks> |
| | | public static class RobotBarcodeGenerator |
| | | { |
| | | /// <summary> |
| | | /// 生成托盘条码 |
| | | /// </summary> |
| | | /// <param name="prefix">条码前缀,默认为空</param> |
| | | /// <returns>生成的条码字符串</returns> |
| | | /// <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; |
| | | } |
| | | } |