From b8feba5e98d4f2a3e47b79c4f68e33d6ca622bc2 Mon Sep 17 00:00:00 2001 From: markma <750975972@qq.com> Date: Mon, 24 Jan 2022 16:50:13 +0800 Subject: [PATCH] 05 v1.0 --- .../controller/LeaveDetailHandler.java | 53 +++++++++++++++---- .../controller/OutDetailHandler.java | 47 ++++++++++++++-- 2 files changed, 86 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/markma/leave_manager_spb/controller/LeaveDetailHandler.java b/src/main/java/com/markma/leave_manager_spb/controller/LeaveDetailHandler.java index 524ba33..7b051d0 100644 --- a/src/main/java/com/markma/leave_manager_spb/controller/LeaveDetailHandler.java +++ b/src/main/java/com/markma/leave_manager_spb/controller/LeaveDetailHandler.java @@ -4,16 +4,14 @@ import com.markma.leave_manager_spb.entity.LeaveDetail; import com.markma.leave_manager_spb.entity.OutDetail; import com.markma.leave_manager_spb.entity.UserDetail; import com.markma.leave_manager_spb.repository.LeaveDetailRepository; - +import com.markma.leave_manager_spb.repository.OutDetailRepository; import com.markma.leave_manager_spb.repository.UserDetailRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Locale; +import java.util.*; @RestController @@ -23,6 +21,8 @@ public class LeaveDetailHandler { private LeaveDetailRepository leaveDetailRepository; @Autowired private UserDetailRepository userDetailRepository; + @Autowired + private OutDetailRepository outDetailRepository; public static long dateToMs(String _date, String pattern) { SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.getDefault()); @@ -157,8 +157,8 @@ public class LeaveDetailHandler { } } - @GetMapping("findFromSID/{school_id}") - public List findFromSID(@PathVariable("school_id") int school_id) { + @GetMapping("findFromSIDTimeLimit/{school_id}/{page}/{size}") + public List findFromSID(@PathVariable("school_id") String school_id, @PathVariable("page") int page, @PathVariable("size") int size) { List LDs = leaveDetailRepository.findAll(); List UDs = userDetailRepository.findAll(); UserDetail UD = null; @@ -171,15 +171,50 @@ public class LeaveDetailHandler { } } Integer UDid = UD.getId(); + + int num = 0, pageNum = 0; for (int i = 0; i < LDs.size(); i++) { LD = LDs.get(i); - if (LD.getUserid().equals(UDid)) { - result.add(LD); + long backTimeMS = dateToMs(LD.getBack_time(), "yyyy-mm-dd hh:mm:ss"); + long leaveTimeMS = dateToMs(LD.getLeave_time(), "yyyy-mm-dd hh:mm:ss"); + long nowTimeMS = System.currentTimeMillis(); + if (nowTimeMS > leaveTimeMS && nowTimeMS < backTimeMS && LD.getType().equals("已通过")) { + num++; + pageNum = num / size; + if (num % size != 0) pageNum++; + if (pageNum == page) result.add(LD); + } } } + return result; } + @GetMapping("findByIDAndSaveOD/{leave_detail_id}") + public String findByIDAndSaveOD(@PathVariable Integer leave_detail_id) { + List LDs = leaveDetailRepository.findAll(); + LeaveDetail LD = null; + for (int i = 0; i < LDs.size(); i++) { + if (LDs.get(i).getId().equals(leave_detail_id)) { + LD = LDs.get(i); + break; + } + } + DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = Calendar.getInstance(); + String now = df.format(calendar.getTime()); + + OutDetail OD = new OutDetail(); + OD.setLeave_detail_id(leave_detail_id); + OD.setUserid(LD.getUserid()); + OD.setOut_time(now); + OutDetail result = outDetailRepository.save(OD); + if (result != null) { + return "success"; + } else { + return "error"; + } + } } diff --git a/src/main/java/com/markma/leave_manager_spb/controller/OutDetailHandler.java b/src/main/java/com/markma/leave_manager_spb/controller/OutDetailHandler.java index 6070b60..2134b15 100644 --- a/src/main/java/com/markma/leave_manager_spb/controller/OutDetailHandler.java +++ b/src/main/java/com/markma/leave_manager_spb/controller/OutDetailHandler.java @@ -5,13 +5,18 @@ import com.markma.leave_manager_spb.entity.OutDetail; import com.markma.leave_manager_spb.entity.OutLeaveDetail; import com.markma.leave_manager_spb.entity.UserDetail; import com.markma.leave_manager_spb.repository.LeaveDetailRepository; +import com.markma.leave_manager_spb.repository.OutDetailRepository; import com.markma.leave_manager_spb.repository.UserDetailRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import com.markma.leave_manager_spb.repository.OutDetailRepository; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; -import java.io.IOError; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import static com.markma.leave_manager_spb.controller.LeaveDetailHandler.dateToMs; @@ -49,7 +54,7 @@ public class OutDetailHandler { List LDs = leaveDetailRepository.findAll(); LeaveDetail LD = null; for (int j = 0; j < LDs.size(); j++) { - LD = LDs.get(i); + LD = LDs.get(j); if (LD.getId().equals(ldi)) { break; } @@ -61,7 +66,7 @@ public class OutDetailHandler { List UDs = userDetailRepository.findAll(); UserDetail UD = null; for (int j = 0; j < UDs.size(); j++) { - UD = UDs.get(i); + UD = UDs.get(j); if (UD.getId().equals(user_id)) { break; } @@ -95,5 +100,37 @@ public class OutDetailHandler { return OLDs; } + @GetMapping("findBySIDAndSetReturnTime/{school_id}") + public String findBySIDAndSetReturnTime(@PathVariable("school_id") String school_id) { + List ODs = outDetailRepository.findAll(); + List UDs = userDetailRepository.findAll(); + UserDetail UD = null; + OutDetail result = null; + for (int i = 0; i < ODs.size(); i++) { + Integer userid = ODs.get(i).getUserid(); + if (ODs.get(i).getOut_time() != null && ODs.get(i).getReturn_time() == null) { + for (int j = 0; j < UDs.size(); j++) { + if (UDs.get(j).getSchool_id().equals(school_id)) { + UD = UDs.get(j); + break; + } + } + if (userid.equals(UD.getId())) { + DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = Calendar.getInstance(); + String now = df.format(calendar.getTime()); + + ODs.get(i).setReturn_time(now); + result = outDetailRepository.save(ODs.get(i)); + + } + } + } + if (result != null) { + return "success"; + } else { + return "error"; + } + } }