lrj
2024-10-25 f6348318d0511d54babc870d5bd7dd9e4ea00313
src/main/java/com/ycl/scheme/SchemeRunnerBuilder.java
@@ -3,6 +3,7 @@
import com.ycl.scheme.entity.BlockCode;
import com.ycl.scheme.entity.Keyword;
import com.ycl.scheme.entity.Scheme;
import com.ycl.scheme.entity.TriggerType;
import com.ycl.scheme.service.SchemeService;
import groovy.lang.GroovyClassLoader;
import org.apache.commons.lang3.StringUtils;
@@ -46,10 +47,11 @@
        List<BlockText> blockTexts = splitBlock(scheme.getInputText());
        List<BlockCode> blockCodes = this.createBlockCode(blockTexts);
        List<BlockCode> blockCodes = this.createBlockCode(blockTexts, scheme.getTriggerType() );
        StringBuilder csb = new StringBuilder();
        csb.append("package " + packageName + ";\n");
        csb.append("\n");
        csb.append("import java.util.List;\n");
        csb.append("import java.util.ArrayList;\n");
        csb.append("import java.util.ArrayList;\n");
@@ -61,7 +63,8 @@
        csb.append("class scheme_" + scheme.getId() + " extends AbstractSchemeRunner {\n");
        csb.append("SchemeService service;\n");
        csb.append("    @Override\n");
        csb.append("    void run(SchemeService service){\n");
        csb.append("    void run(Map<String,Parameter> pars,SchemeService service){\n");
        csb.append("        super.parameters.putAll(pars);\n");
        csb.append("        this.service = service;\n");
        csb.append("        "+ this.getConditionText(blockCodes));
//        String cod = this.getCondition(bl);
@@ -124,27 +127,19 @@
    }
    private List<BlockCode> createBlockCode(List<BlockText> blockTexts){
    private List<BlockCode> createBlockCode(List<BlockText> blockTexts,TriggerType triggerType){
        List<BlockCode> blockCodes = new ArrayList<>();
        for(int i=0;i<blockTexts.size();i++){
            BlockText text = blockTexts.get(i);
            BlockCode code = new BlockCode();
            AbstractBlockCodeBuilder builder = null;
            if(StringUtils.isBlank(text.getResult().trim())){
                builder = new CanalTriggerBuilder(text,this.keywordTemplates,i);
            }else{
                builder = new SqlQueryBuilder(text,this.keywordTemplates,i);
            }
            builder = new SqlQueryBuilder(text,this.keywordTemplates,i, triggerType);
            code =builder.build();
            blockCodes.add(code);
        }
        return blockCodes;
    }
    private List<BlockText> splitBlock(String script) {