|
@@ -16,6 +16,11 @@
|
|
|
package com.java110.store.smo.impl;
|
|
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.store.dao.IScheduleClassesStaffV1ServiceDao;
|
|
|
import com.java110.intf.store.IScheduleClassesStaffV1InnerServiceSMO;
|
|
import com.java110.intf.store.IScheduleClassesStaffV1InnerServiceSMO;
|
|
|
import com.java110.dto.scheduleClassesStaff.ScheduleClassesStaffDto;
|
|
import com.java110.dto.scheduleClassesStaff.ScheduleClassesStaffDto;
|
|
@@ -24,11 +29,13 @@ import com.java110.utils.util.BeanConvertUtil;
|
|
|
import com.java110.core.base.smo.BaseServiceSMO;
|
|
import com.java110.core.base.smo.BaseServiceSMO;
|
|
|
import com.java110.dto.user.UserDto;
|
|
import com.java110.dto.user.UserDto;
|
|
|
import com.java110.dto.PageDto;
|
|
import com.java110.dto.PageDto;
|
|
|
|
|
+import com.java110.utils.util.DateUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
|
+import java.util.Calendar;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -45,28 +52,34 @@ public class ScheduleClassesStaffV1InnerServiceSMOImpl extends BaseServiceSMO im
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private IScheduleClassesStaffV1ServiceDao scheduleClassesStaffV1ServiceDaoImpl;
|
|
private IScheduleClassesStaffV1ServiceDao scheduleClassesStaffV1ServiceDaoImpl;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IScheduleClassesV1InnerServiceSMO scheduleClassesV1InnerServiceSMOImpl;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IScheduleClassesDayV1InnerServiceSMO scheduleClassesDayV1InnerServiceSMOImpl;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public int saveScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) {
|
|
|
|
|
|
|
+ public int saveScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) {
|
|
|
int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.saveScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo));
|
|
int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.saveScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo));
|
|
|
return saveFlag;
|
|
return saveFlag;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @Override
|
|
|
|
|
- public int updateScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) {
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public int updateScheduleClassesStaff(@RequestBody ScheduleClassesStaffPo scheduleClassesStaffPo) {
|
|
|
int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.updateScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo));
|
|
int saveFlag = scheduleClassesStaffV1ServiceDaoImpl.updateScheduleClassesStaffInfo(BeanConvertUtil.beanCovertMap(scheduleClassesStaffPo));
|
|
|
return saveFlag;
|
|
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
|
|
@Override
|
|
|
- public List<ScheduleClassesStaffDto> queryScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) {
|
|
|
|
|
|
|
+ public List<ScheduleClassesStaffDto> queryScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) {
|
|
|
|
|
|
|
|
//校验是否传了 分页信息
|
|
//校验是否传了 分页信息
|
|
|
|
|
|
|
@@ -84,10 +97,11 @@ public class ScheduleClassesStaffV1InnerServiceSMOImpl extends BaseServiceSMO im
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public int queryScheduleClassesStaffsCount(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) {
|
|
public int queryScheduleClassesStaffsCount(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) {
|
|
|
- return scheduleClassesStaffV1ServiceDaoImpl.queryScheduleClassesStaffsCount(BeanConvertUtil.beanCovertMap(scheduleClassesStaffDto)); }
|
|
|
|
|
|
|
+ return scheduleClassesStaffV1ServiceDaoImpl.queryScheduleClassesStaffsCount(BeanConvertUtil.beanCovertMap(scheduleClassesStaffDto));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public List<ScheduleClassesStaffDto> queryGroupScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) {
|
|
|
|
|
|
|
+ public List<ScheduleClassesStaffDto> queryGroupScheduleClassesStaffs(@RequestBody ScheduleClassesStaffDto scheduleClassesStaffDto) {
|
|
|
|
|
|
|
|
//校验是否传了 分页信息
|
|
//校验是否传了 分页信息
|
|
|
|
|
|
|
@@ -101,4 +115,187 @@ public class ScheduleClassesStaffV1InnerServiceSMOImpl extends BaseServiceSMO im
|
|
|
|
|
|
|
|
return scheduleClassesStaffs;
|
|
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);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|