吸收数字员工管理端产物跨设备聚合预览

This commit is contained in:
baiyanyun
2026-06-14 11:53:16 +08:00
parent 797ffeee82
commit dd6c10f44b
7 changed files with 67 additions and 3 deletions

View File

@@ -54,6 +54,18 @@ public class DigitalEmployeeAdminWorkbenchRowDto {
private String approvalId;
@JsonProperty("artifact_id")
private String artifactId;
@JsonProperty("artifact_group_id")
private String artifactGroupId;
@JsonProperty("artifact_count")
private Long artifactCount;
@JsonProperty("device_count")
private Long deviceCount;
@JsonProperty("version_count")
private Long versionCount;
@JsonProperty("latest_artifact_id")
private String latestArtifactId;
@JsonProperty("version_key")
private String versionKey;
@JsonProperty("cleanup_request_id")
private String cleanupRequestId;
@JsonProperty("cleanup_eligible_count")

View File

@@ -1069,6 +1069,12 @@ public class DigitalEmployeeSyncApplicationServiceImpl implements DigitalEmploye
.triggerSource(firstString(businessView.get("trigger_source"), businessView.get("triggerSource"), payload.get("trigger_source"), payload.get("triggerSource")))
.approvalId(firstString(businessView.get("approval_id"), payload.get("approval_id"), "approval".equals(record.getEntityType()) ? record.getEntityId() : null))
.artifactId(firstString(businessView.get("artifact_id"), payload.get("artifact_id"), "artifact".equals(record.getEntityType()) ? record.getEntityId() : null))
.artifactGroupId(firstString(businessView.get("artifact_group_id"), businessView.get("artifactGroupId"), payload.get("artifact_group_id"), payload.get("artifactGroupId")))
.artifactCount(numberValue(firstPresent(businessView.get("artifact_count"), businessView.get("artifactCount"), payload.get("artifact_count"), payload.get("artifactCount"))))
.deviceCount(numberValue(firstPresent(businessView.get("device_count"), businessView.get("deviceCount"), payload.get("device_count"), payload.get("deviceCount"))))
.versionCount(numberValue(firstPresent(businessView.get("version_count"), businessView.get("versionCount"), payload.get("version_count"), payload.get("versionCount"))))
.latestArtifactId(firstString(businessView.get("latest_artifact_id"), businessView.get("latestArtifactId"), payload.get("latest_artifact_id"), payload.get("latestArtifactId")))
.versionKey(firstString(businessView.get("version_key"), businessView.get("versionKey"), payload.get("version_key"), payload.get("versionKey")))
.cleanupRequestId(firstString(businessView.get("cleanup_request_id"), businessView.get("cleanupRequestId"), payload.get("cleanup_request_id"), payload.get("cleanupRequestId")))
.cleanupEligibleCount(numberValue(firstPresent(businessView.get("cleanup_eligible_count"), businessView.get("cleanupEligibleCount"), payload.get("cleanup_eligible_count"), payload.get("cleanupEligibleCount"))))
.batchCleanupDisabled(nullableBooleanValue(firstPresent(businessView.get("batch_cleanup_disabled"), businessView.get("batchCleanupDisabled"), payload.get("batch_cleanup_disabled"), payload.get("batchCleanupDisabled"))))
@@ -1176,7 +1182,10 @@ public class DigitalEmployeeSyncApplicationServiceImpl implements DigitalEmploye
private boolean isArtifactLifecycleRow(DigitalEmployeeAdminWorkbenchRowDto row) {
return StringUtils.equals(row.getEntityType(), "artifact")
|| startsWithAny(row.getKind(), "artifact_")
|| StringUtils.equals(row.getCategory(), "artifact_lifecycle");
|| StringUtils.equals(row.getCategory(), "artifact_lifecycle")
|| StringUtils.isNotBlank(row.getArtifactGroupId())
|| StringUtils.isNotBlank(row.getLatestArtifactId())
|| row.getArtifactCount() != null;
}
private boolean isServiceOperationsRow(DigitalEmployeeAdminWorkbenchRowDto row) {

View File

@@ -1188,6 +1188,12 @@ class DigitalEmployeeSyncApplicationServiceImplTest {
"cleanup_request_id", "cleanup-request-1",
"cleanup_eligible_count", 3,
"batch_cleanup_disabled", true,
"artifact_group_id", "daily-report-2026-06-13",
"artifact_count", 4,
"device_count", 2,
"version_count", 3,
"latest_artifact_id", "artifact-4",
"version_key", "daily-report:2026-06-13",
"summary", "等待清理"
),
Map.of("id", "artifact-1", "status", "available")),
@@ -1245,6 +1251,12 @@ class DigitalEmployeeSyncApplicationServiceImplTest {
assertThat(result.getRecords().get(0).getCleanupRequestId()).isEqualTo("cleanup-request-1");
assertThat(result.getRecords().get(0).getCleanupEligibleCount()).isEqualTo(3L);
assertThat(result.getRecords().get(0).getBatchCleanupDisabled()).isTrue();
assertThat(result.getRecords().get(0).getArtifactGroupId()).isEqualTo("daily-report-2026-06-13");
assertThat(result.getRecords().get(0).getArtifactCount()).isEqualTo(4L);
assertThat(result.getRecords().get(0).getDeviceCount()).isEqualTo(2L);
assertThat(result.getRecords().get(0).getVersionCount()).isEqualTo(3L);
assertThat(result.getRecords().get(0).getLatestArtifactId()).isEqualTo("artifact-4");
assertThat(result.getRecords().get(0).getVersionKey()).isEqualTo("daily-report:2026-06-13");
assertThat(result.getRecords().get(0).getBusinessView()).containsEntry("retention_status", "expired");
assertThat(result.getRecords().get(1).getArtifactId()).isEqualTo("artifact-2");
assertThat(result.getRecords().get(2).getBusinessView()).containsEntry("cleanup_status", "deleted");