排班日历排除节假日
This commit is contained in:
parent
88b91dab38
commit
f0b08fa752
@ -1,11 +1,15 @@
|
|||||||
package com.ktg.mes.cal.controller;
|
package com.ktg.mes.cal.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.ktg.common.constant.UserConstants;
|
import com.ktg.common.constant.UserConstants;
|
||||||
import com.ktg.common.core.controller.BaseController;
|
import com.ktg.common.core.controller.BaseController;
|
||||||
import com.ktg.common.core.domain.AjaxResult;
|
import com.ktg.common.core.domain.AjaxResult;
|
||||||
import com.ktg.common.utils.StringUtils;
|
import com.ktg.common.utils.StringUtils;
|
||||||
import com.ktg.mes.cal.domain.CalCalendar;
|
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.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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
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.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 排班日历
|
* 排班日历
|
||||||
@ -28,6 +34,9 @@ public class CalCalendarController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ICalCalendarService calCalendarService;
|
private ICalCalendarService calCalendarService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ICalHolidayService calHolidayService;
|
||||||
|
|
||||||
@PreAuthorize("@ss.hasPermi('mes:cal:calendar:list')")
|
@PreAuthorize("@ss.hasPermi('mes:cal:calendar:list')")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public AjaxResult getCalendars(CalCalendar calCalendar){
|
public AjaxResult getCalendars(CalCalendar calCalendar){
|
||||||
@ -45,7 +54,24 @@ public class CalCalendarController extends BaseController {
|
|||||||
}else {
|
}else {
|
||||||
days=calCalendarService.getCalendarByUser(day,calCalendar.getUserId());
|
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 cn.hutool.core.collection.CollUtil;
|
||||||
import com.ktg.mes.cal.domain.CalCalendar;
|
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.CalTeamMember;
|
||||||
import com.ktg.mes.cal.domain.CalTeamshift;
|
import com.ktg.mes.cal.domain.CalTeamshift;
|
||||||
import com.ktg.mes.cal.mapper.CalPlanMapper;
|
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.mapper.CalTeamshiftMapper;
|
||||||
import com.ktg.mes.cal.service.ICalCalendarService;
|
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.service.ICalTeamMemberService;
|
||||||
import com.ktg.mes.cal.utils.CalendarUtil;
|
import com.ktg.mes.cal.utils.CalendarUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class CalCalendarServiceImpl implements ICalCalendarService {
|
public class CalCalendarServiceImpl implements ICalCalendarService {
|
||||||
@ -25,10 +31,12 @@ public class CalCalendarServiceImpl implements ICalCalendarService {
|
|||||||
private CalTeamshiftMapper calTeamshiftMapper;
|
private CalTeamshiftMapper calTeamshiftMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICalTeamMemberService calTeamMemberService;
|
private CalTeamMemberMapper calTeamMemberMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
|
|
||||||
|
/**
|
||||||
* 1.循环生成当前月份每一天的CalCalendar
|
* 1.循环生成当前月份每一天的CalCalendar
|
||||||
* 2.根据月份和班组类型查询合适的plan
|
* 2.根据月份和班组类型查询合适的plan
|
||||||
* 3.根据plan上的Shift_type和shift_method计算每个班组的班次
|
* 3.根据plan上的Shift_type和shift_method计算每个班组的班次
|
||||||
@ -79,7 +87,7 @@ public class CalCalendarServiceImpl implements ICalCalendarService {
|
|||||||
|
|
||||||
CalTeamMember param = new CalTeamMember();
|
CalTeamMember param = new CalTeamMember();
|
||||||
param.setUserId(userId);
|
param.setUserId(userId);
|
||||||
List<CalTeamMember> members = calTeamMemberService.selectCalTeamMemberList(param);
|
List<CalTeamMember> members = calTeamMemberMapper.selectCalTeamMemberList(param);
|
||||||
if(CollUtil.isNotEmpty(members)){
|
if(CollUtil.isNotEmpty(members)){
|
||||||
Long teamId = members.get(0).getTeamId();
|
Long teamId = members.get(0).getTeamId();
|
||||||
calendars = CalendarUtil.getDays(day);
|
calendars = CalendarUtil.getDays(day);
|
||||||
@ -98,6 +106,4 @@ public class CalCalendarServiceImpl implements ICalCalendarService {
|
|||||||
|
|
||||||
return calendars;
|
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 calendar = Calendar.getInstance();
|
||||||
calendar.setTime(date);
|
calendar.setTime(date);
|
||||||
calendar.add(Calendar.DATE, 1);
|
calendar.add(Calendar.DATE, 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user