瀏覽代碼

每日生成计划审核 计算实际生成量

wangyunpeng 6 月之前
父節點
當前提交
9be25e494b

+ 1 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/vo/ProducePlanAuditExport.java

@@ -9,6 +9,7 @@ public class ProducePlanAuditExport {
     private String planName;
     private Integer hisNotAuditCount;
     private Integer produceCount;
+    private Integer realProduceCount;
     private Integer auditCount;
     private Integer auditPassCount;
     private Integer auditFailCount;

+ 17 - 3
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/DataDashboardService.java

@@ -1749,7 +1749,9 @@ public class DataDashboardService {
         List<ProducePlanAuditExport> exportList = new ArrayList<>();
         dateStrList = Lists.reverse(dateStrList);
         for (String dateStr : dateStrList) {
-            exportList.addAll(buildProducePlanAuditExport(dateStr));
+            String yesterday = DateUtils.getBeforeDaysDateStr(dateStr, "yyyyMMdd", 1);
+            List<ProducePlanAuditExport> yesterdayExportList = buildProducePlanAuditExport(yesterday, new ArrayList<>());
+            exportList.addAll(buildProducePlanAuditExport(dateStr, yesterdayExportList));
         }
         if (CollectionUtil.isEmpty(exportList)) {
             return;
@@ -1777,7 +1779,8 @@ public class DataDashboardService {
                 2, null, null);
     }
 
-    private List<ProducePlanAuditExport> buildProducePlanAuditExport(String dateStr) {
+    private List<ProducePlanAuditExport> buildProducePlanAuditExport(String dateStr,
+                                                                     List<ProducePlanAuditExport> yesterdayExportList) {
         Long timeStamp = DateUtils.getStartOfDay(dateStr, "yyyyMMdd") * 1000;
         List<String> planIds = Arrays.asList("20240802143345289374071", "20240802171417146947657",
                 "20240804003153130851174", "20241030070010871546586", "20240802080355355308981",
@@ -1792,6 +1795,8 @@ public class DataDashboardService {
                 timeStamp, timeStamp + 86400000, planIds);
         Map<String, Integer> producePlanProduceMap = producePlanProduceList.stream()
                 .collect(Collectors.toMap(ProducePlanAuditCheckDTO::getPlanId, ProducePlanAuditCheckDTO::getNum));
+        Map<String, ProducePlanAuditExport> yesterdayMap = yesterdayExportList.stream()
+               .collect(Collectors.toMap(ProducePlanAuditExport::getPlanName, o -> o));
         List<ProducePlanAuditExport> exportList = new ArrayList<>();
         Integer totalAuditNum = 0, totalAuditPassNum = 0, totalWaitingAuditNum = 0, totalAuditFailNum = 0, totalProduceNum = 0;
         for (String planId : planIds) {
@@ -1815,22 +1820,31 @@ public class DataDashboardService {
                     }
                 }
             }
+            String planName = producePlanMap.get(planId);
+            ProducePlanAuditExport yesterdayExport = yesterdayMap.get(planName);
             Integer produceCount = producePlanProduceMap.getOrDefault(planId, 0);
             totalProduceNum += produceCount;
             ProducePlanAuditExport export = new ProducePlanAuditExport();
             export.setDateStr(dateStr);
-            export.setPlanName(producePlanMap.get(planId));
+            export.setPlanName(planName);
             export.setProduceCount(produceCount);
+            if (Objects.nonNull(yesterdayExport)) {
+                export.setRealProduceCount(waitingAuditNum + yesterdayAuditNum - yesterdayExport.getHisNotAuditCount());
+            }
             export.setAuditCount(yesterdayAuditNum);
             export.setAuditPassCount(yesterdayAuditPassNum);
             export.setHisNotAuditCount(waitingAuditNum);
             export.setAuditFailCount(yesterdayAuditFailNum);
             exportList.add(export);
         }
+        ProducePlanAuditExport yesterdayExport = yesterdayMap.get("SUM");
         ProducePlanAuditExport sum = new ProducePlanAuditExport();
         sum.setDateStr(dateStr);
         sum.setPlanName("SUM");
         sum.setProduceCount(totalProduceNum);
+        if (Objects.nonNull(yesterdayExport)) {
+            sum.setRealProduceCount(totalWaitingAuditNum + totalAuditNum - yesterdayExport.getHisNotAuditCount());
+        }
         sum.setAuditCount(totalAuditNum);
         sum.setAuditPassCount(totalAuditPassNum);
         sum.setHisNotAuditCount(totalWaitingAuditNum);

+ 14 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/util/DateUtils.java

@@ -38,6 +38,20 @@ public final class DateUtils {
         return dateFormat.format(previousDate);
     }
 
+    public static String getBeforeDaysDateStr(String dateStr, String format, int d) {
+        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
+        Date date = new Date();
+        try {
+            date = dateFormat.parse(dateStr);
+        } catch (Exception ignore) {}
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+        calendar.setTime(date);
+        calendar.add(Calendar.DAY_OF_MONTH, -d);
+        Date previousDate = calendar.getTime();
+        return dateFormat.format(previousDate);
+    }
+
 
     public static boolean ifTimeRangeInNow(String timeRange) {
         try {