| | |
| | | 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> |
| | |
| | | /// </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); |
| | | } |
| | | } |
| | | } |
| | | } |