diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index 8fb9f17..ad8e1e6 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -5,6 +5,7 @@ import com.lyms.platform.common.dao.BaseQuery; import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.common.utils.StringUtils; import org.apache.commons.collections.CollectionUtils; import org.springframework.data.mongodb.core.query.Criteria; @@ -950,9 +951,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { if (null != created) { condition = condition.and("created", created, MongoOper.LTE); } - if (StringUtils.isNotEmpty(rLevel)) { - condition = condition.and("riskLevelId", rLevel, MongoOper.LIKE); - } + //居住地 if (StringUtils.isNotEmpty(areaId)) { condition = condition.and("areaId", areaId, MongoOper.IS); @@ -1116,6 +1115,156 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { Criteria c1 = null; + + if (StringUtils.isNotEmpty(rLevel)) { + //大同特殊处理 按颜色等于查询 + if("2100002419".equals(hospitalId)){ + List levelList= StringUtils.covertToList(rLevel, String.class); + if (CollectionUtils.isNotEmpty(levelList)){ + if (levelList.size()>1){ + MongoCondition c = MongoCondition.newInstance(); + List riskLevelIds=new ArrayList<>(); + MongoCondition condition1 = MongoCondition.newInstance("riskLevelId", JsonUtil.array2JsonString(levelList), MongoOper.IS); + if (levelList.size()==2){ + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(0)); + MongoCondition condition2 = MongoCondition.newInstance("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + if (c1 != null) { + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2}).getCriteria()); + } else { + c1 = c.orCondition(new MongoCondition[]{condition1, condition2}).getCriteria(); + } + }else if (levelList.size()==3){ + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(1)); + MongoCondition condition2 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + riskLevelIds.clear(); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(2)); + MongoCondition condition3 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(0)); + MongoCondition condition4 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(1)); + MongoCondition condition5 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(0)); + MongoCondition condition6 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + //condition=condition.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6}); + if (c1 != null) { + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6}).getCriteria()); + } else { + c1 = c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6}).getCriteria(); + } + }else if (levelList.size()==4){ + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(3)); + MongoCondition condition2 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + riskLevelIds.clear(); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(3)); + riskLevelIds.add(levelList.get(1)); + MongoCondition condition3 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(3)); + MongoCondition condition4 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(3)); + riskLevelIds.add(levelList.get(2)); + MongoCondition condition5 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(3)); + MongoCondition condition6 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + + riskLevelIds.clear(); + + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(3)); + riskLevelIds.add(levelList.get(0)); + MongoCondition condition7 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + riskLevelIds.clear(); + + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(3)); + MongoCondition condition8 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + riskLevelIds.clear(); + + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(3)); + riskLevelIds.add(levelList.get(0)); + MongoCondition condition9 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + riskLevelIds.clear(); + + + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(3)); + riskLevelIds.add(levelList.get(0)); + riskLevelIds.add(levelList.get(1)); + MongoCondition condition10 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + riskLevelIds.clear(); + + riskLevelIds.add(levelList.get(2)); + riskLevelIds.add(levelList.get(3)); + riskLevelIds.add(levelList.get(1)); + riskLevelIds.add(levelList.get(0)); + MongoCondition condition11 = new MongoCondition("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); + riskLevelIds.clear(); + + //condition=condition.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6,condition7,condition8,condition9,condition10,condition11}); + if (c1 != null) { + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6,condition7,condition8,condition9,condition10,condition11}).getCriteria()); + } else { + c1 = c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6,condition7,condition8,condition9,condition10,condition11}).getCriteria(); + } + } + + }else { + condition = condition.and("riskLevelId", JsonUtil.array2JsonString(levelList), MongoOper.IS); + } + + } + + }else { + condition = condition.and("riskLevelId", rLevel, MongoOper.LIKE); + } + + } + + if (StringUtils.isNotEmpty(queryNo)) { MongoCondition c = MongoCondition.newInstance(); MongoCondition con1 = MongoCondition.newInstance("phone", queryNo, MongoOper.IS);