|
@@ -5,9 +5,12 @@ import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
import cn.hutool.core.util.BooleanUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.persagy.dmp.basic.model.QueryCriteria;
|
|
@@ -19,6 +22,7 @@ import com.persagy.dmp.common.model.entity.BaseEntity;
|
|
|
import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
|
import com.persagy.dmp.digital.entity.ObjectRelation;
|
|
|
import com.persagy.dmp.rwd.digital.domain.CalculatingDTO;
|
|
|
+import lombok.SneakyThrows;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
@@ -372,13 +376,28 @@ public class ObjectDigitalCriteriaHelper {
|
|
|
* @param inSql in条件
|
|
|
* @param field 属性名
|
|
|
*/
|
|
|
+ @SneakyThrows
|
|
|
private static void addWhereCond(JsonNode node, StringBuilder inSql, String field) {
|
|
|
Object value = JsonNodeUtils.getNodeValue(node.get(field));
|
|
|
+ // 转下划线
|
|
|
+ String column = StrUtil.toUnderlineCase(field);
|
|
|
if(value == null) {
|
|
|
+ // 如果是数组形式,则加上in查询
|
|
|
+ JsonNode specialNode = node.get(field);
|
|
|
+ if (specialNode == null || specialNode.isNull()
|
|
|
+ || !specialNode.isArray() || specialNode.size()<1 || !specialNode.get(0).isTextual()){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ObjectMapper objectMapper = SpringUtil.getBean(ObjectMapper.class);
|
|
|
+ List<String> codes = objectMapper
|
|
|
+ .readValue(objectMapper.writeValueAsString(specialNode),new TypeReference<List<String>>(){});
|
|
|
+ inSql.append("and ")
|
|
|
+ .append(column)
|
|
|
+ .append(" in('")
|
|
|
+ .append(String.join("','",codes))
|
|
|
+ .append("') ");
|
|
|
return;
|
|
|
}
|
|
|
- // 转下划线
|
|
|
- String column = StrUtil.toUnderlineCase(field);
|
|
|
// 字符串的加单引号,其他的不加
|
|
|
if(value instanceof String) {
|
|
|
String stringValue = (String) value;
|