| 
					
				 | 
			
			
				@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.common.collect.Lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.StatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.common.enums.aigc.ProduceContentAuditStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.recommend.AccountBusinessTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.recommend.ArticleTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.common.enums.recommend.ContentPoolEnum; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14,6 +15,7 @@ import com.tzld.longarticle.recommend.server.common.enums.recommend.RankStrategy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.mapper.aigc.AigcBaseMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.mapper.longArticle.LongArticleBaseMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.dto.ProduceContentDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.model.dto.ProducePlanAuditCheckDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.dto.PublishContentDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.entity.aigc.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.entity.crawler.AccountAvgInfo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -28,6 +30,7 @@ import com.tzld.longarticle.recommend.server.model.param.PublishContentParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.vo.FirstContentScoreExport; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.vo.IntermediateIndicatorsExport; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.vo.NewSortStrategyExport; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.model.vo.ProducePlanAuditExport; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.vo.aigc.ProduceAuditLayoutContentObjVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.repository.aigc.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.repository.crawler.AccountAvgInfoRepository; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1726,4 +1729,104 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @XxlJob("producePlanAuditExport") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ReturnT<String> producePlanAuditExportJob(String param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> dateStrList = DateUtils.getBeforeDays(null, null, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        producePlanAuditExport(dateStrList.get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ReturnT.SUCCESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void producePlanAuditExport(String dateStr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!StringUtils.hasText(dateStr)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dateStr = DateUtils.getBeforeDaysDateStr("yyyyMMdd", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ProducePlanAuditExport> exportList = buildProducePlanAuditExport(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtil.isEmpty(exportList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int rowNum = exportList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<List<Object>> rows = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Field[] fields = ProducePlanAuditExport.class.getDeclaredFields(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (ProducePlanAuditExport datum : exportList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Object> rowDatas = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            rows.add(rowDatas); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (Field field : fields) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                field.setAccessible(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    rowDatas.add(field.get(datum)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (IllegalAccessException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    log.error("获取值出错:{}", field.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new RuntimeException(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        doSendFeishuSheet(Collections.singletonList(dateStr), sheetToken, "28RgAZ", rowNum, rows, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                2, null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<ProducePlanAuditExport> buildProducePlanAuditExport(String dateStr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long timeStamp = DateUtils.getStartOfDay(dateStr, "yyyyMMdd") * 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> planIds = Arrays.asList("20240802143345289374071", "20240802171417146947657", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "20240804003153130851174", "20241030070010871546586", "20240802080355355308981", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "20240802021606053813696"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ProducePlan> producePlans = producePlanRepository.findByIdIn(planIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> producePlanMap = producePlans.stream().collect(Collectors.toMap(ProducePlan::getId, ProducePlan::getName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ProducePlanAuditCheckDTO> producePlanAudtiList = aigcBaseMapper.getProducePlanAudit( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                timeStamp, timeStamp + 86400000, planIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, List<ProducePlanAuditCheckDTO>> producePlanAuditMap = producePlanAudtiList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.groupingBy(ProducePlanAuditCheckDTO::getPlanId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ProducePlanAuditCheckDTO> producePlanProduceList = aigcBaseMapper.getProducePlanProduce( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                timeStamp, timeStamp + 86400000, planIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Integer> producePlanProduceMap = producePlanProduceList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.toMap(ProducePlanAuditCheckDTO::getPlanId, ProducePlanAuditCheckDTO::getNum)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ProducePlanAuditExport> exportList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Integer totalAuditNum = 0, totalAuditPassNum = 0, totalWaitingAuditNum = 0, totalAuditFailNum = 0, totalProduceNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (String planId : planIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<ProducePlanAuditCheckDTO> auditCheckDTOList = producePlanAuditMap.get(planId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer yesterdayAuditNum = 0, yesterdayAuditPassNum = 0, waitingAuditNum = 0, yesterdayAuditFailNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isNotEmpty(auditCheckDTOList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (ProducePlanAuditCheckDTO producePlanAuditCheckDTO : auditCheckDTOList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (Objects.equals(producePlanAuditCheckDTO.getAuditStatus(), ProduceContentAuditStatusEnum.waiting.getVal())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        waitingAuditNum = producePlanAuditCheckDTO.getNum(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        totalWaitingAuditNum += waitingAuditNum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if (Objects.equals(producePlanAuditCheckDTO.getAuditStatus(), ProduceContentAuditStatusEnum.pass.getVal())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        yesterdayAuditPassNum = producePlanAuditCheckDTO.getNum(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        totalAuditPassNum += yesterdayAuditPassNum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        yesterdayAuditNum += producePlanAuditCheckDTO.getNum(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        totalAuditNum += yesterdayAuditNum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else if (Objects.equals(producePlanAuditCheckDTO.getAuditStatus(), ProduceContentAuditStatusEnum.reject.getVal())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        yesterdayAuditNum += producePlanAuditCheckDTO.getNum(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        totalAuditNum += yesterdayAuditNum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        yesterdayAuditFailNum += producePlanAuditCheckDTO.getNum(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        totalAuditFailNum += yesterdayAuditFailNum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer produceCount = producePlanProduceMap.getOrDefault(planId, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            totalProduceNum += produceCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ProducePlanAuditExport export = new ProducePlanAuditExport(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            export.setDateStr(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            export.setPlanName(producePlanMap.get(planId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            export.setProduceCount(produceCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            export.setAuditCount(yesterdayAuditNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            export.setAuditPassCount(yesterdayAuditPassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            export.setHisNotAuditCount(waitingAuditNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            export.setAuditFailCount(yesterdayAuditFailNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            exportList.add(export); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ProducePlanAuditExport sum = new ProducePlanAuditExport(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setDateStr(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setPlanName("SUM"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setProduceCount(totalProduceNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setAuditCount(totalAuditNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setAuditPassCount(totalAuditPassNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setHisNotAuditCount(totalWaitingAuditNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setAuditFailCount(totalAuditFailNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        exportList.add(0, sum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return exportList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |