肖洋
2024-11-29 663d9d2e658ab99a0c3598becd23b00b34b3e3d9
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/GWTask/RequestInbound.cs
@@ -50,27 +50,59 @@
        private void HandleNewTask(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode)
        {
            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode);
            //if ((conveyorLine.DeviceCode == "1003" && childDeviceCode == "1016") || (conveyorLine.DeviceCode == "1005" && childDeviceCode == "1048"))
            //{
            //    CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode);
            //}
            if (stationManager.stationType == 1)
            if (stationManager.stationType == 8)
            {
                var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode);
                if (task != null)
                {
                    RequestInNextAddress(conveyorLine, command, childDeviceCode);
                }
            }
            else if (stationManager.stationType == 9)
            {
                var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode);
                if (task != null)
                {
                    ConveyorLineInFinish(conveyorLine, command, childDeviceCode);
                }
                else
                {
                    RequestWmsTask(conveyorLine, command, childDeviceCode);
                }
            }
            //else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1068"))
            //{
            //    ConveyorLineOutFinish(conveyorLine, command, childDeviceCode);
            //}
            else if (stationManager.stationType == 1)
            {
                if (stationManager.stationArea.Contains("GW"))
                {
                    var taskGW = _taskRepository.QueryFirst(x => x.TargetAddress == childDeviceCode && x.TaskState == (int)TaskOutStatusEnum.OutFinish);
                    if (taskGW != null)
                    {
                        command.ConveyorLineBarcode = taskGW.PalletCode;
                    }
                }
                RequestWmsTask(conveyorLine, command, childDeviceCode);
            }
            else if (stationManager.stationType == 10)
            {
                var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
                if (task != null)
                {
                    RequestOutbound(conveyorLine, command, childDeviceCode);
                }
            }
            else if (stationManager.stationType == 11)
            {
                var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode);
                if (task != null)
                {
                    RequestOutNextAddress(conveyorLine, command, childDeviceCode);
                }
            }
            else if (stationManager.stationType == 12)
            {
                var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode);
                if (task != null)
                {
                    RequestOutNextAddress(conveyorLine, command, childDeviceCode);
                }
            }
        }
        /// <summary>
@@ -181,21 +213,30 @@
        /// </summary>
        private async void RequestWmsTask(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode)
        {
            var taskGW = _taskRepository.QueryFirst(x => x.TargetAddress == childDeviceCode && x.TaskState == (int)TaskOutStatusEnum.OutFinish);
            if (taskGW != null)
                _taskRepository.DeleteData(taskGW);
            var content = await _taskService.RequestWMSTask(command.ConveyorLineBarcode, childDeviceCode);
            if (content.Status)
            {
                var task = _taskService.QueryBarCodeConveyorLineTask(command.ConveyorLineBarcode, childDeviceCode);
                if (task != null)
                {
                    //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTaskNum, task.TaskNum, childDeviceCode);
                    //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, task.NextAddress, childDeviceCode);
                    //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, command.ConveyorLineBarcode, childDeviceCode);
                    ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task);
                    conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode);
                    conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, task.NextAddress, childDeviceCode);
                    //conveyorLine.SendCommand(taskCommand, childDeviceCode);
                    conveyorLine.SendCommand(taskCommand, childDeviceCode);
                    //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
                    _taskService.UpdateTaskStatusToNext(task);
                }
            }
            else
            {
                WriteInfo(conveyorLine.DeviceName, content.Message);
                _taskRepository.AddData(taskGW);
            }
        }
    }
}