소스 검색

DataWarehouseService.wareHouse 增加了 检查是否已存在数据的逻辑

lifuquan 1 년 전
부모
커밋
1c1a034032

+ 7 - 0
src/main/java/com/nokia/tsl_data/dao/HighQualityCountMapper.java

@@ -108,4 +108,11 @@ public interface HighQualityCountMapper {
     default int deleteHighQualityCountForDay(String day) {
         return deleteHighQualityCountForMonthIdAndDayId(day.substring(0, 6), day.substring(6));
     }
+
+    @Select("select count(1) from tsl_data.high_quality_count_day where month_id = #{month_id} and day_id = #{day_id}")
+    int countForDay(@Param("month_id") String monthId, @Param("day_id") String dayId);
+
+    default int countForDay(String day) {
+        return countForDay(day.substring(0, 6), day.substring(6));
+    }
 }

+ 8 - 1
src/main/java/com/nokia/tsl_data/dao/HighQualityListDayMapper.java

@@ -28,7 +28,7 @@ public interface HighQualityListDayMapper {
     /**
      * 按照month_id和day_id字段删除数据
      */
-    @Delete("delete from tsl_data.high_quality_list_day where month_id = #{month_id} and day_id = #{day_id}")
+    @Delete("delete from tsl_data.high_quality_list_day where month_id = #{month_id} and day_id = #{day_id} ")
     int deleteHighQualityListForMonthIdAndDayId(@Param("month_id") String monthId, @Param("day_id") String dayId);
 
     /**
@@ -37,4 +37,11 @@ public interface HighQualityListDayMapper {
     default int deleteHighQualityListForDay(String day) {
         return deleteHighQualityListForMonthIdAndDayId(day.substring(0, 6), day.substring(6));
     }
+
+    @Select("select count(1) from tsl_data.high_quality_list_day where month_id = #{month_id} and day_id = #{day_id} ")
+    int countForDay(@Param("month_id") String monthId, @Param("day_id") String dayId);
+
+    default int countForDay(String day) {
+        return countForDay(day.substring(0, 6), day.substring(6));
+    }
 }

+ 8 - 1
src/main/java/com/nokia/tsl_data/dao/MobileComplaintMapper.java

@@ -92,7 +92,7 @@ public interface MobileComplaintMapper {
             "where month_id = substring(#{day} from 1 for 6) and day_id = substring(#{day} from 7 for 2)")
     int selectAllForMonth(String day);
 
-    @Delete("delete from tsl_data.mobile_complaint_day where month_id = #{month_id}  and day_id = #{day_id}")
+    @Delete("delete from tsl_data.mobile_complaint_day where month_id = #{month_id}  and day_id = #{day_id} ")
     int deleteMobileComplaintForMonthIdAndDayId(@Param("month_id") String monthId, @Param("day_id") String dayId);
 
     /**
@@ -101,4 +101,11 @@ public interface MobileComplaintMapper {
     default int deleteMobileCompForDay(String day) {
         return deleteMobileComplaintForMonthIdAndDayId(day.substring(0, 6), day.substring(6));
     }
+
+    @Select("select count(1) from tsl_data.mobile_complaint_day where month_id = #{month_id}  and day_id = #{day_id} ")
+    int countForDay(@Param("month_id") String monthId, @Param("day_id") String dayId);
+
+    default int countForDay(String day) {
+        return countForDay(day.substring(0, 6), day.substring(6));
+    }
 }

+ 17 - 4
src/main/java/com/nokia/tsl_data/service/DataWarehouseService.java

@@ -72,9 +72,22 @@ public class DataWarehouseService {
     }
 
     public void wareHouse(String day) {
-        warehouseHighQualityCountDay(day);
-        warehouseHighQualityListDay(day);
-        warehouseMobileComplaintDay(day);
+        int count;
+        if ((count = highQualityCountMapper.countForDay(day)) == 0) {
+            warehouseHighQualityCountDay(day);
+        } else {
+            log.warn("HighQualityCount 账期 {} 已存在 {} 条数据,已跳过...", day, count);
+        }
+        if ((count = highQualityListDayMapper.countForDay(day)) == 0) {
+            warehouseHighQualityListDay(day);
+        } else {
+            log.warn("HighQualityList 账期 {} 已存在 {} 条数据,已跳过...", day, count);
+        }
+        if ((count = mobileComplaintMapper.countForDay(day)) == 0) {
+            warehouseMobileComplaintDay(day);
+        } else {
+            log.warn("MobileComplaint 账期 {} 已存在 {} 条数据,已跳过...", day, count);
+        }
     }
 
     private File getMobileComplaintDayFile(String day) {
@@ -214,6 +227,6 @@ public class DataWarehouseService {
     }
 
     public int deleteHighQualityListDay(String day) {
-        return  highQualityListDayMapper.deleteHighQualityListForDay(day);
+        return highQualityListDayMapper.deleteHighQualityListForDay(day);
     }
 }

+ 4 - 3
src/test/java/com/nokia/tsl_data/TslDataApplicationTest.java

@@ -1,6 +1,6 @@
 package com.nokia.tsl_data;
 
-import com.nokia.tsl_data.service.TslReportService;
+import com.nokia.tsl_data.dao.MobileComplaintMapper;
 import com.nokia.tsl_data.service.UserCountService;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,10 +46,11 @@ class TslDataApplicationTest {
     }
 
     @Autowired
-    private TslReportService tslReportService;
+    private MobileComplaintMapper highQualityCountMapper;
 
     @Test
     void test() {
-        tslReportService.generateReport("20231201");
+        int i = highQualityCountMapper.countForDay("20231201");
+        System.out.println(i);
     }
 }