项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -82,45 +82,73 @@
                    if (conmmand != null)
                    {
                        var structs = BitConverter.GetBytes(conmmand.InteractiveSignal).Reverse().ToArray().ToBoolArray();
                        if (structs[2])
                        if (structs[0] )
                        {
                            var task = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress);
                            if (task != null)
                            var taskIn = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.Line_InExecuting && x.TaskNum == conmmand.ConveyorLineTargetAddress);
                            var taskOut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish);
                            var taskPut = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskInStatusEnum.AGV_InFinish);
                            if (taskPut != null)
                            {
                                WebResponseContent content = _taskService.UpdateTaskStatusToNext(task.TaskNum);
                                WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}");
                                if (conmmand.ConveyorLineTaskNum == 0)
                                {
                                    conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9990));
                                    conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskPut.TaskNum));
                                    _taskService.UpdateTaskStatusToNext(taskPut.TaskNum);
                                }
                            }
                        }
                            if (taskIn != null)
                            {
                                if (structs[2] && structs[1])
                                {
                                    WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskIn.TaskNum);
                                    WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}");
                                }
                            }
                            if (taskOut != null)
                            {
                                if (conmmand.ConveyorLineTaskNum == 0)
                                {
                                    if (structs[2] && structs[1])
                                    {
                                        conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
                                        conveyorLine.Communicator.Write("DB100.4", Convert.ToInt16(taskOut.TaskNum));
                                    }
                                    WebResponseContent content = _taskService.UpdateTaskStatusToNext(taskOut.TaskNum);
                                    if (content.Status)
                                    {
                                        _taskService.SendAgvTask("LKQU", taskOut.TaskNum);
                                    }
                                    WriteInfo(conveyorLine.DeviceName, $"{JsonConvert.SerializeObject(content)}");
                                }
                            }
                        if (structs[0])
                        {
                            var task = _taskService.QueryRequestConveyorLineSignalTask();
                            var taskSignal = _taskService.QueryRequestConveyorLineSignalTask();
                            if (task != null && task.AGVSign == "RequestPickUp")
                            if (taskSignal != null && taskSignal.AGVSign == "RequestPickUp")
                            {
                                if (!structs[3])
                                {
                                    conveyorLine.Communicator.WriteNoRead("DB100.0", Convert.ToInt32(9999));
                                    conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
                                }
                                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);
                                    await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum);
                                    taskSignal.AGVSign = "";
                                    taskSignal.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
                                    _taskRepository.UpdateData(taskSignal);
                                }
                            }
                            if (task != null && task.AGVSign == "RequestPut")
                            if (taskSignal != null && taskSignal.AGVSign == "RequestPut")
                            {
                                if (!structs[3])
                                {
                                    conveyorLine.Communicator.WriteNoRead("DB100.0", Convert.ToInt32(9999));
                                    conveyorLine.Communicator.Write("DB100.0", Convert.ToInt32(9999));
                                }
                                if (conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1)
                                {
                                    await _taskService.ContinueAgvTask(task.AGVTaskNum);
                                    task.AGVSign = "";
                                    _taskRepository.UpdateData(task);
                                    await _taskService.ContinueAgvTask(taskSignal.AGVTaskNum);
                                    taskSignal.AGVSign = "";
                                    _taskRepository.UpdateData(taskSignal);
                                }
                            }