吸收数字员工管理端远程策略编辑安全壳预览
This commit is contained in:
@@ -202,6 +202,16 @@ public class DigitalEmployeeAdminWorkbenchRowDto {
|
||||
private String policyKind;
|
||||
@JsonProperty("policy_key")
|
||||
private String policyKey;
|
||||
@JsonProperty("policy_edit_request_id")
|
||||
private String policyEditRequestId;
|
||||
@JsonProperty("policy_edit_status")
|
||||
private String policyEditStatus;
|
||||
@JsonProperty("policy_edit_reason")
|
||||
private String policyEditReason;
|
||||
@JsonProperty("remote_policy_edit_disabled")
|
||||
private Boolean remotePolicyEditDisabled;
|
||||
@JsonProperty("auto_merge_disabled")
|
||||
private Boolean autoMergeDisabled;
|
||||
@JsonProperty("schedule_id")
|
||||
private String scheduleId;
|
||||
@JsonProperty("job_id")
|
||||
|
||||
@@ -1170,6 +1170,11 @@ public class DigitalEmployeeSyncApplicationServiceImpl implements DigitalEmploye
|
||||
.recommendedAction(firstString(businessView.get("recommended_action"), businessView.get("recommendedAction"), payload.get("recommended_action"), payload.get("recommendedAction")))
|
||||
.policyKind(firstString(businessView.get("policy_kind"), businessView.get("policyKind"), payload.get("policy_kind"), payload.get("policyKind")))
|
||||
.policyKey(firstString(businessView.get("policy_key"), businessView.get("policyKey"), payload.get("policy_key"), payload.get("policyKey")))
|
||||
.policyEditRequestId(firstString(businessView.get("policy_edit_request_id"), businessView.get("policyEditRequestId"), payload.get("policy_edit_request_id"), payload.get("policyEditRequestId")))
|
||||
.policyEditStatus(firstString(businessView.get("policy_edit_status"), businessView.get("policyEditStatus"), payload.get("policy_edit_status"), payload.get("policyEditStatus")))
|
||||
.policyEditReason(firstString(businessView.get("policy_edit_reason"), businessView.get("policyEditReason"), payload.get("policy_edit_reason"), payload.get("policyEditReason")))
|
||||
.remotePolicyEditDisabled(nullableBooleanValue(firstPresent(businessView.get("remote_policy_edit_disabled"), businessView.get("remotePolicyEditDisabled"), payload.get("remote_policy_edit_disabled"), payload.get("remotePolicyEditDisabled"))))
|
||||
.autoMergeDisabled(nullableBooleanValue(firstPresent(businessView.get("auto_merge_disabled"), businessView.get("autoMergeDisabled"), payload.get("auto_merge_disabled"), payload.get("autoMergeDisabled"))))
|
||||
.scheduleId(firstString(businessView.get("schedule_id"), businessView.get("scheduleId"), payload.get("schedule_id"), payload.get("scheduleId")))
|
||||
.jobId(firstString(businessView.get("job_id"), businessView.get("jobId"), payload.get("job_id"), payload.get("jobId")))
|
||||
.revisionId(firstString(businessView.get("revision_id"), businessView.get("revisionId"), payload.get("revision_id"), payload.get("revisionId")))
|
||||
@@ -1386,7 +1391,10 @@ public class DigitalEmployeeSyncApplicationServiceImpl implements DigitalEmploye
|
||||
|| StringUtils.equals(category, "policy_center")
|
||||
|| startsWithAny(kind, "policy_", "skill_policy_", "risk_approval_policy", "route_decision_policy", "plan_step_dispatch_policy")
|
||||
|| StringUtils.isNotBlank(row.getPolicyKind())
|
||||
|| StringUtils.isNotBlank(row.getPolicyKey());
|
||||
|| StringUtils.isNotBlank(row.getPolicyKey())
|
||||
|| StringUtils.isNotBlank(row.getPolicyEditRequestId())
|
||||
|| row.getRemotePolicyEditDisabled() != null
|
||||
|| row.getAutoMergeDisabled() != null;
|
||||
}
|
||||
|
||||
private boolean isSchedulerOperationsRow(DigitalEmployeeAdminWorkbenchRowDto row) {
|
||||
|
||||
@@ -660,6 +660,22 @@ class DigitalEmployeeSyncApplicationServiceImplTest {
|
||||
"max_per_sweep", 3
|
||||
),
|
||||
Map.of("id", "event-policy-2", "kind", "plan_step_dispatch_policy_pulled")),
|
||||
record("outbox-policy-edit", "event", "event-policy-edit-1", 101L, new Date(11_500),
|
||||
Map.ofEntries(
|
||||
Map.entry("entity_type", "event"),
|
||||
Map.entry("category", "policy_center"),
|
||||
Map.entry("kind", "remote_policy_edit_requested"),
|
||||
Map.entry("status", "blocked"),
|
||||
Map.entry("title", "远程策略编辑请求"),
|
||||
Map.entry("policy_kind", "route_decision"),
|
||||
Map.entry("policy_key", "route_decision"),
|
||||
Map.entry("policy_edit_request_id", "policy-edit-1"),
|
||||
Map.entry("policy_edit_status", "rejected"),
|
||||
Map.entry("policy_edit_reason", "manual_review_required"),
|
||||
Map.entry("remote_policy_edit_disabled", true),
|
||||
Map.entry("auto_merge_disabled", true)
|
||||
),
|
||||
Map.of("id", "event-policy-edit-1", "kind", "remote_policy_edit_requested")),
|
||||
record("outbox-scheduler", "event", "event-scheduler-1", 101L, new Date(12_000),
|
||||
Map.of("entity_type", "event", "category", "scheduler", "title", "调度", "status", "ready", "job_id", "job-1"),
|
||||
Map.of("id", "event-scheduler-1", "status", "ready")),
|
||||
@@ -672,14 +688,19 @@ class DigitalEmployeeSyncApplicationServiceImplTest {
|
||||
"policy_center", null, null, null, null, null, null, null, null, null, null, null, 1L, 20L
|
||||
);
|
||||
|
||||
assertThat(result.getTotal()).isEqualTo(2);
|
||||
assertThat(result.getTotal()).isEqualTo(3);
|
||||
assertThat(result.getRecords()).extracting(DigitalEmployeeAdminWorkbenchRowDto::getEntityId)
|
||||
.containsExactly("event-policy-1", "event-policy-2");
|
||||
.containsExactly("event-policy-1", "event-policy-2", "event-policy-edit-1");
|
||||
assertThat(result.getRecords().get(0).getView()).isEqualTo("policy_center");
|
||||
assertThat(result.getRecords().get(0).getPolicyKind()).isEqualTo("route_decision");
|
||||
assertThat(result.getRecords().get(0).getPolicyKey()).isEqualTo("route_decision");
|
||||
assertThat(result.getRecords().get(0).getBusinessView()).containsEntry("auto_create_governance_commands", false);
|
||||
assertThat(result.getRecords().get(1).getPolicyKind()).isEqualTo("dispatch");
|
||||
assertThat(result.getRecords().get(2).getPolicyEditRequestId()).isEqualTo("policy-edit-1");
|
||||
assertThat(result.getRecords().get(2).getPolicyEditStatus()).isEqualTo("rejected");
|
||||
assertThat(result.getRecords().get(2).getPolicyEditReason()).isEqualTo("manual_review_required");
|
||||
assertThat(result.getRecords().get(2).getRemotePolicyEditDisabled()).isTrue();
|
||||
assertThat(result.getRecords().get(2).getAutoMergeDisabled()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user