SmartAttendanceServiceImpl.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.template.services.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.template.model.enumModel.eAttendanceStatu;
  7. import com.template.model.pojo.SmartAttendance;
  8. import com.template.mapper.SmartAttendanceMapper;
  9. import com.template.model.pojo.SmartVisitor;
  10. import com.template.model.result.PageUtils;
  11. import com.template.model.vo.AskForLeaveScreenVo;
  12. import com.template.model.vo.AskForLeaveVo;
  13. import com.template.model.vo.SmartAttendanceVo;
  14. import com.template.services.SmartAttendanceService;
  15. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.util.StringUtils;
  19. import java.util.Date;
  20. import java.util.List;
  21. /**
  22. * <p>
  23. * 楼栋表 服务实现类
  24. * </p>
  25. *
  26. * @author ceshi
  27. * @since 2023-12-25
  28. */
  29. @Service
  30. public class SmartAttendanceServiceImpl extends ServiceImpl<SmartAttendanceMapper, SmartAttendance> implements SmartAttendanceService {
  31. @Autowired
  32. private SmartAttendanceMapper smartAttendanceMapper;
  33. @Override
  34. public List<SmartAttendance> queryAttendances(String startDate, String endDate) {
  35. QueryWrapper<SmartAttendance> queryWrapper = new QueryWrapper<>();
  36. queryWrapper.ge(StringUtils.hasText(startDate), "attend_time", startDate);//大于等于
  37. queryWrapper.le(StringUtils.hasText(endDate), "attend_time", endDate);//小于等于
  38. List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
  39. return result;
  40. }
  41. @Override
  42. public List<SmartAttendance> queryExistAttendances(String startDate, String endDate) {
  43. QueryWrapper<SmartAttendance> queryWrapper = new QueryWrapper<>();
  44. queryWrapper.ge(StringUtils.hasText(startDate), "start_time", startDate);//大于等于
  45. queryWrapper.le(StringUtils.hasText(endDate), "start_time", endDate);//小于等于
  46. queryWrapper.eq("status", eAttendanceStatu.AskLeave.getValue());//等于
  47. List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
  48. return result;
  49. }
  50. @Override
  51. public boolean insertAttendanceBatch(List<SmartAttendance> attendances) {
  52. boolean result = this.saveBatch(attendances);
  53. return result;
  54. }
  55. @Override
  56. public List<SmartAttendance> queryAttendanceList(Date startMonth, Date endMonth) {
  57. QueryWrapper<SmartAttendance> queryWrapper = new QueryWrapper<>();
  58. queryWrapper.ge("start_time", startMonth);//大于等于
  59. queryWrapper.le("start_time", endMonth);//小于等于
  60. List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
  61. return result;
  62. }
  63. @Override
  64. public List<SmartAttendance> getHistoricalAttendance(Integer userId,Integer status,Date startTime, Date endTime) {
  65. LambdaQueryWrapper<SmartAttendance> queryWrapper = new LambdaQueryWrapper<>();
  66. if (6==status) {
  67. queryWrapper.between(SmartAttendance::getInitiateTime,startTime,endTime);
  68. }else {
  69. queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime);
  70. }
  71. queryWrapper.eq(SmartAttendance::getStatus,status);
  72. queryWrapper.eq(SmartAttendance::getUserId,userId);
  73. List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
  74. return result;
  75. }
  76. @Override
  77. public List<Integer> getGroup() {
  78. return smartAttendanceMapper.getGroup();
  79. }
  80. @Override
  81. public List<SmartAttendance> track(String startTime, String endTime, int userId) {
  82. LambdaQueryWrapper<SmartAttendance> wrapper=new LambdaQueryWrapper<>();
  83. wrapper.eq(SmartAttendance::getUserId,userId)
  84. .between(SmartAttendance::getAttendTime,startTime,endTime)
  85. .eq(SmartAttendance::getStatus,0)
  86. .orderByDesc(SmartAttendance::getAttendTime);
  87. List<SmartAttendance> list = this.list(wrapper);
  88. return list;
  89. }
  90. @Override
  91. public PageUtils<AskForLeaveVo> askForLeavePage(int currentPage, int pageCount,String name, String cardNo, String startTime, String endTime,String ifVerification,String classId) {
  92. Page<AskForLeaveVo> page = new Page<>(currentPage,pageCount);
  93. IPage<AskForLeaveVo> datas = smartAttendanceMapper.askForLeavePage(page, name,cardNo,startTime,endTime,ifVerification,classId);
  94. return new PageUtils(datas);
  95. }
  96. @Override
  97. public PageUtils<SmartAttendanceVo> queryPage(int currentPage, int pageCount, Integer gradeId, Integer classId, String status, String studentNo, String name, String startTime, String endTime) {
  98. Page<SmartAttendanceVo> page = new Page<>(currentPage,pageCount);
  99. IPage<SmartAttendanceVo> datas = smartAttendanceMapper.queryPage(page,gradeId,classId,status,studentNo,name,startTime,endTime);
  100. return new PageUtils(datas);
  101. }
  102. @Override
  103. public List<SmartAttendance> duplicatesList(Date startTime, Date endTime, Date initiateTime) {
  104. LambdaQueryWrapper<SmartAttendance> wrapper=new LambdaQueryWrapper<>();
  105. wrapper.eq(SmartAttendance::getStartTime,startTime)
  106. .eq(SmartAttendance::getEndTime,endTime)
  107. .eq(SmartAttendance::getInitiateTime,initiateTime);
  108. List<SmartAttendance> list = this.list(wrapper);
  109. return list;
  110. }
  111. @Override
  112. public List<SmartAttendanceVo> queryExpor(Integer gradeId, Integer classId, String status, String studentNo, String name, String startTime, String endTime) {
  113. List<SmartAttendanceVo> vos =smartAttendanceMapper.queryExpor(gradeId,classId,status,studentNo,name,startTime,endTime);
  114. return vos;
  115. }
  116. @Override
  117. public PageUtils<AskForLeaveScreenVo> askForLeaveScreenPage(int currentPage, int pageCount, String cardNo, String ifVerification) {
  118. Page<AskForLeaveScreenVo> page = new Page<>(currentPage,pageCount);
  119. IPage<AskForLeaveScreenVo> datas = smartAttendanceMapper.askForLeaveScreenPage(page,cardNo,ifVerification);
  120. return new PageUtils(datas);
  121. }
  122. @Override
  123. public Integer getStudentHistoricalAttendance(Integer status, Date startTime, Date endTime) {
  124. LambdaQueryWrapper<SmartAttendance> queryWrapper = new LambdaQueryWrapper<>();
  125. if (6==status) {
  126. queryWrapper.between(SmartAttendance::getInitiateTime,startTime,endTime);
  127. }else {
  128. queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime);
  129. }
  130. queryWrapper.eq(SmartAttendance::getStatus,status);
  131. Integer count = this.count(queryWrapper);
  132. return count;
  133. }
  134. }