Commit 8bc671cd5eb1103ef286737cd55738185e9c4de8
1 parent
c30b271af1
Exists in
dev
#fix:优化高危孕妇查询
Showing 2 changed files with 45 additions and 41 deletions
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java
View file @
8bc671c
... | ... | @@ -132,7 +132,6 @@ |
132 | 132 | patientsQuery.mysqlBuild(iPatientDao.queryPatientCount(query)); |
133 | 133 | query.start(patientsQuery.getOffset()).end(patientsQuery.getLimit()); |
134 | 134 | } |
135 | - // System.out.println(query.convertToMongoQuery().toString()); | |
136 | 135 | return iPatientDao.queryPatient(query.addOrder(Sort.Direction.fromString(sort), field)); |
137 | 136 | } |
138 | 137 |
platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java
View file @
8bc671c
... | ... | @@ -869,6 +869,7 @@ |
869 | 869 | if (null != sendCareMan) { |
870 | 870 | condition = condition.and("sendCareMan", sendCareMan, MongoOper.IS); |
871 | 871 | } |
872 | + | |
872 | 873 | if (buildType != -1) { |
873 | 874 | MongoCondition mongoCondition = MongoCondition.newInstance("buildType", 3, MongoOper.IS); |
874 | 875 | |
875 | 876 | |
876 | 877 | |
... | ... | @@ -1124,10 +1125,35 @@ |
1124 | 1125 | } |
1125 | 1126 | } |
1126 | 1127 | |
1127 | - Criteria c1 = null; | |
1128 | 1128 | |
1129 | + | |
1129 | 1130 | Criteria c5 = MongoCondition.newInstance().getCriteria(); |
1130 | 1131 | |
1132 | + Criteria c1 = null; | |
1133 | + | |
1134 | + if (StringUtils.isNotEmpty(queryNo)) { | |
1135 | + MongoCondition c = MongoCondition.newInstance(); | |
1136 | + MongoCondition con1 = MongoCondition.newInstance("phone", queryNo, MongoOper.IS); | |
1137 | + MongoCondition con2 = MongoCondition.newInstance("username", "^" + queryNo, MongoOper.LIKE); | |
1138 | + MongoCondition con3 = MongoCondition.newInstance("cardNo", queryNo, MongoOper.IS); | |
1139 | + //MongoCondition con4 = MongoCondition.newInstance("fileCode", queryNo, MongoOper.IS); | |
1140 | + MongoCondition con5 = MongoCondition.newInstance("vcCardNo", queryNo, MongoOper.IS); | |
1141 | + if (c1 != null) { | |
1142 | + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con2, con3, con5}).getCriteria()); | |
1143 | + } else { | |
1144 | + c1 = c.orCondition(new MongoCondition[]{con1, con2, con3, con5}).getCriteria(); | |
1145 | + } | |
1146 | + } | |
1147 | + Criteria c6 = MongoCondition.newInstance().getCriteria(); | |
1148 | + //高危颜色等级无标记查询 | |
1149 | + if (CollectionUtils.isNotEmpty(noRlevel)) { | |
1150 | + MongoCondition c = MongoCondition.newInstance(); | |
1151 | + MongoCondition con1 = MongoCondition.newInstance("riskLevelId", "[]", MongoOper.IS); | |
1152 | + MongoCondition con2 = MongoCondition.newInstance("riskLevelId", false, MongoOper.EXISTS); | |
1153 | + c6 = c6.andOperator(c.orCondition(new MongoCondition[]{con1, con2}).getCriteria()); | |
1154 | + | |
1155 | + } | |
1156 | + | |
1131 | 1157 | if (StringUtils.isNotEmpty(rLevel)) { |
1132 | 1158 | //大同特殊处理 按颜色等于查询 |
1133 | 1159 | if("2100002419".equals(hospitalId)&&StringUtils.isEmpty(allPats)){ |
1134 | 1160 | |
... | ... | @@ -1141,11 +1167,12 @@ |
1141 | 1167 | riskLevelIds.add(levelList.get(1)); |
1142 | 1168 | riskLevelIds.add(levelList.get(0)); |
1143 | 1169 | MongoCondition condition2 = MongoCondition.newInstance("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); |
1144 | - if (c1 != null) { | |
1170 | + /* if (c1 != null) { | |
1145 | 1171 | c1 = c1.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2}).getCriteria()); |
1146 | 1172 | } else { |
1147 | 1173 | c1 = c.orCondition(new MongoCondition[]{condition1, condition2}).getCriteria(); |
1148 | - } | |
1174 | + }*/ | |
1175 | + c6=c6.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2}).getCriteria()); | |
1149 | 1176 | }else if (levelList.size()==3){ |
1150 | 1177 | riskLevelIds.add(levelList.get(0)); |
1151 | 1178 | riskLevelIds.add(levelList.get(2)); |
1152 | 1179 | |
... | ... | @@ -1178,11 +1205,12 @@ |
1178 | 1205 | |
1179 | 1206 | riskLevelIds.clear(); |
1180 | 1207 | //condition=condition.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6}); |
1181 | - if (c1 != null) { | |
1208 | + /* if (c1 != null) { | |
1182 | 1209 | c1 = c1.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6}).getCriteria()); |
1183 | 1210 | } else { |
1184 | 1211 | c1 = c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6}).getCriteria(); |
1185 | - } | |
1212 | + }*/ | |
1213 | + c6=c6.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6}).getCriteria()); | |
1186 | 1214 | }else if (levelList.size()==4){ |
1187 | 1215 | riskLevelIds.add(levelList.get(0)); |
1188 | 1216 | riskLevelIds.add(levelList.get(1)); |
1189 | 1217 | |
... | ... | @@ -1307,11 +1335,13 @@ |
1307 | 1335 | riskLevelIds.clear(); |
1308 | 1336 | |
1309 | 1337 | //condition=condition.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6,condition7,condition8,condition9,condition10,condition11}); |
1310 | - if (c1 != null) { | |
1338 | + /* if (c1 != null) { | |
1311 | 1339 | c1 = c1.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6,condition7,condition8,condition9,condition10,condition11,condition12,condition13,condition14,condition15,condition16,condition17,condition18}).getCriteria()); |
1312 | 1340 | } else { |
1313 | 1341 | c1 = c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6,condition7,condition8,condition9,condition10,condition11,condition12,condition13,condition14,condition15,condition16,condition17,condition18}).getCriteria(); |
1314 | - } | |
1342 | + }*/ | |
1343 | + c6=c6.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3,condition4,condition5,condition6,condition7,condition8,condition9,condition10,condition11,condition12,condition13,condition14,condition15,condition16,condition17,condition18}).getCriteria()); | |
1344 | + | |
1315 | 1345 | } |
1316 | 1346 | |
1317 | 1347 | }else { |
1318 | 1348 | |
1319 | 1349 | |
... | ... | @@ -1332,17 +1362,19 @@ |
1332 | 1362 | riskLevelIds.add("224b2329-cb82-4da3-a071-8527f8283aab"); |
1333 | 1363 | riskLevelIds.add(rLevel); |
1334 | 1364 | MongoCondition condition3 = MongoCondition.newInstance("riskLevelId",JsonUtil.array2JsonString(riskLevelIds), MongoOper.IS); |
1335 | - if (c1 != null) { | |
1336 | - c1 = c1.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3}).getCriteria()); | |
1365 | + /* if (c1 != null) { | |
1366 | + c1 = c1.orOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3}).getCriteria()); | |
1337 | 1367 | } else { |
1338 | 1368 | c1 = c.orCondition(new MongoCondition[]{condition1, condition2,condition3}).getCriteria(); |
1339 | - } | |
1369 | + }*/ | |
1370 | + c6=c6.andOperator(c.orCondition(new MongoCondition[]{condition1, condition2,condition3}).getCriteria()); | |
1371 | + | |
1340 | 1372 | //橙色 查询除了红色以外的 |
1341 | 1373 | }else if ("49a36aea-c5b6-4162-87d2-9eb3c6ec00c2".equals(rLevel)){ |
1342 | 1374 | //查询不包含红色 eb146c03-b19f-4e28-b85f-fda574b2283b |
1343 | 1375 | Pattern compile = Pattern.compile("^((?!" + "eb146c03-b19f-4e28-b85f-fda574b2283b"+ ").)*$", Pattern.CASE_INSENSITIVE); |
1344 | 1376 | c5 =Criteria.where("riskLevelId").is(compile).regex(rLevel); |
1345 | - //红色查询所有包含红色的 | |
1377 | + //红色查询所有包含红色的 | |
1346 | 1378 | }else if ("eb146c03-b19f-4e28-b85f-fda574b2283b".equals(rLevel)){ |
1347 | 1379 | condition = condition.and("riskLevelId", rLevel,MongoOper.LIKE); |
1348 | 1380 | }else { |
... | ... | @@ -1358,33 +1390,6 @@ |
1358 | 1390 | |
1359 | 1391 | } |
1360 | 1392 | |
1361 | - | |
1362 | - if (StringUtils.isNotEmpty(queryNo)) { | |
1363 | - MongoCondition c = MongoCondition.newInstance(); | |
1364 | - MongoCondition con1 = MongoCondition.newInstance("phone", queryNo, MongoOper.IS); | |
1365 | - MongoCondition con2 = MongoCondition.newInstance("username", "^" + queryNo, MongoOper.LIKE); | |
1366 | - MongoCondition con3 = MongoCondition.newInstance("cardNo", queryNo, MongoOper.IS); | |
1367 | - //MongoCondition con4 = MongoCondition.newInstance("fileCode", queryNo, MongoOper.IS); | |
1368 | - MongoCondition con5 = MongoCondition.newInstance("vcCardNo", queryNo, MongoOper.IS); | |
1369 | - if (c1 != null) { | |
1370 | - c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con2, con3, con5}).getCriteria()); | |
1371 | - } else { | |
1372 | - c1 = c.orCondition(new MongoCondition[]{con1, con2, con3, con5}).getCriteria(); | |
1373 | - } | |
1374 | - } | |
1375 | - //高危颜色等级无标记查询 | |
1376 | - if (CollectionUtils.isNotEmpty(noRlevel)) { | |
1377 | - MongoCondition c = MongoCondition.newInstance(); | |
1378 | - MongoCondition con1 = MongoCondition.newInstance("riskLevelId", "[]", MongoOper.IS); | |
1379 | - MongoCondition con2 = MongoCondition.newInstance("riskLevelId", false, MongoOper.EXISTS); | |
1380 | - if (c1 != null) { | |
1381 | - c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con2}).getCriteria()); | |
1382 | - } else { | |
1383 | - c1 = c.orCondition(new MongoCondition[]{con1, con2}).getCriteria(); | |
1384 | - } | |
1385 | - } | |
1386 | - | |
1387 | - | |
1388 | 1393 | if (org.apache.commons.lang.StringUtils.isNotBlank(trackHospitalId)) { |
1389 | 1394 | MongoCondition c = MongoCondition.newInstance(); |
1390 | 1395 | MongoCondition con1 = MongoCondition.newInstance("trackHospitalId", trackHospitalId, MongoOper.IS); |
1391 | 1396 | |
... | ... | @@ -1929,10 +1934,10 @@ |
1929 | 1934 | c4.and("firstCheckId").exists(firstCheckId2); |
1930 | 1935 | } |
1931 | 1936 | if (null != c1) { |
1932 | - return new MongoCondition(c1.andOperator(condition.getCriteria(), c2, c3, c4,c5)).toMongoQuery(); | |
1937 | + return new MongoCondition(c1.andOperator(condition.getCriteria(), c2, c3, c4,c5,c6)).toMongoQuery(); | |
1933 | 1938 | // return new MongoCondition(c1.andOperator(condition.getCriteria())).toMongoQuery(); |
1934 | 1939 | } |
1935 | - return new MongoCondition(c2.andOperator(condition.getCriteria(), c3, c4,c5)).toMongoQuery(); | |
1940 | + return new MongoCondition(c2.andOperator(condition.getCriteria(), c3, c4,c5,c6)).toMongoQuery(); | |
1936 | 1941 | // return condition.toMongoQuery(); |
1937 | 1942 | } |
1938 | 1943 |