From 8229b12121e90a54074c27097165d42078ab61dd Mon Sep 17 00:00:00 2001 From: wtt Date: Thu, 16 Apr 2020 16:51:47 +0800 Subject: [PATCH] update --- .../main/java/com/lyms/platform/pojo/Patients.java | 11 ++++ .../com/lyms/platform/query/PatientsQuery.java | 15 ++++- .../platform/operate/web/facade/PatientFacade.java | 66 +++++++++++++++++----- .../service/impl/RareBloodGroupServiceImpl.java | 3 + 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java b/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java index 7e82a69..1286080 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java @@ -324,6 +324,17 @@ public class Patients extends BaseModel { private String trackHospitalId; + //稀有血型 1 是稀有血型,空不是 + private String rareType; + + public String getRareType() { + return rareType; + } + + public void setRareType(String rareType) { + this.rareType = rareType; + } + public String getTrackHospitalId() { return trackHospitalId; } 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 2d9a4b7..37115ce 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 @@ -33,6 +33,8 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private String liveType; + + private String rareType; /** * 关键字 */ @@ -524,7 +526,9 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { if (null != liveType) { condition = condition.and("pliveTypeId", liveType, MongoOper.IS); } - + if (null != rareType) { + condition = condition.and("rareType", rareType, MongoOper.IS); + } if (null != sendCareMan) { condition = condition.and("sendCareMan", sendCareMan, MongoOper.IS); } @@ -698,6 +702,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { condition = condition.and("pid", pIds, MongoOper.IN); } + if (null != blNum) { condition = condition.and("blNum", blNum, MongoOper.IS); } @@ -1206,6 +1211,14 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { this.existRiskLevel = existRiskLevel; } + public String getRareType() { + return rareType; + } + + public void setRareType(String rareType) { + this.rareType = rareType; + } + public String getLiveType() { return liveType; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index a45dd60..c1a0b52 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -5,6 +5,7 @@ import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; 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.enums.*; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; @@ -707,7 +708,7 @@ public class PatientFacade { return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); } - /** + /** * 查询双胎全部孕妇管理 * * @param riskPatientsQueryRequest @@ -723,6 +724,35 @@ public class PatientFacade { //查询符合条件的孕妇 StopWatch stopWatch = new StopWatch("queryPatient1 -" + hospital); stopWatch.start(); + + + Query yn = null; + //双绒双羊、单绒单羊、单绒双羊 + if ("1".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("双胎妊娠(双绒双羊)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("2".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("双胎妊娠(单绒双羊)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("3".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("双胎妊娠(单绒单羊)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + } else { + Criteria criteria1 = Criteria.where("name").is("双胎妊娠(双绒双羊)"); + Criteria criteria2 = Criteria.where("name").is("双胎妊娠(单绒双羊)"); + Criteria criteria3 = Criteria.where("name").is("双胎妊娠(单绒单羊)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3)); + } + List models = mongoTemplate.find(yn, BasicConfig.class); + List rFactorList = new ArrayList<>(); + if (models != null && models.size() > 0) { + for (int i = 0; i < models.size(); i++) { + rFactorList.add(models.get(i).getId()); + } + } + patientsQuery.setrFactorList(rFactorList); List patientses = patientsService.queryPatientBySort(patientsQuery, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); stopWatch.stop(); @@ -731,13 +761,14 @@ public class PatientFacade { if (CollectionUtils.isNotEmpty(patientses)) { if (type == 1) { //处理全部孕妇的情况 - data = convertToTwinsPatient(riskPatientsQueryRequest,patientses, userId, hospital); + data = convertToTwinsPatient(riskPatientsQueryRequest, patientses, userId, hospital); } } - patientsQuery.mysqlBuild(data.size()); +// patientsQuery.mysqlBuild(data.size()); return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); } - /** + + /** * 稀有血型专病门诊管理list * * @param riskPatientsQueryRequest @@ -748,7 +779,7 @@ public class PatientFacade { public BaseResponse queryRareList(RiskPatientsQueryRequest riskPatientsQueryRequest, Boolean isHighRisk, Integer type, Integer userId, String needPage, boolean isRegion) { //组合请求 PatientsQuery patientsQuery = complayRequest(riskPatientsQueryRequest, isHighRisk, type, userId, needPage, isRegion); - + patientsQuery.setRareType("1"); String hospital = autoMatchFacade.getHospitalId(userId); //查询符合条件的孕妇 StopWatch stopWatch = new StopWatch("queryPatient1 -" + hospital); @@ -761,11 +792,16 @@ public class PatientFacade { if (CollectionUtils.isNotEmpty(patientses)) { if (type == 1) { //处理全部孕妇的情况 - data = convertToRareList(riskPatientsQueryRequest,patientses, userId, hospital); + data = convertToRareList(riskPatientsQueryRequest, patientses, userId, hospital); } } - patientsQuery.mysqlBuild(data.size()); +// patientsQuery.mysqlBuild(data.size()); + MongoQuery query = patientsQuery.convertToQuery(); + if (org.apache.commons.lang.StringUtils.isNotEmpty(patientsQuery.getNeed())) { + patientsQuery.mysqlBuild(data.size()); + query.start(patientsQuery.getOffset()).end(patientsQuery.getLimit()); + } return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); } @@ -867,7 +903,8 @@ public class PatientFacade { } return data; } - private List convertToTwinsPatient(RiskPatientsQueryRequest riskPatientsQueryRequest,List patientses, Integer userId, String hospital) { + + private List convertToTwinsPatient(RiskPatientsQueryRequest riskPatientsQueryRequest, List patientses, Integer userId, String hospital) { List data = new ArrayList<>(); int batchSize = 4; int end = 0; @@ -877,7 +914,7 @@ public class PatientFacade { if (end > patientses.size()) { end = patientses.size(); } - listFuture.add(commonThreadPool.submit(new TwinsPatientWorker(riskPatientsQueryRequest,patientses.subList(i, end), usersService, hospital, antExService, basicConfigService, patientsService, organizationService))); + listFuture.add(commonThreadPool.submit(new TwinsPatientWorker(riskPatientsQueryRequest, patientses.subList(i, end), usersService, hospital, antExService, basicConfigService, patientsService, organizationService))); } for (Future f : listFuture) { try { @@ -888,7 +925,8 @@ public class PatientFacade { } return data; } - private List convertToRareList(RiskPatientsQueryRequest riskPatientsQueryRequest,List patientses, Integer userId, String hospital) { + + private List convertToRareList(RiskPatientsQueryRequest riskPatientsQueryRequest, List patientses, Integer userId, String hospital) { List data = new ArrayList<>(); int batchSize = 4; int end = 0; @@ -898,7 +936,7 @@ public class PatientFacade { if (end > patientses.size()) { end = patientses.size(); } - listFuture.add(commonThreadPool.submit(new RareListWorker(riskPatientsQueryRequest, patientses.subList(i, end), usersService,rareBloodGroupService,mongoTemplate, hospital, antExService, basicConfigService, patientsService, organizationService))); + listFuture.add(commonThreadPool.submit(new RareListWorker(riskPatientsQueryRequest, patientses.subList(i, end), usersService, rareBloodGroupService, mongoTemplate, hospital, antExService, basicConfigService, patientsService, organizationService))); } for (Future f : listFuture) { try { @@ -1987,11 +2025,11 @@ public class PatientFacade { if (sieveApplyOrderModels != null && sieveApplyOrderModels.size() > 0) { SieveApplyOrderModel sieveApplyOrderModel = sieveApplyOrderModels.get(0); //本次妊娠情况 - if (org.apache.commons.lang.StringUtils.isNotEmpty(sieveApplyOrderModel.getImprenation()) && "1".equals(sieveApplyOrderModel.getImprenation())) { + if (org.apache.commons.lang.StringUtils.isNotEmpty(sieveApplyOrderModel.getImprenation()) && "1".equals(sieveApplyOrderModel.getImprenation())) { pregnancy = "0"; - } else if (org.apache.commons.lang.StringUtils.isNotEmpty(sieveApplyOrderModel.getOvulationInduction()) && "1".equals(sieveApplyOrderModel.getOvulationInduction())) { + } else if (org.apache.commons.lang.StringUtils.isNotEmpty(sieveApplyOrderModel.getOvulationInduction()) && "1".equals(sieveApplyOrderModel.getOvulationInduction())) { pregnancy = "1"; - } else if (org.apache.commons.lang.StringUtils.isNotEmpty(sieveApplyOrderModel.getIui()) && "1".equals(sieveApplyOrderModel.getIui())) { + } else if (org.apache.commons.lang.StringUtils.isNotEmpty(sieveApplyOrderModel.getIui()) && "1".equals(sieveApplyOrderModel.getIui())) { pregnancy = "2"; } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java index 18f8e64..b3faefb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/RareBloodGroupServiceImpl.java @@ -78,6 +78,9 @@ public class RareBloodGroupServiceImpl extends BaseServiceImpl implements RareBl rareBloodGroupModel.setYn(YnEnums.YES.getId()); rareBloodGroupModel.setCreated(new Date()); Patients p = mongoTemplate.findById(rareBloodGroupModel.getParentId(), Patients.class); + //冗余到lyms_patient表,关联关系 + mongoTemplate.updateFirst(new Query(Criteria.where("id").is(p.getId())), Update.update("rareType", "1"), Patients.class); + rareBloodGroupModel.setWeek(DateUtil.getWeekDesc(p.getLastMenses(), new Date()));//录入孕周 rareBloodGroupDao.addRare(rareBloodGroupModel); return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); -- 1.8.3.1