|  |  | @ -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); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  | 
 |