排班日历排除节假日

This commit is contained in:
JinLu.Yin 2022-06-13 14:12:47 +08:00
parent 88b91dab38
commit f0b08fa752
3 changed files with 39 additions and 7 deletions

View File

@ -1,11 +1,15 @@
package com.ktg.mes.cal.controller;
import cn.hutool.core.collection.CollUtil;
import com.ktg.common.constant.UserConstants;
import com.ktg.common.core.controller.BaseController;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.utils.StringUtils;
import com.ktg.mes.cal.domain.CalCalendar;
import com.ktg.mes.cal.domain.CalHoliday;
import com.ktg.mes.cal.service.ICalCalendarService;
import com.ktg.mes.cal.service.ICalHolidayService;
import com.ktg.mes.cal.utils.CalendarUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
@ -14,6 +18,8 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 排班日历
@ -28,6 +34,9 @@ public class CalCalendarController extends BaseController {
@Autowired
private ICalCalendarService calCalendarService;
@Autowired
private ICalHolidayService calHolidayService;
@PreAuthorize("@ss.hasPermi('mes:cal:calendar:list')")
@GetMapping("/list")
public AjaxResult getCalendars(CalCalendar calCalendar){
@ -45,7 +54,24 @@ public class CalCalendarController extends BaseController {
}else {
days=calCalendarService.getCalendarByUser(day,calCalendar.getUserId());
}
return AjaxResult.success(getCalendarsWithoutHoliday(days));
}
return AjaxResult.success(days);
/**
* 过滤掉节假日
* @param days
* @return
*/
private List<CalCalendar> getCalendarsWithoutHoliday(List<CalCalendar> days){
CalHoliday param = new CalHoliday();
List<CalHoliday> holidays = calHolidayService.selectCalHolidayList(param);
if(CollUtil.isNotEmpty(holidays)){
List<CalCalendar> results = days.stream().filter(
calCalendar -> holidays.stream().filter(calHoliday -> calCalendar.getTheDay().equals(CalendarUtil.getDateStr(calHoliday.getTheDay()))).collect(Collectors.toList()).size()==0
).collect(Collectors.toList());
return results;
}
return days;
}
}

View File

@ -2,18 +2,24 @@ package com.ktg.mes.cal.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.ktg.mes.cal.domain.CalCalendar;
import com.ktg.mes.cal.domain.CalHoliday;
import com.ktg.mes.cal.domain.CalTeamMember;
import com.ktg.mes.cal.domain.CalTeamshift;
import com.ktg.mes.cal.mapper.CalPlanMapper;
import com.ktg.mes.cal.mapper.CalTeamMemberMapper;
import com.ktg.mes.cal.mapper.CalTeamshiftMapper;
import com.ktg.mes.cal.service.ICalCalendarService;
import com.ktg.mes.cal.service.ICalHolidayService;
import com.ktg.mes.cal.service.ICalTeamMemberService;
import com.ktg.mes.cal.utils.CalendarUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class CalCalendarServiceImpl implements ICalCalendarService {
@ -25,7 +31,9 @@ public class CalCalendarServiceImpl implements ICalCalendarService {
private CalTeamshiftMapper calTeamshiftMapper;
@Autowired
private ICalTeamMemberService calTeamMemberService;
private CalTeamMemberMapper calTeamMemberMapper;
/**
@ -79,7 +87,7 @@ public class CalCalendarServiceImpl implements ICalCalendarService {
CalTeamMember param = new CalTeamMember();
param.setUserId(userId);
List<CalTeamMember> members = calTeamMemberService.selectCalTeamMemberList(param);
List<CalTeamMember> members = calTeamMemberMapper.selectCalTeamMemberList(param);
if(CollUtil.isNotEmpty(members)){
Long teamId = members.get(0).getTeamId();
calendars = CalendarUtil.getDays(day);
@ -98,6 +106,4 @@ public class CalCalendarServiceImpl implements ICalCalendarService {
return calendars;
}
}

View File

@ -432,7 +432,7 @@ public class CalendarUtil {
}
private static Date getNext(Date date) {
public static Date getNext(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 1);