Compare commits

...

2 Commits

Author SHA1 Message Date
dy
005dbc1110 Merge branch 'master' of http://47.109.37.87:3000/by2025/SmartParks 2025-08-13 16:24:14 +08:00
dy
b43c3b25e0 bug 2025-08-13 16:21:30 +08:00
2 changed files with 36 additions and 19 deletions

View File

@ -167,7 +167,7 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
LocalDate endDate = vo.getEndDate(); LocalDate endDate = vo.getEndDate();
LocalDate currentDate = bo.getCurrentDate(); LocalDate currentDate = bo.getCurrentDate();
// //统计当前考勤组有多少条数据 // //统计当前考勤组有多少条数据
// int count = Math.toIntExact(scheduleCycleMapper.selectCount(Wrappers.<AttendanceScheduleCycle>lambdaQuery().eq(AttendanceScheduleCycle::getGroupId, groupId))); int count = Math.toIntExact(scheduleCycleMapper.selectCount(Wrappers.<AttendanceScheduleCycle>lambdaQuery().eq(AttendanceScheduleCycle::getGroupId, groupId)));
//取出attendanceScheduleCycle表中的天数 //取出attendanceScheduleCycle表中的天数
List<Integer> cycleDaysList = scheduleCycleMapper.selectList(Wrappers.<AttendanceScheduleCycle>lambdaQuery().eq(AttendanceScheduleCycle::getGroupId, groupId)).stream().map(AttendanceScheduleCycle::getDayNumber).collect(Collectors.toList()); List<Integer> cycleDaysList = scheduleCycleMapper.selectList(Wrappers.<AttendanceScheduleCycle>lambdaQuery().eq(AttendanceScheduleCycle::getGroupId, groupId)).stream().map(AttendanceScheduleCycle::getDayNumber).collect(Collectors.toList());
@ -177,9 +177,9 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
if (date.isEqual(currentDate)) { if (date.isEqual(currentDate)) {
// 判断当前日期是cycleDays中的第几天 // 判断当前日期是cycleDays中的第几天
int dayNumber = date.getDayOfYear() - startDate.getDayOfYear() + 1; int dayNumber = date.getDayOfYear() - startDate.getDayOfYear() + 1;
cycleDay = dayNumber % cycleDaysList.size(); cycleDay = dayNumber % count;
if (cycleDay == 0) { if (cycleDay == 0) {
cycleDay = cycleDaysList.size(); cycleDay = count;
} }
// 根据cycleDay查询出当前日期的班次信息 // 根据cycleDay查询出当前日期的班次信息
AttendanceScheduleCycle cycle = scheduleCycleMapper.selectOne(Wrappers.<AttendanceScheduleCycle>lambdaQuery() AttendanceScheduleCycle cycle = scheduleCycleMapper.selectOne(Wrappers.<AttendanceScheduleCycle>lambdaQuery()
@ -512,15 +512,6 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
AttendanceArrangement update = MapstructUtils.convert(bo, AttendanceArrangement.class); AttendanceArrangement update = MapstructUtils.convert(bo, AttendanceArrangement.class);
validEntityBeforeSave(update); validEntityBeforeSave(update);
// judgeDate(bo, update);
//根据排班id获取人员id
//根据人员id删除人员信息
//新增人员信息
//根据排班id获取部门id
//根据部门id删除部门信息
//新增部门信息
//取出当前排班的id //取出当前排班的id
assert update != null; assert update != null;
Long ArrangementId = update.getId(); Long ArrangementId = update.getId();
@ -528,19 +519,35 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
List<Long> employeeIdList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, ArrangementId)) 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表中的数据 //根据employeeId和ArrangementId删除attendanceUserGroup表中的数据
userGroupMapper.delete(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getEmployeeId, employeeIdList) if (!employeeIdList.isEmpty()) {
.eq(AttendanceUserGroup::getScheduleId, ArrangementId)); userGroupMapper.delete(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getEmployeeId, employeeIdList)
.eq(AttendanceUserGroup::getScheduleId, ArrangementId));
}
//根据排班id获取部门id //根据排班id获取部门id
List<Long> deptIdList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, ArrangementId)) List<Long> deptIdList = userGroupMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, ArrangementId))
.stream().map(AttendanceUserGroup::getDeptId).toList(); .stream().map(AttendanceUserGroup::getDeptId).toList();
//根据deptId和ArrangementId删除attendanceDeptGroup表中的数据 if (!deptIdList.isEmpty()) {
userGroupMapper.delete(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getDeptId, deptIdList) //根据deptId和ArrangementId删除attendanceDeptGroup表中的数据
.eq(AttendanceUserGroup::getScheduleId, ArrangementId)); userGroupMapper.delete(Wrappers.<AttendanceUserGroup>lambdaQuery().in(AttendanceUserGroup::getDeptId, deptIdList)
.eq(AttendanceUserGroup::getScheduleId, ArrangementId));
}
//根据当前排班的id查询出当前的开始时间和结束时间
AttendanceArrangement old = baseMapper.selectById(ArrangementId);
//根据old查询出开始时间
LocalDate oldStartDate = old.getStartDate();
//根据old查询出结束时间
LocalDate oldEndDate = old.getEndDate();
//用获取到的排班id向attendanceUserGroup表中批量插入数据 //用获取到的排班id向attendanceUserGroup表中批量插入数据
List<AttendanceUserGroup> userGroupList = bo.getUserGroupList(); List<AttendanceUserGroup> userGroupList = bo.getUserGroupList();
for (AttendanceUserGroup userGroup : userGroupList) {
userGroup.setScheduleId(bo.getId());
userGroup.setStartDate(oldStartDate);
userGroup.setEndDate(oldEndDate);
}
userGroupMapper.insertBatch(userGroupList); userGroupMapper.insertBatch(userGroupList);
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;

View File

@ -1,5 +1,7 @@
package org.dromara.property.service.impl; package org.dromara.property.service.impl;
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.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -14,6 +16,8 @@ import org.dromara.property.domain.bo.AttendanceArrangementBo;
import org.dromara.property.domain.constant.StatusConstant; import org.dromara.property.domain.constant.StatusConstant;
import org.dromara.property.domain.vo.AttendanceArrangementVo; import org.dromara.property.domain.vo.AttendanceArrangementVo;
import org.dromara.property.mapper.*; import org.dromara.property.mapper.*;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.AttendanceUserGroupBo; import org.dromara.property.domain.bo.AttendanceUserGroupBo;
import org.dromara.property.domain.vo.AttendanceUserGroupVo; import org.dromara.property.domain.vo.AttendanceUserGroupVo;
@ -48,6 +52,10 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi
private final AttendanceScheduleCycleMapper scheduleCycleMapper; private final AttendanceScheduleCycleMapper scheduleCycleMapper;
@DubboReference
private ISysUserService sysUserService;
/** /**
* 查询排班明细 * 查询排班明细
* *
@ -169,8 +177,10 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi
// 根据查询出来的result取出scheduleId // 根据查询出来的result取出scheduleId
Long scheduleId = vo.getScheduleId(); Long scheduleId = vo.getScheduleId();
// 根据排班的id查询出排班的人员详细信息
// List<AttendanceUserGroup> userGroupList = baseMapper.selectList(Wrappers.<AttendanceUserGroup>lambdaQuery().eq(AttendanceUserGroup::getScheduleId, scheduleId)); //根据employeeId查询出用户的详细信息
SysUserVo sysUserVo = sysUserService.selectUserById(vo.getEmployeeId());
vo.setSysUser(sysUserVo);
//根据scheduleId查询出排班的详细信息 //根据scheduleId查询出排班的详细信息
AttendanceArrangement attendanceArrangement = arrangementMapper.selectOne(Wrappers.<AttendanceArrangement>lambdaQuery().eq(AttendanceArrangement::getId, scheduleId)); AttendanceArrangement attendanceArrangement = arrangementMapper.selectOne(Wrappers.<AttendanceArrangement>lambdaQuery().eq(AttendanceArrangement::getId, scheduleId));