using HslCommunication; using MoYu; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; namespace WIDESEAWCS_Tasks.ConveyorLineJob.StationHandler { public class ExceptionPortStationHandler : IStationHandler { private readonly CommonConveyorLineJob _commonConveyorLineJob; private readonly ITaskRepository _taskRepository = App.GetService(); public ExceptionPortStationHandler(CommonConveyorLineJob commonConveyorLineJob) { _commonConveyorLineJob = commonConveyorLineJob; } public async Task HandleStationAsync(CommonConveyorLine conveyorLine, Dt_StationManager station, ConveyorLineTaskCommand command, ConveyorLineTaskCommandWrite commandWrite) { var structs = BitConverter.GetBytes(commandWrite.WriteInteractiveSignal).Reverse().ToArray().ToBoolArray(); if (structs[0]) { if (_taskRepository.QueryData(x => x.SourceAddress == station.stationChildCode).Count() > 0) { return; } var log = $"【{conveyorLine.DeviceName}】任务号:【{command.TaskNum}】,托盘条码:【{command.Barcode}】已到达【{station.stationChildCode}】【{station.stationRemark}】异常口请求扫码入库"; await _commonConveyorLineJob.LogAndWarn(conveyorLine.DeviceName, log); await _commonConveyorLineJob.HandleNewTaskAsync(conveyorLine, command, station.stationChildCode, 0); } else { _commonConveyorLineJob.ConveyorLineSendFinish(conveyorLine, station.stationChildCode, 0, false); } } } }