package com.template.services.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.template.model.enumModel.eAttendanceStatu; import com.template.model.pojo.SmartAttendance; import com.template.mapper.SmartAttendanceMapper; import com.template.model.pojo.SmartVisitor; import com.template.model.result.PageUtils; import com.template.model.vo.AskForLeaveScreenVo; import com.template.model.vo.AskForLeaveVo; import com.template.model.vo.SmartAttendanceVo; import com.template.services.SmartAttendanceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.Date; import java.util.List; /** *

* 楼栋表 服务实现类 *

* * @author ceshi * @since 2023-12-25 */ @Service public class SmartAttendanceServiceImpl extends ServiceImpl implements SmartAttendanceService { @Autowired private SmartAttendanceMapper smartAttendanceMapper; @Override public List queryAttendances(String startDate, String endDate) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.ge(StringUtils.hasText(startDate), "attend_time", startDate);//大于等于 queryWrapper.le(StringUtils.hasText(endDate), "attend_time", endDate);//小于等于 List result = smartAttendanceMapper.selectList(queryWrapper); return result; } @Override public List queryExistAttendances(String startDate, String endDate) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.ge(StringUtils.hasText(startDate), "start_time", startDate);//大于等于 queryWrapper.le(StringUtils.hasText(endDate), "start_time", endDate);//小于等于 queryWrapper.eq("status", eAttendanceStatu.AskLeave.getValue());//等于 List result = smartAttendanceMapper.selectList(queryWrapper); return result; } @Override public boolean insertAttendanceBatch(List attendances) { boolean result = this.saveBatch(attendances); return result; } @Override public List queryAttendanceList(Date startMonth, Date endMonth) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.ge("start_time", startMonth);//大于等于 queryWrapper.le("start_time", endMonth);//小于等于 List result = smartAttendanceMapper.selectList(queryWrapper); return result; } @Override public List getHistoricalAttendance(Integer userId,Integer status,Date startTime, Date endTime) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (6==status) { queryWrapper.between(SmartAttendance::getInitiateTime,startTime,endTime); }else { queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime); } queryWrapper.eq(SmartAttendance::getStatus,status); queryWrapper.eq(SmartAttendance::getUserId,userId); List result = smartAttendanceMapper.selectList(queryWrapper); return result; } @Override public List getGroup() { return smartAttendanceMapper.getGroup(); } @Override public List track(String startTime, String endTime, int userId) { LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); wrapper.eq(SmartAttendance::getUserId,userId) .between(SmartAttendance::getAttendTime,startTime,endTime) .eq(SmartAttendance::getStatus,0) .orderByDesc(SmartAttendance::getAttendTime); List list = this.list(wrapper); return list; } @Override public PageUtils askForLeavePage(int currentPage, int pageCount,String name, String cardNo, String startTime, String endTime,String ifVerification,String classId) { Page page = new Page<>(currentPage,pageCount); IPage datas = smartAttendanceMapper.askForLeavePage(page, name,cardNo,startTime,endTime,ifVerification,classId); return new PageUtils(datas); } @Override public PageUtils queryPage(int currentPage, int pageCount, Integer gradeId, Integer classId, String status, String studentNo, String name, String startTime, String endTime) { Page page = new Page<>(currentPage,pageCount); IPage datas = smartAttendanceMapper.queryPage(page,gradeId,classId,status,studentNo,name,startTime,endTime); return new PageUtils(datas); } @Override public List duplicatesList(Date startTime, Date endTime, Date initiateTime) { LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); wrapper.eq(SmartAttendance::getStartTime,startTime) .eq(SmartAttendance::getEndTime,endTime) .eq(SmartAttendance::getInitiateTime,initiateTime); List list = this.list(wrapper); return list; } @Override public List queryExpor(Integer gradeId, Integer classId, String status, String studentNo, String name, String startTime, String endTime) { List vos =smartAttendanceMapper.queryExpor(gradeId,classId,status,studentNo,name,startTime,endTime); return vos; } @Override public PageUtils askForLeaveScreenPage(int currentPage, int pageCount, String cardNo, String ifVerification) { Page page = new Page<>(currentPage,pageCount); IPage datas = smartAttendanceMapper.askForLeaveScreenPage(page,cardNo,ifVerification); return new PageUtils(datas); } @Override public Integer getStudentHistoricalAttendance(Integer status, Date startTime, Date endTime) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (6==status) { queryWrapper.between(SmartAttendance::getInitiateTime,startTime,endTime); }else { queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime); } queryWrapper.eq(SmartAttendance::getStatus,status); Integer count = this.count(queryWrapper); return count; } }