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 081d1f9..e7dc3c1 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 @@ -461,6 +461,9 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private boolean norFactor; + //国家高危因数为空集合 + private boolean isNullrFactor; + /** * 是否有效 @@ -532,6 +535,14 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { //孕妇证件类型 private String pcerteTypeId; + public boolean isNullrFactor() { + return isNullrFactor; + } + + public void setNullrFactor(boolean nullrFactor) { + isNullrFactor = nullrFactor; + } + public String getPcerteTypeId() { return pcerteTypeId; } @@ -1344,6 +1355,11 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } else if (null != rFactorList && !rFactorList.isEmpty()) { condition = condition.and("riskFactorId", rFactorList, MongoOper.IN); } + + if(isNullrFactor){ + condition = condition.and("riskFactorId", new ArrayList(), MongoOper.IS); + } + if (-1 != yn) { condition = condition.and("yn", yn, MongoOper.IS); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java index 3dfdfbd..97e8553 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java @@ -154,10 +154,14 @@ public class RiskReportFacade { query.setBookbuildingDateEnd(patientsQuery.getBookbuildingDateEnd()); query.setNotoRiskFactor(""); query.setoRiskFactor("true"); + query.setNullrFactor(true); query.setType(patientsQuery.getType()); - //单个高危因素孕产妇条数(自定义高危) + //不包含国家高危的自定义高危人数 int riskPatientCount = patientsService.queryPatientCount(query); + query.setNullrFactor(false); + //包含国家高危的自定义高危人数 + int otherPatientCount = patientsService.queryPatientCount(query); //总的孕妇条数(国家标准高危) int allPatientCount = patientsService.queryPatientCount(patientsQuery); @@ -216,7 +220,7 @@ public class RiskReportFacade { } } - results.addAll(getOtherRiskCount(riskPatientCount, allPatientCount)); + results.addAll(getOtherRiskCount(otherPatientCount, allPatientCount+riskPatientCount)); // Collections.sort(results, new RiskReportResult()); Map> slaveBasicConfigMap = new HashMap<>(); for (RiskReportResult bc : results) { @@ -278,7 +282,7 @@ public class RiskReportFacade { DecimalFormat df = new DecimalFormat("0.00"); //肖进:其他高危发病率=其他高危+国家高危人数/其他高危人数 - String percent =riskPatientCount>0? df.format((double) riskPatientCount / (allPatientCount+riskPatientCount) * 100) + "%":"0%"; + String percent =riskPatientCount>0? df.format((double) riskPatientCount / (allPatientCount) * 100) + "%":"0%"; risk.setPercent(percent); List level = new ArrayList();