| | |
| | | package com.java110.store.smo.impl; |
| | | |
| | | |
| | | import com.java110.dto.scheduleClasses.ScheduleClassesDto; |
| | | import com.java110.dto.scheduleClassesDay.ScheduleClassesDayDto; |
| | | import com.java110.dto.scheduleClassesTime.ScheduleClassesTimeDto; |
| | | import com.java110.dto.classes.ScheduleClassesDto; |
| | | import com.java110.dto.classes.ScheduleClassesDayDto; |
| | | import com.java110.dto.classes.ScheduleClassesTimeDto; |
| | | import com.java110.intf.store.IScheduleClassesDayV1InnerServiceSMO; |
| | | import com.java110.intf.store.IScheduleClassesV1InnerServiceSMO; |
| | | import com.java110.store.dao.IScheduleClassesStaffV1ServiceDao; |
| | | import com.java110.intf.store.IScheduleClassesStaffV1InnerServiceSMO; |
| | | import com.java110.dto.scheduleClassesStaff.ScheduleClassesStaffDto; |
| | | import com.java110.po.scheduleClassesStaff.ScheduleClassesStaffPo; |
| | | import com.java110.dto.classes.ScheduleClassesStaffDto; |
| | | import com.java110.po.classes.ScheduleClassesStaffPo; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.core.base.smo.BaseServiceSMO; |
| | | import com.java110.dto.user.UserDto; |
| | | import com.java110.dto.PageDto; |
| | | import com.java110.utils.util.DateUtil; |
| | | import com.java110.utils.util.ListUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | ), ScheduleClassesStaffDto.class); |
| | | |
| | | //这里 如果没有员工排班 那么就认为 员工一直在上班 |
| | | if (scheduleClassesStaffs == null || scheduleClassesStaffs.size() < 1) { |
| | | if (ListUtil.isNull(scheduleClassesStaffs)) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return scheduleClassesStaffDto; |
| | | } |
| | |
| | | List<ScheduleClassesTimeDto> times = scheduleClassesDayDtos.get(0).getTimes(); |
| | | |
| | | scheduleClassesStaffDto.setTimes(times); |
| | | String startTime = null; |
| | | String endTime = null; |
| | | Date startTime = null; |
| | | Date endTime = null; |
| | | for (ScheduleClassesTimeDto time : times) { |
| | | |
| | | startTime = today + " " + time.getStartTime() + ":00"; |
| | | endTime = today + " " + time.getEndTime() + ":00"; |
| | | // startTime = today + " " + time.getStartTime() + ":00"; |
| | | // endTime = today + " " + time.getEndTime() + ":00"; |
| | | startTime = DateUtil.getDateFromStringA(today + " " + time.getStartTime() + ":00"); |
| | | endTime = DateUtil.getDateFromStringA(today + " " + time.getEndTime() + ":00"); |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), DateUtil.getDateFromStringA(startTime), DateUtil.getDateFromStringA(endTime))) { |
| | | if (endTime.getTime() < startTime.getTime()) { |
| | | Calendar endTimeCal = Calendar.getInstance(); |
| | | endTimeCal.setTime(endTime); |
| | | endTimeCal.add(Calendar.DAY_OF_MONTH, 1); |
| | | endTime = endTimeCal.getTime(); |
| | | } |
| | | |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), startTime,endTime)) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | //todo 处理 排版为 22点-6点 当前时间为4点时情况 也就是 今日4点 永远不可能在当前日期的中 只能在昨日排版中 |
| | | endTime = DateUtil.getDateFromStringA(today + " " + time.getEndTime() + ":00"); |
| | | if (endTime.getTime() < startTime.getTime()) { |
| | | Calendar startTimeCal = Calendar.getInstance(); |
| | | startTimeCal.setTime(startTime); |
| | | startTimeCal.add(Calendar.DAY_OF_MONTH, -1); |
| | | startTime = startTimeCal.getTime(); |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), startTime, endTime)) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | scheduleClassesStaffDto.setWork(false); |
| | |
| | | List<ScheduleClassesTimeDto> times = scheduleClassesDayDtos.get(0).getTimes(); |
| | | |
| | | scheduleClassesStaffDto.setTimes(times); |
| | | String startTime = null; |
| | | String endTime = null; |
| | | Date startTime = null; |
| | | Date endTime = null; |
| | | for (ScheduleClassesTimeDto time : times) { |
| | | |
| | | startTime = today + " " + time.getStartTime() + ":00"; |
| | | endTime = today + " " + time.getEndTime() + ":00"; |
| | | // startTime = today + " " + time.getStartTime() + ":00"; |
| | | // endTime = today + " " + time.getEndTime() + ":00"; |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), DateUtil.getDateFromStringA(startTime), DateUtil.getDateFromStringA(endTime))) { |
| | | startTime = DateUtil.getDateFromStringA(today + " " + time.getStartTime() + ":00"); |
| | | endTime = DateUtil.getDateFromStringA(today + " " + time.getEndTime() + ":00"); |
| | | |
| | | if (endTime.getTime() < startTime.getTime()) { |
| | | Calendar endTimeCal = Calendar.getInstance(); |
| | | endTimeCal.setTime(endTime); |
| | | endTimeCal.add(Calendar.DAY_OF_MONTH, 1); |
| | | endTime = endTimeCal.getTime(); |
| | | } |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), startTime, endTime)) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | |
| | | //todo 处理 排版为 22点-6点 当前时间为4点时情况 也就是 今日4点 永远不可能在当前日期的中 只能在昨日排版中 |
| | | endTime = DateUtil.getDateFromStringA(today + " " + time.getEndTime() + ":00"); |
| | | if (endTime.getTime() < startTime.getTime()) { |
| | | Calendar startTimeCal = Calendar.getInstance(); |
| | | startTimeCal.setTime(startTime); |
| | | startTimeCal.add(Calendar.DAY_OF_MONTH, -1); |
| | | startTime = startTimeCal.getTime(); |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), startTime, endTime)) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | scheduleClassesStaffDto.setWork(false); |
| | |
| | | |
| | | scheduleClassesStaffDto.setTimes(times); |
| | | |
| | | String startTime = null; |
| | | String endTime = null; |
| | | Date startTime = null; |
| | | Date endTime = null; |
| | | |
| | | for (ScheduleClassesTimeDto time : times) { |
| | | |
| | | startTime = today + " " + time.getStartTime() + ":00"; |
| | | endTime = today + " " + time.getEndTime() + ":00"; |
| | | startTime = DateUtil.getDateFromStringA(today + " " + time.getStartTime() + ":00"); |
| | | endTime = DateUtil.getDateFromStringA(today + " " + time.getEndTime() + ":00"); |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), DateUtil.getDateFromStringA(startTime), DateUtil.getDateFromStringA(endTime))) { |
| | | if (endTime.getTime() < startTime.getTime()) { |
| | | Calendar endTimeCal = Calendar.getInstance(); |
| | | endTimeCal.setTime(endTime); |
| | | endTimeCal.add(Calendar.DAY_OF_MONTH, 1); |
| | | endTime = endTimeCal.getTime(); |
| | | } |
| | | |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), startTime, endTime)) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | //todo 处理 排版为 22点-6点 当前时间为4点时情况 也就是 今日4点 永远不可能在当前日期的中 只能在昨日排版中 |
| | | endTime = DateUtil.getDateFromStringA(today + " " + time.getEndTime() + ":00"); |
| | | if (endTime.getTime() < startTime.getTime()) { |
| | | Calendar startTimeCal = Calendar.getInstance(); |
| | | startTimeCal.setTime(startTime); |
| | | startTimeCal.add(Calendar.DAY_OF_MONTH, -1); |
| | | startTime = startTimeCal.getTime(); |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), startTime, endTime)) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | scheduleClassesStaffDto.setWork(false); |
| | |
| | | scDay = new ScheduleClassesDayDto(); |
| | | Calendar today = Calendar.getInstance(); |
| | | today.setTime(DateUtil.getDateFromStringB(curMonth + "-" + day)); |
| | | int week = today.get(Calendar.WEEK_OF_MONTH); |
| | | int week = 1;//today.get(Calendar.WEEK_OF_MONTH); |
| | | curDay = today.get(Calendar.DAY_OF_WEEK); |
| | | |
| | | |
| | | //一周第一天是否为星期天 |
| | | boolean isFirstSunday = (today.getFirstDayOfWeek() == Calendar.SUNDAY); |
| | |
| | | scDay.setDay(day + ""); |
| | | //计算 排班 |
| | | for (ScheduleClassesDayDto scheduleClassesDayDto1 : scheduleClassesDayDtos) { |
| | | week = today.get(Calendar.WEEK_OF_MONTH); |
| | | if ("1".equals(scheduleClassesDayDto1.getWeekFlag())) { // 如果是 1 则 周默认为 1 |
| | | week = 1; |
| | | } |
| | | |
| | | if (week > Integer.parseInt(scheduleClassesDayDto1.getWeekFlag())) { |
| | | week = week % Integer.parseInt(scheduleClassesDayDto1.getWeekFlag()); |
| | | } |
| | | |
| | | if ((curDay + "").equals(scheduleClassesDayDto1.getDay()) && (week + "").equals(scheduleClassesDayDto1.getWeekFlag())) { |
| | | tmpScheduleClassesDayDto = scheduleClassesDayDto1; |
| | | } |