feat:统计增加表头提示
feat:商户交易记录、部门交易记录增加分片、进度条导出 feat:增加人脸质量上报 feat:app"通知"权限修改
This commit is contained in:
1 parent
87c5a6ee39
commit
64fbd4e16a
33 files changed
+2420
-78
No files matched your search
+49
@@ -0,0 +1,49 @@
|
||||
package com.bsd.pjcloud.admin.api.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 终端上报的一条人脸静态图片质量结果。
|
||||
*/
|
||||
@Data
|
||||
public class SysUserFaceQualityReportItemDto {
|
||||
|
||||
/**
|
||||
* 虹软 32 位搜索样本编号,对应 {@code sys_user_face.auto_code}。
|
||||
*/
|
||||
@NotBlank(message = "人脸样本编号不能为空")
|
||||
private String sampleId;
|
||||
|
||||
/**
|
||||
* 检测状态,跨端协议值仅允许 detected 或 failed。
|
||||
*/
|
||||
@NotBlank(message = "人脸质量检测状态不能为空")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 虹软静态图片质量分,detected 时必填且范围为 0 到 1,failed 时必须为空。
|
||||
*/
|
||||
private BigDecimal score;
|
||||
|
||||
/**
|
||||
* 终端检测所依据的人脸图片版本,必须与服务端当前人脸更新时间一致。
|
||||
*/
|
||||
@NotNull(message = "人脸图片版本不能为空")
|
||||
private LocalDateTime sourceUpdatedAt;
|
||||
|
||||
/**
|
||||
* 终端完成本次检测的本地时间,用于保证重复和延迟上报不会覆盖更新结果。
|
||||
*/
|
||||
@NotNull(message = "人脸质量检测时间不能为空")
|
||||
private LocalDateTime checkedAt;
|
||||
|
||||
/**
|
||||
* 虹软 SDK 或终端插件错误码,detected 时必须为空,failed 时允许为空。
|
||||
*/
|
||||
private Integer errorCode;
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.bsd.pjcloud.admin.api.dto;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Hardware 向 UPMS 上报终端人脸质量的内部可信请求。
|
||||
*/
|
||||
@Data
|
||||
public class SysUserFaceTerminalQualityReportDto {
|
||||
|
||||
/**
|
||||
* Hardware 根据 DEVICE-ID 解析出的商户部门主键,终端请求体不得指定。
|
||||
*/
|
||||
@NotNull(message = "终端绑定部门不能为空")
|
||||
private Long merchantDeptId;
|
||||
|
||||
/**
|
||||
* Hardware 验证存在且已绑定商户的终端设备主键,用于质量结果来源追踪。
|
||||
*/
|
||||
@NotNull(message = "质量上报终端不能为空")
|
||||
private Long qualityDeviceId;
|
||||
|
||||
/**
|
||||
* 本批人脸质量结果,单次最多 500 条且不允许重复样本编号。
|
||||
*/
|
||||
@Valid
|
||||
@NotEmpty(message = "人脸质量结果不能为空")
|
||||
@Size(max = 500, message = "单次最多上报500条人脸质量结果")
|
||||
private List<SysUserFaceQualityReportItemDto> items;
|
||||
}
|
||||
+31
@@ -12,6 +12,7 @@ import lombok.NoArgsConstructor;
|
||||
|
||||
import com.bsd.pjcloud.common.core.util.TenantTable;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
@@ -79,6 +80,36 @@ public class SysUserFaceEntity extends Model<SysUserFaceEntity> {
|
||||
@Schema(description = "人脸图片")
|
||||
private String faceImg;
|
||||
|
||||
/**
|
||||
* 虹软静态图片质量分,范围为 0 到 1;未检测或检测失败时为空。
|
||||
*/
|
||||
@Schema(description = "虹软静态图片质量分,范围0-1")
|
||||
private BigDecimal qualityScore;
|
||||
|
||||
/**
|
||||
* 终端质量检测状态,持久化协议值为 detected 或 failed;历史未检测记录为空。
|
||||
*/
|
||||
@Schema(description = "终端质量检测状态:detected/failed")
|
||||
private String qualityStatus;
|
||||
|
||||
/**
|
||||
* 终端完成本次静态图片质量检测的本地时间,用于阻止旧结果覆盖新结果。
|
||||
*/
|
||||
@Schema(description = "终端完成质量检测的时间")
|
||||
private LocalDateTime qualityCheckedAt;
|
||||
|
||||
/**
|
||||
* 虹软 SDK 或终端插件质量检测错误码;检测成功时为空。
|
||||
*/
|
||||
@Schema(description = "虹软或终端质量检测错误码")
|
||||
private Integer qualityErrorCode;
|
||||
|
||||
/**
|
||||
* 最后一次成功写入质量结果的终端设备主键,来源于 Hardware 对 DEVICE-ID 的可信解析。
|
||||
*/
|
||||
@Schema(description = "最后一次上报质量的终端ID")
|
||||
private Long qualityDeviceId;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
|
||||
+12
@@ -1,9 +1,11 @@
|
||||
package com.bsd.pjcloud.admin.api.feign;
|
||||
|
||||
import com.bsd.pjcloud.admin.api.dto.SysUserFaceTerminalDeleteDto;
|
||||
import com.bsd.pjcloud.admin.api.dto.SysUserFaceTerminalQualityReportDto;
|
||||
import com.bsd.pjcloud.admin.api.vo.SysUserFaceStatusCountVo;
|
||||
import com.bsd.pjcloud.admin.api.vo.SysUserFaceEvidenceSourceVo;
|
||||
import com.bsd.pjcloud.admin.api.vo.SysUserFaceTerminalDeleteVo;
|
||||
import com.bsd.pjcloud.admin.api.vo.SysUserFaceTerminalQualityReportVo;
|
||||
import com.bsd.pjcloud.common.core.constant.ServiceNameConstants;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.feign.annotation.NoToken;
|
||||
@@ -51,4 +53,14 @@ public interface RemoteUserFaceService {
|
||||
@NoToken
|
||||
@PostMapping("/user-face/inner/terminal-delete")
|
||||
R<SysUserFaceTerminalDeleteVo> terminalDelete(@RequestBody SysUserFaceTerminalDeleteDto dto);
|
||||
|
||||
/**
|
||||
* 按 Hardware 解析出的可信设备和部门批量保存终端人脸质量结果。
|
||||
*
|
||||
* @param dto 商户部门、来源设备及质量结果
|
||||
* @return 已更新、按版本或状态优先级忽略和已不存在的样本编号
|
||||
*/
|
||||
@NoToken
|
||||
@PostMapping("/user-face/inner/terminal-quality-report")
|
||||
R<SysUserFaceTerminalQualityReportVo> terminalReportQuality(@RequestBody SysUserFaceTerminalQualityReportDto dto);
|
||||
}
|
||||
+18
@@ -69,6 +69,24 @@ public interface RemoteUserService {
|
||||
@PostMapping("/user/basic-page")
|
||||
R<Page<UserVO>> getScopeBasicUserPage(@RequestParam("current") Long current, @RequestParam("size") Long size, @RequestBody UserDTO userDTO);
|
||||
|
||||
/**
|
||||
* 按当前登录人的数据权限查询指定批次用户,并允许调用方关闭分页总数统计。
|
||||
*
|
||||
* <p>已知用户 ID 的业务列表补数不依赖总数,传入 {@code false} 可避免 UPMS 重复执行 COUNT;未知范围的身份筛选仍应使用
|
||||
* {@link #getScopeBasicUserPage(Long, Long, UserDTO)} 保留准确总数。</p>
|
||||
*
|
||||
* @param current 当前页码,从 1 开始
|
||||
* @param size 每页用户数量
|
||||
* @param searchCount 是否查询符合条件的用户总数
|
||||
* @param userDTO 用户关键字、部门树和指定用户筛选条件
|
||||
* @return 轻量用户分页;关闭总数统计时调用方不得依赖 {@code total}
|
||||
*/
|
||||
@PostMapping("/user/basic-page")
|
||||
R<Page<UserVO>> getScopeBasicUserPageWithCountOption(@RequestParam("current") Long current,
|
||||
@RequestParam("size") Long size,
|
||||
@RequestParam("searchCount") Boolean searchCount,
|
||||
@RequestBody UserDTO userDTO);
|
||||
|
||||
/**
|
||||
* 按当前登录人的数据权限分页查询导出所需的完整用户主资料和身份资料。
|
||||
*
|
||||
|
||||
+2
-2
@@ -58,8 +58,8 @@ public class SysUserFaceSyncRecordVo {
|
||||
private String faceImg;
|
||||
|
||||
/**
|
||||
* 服务端人脸记录最后修改时间;终端将其持久化到现有更新时间字段作为图片版本依据。
|
||||
* 服务端人脸图片版本时间;未修改的历史记录回退为创建时间,终端将其持久化作为上报版本依据。
|
||||
*/
|
||||
@Schema(description = "服务端最后修改时间")
|
||||
@Schema(description = "服务端人脸图片版本时间")
|
||||
private LocalDateTime sourceUpdatedAt;
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.bsd.pjcloud.admin.api.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 终端批量上报人脸质量后的幂等处理结果。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SysUserFaceTerminalQualityReportVo {
|
||||
|
||||
/**
|
||||
* 本次成功写入服务端的人脸样本编号。
|
||||
*/
|
||||
private List<String> updatedSampleIds;
|
||||
|
||||
/**
|
||||
* 因图片版本不一致、服务端已有成功结果或已有更新失败结果而忽略的样本编号。
|
||||
*/
|
||||
private List<String> ignoredStaleSampleIds;
|
||||
|
||||
/**
|
||||
* 请求时服务端已经不存在的样本编号,终端无需将其视为上报失败。
|
||||
*/
|
||||
private List<String> alreadyAbsentSampleIds;
|
||||
}
|
||||
Reference in new issue
Block a user