考勤按天/按周统计
This commit is contained in:
parent
9fb199404e
commit
3798cb6a63
@ -92,4 +92,11 @@ public class AttendancePunchRecordRespVO {
|
|||||||
@ExcelProperty("创建时间")
|
@ExcelProperty("创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@Schema(description = "考勤组名称")
|
||||||
|
@ExcelProperty("考勤组名称")
|
||||||
|
private String attendanceGroupName;
|
||||||
|
|
||||||
|
@Schema(description = "班次名称")
|
||||||
|
@ExcelProperty("班次名称")
|
||||||
|
private String attendanceGroupShiftName;
|
||||||
}
|
}
|
@ -1,7 +1,5 @@
|
|||||||
package cn.iocoder.yudao.module.system.controller.app.attendance;
|
package cn.iocoder.yudao.module.system.controller.app.attendance;
|
||||||
|
|
||||||
import cn.hutool.json.JSON;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.module.system.controller.app.attendance.dto.AttendancePunchDTO;
|
import cn.iocoder.yudao.module.system.controller.app.attendance.dto.AttendancePunchDTO;
|
||||||
import cn.iocoder.yudao.module.system.controller.app.attendance.dto.AttendancePunchPageDTO;
|
import cn.iocoder.yudao.module.system.controller.app.attendance.dto.AttendancePunchPageDTO;
|
||||||
@ -48,8 +46,8 @@ public class AttendanceController {
|
|||||||
|
|
||||||
@GetMapping("/statisticsByDay")
|
@GetMapping("/statisticsByDay")
|
||||||
@Operation(summary = "统计按天")
|
@Operation(summary = "统计按天")
|
||||||
public CommonResult<Map<String, List<AttendancePunchRecordDO>>> statisticsByDay(@ModelAttribute AttendanceStatisticsByDayDTO dto) {
|
public CommonResult<Map<String, Map<String, List<AttendancePunchRecordDO>>>> statisticsByDay(@ModelAttribute AttendanceStatisticsByDayDTO dto) {
|
||||||
Map<String, List<AttendancePunchRecordDO>> vo = attendanceService.statisticsByDay(dto);
|
Map<String, Map<String, List<AttendancePunchRecordDO>>> vo = attendanceService.statisticsByDay(dto);
|
||||||
return success(vo);
|
return success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,6 @@ public class AttendanceStatisticsByDayDTO {
|
|||||||
|
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||||
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY, timezone = TIME_ZONE_DEFAULT)
|
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY, timezone = TIME_ZONE_DEFAULT)
|
||||||
@Schema(description = "当前查看的时间 (默认当天 按周或者按月 传周/月 开始时间过来即可)")
|
@Schema(description = "当前查看的时间 (默认当天 yyyy-MM-dd)")
|
||||||
private Date time = new Date();
|
private Date time = new Date();
|
||||||
}
|
}
|
||||||
|
@ -40,10 +40,14 @@ public class AttendanceStatisticsVO {
|
|||||||
int totalLateArrivalsNumber = 0;
|
int totalLateArrivalsNumber = 0;
|
||||||
// 迟到总时间
|
// 迟到总时间
|
||||||
long totalLateArrivalsTime = 0L;
|
long totalLateArrivalsTime = 0L;
|
||||||
|
// 迟到总时间中文
|
||||||
|
String totalLateArrivalsTimeStr;
|
||||||
// 早退总次数
|
// 早退总次数
|
||||||
int totalEarlyDeparturesNumber = 0;
|
int totalEarlyDeparturesNumber = 0;
|
||||||
// 早退总时间
|
// 早退总时间
|
||||||
long totalEarlyDeparturesTime = 0L;
|
long totalEarlyDeparturesTime = 0L;
|
||||||
|
// 早退总时间
|
||||||
|
String totalEarlyDeparturesTimeStr;
|
||||||
// 缺卡总次数
|
// 缺卡总次数
|
||||||
int totalMissingCardsNumber = 0;
|
int totalMissingCardsNumber = 0;
|
||||||
// 矿工总天数
|
// 矿工总天数
|
||||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.attendance.groupshiftitem;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
@ -30,6 +31,11 @@ public class AttendanceGroupShiftItemDO extends BaseDO {
|
|||||||
* 班次id
|
* 班次id
|
||||||
*/
|
*/
|
||||||
private Long kqAttendanceGroupShiftId;
|
private Long kqAttendanceGroupShiftId;
|
||||||
|
/**
|
||||||
|
* 班次名称
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String kqAttendanceGroupShiftName;
|
||||||
/**
|
/**
|
||||||
* 级别 从1到~ 排序用
|
* 级别 从1到~ 排序用
|
||||||
*/
|
*/
|
||||||
|
@ -39,10 +39,18 @@ public class AttendancePunchRecordDO extends BaseDO {
|
|||||||
* 考勤组id
|
* 考勤组id
|
||||||
*/
|
*/
|
||||||
private Long attendanceGroupId;
|
private Long attendanceGroupId;
|
||||||
|
/**
|
||||||
|
* 考勤组名称
|
||||||
|
*/
|
||||||
|
private String attendanceGroupName;
|
||||||
/**
|
/**
|
||||||
* 班次id
|
* 班次id
|
||||||
*/
|
*/
|
||||||
private Long attendanceGroupShiftId;
|
private Long attendanceGroupShiftId;
|
||||||
|
/**
|
||||||
|
* 班次名称
|
||||||
|
*/
|
||||||
|
private String attendanceGroupShiftName;
|
||||||
/**
|
/**
|
||||||
* 班次子表id
|
* 班次子表id
|
||||||
*/
|
*/
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.system.dal.mysql.attendance.punchrecord;
|
package cn.iocoder.yudao.module.system.dal.mysql.attendance.punchrecord;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.system.controller.admin.punchrecord.vo.AttendancePunchRecordPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.attendance.punchrecord.AttendancePunchRecordDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.attendance.punchrecord.AttendancePunchRecordDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.punchrecord.vo.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户打卡记录 Mapper
|
* 用户打卡记录 Mapper
|
||||||
|
@ -105,7 +105,9 @@ public class AttendanceStatisticsJob {
|
|||||||
AttendancePunchRecordDO attendancePunchRecordDO = new AttendancePunchRecordDO();
|
AttendancePunchRecordDO attendancePunchRecordDO = new AttendancePunchRecordDO();
|
||||||
attendancePunchRecordDO.setUserId(userId);
|
attendancePunchRecordDO.setUserId(userId);
|
||||||
attendancePunchRecordDO.setAttendanceGroupId(entry.getKey());
|
attendancePunchRecordDO.setAttendanceGroupId(entry.getKey());
|
||||||
|
attendancePunchRecordDO.setAttendanceGroupName(attendanceGroupDO.getGroupName());
|
||||||
attendancePunchRecordDO.setAttendanceGroupShiftId(attendanceOnTheDayDTO.getKqAttendanceGroupShiftId());
|
attendancePunchRecordDO.setAttendanceGroupShiftId(attendanceOnTheDayDTO.getKqAttendanceGroupShiftId());
|
||||||
|
attendancePunchRecordDO.setAttendanceGroupShiftName(attendanceOnTheDayDTO.getKqAttendanceGroupShiftName());
|
||||||
attendancePunchRecordDO.setAttendanceGroupShiftItemId(attendanceOnTheDayDTO.getId());
|
attendancePunchRecordDO.setAttendanceGroupShiftItemId(attendanceOnTheDayDTO.getId());
|
||||||
attendancePunchRecordDO.setType(attendanceGroupDO.getType());
|
attendancePunchRecordDO.setType(attendanceGroupDO.getType());
|
||||||
attendancePunchRecordDO.setPunchType(attendanceGroupDO.getPunchType());
|
attendancePunchRecordDO.setPunchType(attendanceGroupDO.getPunchType());
|
||||||
|
@ -63,7 +63,7 @@ public interface AttendanceService {
|
|||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Map<String, List<AttendancePunchRecordDO>> statisticsByDay(AttendanceStatisticsByDayDTO dto);
|
Map<String, Map<String, List<AttendancePunchRecordDO>>> statisticsByDay(AttendanceStatisticsByDayDTO dto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考勤统计按周期
|
* 考勤统计按周期
|
||||||
|
@ -33,7 +33,6 @@ import cn.iocoder.yudao.module.system.service.attendance.punch.dto.AttendanceOnT
|
|||||||
import cn.iocoder.yudao.module.system.service.attendance.punchrecord.AttendancePunchRecordService;
|
import cn.iocoder.yudao.module.system.service.attendance.punchrecord.AttendancePunchRecordService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import lombok.Data;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
@ -45,10 +44,7 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -367,6 +363,7 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|||||||
AttendanceOnTheDayDTO dto = new AttendanceOnTheDayDTO();
|
AttendanceOnTheDayDTO dto = new AttendanceOnTheDayDTO();
|
||||||
dto.setId(attendanceGroupShiftItemDO.getId());
|
dto.setId(attendanceGroupShiftItemDO.getId());
|
||||||
dto.setKqAttendanceGroupShiftId(attendanceGroupShiftItemDO.getKqAttendanceGroupShiftId());
|
dto.setKqAttendanceGroupShiftId(attendanceGroupShiftItemDO.getKqAttendanceGroupShiftId());
|
||||||
|
dto.setKqAttendanceGroupShiftName(attendanceGroupShiftItemDO.getKqAttendanceGroupShiftName());
|
||||||
dto.setTime(attendanceGroupShiftItemDO.getBeginTime());
|
dto.setTime(attendanceGroupShiftItemDO.getBeginTime());
|
||||||
dto.setPunchTime(StringUtils.EMPTY);
|
dto.setPunchTime(StringUtils.EMPTY);
|
||||||
dto.setType(UP_WORK);
|
dto.setType(UP_WORK);
|
||||||
@ -380,6 +377,7 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|||||||
dto = new AttendanceOnTheDayDTO();
|
dto = new AttendanceOnTheDayDTO();
|
||||||
dto.setId(attendanceGroupShiftItemDO.getId());
|
dto.setId(attendanceGroupShiftItemDO.getId());
|
||||||
dto.setKqAttendanceGroupShiftId(attendanceGroupShiftItemDO.getKqAttendanceGroupShiftId());
|
dto.setKqAttendanceGroupShiftId(attendanceGroupShiftItemDO.getKqAttendanceGroupShiftId());
|
||||||
|
dto.setKqAttendanceGroupShiftName(attendanceGroupShiftItemDO.getKqAttendanceGroupShiftName());
|
||||||
dto.setTime(attendanceGroupShiftItemDO.getEndTime());
|
dto.setTime(attendanceGroupShiftItemDO.getEndTime());
|
||||||
dto.setPunchTime(StringUtils.EMPTY);
|
dto.setPunchTime(StringUtils.EMPTY);
|
||||||
dto.setType(DOWN_WORK);
|
dto.setType(DOWN_WORK);
|
||||||
@ -394,7 +392,7 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, List<AttendancePunchRecordDO>> statisticsByDay(AttendanceStatisticsByDayDTO dto) {
|
public Map<String, Map<String, List<AttendancePunchRecordDO>>> statisticsByDay(AttendanceStatisticsByDayDTO dto) {
|
||||||
//获取当前天 所在月份所有日期
|
//获取当前天 所在月份所有日期
|
||||||
List<String> dateList = DateUtils.betweenDayList(DateUtil.beginOfMonth(dto.getTime()),
|
List<String> dateList = DateUtils.betweenDayList(DateUtil.beginOfMonth(dto.getTime()),
|
||||||
DateUtil.endOfMonth(dto.getTime()));
|
DateUtil.endOfMonth(dto.getTime()));
|
||||||
@ -403,8 +401,14 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|||||||
.in(AttendancePunchRecordDO::getDayTime, dateList)
|
.in(AttendancePunchRecordDO::getDayTime, dateList)
|
||||||
.orderByAsc(AttendancePunchRecordDO::getWorkType)
|
.orderByAsc(AttendancePunchRecordDO::getWorkType)
|
||||||
.orderByAsc(AttendancePunchRecordDO::getLevel));
|
.orderByAsc(AttendancePunchRecordDO::getLevel));
|
||||||
// list.stream().collect(Collectors.groupingBy(AttendancePunchRecordDO::getDayTime));
|
Map<String, Map<String, List<AttendancePunchRecordDO>>> map = new HashMap<>();
|
||||||
return list.stream().collect(Collectors.groupingBy(AttendancePunchRecordDO::getDayTime));
|
|
||||||
|
Map<String, List<AttendancePunchRecordDO>> collect = list.stream().collect(Collectors.groupingBy(AttendancePunchRecordDO::getDayTime));
|
||||||
|
for (Map.Entry<String, List<AttendancePunchRecordDO>> entry : collect.entrySet()) {
|
||||||
|
Map<String, List<AttendancePunchRecordDO>> itemMap = entry.getValue().stream().collect(Collectors.groupingBy(a -> a.getAttendanceGroupId() + "_" + a.getAttendanceGroupShiftId()));
|
||||||
|
map.put(entry.getKey(), itemMap);
|
||||||
|
}
|
||||||
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -474,9 +478,10 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|||||||
}
|
}
|
||||||
// -- 休息计算
|
// -- 休息计算
|
||||||
List<AttendancePunchStatisticsVO> restDays = this.calculateRestDayList(dateList, map.keySet().stream().distinct().collect(Collectors.toList()), calculateNum);
|
List<AttendancePunchStatisticsVO> restDays = this.calculateRestDayList(dateList, map.keySet().stream().distinct().collect(Collectors.toList()), calculateNum);
|
||||||
|
|
||||||
calculateNum.setAverageWorkingHours(calculateNum.getTotalAttendanceDays() == 0 ? 0 : calculateNum.getTotalWorkingHours() / calculateNum.getTotalAttendanceDays());
|
calculateNum.setAverageWorkingHours(calculateNum.getTotalAttendanceDays() == 0 ? 0 : calculateNum.getTotalWorkingHours() / calculateNum.getTotalAttendanceDays());
|
||||||
calculateNum.setAverageWorkingHoursStr(DateUtil.formatBetween(calculateNum.getAverageWorkingHours(), BetweenFormatter.Level.MINUTE));
|
calculateNum.setAverageWorkingHoursStr(DateUtil.formatBetween(calculateNum.getAverageWorkingHours(), BetweenFormatter.Level.MINUTE));
|
||||||
|
calculateNum.setTotalLateArrivalsTimeStr(DateUtil.formatBetween(calculateNum.getTotalLateArrivalsTime(), BetweenFormatter.Level.MINUTE));
|
||||||
|
calculateNum.setTotalEarlyDeparturesTimeStr(DateUtil.formatBetween(calculateNum.getTotalEarlyDeparturesTime(), BetweenFormatter.Level.MINUTE));
|
||||||
vo.setAttendanceDays(attendanceDays);
|
vo.setAttendanceDays(attendanceDays);
|
||||||
vo.setAverageWorkingHours(averageWorkingHours);
|
vo.setAverageWorkingHours(averageWorkingHours);
|
||||||
vo.setBeLateNumber(beLateNumber);
|
vo.setBeLateNumber(beLateNumber);
|
||||||
@ -721,7 +726,6 @@ public class AttendanceServiceImpl implements AttendanceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,6 +155,7 @@ public class AttendanceGroupServiceImpl implements AttendanceGroupService {
|
|||||||
attendancePunchRecordDO.setUserId(userId);
|
attendancePunchRecordDO.setUserId(userId);
|
||||||
attendancePunchRecordDO.setAttendanceGroupId(entry.getKey());
|
attendancePunchRecordDO.setAttendanceGroupId(entry.getKey());
|
||||||
attendancePunchRecordDO.setAttendanceGroupShiftId(attendanceOnTheDayDTO.getKqAttendanceGroupShiftId());
|
attendancePunchRecordDO.setAttendanceGroupShiftId(attendanceOnTheDayDTO.getKqAttendanceGroupShiftId());
|
||||||
|
attendancePunchRecordDO.setAttendanceGroupShiftName(attendanceOnTheDayDTO.getKqAttendanceGroupShiftName());
|
||||||
attendancePunchRecordDO.setAttendanceGroupShiftItemId(attendanceOnTheDayDTO.getId());
|
attendancePunchRecordDO.setAttendanceGroupShiftItemId(attendanceOnTheDayDTO.getId());
|
||||||
attendancePunchRecordDO.setType(attendanceGroupDO.getType());
|
attendancePunchRecordDO.setType(attendanceGroupDO.getType());
|
||||||
attendancePunchRecordDO.setPunchType(attendanceGroupDO.getPunchType());
|
attendancePunchRecordDO.setPunchType(attendanceGroupDO.getPunchType());
|
||||||
|
@ -4,7 +4,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.groupshiftitem.vo.AttendanceGroupShiftItemPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.groupshiftitem.vo.AttendanceGroupShiftItemPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.groupshiftitem.vo.AttendanceGroupShiftItemSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.groupshiftitem.vo.AttendanceGroupShiftItemSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.attendance.groupshift.AttendanceGroupShiftDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.attendance.groupshiftitem.AttendanceGroupShiftItemDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.attendance.groupshiftitem.AttendanceGroupShiftItemDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.attendance.groupshift.AttendanceGroupShiftMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.attendance.groupshiftitem.AttendanceGroupShiftItemMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.attendance.groupshiftitem.AttendanceGroupShiftItemMapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -12,6 +14,9 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考勤组班次子表 Service 实现类
|
* 考勤组班次子表 Service 实现类
|
||||||
@ -24,6 +29,8 @@ public class AttendanceGroupShiftItemServiceImpl implements AttendanceGroupShift
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AttendanceGroupShiftItemMapper attendanceGroupShiftItemMapper;
|
private AttendanceGroupShiftItemMapper attendanceGroupShiftItemMapper;
|
||||||
|
@Resource
|
||||||
|
private AttendanceGroupShiftMapper attendanceGroupShiftMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createAttendanceGroupShiftItem(AttendanceGroupShiftItemSaveReqVO createReqVO) {
|
public Long createAttendanceGroupShiftItem(AttendanceGroupShiftItemSaveReqVO createReqVO) {
|
||||||
@ -67,9 +74,15 @@ public class AttendanceGroupShiftItemServiceImpl implements AttendanceGroupShift
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AttendanceGroupShiftItemDO> getGroupShiftItemListByShiftIds(List<Long> attendanceGroupShiftIds) {
|
public List<AttendanceGroupShiftItemDO> getGroupShiftItemListByShiftIds(List<Long> attendanceGroupShiftIds) {
|
||||||
return attendanceGroupShiftItemMapper.selectList(new LambdaQueryWrapper<AttendanceGroupShiftItemDO>()
|
List<AttendanceGroupShiftItemDO> dos = attendanceGroupShiftItemMapper.selectList(new LambdaQueryWrapper<AttendanceGroupShiftItemDO>()
|
||||||
.in(AttendanceGroupShiftItemDO::getKqAttendanceGroupShiftId, attendanceGroupShiftIds)
|
.in(AttendanceGroupShiftItemDO::getKqAttendanceGroupShiftId, attendanceGroupShiftIds)
|
||||||
.orderByAsc(AttendanceGroupShiftItemDO::getLevel));
|
.orderByAsc(AttendanceGroupShiftItemDO::getLevel));
|
||||||
|
List<AttendanceGroupShiftDO> groupShiftDOS = attendanceGroupShiftMapper.selectBatchIds(attendanceGroupShiftIds);
|
||||||
|
Map<Long, AttendanceGroupShiftDO> map = groupShiftDOS.stream().collect(Collectors.toMap(AttendanceGroupShiftDO::getId, Function.identity()));
|
||||||
|
for (AttendanceGroupShiftItemDO item : dos) {
|
||||||
|
item.setKqAttendanceGroupShiftName(map.get(item.getKqAttendanceGroupShiftId()) == null ? "" : map.get(item.getKqAttendanceGroupShiftId()).getName());
|
||||||
|
}
|
||||||
|
return dos;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -23,6 +23,9 @@ public class AttendanceOnTheDayDTO {
|
|||||||
@Schema(description = "班次id")
|
@Schema(description = "班次id")
|
||||||
private Long kqAttendanceGroupShiftId;
|
private Long kqAttendanceGroupShiftId;
|
||||||
|
|
||||||
|
@Schema(description = "班次名称")
|
||||||
|
private String kqAttendanceGroupShiftName;
|
||||||
|
|
||||||
@Schema(description = "类型 0上班 1下班")
|
@Schema(description = "类型 0上班 1下班")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user