吸收数字员工管理端日报运营预览

This commit is contained in:
baiyanyun
2026-06-13 14:00:53 +08:00
parent d86f82a4c5
commit d5025c0ebc
3 changed files with 155 additions and 1 deletions

View File

@@ -1839,6 +1839,91 @@ function checkDigitalAdminAuditDiagnosticsWorkbench() {
console.log("[DigitalEmployeeCheck] admin audit diagnostics workbench hooks OK");
}
function checkDigitalAdminDailyReportWorkbench() {
console.log("\n[DigitalEmployeeCheck] Verify admin daily report workbench hooks");
const backendRoot = path.resolve(packageRoot, "..", "..", "..", "qiming-backend");
const qimingRoot = path.resolve(packageRoot, "..", "..", "..", "qiming");
const servicePath = path.join(
backendRoot,
"app-platform-modules",
"app-platform-agent",
"app-platform-agent-core-application",
"src",
"main",
"java",
"com",
"xspaceagi",
"agent",
"core",
"application",
"service",
"DigitalEmployeeSyncApplicationServiceImpl.java",
);
const dtoPath = path.join(
backendRoot,
"app-platform-modules",
"app-platform-agent",
"app-platform-agent-core-adapter",
"src",
"main",
"java",
"com",
"xspaceagi",
"agent",
"core",
"adapter",
"dto",
"digital",
"DigitalEmployeeAdminWorkbenchRowDto.java",
);
const testPath = path.join(
backendRoot,
"app-platform-modules",
"app-platform-agent",
"app-platform-agent-core-application",
"src",
"test",
"java",
"com",
"xspaceagi",
"agent",
"core",
"application",
"service",
"DigitalEmployeeSyncApplicationServiceImplTest.java",
);
const qimingOpsPath = path.join(qimingRoot, "src", "pages", "SystemManagement", "Content", "DigitalEmployeeOps", "index.tsx");
const qimingTypesPath = path.join(qimingRoot, "src", "types", "interfaces", "systemManage.ts");
const docsPath = path.resolve(packageRoot, "..", "..", "docs", "digital-employee-frontend-integration-plan.md");
const service = fs.readFileSync(servicePath, "utf8");
const dto = fs.readFileSync(dtoPath, "utf8");
const test = fs.readFileSync(testPath, "utf8");
const qimingOps = fs.readFileSync(qimingOpsPath, "utf8");
const qimingTypes = fs.readFileSync(qimingTypesPath, "utf8");
const docs = fs.readFileSync(docsPath, "utf8");
const requiredSnippets = [
[service, "daily_reports", "backend daily report view"],
[service, "isDailyReportRow", "backend daily report matcher"],
[service, "daily_report", "backend daily report category"],
[dto, "report_id", "backend report id row field"],
[test, "queryAdminWorkbenchDailyReportsReturnsDailyReportRowsOnly", "backend daily report workbench test"],
[qimingTypes, "daily_reports", "qiming daily report view type"],
[qimingOps, "日报运营", "qiming daily report tab"],
[qimingOps, "记录已送达", "qiming daily report delivered action"],
[qimingOps, "确认回执", "qiming daily report confirmed action"],
[qimingOps, "请求审批", "qiming daily report approval action"],
[qimingOps, "记录发送结果", "qiming daily report send record action"],
[docs, "正式管理端日报运营预览", "docs daily report absorption"],
];
const missing = requiredSnippets
.filter(([content, snippet]) => !content.includes(snippet))
.map(([, , label]) => label);
if (missing.length > 0) {
throw new Error(`Missing admin daily report workbench hooks: ${missing.join(", ")}`);
}
console.log("[DigitalEmployeeCheck] admin daily report workbench hooks OK");
}
function checkLocalDatabaseSchema() {
console.log("\n[DigitalEmployeeCheck] Verify local SQLite digital schema");
const dbPath = path.join(os.homedir(), ".qimingclaw", "qimingclaw.db");
@@ -1907,6 +1992,7 @@ function main() {
checkDigitalAdminNotificationWorkbench();
checkDigitalAdminArtifactLifecycleWorkbench();
checkDigitalAdminAuditDiagnosticsWorkbench();
checkDigitalAdminDailyReportWorkbench();
checkLocalDatabaseSchema();
console.log("\n[DigitalEmployeeCheck] All checks passed");
} catch (error) {

View File

@@ -614,7 +614,7 @@ GET /api/digital-employee/approvals
- 建议:先使用 sync record 派生业务查询模型和 embedded 业务视图预览承接联调,再按容量和查询压力决定是否拆 Plan / Task / Run / Event 物理业务表。
13. **日报实体与导出交付**
- 已吸收embedded 页面可基于当前 workday projection 导出本地文本日报;生成日报时会通过 qimingclaw bridge 写入 `daily_report` text / HTML / PDF Artifact 与 `daily_report_generated` Event并可通过 `/api/digital-employee/daily-reports` 和详情接口读取只读日报投影。日报 HTML/PDF 导出、发送记录、管理端确认回执和日报发送审批已开始吸收,交付动作会写入 `daily_report_send_recorded` / `daily_report_confirmed` / `daily_report_approval_requested` 事件sync `business_view.category = daily_report` 可被管理端筛选消费。管理端正式日报页面预览已开始吸收embedded 新增“日报运营”入口展示日报生成、交付、确认、审批和关联产物状态并复用现有生成、记录发送、确认回执和请求审批动作。发送账单审计外壳已开始吸收qiming-backend 新增 `/api/digital-employee/admin/daily-reports/send-records`qiming 运营台可在日报详情中“记录发送结果”,但不接真实第三方发送通道。
- 已吸收embedded 页面可基于当前 workday projection 导出本地文本日报;生成日报时会通过 qimingclaw bridge 写入 `daily_report` text / HTML / PDF Artifact 与 `daily_report_generated` Event并可通过 `/api/digital-employee/daily-reports` 和详情接口读取只读日报投影。日报 HTML/PDF 导出、发送记录、管理端确认回执和日报发送审批已开始吸收,交付动作会写入 `daily_report_send_recorded` / `daily_report_confirmed` / `daily_report_approval_requested` 事件sync `business_view.category = daily_report` 可被管理端筛选消费。管理端正式日报页面预览和正式管理端日报运营预览已开始吸收embedded 新增“日报运营”入口,展示日报生成、交付、确认、审批和关联产物状态,并复用现有生成、记录发送、确认回执和请求审批动作qiming-backend 的 `daily_reports` 运营台视图会聚合日报生成、发送记录、确认回执和审批请求qiming“数字员工运营台”的“日报运营”tab 可记录已送达、确认回执、请求审批和发送结果。发送账单审计外壳已开始吸收qiming-backend 新增 `/api/digital-employee/admin/daily-reports/send-records`qiming 运营台可在日报详情中“记录发送结果”,但不接真实第三方发送通道。
- 缺口:没有正式 DailyReport 物理表、真实管理端发送通道、正式外部管理端日报页面和审批裁决回写闭环。
- 建议:先稳定 Artifact/Event 派生日报交付模型,再根据管理端联调需要决定是否物化 DailyReport 表与发送记录表。