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 7b051d0..7c2a1ee 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 @@ -55,66 +55,111 @@ public class LeaveDetailHandler { public List findByType(@PathVariable("type") String type, @PathVariable("id") int id, @PathVariable("page") int page, @PathVariable("size") int size) { List LDs = leaveDetailRepository.findAll(); List LeftLDs = new ArrayList(); - int num = 0, pageNum = 0; + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; for (int i = 0; i < LDs.size(); i++) { if (LDs.get(i).getType().equals(type) && LDs.get(i).getUserid() == id) { num++; - pageNum = num / size; - if (num % size != 0) pageNum++; - if (pageNum == page) LeftLDs.add(LDs.get(i)); + if (num >= pagemin && num <= pagemax) LeftLDs.add(LDs.get(i)); } } return LeftLDs; } + @GetMapping("/findByTypeNum/{type}/{id}/{page}/{size}") + public Integer findByTypeNum(@PathVariable("type") String type, @PathVariable("id") int id, @PathVariable("page") int page, @PathVariable("size") int size) { + List LDs = leaveDetailRepository.findAll(); + List LeftLDs = new ArrayList(); + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; + for (int i = 0; i < LDs.size(); i++) { + if (LDs.get(i).getType().equals(type) && LDs.get(i).getUserid() == id) { + num++; + } + } + return num; + } + @GetMapping("/findByNotType/{type}/{id}/{page}/{size}") public List findByNotType(@PathVariable("type") String type, @PathVariable("id") int id, @PathVariable("page") int page, @PathVariable("size") int size) { List LDs = leaveDetailRepository.findAll(); List LeftLDs = new ArrayList(); - int num = 0, pageNum = 0; + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; for (int i = 0; i < LDs.size(); i++) { if (!LDs.get(i).getType().equals(type) && LDs.get(i).getUserid() == id) { num++; - pageNum = num / size; - if (num % size != 0) pageNum++; - if (pageNum == page) LeftLDs.add(LDs.get(i)); + if (num >= pagemin && num <= pagemax) LeftLDs.add(LDs.get(i)); } } return LeftLDs; } + @GetMapping("/findByNotTypeNum/{type}/{id}/{page}/{size}") + public Integer findByNotTypeNum(@PathVariable("type") String type, @PathVariable("id") int id, @PathVariable("page") int page, @PathVariable("size") int size) { + List LDs = leaveDetailRepository.findAll(); + List LeftLDs = new ArrayList(); + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; + for (int i = 0; i < LDs.size(); i++) { + if (!LDs.get(i).getType().equals(type) && LDs.get(i).getUserid() == id) { + num++; + } + } + return num; + } + + @GetMapping("/findByTypeNoID/{type}/{page}/{size}") public List findByTypeNoID(@PathVariable("type") String type, @PathVariable("page") int page, @PathVariable("size") int size) { List LDs = leaveDetailRepository.findAll(); List LeftLDs = new ArrayList(); - int num = 0, pageNum = 0; + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; for (int i = 0; i < LDs.size(); i++) { if (LDs.get(i).getType().equals(type)) { num++; - pageNum = num / size; - if (num % size != 0) pageNum++; - if (pageNum == page) LeftLDs.add(LDs.get(i)); + if (num >= pagemin && num <= pagemax) LeftLDs.add(LDs.get(i)); } } return LeftLDs; } + @GetMapping("/findByTypeNoIDNum/{type}/{page}/{size}") + public Integer findByTypeNoIDNum(@PathVariable("type") String type, @PathVariable("page") int page, @PathVariable("size") int size) { + List LDs = leaveDetailRepository.findAll(); + List LeftLDs = new ArrayList(); + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; + for (int i = 0; i < LDs.size(); i++) { + if (LDs.get(i).getType().equals(type)) { + num++; + } + } + return num; + } + @GetMapping("/findByNotTypeNoID/{type}/{page}/{size}") public List findByNotTypeNoID(@PathVariable("type") String type, @PathVariable("page") int page, @PathVariable("size") int size) { List LDs = leaveDetailRepository.findAll(); List LeftLDs = new ArrayList(); - int num = 0, pageNum = 0; + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; for (int i = 0; i < LDs.size(); i++) { if (!LDs.get(i).getType().equals(type)) { num++; - pageNum = num / size; - if (num % size != 0) pageNum++; - if (pageNum == page) LeftLDs.add(LDs.get(i)); + if (num >= pagemin && num <= pagemax) LeftLDs.add(LDs.get(i)); } } return LeftLDs; } + @GetMapping("/findByNotTypeNoIDNum/{type}/{page}/{size}") + public Integer findByNotTypeNoIDNum(@PathVariable("type") String type, @PathVariable("page") int page, @PathVariable("size") int size) { + List LDs = leaveDetailRepository.findAll(); + List LeftLDs = new ArrayList(); + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; + for (int i = 0; i < LDs.size(); i++) { + if (!LDs.get(i).getType().equals(type)) { + num++; + } + } + return num; + } + @PostMapping("/save") public String save(@RequestBody LeaveDetail leaveDetail) { long backTimeMS = dateToMs(leaveDetail.getBack_time(), "yyyy-mm-dd hh:mm:ss"); @@ -172,7 +217,7 @@ public class LeaveDetailHandler { } Integer UDid = UD.getId(); - int num = 0, pageNum = 0; + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; for (int i = 0; i < LDs.size(); i++) { LD = LDs.get(i); if (LD.getUserid().equals(UDid)) { @@ -181,9 +226,7 @@ public class LeaveDetailHandler { 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); + if (num >= pagemin && num <= pagemax) result.add(LD); } } } @@ -191,6 +234,37 @@ public class LeaveDetailHandler { return result; } + @GetMapping("findFromSIDTimeLimitNum/{school_id}/{page}/{size}") + public Integer findFromSIDTimeLimitNum(@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; + LeaveDetail LD = null; + List result = new ArrayList(); + for (int i = 0; i < UDs.size(); i++) { + UD = UDs.get(i); + if (UD.getSchool_id().equals(school_id)) { + break; + } + } + Integer UDid = UD.getId(); + + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; + for (int i = 0; i < LDs.size(); i++) { + LD = LDs.get(i); + if (LD.getUserid().equals(UDid)) { + 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++; + } + } + } + + return num; + } + @GetMapping("findByIDAndSaveOD/{leave_detail_id}") public String findByIDAndSaveOD(@PathVariable Integer leave_detail_id) { List LDs = leaveDetailRepository.findAll(); 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 2134b15..3ad2251 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 @@ -40,12 +40,10 @@ public class OutDetailHandler { public List findAndReturnOLD(@PathVariable("page") int page, @PathVariable("size") int size) { List result = outDetailRepository.findAll(); List OLDs = new ArrayList(); - int num = 0, pageNum = 0; + int num = 0, pagemin = (page - 1) * size + 1, pagemax = page * size; for (int i = 0; i < result.size(); i++) { num++; - pageNum = num / size; - if (num % size != 0) pageNum++; - if (pageNum == page) { + if (num >= pagemin && num <= pagemax) { OutDetail OD = result.get(i); OutLeaveDetail OLD = new OutLeaveDetail(); OLD.setId(i + 1); @@ -100,6 +98,12 @@ public class OutDetailHandler { return OLDs; } + @GetMapping("findAndReturnOLDsNum/{page}/{size}") + public Integer findAndReturnOLDsNum(@PathVariable("page") int page, @PathVariable("size") int size) { + List result = outDetailRepository.findAll(); + return result.size(); + } + @GetMapping("findBySIDAndSetReturnTime/{school_id}") public String findBySIDAndSetReturnTime(@PathVariable("school_id") String school_id) { List ODs = outDetailRepository.findAll();