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 ++++++++++++++++++++++++++++++++++++++
aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml | 4 ++--
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java | 9 +++++++++
3 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java
index bd2cb96..65e0b50 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsWorkCalendarService.java
@@ -1,5 +1,6 @@
package com.aps.core.service;
+import com.alibaba.fastjson2.JSONArray;
import com.aps.core.domain.ApsWorkCalendar;
import java.util.List;
@@ -59,4 +60,12 @@
* @return 缁撴灉
*/
public int deleteApsWorkCalendarById(Long id);
+
+ /**
+ * 鑾峰彇鏃ュ巻瑙嗗浘
+ * @param applicableFactory
+ * @param datetime
+ * @return
+ */
+ public JSONArray getWorkCalendar(String applicableFactory, String datetime);
}
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;
+ }
}
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml
index dc81ab9..1552fe3 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml
@@ -29,8 +29,8 @@
<where>
<if test="description != null and description != ''"> and description like '%' || #{description} || '%'</if>
<if test="type != null and type != ''"> and type = #{type}</if>
- <if test="effectiveDate != null "> and effective_date = #{effectiveDate}</if>
- <if test="expiringDate != null "> and expiring_date = #{expiringDate}</if>
+ <if test="effectiveDate != null "> and effective_date >= #{effectiveDate}</if>
+ <if test="expiringDate != null "> and expiring_date <= #{expiringDate}</if>
<if test="content != null and content != ''"> and content = #{content}</if>
<if test="applicableFactory != null and applicableFactory != ''"> and applicable_factory = #{applicableFactory}</if>
<if test="applicableWorkshop != null and applicableWorkshop != ''"> and applicable_workshop = #{applicableWorkshop}</if>
--
Gitblit v1.9.3