yanjinhui
6 小时以前 d878d164699ad5eafb1241b1de0a108ff79d18a4
优化跨楼层任务
已修改4个文件
198 ■■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HoistEnum.cs 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HoistEnum.cs
@@ -85,7 +85,166 @@
        /// <summary>
        /// 4楼出库扫码完成信号
        /// </summary>
        ROutScanningCompletionSignal
        ROutScanningCompletionSignal,
        #region æå‡æœºæŠ¥è­¦ä¿¡æ¯
        /// <summary>
        /// ç”µæ»šç­’3楼报警A301
        /// </summary>
        R_ElectricDrumA301,
        /// <summary>
        /// ç”µæ»šç­’3楼报警A302
        /// </summary>
        R_ElectricDrumA302,
        /// <summary>
        /// ç”µæ»šç­’3楼报警A303
        /// </summary>
        R_ElectricDrumA303,
        /// <summary>
        /// ç”µæ»šç­’3楼报警A304
        /// </summary>
        R_ElectricDrumA304,
        /// <summary>
        /// ç”µæ»šç­’3楼报警A305
        /// </summary>
        R_ElectricDrumA305,
        /// <summary>
        /// ç”µæ»šç­’3楼报警A306
        /// </summary>
        R_ElectricDrumA306,
        /// <summary>
        /// ç”µæ»šç­’3楼报警A307
        /// </summary>
        R_ElectricDrumA307,
        /// <summary>
        /// ç”µæ»šç­’3楼提升机1报警T001
        /// </summary>
        R_ElectricDrumT001,
        /// <summary>
        /// æå‡æœº1变频器报警
        /// </summary>
        R_InverterAlarm,
        /// <summary>
        /// ç”µæ»šç­’4楼报警A401
        /// </summary>
        R_ElectricDrumA401,
        /// <summary>
        /// ç”µæ»šç­’4楼报警A402
        /// </summary>
        R_ElectricDrumA402,
        /// <summary>
        /// ç”µæ»šç­’4楼报警A403
        /// </summary>
        R_ElectricDrumA403,
        /// <summary>
        /// ç”µæ»šç­’4楼报警A404
        /// </summary>
        R_ElectricDrumA404,
        /// <summary>
        /// ç”µæ»šç­’4楼报警A405
        /// </summary>
        R_ElectricDrumA405,
        /// <summary>
        /// ç”µæ»šç­’4楼报警A406
        /// </summary>
        R_ElectricDrumA406,
        /// <summary>
        /// ç”µæ»šç­’4楼报警A407
        /// </summary>
        R_ElectricDrumA407,
        /// <summary>
        /// æå‡æœº2变频器报警
        /// </summary>
        R_ElectricDrumT002,
        /// <summary>
        /// æå‡æœº1上限位报警
        /// </summary>
        R_UpperlimitAlarm1,
        /// <summary>
        /// æå‡æœº1下限位报警
        /// </summary>
        R_LowerlimitAlarm1,
        /// <summary>
        /// æå‡æœº2上限位报警
        /// </summary>
        R_UpperlimitAlarm2,
        /// <summary>
        /// æå‡æœº2下限位报警
        /// </summary>
        R_LowerlimitAlarm2,
        /// <summary>
        /// è¯»ç å™¨3楼扫码异常
        /// </summary>
        R_ScancodeError1,
        /// <summary>
        /// è¯»ç å™¨4楼扫码异常
        /// </summary>
        R_ScancodeError2,
        /// <summary>
        /// ç”µæŸœæ€¥åœ3楼
        /// </summary>
        R_EmergencSytop1,
        /// <summary>
        ///  ç”µæŸœæ€¥åœ4楼
        /// </summary>
        R_EmergencSytop2,
        /// <summary>
        ///提升机急停3楼
        /// </summary>
        R_TSJEmergencSytop1,
        /// <summary>
        /// æå‡æœºæ€¥åœ4楼
        /// </summary>
        R_TSJEmergencSytop2,
        /// <summary>
        /// ç”µæ»šç­’4楼报警T002
        /// </summary>
        R_DrumAlarmT002,
        /// <summary>
        /// å¤‡ç”¨1
        /// </summary>
        R_TSJSpare1,
        /// <summary>
        /// å¤‡ç”¨1
        /// </summary>
        R_TSJSpare2,
        #endregion
    }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/KLSTaskMethods.cs
@@ -365,14 +365,16 @@
                    TargetAddress = taskDTO.toLocationCode,
                    Creater = "WMS",
                };
                content = SendHIKROBOTTask(dt_Task);
                if (!content.Status) throw new Exception(content.Message);
                dt_Task.Dispatchertime = DateTime.Now;
                BaseDal.AddData(dt_Task);
                return content.OK(data: new
                {
                    taskCode = taskDTO.taskCode,
                    Message = "成功"
                });
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs
@@ -71,6 +71,7 @@
                                if (content.Status)
                                {
                                    item.TaskState = (int)TaskStatusEnum.Execut;
                                    _taskService.UpdateData(item);
                                }
                            }
                            else
@@ -85,11 +86,13 @@
                                    {
                                        // åŽŸä»»åŠ¡çŠ¶æ€æ”¹ä¸ºç­‰å¾…ç©ºè½¦
                                        item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
                                        _taskService.UpdateData(item);
                                    }
                                }
                                else
                                {
                                    item.ExceptionMessage = "未找到可用AGV小车";
                                    _taskService.UpdateData(item);
                                }
                            }
                        }
@@ -97,6 +100,7 @@
                    else
                    {
                        item.ExceptionMessage = "获取AGV小车信息失败";
                        _taskService.UpdateData(item);
                    }
                }
                else if (item.TaskType == (int)TaskTypeEnum.F01)
@@ -111,7 +115,7 @@
                        {
                            // ä»Žä»»åŠ¡çš„èµ·å§‹åœ°å€ä¸­æå–éœ€è¦çš„æ¥¼å±‚ä»£ç 
                            string requiredMapCode = GetMapCodeFromAddress(item.SourceAddress);
                            if (string.IsNullOrEmpty(requiredMapCode))
                            if (requiredMapCode==null)
                            {
                                item.ExceptionMessage = $"无法从目标地址 {item.SourceAddress} ä¸­è¯†åˆ«æ¥¼å±‚信息";
                                _taskService.UpdateData(item);
@@ -128,6 +132,7 @@
                                if (content.Status)
                                {
                                    item.TaskState = (int)TaskStatusEnum.Execut;
                                    _taskService.UpdateData(item);
                                }
                            }
                            else
@@ -141,17 +146,18 @@
                                    if (callCarResult.Status)
                                    {
                                        item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
                                        _taskService.UpdateData(item);
                                    }
                                }
                                else
                                {
                                    item.ExceptionMessage = "未找到可用AGV小车";
                                    _taskService.UpdateData(item);
                                }
                            }
                        }
                    }
                }
                _taskService.UpdateData(item);
            }
        }
@@ -263,20 +269,16 @@
        private string GetMapCodeFromAddress(string address)
        {
            if (string.IsNullOrEmpty(address))
            {
                return null;
            }
            // åœ°å€æ ¼å¼ç¤ºä¾‹ ï¼šAA å¯¹åº” 0339050AA0309145
            // keys æ˜¯ AA、BB、CC、DD、EE、FF,vule是对应的点位信息
            foreach (var floorCode in FloorMapping.FloorMap.Keys)
            else
            {
                if (address.Contains(floorCode))
                {
                    return floorCode;//返回的就是AA、BB、CC、DD、EE、FF中的一个,代表对应的楼层
                }
                var reslut = _stationInfoService.Repository.QueryFirst(x => x.StationCode == address);
                return reslut.FloorNumber;
            }
            return null;
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs
@@ -13,6 +13,7 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_Core.BaseRepository;
@@ -38,8 +39,9 @@
        private readonly ITrackloginfoService _trackloginfoService;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IAGVCartInfoService _agvcartInfoService;
        private readonly IStationInfoService _stationInfoService;
        public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService, IStationMangerService stationMangerService, ITrackloginfoService trackloginfoService, IUnitOfWorkManage unitOfWorkManage, IAGVCartInfoService agvcartInfoService)
        public TaskJob(ITaskService taskService, IApiInfoService apiInfoService, IRGVLocationInfoService rGVLocationInfoService, IStationMangerService stationMangerService, ITrackloginfoService trackloginfoService, IUnitOfWorkManage unitOfWorkManage, IAGVCartInfoService agvcartInfoService, IStationInfoService stationInfoService)
        {
            _taskService = taskService;//注入
            _apiInfoService = apiInfoService;
@@ -48,6 +50,7 @@
            _trackloginfoService = trackloginfoService;
            _unitOfWorkManage = unitOfWorkManage;
            _agvcartInfoService = agvcartInfoService;
            _stationInfoService = stationInfoService;
        }
        public Task Execute(IJobExecutionContext context)