huangxiaoqiang
10 小时以前 16749e23b489ee24f993fe9e87346680b7bcf63a
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -6,6 +6,7 @@
using SqlSugar;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Common;
@@ -28,6 +29,7 @@
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_SignalR;
using WIDESEAWCS_Tasks.ConveyorLineJob;
using WIDESEAWCS_Tasks.ElevatorJob;
using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
namespace WIDESEAWCS_Tasks
@@ -76,7 +78,50 @@
                CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
                if (conveyorLine != null)
                {
                    ConveyorLineTaskCommand conmmand = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>("LK001");
                    if (conmmand != null)
                    {
                        var structs = BitConverter.GetBytes(conmmand.InteractiveSignal).Reverse().ToArray().ToBoolArray();
                        if (structs[2])
                        {
                            //var task = _taskRepository.QueryFirst(x => x.TaskNum == conmmand.TargetAddress);
                            var task = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress);
                            if (task != null)
                            {
                                task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
                                task.CurrentAddress = task.NextAddress;
                                //鑾峰彇WMS璐т綅淇℃伅
                                task.NextAddress = task.TargetAddress;
                                _taskRepository.UpdateData(task);
                            }
                        }
                        if (structs[0])
                        {
                            var task = _taskService.QueryRequestConveyorLineSignalTask();
                            if (task != null && task.AGVSign == "RequestPickUp")
                            {
                                if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
                                {
                                    await _taskService.ContinueAgvTask(task.AGVTaskNum);
                                    task.AGVSign = "";
                                    task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
                                    _taskRepository.UpdateData(task);
                                }
                            }
                            if (task != null && task.AGVSign == "RequestPut")
                            {
                                if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1)
                                {
                                    await _taskService.ContinueAgvTask(task.AGVTaskNum);
                                    task.AGVSign = "";
                                    _taskRepository.UpdateData(task);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)