yangys
2025-09-13 083df8d788c95c009a94378e620684eb5de2bd21
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java
@@ -1,8 +1,17 @@
package org.springblade.mdm.program.service.programannotation;
import com.qiniu.util.IOUtils;
import org.apache.commons.io.FilenameUtils;
import org.springblade.mdm.program.service.ProgramAnnotationService;
import org.springblade.mdm.utils.FileContentUtil;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
@Component("defaultProcessor")
@@ -11,17 +20,32 @@
   @Autowired
   private ProgramAnnotationService programAnnotationService;
   private String controlSystem;
   private AnnotationProperties annotationPropreties;
   @Override
   public InputStream setAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException {
      List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();
      ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
      String line = FileContentUtil.readLineAt(bais, annotationProperties.getProgramNameLineIndex());
      bais.reset();
      boolean isAnnotation = AnnotationUtil.isAnnotation(line,controlSystem,annoDicts);
      InputStream insAfter;
      //加入程序名注释行
      String proNameLine =  AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(annoData.getFilename()),getControlSystem(),annoDicts);
      if(isAnnotation){
         insAfter = FileContentUtil.replaceAtLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine);
      }else{
         insAfter = FileContentUtil.insertLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine);
      }
      return super.setAnnotation(annoData, insAfter);
   }
   @Override
   public void setControlSystem(String controlSystemDictVal) {
      this.controlSystem = controlSystemDictVal;
   }
   @Override
   public void setAnnotationProperties(AnnotationProperties annotationProperties) {
      this.annotationPropreties= annotationProperties;
   }
   @Override