yangys
2025-09-09 fc3ae614a4c5a2a7cdb9029ecfc4372eb1c28b18
blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/MachineFileScanTask.java
@@ -1,18 +1,18 @@
package org.springblade.mdm.task;
import org.springblade.core.tool.utils.FileUtil;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.gkw.programnode.entity.MachineFile;
import org.springblade.mdm.gkw.programnode.service.MachineFileService;
import lombok.extern.slf4j.Slf4j;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.commons.service.ParamService;
import org.springblade.mdm.machinefile.service.MachineFileScanService;
import org.springblade.mdm.machinefile.service.MachineFileService;
import org.springblade.mdm.program.service.ProgramAnnotationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.io.File;
import java.util.List;
@Slf4j
@Component
@EnableScheduling
public class MachineFileScanTask {
@@ -20,30 +20,26 @@
   private MachineFileService machineFileService;
   @Autowired
   private MachineService machineService;
   @Autowired
   private ParamService paramService;
   @Autowired
   private ProgramAnnotationService programAnnotationService;
   @Autowired
   private MachineFileScanService machineFileScanService;
   // 每5秒执行一次
   @Scheduled(fixedRate = 1000000)
   //@Scheduled(fixedRate = 1000000)
   //@Scheduled(cron = "0 1 0 * * ?") // 每天上午0点1分执行
   public void executeEvery5Seconds() {
      System.out.println("定时任务执行: " + System.currentTimeMillis());
   }
   //@Scheduled(cron = "0 */5 * * * ?")
   //@Scheduled(cron = "0 15 19 * * ?") //test
   @Scheduled(cron = "${task.cron.machine_file_scan:0 1 * * * ?}")
   public void execute() {
      String networkType = paramService.getParamValue(ParamService.NETWORK_TYPE,ParamService.NETWORK_TYPE_SHEMI);
   public void scanMachineFile() {
      List<Machine> machines = machineService.lambdaQuery().eq(Machine::getStatus,Machine.STATUS_ENABLE).list();
      for (Machine machine : machines) {
      if(!ParamService.NETWORK_TYPE_SHEMI.equals(networkType)){
         //非涉密网,才扫描目录文件
         machineFileScanService.scanMachineFile();
      }
   }
   void scanReceiveDir(Machine machine){
      List<File> files = FileUtil.list(machine.getProgReceiveDir());
      for(File f : files){
         MachineFile mf = new MachineFile();
         mf.setName(f.getName());
         mf.setDirType(MachineFile.DIR_TYPE_REC);
      }
   }
}