| 
					
				 | 
			
			
				@@ -9,6 +9,8 @@ import com.jjt.calc.service.ITwinCalcHourYhjService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.common.constant.CacheConstants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.common.core.redis.RedisCache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.common.utils.DateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jjt.common.utils.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jjt.inventory.domain.TwinCalcHourBpOut; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.inventory.service.ITwinCalcHourBpOutService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.utils.AsyncYhjService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.utils.IotService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21,6 +23,8 @@ import org.apache.ibatis.session.SqlSessionFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalTime; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -29,6 +33,7 @@ import java.util.concurrent.ExecutionException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.Future; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.TimeUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.TimeoutException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 印花机1小时统计数据Service业务层处理 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -198,6 +203,10 @@ public class TwinCalcHourYhjServiceImpl implements ITwinCalcHourYhjService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<TwinCalcHourYhj> process(LocalDateTime start, LocalDateTime end) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TwinDeviceYhj> list = yhjService.selectTwinDeviceYhjList(new TwinDeviceYhj()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<TwinCalcHourBpOut> bpOuts = bpOutService.selectTwinCalcHourBpOutListLast(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 按deviceId分组处理白坯投放数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Integer, TwinCalcHourBpOut> bpOutMap = bpOuts.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.toMap(TwinCalcHourBpOut::getDeviceId, bpOut -> bpOut, (oldValue, newValue) -> newValue)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Future<TwinCalcHourYhj>> futureList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<TwinCalcHourYhj> calcList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (TwinDeviceYhj yhj : list) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -210,6 +219,16 @@ public class TwinCalcHourYhjServiceImpl implements ITwinCalcHourYhjService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     TwinCalcHourYhj calcYhj = future.get(10L, TimeUnit.SECONDS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (calcYhj.getDeviceId() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        TwinCalcHourBpOut out = bpOutMap.get(calcYhj.getDeviceId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Integer mick = 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (StringUtils.isNotEmpty(out.getRemark())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            String[] parts = out.getRemark().split("\\*"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (parts.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                mick = Integer.parseInt(parts[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        BigDecimal weight = BigDecimal.valueOf(calcYhj.getLength()).divide(BigDecimal.valueOf(mick), 2, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        calcYhj.setWeight(weight); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         calcList.add(calcYhj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } catch (TimeoutException e) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -244,8 +263,8 @@ public class TwinCalcHourYhjServiceImpl implements ITwinCalcHourYhjService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDateTime stop = Tools.currWholeTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         while (!end.isAfter(stop)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            calc(start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             bpOutService.calc(start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            calc(start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.info("补录数据===========start:{},end:{},stop:{}", start, end, stop); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (end.getHour() == 7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //跨天,统计前一天的总数据 
			 |