diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java index 8cc0ae0..6a48525 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java @@ -1,5 +1,6 @@ package com.bonus.system.att.dao; +import com.bonus.system.api.domain.MapVo; import com.bonus.system.att.entity.AttDataDetailsBean; import com.bonus.system.att.entity.AttDayReportBean; import com.bonus.system.att.entity.AttMonthReportBean; @@ -7,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.Map; /** * 考勤明细-数据访问层 @@ -93,4 +95,6 @@ public interface AttendanceDetailsDao { List getAttCountList(AttDataDetailsBean bean); List getOrgUserOutCountList(@Param("bean") AttDataDetailsBean bean); + + List getAttStatusList(); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java index 739ed7e..d29385f 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java @@ -1,12 +1,14 @@ package com.bonus.system.att.service; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.system.api.domain.MapVo; import com.bonus.system.att.entity.AttDataDetailsBean; import com.bonus.system.att.entity.AttDayReportBean; import com.bonus.system.att.entity.AttMonthReportBean; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * 考勤明细-业务层 @@ -107,4 +109,6 @@ public interface AttendanceDetailsService { List getAttCountList(AttDataDetailsBean bean); List getOrgUserOutCountList(AttDataDetailsBean bean); + + List getAttStatusList(); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java index d79a2e3..10fc9f4 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java @@ -235,6 +235,11 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { return attendanceDetailsDao.getOrgUserOutCountList(bean); } + @Override + public List getAttStatusList() { + return attendanceDetailsDao.getAttStatusList(); + } + public List getAttDayReportListAll(List list) { List allList = new ArrayList<>(); Map map = list.stream() diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/MsgTasks.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/MsgTasks.java index 480a4af..e5f1b92 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/MsgTasks.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/MsgTasks.java @@ -26,6 +26,8 @@ import java.lang.reflect.InvocationTargetException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -164,15 +166,23 @@ public class MsgTasks { public void getAttSettingHistoryTask(){ log.info("--------考勤设置历史时间消息推送定时器开启------"); String startDate = DateUtil.today(); -// String endDate = "2025-01-19"; - String endDate = DateUtil.today(); - List dateList = getStrDateListBetween(startDate, endDate); + // 解析 startDate 字符串到 LocalDate 对象 + LocalDate date = LocalDate.parse(startDate, DateTimeFormatter.ISO_LOCAL_DATE); + // 向前推30天 + LocalDate newDate = date.minusDays(30); + // 如果需要将结果格式化为特定格式的字符串,可以使用以下代码 + String formattedNewDate = newDate.format(DateTimeFormatter.ISO_LOCAL_DATE); + //向前推2个月的时间检索,缺少哪一天推送哪一天 + List dateListOne = noticeService.getAttSettingDate(startDate); + List dateList = getStrDateListBetween(formattedNewDate, startDate); + // 从 dateList 中移除所有在 dateListOne 中存在的元素 + dateListOne.removeIf(startDate::contains); + dateList.removeIf(dateListOne::contains); for (String s : dateList) { List attList = noticeService.getAttSettingHistoryDate(s); if(!attList.isEmpty()){ noticeService.insertAttSettingHistoryData(attList); } - } log.info("--------考勤设置历史时间消息推送定时器开启------"); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysNoticeMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysNoticeMapper.java index 1373da7..da680b1 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysNoticeMapper.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysNoticeMapper.java @@ -70,4 +70,6 @@ public interface SysNoticeMapper List getAttSettingHistoryDate(String currentDay); void insertAttSettingHistoryData(List attList); + + List getAttSettingDate(String startDate); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/SysNoticeService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/SysNoticeService.java index 0dc2dbc..a448426 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/SysNoticeService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/SysNoticeService.java @@ -66,4 +66,6 @@ public interface SysNoticeService { List getAttSettingHistoryDate(String s); void insertAttSettingHistoryData(List attList); + + List getAttSettingDate(String startDate); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysNoticeServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysNoticeServiceImpl.java index a906ae0..8595cd8 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysNoticeServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysNoticeServiceImpl.java @@ -113,4 +113,9 @@ public class SysNoticeServiceImpl implements SysNoticeService public void insertAttSettingHistoryData(List attList) { noticeMapper.insertAttSettingHistoryData(attList); } + + @Override + public List getAttSettingDate(String startDate) { + return noticeMapper.getAttSettingDate(startDate); + } } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml index 9e2f25d..5a8eb5f 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml @@ -177,6 +177,9 @@ and vat.user_id = #{userId} + + and locate(#{name},su.user_name) > 0 + and (vat.toWorkAttStatus in (SELECT dict_value FROM sys_dict_data diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml index 7711606..8dd8dc6 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml @@ -450,6 +450,9 @@ and locate(#{bean.attCurrentMonth},awa.att_current_day) + + and locate(#{bean.userName},awa.user_name) + and so.id in ( @@ -461,6 +464,17 @@ ORDER BY awa.att_current_day DESC + diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml index de6a461..ba8a891 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml @@ -140,4 +140,13 @@ GROUP BY user_id + + + \ No newline at end of file