This commit is contained in:
dy 2025-08-12 16:17:54 +08:00
parent a7db0253e8
commit 1b64c97626
5 changed files with 36 additions and 23 deletions

View File

@ -66,7 +66,7 @@ public class AttendanceUserGroup extends TenantEntity {
*/
private LocalDate endDate;
private SysUser sysUser;
// private SysUser sysUser;
}

View File

@ -79,7 +79,7 @@ public class AttendanceArrangementVo implements Serializable {
private AttendanceGroup attendanceGroup;
//用户组
private List<AttendanceUserGroup> userGroupList;
private List<AttendanceUserGroupVo> userGroupList;
//固定排班
private AttendanceWeekSet weekSet;

View File

@ -7,6 +7,8 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.vo.SysUserVo;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
@ -86,5 +88,7 @@ public class AttendanceUserGroupVo implements Serializable {
private AttendanceScheduleCycle scheduleCycle;
private SysUserVo sysUser;
}

View File

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -17,10 +18,13 @@ import org.dromara.property.domain.*;
import org.dromara.property.domain.bo.AttendanceArrangementBo;
import org.dromara.property.domain.constant.StatusConstant;
import org.dromara.property.domain.vo.AttendanceArrangementVo;
import org.dromara.property.domain.vo.AttendanceUserGroupVo;
import org.dromara.property.mapper.*;
import org.dromara.property.service.IAttendanceArrangementService;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.ISysUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -57,8 +61,8 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
private final AttendanceScheduleCycleMapper scheduleCycleMapper;
private final SysUserMapper sysUserMapper;
@DubboReference
private final ISysUserService sysUserService;
/**
* 查询排班
*
@ -75,7 +79,8 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
vo.setAttendanceGroup(attendanceGroup);
//根据id查询排班人员信息
List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, id));
// List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, id));
List<AttendanceUserGroupVo> userGroupList = userGroupMapper.selectVoList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, id));
//将排班人员信息添加到排班信息中
vo.setUserGroupList(userGroupList);
return vo;
@ -100,6 +105,8 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
Page<AttendanceArrangementVo> result = baseMapper.selectVoPage(pageQuery.build(), ge);
Page<AttendanceArrangementVo> attendanceArrangementVoPage = result.setRecords(result.getRecords().stream().map(vo -> {
//根据当前日期查询在开始时间和结束时间之间的排班信息
//从前端查询出来的当前日期判断是否在排班时间内
if ((bo.getCurrentDate().isAfter(vo.getStartDate()) || bo.getCurrentDate().isEqual(vo.getStartDate())) && (bo.getCurrentDate().isBefore(vo.getEndDate()) || bo.getCurrentDate().isEqual(vo.getEndDate()))) {
@ -107,8 +114,20 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
//根据查询出来的result取出shceduleId
Long scheduleId = vo.getId();
//根据排班的id查询出排班的人员详细信息
List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getScheduleId, scheduleId));
vo.setUserGroupList(userGroupList);
// List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getScheduleId, scheduleId));
List<AttendanceUserGroupVo> userGroupVoList = userGroupMapper.selectVoList(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getScheduleId, scheduleId));
//通过userGroupList查询出人员的详细信息
//将userList存到userGroupList中
userGroupVoList.forEach(userGroup -> {
SysUserVo sysUserVo = sysUserService.selectUserById(userGroup.getEmployeeId());
// SysUserVo sysUserVo1 = sysUserService.selectUserById(userGroupVoList.get(0).getEmployeeId());
userGroup.setSysUser(sysUserVo);
// userGroup.setSysUser(sysUserVo1);
}
);
vo.setUserGroupList(userGroupVoList);
//2.查询考勤组信息
//根据查询出来的信息取出考勤组的id
@ -261,7 +280,6 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
}
/**
* 查询某个月的日历排班信息的排班列表
*
@ -315,16 +333,8 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
// 循环排班列表查询排班人员信息
for (AttendanceArrangementVo vo : result) {
// 根据排班查询出人员组的详细信息
List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, vo.getId()));
//通过userGroupList查询出人员的详细信息
//将userList存到userGroupList中
userGroupList.forEach(userGroup -> {
SysUser sysUser = sysUserMapper.selectById(userGroup.getEmployeeId());
userGroup.setSysUser(sysUser);
}
);
// List<AttendanceUserGroup> userGroupList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, vo.getId()));
List<AttendanceUserGroupVo> userGroupList = userGroupMapper.selectVoList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, vo.getId()));
// 将排班人员信息添加到排班信息中
vo.setUserGroupList(userGroupList);
@ -454,8 +464,6 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
judgeDate(bo, add);
//取出当前新增的排班的id
Long ArrangementId = add.getId();
//用获取到的排班id向attendanceUserGroup表中插入数据
@ -514,10 +522,10 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
Long ArrangementId = update.getId();
//根据arrangementId查询出人员组的所有employeeId
List<Long> employeeIdList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, ArrangementId))
.stream().map(AttendanceUserGroup::getEmployeeId).toList();
.stream().map(AttendanceUserGroup::getEmployeeId).toList();
//根据employeeId和ArrangementId删除attendanceUserGroup表中的数据
userGroupMapper.delete(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getEmployeeId, employeeIdList)
.eq(AttendanceUserGroup::getScheduleId, ArrangementId));
.eq(AttendanceUserGroup::getScheduleId, ArrangementId));
//根据排班id获取部门id
List<Long> deptIdList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, ArrangementId))
@ -602,5 +610,4 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
}
}

View File

@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.exception.ServiceException;
@ -44,6 +45,7 @@ import java.util.Map;
@Slf4j
@RequiredArgsConstructor
@Service
@DubboService
public class SysUserServiceImpl implements ISysUserService {
private final SysUserMapper baseMapper;