|  | @@ -433,7 +433,7 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  #endregion 移库
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  else if (lastIsOut)
 | 
	
		
			
				|  |  |                  {
 | 
	
	
		
			
				|  | @@ -563,9 +563,53 @@ namespace WCS.Service.Works.SRM
 | 
	
		
			
				|  |  |                      srmDevice.Entity.Set("LastOutFloor", floor);
 | 
	
		
			
				|  |  |                      if (enterPriority != null && outPriority != null && enterPriority.Priority > outPriority.Priority) return;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    srmDevice.CheckOutTask();
 | 
	
		
			
				|  |  |                      //获取当前堆垛机所有的放货点
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    var list = srmDevice.GetDeliveryPoint().Where(v => v.Data3.Status != 0).Select(v => v.Entity.CODE).ToList();
 | 
	
		
			
				|  |  | +                    var list = srmDevice.GetDeliveryPoint().Where(v =>
 | 
	
		
			
				|  |  | +                   {
 | 
	
		
			
				|  |  | +                       //true:满足条件  false:不满足条件
 | 
	
		
			
				|  |  | +                       //返回结果为无货的设备  默认无货
 | 
	
		
			
				|  |  | +                       var res = true;
 | 
	
		
			
				|  |  | +                       //放货点是否有货
 | 
	
		
			
				|  |  | +                       if (v.Data.VoucherNo != v.Data2.VoucherNo) res = false;
 | 
	
		
			
				|  |  | +                       else if (v.Data3.Status.HasFlag(StationStatus.运行状态位)) res = false;
 | 
	
		
			
				|  |  | +                       else if (v.Data2.Status.HasFlag(IstationStatus.光电状态)) res = false;
 | 
	
		
			
				|  |  | +                       else if (v.Data2.Request == IstationRequest.堆垛机放货完成请求目标地址) res = false;
 | 
	
		
			
				|  |  | +                       else if (v.Data2.Tasknum > 10000) res = false;
 | 
	
		
			
				|  |  | +                       if (!v.Entity.Is(DF.SRM涂布放货)) return res;
 | 
	
		
			
				|  |  | +                       var devise = new List<StationDevice>();
 | 
	
		
			
				|  |  | +                       switch (v.Entity.CODE)
 | 
	
		
			
				|  |  | +                       {
 | 
	
		
			
				|  |  | +                           case "1283" or "1284":
 | 
	
		
			
				|  |  | +                               devise = Device.Where(b => b.CODE is "1281" or "1282").Select(b => b.Create<StationDevice>()).ToList();
 | 
	
		
			
				|  |  | +                               break;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                           case "1290" or "1291" or "1292" or "1293":
 | 
	
		
			
				|  |  | +                               devise = Device.Where(b => b.CODE is "1288" or "1289").Select(b => b.Create<StationDevice>()).ToList();
 | 
	
		
			
				|  |  | +                               break;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                           case "1299" or "1300" or "1301" or "1302":
 | 
	
		
			
				|  |  | +                               devise = Device.Where(b => b.CODE is "1297" or "1298").Select(b => b.Create<StationDevice>()).ToList();
 | 
	
		
			
				|  |  | +                               break;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                           case "1308" or "1309" or "1310" or "1311":
 | 
	
		
			
				|  |  | +                               devise = Device.Where(b => b.CODE is "1306" or "1307").Select(b => b.Create<StationDevice>()).ToList();
 | 
	
		
			
				|  |  | +                               break;
 | 
	
		
			
				|  |  | +                       }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                       if (!devise.Any()) return res;
 | 
	
		
			
				|  |  | +                       foreach (var stationDevice in devise)
 | 
	
		
			
				|  |  | +                       {
 | 
	
		
			
				|  |  | +                           //放货点是否有货
 | 
	
		
			
				|  |  | +                           if (stationDevice.Data3.Status.HasFlag(StationStatus.运行状态位)) res = false;
 | 
	
		
			
				|  |  | +                           else if (stationDevice.Data2.Status.HasFlag(IstationStatus.光电状态)) res = false;
 | 
	
		
			
				|  |  | +                           else if (stationDevice.Data2.Request == IstationRequest.堆垛机放货完成请求目标地址) res = false;
 | 
	
		
			
				|  |  | +                           else if (stationDevice.Data2.Tasknum > 10000) res = false;
 | 
	
		
			
				|  |  | +                       }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                       return res;
 | 
	
		
			
				|  |  | +                   }).Select(v => v.Entity.CODE).ToList();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      //没有可用货位
 | 
	
		
			
				|  |  |                      if (!list.Any()) return;
 |