wuxw
2025-01-03 adb33007bf87f63a893f90196a6087f9cafe34c7
service-store/src/main/java/com/java110/store/smo/impl/ScheduleClassesStaffV1InnerServiceSMOImpl.java
@@ -16,26 +16,27 @@
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;
/**
@@ -136,7 +137,7 @@
                    ), ScheduleClassesStaffDto.class);
            //这里 如果没有员工排班 那么就认为 员工一直在上班
            if (scheduleClassesStaffs == null || scheduleClassesStaffs.size() < 1) {
            if (ListUtil.isNull(scheduleClassesStaffs)) {
                scheduleClassesStaffDto.setWork(true);
                return scheduleClassesStaffDto;
            }
@@ -202,16 +203,38 @@
        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);
@@ -268,16 +291,39 @@
        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);
@@ -325,16 +371,37 @@
        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);
@@ -439,8 +506,9 @@
            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);
@@ -456,6 +524,15 @@
            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;
                }