|  | @@ -66,38 +66,38 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |                  if (srmDevice.Data2.SRMStatus != SCRunStatus.空闲) return;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  ////检查标记好的出库任务,并将出库任务下达至堆垛机
 | 
	
		
			
				|  |  | -                //DB.Do(db =>
 | 
	
		
			
				|  |  | -                //{
 | 
	
		
			
				|  |  | -                //    //找到两个任务
 | 
	
		
			
				|  |  | -                //    var taksLsit = db.Default.Set<WCS_TASK>().Where(v =>
 | 
	
		
			
				|  |  | -                //        v.ID == srmDevice.Data.TaskID_1 ||
 | 
	
		
			
				|  |  | -                //        v.ID == srmDevice.Data.TaskID_2 && v.STATUS == TaskStatus.堆垛机执行).ToList();
 | 
	
		
			
				|  |  | -                //    var itemList = taksLsit.Select(v => v.Create<Task>()).OrderBy(v => v.Col).ToArray();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //    if (!taksLsit.Any()) return;
 | 
	
		
			
				|  |  | -                //    for (var i = 0; i < itemList.Length; i++)
 | 
	
		
			
				|  |  | -                //    {
 | 
	
		
			
				|  |  | -                //        var item = itemList[i];
 | 
	
		
			
				|  |  | -                //        item.SRMSTATION = taksLsit.FirstOrDefault(v => v.ID==item.ID)!.SRMSTATION;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //        var fork = srmDevice.GetFork(item, i);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //        switch (fork)
 | 
	
		
			
				|  |  | -                //        {
 | 
	
		
			
				|  |  | -                //            // 列数较小的放一工位
 | 
	
		
			
				|  |  | -                //            case SrmFork.货叉1:
 | 
	
		
			
				|  |  | -                //                obj.WriteTask1(item, (short)itemList.Length);
 | 
	
		
			
				|  |  | -                //                break;
 | 
	
		
			
				|  |  | -                //            //列数较大的放二工位
 | 
	
		
			
				|  |  | -                //            case SrmFork.货叉2:
 | 
	
		
			
				|  |  | -                //                obj.WriteTask2(item, (short)itemList.Length);
 | 
	
		
			
				|  |  | -                //                break;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //            default:
 | 
	
		
			
				|  |  | -                //                throw new ArgumentOutOfRangeException();
 | 
	
		
			
				|  |  | -                //        }
 | 
	
		
			
				|  |  | -                //    }
 | 
	
		
			
				|  |  | -                //});
 | 
	
		
			
				|  |  | +                DB.Do(db =>
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    //找到两个任务
 | 
	
		
			
				|  |  | +                    var taksLsit = db.Default.Set<WCS_TASK>().Where(v =>
 | 
	
		
			
				|  |  | +                        v.ID == srmDevice.Data.TaskID_1 ||
 | 
	
		
			
				|  |  | +                        v.ID == srmDevice.Data.TaskID_2 && v.STATUS == TaskStatus.堆垛机执行).ToList();
 | 
	
		
			
				|  |  | +                    var itemList = taksLsit.Select(v => v.Create<Task>()).OrderBy(v => v.Col).ToArray();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if (!taksLsit.Any()) return;
 | 
	
		
			
				|  |  | +                    for (var i = 0; i < itemList.Length; i++)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        var item = itemList[i];
 | 
	
		
			
				|  |  | +                        item.SRMSTATION = taksLsit.FirstOrDefault(v => v.ID == item.ID)!.SRMSTATION;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        var fork = srmDevice.GetFork(item, i);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        switch (fork)
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            // 列数较小的放一工位
 | 
	
		
			
				|  |  | +                            case SrmFork.货叉1:
 | 
	
		
			
				|  |  | +                                obj.WriteTask1(item, (short)itemList.Length);
 | 
	
		
			
				|  |  | +                                break;
 | 
	
		
			
				|  |  | +                            //列数较大的放二工位
 | 
	
		
			
				|  |  | +                            case SrmFork.货叉2:
 | 
	
		
			
				|  |  | +                                obj.WriteTask2(item, (short)itemList.Length);
 | 
	
		
			
				|  |  | +                                break;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            default:
 | 
	
		
			
				|  |  | +                                throw new ArgumentOutOfRangeException();
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  var isTransfer = new List<WCS_TASK>(); //是否有移库任务
 | 
	
		
			
				|  |  |                  WCS_TASK enterPriority = new(), outPriority = new(); //出入库优先级任务
 | 
	
	
		
			
				|  | @@ -420,7 +420,6 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |                              var msg = "";
 | 
	
		
			
				|  |  |                              msg = fork == SrmFork.货叉1 ? $"状态由[{oldTaskSTATUS}]变更为[{task.STATUS}][{srmDevice.Data.SLine_1}-{srmDevice.Data.SCol_1}-{srmDevice.Data.SLayer_1}][{srmDevice.Data.ELine_1}][{srmDevice.Data.VoucherNo_1}]" : $"状态由[{oldTaskSTATUS}]变更为[{task.STATUS}][{srmDevice.Data.SLine_2}-{srmDevice.Data.SCol_2}-{srmDevice.Data.SLayer_2}][{srmDevice.Data.ELine_2}][{srmDevice.Data.VoucherNo_2}]";
 | 
	
		
			
				|  |  |                              task.CreateStatusLog(db, msg, this.GetType());
 | 
	
		
			
				|  |  | -                            item.SRMSTATION = task.SRMSTATION;
 | 
	
		
			
				|  |  |                              finishTaskList.Add(new FinishTaskList<SrmFork, Task>(fork, item));
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -433,17 +432,16 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |                              {
 | 
	
		
			
				|  |  |                                  // 列数较小的放一工位
 | 
	
		
			
				|  |  |                                  case SrmFork.货叉1:
 | 
	
		
			
				|  |  | -                                    obj.WriteTask1(finish.Station, (short)tasks.Length);
 | 
	
		
			
				|  |  | +                                    obj.Data.TaskID_1 = finish.Station.ID;
 | 
	
		
			
				|  |  |                                      break;
 | 
	
		
			
				|  |  |                                  //列数较大的放二工位
 | 
	
		
			
				|  |  |                                  case SrmFork.货叉2:
 | 
	
		
			
				|  |  | -                                    obj.WriteTask2(finish.Station, (short)tasks.Length);
 | 
	
		
			
				|  |  | +                                    obj.Data.TaskID_2 = finish.Station.ID;
 | 
	
		
			
				|  |  |                                      break;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                                  default:
 | 
	
		
			
				|  |  |                                      throw new ArgumentOutOfRangeException();
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      });
 | 
	
		
			
				|  |  |  
 |