From 2a64b537e8e3bce9ce030585a3da17d48379c0ad Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期一, 26 五月 2025 15:04:45 +0800
Subject: [PATCH] 修改json类型转换错误

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java |   68 +++++++++++++++++----------------
 1 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java
index a88f928..c57daaa 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java
@@ -152,42 +152,39 @@
         //鐢熸垚鏃ュ巻鍩虹鏁版嵁
         LinkedHashMap<String, String> baseCalendar = new LinkedHashMap<>();
         for (LocalDate date : dates) {
-            String dayOfWeekChinese = getChineseDayOfWeek(date.getDayOfWeek());
-            String dayOfWeekEnglish = date.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH);
-            System.out.println(date + " - " + dayOfWeekChinese + " (" + dayOfWeekEnglish + ")");
             baseCalendar.put(date+"", "");
         }
         try {
             List<ApsWorkCalendar> list = apsWorkCalendarMapper.selectApsWorkCalendarList(apsWorkCalendar);
             for (ApsWorkCalendar apsWorkCalendarTemp : list) {
                 //宸ヤ綔鏃�
-                if("1".equals(apsWorkCalendarTemp.getType())){
-                    //鑾峰彇鏃ュ巻瑙勫垯
-                    org.postgresql.util.PGobject pgObject = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getContent();
-                    JSONArray weekdays = (JSON.parseObject(pgObject.getValue())).getJSONArray("weekdays");
-                    HashMap<String, String> weekdaysMap = new HashMap<>();
-                    for (int i = 0; i < weekdays.size(); i++) {
-                        weekdaysMap.put(weekdays.getJSONObject(i).getString("day"), weekdays.getJSONObject(i).getString("work"));
-                    }
-                    //鏍规嵁effectiveDate鍜宔xpiringDate绠楀嚭鏃ユ湡鑼冨洿鍐呯殑姣忎竴澶�
-                    List<LocalDate> datesTemp = getDatesBetween(apsWorkCalendarTemp.getEffectiveDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), apsWorkCalendarTemp.getExpiringDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
-                    for (LocalDate dateTemp: datesTemp) {
-                        if(baseCalendar.containsKey(dateTemp+"")){
-                            if ("y".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
-                                baseCalendar.put(dateTemp+"", "宸ヤ綔鏃�");
-                            } else if("n".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
-                                baseCalendar.put(dateTemp+"", "浼戞伅鏃�");
-                            }
+                org.postgresql.util.PGobject pgObjectWeekdays = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getContent();
+                JSONArray weekdays = (JSON.parseObject(pgObjectWeekdays.getValue())).getJSONArray("weekdays");
+                HashMap<String, String> weekdaysMap = new HashMap<>();
+                for (int i = 0; i < weekdays.size(); i++) {
+                    weekdaysMap.put(weekdays.getJSONObject(i).getString("day"), weekdays.getJSONObject(i).getString("work"));
+                }
+                List<LocalDate> datesTempWeekdays = getDatesBetween(apsWorkCalendarTemp.getEffectiveDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), apsWorkCalendarTemp.getExpiringDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                for (LocalDate dateTemp: datesTempWeekdays) {
+                    if(baseCalendar.containsKey(dateTemp+"")){
+                        if ("y".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
+                            baseCalendar.put(dateTemp+"", "宸ヤ綔鏃�");
+                        } else if("n".equals(weekdaysMap.get(dateTemp.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH)))) {
+                            baseCalendar.put(dateTemp+"", "浼戞伅鏃�");
                         }
                     }
-                }else if("2".equals(apsWorkCalendarTemp.getType())){
-                    //浼戞伅鏃�
-                    org.postgresql.util.PGobject pgObject = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getContent();
-                    JSONObject holidays = (JSON.parseObject(pgObject.getValue())).getJSONObject("holidays");
-                    List<LocalDate> datesTemp = getDatesBetween(holidays.getObject("startdate", LocalDate.class), holidays.getObject("enddate", LocalDate.class));
-                    for (LocalDate dateTemp: datesTemp) {
-                        if(baseCalendar.containsKey(dateTemp+"")){
-                            baseCalendar.put(dateTemp+"", "鑺傚亣鏃�");
+                }
+                //浼戞伅鏃�
+                org.postgresql.util.PGobject pgObjectHolidays = (org.postgresql.util.PGobject) apsWorkCalendarTemp.getHolidays();
+                if(pgObjectHolidays!=null){
+                    JSONArray holidays = JSONArray.parse(pgObjectHolidays.getValue());
+                    for (int i = 0; i < holidays.size(); i++){
+                        JSONObject h = holidays.getJSONObject(i);
+                        List<LocalDate> datesTempHolidays = getDatesBetween(h.getObject("startdate", LocalDate.class), h.getObject("enddate", LocalDate.class));
+                        for (LocalDate dateTemp: datesTempHolidays) {
+                            if(baseCalendar.containsKey(dateTemp+"")){
+                                baseCalendar.put(dateTemp+"", "鑺傚亣鏃�");
+                            }
                         }
                     }
                 }
@@ -203,6 +200,11 @@
             return res;
         }
         return res;
+    }
+
+    @Override
+    public int deleteApsWorkCalendar(ApsWorkCalendar apsWorkCalendar){
+        return apsWorkCalendarMapper.deleteApsWorkCalendar(apsWorkCalendar);
     }
 
     private List<LocalDate> getCalendarData(int year, int month) {
@@ -221,11 +223,11 @@
         List<LocalDate> dates = getDatesBetween(startDate, endDate);
 
         // 鎵撳嵃缁撴灉
-        for (LocalDate date : dates) {
-            String dayOfWeekChinese = getChineseDayOfWeek(date.getDayOfWeek());
-            String dayOfWeekEnglish = date.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH);
-            System.out.println(date + " - " + dayOfWeekChinese + " (" + dayOfWeekEnglish + ")");
-        }
+//        for (LocalDate date : dates) {
+//            String dayOfWeekChinese = getChineseDayOfWeek(date.getDayOfWeek());
+//            String dayOfWeekEnglish = date.getDayOfWeek().getDisplayName(java.time.format.TextStyle.FULL, Locale.ENGLISH);
+//            System.out.println(date + " - " + dayOfWeekChinese + " (" + dayOfWeekEnglish + ")");
+//        }
         return dates;
     }
 

--
Gitblit v1.9.3