请假半天问题修改
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.service.HolidayService;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
|
@ -112,15 +116,23 @@ public class HolidayController extends BaseController {
|
|||
try {
|
||||
// 判断开始时间是否重复
|
||||
List<HolidayBean> list = holidayDao.judgeRepeatStrat(o);
|
||||
if(list.size()>0){
|
||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"开始日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||
String result = conflictOrNot(o,list,1);
|
||||
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);
|
||||
if(listEnd.size()>0){
|
||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"结束日期与"+listEnd.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||
String result2 = conflictOrNot(o,listEnd,2);
|
||||
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);
|
||||
|
|
@ -156,15 +168,23 @@ public class HolidayController extends BaseController {
|
|||
try {
|
||||
// 判断开始时间是否重复
|
||||
List<HolidayBean> list = holidayDao.judgeRepeatStrat(o);
|
||||
if(list.size()>0){
|
||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"开始日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||
String result = conflictOrNot(o,list,1);
|
||||
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);
|
||||
if(listEnd.size()>0){
|
||||
return AjaxResult.error("当前提交的"+o.getLeaveType()+"结束日期与"+list.get(0).getType()+"存在冲突日期"+list.get(0).getLeaveStartDate()+"~"+list.get(0).getLeaveEndDate());
|
||||
String result2 = conflictOrNot(o,listEnd,2);
|
||||
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);
|
||||
return toAjax(res);
|
||||
|
|
@ -174,6 +194,55 @@ public class HolidayController extends BaseController {
|
|||
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