| | |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using HslCommunication; |
| | | using Newtonsoft.Json; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using HslCommunication; |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_Common; |
| | | using System.Text.RegularExpressions; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | |
| | | switch (stationManager.stationType) |
| | | { |
| | | case 5: |
| | | case 1: |
| | | await RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); |
| | | break; |
| | | |
| | | case 2: |
| | | case 3: |
| | | case 4: |
| | | case 5: |
| | | case 6: |
| | | await CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); |
| | | break; |
| | | |
| | | case 7: |
| | | RequestOutNextAddress(conveyorLine, command, childDeviceCode, ProtocalDetailValue); |
| | | break; |
| | | |
| | | case 10: |
| | | ConveyorLineOutFinish(conveyorLine, command, childDeviceCode, ProtocalDetailValue); |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | } |
| | |
| | | { |
| | | // 使用正则表达式匹配类似 -数字 的模式,并替换为空字符串 |
| | | task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", ""); |
| | | if (Convert.ToInt32(task.NextAddress) > 1999) |
| | | { |
| | | task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString(); |
| | | } |
| | | var comm = _mapper.Map<ConveyorLineTaskCommand>(task); |
| | | comm.InteractiveSignal = command.InteractiveSignal; |
| | | return comm; |
| | |
| | | var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | //var taskCommand = MapTaskCommand(task, command); |
| | | var next = task.NextAddress; |
| | | var taskCommand = MapTaskCommand(task, command); |
| | | task.NextAddress = next; |
| | | if (task.TargetAddress == childDeviceCode) |
| | | { |
| | | |
| | | ConsoleHelper.WriteWarningLine($"【{conveyorLine._deviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{childDeviceCode}】请求扫码入库(是胖),下一目标地址【{taskCommand.TargetAddress}】"); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode); |
| | | |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | ConsoleHelper.WriteWarningLine($"【{conveyorLine._deviceName}】任务号:【{task.TaskNum}】,托盘条码:【{task.PalletCode}】已到达【{childDeviceCode}】请求扫码入库(实盘),下一目标地址【{1000}】"); |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | } |
| | | else |
| | | { |
| | | var next = task.NextAddress; |
| | | var taskCommand = MapTaskCommand(task, command); |
| | | task.NextAddress = next; |
| | | |
| | | ConsoleHelper.WriteWarningLine($"【{conveyorLine._deviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{childDeviceCode}】请求扫码入库(实盘),下一目标地址【{taskCommand.TargetAddress}】"); |
| | | |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | WriteInfo(conveyorLine.DeviceName, content.Message); |
| | | } |
| | | } |
| | | } |
| | | } |