| 
					
				 | 
			
			
				@@ -165,6 +165,15 @@ namespace WCS.Service.Works.SRM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         var dev1IsThereATask = dev1.Data2.Tasknum > 0 && dev1.Data2.Status.HasFlag(IstationStatus.光电状态) && !dev1.Data3.Status.HasFlag(StationStatus.运行状态位); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         var dev2IsThereATask = dev2.Data2.Tasknum > 0 && dev2.Data2.Status.HasFlag(IstationStatus.光电状态) && !dev2.Data3.Status.HasFlag(StationStatus.运行状态位); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.STATUS < TaskStatus.堆垛机执行 && v.ID == st.Data2.Tasknum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var taskCount = db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == task.TaskGroupKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return taskCount switch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            1 => dev1IsThereATask || dev2IsThereATask, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            2 => dev1IsThereATask && dev2IsThereATask, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            _ => throw new WarnException($"同组任务最多为2,当前任务组有{taskCount}"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //处理一工位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (dev1IsThereATask) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -172,7 +181,6 @@ namespace WCS.Service.Works.SRM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var task1 = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.STATUS < TaskStatus.堆垛机执行 && v.ID == dev1.Data2.Tasknum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (task1 == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 throw new WarnException($"设备有光电有任务且不在运行状态,但WCS找不到任务{dev1.Data2.Tasknum}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (!task1.TaskValid(dev1IsThereATask, dev2IsThereATask, db)) throw new WarnException("任务数量异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var loc = WMS.GetLocalIn(task1.WMSTASK, tunnel, dev1.Entity.CODE, Entity.WareCellForkNum.货叉1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var locno = string.Format("{0}-{1}-{2}", loc.Row, loc.Colomn, loc.Layer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var oldTask = task1.STATUS; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -199,7 +207,6 @@ namespace WCS.Service.Works.SRM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var tunnel = dev2.Entity.ROUTES.First().NEXT.CODE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var task2 = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.STATUS < TaskStatus.堆垛机执行 && v.ID == dev2.Data2.Tasknum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (task2 == null) throw new WarnException($"设备有光电有任务且不在运行状态,但WCS找不到任务{dev2.Data2.Tasknum}"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (!task2.TaskValid(dev1IsThereATask, dev2IsThereATask, db)) throw new WarnException("任务数量异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var loc = WMS.GetLocalIn(task2.WMSTASK, tunnel, dev2.Entity.CODE, Entity.WareCellForkNum.货叉2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var locno = string.Format("{0}-{1}-{2}", loc.Row, loc.Colomn, loc.Layer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             var oldTask = task2.STATUS; 
			 |