From 9488dcebc30dcdb5234af62976475f5c8b4e27da Mon Sep 17 00:00:00 2001
From: huangjiayang <5265313@qq.com>
Date: 星期五, 25 四月 2025 17:02:15 +0800
Subject: [PATCH] 【UPDATE】修改日历模块相关问题

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWorkCalendarServiceImpl.java |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 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 1a152b9..758a32c 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
@@ -1,5 +1,7 @@
 package com.aps.core.service.impl;
 
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.aps.common.core.utils.DateUtils;
 import com.aps.common.security.utils.SecurityUtils;
 import com.aps.core.domain.ApsWorkCalendar;
@@ -8,6 +10,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.YearMonth;
 import java.util.List;
 
 /**
@@ -97,4 +102,37 @@
     {
         return apsWorkCalendarMapper.deleteApsWorkCalendarById(id);
     }
+
+    public JSONArray getWorkCalendar(String applicableFactory, String datetime) {
+        JSONArray res = new JSONArray();
+        // 鑾峰彇骞翠唤鍜屾湀浠�
+        String[] parts = datetime.split("-");
+        int year = Integer.parseInt(parts[0]);
+        int month = Integer.parseInt(parts[1]);
+        // 鑾峰彇鎸囧畾骞翠唤鍜屾湀浠界殑澶╂暟
+        YearMonth yearMonth = YearMonth.of(year, month);
+        int daysInMonth = yearMonth.lengthOfMonth();
+        ApsWorkCalendar apsWorkCalendar = new ApsWorkCalendar();
+        apsWorkCalendar.setApplicableFactory(applicableFactory);
+        apsWorkCalendar.setEffectiveDate(DateUtils.parseDate(datetime+" 00:00:00"));
+        apsWorkCalendar.setExpiringDate(DateUtils.parseDate(datetime+" 23:59:59"));
+        List<ApsWorkCalendar> list = apsWorkCalendarMapper.selectApsWorkCalendarList(apsWorkCalendar);
+        if (list.isEmpty()) {
+            // 寰幆閬嶅巻褰撴湀鐨勬瘡涓�澶╋紝鑾峰彇鏄熸湡淇℃伅
+            for (int day = 1; day <= daysInMonth; day++) {
+                LocalDate date = LocalDate.of(year, month, day);
+                DayOfWeek dayOfWeek = date.getDayOfWeek();
+                JSONObject dayInfo = new JSONObject();
+                dayInfo.put("date", date.toString());
+                dayInfo.put("dayOfWeek", dayOfWeek.toString());
+                if (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY) {
+                    dayInfo.put("isWorkDay", false);
+                } else {
+                    dayInfo.put("isWorkDay", true);
+                }
+                res.add(dayInfo);
+            }
+        }
+        return res;
+    }
 }

--
Gitblit v1.9.3