Преглед на файлове

1.考勤组与用户关联表新增部门id

2.导出bug处理
main
wangqiang преди 3 дни
родител
ревизия
c57274e696

+ 2
- 0
script/sql/20250723.sql Целия файл

ALTER TABLE dk_check_in_attendance_team_and_user
ADD COLUMN dept_id bigint(20) COMMENT '部门id';

+ 10
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroupAndUser.java Целия файл

import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.entity.SysDept;
import lombok.Data; import lombok.Data;


/** /**
@TableField(value = "`nick_name`") @TableField(value = "`nick_name`")
private String nickName; private String nickName;


/** 用户id */
@TableField(value = "`dept_id`")
private long deptId;

/** 所属部门 */ /** 所属部门 */
@TableField(value = "`dept_name`") @TableField(value = "`dept_name`")
private String deptName; private String deptName;
/**
* 部门对象
*/
@TableField(exist = false)
private SysDept dept;
} }

+ 9
- 1
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkAttendanceGroupServiceImpl.java Целия файл

import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.GlobalException; import com.ruoyi.common.exception.GlobalException;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.zhushi.entity.*; import com.ruoyi.zhushi.entity.*;
import com.ruoyi.zhushi.mapper.DkAttendanceGroupAndUserMapper; import com.ruoyi.zhushi.mapper.DkAttendanceGroupAndUserMapper;
import com.ruoyi.zhushi.mapper.DkAttendanceGroupMapper; import com.ruoyi.zhushi.mapper.DkAttendanceGroupMapper;


@Autowired @Autowired
private DkAttendanceGroupAndUserMapper dkAttendanceGroupAndUserMapper; private DkAttendanceGroupAndUserMapper dkAttendanceGroupAndUserMapper;

@Autowired
private ISysDeptService iSysDeptService;


// 查询考勤组 // 查询考勤组
@Override @Override
queryWrapper.eq(DkAttendanceGroupAndUser::getAttendanceTeamId, dkAttendanceGroup.getId()); queryWrapper.eq(DkAttendanceGroupAndUser::getAttendanceTeamId, dkAttendanceGroup.getId());


List<DkAttendanceGroupAndUser> dkUsers = dkAttendanceGroupAndUserMapper.selectList(queryWrapper); List<DkAttendanceGroupAndUser> dkUsers = dkAttendanceGroupAndUserMapper.selectList(queryWrapper);
if (dkUsers!=null&&dkUsers.size()>0) {
for (DkAttendanceGroupAndUser dkAttendanceGroupAndUser:dkUsers) {
long deptId = dkAttendanceGroupAndUser.getDeptId();
dkAttendanceGroupAndUser.setDept(iSysDeptService.selectDeptById(deptId));
}
}
dkAttendanceGroupDTO1.setMembers(dkUsers); dkAttendanceGroupDTO1.setMembers(dkUsers);
dkAttendanceGroupDTOS.add(dkAttendanceGroupDTO1); dkAttendanceGroupDTOS.add(dkAttendanceGroupDTO1);
} }

+ 14
- 16
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkRecordServiceImpl.java Целия файл

@Override @Override
public TableDataInfo<DkCheckInRecordDTO> queryPageList(DkCheckInRecordDTO dkCheckInRecordDTO, PageQuery pageQuery) { public TableDataInfo<DkCheckInRecordDTO> queryPageList(DkCheckInRecordDTO dkCheckInRecordDTO, PageQuery pageQuery) {
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO, null);
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO);
if (dkCheckInRecordDTO.getFlag().equals("my")){ if (dkCheckInRecordDTO.getFlag().equals("my")){
if (loginUser == null) { if (loginUser == null) {
return TableDataInfo.build(); return TableDataInfo.build();
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }


private LambdaQueryWrapper<DkCheckInRecord> buildQueryWrapper(DkCheckInRecordDTO dkCheckInRecordDTO, String flag) {
private LambdaQueryWrapper<DkCheckInRecord> buildQueryWrapper(DkCheckInRecordDTO dkCheckInRecordDTO) {
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<DkCheckInRecord> queryWrapper = Wrappers.lambdaQuery();


queryWrapper.eq(null != dkCheckInRecordDTO.getSysUserId() ,DkCheckInRecord::getSysUserId, dkCheckInRecordDTO.getSysUserId()); queryWrapper.eq(null != dkCheckInRecordDTO.getSysUserId() ,DkCheckInRecord::getSysUserId, dkCheckInRecordDTO.getSysUserId());
queryWrapper.between(DkCheckInRecord::getCheckInTime, TimeUtils.getFirstDayOfMonth(dkCheckInRecordDTO.getStrMonth()), queryWrapper.between(DkCheckInRecord::getCheckInTime, TimeUtils.getFirstDayOfMonth(dkCheckInRecordDTO.getStrMonth()),
TimeUtils.getLastDayOfMonth(dkCheckInRecordDTO.getStrMonth())); TimeUtils.getLastDayOfMonth(dkCheckInRecordDTO.getStrMonth()));
} }
if(flag != null){
queryWrapper.select(DkCheckInRecord::getSysUserName, DkCheckInRecord::getSysUserId, DkCheckInRecord::getNickName);
queryWrapper.in(null != dkCheckInRecordDTO.getAttendanceGroupIds() ,DkCheckInRecord::getAttendanceGroupId, dkCheckInRecordDTO.getAttendanceGroupIds());
queryWrapper.groupBy(DkCheckInRecord::getSysUserName).groupBy(DkCheckInRecord::getSysUserId).groupBy(DkCheckInRecord::getNickName);
}else{
queryWrapper.orderByDesc(DkCheckInRecord::getSysUserName).orderByDesc(DkCheckInRecord::getCheckInTime);
}

queryWrapper.orderByDesc(DkCheckInRecord::getSysUserName).orderByDesc(DkCheckInRecord::getCheckInTime);

return queryWrapper; return queryWrapper;
} }


*/ */
@Override @Override
public List<DkCheckInRecordDTO> queryList(DkCheckInRecordDTO dkCheckInRecordDTO) { public List<DkCheckInRecordDTO> queryList(DkCheckInRecordDTO dkCheckInRecordDTO) {
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO, null);
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO);
List<DkCheckInRecordDTO> dkCheckInRecordDTOS = dkMapper.selectVoList(queryWrapper); List<DkCheckInRecordDTO> dkCheckInRecordDTOS = dkMapper.selectVoList(queryWrapper);
dkCheckInRecordDTOS.forEach(dk -> { dkCheckInRecordDTOS.forEach(dk -> {
if("0".equals(dk.getCheckInStatus())){ if("0".equals(dk.getCheckInStatus())){
if (inputMonth.isAfter(currentMonth)) { if (inputMonth.isAfter(currentMonth)) {
return ; return ;
} }
// 查询出考勤组所有人员
List<DkAttendanceGroupAndUser> users = dkAttendanceGroupAndUserMapper.selectList();
// 查询出选择的考勤组下面的所有人员
QueryWrapper<DkAttendanceGroupAndUser> queryWrapper = new QueryWrapper<>();
queryWrapper.in("attendance_team_id",dkCheckInRecordDTO.getAttendanceGroupIds());
List<DkAttendanceGroupAndUser> users = dkAttendanceGroupAndUserMapper.selectList(queryWrapper);
if (users==null||users.size()==0) { if (users==null||users.size()==0) {
return; return;
} }


// 定义集合,用于存储每天打卡记录 // 定义集合,用于存储每天打卡记录
List<DayRecord> dayRecords = new ArrayList<>(); List<DayRecord> dayRecords = new ArrayList<>();
// 根据用户的ID查询该用户所有的打卡记录
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO, null);
// 根据用户的ID 和月份查询该用户所有的打卡记录
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO);
List<DkCheckInRecordDTO> dkCheckInRecordDTOS = dkMapper.selectVoList(queryWrapper); List<DkCheckInRecordDTO> dkCheckInRecordDTOS = dkMapper.selectVoList(queryWrapper);
if (dkCheckInRecordDTOS == null && dkCheckInRecordDTOS.isEmpty()){ if (dkCheckInRecordDTOS == null && dkCheckInRecordDTOS.isEmpty()){
return data; return data;
// 定义集合,用于存储每天打卡记录 // 定义集合,用于存储每天打卡记录
List<DayRecord> dayRecords = new ArrayList<>(); List<DayRecord> dayRecords = new ArrayList<>();


// 根据用户的ID查询该用户所有的打卡记录
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO, null);
// 根据用户的ID 和月份查询该用户所有的打卡记录
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO);
List<DkCheckInRecordDTO> dkCheckInRecordDTOS = dkMapper.selectVoList(queryWrapper); List<DkCheckInRecordDTO> dkCheckInRecordDTOS = dkMapper.selectVoList(queryWrapper);
// 构造excel数据 // 构造excel数据
for(DkCheckInRecordDTO dk : dkCheckInRecordDTOS){ for(DkCheckInRecordDTO dk : dkCheckInRecordDTOS){

Loading…
Отказ
Запис