bug
lrj
2024-10-25 b470ed5451d0a4c34a2f71000e8c005e6ad626ad
bug
5个文件已修改
21 ■■■■■ 已修改文件
src/main/java/com/ycl/scheme/KeywordExample.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/scheme/SqlQueryBuilder.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/scheme/entity/Keyword.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/org/example/Builder.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/org/example/test.groovy 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/scheme/KeywordExample.java
@@ -49,8 +49,10 @@
        //函数 \\((.*?)\\)
        Keyword f1= Keyword.builder().name("时间范围").keywordType(KeywordType.TIME_RANGE_FUNCTION).regex("\\(\\s*最近\\s*\\d+\\s*天\\s*\\)").build();
        keywords.add(f1);
        Keyword f2= Keyword.builder().name("计数").keywordType(KeywordType.FUNCTION).code("count").regex("\\s*\\((.*?)\\)\\s*").build();
        Keyword f2= Keyword.builder().name("计数").keywordType(KeywordType.FUNCTION).functionParameterNullable(true).code("count").regex("\\s*\\((.*?)\\)\\s*").build();
        keywords.add(f2);
        Keyword f3= Keyword.builder().name("合计").keywordType(KeywordType.FUNCTION).code("sum").regex("\\s*\\((.*?)\\)\\s*").build();
        keywords.add(f3);
        //特殊值
        Keyword p1= Keyword.builder().name("最近?天").keywordType(KeywordType.TIME_RANGE).regex("\\d+").build();
        keywords.add(p1);
src/main/java/com/ycl/scheme/SqlQueryBuilder.java
@@ -150,9 +150,10 @@
                    res +=c;
                }
                idx++;
                if(kw!=null && !kw.getKeywordType().equals(KeywordType.FUNCTION) && kw.getCode().equals("count") && !c.equals("(")){
                    res+=c;
                if(kw==null || !kw.getKeywordType().equals(KeywordType.FUNCTION) || kw.getFunctionParameterNullable()==null || !kw.getFunctionParameterNullable()){
                    res +=c;
                }
                skw="";
            }else{
                skw += c;
src/main/java/com/ycl/scheme/entity/Keyword.java
@@ -34,6 +34,8 @@
    private String regex;//抓取
    private Boolean functionParameterNullable;//函数参数是否可以为空
}
src/test/java/org/example/Builder.java
@@ -30,8 +30,8 @@
    @Test
    public  void build(){
        BlockText blockText = new BlockText();
        String text = "数据源 : 警情通报 \n 条件:时间范围(最近5天)   并且  警情内容 包含  '抢夺'  并且 案发地 包含  '金牛大道'\n 结果: 计数 > 2  \n and 数据源:案件系统 \n 条件:时间范围(最近5天)   并且  警情内容 包含  '命案'  并且 案发地 包含  '金牛大道'\n 结果: 计数>=2 \n";
        String text = "数据源 : 警情通报 \n 条件:时间范围(最近5天)   并且  警情内容 包含  '抢夺'  并且 案发地 包含  '金牛大道'\n 结果: 计数 > 2  \n and 数据源:案件系统 \n 条件:时间范围(最近5天)   并且  警情内容 包含  '诈骗'  并且 案发地 包含  '银牛大道'\n 结果: 合计(涉案金额)>=100000 \n";
        Scheme scheme =new Scheme();
        scheme.setId(1);
        scheme.setName("紧急通报");
src/test/java/org/example/test.groovy
@@ -13,7 +13,7 @@
    void run(Map<String,Parameter> pars,SchemeService service){
        super.parameters.putAll(pars);
        this.service = service;
        if(func_0() && func_1() ){
        if(func_0() &&func_1() ){
            service.doAction(1)
        }
    }
@@ -34,13 +34,13 @@
    }
    def func_1(){
        Map<String,Object> pars = new HashMap<>();
        def sql= "select  from t_case where create_time between :beginTime and :endTime  and  content like '%命案%'  and address like '%金牛大道%' ";
        def sql= "select sum(amt) from t_case where create_time between :beginTime and :endTime  and  content like '%诈骗%'  and address like '%银牛大道%' ";
        def p_beginTime = LocalDateTime.now();
        pars.put('beginTime',p_beginTime);
        def p_endTime = LocalDateTime.now().minusDays(5);
        pars.put('endTime',p_endTime);
        def rs = service.execQuery(sql,pars);
        if(rs >=2){
        if(rs >=100000){
            return true;
        }else{
            return false;