|
|
|
@@ -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
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|