| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -54,6 +54,7 @@ import com.epmet.service.stats.DimAgencyService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.stats.DimCustomerPartymemberService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.service.stats.DimCustomerService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.util.DimIdGenerator; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.google.common.util.concurrent.ThreadFactoryBuilder; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import lombok.extern.slf4j.Slf4j; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.commons.collections4.CollectionUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.apache.commons.lang3.StringUtils; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -64,9 +65,7 @@ import java.math.BigDecimal; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.time.LocalDate; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.time.LocalDateTime; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.concurrent.ExecutionException; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.concurrent.ExecutorService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.concurrent.Future; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.concurrent.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@RequestMapping("demo") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@RestController | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1099,6 +1098,12 @@ public class DemoController { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return new Result(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            .setNameFormat("ScreenExtractServiceImpl-pool-%d").build(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ExecutorService threadPool = new ThreadPoolExecutor(3, 6, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            10L, TimeUnit.MINUTES, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            new LinkedBlockingQueue<>(500), namedThreadFactory, new ThreadPoolExecutor.CallerRunsPolicy()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Autowired | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private ScreenProjectCategoryGridAndOrgDailyService screenProjectCategoryGridAndOrgDailyService; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1113,14 +1118,22 @@ public class DemoController { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<String> daysBetween = DateUtils.getDaysBetween(startDate, endDate); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            daysBetween.forEach(d -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,d); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,d); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                threadPool.submit(() -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,d); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                threadPool.submit(() -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,d); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                result.add(d); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("gridandorgdailynew"),customerId,result,3*24*60*60L); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,dateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,dateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            threadPool.submit(() -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,dateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            threadPool.submit(() -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,dateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.add(dateId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("gridandorgdailynew"),customerId,result,3*24*60*60L); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |