|  | @@ -255,8 +255,6 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |                      srmDevice.Entity.Set("LastOutFloor", floor);
 | 
	
		
			
				|  |  |                      if (enterPriority != null && outPriority != null && enterPriority.Priority > outPriority.Priority) return;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    if (obj.Data.TaskID_1 != 0 || obj.Data.TaskID_2 != 0) return;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                      //获取当前堆垛机所有的放货点
 | 
	
		
			
				|  |  |                      var list = srmDevice.GetDeliveryPoint();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -312,7 +310,7 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      //堆垛机设备
 | 
	
		
			
				|  |  |                      var srm = srmDevice.Entity.CODE;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +                    var finishTaskList = new List<FinishTaskList<SrmFork, Task>>();
 | 
	
		
			
				|  |  |                      DB.Do(db =>
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          //堆垛机当前是否有正在执行的任务
 | 
	
	
		
			
				|  | @@ -367,8 +365,6 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          #endregion 校验两个产品是否为同规格
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                        var finishTaskList = new List<FinishTaskList<SrmFork, Task>>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                          for (var i = 0; i < tasks.Length; i++)
 | 
	
		
			
				|  |  |                          {
 | 
	
		
			
				|  |  |                              var item = tasks[i];
 | 
	
	
		
			
				|  | @@ -390,6 +386,7 @@ 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));
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -415,6 +412,30 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    ////检查标记好的出库任务,并将出库任务下达至堆垛机
 | 
	
		
			
				|  |  | +                    DB.Do(db =>
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        //此处只做标记,表示当前事务已经提交
 | 
	
		
			
				|  |  | +                        foreach (var finish in finishTaskList)
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            var task = db.Default.Set<WCS_TASK>().Find(finish.Station.ID).Create<Task>();
 | 
	
		
			
				|  |  | +                            switch (finish.FinishCode)
 | 
	
		
			
				|  |  | +                            {
 | 
	
		
			
				|  |  | +                                // 列数较小的放一工位
 | 
	
		
			
				|  |  | +                                case SrmFork.货叉1:
 | 
	
		
			
				|  |  | +                                    obj.WriteTask1(task, (short)finishTaskList.Count);
 | 
	
		
			
				|  |  | +                                    break;
 | 
	
		
			
				|  |  | +                                //列数较大的放二工位
 | 
	
		
			
				|  |  | +                                case SrmFork.货叉2:
 | 
	
		
			
				|  |  | +                                    obj.WriteTask2(task, (short)finishTaskList.Count);
 | 
	
		
			
				|  |  | +                                    break;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                                default:
 | 
	
		
			
				|  |  | +                                    throw new ArgumentOutOfRangeException();
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                      #endregion 出库
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              });
 |