| | |
| | | @Autowired |
| | | private ProgramAnnotationService programAnnotationService; |
| | | private String controlSystem; |
| | | private Pattern PATTERN = Pattern.compile("^[oO]\\d{4}"); |
| | | private final int O_LINE = 1; |
| | | static final Pattern PATTERN = Pattern.compile("^[oO]\\d{4}.*"); |
| | | //private final int O_LINE = 1; |
| | | @Override |
| | | public InputStream putAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException { |
| | | //在O0001 这种文字后面增加文件名(不带扩展名) |
| | | ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(inputStream)); |
| | | String line = FileContentUtil.readLineAt(bais,O_LINE); |
| | | bais.reset(); |
| | | ByteArrayInputStream byteStream = new ByteArrayInputStream(IOUtils.toByteArray(inputStream)); |
| | | //String line = FileContentUtil.readLineAt(byteStream,O_LINE); |
| | | String line = FileContentUtil.readLineAt(byteStream,getAnnotationProperties().getProgramNameLineIndex()); |
| | | |
| | | byteStream.reset(); |
| | | boolean oMatched = PATTERN.matcher(line).matches(); |
| | | InputStream ins1; |
| | | if(oMatched){ |
| | | List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList(); |
| | | String newline = line + AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(annoData.getFilename()),getControlSystem(),annoDicts); |
| | | ins1 = FileContentUtil.replaceAtLine(bais,O_LINE,newline); |
| | | |
| | | String programAnno = AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(annoData.getFilename()),getControlSystem(),annoDicts); |
| | | |
| | | ins1 = FileContentUtil.replaceAtLine(byteStream,getAnnotationProperties().getProgramNameLineIndex(),genProgramNameLine(line,programAnno)); |
| | | }else{ |
| | | ins1 = bais; |
| | | ins1 = byteStream; |
| | | } |
| | | return super.putAnnotation(annoData, ins1); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 生成程序名称注释行,O[4位数字](程序名) ,需要将用户自己的程序名去或其他注释掉放后面 |
| | | * @param oriLine 原始行文本 |
| | | * @param programNameAnno 程序注释文本:(程序名) |
| | | * @return Oxxxx+程序注释文本 |
| | | */ |
| | | String genProgramNameLine(String oriLine,String programNameAnno){ |
| | | return oriLine.substring(0,5)+programNameAnno; |
| | | } |
| | | |
| | | @Override |
| | | public void setControlSystem(String controlSystemDictVal) { |