duyongjia
2024-12-23 430404d69be9b5d420ad12b9ac087508f1fa2aca
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -81,8 +81,10 @@
                    command.CL1002Status = conveyorLine.Communicator.Read<short>("DB801.46.0");
                    command.Weight = conveyorLine.Communicator.Read<short>("DB801.48.0");
                    command.CL1002Barcode = conveyorLine.Communicator.Read<string>("DB801.52.0");
                    command.ISIn = conveyorLine.Communicator.Read<short>("DB801.84.0");
                    command.ISIn = conveyorLine.Communicator.Read<short>("DB801.84.0");//等于1的时候不让出库
                    if (command != null)
                    {
                        if (!string.IsNullOrEmpty(command.CL1002Barcode.Trim()))
                    {
                        Dt_Task Intask = _taskService.QueryConveyorLineTask(command.CL1002Barcode);
                        if (Intask != null)
@@ -99,40 +101,18 @@
                                _taskExecuteDetailService.AddTaskExecuteDetail(Intask.TaskId, $"输送线入库完成");
                            }
                        }
                        else//如果根据托盘条码查不到任务,则认为是空托盘,空托盘入库不需要组盘,直接新建任务
                            else//如果根据托盘条码查不到任务,则认为是空托盘,空托盘入库可以不需要组盘,直接新建任务,也可以直接下空托出库任务
                        {
                            if (command.ISInFinish == 1)
                            {
                                //入库确认信号
                                conveyorLine.Communicator.Write<short>("DB800.6.0", 1);
                                Dt_Task task = new Dt_Task();
                                task.TaskNum= GetTaskNo();
                                task.PalletCode = command.CL1002Barcode;
                                task.TaskType =(int)TaskInboundTypeEnum.Inbound;
                                task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
                                task.Roadway = "SC01";
                                task.SourceAddress = "R01-001-023-001";
                                //向WMS申请空货位
                                task.TargetAddress= WMSApiInvoke.GetAllLocationGroups(task.PalletCode);
                                _taskService.AddData(task);
                                Dt_Router dt_Router = new Dt_Router();
                                //临时记录下托盘和库位的绑定关系
                                dt_Router.StartPosi = task.TargetAddress;
                                dt_Router.NextPosi = task.PalletCode;
                                dt_Router.InOutType = RouterInOutType.Out;
                                dt_Router.ChildPosi = "1";
                                dt_Router.ChildPosiDeviceCode = "1";
                                dt_Router.IsEnd = true;
                                _routerService.AddData(dt_Router);
                                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"输送线入库执行中");
                                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"输送线入库完成");
                                    //先不给PLC入库确认信号,调WMS空托入库任务接口
                                    _taskService.GenerateEmptyInBoundTask(command.CL1002Barcode);
                            }
                        }
                        }
                        if (!string.IsNullOrEmpty(command.Barcode.Trim()))
                        {
                        Dt_Task Outtask = _taskService.QueryConveyorLineOutTask(command.Barcode);
                        if (Outtask != null)
                        {
@@ -148,8 +128,19 @@
                                conveyorLine.Communicator.Write<short>("DB800.0.0", 1);
                                _taskService.UpdateTaskStatus(Outtask.TaskId, (int)TaskOutStatusEnum.OutFinish);
                                _taskExecuteDetailService.AddTaskExecuteDetail(Outtask.TaskId, $"出库任务完成");
                                    _taskService.OutBoundTaskByWMS(Outtask.TaskNum);
                            }
                        }
                        }
                        //Intask = _taskService.QueryConveyorLineTask(command.CL1002Barcode);
                        //Outtask = _taskService.QueryConveyorLineOutTask(command.Barcode);
                        //if (Intask==null&&Outtask==null && command.CL1001Free==1 && command.CL1002Free==1&& command.ISIn==0)
                        //{
                        //    //生成空车出库任务
                        //    _taskService.GenerateEmptyOutBoundTask();
                        //}
                    }
                    Task.WaitAll(tasks.ToArray());