This commit is contained in:
zt
2025-09-04 20:17:25 +08:00
parent ae3738c098
commit 8e9b7c9b14
12 changed files with 373 additions and 11 deletions

View File

@ -310,6 +310,7 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
// 根据文件类型和文件名判断是否存在文件,存在则版本号往上增 // 根据文件类型和文件名判断是否存在文件,存在则版本号往上增
List<DesVolumeFile> existingFiles = baseMapper.selectList(new LambdaQueryWrapper<DesVolumeFile>() List<DesVolumeFile> existingFiles = baseMapper.selectList(new LambdaQueryWrapper<DesVolumeFile>()
.eq(DesVolumeFile::getType, type) .eq(DesVolumeFile::getType, type)
.eq(DesVolumeFile::getVolumeCatalogId, file.getVolumeCatalogId())
.eq(DesVolumeFile::getFileName, fileName) .eq(DesVolumeFile::getFileName, fileName)
.orderByDesc(DesVolumeFile::getVersion)); .orderByDesc(DesVolumeFile::getVersion));
@ -327,10 +328,11 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
// 先查找对应的蓝图文件最新版本 // 先查找对应的蓝图文件最新版本
List<DesVolumeFile> blueprintFiles = baseMapper.selectList(new LambdaQueryWrapper<DesVolumeFile>() List<DesVolumeFile> blueprintFiles = baseMapper.selectList(new LambdaQueryWrapper<DesVolumeFile>()
.eq(DesVolumeFile::getType, DesVolumeFile.BLUEPRINT) // 蓝图类型 .eq(DesVolumeFile::getType, DesVolumeFile.BLUEPRINT) // 蓝图类型
.eq(DesVolumeFile::getVolumeCatalogId, file.getVolumeCatalogId())
// .eq(DesVolumeFile::getFileName, fileName) // .eq(DesVolumeFile::getFileName, fileName)
.orderByDesc(DesVolumeFile::getVersion)); .orderByDesc(DesVolumeFile::getVersion));
String blueprintVersion = "1.0"; // 默认蓝图版本 String blueprintVersion = "0.0"; // 默认蓝图版本
if (CollectionUtil.isNotEmpty(blueprintFiles)) { if (CollectionUtil.isNotEmpty(blueprintFiles)) {
blueprintVersion = blueprintFiles.getFirst().getVersion(); blueprintVersion = blueprintFiles.getFirst().getVersion();
} }

View File

@ -11,11 +11,14 @@ import org.dromara.common.web.core.BaseController;
import org.dromara.contractor.service.ISubConstructionUserService; import org.dromara.contractor.service.ISubConstructionUserService;
import org.dromara.project.domain.BusProjectPunchrange; import org.dromara.project.domain.BusProjectPunchrange;
import org.dromara.project.domain.dto.attendance.AttendanceCountDto; import org.dromara.project.domain.dto.attendance.AttendanceCountDto;
import org.dromara.project.domain.dto.attendance.AttendanceUserCountDto;
import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq; import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq;
import org.dromara.project.domain.vo.BusAttendanceRuleVo; import org.dromara.project.domain.vo.BusAttendanceRuleVo;
import org.dromara.project.domain.vo.BusAttendanceVo; import org.dromara.project.domain.vo.BusAttendanceVo;
import org.dromara.project.domain.vo.BusMonthAttendanceVo; import org.dromara.project.domain.vo.BusMonthAttendanceVo;
import org.dromara.project.domain.vo.attendance.AttendanceCountVo; import org.dromara.project.domain.vo.attendance.AttendanceCountVo;
import org.dromara.project.domain.vo.attendance.AttendanceUserCountVo;
import org.dromara.project.domain.vo.attendance.AttendanceUserDataVo;
import org.dromara.project.domain.vo.attendance.AttendanceUserVo; import org.dromara.project.domain.vo.attendance.AttendanceUserVo;
import org.dromara.project.service.IBusAttendanceRuleService; import org.dromara.project.service.IBusAttendanceRuleService;
import org.dromara.project.service.IBusAttendanceService; import org.dromara.project.service.IBusAttendanceService;
@ -123,7 +126,7 @@ public class BusAttendanceAppController extends BaseController {
/** /**
* 统计指定日期的打卡人员 * 统计指定日期的打卡人员数量
*/ */
@GetMapping("/count") @GetMapping("/count")
public R<AttendanceCountVo> getAttendanceCount(AttendanceCountDto dto){ public R<AttendanceCountVo> getAttendanceCount(AttendanceCountDto dto){
@ -131,7 +134,6 @@ public class BusAttendanceAppController extends BaseController {
} }
/** /**
* 指定日期的打卡人员列表 * 指定日期的打卡人员列表
*/ */
@ -140,4 +142,41 @@ public class BusAttendanceAppController extends BaseController {
return attendanceService.getAttendanceUser(dto,pageQuery); return attendanceService.getAttendanceUser(dto,pageQuery);
} }
/**
* 指定月份的打卡人员考勤统计
*/
@GetMapping("/getAttendanceUserCount")
public R<AttendanceUserCountVo> getAttendanceUserCount(AttendanceUserCountDto dto){
return R.ok(attendanceService.getAttendanceUserCount(dto));
}
/**
* 指定月份的打卡人员考勤数据
*/
@GetMapping("/getAttendanceUserData")
public R<AttendanceUserDataVo> getAttendanceUserData(AttendanceUserCountDto dto){
return R.ok(attendanceService.getAttendanceUserData(dto));
}
} }

View File

@ -0,0 +1,11 @@
package org.dromara.project.domain.dto.attendance;
import lombok.Data;
@Data
public class AttendanceUserCountDto {
private Long projectId;
private String month;
private Long userId;
}

View File

@ -58,4 +58,9 @@ public class BusReissueCardAddReq implements Serializable {
* 补卡申请时间 * 补卡申请时间
*/ */
private LocalDateTime userTime; private LocalDateTime userTime;
/**
* 补卡类型1上班 2下班
*/
private String reissueCardType;
} }

View File

@ -0,0 +1,27 @@
package org.dromara.project.domain.vo.attendance;
import lombok.Data;
@Data
public class AttendanceUserCountVo {
/**
* 出勤天数
*/
private Integer workNum;
/**
* 迟到次数
*/
private Integer lateNum;
/**
* 早退次数
*/
private Integer earlyNum;
/**
* 缺卡次数
*/
private Integer absentNum;
}

View File

@ -0,0 +1,33 @@
package org.dromara.project.domain.vo.attendance;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
public class AttendanceUserDataDetailVo {
/**
* 打卡时间
*/
private LocalDate clockDate;
/**
* 星期几
*/
private Integer week;
/**
* 打卡时间
*/
private LocalDateTime clockTime;
/**
* 迟到或早退的分钟
*/
private Integer minuteCount;
}

View File

@ -0,0 +1,29 @@
package org.dromara.project.domain.vo.attendance;
import lombok.Data;
import java.util.List;
@Data
public class AttendanceUserDataVo {
/**
* 出勤天数
*/
private List<AttendanceUserDataDetailVo> work;
/**
* 迟到
*/
private List<AttendanceUserDataDetailVo> late;
/**
* 早退
*/
private List<AttendanceUserDataDetailVo> early;
/**
* 缺卡
*/
private List<AttendanceUserDataDetailVo> absent;
}

View File

@ -5,6 +5,7 @@ import lombok.Data;
@Data @Data
public class AttendanceUserVo { public class AttendanceUserVo {
private Long userId;
/** /**
* 用户昵称 * 用户昵称
*/ */
@ -13,7 +14,7 @@ public class AttendanceUserVo {
/** /**
* 用户头像 * 用户头像
*/ */
private Long avatar; private String avatar;
/** /**
* 工种(字典type_of_work) * 工种(字典type_of_work)

View File

@ -71,6 +71,11 @@ public class BusReissueCardVo implements Serializable {
*/ */
private Long projectId; private Long projectId;
/**
* 项目名
*/
private String projectName;
/** /**
* 班组长id * 班组长id
*/ */
@ -141,4 +146,14 @@ public class BusReissueCardVo implements Serializable {
*/ */
private String status; private String status;
/**
* 创建时间
*/
private Date createTime;
/**
* 头像
*/
private String avatar;
} }

View File

@ -2,6 +2,7 @@ package org.dromara.project.service;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.dromara.project.domain.dto.attendance.AttendanceCountDto; import org.dromara.project.domain.dto.attendance.AttendanceCountDto;
import org.dromara.project.domain.dto.attendance.AttendanceUserCountDto;
import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq; import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq;
import org.dromara.project.domain.vo.BusAttendanceVo; import org.dromara.project.domain.vo.BusAttendanceVo;
import org.dromara.project.domain.bo.BusAttendanceBo; import org.dromara.project.domain.bo.BusAttendanceBo;
@ -12,6 +13,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.project.domain.vo.BusMonthAttendanceVo; import org.dromara.project.domain.vo.BusMonthAttendanceVo;
import org.dromara.project.domain.vo.attendance.AttendanceCountVo; import org.dromara.project.domain.vo.attendance.AttendanceCountVo;
import org.dromara.project.domain.vo.attendance.AttendanceUserCountVo;
import org.dromara.project.domain.vo.attendance.AttendanceUserDataVo;
import org.dromara.project.domain.vo.attendance.AttendanceUserVo; import org.dromara.project.domain.vo.attendance.AttendanceUserVo;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -137,4 +140,15 @@ public interface IBusAttendanceService extends IService<BusAttendance>{
* 指定日期的打卡人员列表 * 指定日期的打卡人员列表
*/ */
TableDataInfo<AttendanceUserVo> getAttendanceUser(AttendanceCountDto dto, PageQuery pageQuery); TableDataInfo<AttendanceUserVo> getAttendanceUser(AttendanceCountDto dto, PageQuery pageQuery);
/**
* 指定月份的打卡人员考勤统计
*/
AttendanceUserCountVo getAttendanceUserCount(AttendanceUserCountDto dto);
/**
* 指定月份的打卡人员考勤数据
*/
AttendanceUserDataVo getAttendanceUserData(AttendanceUserCountDto dto);
} }

View File

@ -2,6 +2,7 @@ package org.dromara.project.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.constant.HttpStatus;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
@ -21,22 +23,25 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.utils.JSTUtil; import org.dromara.common.utils.JSTUtil;
import org.dromara.contractor.domain.SubConstructionUser; import org.dromara.contractor.domain.SubConstructionUser;
import org.dromara.contractor.domain.vo.constructionuser.SubConstructionUserVo;
import org.dromara.contractor.service.ISubConstructionUserService; import org.dromara.contractor.service.ISubConstructionUserService;
import org.dromara.project.domain.*; import org.dromara.project.domain.*;
import org.dromara.project.domain.bo.BusAttendanceBo; import org.dromara.project.domain.bo.BusAttendanceBo;
import org.dromara.project.domain.dto.attendance.AttendanceCountDto; import org.dromara.project.domain.dto.attendance.AttendanceCountDto;
import org.dromara.project.domain.dto.attendance.AttendanceUserCountDto;
import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq; import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq;
import org.dromara.project.domain.enums.BusAttendanceClockStatusEnum; import org.dromara.project.domain.enums.BusAttendanceClockStatusEnum;
import org.dromara.project.domain.enums.BusAttendanceCommuterEnum; import org.dromara.project.domain.enums.BusAttendanceCommuterEnum;
import org.dromara.project.domain.vo.BusAttendanceRuleVo; import org.dromara.project.domain.vo.BusAttendanceRuleVo;
import org.dromara.project.domain.vo.BusAttendanceVo; import org.dromara.project.domain.vo.BusAttendanceVo;
import org.dromara.project.domain.vo.BusMonthAttendanceVo; import org.dromara.project.domain.vo.BusMonthAttendanceVo;
import org.dromara.project.domain.vo.attendance.AttendanceCountVo; import org.dromara.project.domain.vo.attendance.*;
import org.dromara.project.domain.vo.attendance.AttendanceUserVo;
import org.dromara.project.mapper.BusAttendanceMapper; import org.dromara.project.mapper.BusAttendanceMapper;
import org.dromara.project.service.*; import org.dromara.project.service.*;
import org.dromara.system.domain.vo.SysOssVo; import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysOssService; import org.dromara.system.service.ISysOssService;
import org.dromara.system.service.ISysUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -85,6 +90,8 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
private final IBusLeaveService leaveService; private final IBusLeaveService leaveService;
private final ISysUserService userService;
// 出勤状态(正常、迟到、早退) // 出勤状态(正常、迟到、早退)
private static final Set<String> ATTENDANCE_STATUS = new HashSet<>(Arrays.asList(BusAttendanceClockStatusEnum.NORMAL.getValue(), private static final Set<String> ATTENDANCE_STATUS = new HashSet<>(Arrays.asList(BusAttendanceClockStatusEnum.NORMAL.getValue(),
BusAttendanceClockStatusEnum.LATE.getValue(), BusAttendanceClockStatusEnum.LEAVEEARLY.getValue())); BusAttendanceClockStatusEnum.LATE.getValue(), BusAttendanceClockStatusEnum.LEAVEEARLY.getValue()));
@ -577,12 +584,167 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
@Override @Override
public TableDataInfo<AttendanceUserVo> getAttendanceUser(AttendanceCountDto dto, PageQuery pageQuery) { public TableDataInfo<AttendanceUserVo> getAttendanceUser(AttendanceCountDto dto, PageQuery pageQuery) {
//查询今天打卡人员
// constructionUserService.queryPageList(dto.getProjectId()); List<BusAttendance> attendanceList = baseMapper.selectList(Wrappers.<BusAttendance>lambdaQuery()
.eq(BusAttendance::getProjectId, dto.getProjectId())
.in(BusAttendance::getClockStatus,Arrays.asList("1","2","3","5","7"))
.eq(BusAttendance::getClockDate, dto.getDate())
);
List<Long> attendanceUserIds = attendanceList.stream().map(BusAttendance::getUserId).toList();
LambdaQueryWrapper<SubConstructionUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SubConstructionUser::getProjectId, dto.getProjectId());
wrapper.in("1".equals(dto.getClockStatus()),SubConstructionUser::getId,attendanceUserIds);
wrapper.notIn("2".equals(dto.getClockStatus()),SubConstructionUser::getId,attendanceUserIds);
wrapper.eq(StrUtil.isNotBlank(dto.getTypeOfWork()),SubConstructionUser::getTypeOfWork,dto.getTypeOfWork());
wrapper.eq(dto.getTeamId()!=null,SubConstructionUser::getTeamId,dto.getTeamId());
Page<SubConstructionUser> result = constructionUserService.page(pageQuery.build(), wrapper);
List<SubConstructionUser> records = result.getRecords();
ArrayList<AttendanceUserVo> list = new ArrayList<>();
return null; for (SubConstructionUser constructionUser : records) {
AttendanceUserVo attendanceUserVo = new AttendanceUserVo();
SysUserVo sysUserVo = userService.selectUserById(constructionUser.getSysUserId());
attendanceUserVo.setUserId(sysUserVo.getUserId());
attendanceUserVo.setNickName(sysUserVo.getNickName());
SysOssVo byId = ossService.getById(sysUserVo.getAvatar());
if (byId != null) {
attendanceUserVo.setAvatar(byId.getUrl());
}
attendanceUserVo.setTypeOfWork(attendanceUserVo.getTypeOfWork());
attendanceUserVo.setTeamName(attendanceUserVo.getTeamName());
if(attendanceUserIds.contains(constructionUser.getSysUserId())){
attendanceUserVo.setClockStatus("1");
}else{
attendanceUserVo.setClockStatus("2");
}
list.add(attendanceUserVo);
}
TableDataInfo<AttendanceUserVo> rspData = new TableDataInfo<>();
rspData.setCode(cn.hutool.http.HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(result.getTotal());
return rspData;
} }
@Override
public AttendanceUserCountVo getAttendanceUserCount(AttendanceUserCountDto dto) {
AttendanceUserCountVo attendanceUserCountVo = new AttendanceUserCountVo();
List<String> validStatusList = Arrays.asList("1", "2", "3", "5", "7");
// 解析月份字符串获取开始和结束日期
LocalDate startDate = LocalDate.parse(dto.getMonth() + "-01");
LocalDate endDate = startDate.withDayOfMonth(startDate.lengthOfMonth());
// 查询该月的所有考勤记录
List<BusAttendanceVo> attendanceList = baseMapper.selectVoList(Wrappers.lambdaQuery(BusAttendance.class)
.eq(BusAttendance::getUserId, dto.getUserId())
.eq(BusAttendance::getProjectId, dto.getProjectId())
.ge(BusAttendance::getClockDate, startDate)
.le(BusAttendance::getClockDate, endDate)
.orderByAsc(BusAttendance::getClockDate));
// 过滤有效考勤记录
Set<LocalDate> collect = attendanceList.stream()
.filter(a -> validStatusList.contains(a.getClockStatus()))
.map(BusAttendanceVo::getClockDate)
.collect(Collectors.toSet());
attendanceUserCountVo.setWorkNum(collect.size());
List<LocalDate> lateList = attendanceList.stream()
.filter(a -> "2".equals(a.getClockStatus()))
.map(BusAttendanceVo::getClockDate)
.toList();
attendanceUserCountVo.setLateNum(lateList.size());
List<LocalDate> earlyList = attendanceList.stream().filter(a -> "3".equals(a.getClockStatus()))
.map(BusAttendanceVo::getClockDate)
.toList();
attendanceUserCountVo.setEarlyNum(earlyList.size());
List<LocalDate> absentList = attendanceList.stream().filter(a -> "4".equals(a.getClockStatus()))
.map(BusAttendanceVo::getClockDate)
.toList();
attendanceUserCountVo.setAbsentNum(absentList.size());
return attendanceUserCountVo;
}
@Override
public AttendanceUserDataVo getAttendanceUserData(AttendanceUserCountDto dto) {
AttendanceUserDataVo vo = new AttendanceUserDataVo();
List<String> validStatusList = Arrays.asList("1", "2", "3", "5", "7");
// 解析月份字符串获取开始和结束日期
LocalDate startDate = LocalDate.parse(dto.getMonth() + "-01");
LocalDate endDate = startDate.withDayOfMonth(startDate.lengthOfMonth());
// 查询该月的所有考勤记录
List<BusAttendanceVo> attendanceList = baseMapper.selectVoList(Wrappers.lambdaQuery(BusAttendance.class)
.eq(BusAttendance::getUserId, dto.getUserId())
.eq(BusAttendance::getProjectId, dto.getProjectId())
.ge(BusAttendance::getClockDate, startDate)
.le(BusAttendance::getClockDate, endDate)
.orderByAsc(BusAttendance::getClockDate));
// 处理正常出勤记录(去重日期)
List<AttendanceUserDataDetailVo> workList = attendanceList.stream()
.filter(a -> validStatusList.contains(a.getClockStatus()))
.map(this::convertToDetailVo)
.distinct() // 去除重复日期
.collect(Collectors.toList());
vo.setWork(workList);
// 处理迟到记录
List<AttendanceUserDataDetailVo> lateList = attendanceList.stream()
.filter(a -> "2".equals(a.getClockStatus()))
.map(this::convertToDetailVo)
.collect(Collectors.toList());
vo.setLate(lateList);
// 处理早退记录
List<AttendanceUserDataDetailVo> earlyList = attendanceList.stream()
.filter(a -> "3".equals(a.getClockStatus()))
.map(this::convertToDetailVo)
.collect(Collectors.toList());
vo.setEarly(earlyList);
// 处理缺勤记录
List<AttendanceUserDataDetailVo> absentList = attendanceList.stream()
.filter(a -> "4".equals(a.getClockStatus()))
.map(this::convertToDetailVo)
.collect(Collectors.toList());
vo.setAbsent(absentList);
return vo;
}
/**
* 将BusAttendanceVo转换为AttendanceUserDataDetailVo
* @param attendance 考勤记录
* @return 考勤详情VO
*/
private AttendanceUserDataDetailVo convertToDetailVo(BusAttendanceVo attendance) {
AttendanceUserDataDetailVo detailVo = new AttendanceUserDataDetailVo();
detailVo.setClockDate(attendance.getClockDate());
detailVo.setWeek(attendance.getClockDate().getDayOfWeek().getValue());
detailVo.setClockTime(attendance.getClockTime());
detailVo.setMinuteCount(attendance.getMinuteCount());
return detailVo;
}
} }

View File

@ -33,6 +33,10 @@ import org.dromara.project.domain.dto.reissuecard.BusReissueCardQueryReq;
import org.dromara.project.domain.vo.reissuecard.BusReissueCardVo; import org.dromara.project.domain.vo.reissuecard.BusReissueCardVo;
import org.dromara.project.mapper.BusReissueCardMapper; import org.dromara.project.mapper.BusReissueCardMapper;
import org.dromara.project.service.*; import org.dromara.project.service.*;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysOssService;
import org.dromara.system.service.ISysUserService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -65,6 +69,12 @@ public class BusReissueCardServiceImpl extends ServiceImpl<BusReissueCardMapper,
@Resource @Resource
private IBusUserProjectRelevancyService userProjectRelevancyService; private IBusUserProjectRelevancyService userProjectRelevancyService;
@Resource
private ISysUserService userService;
@Resource
private ISysOssService ossService;
/** /**
* 查询施工人员补卡申请 * 查询施工人员补卡申请
* *
@ -73,7 +83,21 @@ public class BusReissueCardServiceImpl extends ServiceImpl<BusReissueCardMapper,
*/ */
@Override @Override
public BusReissueCardVo queryById(Long id) { public BusReissueCardVo queryById(Long id) {
return baseMapper.selectVoById(id); BusReissueCardVo busReissueCardVo = baseMapper.selectVoById(id);
if (busReissueCardVo == null) {
throw new ServiceException("施工人员补卡申请信息不存在");
}
BusProject byId = projectService.getById(busReissueCardVo.getProjectId());
busReissueCardVo.setProjectName(byId.getProjectName());
SysUserVo sysUserVo = userService.selectUserById(busReissueCardVo.getGangerId());
busReissueCardVo.setGangerName(sysUserVo.getNickName());
if(sysUserVo.getAvatar() != null){
SysOssVo byId1 = ossService.getById(sysUserVo.getAvatar());
busReissueCardVo.setAvatar(byId1.getUrl());
}
return busReissueCardVo;
} }
/** /**
@ -345,14 +369,14 @@ public class BusReissueCardServiceImpl extends ServiceImpl<BusReissueCardMapper,
public Boolean updateCard(BusReissueCardUpdateReq req) { public Boolean updateCard(BusReissueCardUpdateReq req) {
BusReissueCard bean = getById(req.getId()); BusReissueCard bean = getById(req.getId());
if (bean == null) { if (bean == null) {
throw new ServiceException("未找到该申请"); throw new ServiceException("未找到该申请");
} }
Long attendanceId = bean.getAttendanceId();
BeanUtil.copyProperties(req, bean); BeanUtil.copyProperties(req, bean);
boolean b = updateById(bean); boolean b = updateById(bean);
if("2".equals(bean.getGangerOpinion())){ if("2".equals(bean.getGangerOpinion())){
BusAttendance byId = attendanceService.getById(bean.getAttendanceId()); BusAttendance byId = attendanceService.getById(attendanceId);
byId.setClockStatus(BusAttendanceClockStatusEnum.REISSUE.getValue()); byId.setClockStatus(BusAttendanceClockStatusEnum.REISSUE.getValue());
} }
return b; return b;