From 91fff6d21fcec11fca3097cd7641d9ea9ebfda8d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 25 Jan 2024 11:36:19 +0800
Subject: [PATCH] 若有固定值,则指标条件加上固定值
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java | 53 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 42 insertions(+), 11 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java
index b44b507..b2533db 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java
@@ -5,12 +5,14 @@
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;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@@ -36,8 +38,11 @@
private IQualityManageService qualityManageService;
+ private IDictBizClient dictBizClient;
+
/**
* 指标匹配空值
+ *
* @param key condition
* @return
*/
@@ -56,9 +61,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 +112,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 +211,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 +229,7 @@
// 开始拼接条件 where
String sqlStr = "";
String relation = "";
+ String varStr = "";
for (RulesCondition rc : rcList) {
// 指标1
@@ -235,33 +247,52 @@
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 += ObjectUtil.isNotEmpty(rc.getFixValue())?
+ getConditionSqlStrByTarget(rc.getCondition(), getPropSqlStr(rc.getTarget()), rc.getValue())+"-"+rc.getFixValue() :
+ 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);
}
}
--
Gitblit v1.9.3