wanshenmean
7 天以前 37acb8358f5602a9013ee29c04a45e33483c2329
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -113,6 +113,20 @@
        }
        /// <summary>
        /// 按设备编码获取当前机器人的执行中任务
        /// </summary>
        /// <remarks>
        /// 从数据库中查询指定设备编码的执行中机器人任务。
        /// 当RobotArmObject为1(有物料)且没有待处理任务时调用。
        /// </remarks>
        /// <param name="robotCrane">机器人设备信息,包含设备编码</param>
        /// <returns>执行中的任务对象,如果没有则返回 null</returns>
        public Dt_RobotTask? GetExecutingTask(RobotCraneDevice robotCrane)
        {
            return _robotTaskService.QueryRobotCraneExecutingTask(robotCrane.DeviceCode);
        }
        /// <summary>
        /// 删除机器人任务
        /// </summary>
        /// <remarks>
@@ -208,7 +222,7 @@
            // 根据巷道名称判断仓库 ID
            // ZYRB1 -> 1, HPRB001 -> 2, 其他 -> 3
            int warehouseId = currentTask.RobotRoadway == "ZYRB1" ? 1 : currentTask.RobotRoadway == "HPRB001" ? 2 : 3;
            int warehouseId = currentTask.RobotRoadway == "注液组盘机械手" ? 1 : currentTask.RobotRoadway == "HPRB001" ? 2 : 3;
            // 任务类型(0 表示未定义,稍后根据任务类型设置)
            int taskType = 0;
@@ -303,7 +317,8 @@
            }
            // 解析返回的任务信息
            var taskInfo = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToJson() ?? string.Empty) ?? new Dt_Task();
            var taskInfos = JsonConvert.DeserializeObject<List<Dt_Task>>(content.Data.ToJson() ?? string.Empty) ?? new List<Dt_Task>();
            var taskInfo = taskInfos.FirstOrDefault();
            // 获取源地址
            string sourceAddress = taskDTO.SourceAddress;
@@ -363,6 +378,9 @@
                // 目标输送线编号
                TargetLineNo = state.CurrentTask.RobotTargetAddressLineCode,
                // 巷道编号(机器人名称)
                Roadway = state.CurrentTask.RobotRoadway,
                // 电池位置详情列表
                // 过滤掉位置为 0 或负数的无效数据
                // 按位置编号排序
@@ -373,7 +391,7 @@
                    .Select((x, idx) => new StockDetailDTO
                    {
                        // 数量:如果已有任务总数,使用任务总数+当前位置数;否则只使用当前位置数
                        Quantity = state.RobotTaskTotalNum > 0 ? state.RobotTaskTotalNum + positions.Length : positions.Length,
                        Quantity = 1,
                        // 通道/位置编号
                        Channel = x,