yangys
2025-09-25 31ecdb8c700529a59dd762f0c47f0ed9c66d5092
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
@@ -1,18 +1,18 @@
package org.springblade.mdm.machinefile.service;
import com.alibaba.excel.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.commons.service.ParamService;
import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.program.service.ProgramAnnotationService;
import org.springblade.mdm.program.service.programannotation.AnnotationProcessor;
import org.springblade.mdm.program.service.programannotation.AnnotationUtil;
import org.springblade.mdm.program.service.programannotation.MachineAnnotationConfig;
import org.springblade.mdm.program.service.programannotation.ProcessorHelper;
import org.springblade.mdm.program.service.programannotation.*;
import org.springblade.mdm.utils.FileContentUtil;
import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
@@ -37,12 +37,11 @@
   @Autowired
   private MachineService machineService;
   @Autowired
   private ParamService paramService;
   @Autowired
   private ProgramAnnotationService programAnnotationService;
   @Autowired
   private MachineAnnotationConfig annoConfig;
   @Autowired
   private AnnotationProcessorHelper annotationProcessorHelper;
   /**
    * 扫描所有机床的配置目录
    */
@@ -142,7 +141,7 @@
      mf.setName(filePath.toFile().getName());
      mf.setDirType(dirType);
      mf.setMachineCode(machine.getCode());
      mf.setProgramStatus(readProgramStatus(filePath,machine.getMachineGroupCode(),annotatiionList));
      BasicFileAttributes attrs = Files.readAttributes(
         filePath,
@@ -166,7 +165,16 @@
         log.error("读取文件md5失败",e);
         throw new ServiceException("读取文件md5失败"+e.getMessage());
      }
      try (InputStream inputStream = Files.newInputStream(filePath)) {
         AnnotationProcessor annoProcessor = annotationProcessorHelper.getProcessor(machine.getMachineGroupCode());
         AnnotationData annoData = annoProcessor.readAnnotationData(inputStream);
         mf.setProgramStatus(annoData.getProgramStatus());
         ProgramNameVO progVO = ProgramFileNameParser.parseProgramName(mf.getName());
         if(StringUtils.isNotBlank(progVO.getLgPart())) {
            mf.setDeviation(annoData.getDeviation());
         }
      }
      return mf;
   }
   /**