diff --git a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java index b35ed17..8e346d5 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java +++ b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoCondition.java @@ -208,6 +208,8 @@ public class MongoCondition { }else { criteria.nin(obj); } + }else if(MongoOper.SIZE==oper){ + criteria.size(Integer.parseInt(obj.toString())); } } diff --git a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java index 417c4a0..3169d99 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java +++ b/platform-common/src/main/java/com/lyms/platform/common/dao/operator/MongoOper.java @@ -24,5 +24,7 @@ public enum MongoOper { //是否存在 EXISTS, NIN, - IN; + IN, + //判断集合是否为空 + SIZE; } \ No newline at end of file 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 d37e7bb..a46c222 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 @@ -2019,6 +2019,7 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { //隆华、滦平定制 Criteria cor3=MongoCondition.newInstance().getCriteria();//这里不能给null return拼接不能为空 + Criteria cor4=MongoCondition.newInstance().getCriteria();//这里不能给null return拼接不能为空 if(CollectionUtils.isNotEmpty(hospitalIdList)){ if (hospitalIdList.contains("2100001605")||hospitalIdList.contains("2100001377")){ //是否结案0:未结案,1:已结案 条件查询 @@ -2035,9 +2036,16 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { //隆华、滦平 是否结案 条件查询 健康0/高危1,有没有高危详情来判断 if(null!=healthHigh){ if(healthHigh==0){ - condition=condition.and("highRiskInfo", false, MongoOper.EXISTS); + MongoCondition con = MongoCondition.newInstance(); + MongoCondition con1 = MongoCondition.newInstance("highRiskInfo", false, MongoOper.EXISTS); + MongoCondition con2 = MongoCondition.newInstance("highRiskInfo",0,MongoOper.SIZE); + cor4=con.orCondition(new MongoCondition[]{con1, con2}).getCriteria(); + +// Criteria cr = Criteria.where("highRiskInfo").orOperator(Criteria.where("highRiskInfo").size(0),Criteria.where("highRiskInfo").exists(false)); +// condition.andCondition(new MongoCondition(cr)); }else { - condition=condition.and("highRiskInfo", true, MongoOper.EXISTS); + Criteria cr = Criteria.where("highRiskInfo").exists(true).gt(""); + condition.andCondition(new MongoCondition(cr)); } } }else { @@ -2054,9 +2062,9 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { * 多个orCondition 需要添加Criteria来控制json同级两个and或者or来解决mongodb执行查询问题 */ if(c!=null){ - return new MongoCondition(c.andOperator(condition.getCriteria(),cor,cor2,cor3)).toMongoQuery(); + return new MongoCondition(c.andOperator(condition.getCriteria(),cor,cor2,cor3,cor4)).toMongoQuery(); } - return new MongoCondition(cor.andOperator(condition.getCriteria(),cor2,cor3)).toMongoQuery(); + return new MongoCondition(cor.andOperator(condition.getCriteria(),cor2,cor3,cor4)).toMongoQuery(); } public Boolean getFmDataStatu() {