| 
					
				 | 
			
			
				@@ -1,6 +1,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.jjt.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson2.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson2.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson2.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.biz.service.IApiYrService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.biz.vo.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.calc.domain.TwinCalcDayYhj; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -31,6 +33,9 @@ import java.time.ZoneOffset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.atomic.AtomicInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.atomic.AtomicReference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.function.BiFunction; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.function.Function; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.function.Predicate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -391,18 +396,82 @@ public class ApiYrServiceImpl implements IApiYrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             para.setName(item.getDeviceName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             para.setPara(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if ("Forward".equals(item.getWsName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                qzProcessor(qz, item, flag, para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                qzProcessor(qz, item, para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else if ("Back".equals(item.getWsName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                hzProcessor(hz, item, flag, para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hzProcessor(hz, item, para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //留给烘固机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                yrProcessor(yr, item, flag, para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                yrProcessor(yr, item, para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        calcAvg(vo, flag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return vo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void qzProcessor(CompareVO.Qz qz, TwinCalcHourRz item, boolean flag, CompareVO.Para para) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void calcAvg(CompareVO vo, boolean flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 提取公用方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Function<Map.Entry<String, Object>, BigDecimal> valueExtractor = entry -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JSONObject jsonObject = JSONObject.parseObject(entry.getValue().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JSONArray array = jsonObject.getJSONArray("act"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return array != null && !array.isEmpty() ? array.getJSONObject(0).getBigDecimal("value") : BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 计算平均值的方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BiFunction<List<CompareVO.Para>, Predicate<Map.Entry<String, Object>>, BigDecimal> calculateAvg = (list, filter) -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            list.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .flatMap(item -> item.getPara().entrySet().stream()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .filter(filter) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .map(valueExtractor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .reduce(BigDecimal.ZERO, BigDecimal::add); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 前整车间计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CompareVO.Para> qzDx = vo.getQz().getDxPara(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CompareVO.Para> qzTg = vo.getQz().getTgPara(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vo.getQz().setHxAvgTemp(qzDx.isEmpty() ? BigDecimal.ZERO : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            calculateAvg.apply(qzDx, entry -> entry.getKey().contains("烘箱温度")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(new BigDecimal(qzDx.size() * 4), 2, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vo.getQz().setTgAvgTemp(qzTg.isEmpty() ? BigDecimal.ZERO : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            calculateAvg.apply(qzTg, entry -> entry.getKey().contains("烫辊") && entry.getKey().contains("温度")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(new BigDecimal(qzTg.size() * 2), 2, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vo.getQz().setTgAvgSpeed(qzTg.isEmpty() ? BigDecimal.ZERO : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            calculateAvg.apply(qzTg, entry -> entry.getKey().contains("走布速度")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(new BigDecimal(qzTg.size()), 2, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 后整车间计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CompareVO.Para> hzDx = vo.getHz().getDxPara(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CompareVO.Para> hzTg = vo.getHz().getTgPara(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vo.getHz().setHxAvgTemp(hzDx.isEmpty() ? BigDecimal.ZERO : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            calculateAvg.apply(hzDx, entry -> entry.getKey().contains("烘箱温度")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(new BigDecimal(hzDx.size() * 4), 2, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vo.getHz().setTgAvgTemp(hzTg.isEmpty() ? BigDecimal.ZERO : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            calculateAvg.apply(hzTg, entry -> entry.getKey().contains("烫辊") && entry.getKey().contains("温度")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(new BigDecimal(hzTg.size() * 2), 2, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vo.getHz().setTgAvgSpeed(hzTg.isEmpty() ? BigDecimal.ZERO : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            calculateAvg.apply(hzTg, entry -> entry.getKey().contains("走布速度")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(new BigDecimal(hzTg.size()), 2, RoundingMode.HALF_UP)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getQz().setDxPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getQz().setGsPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getQz().setSmPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getQz().setTgPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getHz().setDxPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getHz().setGsPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getHz().setQmPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getHz().setSmPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getHz().setTgPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getHz().setTjPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.getYr().setHgPara(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void qzProcessor(CompareVO.Qz qz, TwinCalcHourRz item, CompareVO.Para para) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //前整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch (item.getTypeId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 2: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -410,51 +479,41 @@ public class ApiYrServiceImpl implements IApiYrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     qz.setDx(qz.getDx() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    qz.addDxPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                qz.addDxPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //双棍烫光机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     qz.setTg(qz.getTg() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    qz.addTgPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                qz.addTgPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //高梳机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     qz.setGs(qz.getGs() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    qz.addGsPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                qz.addGsPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //双棍刷毛 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     qz.setSm(qz.getSm() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    qz.addSmPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                qz.addSmPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void yrProcessor(CompareVO.Yr yr, TwinCalcHourRz item, boolean flag, CompareVO.Para para) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void yrProcessor(CompareVO.Yr yr, TwinCalcHourRz item, CompareVO.Para para) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (8 == item.getTypeId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                yr.addHgPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            yr.addHgPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void hzProcessor(CompareVO.Hz hz, TwinCalcHourRz item, boolean flag, CompareVO.Para para) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void hzProcessor(CompareVO.Hz hz, TwinCalcHourRz item, CompareVO.Para para) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //后整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch (item.getTypeId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 6: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -462,54 +521,42 @@ public class ApiYrServiceImpl implements IApiYrService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     hz.setDx(hz.getDx() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hz.addDxPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hz.addDxPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //双棍烫光机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     hz.setTg(hz.getTg() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hz.addTgPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hz.addTgPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //高梳机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     hz.setGs(hz.getGs() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hz.addGsPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hz.addGsPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //双棍刷毛 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     hz.setSm(hz.getSm() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hz.addSmPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hz.addSmPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 7: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //起毛机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     hz.setQm(hz.getQm() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hz.addQmPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hz.addQmPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 9: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //烫剪机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ("Y".equals(item.getOnline())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     hz.setTj(hz.getTj() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    hz.addTjPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hz.addTjPara(para); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 |