wanshenmean
6 天以前 5171d3f59b89389bf75293afd210cfa6de4ccff7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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;
        }
    }
}