考勤组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.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
import org.dromara.property.domain.AttendanceWeekSet;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -51,7 +52,8 @@ public class AttendanceGroupBo extends BaseEntity {
|
|||||||
private Long shiftId;
|
private Long shiftId;
|
||||||
|
|
||||||
|
|
||||||
List<Integer> weekList;
|
List<Integer> numList;
|
||||||
|
List<AttendanceWeekSet> weekSetList;
|
||||||
|
|
||||||
//前端传必须打卡还是无需打卡
|
//前端传必须打卡还是无需打卡
|
||||||
private Integer mustNoCheck;
|
private Integer mustNoCheck;
|
||||||
|
@ -1,32 +1,24 @@
|
|||||||
package org.dromara.property.service.impl;
|
package org.dromara.property.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateTime;
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
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.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.*;
|
||||||
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.bo.AttendanceArrangementBo;
|
||||||
|
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.service.IAttendanceArrangementService;
|
import org.dromara.property.service.IAttendanceArrangementService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.LocalTime;
|
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -154,21 +154,26 @@ public class AttendanceGroupServiceImpl implements IAttendanceGroupService {
|
|||||||
//2.固定班制
|
//2.固定班制
|
||||||
if (Objects.equals(add.getAttendanceType(), FIXEDSCHEDULE)) {
|
if (Objects.equals(add.getAttendanceType(), FIXEDSCHEDULE)) {
|
||||||
//2.1固定班制,向周期表插入数据
|
//2.1固定班制,向周期表插入数据
|
||||||
//拿到考勤组的id,遍历weekList
|
|
||||||
for (Integer week : bo.getWeekList()) {
|
//判断前端传进来有几条数据
|
||||||
//向工作表中插入数据
|
bo.getWeekSetList().forEach(
|
||||||
AttendanceWeekSet weekSet = new AttendanceWeekSet();
|
weekSet -> {
|
||||||
weekSet.setGroupId(add.getId());
|
//向周期表插入数据
|
||||||
weekSet.setDayOfWeek(week);
|
AttendanceWeekSet attendanceWeekSet = new AttendanceWeekSet();
|
||||||
}
|
BeanUtils.copyProperties(weekSet, attendanceWeekSet);
|
||||||
//通过考勤组的id拿到周期表的所有关联id
|
attendanceWeekSet.setGroupId(add.getId());
|
||||||
List<AttendanceWeekSet> weekSets = weekSetMapper.selectList(Wrappers.<AttendanceWeekSet>lambdaQuery().eq(AttendanceWeekSet::getGroupId, add.getId()));
|
attendanceWeekSet.setDayOfWeek(weekSet.getDayOfWeek());
|
||||||
//2.2遍历周期表,向班次和周设置表的中间表插入数据
|
weekSetMapper.insert(attendanceWeekSet);
|
||||||
for (AttendanceWeekSet weekSet : weekSets) {
|
//查询出周期表的id
|
||||||
|
Long weekSetId = attendanceWeekSet.getId();
|
||||||
|
//向中间表插入周期的id
|
||||||
AttendanceWeeksetShift attendanceWeeksetShift = new AttendanceWeeksetShift();
|
AttendanceWeeksetShift attendanceWeeksetShift = new AttendanceWeeksetShift();
|
||||||
attendanceWeeksetShift.setWeekSetId(weekSet.getId());
|
attendanceWeeksetShift.setWeekSetId(weekSetId);
|
||||||
attendanceWeeksetShift.setShiftId(bo.getShiftId());
|
attendanceWeeksetShift.setShiftId(bo.getShiftId());
|
||||||
|
attendanceWeeksetShiftMapper.insert(attendanceWeeksetShift);
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
//todo: 法定节假日自动排休
|
//todo: 法定节假日自动排休
|
||||||
//2.3.新增打卡日期表
|
//2.3.新增打卡日期表
|
||||||
@ -188,17 +193,17 @@ public class AttendanceGroupServiceImpl implements IAttendanceGroupService {
|
|||||||
//2.2排班制,向天数表中插入数据
|
//2.2排班制,向天数表中插入数据
|
||||||
AttendanceScheduleCycle attendanceScheduleCycle = new AttendanceScheduleCycle();
|
AttendanceScheduleCycle attendanceScheduleCycle = new AttendanceScheduleCycle();
|
||||||
//循环向周期表中插入数据
|
//循环向周期表中插入数据
|
||||||
for (Integer week : bo.getWeekList()) {
|
for (Integer week : bo.getNumList()) {
|
||||||
attendanceScheduleCycle.setGroupId(add.getId());
|
attendanceScheduleCycle.setGroupId(add.getId());
|
||||||
attendanceScheduleCycle.setDayNumber(week);
|
attendanceScheduleCycle.setDayNumber(week);
|
||||||
}
|
attendanceScheduleCycleMapper.insert(attendanceScheduleCycle);
|
||||||
//通过考勤组id拿到日期表的所有关联id
|
//获取周期表的id
|
||||||
List<AttendanceScheduleCycle> scheduleCycles = attendanceScheduleCycleMapper.selectList(Wrappers.<AttendanceScheduleCycle>lambdaQuery().eq(AttendanceScheduleCycle::getGroupId, add.getId()));
|
Long scheduleId = attendanceScheduleCycle.getId();
|
||||||
//2.3遍历日期表,向班次和周设置表的中间表插入数据
|
//向中间表插入周期的id
|
||||||
for (AttendanceScheduleCycle scheduleCycle : scheduleCycles) {
|
|
||||||
AttendanceWeeksetShift attendanceWeeksetShift = new AttendanceWeeksetShift();
|
AttendanceWeeksetShift attendanceWeeksetShift = new AttendanceWeeksetShift();
|
||||||
attendanceWeeksetShift.setScheduleId(scheduleCycle.getId());
|
attendanceWeeksetShift.setWeekSetId(scheduleId);
|
||||||
attendanceWeeksetShift.setShiftId(bo.getShiftId());
|
attendanceWeeksetShift.setShiftId(bo.getShiftId());
|
||||||
|
attendanceWeeksetShiftMapper.insert(attendanceWeeksetShift);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user