diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceMachineUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceMachineUserServiceImpl.java index 4134b924..ee9ba9a1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceMachineUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceMachineUserServiceImpl.java @@ -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 userList = constructionUserService.lambdaQuery() .in(SubConstructionUser::getSysUserId, userIds) .list(); + // 获取用户人脸照信息 + List faceIds = userList.stream().map(SubConstructionUser::getFacePic).map(Long::parseLong).distinct().toList(); + List ossVos = ossService.listByIds(faceIds); + Map 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++;