From 3ed678222bd841f0eef2bed42166586d68254bba Mon Sep 17 00:00:00 2001 From: xback <1516748650@qq.com> Date: Thu, 9 Apr 2020 11:42:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E5=AD=99?= =?UTF-8?q?=E7=8E=89=E5=85=A8=20=E6=9C=80=E7=BB=88=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E6=97=B6=E4=B8=A4=E5=91=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/syq/controller/BooksController.java | 28 ++- .../com/syq/controller/ChartController.java | 17 ++ .../syq/controller/ComputersController.java | 21 +- .../syq/controller/ConsumelogsController.java | 19 +- .../com/syq/controller/ExcelController.java | 5 +- .../syq/controller/StatisticsController.java | 30 +++ src/main/java/com/syq/entity/Students.java | 10 +- .../com/syq/repository/BooksRepository.java | 20 +- .../syq/repository/ComputersRepository.java | 8 + .../repository/ConsumelogsRepositorty.java | 16 +- .../com/syq/repository/SystemRepository.java | 9 + .../java/com/syq/service/BooksService.java | 10 + .../com/syq/service/ComputersService.java | 8 + .../com/syq/service/ConsumelogsService.java | 10 +- .../com/syq/service/StatisticsService.java | 7 + .../syq/service/impl/BooksServiceImpl.java | 6 + .../service/impl/ComputersServiceImpl.java | 6 + .../service/impl/ConsumelogsServiceImpl.java | 45 ++++ .../service/impl/StatisticsServiceImpl.java | 19 +- .../syq/service/impl/StudentsServiceImpl.java | 17 +- src/main/java/com/syq/task/MyTask.java | 63 ++++- src/main/java/test.java | 12 + src/main/resources/static/computer-fonts.html | 77 +++++- src/main/resources/static/consumelog.html | 223 ++++++++++++++++++ src/main/resources/static/index.html | 10 + src/main/resources/static/login.html | 4 - src/main/resources/static/statistic-log.html | 209 ++++++++++++++++ src/main/resources/static/students.html | 7 +- src/main/resources/static/teacher.html | 6 +- src/main/resources/static/test.html | 72 ++++++ 30 files changed, 940 insertions(+), 54 deletions(-) create mode 100644 src/main/java/com/syq/controller/StatisticsController.java create mode 100644 src/main/java/test.java create mode 100644 src/main/resources/static/consumelog.html create mode 100644 src/main/resources/static/statistic-log.html create mode 100644 src/main/resources/static/test.html diff --git a/src/main/java/com/syq/controller/BooksController.java b/src/main/java/com/syq/controller/BooksController.java index f0c687c..c347426 100644 --- a/src/main/java/com/syq/controller/BooksController.java +++ b/src/main/java/com/syq/controller/BooksController.java @@ -1,5 +1,7 @@ package com.syq.controller; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -86,20 +88,26 @@ public class BooksController { */ @PutMapping("/borrow") public Result borrowBook(Integer bid,String borrow,String cardno) { - if(borrow.equals("0")) { - booksService.editBorrowReduceNumber(cardno, bid);//此书没有借阅者的情况时,将借阅状态修改为借阅者状态 - return new Result(0, "借阅成功"); + + List likebook = booksService.likeBookByCardno(cardno); + Books like = booksService.likeBookByBorrow(cardno, bid);//此书存在借阅者时,模糊查询当前借阅者卡号查看是否已经借阅过此书 + if(like!=null) { + return new Result(1, "您已借阅过此书"); }else { - Books like = booksService.likeBookByBorrow(cardno, bid);//此书存在借阅者时,模糊查询当前借阅者卡号查看是否已经借阅过此书 - if(like!=null) { - return new Result(1, "您已借阅过此书"); + if(likebook.size()<3) { + if(borrow.equals("0")) { + booksService.editBorrowReduceNumber(cardno, bid);//此书没有借阅者的情况时,将借阅状态修改为借阅者状态 + return new Result(0, "借阅成功"); + }else { + borrow += ("-"+ cardno);//此书有借阅者的情况并且不是当前借阅者时,将借阅者卡号拼接进状态中 + booksService.editBorrowReduceNumber(borrow, bid); + return new Result(0, "借阅成功"); + } }else { - borrow += ("-"+ cardno);//此书有借阅者的情况并且不是当前借阅者时,将借阅者卡号拼接进状态中 - booksService.editBorrowReduceNumber(borrow, bid); - return new Result(0, "借阅成功"); + return new Result(1, "当前卡号可借阅书籍次数已达最高,请先归还其余书籍"); } - } + } diff --git a/src/main/java/com/syq/controller/ChartController.java b/src/main/java/com/syq/controller/ChartController.java index 2d2b538..12573bb 100644 --- a/src/main/java/com/syq/controller/ChartController.java +++ b/src/main/java/com/syq/controller/ChartController.java @@ -1,6 +1,8 @@ package com.syq.controller; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -13,8 +15,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.syq.entity.Chart; +import com.syq.entity.Consumelogs; import com.syq.entity.ResourcesRoom; import com.syq.entity.Statistics; +import com.syq.repository.ConsumelogsRepositorty; import com.syq.service.ResourcesRoomService; import com.syq.service.StatisticsService; @@ -29,12 +33,25 @@ public class ChartController { @Autowired private StatisticsService statisticsService; + @Autowired + private ConsumelogsRepositorty consumelogsRepositorty;//注入日志 + @PostMapping("/test") public Object test() { System.out.println("我被执行了------------------------------------------------------"); return 1; } + @PostMapping("/test2") + public Object test2() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String intime = sdf.format(new Date()); + System.out.println("当前时间:"+intime); + List consumlogs = consumelogsRepositorty.findConsumelogsByIntime(intime); +// System.out.println(consumlogs.toString()); + return consumlogs; + } + /** * 生成资源室和机房图表 * @param yearx diff --git a/src/main/java/com/syq/controller/ComputersController.java b/src/main/java/com/syq/controller/ComputersController.java index cf1c3ed..7d3b6dc 100644 --- a/src/main/java/com/syq/controller/ComputersController.java +++ b/src/main/java/com/syq/controller/ComputersController.java @@ -29,7 +29,11 @@ public class ComputersController { @Autowired private ComputersService computersService; - + /** + * 电脑IP的唯一验证 + * @param ip + * @return + */ @GetMapping("/unique") public ResultInfoUtil findComputersByIp(String ip) { Computers com = computersService.findByIp(ip); @@ -81,6 +85,21 @@ public class ComputersController { return computersService.addOrUpdateComputer(com); } + /** + * 保修电脑 + * 创建人:孙玉全 + * @param com 要修改的参数 + * @return 修改后的实体信息 + */ + @PutMapping("/repair") + public Result repairComputer(Integer comid,Integer status,String remark) { + Integer x = computersService.repairComputer(remark, comid); + if(x>0) { + return new Result(0, "已报修"); + } + return new Result(1, "失败"); + } + /** * 删除电脑西信息 * @param com 删除的参数 返回数值:1代表成功否则失败 diff --git a/src/main/java/com/syq/controller/ConsumelogsController.java b/src/main/java/com/syq/controller/ConsumelogsController.java index 165bd2c..7b646fe 100644 --- a/src/main/java/com/syq/controller/ConsumelogsController.java +++ b/src/main/java/com/syq/controller/ConsumelogsController.java @@ -1,10 +1,14 @@ package com.syq.controller; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -12,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.syq.entity.Consumelogs; +import com.syq.entity.Statistics; import com.syq.entity.Students; import com.syq.entity.Teachers; import com.syq.service.BooksService; @@ -19,6 +24,7 @@ import com.syq.service.ComputersService; import com.syq.service.ConsumelogsService; import com.syq.service.StudentsService; import com.syq.service.TeachersService; +import com.syq.util.ResultInfoUtil; @RequestMapping("consumelogs") @RestController @@ -39,6 +45,17 @@ public class ConsumelogsController { @Autowired private TeachersService teachersService; + /** + * 条件分页查询 + */ + @GetMapping("/Bypage") + public ResultInfoUtil listConsumelogs(Consumelogs con,Integer rid,Integer page,Integer limit) { + Sort sort = new Sort(Sort.Direction.DESC,"conid"); + Pageable pageable = new PageRequest(page-1,limit,sort); + System.out.println(con.toString()); + return consumelogsService.listConsumelogsByPage(con, rid, pageable); + } + /** * 根据当前打卡卡号查询该卡号是否有无未结束任务 * @param cardno @@ -65,8 +82,6 @@ public class ConsumelogsController { @PostMapping public Integer insertConsumelogs(Consumelogs log,Integer rid,Integer comid,Integer bid) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -// Date date -// String inTime = sdf.parse(); log.setIntime(new Date()); log.setStatus(1); return consumelogsService.insertConsumelog(log,rid,comid,bid); diff --git a/src/main/java/com/syq/controller/ExcelController.java b/src/main/java/com/syq/controller/ExcelController.java index 145dd7b..2b93681 100644 --- a/src/main/java/com/syq/controller/ExcelController.java +++ b/src/main/java/com/syq/controller/ExcelController.java @@ -7,6 +7,7 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -58,9 +59,9 @@ public class ExcelController { public Result importExcel(@RequestParam(value = "file") MultipartFile file) { Students student = studentsService.importExcel(file); if(student!=null) { - return new Result(0, "操作成功"); + return new Result(0, "导入成功"); } - return new Result(1, "操作失败"); + return new Result(1, "导入失败,请核实身份证和卡号"); } } diff --git a/src/main/java/com/syq/controller/StatisticsController.java b/src/main/java/com/syq/controller/StatisticsController.java new file mode 100644 index 0000000..8953ea4 --- /dev/null +++ b/src/main/java/com/syq/controller/StatisticsController.java @@ -0,0 +1,30 @@ +package com.syq.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.syq.entity.Statistics; +import com.syq.service.StatisticsService; +import com.syq.util.ResultInfoUtil; + +@RestController +@RequestMapping("/statistics") +public class StatisticsController { + + @Autowired + private StatisticsService statisticsService; + + @GetMapping + public ResultInfoUtil listStatistics(Statistics sta,Integer rid,Integer page,Integer limit) { + Sort sort = new Sort(Sort.Direction.DESC,"staid"); + Pageable pageable = new PageRequest(page-1,limit,sort); + System.out.println(sta.toString()); + return statisticsService.listStatisticsByPage(sta, rid, pageable); + } + +} diff --git a/src/main/java/com/syq/entity/Students.java b/src/main/java/com/syq/entity/Students.java index d4a18ce..8b914cb 100644 --- a/src/main/java/com/syq/entity/Students.java +++ b/src/main/java/com/syq/entity/Students.java @@ -9,8 +9,7 @@ import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; - -import org.springframework.web.bind.annotation.ExceptionHandler; +import javax.persistence.Transient; import com.syq.util.PoiHandler; @@ -55,8 +54,13 @@ public class Students { @PoiHandler(excelHeader = "备注") private String remark;//备注 - @PoiHandler(excelHeader = "系别") + @PoiHandler(excelIgnore = true) @JoinColumn(name = "sysid") @ManyToOne(fetch = FetchType.EAGER) private Systeminfo systeminfo; + + @PoiHandler(excelHeader = "系别") + @Transient + private String test; + } diff --git a/src/main/java/com/syq/repository/BooksRepository.java b/src/main/java/com/syq/repository/BooksRepository.java index 17cda88..83a914e 100644 --- a/src/main/java/com/syq/repository/BooksRepository.java +++ b/src/main/java/com/syq/repository/BooksRepository.java @@ -1,5 +1,7 @@ package com.syq.repository; +import java.util.List; + import javax.transaction.Transactional; import org.springframework.data.jpa.repository.JpaRepository; @@ -41,15 +43,15 @@ public interface BooksRepository extends JpaRepository, JpaSpeci * @param bid * @return */ - @Query(value = "select * from books where borrow like %?1% and bid = ?2 ",nativeQuery = true) + @Query(value = "select * from books where borrow like concat('%',?1,'%') and bid = ?2 ",nativeQuery = true) Books likeBookByBorrow(String borrow,Integer bid); -// /** -// * 根据idcha'x -// * @param borrow -// * @param bid -// * @return -// */ -// @Query(value = "select borrow from books where bid = ?1 ",nativeQuery = true) -// String findBorrow(Integer bid); + /** + * 根据借阅卡号模糊查询,根据图书id精确查询 + * @param borrow + * @param bid + * @return + */ + @Query(value = "select * from books where borrow like concat('%',?1,'%') ",nativeQuery = true) + List likeBookByCardno(String cardno); } diff --git a/src/main/java/com/syq/repository/ComputersRepository.java b/src/main/java/com/syq/repository/ComputersRepository.java index 7535558..ef017d6 100644 --- a/src/main/java/com/syq/repository/ComputersRepository.java +++ b/src/main/java/com/syq/repository/ComputersRepository.java @@ -22,4 +22,12 @@ public interface ComputersRepository extends JpaRepository,J @Modifying @Query(value = "update computers set status = ?1 where comid = ?2 ",nativeQuery = true) Integer editComputerStatus(String cardno,Integer comid); + + /** + * 报修电脑 + */ + @Transactional + @Modifying + @Query(value = "update computers set status = 1,remark = ?1 where comid = ?2 ",nativeQuery = true) + Integer repairComputer(String remark,Integer comid); } diff --git a/src/main/java/com/syq/repository/ConsumelogsRepositorty.java b/src/main/java/com/syq/repository/ConsumelogsRepositorty.java index 416f276..d0fae4f 100644 --- a/src/main/java/com/syq/repository/ConsumelogsRepositorty.java +++ b/src/main/java/com/syq/repository/ConsumelogsRepositorty.java @@ -70,11 +70,21 @@ public interface ConsumelogsRepositorty extends JpaRepository findSumNumber(String intime,String outtime); - - @Query(value = "select rid from consumelogs where intime >=?1 and outtime < ?2 GROUP BY rid",nativeQuery = true) + /** + * 查询当天被使用过的资源室id + */ + @Query(value = "select rid from consumelogs where intime >=?1 and intime < ?2 GROUP BY rid",nativeQuery = true) List findRoomId(String intime,String outtime); + + + /** + * 根据当天时间进行模糊查询,查询出当天所有日志, + * 用于做当用户忘记打开离开五个小时给用户设置离开时间 + */ + @Query(value = "select * from consumelogs where intime like concat('%',?1,'%') ",nativeQuery = true) + List findConsumelogsByIntime(String intime); } diff --git a/src/main/java/com/syq/repository/SystemRepository.java b/src/main/java/com/syq/repository/SystemRepository.java index 0923340..421c5d4 100644 --- a/src/main/java/com/syq/repository/SystemRepository.java +++ b/src/main/java/com/syq/repository/SystemRepository.java @@ -2,11 +2,20 @@ package com.syq.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; +import com.syq.entity.Students; import com.syq.entity.Systeminfo; public interface SystemRepository extends JpaRepository,JpaSpecificationExecutor{ + /** + * 根据卡号查询 + * @param cardno + * @return + */ + @Query(value = "select * from system s where s.sysname = ?1 ",nativeQuery = true) + Systeminfo findBySysName(String sysname); } \ No newline at end of file diff --git a/src/main/java/com/syq/service/BooksService.java b/src/main/java/com/syq/service/BooksService.java index a532f3e..021f3ba 100644 --- a/src/main/java/com/syq/service/BooksService.java +++ b/src/main/java/com/syq/service/BooksService.java @@ -1,5 +1,7 @@ package com.syq.service; +import java.util.List; + import javax.transaction.Transactional; import org.springframework.data.domain.Pageable; @@ -19,6 +21,14 @@ public interface BooksService { * @return 分页工具类(layui所需要的格式) */ ResultInfoUtil listBooksByPage(Books book,Integer btid,Pageable pageable); + + /** + * 根据借阅卡号模糊查询,根据图书id精确查询 + * @param borrow + * @param bid + * @return + */ + List likeBookByCardno(String cardno); /** * 添加或修改图书信息 diff --git a/src/main/java/com/syq/service/ComputersService.java b/src/main/java/com/syq/service/ComputersService.java index 6839040..2240d35 100644 --- a/src/main/java/com/syq/service/ComputersService.java +++ b/src/main/java/com/syq/service/ComputersService.java @@ -46,4 +46,12 @@ public interface ComputersService { * 当有人使用计算机时,将使用者卡号添加进计算机状态 */ Integer editComputerStatus(String cardno,Integer comid); + + /** + * 报修电脑 + */ + @Transactional + @Modifying + @Query(value = "update computers set status = 1,set remark = ?1 where comid = ?2 ",nativeQuery = true) + Integer repairComputer(String remark,Integer comid); } diff --git a/src/main/java/com/syq/service/ConsumelogsService.java b/src/main/java/com/syq/service/ConsumelogsService.java index 392104d..f7027da 100644 --- a/src/main/java/com/syq/service/ConsumelogsService.java +++ b/src/main/java/com/syq/service/ConsumelogsService.java @@ -3,14 +3,18 @@ package com.syq.service; import java.util.Date; import java.util.List; -import javax.transaction.Transactional; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; +import org.springframework.data.domain.Pageable; import com.syq.entity.Consumelogs; +import com.syq.util.ResultInfoUtil; public interface ConsumelogsService { + + /** + * 条件分页查询日志 + */ + ResultInfoUtil listConsumelogsByPage(Consumelogs con,Integer rid,Pageable pageable); /** * 在有人选择资源室后进行添加日志 diff --git a/src/main/java/com/syq/service/StatisticsService.java b/src/main/java/com/syq/service/StatisticsService.java index 04943b4..b71e080 100644 --- a/src/main/java/com/syq/service/StatisticsService.java +++ b/src/main/java/com/syq/service/StatisticsService.java @@ -3,11 +3,18 @@ package com.syq.service; import java.util.List; import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.Query; import com.syq.entity.Statistics; +import com.syq.util.ResultInfoUtil; public interface StatisticsService { + + /** + * 条件分页查询 + */ + ResultInfoUtil listStatisticsByPage(Statistics sta,Integer rid, Pageable pageable); /** * 添加对某个资源室的统计 diff --git a/src/main/java/com/syq/service/impl/BooksServiceImpl.java b/src/main/java/com/syq/service/impl/BooksServiceImpl.java index a3e4761..3aa525a 100644 --- a/src/main/java/com/syq/service/impl/BooksServiceImpl.java +++ b/src/main/java/com/syq/service/impl/BooksServiceImpl.java @@ -120,5 +120,11 @@ public class BooksServiceImpl implements BooksService { return booksRepository.editBorrowPlusNumber(borrow, bid); } + @Override + public List likeBookByCardno(String cardno) { + // TODO Auto-generated method stub + return booksRepository.likeBookByCardno(cardno); + } + } diff --git a/src/main/java/com/syq/service/impl/ComputersServiceImpl.java b/src/main/java/com/syq/service/impl/ComputersServiceImpl.java index 35681ee..19284ac 100644 --- a/src/main/java/com/syq/service/impl/ComputersServiceImpl.java +++ b/src/main/java/com/syq/service/impl/ComputersServiceImpl.java @@ -110,5 +110,11 @@ public class ComputersServiceImpl implements ComputersService { return computersRepository.editComputerStatus(cardno, comid); } + @Override + public Integer repairComputer(String remark, Integer comid) { + // TODO Auto-generated method stub + return computersRepository.repairComputer(remark, comid); + } + } diff --git a/src/main/java/com/syq/service/impl/ConsumelogsServiceImpl.java b/src/main/java/com/syq/service/impl/ConsumelogsServiceImpl.java index cf67d6b..a8e0535 100644 --- a/src/main/java/com/syq/service/impl/ConsumelogsServiceImpl.java +++ b/src/main/java/com/syq/service/impl/ConsumelogsServiceImpl.java @@ -3,12 +3,24 @@ package com.syq.service.impl; import java.util.Date; import java.util.List; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Expression; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import com.syq.entity.Consumelogs; +import com.syq.entity.Statistics; import com.syq.repository.ConsumelogsRepositorty; import com.syq.service.ConsumelogsService; +import com.syq.util.ResultInfoUtil; @Service public class ConsumelogsServiceImpl implements ConsumelogsService{ @@ -57,4 +69,37 @@ public class ConsumelogsServiceImpl implements ConsumelogsService{ return consumelogsRepositorty.insertBook(bid, conid); } + @Override + public ResultInfoUtil listConsumelogsByPage(Consumelogs con, Integer rid, Pageable pageable) { + Page consumelogs = consumelogsRepositorty.findAll(getspec(con,rid), pageable); + ResultInfoUtil res = new ResultInfoUtil(); + res.setData(consumelogs.getContent()); + res.setCount((int)consumelogs.getTotalElements()); + return res; + } + + private Specification getspec(Consumelogs con,Integer rid) { + // TODO Auto-generated method stub + return new Specification() { + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + //创建动态SQL表达式 + Predicate predicate = criteriaBuilder.conjunction(); + //创建动态SQL集合 + List> expressions = predicate.getExpressions(); + //当进入时间不为空是 + if(!StringUtils.isEmpty(con.getCardno())) { + expressions.add(criteriaBuilder.equal(root.get("cardno"), con.getCardno())); + } + if(!StringUtils.isEmpty(con.getIntime())) { + expressions.add(criteriaBuilder.between(root.get("intime"), con.getIntime(), con.getOuttime())); + } + if(rid!=null) { + expressions.add(criteriaBuilder.equal(root.get("resourcesRoom").get("rid"), rid)); + } + return predicate; + } + }; + } + } diff --git a/src/main/java/com/syq/service/impl/StatisticsServiceImpl.java b/src/main/java/com/syq/service/impl/StatisticsServiceImpl.java index 47242fb..886ca6b 100644 --- a/src/main/java/com/syq/service/impl/StatisticsServiceImpl.java +++ b/src/main/java/com/syq/service/impl/StatisticsServiceImpl.java @@ -10,6 +10,7 @@ import javax.persistence.criteria.Root; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; @@ -19,6 +20,7 @@ import com.syq.entity.Statistics; import com.syq.entity.Students; import com.syq.repository.StatisticsRepository; import com.syq.service.StatisticsService; +import com.syq.util.ResultInfoUtil; @Service public class StatisticsServiceImpl implements StatisticsService { @@ -56,6 +58,9 @@ public class StatisticsServiceImpl implements StatisticsService { return statisticsRepository.findDayByMonthx(rids,yearx, monthx); } + /** + * 计算使用量,用于echarts图表 + */ @Override public Integer CountStatistics(Statistics sta, Integer rid) { List statistics = statisticsRepository.findAll(getspec(sta,rid)); @@ -63,7 +68,6 @@ public class StatisticsServiceImpl implements StatisticsService { for (Statistics s : statistics) { nums += s.getPeopleNums(); } - System.out.println(nums); return nums; } @@ -99,5 +103,18 @@ public class StatisticsServiceImpl implements StatisticsService { }; } + /** + * 多条件分页查询,用于展示信息 + */ + @Override + public ResultInfoUtil listStatisticsByPage(Statistics sta,Integer rid, Pageable pageable) { + Page statistics = statisticsRepository.findAll(getspec(sta,rid), pageable); + ResultInfoUtil res = new ResultInfoUtil(); + res.setData(statistics.getContent()); + res.setCount((int)statistics.getTotalElements()); + return res; + } + + } diff --git a/src/main/java/com/syq/service/impl/StudentsServiceImpl.java b/src/main/java/com/syq/service/impl/StudentsServiceImpl.java index d675399..65fcf73 100644 --- a/src/main/java/com/syq/service/impl/StudentsServiceImpl.java +++ b/src/main/java/com/syq/service/impl/StudentsServiceImpl.java @@ -20,7 +20,9 @@ import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import com.syq.entity.Students; +import com.syq.entity.Systeminfo; import com.syq.repository.StudentRepository; +import com.syq.repository.SystemRepository; import com.syq.service.StudentsService; import com.syq.util.FenyeUtil; import com.syq.util.PoiUtils; @@ -31,6 +33,9 @@ public class StudentsServiceImpl implements StudentsService{ @Autowired private StudentRepository studentRepository; + @Autowired + private SystemRepository systemRepository; + @Override public List exporExcel(String ids) { List sList = new ArrayList(); @@ -40,6 +45,7 @@ public class StudentsServiceImpl implements StudentsService{ //同过遍历取出字符串里的每个id Integer id = Integer.parseInt(result[i]); Optional stu = studentRepository.findById(id); + stu.get().setTest((stu.get().getSysteminfo().getSysname())); sList.add(stu.get()); } }else { @@ -58,7 +64,16 @@ public class StudentsServiceImpl implements StudentsService{ try { list = (List) poiUtils.parseExcel(Students.class,file.getInputStream(), originalFilename); for (Students s : list) { - student = studentRepository.save(s); + //根据导入的卡号查询,判断数据库中是否已存在此卡号 + Students stu = studentRepository.findByCardno(s.getCardno()); + Students stu2 = studentRepository.findByIdnumber(s.getIdnumber()); + if(stu!=null || stu2!=null) { + return null; + }else { + Systeminfo sys = systemRepository.findBySysName(s.getTest()); + s.setSysteminfo(sys); + student = studentRepository.save(s); + } } } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/com/syq/task/MyTask.java b/src/main/java/com/syq/task/MyTask.java index c367f73..3a3e276 100644 --- a/src/main/java/com/syq/task/MyTask.java +++ b/src/main/java/com/syq/task/MyTask.java @@ -1,5 +1,6 @@ package com.syq.task; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; @@ -9,11 +10,17 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import com.syq.entity.Consumelogs; import com.syq.entity.ResourcesRoom; import com.syq.entity.Statistics; +import com.syq.entity.Students; +import com.syq.entity.Teachers; import com.syq.repository.ConsumelogsRepositorty; import com.syq.repository.StatisticsRepository; +import com.syq.service.StudentsService; +import com.syq.service.TeachersService; @Component @@ -24,18 +31,21 @@ public class MyTask { private ConsumelogsRepositorty consumelogsRepositorty;//注入日志 @Autowired - private StatisticsRepository statisticsRepository; + private StudentsService studentsService; + + @Autowired + private TeachersService teachersService; + @Autowired + private StatisticsRepository statisticsRepository; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date();//设置当前时间 Calendar cal = Calendar.getInstance(); -// @Scheduled(fixedRate = 1000*5) - @Scheduled(cron = "0 0 8 * * ?")//每天早上的八点执行 + @Scheduled(cron = "0 0 9 * * ?")//每天早上的八点执行 public void task1() { cal.setTime(date); Date time = cal.getTime(); String outtime = sdf.format(time);//获取当天时间 - cal.add(Calendar.DAY_OF_WEEK, -1);//当前时间减去一天 Date time2 = cal.getTime(); String intime = sdf.format(time2);//获取前一天时间 @@ -44,11 +54,9 @@ public class MyTask { String yearx = result[0]+"年"; String monthx = result[1]+"月"; String dayx = result[2]+"日"; - System.out.println(yearx); - System.out.println(monthx); - System.out.println(dayx); - + //根据 资源室id分组查出每组的点击量 List findSumNumber = consumelogsRepositorty.findSumNumber(intime, outtime); + //根据 资源室id分组查出每组的id List findRoomId = consumelogsRepositorty.findRoomId(intime, outtime); for(int i =0;i consumlogs = consumelogsRepositorty.findConsumelogsByIntime(intime); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + for (Consumelogs con : consumlogs) { + if(con.getOuttime()!=null) { + //有离开时间不用管 + }else { + String time1 = sdf2.format(con.getIntime()); + String time2 = sdf2.format(new Date()); + try { + Date date1 = sdf2.parse(time1); + Date date2 = sdf2.parse(time2); + long l= date2.getTime()-date1.getTime(); + long day=l/(24*60*60*1000); + long hour=(l/(60*60*1000)-day*24); + if(hour>=5) {//未离开状态超过五个小时 + consumelogsRepositorty.OutConsumelogs(date2, con.getConid());//设置日志离开时间 + StringBuffer sb = new StringBuffer(con.getCardno()); + String b = sb.substring(0,1);//截取卡号的第一个字母 + if(b.equals("s")) {//判断卡号是否为学生 成功根据卡号查询学生 否则查询老师 + Students student = studentsService.findByCardno(con.getCardno()); + studentsService.editStudentStatus(0, student.getSid()); + }else { + Teachers teacher = teachersService.findByCardno(con.getCardno()); + teachersService.editTeacherStatus(0,teacher.getTid()); + } + } + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + } } diff --git a/src/main/java/test.java b/src/main/java/test.java new file mode 100644 index 0000000..e29e704 --- /dev/null +++ b/src/main/java/test.java @@ -0,0 +1,12 @@ +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class test { + public static void main(String[] args) { + String a = "a1234"; + Pattern p = Pattern.compile("/^S[0-9]{4}$/"); + Matcher m=p.matcher(a); + boolean b=m.matches(); + System.out.println(b); + } +} diff --git a/src/main/resources/static/computer-fonts.html b/src/main/resources/static/computer-fonts.html index 007a190..b9f6ce6 100644 --- a/src/main/resources/static/computer-fonts.html +++ b/src/main/resources/static/computer-fonts.html @@ -56,7 +56,7 @@ align:'center' },{ title: '操作', - width: 150, + width: 200, toolbar: '#tool' } ]], @@ -163,7 +163,54 @@ } }); break; + + //报修 + case 'repair': + case 'edit': + form.val("repairForm",data); + repair_index = layer.open({ + type : 1, + area : [ '600px', '600px' ], + content : $("#repair") + }); + break; + } + }); + + + + //对提交报修按钮进行监听 + form.on('submit(repair)',function(res){ + var comid = $("#comid").val(); + var remark = $("#remark").val(); + $.ajax({ + url : globalData.server+'computers/repair', + headers:{"token":globalData.token}, + dataType : 'json', + data : { + "comid":comid, + "status":1, + "remark":remark + }, + type : 'PUT', + success : function(res) { + console.log(res); + if(res.code!=1){ + layer.msg(res.msg,{icon:1,time:2000},function(index) { + layer.close(repair_index); + window.location.replace(location.href);//自动刷新 + }); + }else{ + layer.msg(res.msg,{icon:2,time:2000},function(index) { + layer.close(repair_index); + window.location.replace(location.href);//自动刷新 + }); + } + }, + error : function() { + layer.alert("修改失败"); } + }); }); }); @@ -172,7 +219,7 @@ {{# if(d.status==0){ }} 正常 {{# }else if(d.status==1){ }} - 受损 + 已报修 {{# }else if(d.status==2){ }} 报废 {{# }else{ }} @@ -184,7 +231,7 @@ {{# if(d.status==0){ }} 使用 {{# }else if(d.status==1){ }} - 慎用 + 已报修 {{# }else if(d.status==2){ }} 不可使用 {{# }else{ }} @@ -194,5 +241,29 @@ 被使用中 {{# } }} {{# } }} + + {{# if(d.status==0){ }} + 报修 + {{# } }} + + + diff --git a/src/main/resources/static/consumelog.html b/src/main/resources/static/consumelog.html new file mode 100644 index 0000000..1f13677 --- /dev/null +++ b/src/main/resources/static/consumelog.html @@ -0,0 +1,223 @@ + + + + + 欢迎页面-X-admin2.2 + + + + + + + + + + + + + +
+ + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+ + +
+ + + + + diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html index fac6c4b..53d414b 100644 --- a/src/main/resources/static/index.html +++ b/src/main/resources/static/index.html @@ -171,6 +171,16 @@ 系统统计 +
  • + + + 统计记录 +
  • +
  • + + + 日志记录 +
  • diff --git a/src/main/resources/static/login.html b/src/main/resources/static/login.html index a4e5416..adadcef 100644 --- a/src/main/resources/static/login.html +++ b/src/main/resources/static/login.html @@ -13,10 +13,6 @@ - diff --git a/src/main/resources/static/statistic-log.html b/src/main/resources/static/statistic-log.html new file mode 100644 index 0000000..d453d6c --- /dev/null +++ b/src/main/resources/static/statistic-log.html @@ -0,0 +1,209 @@ + + + + + 欢迎页面-X-admin2.2 + + + + + + + + + + + + + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    + + +
    + + + \ No newline at end of file diff --git a/src/main/resources/static/students.html b/src/main/resources/static/students.html index 3b7f9ff..4b39dc2 100644 --- a/src/main/resources/static/students.html +++ b/src/main/resources/static/students.html @@ -174,6 +174,7 @@ }, done:function(res){ + console.log(res); layer.alert(res.msg); } }); @@ -317,7 +318,8 @@ var addDisabled2 = 0; $(document).on('blur','#cardno1',function(){ var cardno = $("#cardno1").val(); - if(cardno.length!=7){ + var reg = /^s\d{6}$/; + if(!reg.test(cardno)){ layer.alert("请输入正确的卡号,如: s123456"); $('#addStudents1').attr('disabled',"true"); }else{ @@ -348,7 +350,8 @@ $(document).on('blur','#cardno2',function(){ var cardno = $("#cardno2").val(); var sid = $("#sid").val(); - if(cardno.length!=7){ + var reg = /^s\d{6}$/; + if(!reg.test(cardno)){ layer.alert("请输入正确的卡号,如: s123456"); $('#addStudents2').attr('disabled',"true"); }else{ diff --git a/src/main/resources/static/teacher.html b/src/main/resources/static/teacher.html index 3adc783..8a845c0 100644 --- a/src/main/resources/static/teacher.html +++ b/src/main/resources/static/teacher.html @@ -275,7 +275,8 @@ var addDisabled = 0; var addDisabled2 = 0; $(document).on('blur','#cardNo1',function(){ var cardNo = $("#cardNo1").val(); - if(cardNo.length!=7){ + var reg = /^t\d{6}$/; + if(!reg.test(cardNo)){ layer.alert("请输入正确的卡号,如: t123456"); $('#addteacher1').attr('disabled',"true"); }else{ @@ -307,7 +308,8 @@ $(document).on('blur','#cardNo2',function(){ var cardNo = $("#cardNo2").val(); var tid = $("#tid").val(); - if(cardNo.length!=7){ + var reg = /^t\d{6}$/; + if(!reg.test(cardNo)){ layer.alert("请输入正确的卡号,如: t123456"); $('#addteacher2').attr('disabled',"true"); }else{ diff --git a/src/main/resources/static/test.html b/src/main/resources/static/test.html new file mode 100644 index 0000000..d8109a9 --- /dev/null +++ b/src/main/resources/static/test.html @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + -- Gitee