From 454f607f2efd7904b5a997e0bffbbfa0733530c5 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Fri, 07 Jul 2023 12:01:22 +0800
Subject: [PATCH] 数据校验规则数据生成修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/controller/RulesController.java            |    3 -
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/IQualityManageService.java         |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/feign/RulesClient.java                     |   50 +++++++++++++++++++-----
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml             |    6 +-
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DataRulesXxlJob.java           |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.java            |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/impl/QualityManageServiceImpl.java |    4 +-
 7 files changed, 48 insertions(+), 21 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/controller/RulesController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/controller/RulesController.java
index b4adb34..d5bd041 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/controller/RulesController.java
+++ b/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);
 	}
 
 	/**
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..2b14d55 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,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);
 	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.java
index 4b79711..9615617 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.java
+++ b/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);
 
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml
index 43a79e6..e52e3f1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml
+++ b/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")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/IQualityManageService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/IQualityManageService.java
index e0a8b46..c82b148 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/IQualityManageService.java
+++ b/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);
 
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/impl/QualityManageServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/impl/QualityManageServiceImpl.java
index 0f03aac..8ca35b6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/service/impl/QualityManageServiceImpl.java
+++ b/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);
 	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DataRulesXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DataRulesXxlJob.java
index 17c76cd..87e432b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/DataRulesXxlJob.java
+++ b/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;
 	}
 

--
Gitblit v1.9.3