diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 0503c85..4ca5a7a 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -970,11 +970,11 @@ public class DateUtil { } public static void main(String[] arg) throws Exception { - Date start = parseYMD("2017-05-11"); - Date end = parseYMD("2017-06-02"); + Date lastMensesMax = DateUtil.getNewDate(-42, "周", 0); - System.out.println(getMonth(start)); - System.out.println(getMonth(end)); + System.out.println(getyyyy_MM_dd_hms(lastMensesMax)); +// System.out.println(getMonth(start)); +// System.out.println(getMonth(end)); } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java index a920f1f..2d4ec03 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java @@ -323,6 +323,7 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { private String lastDiagnose; private List buildTypeList; + private List smsBuildTypeList; private String queryNo; @@ -336,6 +337,13 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { //身长别体重 private String heightWeight; + public List getSmsBuildTypeList() { + return smsBuildTypeList; + } + + public void setSmsBuildTypeList(List smsBuildTypeList) { + this.smsBuildTypeList = smsBuildTypeList; + } public String getWeightEvaluate() { return weightEvaluate; @@ -648,6 +656,9 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { condition = condition.orCondition(new MongoCondition[]{condition1, condition2}); } + if (null != smsBuildTypeList) { + condition = condition.and("buildType", smsBuildTypeList, MongoOper.IN); + } if (StringUtils.isNotEmpty(queryNo)){ MongoCondition c = MongoCondition.newInstance(); 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 29fa9a2..c302f35 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 @@ -416,6 +416,8 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private List buildTypeList; + private List smsBuildTypeList; + private Integer buildTypeEq; private Date fmDateStart; @@ -456,6 +458,14 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { // 是否自动分娩 private Integer isAutoFm = -1; + public List getSmsBuildTypeList() { + return smsBuildTypeList; + } + + public void setSmsBuildTypeList(List smsBuildTypeList) { + this.smsBuildTypeList = smsBuildTypeList; + } + public Integer getIsAutoFm() { return isAutoFm; } @@ -950,6 +960,10 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { MongoCondition condition2 = MongoCondition.newInstance("buildType", buildTypeList, MongoOper.IN); condition = condition.orCondition(new MongoCondition[]{condition1, condition2}); } + else if (null != smsBuildTypeList) + { + condition = condition.and("buildType", smsBuildTypeList, MongoOper.IN); + } if(null!=extEnable){ List list=new ArrayList(); list.add("1"); diff --git a/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/SmsServiceImpl.java b/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/SmsServiceImpl.java index e914872..a4ce408 100644 --- a/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/SmsServiceImpl.java +++ b/platform-data-api/src/main/java/com/lyms/platform/data/service/impl/SmsServiceImpl.java @@ -146,14 +146,15 @@ public class SmsServiceImpl implements SmsService{ List buildType = new ArrayList(); buildType.add(0); buildType.add(2); - patientsQuery.setBuildTypeList(buildType); + patientsQuery.setSmsBuildTypeList(buildType); //1孕妇 3 产妇 patientsQuery.setType(1); //分娩状态 patientsQuery.setDueStatus(0); //末次月经必须大于当前时间减去42周视为未分娩孕妇 - Date lastMensesMax = DateUtil.getNewDate(-42, "周", 1); + Date lastMenses = DateUtil.getNewDate(-42, "周", 0); + Date lastMensesMax = DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(lastMenses)); patientsQuery.setLastMensesStart(lastMensesMax); //健康指导短信 只能是类型为 增值服务 开通状态 才发送 patientsQuery.setServiceType(ServiceTypeEnums.ADD_SERVICE.getId()); @@ -238,10 +239,11 @@ public class SmsServiceImpl implements SmsService{ { /** * 高危短信 + * */ //获取最后一次高危因素 List risks = findLastRisk(pat.getPid()); - if (CollectionUtils.isNotEmpty(risks)) + if (isOnlyHealthy(risks)) { List highRiskContents = new ArrayList(); //把多种高危因素的短信合并在一起 @@ -359,6 +361,31 @@ public class SmsServiceImpl implements SmsService{ } + /** + * 健康高危因素 id d42eec03-aa86-45b8-a4e0-78a0ff365fb6 + * + * 判断高危因素中是不只有健康 + * @param list + * @return + */ + private boolean isOnlyHealthy(List list) + { + if (CollectionUtils.isNotEmpty(list)) + { + Map riskMap = (Map) list.get(0); + //只存在健康高危因素就生成指导短信 + if (list.size() == 1 && "d42eec03-aa86-45b8-a4e0-78a0ff365fb6".equals(riskMap.get("id").toString())) + { + return false; + } + else + { + return true; + } + } + return false; + } + @@ -421,7 +448,7 @@ public class SmsServiceImpl implements SmsService{ List buildType = new ArrayList(); buildType.add(1); buildType.add(2); - babyQuery.setBuildTypeList(buildType); + babyQuery.setSmsBuildTypeList(buildType); //儿童年龄满三岁就不在提供短信服务 Date birthdayMax = DateUtil.addYear(new Date(), -3); @@ -596,7 +623,7 @@ public class SmsServiceImpl implements SmsService{ List buildType = new ArrayList(); buildType.add(0); buildType.add(2); - patientsQuery.setBuildTypeList(buildType); + patientsQuery.setSmsBuildTypeList(buildType); // //末次月经必须大于当前时间减去42周视为为分娩孕妇 // Date lastMensesMax = DateUtil.addDay(new Date(), -42); @@ -680,7 +707,7 @@ public class SmsServiceImpl implements SmsService{ chanpatientsQuery.setLastMensesEnd(chanEndDate); chanpatientsQuery.setLastMensesStart(chanEndDate); - List patients = yunBookbuildingService.queryPregnantWithQuery(chanpatientsQuery); + List patients = yunBookbuildingService.queryPregnantWithQuery(chanpatientsQuery); if (CollectionUtils.isNotEmpty(patients)) { for (Patients pat : patients) @@ -791,7 +818,7 @@ public class SmsServiceImpl implements SmsService{ List buildType = new ArrayList(); buildType.add(0); buildType.add(2); - patientsQuery.setBuildTypeList(buildType); + patientsQuery.setSmsBuildTypeList(buildType); //1孕妇 patientsQuery.setType(1); @@ -1109,6 +1136,10 @@ public class SmsServiceImpl implements SmsService{ BabyModelQuery babyModelQuery = new BabyModelQuery(); babyModelQuery.setYn(YnEnums.YES.getId()); babyModelQuery.setHospitalId(hospitalId); + List buildType = new ArrayList(); + buildType.add(1); + buildType.add(2); + babyModelQuery.setSmsBuildTypeList(buildType); babyModelQuery = getServiceBabyQuery( serviceType, serviceStatus, babyModelQuery); //发送短信集合 @@ -1469,7 +1500,7 @@ public class SmsServiceImpl implements SmsService{ List buildType = new ArrayList(); buildType.add(0); buildType.add(2); - patientsQuery.setBuildTypeList(buildType); + patientsQuery.setSmsBuildTypeList(buildType); //1孕妇 3产妇 patientsQuery.setType(3); //0未终止妊娠的产妇 @@ -1728,7 +1759,7 @@ public class SmsServiceImpl implements SmsService{ PatientsQuery chanPatientsQuery = new PatientsQuery(); chanPatientsQuery.setYn(YnEnums.YES.getId()); chanPatientsQuery.setHospitalId(hospitalId); - chanPatientsQuery.setBuildTypeList(buildType); + chanPatientsQuery.setSmsBuildTypeList(buildType); chanPatientsQuery.setType(3); chanPatientsQuery.setDueStatus(0); getServicePatientQuery(serviceType, serviceStatus, chanPatientsQuery); @@ -1739,7 +1770,7 @@ public class SmsServiceImpl implements SmsService{ yunPatientsQuery.setHospitalId(hospitalId); yunPatientsQuery.setType(1); yunPatientsQuery.setDueStatus(0); - yunPatientsQuery.setBuildTypeList(buildType); + yunPatientsQuery.setSmsBuildTypeList(buildType); getServicePatientQuery(serviceType, serviceStatus, yunPatientsQuery);