| | |
| | | using Microsoft.AspNetCore.Routing; |
| | | using Autofac.Core; |
| | | using Microsoft.AspNetCore.Routing; |
| | | using Quartz; |
| | | using SqlSugar; |
| | | using System.Threading.Tasks; |
| | |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_TaskInfoService; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | |
| | |
| | | bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); |
| | | if (flag && value != null) |
| | | { |
| | | OtherDevice device = (OtherDevice)value; |
| | | OtherDevice device = (OtherDevice)value; |
| | | List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).Distinct().ToList();//è·å设å¤ä¸çç«å° |
| | | List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode); //è·å设å¤ä¸çç«å° |
| | | try |
| | |
| | | if (dt_Ta != null) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | bool endpos = device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | |
| | | |
| | |
| | | //è¾éçº¿å®æä¿®æ¹æè¾éçº¿å®æç¶æå¾
å åæºæ§è¡ä»»å¡ |
| | | if (conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !ACK) |
| | | { |
| | | if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode)) |
| | | Dt_Task dt_Task = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode); |
| | | if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode)&& dt_Task !=null) |
| | | { |
| | | bool ack = device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | bool taskno = device.SetValue(W_ConveyorLineDB.TaskNo,1, item.StationCode); |
| | | WebResponseContent contentweb = _taskService.UpdateTaskIninfo(conveyorLineInfoRead.Barcode,item.StationCode); //æ ¹æ®æ¡ç è·è®¾å¤ç¼å·å»æ¥è¯¢å¹¶ä¿®æ¹ä»»å¡ |
| | | if (contentweb.Status) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo,1, item.StationCode); |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | Dt_Task dt_Ta = _taskService.GetOutTaskInfo(item.StationCode); //è·ååºåºä»»å¡ |
| | | |
| | | |
| | | if (dt_Ta != null) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode); |
| | | //å åæºä»»å¡å®æä¸ä¸å°åæ¹æè¾é线ä¸ä¸å°åï¼è®¾å¤ç¼å·æ¹æè¾é线 |
| | | _taskService.UpdateTaskStatusToNext(dt_Ta.TaskNum); |
| | | bool taskno = device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | bool endpos = device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode); |
| | | bool stb = device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode); |
| | | |
| | | if (dt_Ta.TargetAddress !="2021" && dt_Ta.TargetAddress != "2020") |
| | | { |
| | | //å é¤ä»»å¡ |
| | | _taskRepository.DeleteData(dt_Ta); |
| | | if (taskno && endpos && stb) |
| | | { |
| | | //å åæºä»»å¡å®æä¸ä¸å°åæ¹æè¾é线ä¸ä¸å°åï¼è®¾å¤ç¼å·æ¹æè¾é线 |
| | | WebResponseContent webResponse = _taskService.UpdateTaskStatusToNext(dt_Ta.TaskNum); |
| | | if (webResponse.Status) |
| | | { |
| | | if (dt_Ta.TargetAddress != "2021" && dt_Ta.TargetAddress != "2020") |
| | | { |
| | | //å é¤ä»»å¡ |
| | | bool res = _taskRepository.DeleteData(dt_Ta); |
| | | if (res) |
| | | { |
| | | TaskService.AddTaskHistory(dt_Ta); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | { |
| | | if (conveyorLineSignalRead.STB && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !ACK) |
| | | { |
| | | if (conveyorLineInfoRead.TaskNo == 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//éè´å
¥åº |
| | | Dt_Task dt_Task = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode); |
| | | |
| | | if (conveyorLineInfoRead.TaskNo == 0 && !string.IsNullOrEmpty(conveyorLineInfoRead.Barcode)&& dt_Task != null)//éè´å
¥åº |
| | | { |
| | | Dt_Task dt_Ta = _taskService.GetTaskIninfo(conveyorLineInfoRead.Barcode); //éè¿æ¡ç 廿¥è¯¢ä»»å¡ |
| | | if(dt_Ta != null) |
| | | //if (dt_Ta.SourceAddress == "2021" || dt_Ta.SourceAddress == "2020") |
| | | //{ |
| | | // bool IsOccupied2008 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2008"); |
| | | // bool IsOccupied2009 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2009"); |
| | | // bool IsOccupied2015 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2015"); |
| | | // bool IsOccupied2016 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2016"); |
| | | // //夿æ¯å¦æç« |
| | | // if (IsOccupied2008 || IsOccupied2009 || IsOccupied2015 || IsOccupied2016) |
| | | // { |
| | | // return null; |
| | | // } |
| | | //} |
| | | if (dt_Ta != null) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.SourceAddress, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | bool endpos = device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.SourceAddress, item.StationCode); |
| | | bool taskno = device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | bool ack = device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | //è·åæ£éç¶æææ è´§ç¶æ |
| | | public static bool GetPick() |
| | | { |
| | | //bool IsOccupied2008 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2008"); |
| | | //bool IsOccupied2009 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2009"); |
| | | //bool IsOccupied2015 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2015"); |
| | | //bool IsOccupied2016 = device.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2016"); |
| | | |
| | | ////夿æ¯å¦æç« |
| | | //if (IsOccupied2008&&IsOccupied2009&&IsOccupied2015&&IsOccupied2016) |
| | | //{ |
| | | // return false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // return true; |
| | | //} |
| | | |
| | | return true; |
| | | } |
| | | } |
| | | } |