1
dengjunjie
2025-09-29 d9c99e0480b4910cdb134778dd5c314b35ec4cf2
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs
@@ -40,13 +40,13 @@
        private readonly ITaskService _taskService;
        private readonly ITaskRepository _taskRepository;
        private readonly ITaskHtyService _taskHtyService;
        private readonly IShuttleCarService _shuttleCarService;
        private readonly WIDESEAWCS_IShuttleCar.IShuttleCarService _shuttleCarService;
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
        private readonly IRouterService _routerService;
        private readonly ICacheService _cacheService;
        private readonly IMapper _mapper;
        public CommonShuttleCarJob(ITaskService taskService, ITaskRepository taskRepository, ITaskHtyService taskHtyService, IShuttleCarService shuttleCarService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, ICacheService cacheService, IMapper mapper)
        public CommonShuttleCarJob(ITaskService taskService, ITaskRepository taskRepository, ITaskHtyService taskHtyService, WIDESEAWCS_IShuttleCar.IShuttleCarService shuttleCarService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, ICacheService cacheService, IMapper mapper)
        {
            _taskService = taskService;
            _taskRepository = taskRepository;
@@ -85,9 +85,7 @@
                        }
                        #endregion
                        #region èŽ·å–å †åž›æœºç§»è½¦/移库完成任务
                        GetSC_CarFinish();
                        #endregion
                        GetSC_CarFinish();//堆垛机完成移车/移车充电/移库/入库任务
                        #region åˆ›å»ºç§»è½¦å……电任务
                        if (command.Err_Status == (short)ShuttleCarErr.LowBattery || command.ElectricQuantity <= (short)ShuttleCarErr.LowBattery)
@@ -105,7 +103,7 @@
                                        ShuttleCarTaskCommandR command1 = ReadCustomer<ShuttleCarTaskCommandR>(shuttleCar1, shuttleCar1.DeviceCode);//读取穿梭车信息
                                        if (command1 != null && command1.JoinStatus == 1)
                                        {
                                            if (command1.Status == (short)ShuttleCarStatus.Charging && command1.ElectricQuantity /*> command.ElectricQuantity*/ >= 50)
                                            if (command1.Status == (short)ShuttleCarStatus.Charging && command1.ElectricQuantity >= 50)
                                            {
                                                shuttleCar1.SetValue(ShuttleCarDBName.TaskType, (short)ShuttleCarStatus.QuitCharging);
                                            }
@@ -114,13 +112,26 @@
                                }
                                else
                                {
                                    string CarChargingStation = AppSettings.Configuration[nameof(CarChargingStation)];//充电位
                                                                                                                      //判断充电位是否有车
                                    string CarChargingStation = AppSettings.Configuration[nameof(CarChargingStation)];//判断充电位是否有车
                                    var ShuttleCar1 = _shuttleCarService.QueryShuttleCar(CarChargingStation);
                                    if (ShuttleCar1 != null && ShuttleCar1.ShuttleCarCode != shuttleCar.DeviceCode)
                                    {
                                        #region åˆ¤æ–­æ˜¯å¦å­˜åœ¨æ–°å»ºç§»è½¦ä»»åŠ¡
                                        if (_taskRepository.QueryFirst(x => x.ShuttleCarCode == ShuttleCar1.ShuttleCarCode) == null)
                                            _taskService.AddRelocationCarTask(ShuttleCar1.ShuttleCarPosition, "", ShuttleCar1.ShuttleCarCode);
                                        {
                                            var dt_Task = GetTask((int)TaskCarStatusEnum.CarNew, (int)TaskOtherTypeEnum.RelocationCar);
                                            if (dt_Task != null && string.IsNullOrEmpty(dt_Task.SourceAddress))
                                            {
                                                dt_Task.SourceAddress = ShuttleCar1.ShuttleCarPosition;
                                                dt_Task.CurrentAddress = dt_Task.SourceAddress;
                                                dt_Task.ShuttleCarCode = ShuttleCar1.ShuttleCarCode;
                                                _taskService.UpdateData(dt_Task);
                                                _taskExecuteDetailService.AddTaskExecuteDetail(dt_Task.TaskNum, "更新移车任务起始地址");
                                            }
                                            else
                                                _taskService.AddRelocationCarTask(ShuttleCar1.ShuttleCarPosition, "", ShuttleCar1.ShuttleCarCode);
                                        }
                                        #endregion
                                    }
                                    else
                                    {
@@ -134,18 +145,12 @@
                        #region èŽ·å–ç§»è½¦/出入库任务
                        if (command != null &&
                            (command.Status == (short)ShuttleCarStatus.Standby ||
                            command.Status == (short)ShuttleCarStatus.Charging) &&
                            (command.Status == (short)ShuttleCarStatus.Standby || command.Status == (short)ShuttleCarStatus.Charging) &&
                            command.TaskTypeComplete == (short)ShuttleCarTaskComplete.Standby &&
                            (command.Err_Status == (short)ShuttleCarErr.Normal ||
                            command.Err_Status == (short)ShuttleCarErr.LowBattery)
                            )
                            (command.Err_Status == (short)ShuttleCarErr.Normal || command.Err_Status == (short)ShuttleCarErr.LowBattery))
                        {
                            var dt_Task = GetTask(TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt(), TaskRelocationTypeEnum.Relocation.ObjToInt());//移库任务
                            if (dt_Task != null && shuttleCar.DeviceCode == dt_Task.ShuttleCarCode)
                                SendTask(dt_Task);
                            else
                                Get_CarTask(shuttleCar, command);
                            //Get_CarTask(shuttleCar, command);
                            GetShuttleCarTask(shuttleCar, command);
                        }
                        #endregion
                    }