| | |
| | | } |
| | | |
| | | /// <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> |
| | |
| | | |
| | | // 根据巷道名称判断仓库 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; |
| | |
| | | } |
| | | |
| | | // 解析返回的任务信息 |
| | | 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; |
| | |
| | | // 目标输送线编号 |
| | | TargetLineNo = state.CurrentTask.RobotTargetAddressLineCode, |
| | | |
| | | // 巷道编号(机器人名称) |
| | | Roadway = state.CurrentTask.RobotRoadway, |
| | | |
| | | // 电池位置详情列表 |
| | | // 过滤掉位置为 0 或负数的无效数据 |
| | | // 按位置编号排序 |
| | |
| | | .Select((x, idx) => new StockDetailDTO |
| | | { |
| | | // 数量:如果已有任务总数,使用任务总数+当前位置数;否则只使用当前位置数 |
| | | Quantity = state.RobotTaskTotalNum > 0 ? state.RobotTaskTotalNum + positions.Length : positions.Length, |
| | | Quantity = 1, |
| | | |
| | | // 通道/位置编号 |
| | | Channel = x, |