xufei преди 8 месеца
родител
ревизия
2fdb8bdc83

+ 2 - 0
src/main/java/com/winhc/data/push/service/SynDataService.java

@@ -42,4 +42,6 @@ public interface SynDataService {
     void uploadToOss(String ds) throws FileNotFoundException;
     void saveObject(String ds, String targetBucketName, String ossPre);
 
+    void saveEmptyObject(String ds);
+
 }

+ 24 - 5
src/main/java/com/winhc/data/push/service/impl/SynDataServiceImpl.java

@@ -25,10 +25,7 @@ import org.springframework.stereotype.Service;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
@@ -74,6 +71,7 @@ public class SynDataServiceImpl implements SynDataService {
                     saveObject(ds);
                     updateTask(tn, ds, "success");
                     sendMessage("导出 任务 成功 !!! " + id);
+                    saveEmptyObject(ds);
                 } else {
                     log.error("导出OSS 失败 !!!");
                     sendMessage("导出 OSS 失败!!! " + id);
@@ -329,9 +327,30 @@ public class SynDataServiceImpl implements SynDataService {
 
     }
 
+    public void saveEmptyObject(String ds) {
+        //空文书输出
+        List<String> out_tns = Arrays.asList("wenshu_detail_v2", "wenshu_original");
+        String ossPre = "anshuo/wenshu/";
+        List<String> res = listKeys(project.getTargetBucketName(), ossPre + ds);
+        List<String> tns = res.stream()
+                .map(key -> key.replace(".json", "")
+                        .substring(key.lastIndexOf("/") + 1))
+                .distinct()
+                .collect(Collectors.toList());
+
+        out_tns.stream()
+                .filter(tn -> !tns.contains(tn))
+                .forEach(tn -> {
+                    String targetKey = ossPre + ds + "/" + tn + ".json";
+                    PutObjectRequest putObjectRequest = new PutObjectRequest(project.getTargetBucketName(), targetKey, new ByteArrayInputStream("".getBytes()));
+                    ossClient.putObject(putObjectRequest);
+                });
+
+    }
+
     @Override
     public void saveObject(String ds, String targetBucketName, String ossPre) {
-        String prcessDate = getPrcessDateV2(ds,7);
+        String prcessDate = getPrcessDateV2(ds, 7);
         String pre = ossPre + "/" + prcessDate + "/";
         List<String> keys = listKeys(targetBucketName, pre);
         List<String> filters_keys = keys.stream()

+ 3 - 3
src/main/java/com/winhc/data/push/utils/OssUtils.java

@@ -98,9 +98,9 @@ public class OssUtils {
         String filePath = "D:\\tmp\\data\\20221122.zip";
 
         //uploadFile(objectName, filePath);
-        List<String> res = listKeys("data-exchange-out-tc", "data/tc/20231220");
-        List<String> res1 = listKeys("data-exchange-out-tc", "data/");
-        List<String> res2 = listKeys("data-exchange-out-tc", "data/tc");
+        List<String> res = listKeys("data-exchange-as", "anshuo/wenshu/20240114/");
+//        List<String> res1 = listKeys("data-exchange-out-tc", "data/");
+//        List<String> res2 = listKeys("data-exchange-out-tc", "data/tc");
         System.out.println(res);
     }
 

+ 7 - 0
src/test/java/com/winhc/data/push/TestFile.java

@@ -21,6 +21,13 @@ public class TestFile {
         assertEquals("62 MB", FileUtils.byteCountToDisplaySize(size));
     }
 
+    @Test
+    public void test1() {
+        String key = "anshuo/wenshu/20240114/wenshu_detail_v2.json";
+        String re = key.replace(".json","").substring(key.lastIndexOf("/")+1);
+        System.out.println(re);
+    }
+
     private long getFileSize(File file) {
         long length = file.length();
         return length;

+ 4 - 0
src/test/java/com/winhc/data/push/TestPush.java

@@ -74,6 +74,10 @@ public class TestPush {
     }
 
     @Test
+    public void saveEmpty() {
+        synDataService.saveEmptyObject("20240115");
+    }
+    @Test
     public void tt() {
         String ss = "data/tc/20231220/company_send_announcement/0a727f5343df6bc6b7861baa2998b13a.json";