From 5da06650920f7ad137d5ddd3d94263a615ccfd6a Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Wed, 23 Jul 2025 16:20:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E7=BB=84bug=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../property/domain/bo/AttendanceGroupBo.java | 4 +- .../AttendanceArrangementServiceImpl.java | 24 +++------ .../impl/AttendanceGroupServiceImpl.java | 49 ++++++++++--------- 3 files changed, 38 insertions(+), 39 deletions(-) diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/AttendanceGroupBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/AttendanceGroupBo.java index 6892524..e4d67b5 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/AttendanceGroupBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/AttendanceGroupBo.java @@ -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 weekList; + List numList; + List weekSetList; //前端传必须打卡还是无需打卡 private Integer mustNoCheck; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java index 1a2543d..5181dec 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceArrangementServiceImpl.java @@ -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; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceGroupServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceGroupServiceImpl.java index ba0b113..c5b1c5f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceGroupServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceGroupServiceImpl.java @@ -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 weekSets = weekSetMapper.selectList(Wrappers.lambdaQuery().eq(AttendanceWeekSet::getGroupId, add.getId())); - //2.2遍历周期表,向班次和周设置表的中间表插入数据 - for (AttendanceWeekSet weekSet : weekSets) { - AttendanceWeeksetShift attendanceWeeksetShift = new AttendanceWeeksetShift(); - attendanceWeeksetShift.setWeekSetId(weekSet.getId()); - attendanceWeeksetShift.setShiftId(bo.getShiftId()); - } + + //判断前端传进来有几条数据 + 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(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 scheduleCycles = attendanceScheduleCycleMapper.selectList(Wrappers.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); } }