考勤组bug修改

This commit is contained in:
dy 2025-07-23 16:20:25 +08:00
parent 350b8f511c
commit 5da0665092
3 changed files with 38 additions and 39 deletions

View File

@ -9,6 +9,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.property.domain.AttendanceWeekSet;
import java.util.Date;
import java.util.List;
@ -51,7 +52,8 @@ public class AttendanceGroupBo extends BaseEntity {
private Long shiftId;
List<Integer> weekList;
List<Integer> numList;
List<AttendanceWeekSet> weekSetList;
//前端传必须打卡还是无需打卡
private Integer mustNoCheck;

View File

@ -1,32 +1,24 @@
package org.dromara.property.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.druid.sql.ast.statement.SQLIfStatement;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.property.domain.*;
import org.dromara.property.domain.constant.StatusConstant;
import org.dromara.property.domain.vo.AttendanceWeekSetVo;
import org.dromara.property.mapper.*;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
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.mapper.*;
import org.dromara.property.service.IAttendanceArrangementService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;

View File

@ -154,21 +154,26 @@ public class AttendanceGroupServiceImpl implements IAttendanceGroupService {
//2.固定班制
if (Objects.equals(add.getAttendanceType(), FIXEDSCHEDULE)) {
//2.1固定班制向周期表插入数据
//拿到考勤组的id,遍历weekList
for (Integer week : bo.getWeekList()) {
//向工作表中插入数据
AttendanceWeekSet weekSet = new AttendanceWeekSet();
weekSet.setGroupId(add.getId());
weekSet.setDayOfWeek(week);
}
//通过考勤组的id拿到周期表的所有关联id
List<AttendanceWeekSet> weekSets = weekSetMapper.selectList(Wrappers.<AttendanceWeekSet>lambdaQuery().eq(AttendanceWeekSet::getGroupId, add.getId()));
//2.2遍历周期表向班次和周设置表的中间表插入数据
for (AttendanceWeekSet weekSet : weekSets) {
//判断前端传进来有几条数据
bo.getWeekSetList().forEach(
weekSet -> {
//向周期表插入数据
AttendanceWeekSet attendanceWeekSet = new AttendanceWeekSet();
BeanUtils.copyProperties(weekSet, attendanceWeekSet);
attendanceWeekSet.setGroupId(add.getId());
attendanceWeekSet.setDayOfWeek(weekSet.getDayOfWeek());
weekSetMapper.insert(attendanceWeekSet);
//查询出周期表的id
Long weekSetId = attendanceWeekSet.getId();
//向中间表插入周期的id
AttendanceWeeksetShift attendanceWeeksetShift = new AttendanceWeeksetShift();
attendanceWeeksetShift.setWeekSetId(weekSet.getId());
attendanceWeeksetShift.setWeekSetId(weekSetId);
attendanceWeeksetShift.setShiftId(bo.getShiftId());
attendanceWeeksetShiftMapper.insert(attendanceWeeksetShift);
}
);
//todo: 法定节假日自动排休
//2.3.新增打卡日期表
@ -188,17 +193,17 @@ public class AttendanceGroupServiceImpl implements IAttendanceGroupService {
//2.2排班制向天数表中插入数据
AttendanceScheduleCycle attendanceScheduleCycle = new AttendanceScheduleCycle();
//循环向周期表中插入数据
for (Integer week : bo.getWeekList()) {
for (Integer week : bo.getNumList()) {
attendanceScheduleCycle.setGroupId(add.getId());
attendanceScheduleCycle.setDayNumber(week);
}
//通过考勤组id拿到日期表的所有关联id
List<AttendanceScheduleCycle> scheduleCycles = attendanceScheduleCycleMapper.selectList(Wrappers.<AttendanceScheduleCycle>lambdaQuery().eq(AttendanceScheduleCycle::getGroupId, add.getId()));
//2.3遍历日期表向班次和周设置表的中间表插入数据
for (AttendanceScheduleCycle scheduleCycle : scheduleCycles) {
attendanceScheduleCycleMapper.insert(attendanceScheduleCycle);
//获取周期表的id
Long scheduleId = attendanceScheduleCycle.getId();
//向中间表插入周期的id
AttendanceWeeksetShift attendanceWeeksetShift = new AttendanceWeeksetShift();
attendanceWeeksetShift.setScheduleId(scheduleCycle.getId());
attendanceWeeksetShift.setWeekSetId(scheduleId);
attendanceWeeksetShift.setShiftId(bo.getShiftId());
attendanceWeeksetShiftMapper.insert(attendanceWeeksetShift);
}
}