| | |
| | | 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.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.core.base.smo.BaseServiceSMO; |
| | | import com.java110.dto.user.UserDto; |
| | | import com.java110.dto.PageDto; |
| | | import com.java110.utils.util.DateUtil; |
| | | 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.List; |
| | | |
| | | /** |
| | |
| | | @Autowired |
| | | private IScheduleClassesStaffV1ServiceDao scheduleClassesStaffV1ServiceDaoImpl; |
| | | |
| | | @Autowired |
| | | private IScheduleClassesV1InnerServiceSMO scheduleClassesV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IScheduleClassesDayV1InnerServiceSMO scheduleClassesDayV1InnerServiceSMOImpl; |
| | | |
| | | |
| | | @Override |
| | | public int saveScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) { |
| | | public int saveScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) { |
| | | int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.saveScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo)); |
| | | return saveFlag; |
| | | } |
| | | |
| | | @Override |
| | | public int updateScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) { |
| | | @Override |
| | | public int updateScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) { |
| | | int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.updateScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo)); |
| | | return saveFlag; |
| | | } |
| | | |
| | | @Override |
| | | public int deleteScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) { |
| | | scheduleClassesStaffPo.setStatusCd("1"); |
| | | int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.updateScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo)); |
| | | return saveFlag; |
| | | @Override |
| | | public int deleteScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) { |
| | | scheduleClassesStaffPo.setStatusCd("1"); |
| | | int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.updateScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo)); |
| | | return saveFlag; |
| | | } |
| | | |
| | | @Override |
| | | public List<ScheduleClassesStaffDto> queryScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | public List<ScheduleClassesStaffDto> queryScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | |
| | | //校验是否传了 分页信息 |
| | | |
| | |
| | | |
| | | @Override |
| | | public int queryScheduleClassesStaffsCount(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | return scheduleClassesStaffV1ServiceDaoImpl.queryScheduleClassesStaffsCount(BeanConvertUtil.beanCovertMap(scheduleClassesStaffDto)); } |
| | | return scheduleClassesStaffV1ServiceDaoImpl.queryScheduleClassesStaffsCount(BeanConvertUtil.beanCovertMap(scheduleClassesStaffDto)); |
| | | } |
| | | |
| | | @Override |
| | | public List<ScheduleClassesStaffDto> queryGroupScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | public List<ScheduleClassesStaffDto> queryGroupScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | |
| | | //校验是否传了 分页信息 |
| | | |
| | |
| | | |
| | | return scheduleClassesStaffs; |
| | | } |
| | | |
| | | /** |
| | | * 判断员工是否在上班 |
| | | * |
| | | * @param scheduleClassesStaffDto { |
| | | * staffId:xxx, |
| | | * today:new Date() |
| | | * } |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ScheduleClassesStaffDto staffIsWork(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | |
| | | //查询 排班 |
| | | ScheduleClassesStaffDto tmpScheduleClassesStaffDto = new ScheduleClassesStaffDto(); |
| | | tmpScheduleClassesStaffDto.setStaffId(scheduleClassesStaffDto.getStaffId()); |
| | | List<ScheduleClassesStaffDto> scheduleClassesStaffs = BeanConvertUtil.covertBeanList(scheduleClassesStaffV1ServiceDaoImpl.getScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffDto)), ScheduleClassesStaffDto.class); |
| | | |
| | | //这里 如果没有员工排班 那么就认为 员工一直在上班 |
| | | if (scheduleClassesStaffs == null || scheduleClassesStaffs.size() < 1) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return scheduleClassesStaffDto; |
| | | } |
| | | |
| | | ScheduleClassesDto scheduleClassesDto = new ScheduleClassesDto(); |
| | | scheduleClassesDto.setScheduleId(scheduleClassesStaffs.get(0).getScheduleId()); |
| | | List<ScheduleClassesDto> scheduleClassesDtos = scheduleClassesV1InnerServiceSMOImpl.queryScheduleClassess(scheduleClassesDto); |
| | | //这里 如果没有员工排班 那么就认为 员工一直在上班 |
| | | if (scheduleClassesDtos == null || scheduleClassesDtos.size() < 1) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return scheduleClassesStaffDto; |
| | | } |
| | | scheduleClassesStaffDto.setWork(false); |
| | | if (ScheduleClassesDto.SCHEDULE_TYPE_DAY.equals(scheduleClassesDtos.get(0).getScheduleType())) { |
| | | staffIsWorkDay(scheduleClassesDtos.get(0), scheduleClassesStaffDto); |
| | | } else if (ScheduleClassesDto.SCHEDULE_TYPE_WEEK.equals(scheduleClassesDtos.get(0).getScheduleType())) { |
| | | staffIsWorkWeek(scheduleClassesDtos.get(0), scheduleClassesStaffDto); |
| | | } else if (ScheduleClassesDto.SCHEDULE_TYPE_MONTH.equals(scheduleClassesDtos.get(0).getScheduleType())) { |
| | | staffIsWorkMonth(scheduleClassesDtos.get(0), scheduleClassesStaffDto); |
| | | } else { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | } |
| | | |
| | | return scheduleClassesStaffDto; |
| | | } |
| | | |
| | | /** |
| | | * 员工是否上班 按月 排班 |
| | | * @param scheduleClassesDto |
| | | * @param scheduleClassesStaffDto |
| | | */ |
| | | private void staffIsWorkMonth(ScheduleClassesDto scheduleClassesDto, ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | Calendar today = Calendar.getInstance(); |
| | | today.setTime(scheduleClassesStaffDto.getToday()); |
| | | int day = today.get(Calendar.DAY_OF_MONTH); |
| | | ScheduleClassesDayDto scheduleClassesDayDto = new ScheduleClassesDayDto(); |
| | | scheduleClassesDayDto.setScheduleId(scheduleClassesDto.getScheduleId()); |
| | | scheduleClassesDayDto.setDay(day + ""); |
| | | List<ScheduleClassesDayDto> scheduleClassesDayDtos = scheduleClassesDayV1InnerServiceSMOImpl.queryScheduleClassesDays(scheduleClassesDayDto); |
| | | |
| | | //设置问题 ,这里默认反馈在线 |
| | | if (scheduleClassesDayDtos == null || scheduleClassesDayDtos.size() < 1) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | |
| | | List<ScheduleClassesTimeDto> times = scheduleClassesDayDtos.get(0).getTimes(); |
| | | |
| | | |
| | | String startTime = null; |
| | | String endTime = null; |
| | | for (ScheduleClassesTimeDto time : times) { |
| | | |
| | | startTime = today + " " + time.getStartTime() + ":00"; |
| | | endTime = today + " " + time.getEndTime() + ":00"; |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), DateUtil.getDateFromStringA(startTime), DateUtil.getDateFromStringA(endTime))) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | } |
| | | scheduleClassesStaffDto.setWork(false); |
| | | } |
| | | |
| | | /** |
| | | * 员工是否上班 按周 排班 |
| | | * @param scheduleClassesDto |
| | | * @param scheduleClassesStaffDto |
| | | */ |
| | | private void staffIsWorkWeek(ScheduleClassesDto scheduleClassesDto, ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | |
| | | Calendar today = Calendar.getInstance(); |
| | | today.setTime(scheduleClassesStaffDto.getToday()); |
| | | int week = today.get(Calendar.WEEK_OF_MONTH); |
| | | int day = today.get(Calendar.DAY_OF_WEEK); |
| | | |
| | | //一周第一天是否为星期天 |
| | | boolean isFirstSunday = (today.getFirstDayOfWeek() == Calendar.SUNDAY); |
| | | //获取周几 |
| | | //若一周第一天为星期天,则-1 |
| | | if (isFirstSunday) { |
| | | day = day - 1; |
| | | if (day == 0) { |
| | | day = 7; |
| | | } |
| | | } |
| | | ScheduleClassesDayDto scheduleClassesDayDto = new ScheduleClassesDayDto(); |
| | | scheduleClassesDayDto.setScheduleId(scheduleClassesDto.getScheduleId()); |
| | | scheduleClassesDayDto.setDay(day + ""); |
| | | scheduleClassesDayDto.setWeekFlag(week + ""); |
| | | List<ScheduleClassesDayDto> scheduleClassesDayDtos = scheduleClassesDayV1InnerServiceSMOImpl.queryScheduleClassesDays(scheduleClassesDayDto); |
| | | |
| | | //设置问题 ,这里默认反馈在线 |
| | | if (scheduleClassesDayDtos == null || scheduleClassesDayDtos.size() < 1) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | |
| | | List<ScheduleClassesTimeDto> times = scheduleClassesDayDtos.get(0).getTimes(); |
| | | |
| | | |
| | | String startTime = null; |
| | | String endTime = null; |
| | | for (ScheduleClassesTimeDto time : times) { |
| | | |
| | | startTime = today + " " + time.getStartTime() + ":00"; |
| | | endTime = today + " " + time.getEndTime() + ":00"; |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), DateUtil.getDateFromStringA(startTime), DateUtil.getDateFromStringA(endTime))) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | } |
| | | scheduleClassesStaffDto.setWork(false); |
| | | } |
| | | |
| | | /** |
| | | * 员工是否上班 按天 排班 |
| | | * @param scheduleClassesDto |
| | | * @param scheduleClassesStaffDto |
| | | */ |
| | | private void staffIsWorkDay(ScheduleClassesDto scheduleClassesDto, ScheduleClassesStaffDto scheduleClassesStaffDto) { |
| | | String today = DateUtil.getFormatTimeString(scheduleClassesStaffDto.getToday(), DateUtil.DATE_FORMATE_STRING_B); |
| | | |
| | | int scheduleCycle = Integer.parseInt(scheduleClassesDto.getScheduleCycle()); |
| | | |
| | | int allDay = DateUtil.daysBetween(scheduleClassesDto.getComputeTime(), today) + 1; |
| | | |
| | | int day = allDay % scheduleCycle; |
| | | |
| | | |
| | | if (day == 0) { |
| | | day = scheduleCycle; |
| | | } |
| | | |
| | | ScheduleClassesDayDto scheduleClassesDayDto = new ScheduleClassesDayDto(); |
| | | scheduleClassesDayDto.setScheduleId(scheduleClassesDto.getScheduleId()); |
| | | scheduleClassesDayDto.setDay(day + ""); |
| | | List<ScheduleClassesDayDto> scheduleClassesDayDtos = scheduleClassesDayV1InnerServiceSMOImpl.queryScheduleClassesDays(scheduleClassesDayDto); |
| | | |
| | | //设置问题 ,这里默认反馈在线 |
| | | if (scheduleClassesDayDtos == null || scheduleClassesDayDtos.size() < 1) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | |
| | | List<ScheduleClassesTimeDto> times = scheduleClassesDayDtos.get(0).getTimes(); |
| | | |
| | | |
| | | String startTime = null; |
| | | String endTime = null; |
| | | for (ScheduleClassesTimeDto time : times) { |
| | | |
| | | startTime = today + " " + time.getStartTime() + ":00"; |
| | | endTime = today + " " + time.getEndTime() + ":00"; |
| | | |
| | | if (DateUtil.belongCalendar(scheduleClassesStaffDto.getToday(), DateUtil.getDateFromStringA(startTime), DateUtil.getDateFromStringA(endTime))) { |
| | | scheduleClassesStaffDto.setWork(true); |
| | | return; |
| | | } |
| | | } |
| | | scheduleClassesStaffDto.setWork(false); |
| | | } |
| | | } |