From c79ff174a158a7d7aeba009c9987f24a9ae5a7ee Mon Sep 17 00:00:00 2001 From: dongqin <123456> Date: Thu, 11 Jul 2019 17:55:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=BD=E8=AE=BF=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BabyAfterVisitServiceImpl.java | 60 +++++++++++++++++++--- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java index 963a8ef..d0680ee 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java @@ -35,6 +35,7 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; +import java.math.BigInteger; import java.util.*; import java.util.concurrent.*; import java.util.regex.Pattern; @@ -397,8 +398,17 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { Date s1 = DateUtil.parseYMDHMS(startAppointmentTime); Date e1 = DateUtil.parseYMDHMS(endAppointmentTime); - Date e2 = getEndDate(beyondDay); - Date s2 = getStartDate(beyondDay); + Date s2; + Date e2; + if (beyondDay < 0) { + beyondDay = new BigInteger(beyondDay.toString()).abs().intValue(); + e2 = getEndDateByLtZero(beyondDay); + s2 = getStartDateByLtZero(beyondDay); + } else { + e2 = getEndDate(beyondDay); + s2 = getStartDate(beyondDay); + } + Date date = new Date(); // 交集 boolean a = s2.before(e1) && e1.after(e2) && s1.before(s2) && date.after(s2) && date.before(e1); @@ -426,13 +436,23 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { query.addCriteria(Criteria.where("appointmentTime").gte(startDate).lte(date)); } if (!appointmentTimeBoolean && nonNull) { - Date end = getEndDate(beyondDay); - Date start = getStartDate(beyondDay); + Date end; + Date start; Date date = new Date(); - if (date.before(start) || date.after(end)){ - return new BaseResponse(); + if (beyondDay > 0) { + end = getEndDate(beyondDay); + start = getStartDate(beyondDay); + if (date.before(start) || date.after(end)) { + return new BaseResponse(); + } + query.addCriteria(Criteria.where("appointmentTime").gte(start).lte(date)); + } else { + // 针对逾期天数为负数 + beyondDay = new BigInteger(beyondDay.toString()).abs().intValue(); + start = getStartDateByLtZero(beyondDay); + end = getEndDateByLtZero(beyondDay); + query.addCriteria(Criteria.where("appointmentTime").gte(start).lte(end)); } - query.addCriteria(Criteria.where("appointmentTime").gte(start).lte(date)); } @@ -528,6 +548,19 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { return end; } + private Date getEndDateByLtZero(Integer beyondDay) { + Calendar instance = Calendar.getInstance(); + instance.setTime(new Date()); + instance.add(Calendar.DATE, beyondDay); + instance.set(Calendar.HOUR_OF_DAY, 23); + instance.set(Calendar.MINUTE, 59); + instance.set(Calendar.SECOND, 59); + instance.set(Calendar.MILLISECOND, 999); + Date end = instance.getTime(); + return end; + } + + private Date getStartDate(Integer beyondDay) { Calendar instance = Calendar.getInstance(); instance.setTime(new Date()); @@ -540,6 +573,19 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { return start; } + private Date getStartDateByLtZero(Integer beyondDay) { + Calendar instance = Calendar.getInstance(); + instance.setTime(new Date()); + instance.add(Calendar.DATE, beyondDay); + instance.set(Calendar.HOUR_OF_DAY, 00); + instance.set(Calendar.MINUTE, 00); + instance.set(Calendar.SECOND, 00); + instance.set(Calendar.MILLISECOND, 000); + Date start = instance.getTime(); + return start; + } + + /** * 递归获取预约建档的儿童信息 * -- 1.8.3.1