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