排班日历排除节假日
This commit is contained in:
parent
88b91dab38
commit
f0b08fa752
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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,10 +31,12 @@ public class CalCalendarServiceImpl implements ICalCalendarService {
|
||||
private CalTeamshiftMapper calTeamshiftMapper;
|
||||
|
||||
@Autowired
|
||||
private ICalTeamMemberService calTeamMemberService;
|
||||
private CalTeamMemberMapper calTeamMemberMapper;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
|
||||
/**
|
||||
* 1.循环生成当前月份每一天的CalCalendar
|
||||
* 2.根据月份和班组类型查询合适的plan
|
||||
* 3.根据plan上的Shift_type和shift_method计算每个班组的班次
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user