请假半天问题修改
This commit is contained in:
parent
e3065f59f4
commit
305562a143
|
|
@ -22,10 +22,14 @@ import com.bonus.system.holiday.dao.WorkReportDao;
|
||||||
import com.bonus.system.holiday.entity.HolidayBean;
|
import com.bonus.system.holiday.entity.HolidayBean;
|
||||||
import com.bonus.system.holiday.service.HolidayService;
|
import com.bonus.system.holiday.service.HolidayService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -112,15 +116,23 @@ public class HolidayController extends BaseController {
|
||||||
try {
|
try {
|
||||||
// 判断开始时间是否重复
|
// 判断开始时间是否重复
|
||||||
List<HolidayBean> list = holidayDao.judgeRepeatStrat(o);
|
List<HolidayBean> list = holidayDao.judgeRepeatStrat(o);
|
||||||
if(list.size()>0){
|
String result = conflictOrNot(o,list,1);
|
||||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"开始日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
if(StringUtils.isNotBlank(result)){
|
||||||
|
return AjaxResult.error(result);
|
||||||
}
|
}
|
||||||
|
/*if(list.size()>0){
|
||||||
|
return AjaxResult.error("当前提交的"+o.getLeaveType()+"开始日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||||
|
}*/
|
||||||
|
|
||||||
// 判断结束时间是否重复
|
// 判断结束时间是否重复
|
||||||
List<HolidayBean> listEnd = holidayDao.judgeRepeatEnd(o);
|
List<HolidayBean> listEnd = holidayDao.judgeRepeatEnd(o);
|
||||||
if(listEnd.size()>0){
|
String result2 = conflictOrNot(o,listEnd,2);
|
||||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"结束日期与"+listEnd.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
if(StringUtils.isNotBlank(result2)){
|
||||||
|
return AjaxResult.error(result2);
|
||||||
}
|
}
|
||||||
|
/*if(listEnd.size()>0){
|
||||||
|
return AjaxResult.error("当前提交的"+o.getLeaveType()+"结束日期与"+listEnd.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||||
|
}*/
|
||||||
|
|
||||||
// 新增
|
// 新增
|
||||||
int res = holidayService.insertHoliday(o);
|
int res = holidayService.insertHoliday(o);
|
||||||
|
|
@ -156,15 +168,23 @@ public class HolidayController extends BaseController {
|
||||||
try {
|
try {
|
||||||
// 判断开始时间是否重复
|
// 判断开始时间是否重复
|
||||||
List<HolidayBean> list = holidayDao.judgeRepeatStrat(o);
|
List<HolidayBean> list = holidayDao.judgeRepeatStrat(o);
|
||||||
if(list.size()>0){
|
String result = conflictOrNot(o,list,1);
|
||||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"开始日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
if(StringUtils.isNotBlank(result)){
|
||||||
|
return AjaxResult.error(result);
|
||||||
}
|
}
|
||||||
|
/*if(list.size()>0){
|
||||||
|
return AjaxResult.error("当前提交的"+o.getLeaveType()+"开始日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||||
|
}*/
|
||||||
|
|
||||||
// 判断结束时间是否重复
|
// 判断结束时间是否重复
|
||||||
List<HolidayBean> listEnd = holidayDao.judgeRepeatEnd(o);
|
List<HolidayBean> listEnd = holidayDao.judgeRepeatEnd(o);
|
||||||
if(listEnd.size()>0){
|
String result2 = conflictOrNot(o,listEnd,2);
|
||||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"结束日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
if(StringUtils.isNotBlank(result2)){
|
||||||
|
return AjaxResult.error(result2);
|
||||||
}
|
}
|
||||||
|
/*if(listEnd.size()>0){
|
||||||
|
return AjaxResult.error("当前提交的"+o.getLeaveType()+"结束日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||||
|
}*/
|
||||||
|
|
||||||
int res = holidayService.updateHoliday(o);
|
int res = holidayService.updateHoliday(o);
|
||||||
return toAjax(res);
|
return toAjax(res);
|
||||||
|
|
@ -174,6 +194,55 @@ public class HolidayController extends BaseController {
|
||||||
return error("系统异常");
|
return error("系统异常");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断日期是否冲突
|
||||||
|
*/
|
||||||
|
public String conflictOrNot(HolidayBean o,List<HolidayBean> list,int type){
|
||||||
|
if(CollectionUtils.isEmpty(list)){
|
||||||
|
return null;
|
||||||
|
}else{
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||||
|
for (HolidayBean holidayBean : list) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
StringBuilder sb2 = new StringBuilder();
|
||||||
|
StringBuilder sb3 = new StringBuilder();
|
||||||
|
String date = null,interval = null;
|
||||||
|
if(type == 1){
|
||||||
|
date = holidayBean.getLeaveStartDate().format(formatter);
|
||||||
|
interval = o.getLeaveStartInterval();
|
||||||
|
}else if(type == 2){
|
||||||
|
date = holidayBean.getLeaveEndDate().format(formatter);
|
||||||
|
interval = o.getLeaveEndInterval();
|
||||||
|
}
|
||||||
|
sb.append(date).append(interval);
|
||||||
|
String oldStartDate = holidayBean.getLeaveStartDate().format(formatter);
|
||||||
|
String oldEndDate = holidayBean.getLeaveEndDate().format(formatter);
|
||||||
|
sb2.append(oldStartDate).append(holidayBean.getLeaveStartInterval());
|
||||||
|
sb3.append(oldEndDate).append(holidayBean.getLeaveEndInterval());
|
||||||
|
// 校验数据是否冲突
|
||||||
|
boolean inRange = isInRange(Long.parseLong(sb.toString()), Long.parseLong(sb2.toString()), Long.parseLong(sb3.toString()));
|
||||||
|
if(inRange && type == 1){
|
||||||
|
return "当前提交的"+o.getLeaveType()+"开始日期与"+holidayBean.getType()+"存在冲突日期"+holidayBean.getLeaveStartDate()+"~"+holidayBean.getLeaveEndDate();
|
||||||
|
}else if(inRange && type == 2){
|
||||||
|
return "当前提交的"+o.getLeaveType()+"结束日期与"+holidayBean.getType()+"存在冲突日期"+holidayBean.getLeaveStartDate()+"~"+holidayBean.getLeaveEndDate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断一个数值是否在指定区间范围内
|
||||||
|
*
|
||||||
|
* @param number 要判断的数值
|
||||||
|
* @param lowerBound 区间下限
|
||||||
|
* @param upperBound 区间上限
|
||||||
|
* @return 如果数值在区间内返回true,否则返回false
|
||||||
|
*/
|
||||||
|
public static boolean isInRange(Long number, Long lowerBound, Long upperBound) {
|
||||||
|
return number >= lowerBound && number <= upperBound;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除请假单
|
* 删除请假单
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue