فهرست منبع

解决节假日问题

hurugang 5 سال پیش
والد
کامیت
aedff2d969
1فایلهای تغییر یافته به همراه16 افزوده شده و 2 حذف شده
  1. 16 2
      src/main/java/cn/hnthyy/thmz/controller/api/MedicalViewApiController.java

+ 16 - 2
src/main/java/cn/hnthyy/thmz/controller/api/MedicalViewApiController.java

@@ -1222,8 +1222,22 @@ public class MedicalViewApiController {
                         List<Holidays> holidaysList=holidaysService.queryHolidaysByDate(requestDayD);
                         if(holidaysList!=null && holidaysList.size()>0){
                             Holidays holidays = holidaysList.get(0);
-                            if((holidays.getBeginDate().equals(requestDayD) && ampm.equals(holidays.getBeginAmpm()))
-                                    || (holidays.getEndDate().equals(requestDayD) && ampm.equals(holidays.getEndAmpm()))
+                            //如果开始时间段是上午,那么应该包含下午和全天
+                            List<String> beginAmpms =new ArrayList<>();
+                            beginAmpms.add(holidays.getBeginAmpm());
+                            if(Constants.AM.equals(holidays.getBeginAmpm())){
+                                beginAmpms.add(Constants.PM);
+                                beginAmpms.add(Constants.DAY);
+                            }
+                            //如果结束时间段是下午,那么应该包含上午和全天
+                            List<String> endAmpms =new ArrayList<>();
+                            endAmpms.add(holidays.getEndAmpm());
+                            if(Constants.PM.equals(holidays.getBeginAmpm())){
+                                endAmpms.add(Constants.AM);
+                                endAmpms.add(Constants.DAY);
+                            }
+                            if((holidays.getBeginDate().equals(requestDayD) && beginAmpms.contains(ampm))
+                                    || (holidays.getEndDate().equals(requestDayD) && endAmpms.contains(ampm))
                                     || (requestDayD.after(holidays.getBeginDate()) && requestDayD.before(holidays.getEndDate()))){
                                 fee=BigDecimal.ZERO;
                             }