Pārlūkot izejas kodu

[task-6941] 体系运行记录盒查询条件逻辑调整

huangws 1 dienu atpakaļ
vecāks
revīzija
38b957ec1a

+ 23 - 27
ibps-base-root/modules/base-db/src/main/java/com/lc/ibps/base/db/ddd/dao/MyBatisQueryDaoImpl.java

@@ -573,37 +573,33 @@ public abstract class MyBatisQueryDaoImpl<PK extends java.io.Serializable, P ext
 			dynamicWhereSql = StringUtil.isNotEmpty(dynamicWhereSql) ? dynamicWhereSql + " and " + defaultWhere
 			dynamicWhereSql = StringUtil.isNotEmpty(dynamicWhereSql) ? dynamicWhereSql + " and " + defaultWhere
 					: defaultWhere;
 					: defaultWhere;
 		}
 		}
-		/** 1.是否华创启德医院环境 */
-		String setting = currentContext().getSetting();
-		boolean flag1 = false;
-		if (StringUtils.isNotEmpty(setting)) {
-			try {
-				ObjectMapper objectMapper = new ObjectMapper();
-				HashMap<String, Object> map = (HashMap) objectMapper.readValue(setting, Map.class);
-				String dgyy = Optional.ofNullable(map)
-						.map(m -> m.get("HCQD"))
-						.map(Object::toString)
-						.orElse("");
-				flag1 = Boolean.parseBoolean(dgyy);
-			} catch (Exception e) {
-				logger.warn("解析setting JSON失败, setting={}", setting, e);
-			}
-		}
-
 		if (StringUtil.isNotEmpty(dynamicWhereSql)) {
 		if (StringUtil.isNotEmpty(dynamicWhereSql)) {
-			if (StringUtil.isNotEmpty(dynamicWhereSql)) {
-				// 将 subject_ like 替换为对两个 # 之间内容的匹配
-				String modifiedWhereSql = dynamicWhereSql.replaceAll(
-						"subject_\\s+like\\s+",
-						"SUBSTRING_INDEX(SUBSTRING_INDEX(subject_, '#', 2), '#', -1) like "
+			if ("queryClassify".equals(sqlKey)) {
+				String modifiedWhereSql = dynamicWhereSql;
+
+				// 1. 替换 formName -> subject_ 第1段
+				modifiedWhereSql = modifiedWhereSql.replaceAll(
+						"(?i)\\bformName\\b(\\s+(?:like|=|!=|<>|>)\\s+)",
+						"SUBSTRING_INDEX(subject_, '#', 1) $1"
 				);
 				);
-				if(flag1){//如果修改流程数据客户不好根据标题区分,所以在这里进行代码转换,保证页面查询无误
-					params.put("whereSql", modifiedWhereSql);//华创
-				}else{
-					params.put("whereSql", dynamicWhereSql);//原逻辑
-				}
+
+				// 2. 替换 transDesc -> subject_ 第2段
+				modifiedWhereSql = modifiedWhereSql.replaceAll(
+						"(?i)\\btransDesc\\b(\\s+(?:like|=|!=|<>|>)\\s+)",
+						"SUBSTRING_INDEX(SUBSTRING_INDEX(subject_, '#', 2), '#', -1) $1"
+				);
+
+				// 3. 替换 dep -> subject_ 第3段
+				modifiedWhereSql = modifiedWhereSql.replaceAll(
+						"(?i)\\bdep\\b(\\s+(?:like|=|!=|<>|>)\\s+)",
+						"SUBSTRING_INDEX(subject_, '#', -1) $1"
+				);
+				params.put("whereSql", modifiedWhereSql);
+			}else{
+				params.put("whereSql", dynamicWhereSql);//原逻辑
 			}
 			}
 		}
 		}
+
 		// 构建排序SQL
 		// 构建排序SQL
 		if (BeanUtils.isNotEmpty(queryFilter.getFieldSortList())) {
 		if (BeanUtils.isNotEmpty(queryFilter.getFieldSortList())) {
 			StringBuffer sb = new StringBuffer();
 			StringBuffer sb = new StringBuffer();