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; }