package com.gkhy.safePlatform.account.utils.staffSchedule;
|
|
import com.gkhy.safePlatform.account.enums.StaffScheduleTypeEnum;
|
import com.gkhy.safePlatform.account.model.dto.req.CreateScheduleTemplateReqDTO;
|
import com.gkhy.safePlatform.commons.enums.ResultCodes;
|
import com.gkhy.safePlatform.commons.vo.ResultVO;
|
import org.springframework.stereotype.Component;
|
|
@Component
|
public class ScheduleTemplateUtil {
|
|
/**
|
* 创建排班模板 - 参数校验
|
* @param reqDTO
|
* @return
|
*/
|
public ResultVO checkCreateTemplateDto(CreateScheduleTemplateReqDTO reqDTO){
|
ResultVO checkResult = new ResultVO<>();
|
checkResult.setCode(ResultCodes.CLIENT_PARAM_ERROR.getCode());
|
checkResult.setMsg(ResultCodes.CLIENT_PARAM_ERROR.getDesc());
|
if(reqDTO.getScheduleType() == null || reqDTO.getAcrossDay() == null || reqDTO.getStartHour() == null
|
|| reqDTO.getStartMin() == null || reqDTO.getEndHour() == null || reqDTO.getEndMin() == null
|
|| reqDTO.getContinueDayCount() == null || reqDTO.getBreakDayCount() == null){
|
checkResult.setCode(ResultCodes.CLIENT_PARAM_NULL.getCode());
|
checkResult.setMsg(ResultCodes.CLIENT_PARAM_NULL.getDesc());
|
return checkResult;
|
}
|
if(StaffScheduleTypeEnum.parse(reqDTO.getScheduleType()) == null){
|
checkResult.setCode(ResultCodes.CLIENT_PARAM_ERROR.getCode());
|
checkResult.setMsg("排班类型不支持");
|
return checkResult;
|
}
|
if(reqDTO.getStartHour() < 0 || reqDTO.getStartHour() > 23 || reqDTO.getStartMin() < 0 || reqDTO.getStartMin() > 59
|
|| reqDTO.getEndHour() < 0 || reqDTO.getEndHour() > 23 || reqDTO.getEndMin() < 0 || reqDTO.getEndMin() > 59){
|
checkResult.setCode(ResultCodes.CLIENT_PARAM_ERROR.getCode());
|
checkResult.setMsg("排班时间不支持");
|
return checkResult;
|
}
|
if(reqDTO.getAcrossDay() == true && (reqDTO.getEndHour() > reqDTO.getStartHour())){
|
checkResult.setCode(ResultCodes.CLIENT_PARAM_ERROR.getCode());
|
checkResult.setMsg("单次排班不能超过24小时");
|
return checkResult;
|
}
|
if(reqDTO.getScheduleType().equals(StaffScheduleTypeEnum.SCHEDULE_TYPE_NORMAL_WEEKLY.getType())
|
|| reqDTO.getScheduleType().equals(StaffScheduleTypeEnum.SCHEDULE_TYPE_CIRCLE_WEEKLY.getType())){
|
if((reqDTO.getContinueDayCount() + reqDTO.getBreakDayCount()) > 7){
|
checkResult.setCode(ResultCodes.CLIENT_PARAM_ERROR.getCode());
|
checkResult.setMsg("排班天数超范围");
|
return checkResult;
|
}
|
}
|
if(reqDTO.getScheduleType().equals(StaffScheduleTypeEnum.SCHEDULE_TYPE_NORMAL_MOONTHLY.getType())
|
|| reqDTO.getScheduleType().equals(StaffScheduleTypeEnum.SCHEDULE_TYPE_CIRCLE_MOONTHLY.getType())){
|
if((reqDTO.getContinueDayCount() + reqDTO.getBreakDayCount()) > 31){
|
checkResult.setCode(ResultCodes.CLIENT_PARAM_ERROR.getCode());
|
checkResult.setMsg("排班天数超范围");
|
return checkResult;
|
}
|
}
|
checkResult.setCode(ResultCodes.OK.getCode());
|
return checkResult;
|
}
|
}
|