1
z8018
2025-06-10 e46aa927d231af83724683c7286d9db503e24cf7
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Gantry/GantryFJob.cs
@@ -18,8 +18,22 @@
namespace WIDESEAWCS_Tasks
{
    /// <summary>
    /// é¾™é—¨æž¶
    /// é¾™é—¨æž¶ä½œä¸šä»»åŠ¡ï¼Œç»§æ‰¿è‡ªJobBase并实现IJob接口。 <br/>
    /// é€šè¿‡[DisallowConcurrentExecution]特性禁止并发执行。
    /// </summary>
    /// <remarks>
    /// ä¸»è¦åŠŸèƒ½ï¼š  <br/>
    /// 1. æ ¹æ®è®¾å¤‡çŠ¶æ€ï¼ˆgantryStatus/gantryAutoStatus/gantryWorkStatus)触发任务执行逻辑 <br/>
    /// 2. å¤„理任务坐标计算与范围校验 <br/>
    /// 3. æ›´æ–°è®¾å¤‡PLC寄存器值和任务状态 <br/>
    /// 4. å®Œæˆä»»åŠ¡åŽå‘MES系统上报数据 <br/>
    /// ä¾èµ–服务: <br/>
    /// - ITaskRepository: ä»»åŠ¡ä»“å‚¨æœåŠ¡ <br/>
    /// - ITaskService: ä»»åŠ¡ä¸šåŠ¡æœåŠ¡  <br/>
    /// - IContainerItemRepository: å®¹å™¨ç‰©å“ä»“储 <br/>
    /// - WebSocketServer: WebSocket服务 <br/>
    /// - IOrderDetailsService: è®¢å•详情服务 <br/>
    /// </remarks>
    [DisallowConcurrentExecution]
    public class GantryFJob : JobBase, IJob
    {
@@ -40,9 +54,8 @@
        public Task Execute(IJobExecutionContext context)
        {
            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
            if (flag && value != null && value is OtherDevice)
            if (flag && value != null && value is OtherDevice otherDevice)
            {
                OtherDevice otherDevice = (OtherDevice)value;
                try
                {
                    byte gantryStatus = otherDevice.GetValue<GantryDBName, byte>(GantryDBName.GantryStatus);