Commit 8bc671cd5eb1103ef286737cd55738185e9c4de8

Authored by zhangchao
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