考勤统计与工种

This commit is contained in:
zt
2025-02-21 09:53:49 +08:00
parent 0fefdd7352
commit a56e12ced2
17 changed files with 273 additions and 25 deletions

View File

@ -3,7 +3,12 @@ package com.ruoyi.wgz.mapper;
import com.ruoyi.wgz.domain.WgzAttendance;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.util.List;
/**
* 考勤打卡Mapper接口
@ -15,4 +20,7 @@ import org.apache.ibatis.annotations.CacheNamespace;
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
public interface WgzAttendanceMapper extends BaseMapperPlus<WgzAttendance> {
List<BgtAttendanceCountVO> countByTaskId(@Param("taskId") Long taskId, @Param("beginDate")LocalDate beginDate
, @Param("endDate")LocalDate endDate);
}

View File

@ -1,5 +1,8 @@
package com.ruoyi.wgz.service;
import com.ruoyi.bgt.domain.dto.BgtAttendanceDTO;
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
import com.ruoyi.bgt.domain.vo.BgtAttendanceVO;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wgz.bo.req.WgzAppSubmitTheClockReq;
import com.ruoyi.wgz.bo.res.WgzAppCardReplacementApplicationRes;
@ -9,9 +12,13 @@ import com.ruoyi.wgz.domain.WgzAttendance;
import com.ruoyi.wgz.bo.WgzAttendanceQueryBo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.WgzAttendanceQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppSubmitTheClockReq;
import com.ruoyi.wgz.domain.WgzAttendance;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
@ -91,4 +98,21 @@ public interface IWgzAttendanceService extends IServicePlus<WgzAttendance> {
* 补卡申请列表
*/
WgzAppCardReplacementApplicationRes userCardReplacementApplication();
// /**
// * 查看当前人、当前工地、当前日期的打卡记录
// */
// WgzAttendance findByUserIdWait(Long appUserId, Long recruitId, String date);
/**
* 统计任务打卡情况
*/
List<BgtAttendanceCountVO> countByTaskId(Long taskId, LocalDate beginDate, LocalDate endDate);
/**
* 总体考勤情况
*/
BgtAttendanceVO attendanceDetail(BgtAttendanceDTO dto);
}

View File

@ -2,16 +2,20 @@ package com.ruoyi.wgz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.bgt.domain.BgtProjectRecruit;
import com.ruoyi.bgt.domain.BgtProjectRecruitApply;
import com.ruoyi.bgt.domain.dto.BgtAttendanceDTO;
import com.ruoyi.bgt.domain.vo.BgtAttendanceVO;
import com.ruoyi.bgt.service.IBgtProjectRecruitApplyService;
import com.ruoyi.bgt.service.IBgtProjectRecruitService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.wgz.bo.WgzAttendanceQueryBo;
import com.ruoyi.wgz.bo.req.WgzAppSubmitTheClockReq;
import com.ruoyi.wgz.bo.res.WgzAppCardReplacementApplicationRes;
import com.ruoyi.wgz.bo.res.WgzAppPunchTheCalendarRecordRes;
@ -19,26 +23,25 @@ import com.ruoyi.wgz.bo.res.WgzAppUserClockingConditionRes;
import com.ruoyi.wgz.bo.rests.WgzAppCardReplacementApplicationTwo;
import com.ruoyi.wgz.bo.rests.WgzAppPunchTheCalendarRecordThree;
import com.ruoyi.wgz.bo.rests.WgzAppPunchTheCalendarRecordTwo;
import com.ruoyi.wgz.domain.WgzAttendance;
import com.ruoyi.wgz.domain.WgzLeave;
import com.ruoyi.bgt.domain.vo.BgtAttendanceCountVO;
import com.ruoyi.wgz.mapper.WgzAttendanceMapper;
import com.ruoyi.wgz.service.IWgzAttendanceService;
import com.ruoyi.wgz.service.IWgzLeaveService;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.wgz.bo.WgzAttendanceQueryBo;
import com.ruoyi.wgz.domain.WgzAttendance;
import com.ruoyi.wgz.mapper.WgzAttendanceMapper;
import com.ruoyi.wgz.service.IWgzAttendanceService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.reactive.TransactionalOperator;
import java.text.DecimalFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 考勤打卡Service业务层处理
@ -306,6 +309,27 @@ public class WgzAttendanceServiceImpl extends ServicePlusImpl<WgzAttendanceMappe
return null;
}
@Override
public List<BgtAttendanceCountVO> countByTaskId(Long taskId, LocalDate beginDate, LocalDate endDate) {
return baseMapper.countByTaskId(taskId, beginDate, endDate);
}
@Override
public BgtAttendanceVO attendanceDetail(BgtAttendanceDTO dto) {
return null;
}
// @Override
// public WgzAttendance findByUserIdWait(Long appUserId, Long recruitId, String date) {
// LambdaQueryWrapper<WgzAttendance> qw = new LambdaQueryWrapper<>();
// qw.eq(WgzAttendance::getRecruitId,recruitId);
// qw.eq(WgzAttendance::getUserId,appUserId);
// return null;
// }
/**
* 获取指定人、指定工地、指定日期的打卡记录