xieb
2023-07-07 454f607f2efd7904b5a997e0bffbbfa0733530c5
数据校验规则数据生成修改
7 files modified
69 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/controller/RulesController.java 3 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java 50 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml 6 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/IQualityManageService.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/impl/QualityManageServiceImpl.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DataRulesXxlJob.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/controller/RulesController.java
@@ -33,8 +33,7 @@
    @GetMapping(value = "/test")
    public R test(@RequestParam(name = "id", required = true) Long id) {
        rulesClient.createDataRules(id);
        return R.data(0);
        return rulesClient.createDataRules(id);
    }
    /**
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java
@@ -5,6 +5,7 @@
import cn.gistack.sm.resDataCheck.service.IQualityManageService;
import cn.gistack.sm.resDataCheck.service.IRulesConditionService;
import cn.gistack.sm.resDataCheck.service.IRulesService;
import cn.gistack.system.feign.IDictBizClient;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -36,8 +37,11 @@
    private IQualityManageService qualityManageService;
    private IDictBizClient dictBizClient;
    /**
     * 指标匹配空值
     *
     * @param key condition
     * @return
     */
@@ -56,9 +60,10 @@
    /**
     * 指标对指标匹配
     * @param key condition
     *
     * @param key    condition
     * @param target 指标
     * @param val 值
     * @param val    值
     * @return
     */
    private String getConditionSqlStrByTarget(String key, String target, String val) {
@@ -106,11 +111,12 @@
    /**
     * 指标对值匹配
     *
     * @param key condition
     * @param val 值
     * @return
     */
    private String getConditionSqlStrByVal(String key,String val) {
    private String getConditionSqlStrByVal(String key, String val) {
        String retStr = "-1";
        switch (key) {
            case "GREATER": //大于
@@ -204,6 +210,10 @@
        return retStr;
    }
    private String getDictValue(String key) {
        return dictBizClient.getValue("CON_BASIC", key).getData();
    }
    @Override
    public R createDataRules(Long id) {
        log.info("规则匹配中......");
@@ -218,6 +228,7 @@
        // 开始拼接条件 where
        String sqlStr = "";
        String relation = "";
        String varStr = "";
        for (RulesCondition rc : rcList) {
            // 指标1
@@ -235,33 +246,50 @@
            if (rc.getProp().equals("NULLVAL")) { // 空值
                sqlStr += getConditionSqlStrByNullVal(rc.getCondition());
            } else if (rc.getProp().equals("TARGET")) { // 指标
                sqlStr += getConditionSqlStrByTarget(rc.getCondition(),getPropSqlStr(rc.getTarget()),rc.getValue());
                sqlStr += getConditionSqlStrByTarget(rc.getCondition(), getPropSqlStr(rc.getTarget()), rc.getValue());
            } else {
                sqlStr += getConditionSqlStrByVal(rc.getCondition(),rc.getValue());
                sqlStr += getConditionSqlStrByVal(rc.getCondition(), rc.getValue());
            }
            // 获取对应规则的值  concat('水库名称:',a."name",'\n','水库注册码:',a."interior_ad_guid")
            if (varStr.indexOf(getPropSqlStr(rc.getBasic())) < 0) {
                if (StringUtil.isBlank(varStr)) {
                    varStr =  "'" + getDictValue(rc.getBasic()) + ": " + "'" + "," + getPropSqlStr(rc.getBasic());
                } else {
                    varStr += "," + "'\n'" + ",'" + getDictValue(rc.getBasic()) + ": " + "'" + "," + getPropSqlStr(rc.getBasic());
                }
            }
            if (rc.getProp().equals("TARGET")) {
                varStr += "," + "'\n'" + ",'" + getDictValue(rc.getTarget()) + ": " + "'" + "," + getPropSqlStr(rc.getTarget());
            }
        }
        varStr = "concat(" + varStr +") AS val";
        if (StringUtil.isNotBlank(rules.getIsGate())) {
            sqlStr += "a.\"is_gate\" = " + rules.getIsGate();
            sqlStr += " and a.\"is_gate\" = " + rules.getIsGate();
        }
        // 拼接条件有问题,不操作
        if (sqlStr.indexOf("-1") > 0) {
            log.info("查询条件错误,请检查规则设置......:",sqlStr);
            return R.fail(-1,sqlStr + "\\n 查询条件错误,请检查规则设置");
            log.info("查询条件错误,请检查规则设置......:", sqlStr);
            return R.fail(-1, sqlStr + "\\n 查询条件错误,请检查规则设置");
        }
        Integer ret = 0;
        try {
            qualityManageService.addQualityManage(id,sqlStr);
            ret = qualityManageService.addQualityManage(id, varStr, sqlStr);
        } catch (Exception e) {
            e.printStackTrace();
            log.info("查询条件错误,请检查规则设置......:",sqlStr);
            log.info("查询条件错误,请检查规则设置......:", sqlStr);
        } finally {
            log.info("执行完成......:");
        }
        // 执行sql
        return R.success("");
        return R.data(ret);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.java
@@ -19,6 +19,6 @@
    QualityManageVO getDetail(@Param("id") String id);
    Integer addQualityManage(@Param("ruleId") Long ruleId, @Param("whereStr") String whereStr);
    Integer addQualityManage(@Param("ruleId") Long ruleId, @Param("varStr") String varStr, @Param("whereStr") String whereStr);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml
@@ -51,7 +51,7 @@
        <if test="vo.adCode != null and vo.adCode != '' ">
            and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
        </if>
        order by qm.create_time desc
    </select>
    <select id="getDetail" resultType="cn.gistack.sm.resDataCheck.vo.QualityManageVO">
        SELECT
@@ -71,8 +71,8 @@
    </select>
    <insert id="addQualityManage">
        insert into SM_RES_DATA_QUALITY_MANAGE (res_id,rule_id,create_time,update_time)
        select a."guid" as res_id,${ruleId} AS rule_id,NOW() AS create_time,NOW() AS update_time
        insert into SM_RES_DATA_QUALITY_MANAGE (res_id,rule_id,create_time,update_time,val)
        select a."guid" as res_id,${ruleId} AS rule_id,NOW() AS create_time,NOW() AS update_time, ${varStr}
        from SJZT_MD."att_res_base" a
                 left join SJZT_MD."att_res_danger_manage_special" b on (a."guid" = b."res_guid")
                 left join SJZT_MD."att_res_stag_char" c on (a."guid" = c."res_guid")
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/IQualityManageService.java
@@ -11,6 +11,6 @@
    QualityManageVO getDetail(String id);
    Integer addQualityManage(Long ruleId, String whereStr);
    Integer addQualityManage(Long ruleId, String varStr, String whereStr);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/impl/QualityManageServiceImpl.java
@@ -21,7 +21,7 @@
    }
    @Override
    public Integer addQualityManage(Long ruleId, String whereStr) {
        return baseMapper.addQualityManage(ruleId,whereStr);
    public Integer addQualityManage(Long ruleId, String varStr, String whereStr) {
        return baseMapper.addQualityManage(ruleId, varStr, whereStr);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DataRulesXxlJob.java
@@ -29,7 +29,7 @@
        JSONObject jsonParam = JSON.parseObject(param);
        XxlJobLogger.log("参数为:" + param);
        R r = rulesClient.createDataRules(jsonParam.getLong("ruleId"));
        XxlJobLogger.log("结束数据校验规则任务...",r.getMsg());
        XxlJobLogger.log("结束数据校验规则任务 data:返回受影响行数 返回值:<span style='color:red'>" + JSONObject.toJSONString(r) + "</span>") ;
        return ReturnT.SUCCESS;
    }