From cdd48b59d125273928cb5d3661f202be9bb29653 Mon Sep 17 00:00:00 2001 From: shiyang Date: Fri, 13 Aug 2021 11:38:37 +0800 Subject: [PATCH] update --- .../com/lyms/platform/query/BabyModelQuery.java | 46 +++++++++++++++------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java index f6f59f5..a6e6c99 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java @@ -1389,19 +1389,20 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { if (null != riskCodeExist) { condition = condition.and("riskCode", riskCodeExist, MongoOper.EXISTS); } - if (StringUtils.isNotEmpty(openDisease)) { - if ("2".equals(openDisease)) - { - condition = condition.and("openDisease", openDisease, MongoOper.IS); - } - else - { - MongoCondition con1 = MongoCondition.newInstance("openDisease", "1", MongoOper.IS); - MongoCondition con = MongoCondition.newInstance("openDisease", false, MongoOper.EXISTS); - condition = condition.orCondition(new MongoCondition[]{con1, con}); - } - } + //条件查询有冲突 +// if (StringUtils.isNotEmpty(openDisease)) { +// if ("2".equals(openDisease)) +// { +// condition = condition.and("openDisease", openDisease, MongoOper.IS); +// } +// else +// { +// MongoCondition con1 = MongoCondition.newInstance("openDisease", "1", MongoOper.IS); +// MongoCondition con = MongoCondition.newInstance("openDisease", false, MongoOper.EXISTS); +// condition = condition.orCondition(new MongoCondition[]{con1, con}); +// } +// } if (null != endCase) { condition = condition.and("endCase", endCase, MongoOper.IS); @@ -1971,16 +1972,33 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { MongoCondition con2 = MongoCondition.newInstance("weakSon", 1, MongoOper.IS); cor=c1.orCondition(new MongoCondition[]{con1, con2}).getCriteria(); } + //条件查询:儿童疾病是否开通字段 查询冲突问题解决 + Criteria cor2=null; + if (StringUtils.isNotEmpty(openDisease)) { + if ("2".equals(openDisease)) + { + condition = condition.and("openDisease", openDisease, MongoOper.IS); + } + else + { + MongoCondition con =MongoCondition.newInstance(); + MongoCondition con1 = MongoCondition.newInstance("openDisease", "1", MongoOper.IS); + MongoCondition con2 = MongoCondition.newInstance("openDisease", false, MongoOper.EXISTS); + cor2 = con.orCondition(new MongoCondition[]{con1, con2}).getCriteria(); + } + } /** * 多个orCondition 需要添加Criteria来控制json同级两个and或者or来解决mongodb执行查询问题 */ - if(c!=null&&cor!=null){ - return new MongoCondition(c.andOperator(condition.getCriteria(), cor)).toMongoQuery(); + if(c!=null&&cor!=null&&cor2!=null){ + return new MongoCondition(c.andOperator(condition.getCriteria(), cor,cor2)).toMongoQuery(); }else if(c!=null){ return new MongoCondition(c.andOperator(condition.getCriteria())).toMongoQuery(); }else if(cor!=null){ return new MongoCondition(cor.andOperator(condition.getCriteria())).toMongoQuery(); + }else if(cor2!=null){ + return new MongoCondition(cor2.andOperator(condition.getCriteria())).toMongoQuery(); }else { return condition.toMongoQuery(); } -- 1.8.3.1