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; } }