考勤组bug修改
This commit is contained in:
parent
350b8f511c
commit
5da0665092
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user