|
|
@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
@ -20,6 +22,9 @@ public class LabTimeController {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private LabTimeService labTimeService;
|
|
|
|
private LabTimeService labTimeService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private UserController userController;
|
|
|
|
|
|
|
|
|
|
|
|
//创建实验室可预约时间段
|
|
|
|
//创建实验室可预约时间段
|
|
|
|
@PostMapping(value = "/addLabTime", consumes = "application/json")
|
|
|
|
@PostMapping(value = "/addLabTime", consumes = "application/json")
|
|
|
|
public ResultVO addLabTime(@RequestBody Map<String, Object> map) {
|
|
|
|
public ResultVO addLabTime(@RequestBody Map<String, Object> map) {
|
|
|
@ -27,8 +32,7 @@ public class LabTimeController {
|
|
|
|
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
|
|
|
|
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
|
|
|
|
System.out.println(labTime1);
|
|
|
|
System.out.println(labTime1);
|
|
|
|
//查重
|
|
|
|
//查重
|
|
|
|
if(labTimeService.findByTime(labTime1.getTime()) != null)
|
|
|
|
if (labTimeService.findByTime(labTime1.getTime()) != null) {
|
|
|
|
{
|
|
|
|
|
|
|
|
return ResultVOUtil.error(-1, "该时间段已存在");
|
|
|
|
return ResultVOUtil.error(-1, "该时间段已存在");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
labTimeService.add(labTime1);
|
|
|
|
labTimeService.add(labTime1);
|
|
|
@ -36,7 +40,7 @@ public class LabTimeController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//通过ltId删除实验室可预约时间段
|
|
|
|
//通过ltId删除实验室可预约时间段
|
|
|
|
@PostMapping(value = "/deleteLabTime" , consumes = "application/json")
|
|
|
|
@PostMapping(value = "/deleteLabTime")
|
|
|
|
public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime) {
|
|
|
|
public ResultVO deleteLabTime(@RequestBody LabTimeBean labTime) {
|
|
|
|
//查找实验室是否存在
|
|
|
|
//查找实验室是否存在
|
|
|
|
LabTimeBean labTime1 = labTimeService.findByLtId(labTime.getLtId());
|
|
|
|
LabTimeBean labTime1 = labTimeService.findByLtId(labTime.getLtId());
|
|
|
@ -49,8 +53,8 @@ public class LabTimeController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//修改实验室可预约时间段
|
|
|
|
//修改实验室可预约时间段
|
|
|
|
@PostMapping(value = "/updateLabTime" , consumes = "application/json")
|
|
|
|
@PostMapping(value = "/updateLabTimeOld", consumes = "application/json")
|
|
|
|
public ResultVO updateLabTime(@RequestBody Map<String,Object> map , HttpServletRequest request){
|
|
|
|
public ResultVO updateLabTimeOld(@RequestBody Map<String, Object> map, HttpServletRequest request) {
|
|
|
|
//转换对象
|
|
|
|
//转换对象
|
|
|
|
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
|
|
|
|
LabTimeBean labTime1 = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
|
|
|
|
if (labTime1.getLtId() == null) {
|
|
|
|
if (labTime1.getLtId() == null) {
|
|
|
@ -61,19 +65,97 @@ public class LabTimeController {
|
|
|
|
return ResultVOUtil.success();
|
|
|
|
return ResultVOUtil.success();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//查找实验室
|
|
|
|
//通过ltId查找实验室预约时间段
|
|
|
|
@GetMapping(value = "/findByLabIdTime" , consumes = "application/json")
|
|
|
|
@GetMapping(value = "/findLabTimeById")
|
|
|
|
public ResultVO<Map<String,Object>> findByLabTimeId(@RequestParam("LabTimeId") Integer labTimeId){
|
|
|
|
public ResultVO<Map<String, Object>> findLabTimeById(@RequestParam("ltId") Integer lt_id) {
|
|
|
|
LabTimeBean labTime1 = labTimeService.findByLtId(labTimeId);
|
|
|
|
LabTimeBean labTime1 = labTimeService.findByLtId(lt_id);
|
|
|
|
System.out.println(labTime1);
|
|
|
|
System.out.println(labTime1);
|
|
|
|
return ResultVOUtil.success(labTime1);
|
|
|
|
return ResultVOUtil.success(labTime1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//查找所有实验室列表
|
|
|
|
//查找实验室预约周次(包含已预约)
|
|
|
|
@GetMapping(value = "/getLabListTime")
|
|
|
|
// author 吴志岳
|
|
|
|
public ResultVO getLabTimeList(){
|
|
|
|
@GetMapping(value = "/getWeeks")
|
|
|
|
List<LabTimeDTO> labTimeList = labTimeService.findAllLabInfo();
|
|
|
|
public ResultVO findLabTimeByLabIdAndYearAndSemester(@RequestParam("labId") Integer lab_id,
|
|
|
|
return ResultVOUtil.success(labTimeList);
|
|
|
|
@RequestParam("year") String year,
|
|
|
|
|
|
|
|
@RequestParam("semester") Integer semester,
|
|
|
|
|
|
|
|
@RequestParam("day") Integer day,
|
|
|
|
|
|
|
|
@RequestParam("time") Integer time) {
|
|
|
|
|
|
|
|
List<Integer> weeks = labTimeService.findWeeks(lab_id, year, semester, day, time);
|
|
|
|
|
|
|
|
return ResultVOUtil.success(weeks);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查找实验室可预约周次(不包含已预约)
|
|
|
|
|
|
|
|
// author 吴志岳
|
|
|
|
|
|
|
|
@GetMapping(value = "/getWeeksAbleBook")
|
|
|
|
|
|
|
|
public ResultVO findLabTimeByLabIdAndYearAndSemesterAbleBook(@RequestParam("labId") Integer lab_id,
|
|
|
|
|
|
|
|
@RequestParam("year") String year,
|
|
|
|
|
|
|
|
@RequestParam("semester") Integer semester,
|
|
|
|
|
|
|
|
@RequestParam("day") Integer day,
|
|
|
|
|
|
|
|
@RequestParam("time") Integer time) {
|
|
|
|
|
|
|
|
List<Integer> weeks = labTimeService.findWeeksAble(lab_id, year, semester, day, time);
|
|
|
|
|
|
|
|
return ResultVOUtil.success(weeks);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//修改实验室可预约时间段
|
|
|
|
|
|
|
|
@PostMapping(value = "/updateLabTime", consumes = "application/json")
|
|
|
|
|
|
|
|
public ResultVO updateLabTime(@RequestBody Map<String, Object> map, HttpServletRequest request) {
|
|
|
|
|
|
|
|
//1. 转换对象,初始化对象,定义时间段
|
|
|
|
|
|
|
|
LabTimeBean labTime = (LabTimeBean) Map2Object.map2Object(map, LabTimeBean.class);
|
|
|
|
|
|
|
|
labTime.setCreatorId(userController.getUIdByCookie(request));
|
|
|
|
|
|
|
|
labTime.setCreateTime(new Date());
|
|
|
|
|
|
|
|
labTime.setStatus(0);
|
|
|
|
|
|
|
|
// 用户发起的修改请求
|
|
|
|
|
|
|
|
List<Integer> weeks = (List<Integer>)map.get("weeks");
|
|
|
|
|
|
|
|
// 实验室预约时间段
|
|
|
|
|
|
|
|
List<Integer> weeksAll = labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
|
|
|
|
|
|
|
|
// 实验室可预约时间段
|
|
|
|
|
|
|
|
List<Integer> weeksAble = labTimeService.findWeeksAble(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
|
|
|
|
|
|
|
|
// 实验室不可变换或不可选取的时间段
|
|
|
|
|
|
|
|
List<Integer> weeksDisable = new ArrayList<>(weeksAll);
|
|
|
|
|
|
|
|
weeksDisable.removeAll(weeksAble);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果请求weeks中不包含不可选取的时间段,报错
|
|
|
|
|
|
|
|
if (!weeks.containsAll(weeksDisable)){
|
|
|
|
|
|
|
|
return ResultVOUtil.error(-1,"已被预约的时间段无法去除");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 数据处理
|
|
|
|
|
|
|
|
// 需要insert的weeks
|
|
|
|
|
|
|
|
List<Integer> weekInsert = new ArrayList<>(weeks);
|
|
|
|
|
|
|
|
weekInsert.removeAll(weeksAll);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 需要delete的weeks
|
|
|
|
|
|
|
|
List<Integer> weekDelete = new ArrayList<>(weeksAll);
|
|
|
|
|
|
|
|
weekDelete.removeAll(weeks);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 3.批量删除
|
|
|
|
|
|
|
|
List<LabTimeBean> labTimeBeans = labTimeService.findTimes(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime());
|
|
|
|
|
|
|
|
labTimeBeans.removeIf(labTimeBean -> !weekDelete.contains(labTimeBean.getWeek()));
|
|
|
|
|
|
|
|
for (LabTimeBean labTimeBean : labTimeBeans){
|
|
|
|
|
|
|
|
labTimeService.deleteByLtId(labTimeBean.getLtId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 4.批量插入
|
|
|
|
|
|
|
|
for (int i : weekInsert){
|
|
|
|
|
|
|
|
LabTimeBean temp = LabTimeBean.builder().labId(labTime.getLabId())
|
|
|
|
|
|
|
|
.year(labTime.getYear())
|
|
|
|
|
|
|
|
.semester(labTime.getSemester())
|
|
|
|
|
|
|
|
.week(i)
|
|
|
|
|
|
|
|
.day(labTime.getDay())
|
|
|
|
|
|
|
|
.time(labTime.getTime())
|
|
|
|
|
|
|
|
.createTime(labTime.getCreateTime())
|
|
|
|
|
|
|
|
.creatorId(labTime.getCreatorId())
|
|
|
|
|
|
|
|
.status(labTime.getStatus())
|
|
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
labTimeService.add(temp);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println("用户请求"+weeks);
|
|
|
|
|
|
|
|
System.out.println("原来有的"+weeksAll);
|
|
|
|
|
|
|
|
System.out.println("要插入的"+weekInsert);
|
|
|
|
|
|
|
|
System.out.println("要删除的"+weekDelete);
|
|
|
|
|
|
|
|
return ResultVOUtil.success(labTimeService.findWeeks(labTime.getLabId(),labTime.getYear(),labTime.getSemester(),labTime.getDay(),labTime.getTime()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|