diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index b1b791bd4..59c7405cd 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -5349,6 +5349,11 @@ public class HardOrderServiceImpl extends ServiceImpl list = baseMapper.scopePageList(page, dto, dataScope); // 批量补齐身份协议与学生、老师扩展资料,供管理端“身份信息”复合列展示。 sysUserIdentityService.fillUserIdentities(list.getRecords()); + // 回填人脸序号,供前端按“姓名-班级-序号”命名下载当前行人脸图片。 + fillFaceIndex(list.getRecords()); // 审批流程 if (dto.getIsFindCheckUser()) { List processInstanceIds = list.getRecords().stream().map(SysUserFaceVo::getProcessId).filter(ObjectUtil::isNotEmpty).distinct().toList(); @@ -939,6 +941,38 @@ public class SysUserFaceServiceImpl extends ServiceImpl records) { + if (ObjectUtil.isEmpty(records)) { + return; + } + List userIds = records.stream().map(SysUserFaceVo::getUserId).filter(Objects::nonNull).distinct().toList(); + if (ObjectUtil.isEmpty(userIds)) { + return; + } + Map> faceIdsByUserId = list(new LambdaQueryWrapper() + .select(SysUserFaceEntity::getId, SysUserFaceEntity::getUserId) + .in(SysUserFaceEntity::getUserId, userIds) + .orderByAsc(SysUserFaceEntity::getId)) + .stream() + .collect(Collectors.groupingBy(SysUserFaceEntity::getUserId, + Collectors.mapping(SysUserFaceEntity::getId, Collectors.toList()))); + for (SysUserFaceVo record : records) { + List faceIds = faceIdsByUserId.get(record.getUserId()); + if (ObjectUtil.isEmpty(faceIds)) { + continue; + } + int index = faceIds.indexOf(record.getId()); + if (index >= 0) { + record.setFaceIndex(index + 1); + } + } + } + @Override public Page pageJoin(Page page, SysUserFaceDto dto) { if (ObjectUtil.isNotEmpty(dto.getMerchantDeptIdOrGlobal())) {