فهرست منبع

新增服务运行时检查文件

赵冬冬 3 سال پیش
والد
کامیت
191b2d7321

+ 2 - 2
src/main/java/com/hw/admin/model/controller/WorkPackerController.java

@@ -40,8 +40,8 @@ public class WorkPackerController {
 
     @PutMapping
     @ResponseBody
-    public AjaxResultVo update(@RequestBody WorkPacker workPacker) {
-        return AjaxResultVo.success(workPackerService.update(workPacker));
+    public AjaxResultVo update() {
+        return AjaxResultVo.success(workPackerService.update());
     }
 
     /**

+ 1 - 1
src/main/java/com/hw/admin/model/service/WorkPackerService.java

@@ -12,7 +12,7 @@ public interface WorkPackerService {
 
     public WorkPacker get(Long id);
 
-    public int update(WorkPacker workPacker);
+    public int update();
 
     public int delete(Long id);
 

+ 15 - 6
src/main/java/com/hw/admin/model/service/impl/WorkPackerServiceImpl.java

@@ -89,9 +89,19 @@ public class WorkPackerServiceImpl implements WorkPackerService {
     }
 
     @Override
-    public int update(WorkPacker workPacker) {
+    public int update() {
         Set<String> files = new HashSet<>();
         files.addAll(getFile(filepath));
+        for (String fileName : files) {
+            QueryWrapper<WorkPacker> queryWrapper = new QueryWrapper<WorkPacker>();
+            queryWrapper.eq("del_flag", 0);
+            queryWrapper.eq("file_path", fileName);
+            Integer count = workPackerMapper.selectCount(queryWrapper);
+            if ("0".equals(count.toString())) {
+                log.info("存在遗漏数据进行补录:{}",fileName);
+                EasyExcel.read(fileName, WorkPackerExcel.class, new WorkPackerListener(workPackerMapper, fileName)).sheet().doRead();
+            }
+        }
         return 0;
     }
 
@@ -101,18 +111,17 @@ public class WorkPackerServiceImpl implements WorkPackerService {
         // File对象 可以是文件或者目录
         File file = new File(path);
         File[] array = file.listFiles();
-
         for (int i = 0; i < array.length; i++) {
             if (array[i].isFile()) {
                 // only take file name
-                log.info("^^^^^" + array[i].getName());
+                //log.info("^^^^^" + array[i].getName());
                 // take file path and name
-                log.info("#####" + array[i]);
+                //log.info("#####" + array[i]);
                 // take file path and name
-                log.info("*****" + array[i].getPath());
+                //log.info("*****" + array[i].getPath());
                 files.add(array[i].getPath());
             } else if (array[i].isDirectory()) {
-                getFile(array[i].getPath());
+                files.addAll(getFile(array[i].getPath()));
             }
         }
         return files;

+ 28 - 0
src/main/java/com/hw/admin/system/config/ApplicationRunnerImpl.java

@@ -0,0 +1,28 @@
+package com.hw.admin.system.config;
+
+import com.hw.admin.model.service.WorkPackerService;
+import com.hw.admin.system.utils.DateExUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author lnj
+ * createTime 2018-11-07 22:37
+ **/
+@Component
+@Slf4j
+public class ApplicationRunnerImpl implements ApplicationRunner {
+    @Autowired
+    private WorkPackerService workPackerService;
+
+    @Override
+    public void run(ApplicationArguments args) {
+        log.info("执行文件检查开始:{}", DateExUtils.timeStr());
+        workPackerService.update();
+        log.info("执行文件检查结束:{}", DateExUtils.timeStr());
+    }
+}

+ 1 - 2
src/main/java/com/hw/admin/system/listener/FileListener.java

@@ -66,7 +66,6 @@ public class FileListener implements FileAlterationListener {
     @Override
     public void onStop(FileAlterationObserver fileAlterationObserver) {
         File file = fileAlterationObserver.getDirectory();
-        String name = file.getName();
-        log.info("结束监听..." + name);
+        log.info("结束监听..." + file);
     }
 }

+ 6 - 3
src/main/java/com/hw/admin/system/listener/FileMonitor.java

@@ -4,10 +4,13 @@ import org.apache.commons.io.monitor.FileAlterationMonitor;
 import org.apache.commons.io.monitor.FileAlterationObserver;
 
 public class FileMonitor {
-    private FileListener fileListener;  //监听事件
-    private String path;    //监听的文件路径
+    //监听事件
+    private FileListener fileListener;
+    //监听的文件路径
+    private String path;
     private FileAlterationMonitor monitor;
-    private long defaultInterval = 10000L;  //默认监听的时间间隔
+    //默认监听的时间间隔
+    private long defaultInterval = 10000L;
 
     public FileMonitor() {
     }

+ 15 - 0
src/main/java/com/hw/admin/system/utils/DateExUtils.java

@@ -1,6 +1,8 @@
 package com.hw.admin.system.utils;
 
+import java.text.SimpleDateFormat;
 import java.util.Calendar;
+import java.util.Date;
 
 public class DateExUtils {
     /**
@@ -40,5 +42,18 @@ public class DateExUtils {
         return yyMMhh;
     }
 
+    /**
+     * 获取时间yyyy-MM-dd HH:mm:ss
+     *
+     * @return
+     */
+    public static String timeStr() {
+        Date date = new Date();
+        String strDateFormat = "yyyy-MM-dd HH:mm:ss";
+        SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
+        String timeStr = sdf.format(date);
+        return timeStr;
+    }
+
 
 }