diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index 2fd251a..757b03c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -3220,10 +3220,6 @@ public class BabyBookbuildingFacade { babyQuery.setYn(YnEnums.YES.getId()); } - - if (isPage) { - babyQuery.setNeed("true"); - } babyQuery.setMcertNo(request.getMcardNo()); babyQuery.setCardNo(request.getBcardNo()); babyQuery.setName(request.getName()); @@ -3332,10 +3328,6 @@ public class BabyBookbuildingFacade { babyQuery.setBuildDoctor(request.getBuildDoctor()); } - - babyQuery.setPage(request.getPage()); - babyQuery.setLimit(request.getLimit()); - //0 非高危 1 高危 2 全部 3、体弱儿 if (request.getHighRiskType() != null) { if (request.getHighRiskType() == 1) {//高危 @@ -3397,11 +3389,11 @@ public class BabyBookbuildingFacade { final String heartMurmur=request.getHeartMurmur(); final Integer cyNumType=request.getCyNumType(); final Integer qcNumType=request.getQcNumType(); - List list=babyBookBuildingDao.queryBabyWithQuery(babyQuery.convertToQuery()); + List list=babyBookbuildingService.queryBabyBuildByCond(babyQuery); + Set data = new HashSet<>(); int batchSize = 20; int end = 0; List listFuture = new ArrayList <>(); - final Set idset=new HashSet<>(); for (int i = 0; i < list.size(); i += batchSize) { end = (end + batchSize); if (end > list.size()) { @@ -3411,55 +3403,68 @@ public class BabyBookbuildingFacade { listFuture.add(commonThreadPool.submit(new Callable() { @Override public Object call() throws Exception { - for (BabyModel risk : risks) { - Query query = new Query(); - query.addCriteria(Criteria.where("id").is(risk.getId())); - if(StringUtils.isNotEmpty(mildAnaemia)){ - query.addCriteria(Criteria.where("mildAnaemia").is(mildAnaemia)); - } - if(StringUtils.isNotEmpty(moderateAnaemia)){ - query.addCriteria(Criteria.where("moderateAnaemia").is(moderateAnaemia)); - } - if(StringUtils.isNotEmpty(heartMurmur)){ - query.addCriteria(Criteria.where("heartMurmur").is(heartMurmur)); - } - if(null!=cyNumType){ - if(cyNumType==1){//正常 - Criteria criteria = new Criteria(); - Criteria criteria1= Criteria.where("cyNumType").is(cyNumType); - Criteria criteria2= Criteria.where("cyNumType").exists(false); - criteria.orOperator(criteria2,criteria1); - query.addCriteria(criteria1);//如需兼容历史数据用criteria。没有该字段的暂时默认正常 + if (CollectionUtils.isNotEmpty(risks)) { + Set ids=new HashSet<>(); + for (BabyModel risk : risks) { + Query query = new Query(); + query.addCriteria(Criteria.where("buildId").is(risk.getId())); + if (StringUtils.isNotEmpty(mildAnaemia)) { + query.addCriteria(Criteria.where("mildAnaemia").is(mildAnaemia)); } - if(cyNumType==2){//异常 - query.addCriteria(Criteria.where("cyNumType").is(cyNumType)); + if (StringUtils.isNotEmpty(moderateAnaemia)) { + query.addCriteria(Criteria.where("moderateAnaemia").is(moderateAnaemia)); } - } - if(null!=qcNumType){ - if(qcNumType==2){//异常 - //字符串判断大小 - String formatQcNum = String.format("function() {\n" + - " return this.qcNum > %s \n" + - " }","0"); - query.addCriteria(Criteria.where("$where").is(formatQcNum)); + if (StringUtils.isNotEmpty(heartMurmur)) { + query.addCriteria(Criteria.where("heartMurmur").is(heartMurmur)); + } + if (null != cyNumType) { + if (cyNumType == 1) {//正常 + Criteria criteria = new Criteria(); + Criteria criteria1 = Criteria.where("cyNumType").is(cyNumType); + Criteria criteria2 = Criteria.where("cyNumType").exists(false); + criteria.orOperator(criteria2, criteria1); + query.addCriteria(criteria1);//如需兼容历史数据用criteria。没有该字段的暂时默认正常 + } + if (cyNumType == 2) {//异常 + query.addCriteria(Criteria.where("cyNumType").is(cyNumType)); + } + } + if (null != qcNumType) { + if (qcNumType == 2) {//异常 + //字符串判断大小 + String formatQcNum = String.format("function() {\n" + + " return this.qcNum > %s \n" + + " }", "0"); + query.addCriteria(Criteria.where("$where").is(formatQcNum)); + } } - } - final BabyCheckModel checkModel = mongoTemplate.findOne(query, BabyCheckModel.class); - if(null!=checkModel){ - idset.add(checkModel.getBuildId()); + BabyCheckModel checkModel = mongoTemplate.findOne(query, BabyCheckModel.class); + if (null != checkModel) { + ids.add(checkModel.getBuildId()); + } } + return ids; } return null; } })); } - BabyModelQuery babyQuery2=new BabyModelQuery(); - babyQuery2.setPage(request.getPage()); - babyQuery2.setLimit(request.getLimit()); - babyQuery2.setIds(new ArrayList(idset)); - babyQuery=babyQuery2; + for (Future f : listFuture) { + try { + data.addAll((Set) f.get(30, TimeUnit.SECONDS)); + } catch (Exception e) { + ExceptionUtils.catchException(e, "convertToQuanPatient get result Future error."); + } + } + babyQuery.setIds(new ArrayList(data)); } + //分页 + if (isPage) { + babyQuery.setNeed("true"); + } + babyQuery.setPage(request.getPage()); + babyQuery.setLimit(request.getLimit()); List models = babyBookbuildingService.queryBabyBuildByCond(babyQuery, "created", Sort.Direction.DESC); return models;