修改bug

This commit is contained in:
lcj
2025-10-16 20:31:56 +08:00
parent 1fd3da3e2a
commit 4042b4a441

View File

@ -20,12 +20,11 @@ import org.dromara.project.domain.vo.projectteammember.BusProjectTeamMemberVo;
import org.dromara.project.service.IBusAttendanceMachineService;
import org.dromara.project.service.IBusAttendanceMachineUserService;
import org.dromara.project.service.IBusProjectTeamMemberService;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.service.ISysOssService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -47,6 +46,8 @@ public class BusAttendanceMachineUserServiceImpl implements IBusAttendanceMachin
private final IBusProjectTeamMemberService projectTeamMemberService;
private final ISysOssService ossService;
/**
* 查询符合条件的考勤机用户列表
*
@ -124,13 +125,31 @@ public class BusAttendanceMachineUserServiceImpl implements IBusAttendanceMachin
List<SubConstructionUser> userList = constructionUserService.lambdaQuery()
.in(SubConstructionUser::getSysUserId, userIds)
.list();
// 获取用户人脸照信息
List<Long> faceIds = userList.stream().map(SubConstructionUser::getFacePic).map(Long::parseLong).distinct().toList();
List<SysOssVo> ossVos = ossService.listByIds(faceIds);
Map<Long, SysOssVo> ossVoMap = ossVos.stream()
.collect(Collectors.toMap(SysOssVo::getOssId, v -> v));
// 返回数据
StringBuilder sb = new StringBuilder();
sb.append("用户:[");
int count = 0;
for (SubConstructionUser user : userList) {
String facePic = user.getFacePic();
if (StringUtils.isBlank(facePic)) {
sb.append(user.getUserName()).append(" ");
count++;
continue;
}
SysOssVo ossVo = ossVoMap.get(Long.parseLong(facePic));
if (ossVo == null) {
sb.append(user.getUserName()).append(" ");
count++;
continue;
}
Boolean result = deviceMessageSender.sendPersonnelInformation(machine.getSn(),
user.getSysUserId().toString(), user.getUserName(), user.getFacePic());
user.getSysUserId().toString(), user.getUserName(), ossVo.getUrl());
log.info("考勤机 Sn{} ,用户:{} 下发成功", machine.getSn(), user.getUserName());
if (!result) {
sb.append(user.getUserName()).append(" ");
count++;