| | |
| | | import org.springblade.mdm.commons.service.ParamService; |
| | | 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.utils.FileContentUtil; |
| | | import org.springblade.system.pojo.entity.DictBiz; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private ParamService paramService; |
| | | @Autowired |
| | | private ProgramAnnotationService programAnnotationService; |
| | | |
| | | @Autowired |
| | | private MachineAnnotationConfig annoConfig; |
| | | |
| | | /** |
| | | * 扫描所有机床的配置目录 |
| | |
| | | List<Path> files = Files.list(dirPath) |
| | | .filter(Files::isRegularFile).toList(); |
| | | |
| | | byte[] buffer = new byte[2048]; |
| | | |
| | | |
| | | //byte[] buffer = new byte[2048]; |
| | | List<DictBiz> annotatiionList = programAnnotationService.getAnnotionDictList(); |
| | | //boolean exists;//文件是否存在于数据库中 |
| | | for (Path filePath : files) { |
| | | try { |
| | | |
| | | |
| | | MachineFile mf = readFileToMachineFile(filePath,machine,dirType,annotatiionList); |
| | | |
| | | machineFileService.refreshFileData(mf); |
| | |
| | | * @return 状态的整数之和 |
| | | * @throws IOException |
| | | */ |
| | | int readProgramStatus(Path filePath,String controlSystem,List<DictBiz> annotatiionList) throws IOException { |
| | | public int readProgramStatus(Path filePath,String controlSystem,List<DictBiz> annotatiionList) throws IOException { |
| | | int programStatus = MachineFile.PROGRAM_STATUS_UNKNOWN; |
| | | try(InputStream ins = Files.newInputStream(filePath); |
| | | BufferedInputStream bis = new BufferedInputStream(ins)){ |
| | |
| | | return MachineFile.PROGRAM_STATUS_UNKNOWN; |
| | | } |
| | | bis.reset(); |
| | | String statusLine = FileContentUtil.readLineAt(ins,ProgramAnnotationService.STATUS_LINE_INDEX); |
| | | |
| | | AnnotationProcessor annoProcessor = ProcessorHelper.getProcessor(controlSystem,annoConfig); |
| | | String statusLine = FileContentUtil.readLineAt(ins, annoProcessor.getAnnotationProperties().getStatusLineIndex()); |
| | | if(AnnotationUtil.isAnnotation(statusLine,controlSystem,annotatiionList)){ |
| | | String progStatusTxt = programAnnotationService.removeAnnotation(controlSystem,statusLine,annotatiionList); |
| | | if(ProgramAnnotationService.SQ.equals(progStatusTxt)){ |
| | | String progStatusTxt = AnnotationUtil.removeAnnotation(controlSystem,statusLine,annotatiionList); |
| | | if(AnnotationUtil.SQ.equals(progStatusTxt)){ |
| | | programStatus = MachineFile.PROGRAM_STATUS_TRY; |
| | | }else if(ProgramAnnotationService.GH.equals(progStatusTxt)){ |
| | | }else if(AnnotationUtil.GH.equals(progStatusTxt)){ |
| | | programStatus = MachineFile.PROGRAM_STATUS_CURED; |
| | | }else if(ProgramAnnotationService.PL.equals(progStatusTxt)){ |
| | | }else if(AnnotationUtil.LG.equals(progStatusTxt)){ |
| | | programStatus = MachineFile.PROGRAM_STATUS_DIVIASTION; |
| | | } |
| | | } |