fix(aihr): clarify pilot identity metric
This commit is contained in:
+5
-5
@@ -171,7 +171,7 @@ public class AihrPracticeSeedService {
|
||||
SELECT
|
||||
(SELECT COUNT(*) FROM aihr_practice_scenario s JOIN pilot_params p ON p.tenant_id = s.tenant_id
|
||||
WHERE s.position = '生活顾问' AND s.enabled = 1) AS scenario_count,
|
||||
(SELECT COUNT(DISTINCT ext_party_id) FROM safe_org) AS org_login_count,
|
||||
(SELECT COUNT(DISTINCT ext_party_id) FROM safe_org) AS org_identity_count,
|
||||
(SELECT COUNT(*) FROM pilot_org) AS pilot_people,
|
||||
(SELECT COUNT(DISTINCT o.project_code) FROM pilot_org po JOIN safe_org o ON o.ext_party_id = po.ext_party_id
|
||||
WHERE o.project_code IS NOT NULL AND o.project_code <> '') AS pilot_projects,
|
||||
@@ -1135,7 +1135,7 @@ public class AihrPracticeSeedService {
|
||||
try {
|
||||
metrics = jdbcTemplate.queryForObject(PILOT_METRICS_SQL, (rs, rowNum) -> new PilotReportMetrics(
|
||||
rs.getInt("scenario_count"),
|
||||
rs.getInt("org_login_count"),
|
||||
rs.getInt("org_identity_count"),
|
||||
rs.getInt("pilot_people"),
|
||||
rs.getInt("pilot_projects"),
|
||||
rs.getInt("training_count"),
|
||||
@@ -1159,7 +1159,7 @@ public class AihrPracticeSeedService {
|
||||
startDate.atStartOfDay(), endDate.plusDays(1).atStartOfDay());
|
||||
int pilotPeople = metrics.pilotPeople();
|
||||
int completedPeople = metrics.completedPeople();
|
||||
boolean scopeReady = metrics.orgLoginCount() >= 20
|
||||
boolean scopeReady = metrics.orgIdentityCount() >= 20
|
||||
&& pilotPeople >= 20
|
||||
&& metrics.pilotProjects() >= 1
|
||||
&& metrics.pilotProjects() <= 2;
|
||||
@@ -1175,7 +1175,7 @@ public class AihrPracticeSeedService {
|
||||
appendCsvRow(csv, "data_scope", "active_org_unique_identity");
|
||||
appendCsvRow(csv, "scenario_count", metrics.scenarioCount());
|
||||
appendCsvRow(csv, "scenario_count_target", 12);
|
||||
appendCsvRow(csv, "formal_org_login_count", metrics.orgLoginCount());
|
||||
appendCsvRow(csv, "formal_org_identity_count", metrics.orgIdentityCount());
|
||||
appendCsvRow(csv, "formal_pilot_people_count", pilotPeople);
|
||||
appendCsvRow(csv, "formal_pilot_people_target", 20);
|
||||
appendCsvRow(csv, "formal_pilot_project_count", metrics.pilotProjects());
|
||||
@@ -3828,7 +3828,7 @@ public class AihrPracticeSeedService {
|
||||
|
||||
private record PilotReportMetrics(
|
||||
int scenarioCount,
|
||||
int orgLoginCount,
|
||||
int orgIdentityCount,
|
||||
int pilotPeople,
|
||||
int pilotProjects,
|
||||
int trainingCount,
|
||||
|
||||
@@ -248,3 +248,4 @@
|
||||
- 2026-07-14 线上资源差异复核:生产根站、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 `200`;线上管理端仍加载 `/assets/index-CJZ3Ax3Z.js`,H5 仍加载 `/h5/assets/index-D4-NrEpb.js`,当前本地构建分别为 `/assets/index-ClaGy0E5.js`(SHA-256 `788247429e1e20d10306258747d08abdc6903f57fe1313a3e742d141ddcd77fb`)和 `/h5/assets/index-C5pwI-WO.js`(SHA-256 `9d1c53f98561799f4b13fda37e7a25899d4ccc877a3d54a93369bfbfc984dbf7`)。当前只读核验,未执行生产静态资源同步、后端重启或业务数据写入;发布预检继续保留未提交文件保护。
|
||||
- 2026-07-14 发布预检卫生复核:根目录 `node_modules/` 确认为构建工具生成物,已加入 `.gitignore`,避免依赖目录阻塞发布检查;`RELEASE_VERIFY_REMOTE_MATCH=true` 的预检仍因两份用户未提交的 Figma 文档退出,说明未绕过“发布批次必须干净”的保护。
|
||||
- 2026-07-14 BRD G3 匿名入口复核:扫描 AIHR 全部控制器后,当前仅保留两个 `@SaIgnore` 方法:公开移动首页 `/api/aihr/mobile/home/{role}` 和岗位-SOP 导航 `/api/knowledge/position-sop`;训练、搜索、上传、复盘、模型、组织同步及音频读取均有登录或角色门禁,未发现新的匿名业务数据入口。本轮无新增代码修复。
|
||||
- 2026-07-14 BRD M5 导出指标语义复核:`formal_org_login_count` 原名会把按安全手机号映射统计的在职组织身份误读为登录次数;现统一更名为 `formal_org_identity_count`,统计 SQL 不变,CSV 契约、严格校验和验证脚本同步更新。AIHR 目标测试 `34/34`、CSV 契约测试 `5/5` 通过;不改变真实试点数据门槛,也未发布生产。
|
||||
|
||||
@@ -4,7 +4,7 @@ const REQUIRED_METRICS = [
|
||||
'data_scope',
|
||||
'scenario_count',
|
||||
'scenario_count_target',
|
||||
'formal_org_login_count',
|
||||
'formal_org_identity_count',
|
||||
'formal_pilot_people_count',
|
||||
'formal_pilot_people_target',
|
||||
'formal_pilot_project_count',
|
||||
@@ -38,7 +38,7 @@ const REQUIRED_METRICS = [
|
||||
const INTEGER_METRICS = [
|
||||
'scenario_count',
|
||||
'scenario_count_target',
|
||||
'formal_org_login_count',
|
||||
'formal_org_identity_count',
|
||||
'formal_pilot_people_count',
|
||||
'formal_pilot_people_target',
|
||||
'formal_pilot_project_count',
|
||||
@@ -241,12 +241,12 @@ export function verifyPilotExportContract({ csv, startDate, endDate, contentDisp
|
||||
const completionTotal = integerMetric(metrics, 'completion_people_total');
|
||||
const completedPeople = integerMetric(metrics, 'completion_people_count');
|
||||
const projects = integerMetric(metrics, 'formal_pilot_project_count');
|
||||
const orgLogin = integerMetric(metrics, 'formal_org_login_count');
|
||||
const orgIdentityCount = integerMetric(metrics, 'formal_org_identity_count');
|
||||
if (completionTotal !== formalPeople) {
|
||||
fail(`completion_people_total ${completionTotal} does not match formal_pilot_people_count ${formalPeople}`);
|
||||
}
|
||||
if (completedPeople > completionTotal) fail('completion_people_count exceeds completion_people_total');
|
||||
const scopeReady = orgLogin >= 20 && formalPeople >= 20 && projects >= 1 && projects <= 2;
|
||||
const scopeReady = orgIdentityCount >= 20 && formalPeople >= 20 && projects >= 1 && projects <= 2;
|
||||
expectMetric(metrics, 'formal_pilot_scope_ready', String(scopeReady));
|
||||
expectMetric(metrics, 'completion_rate', expectedPercentage(completedPeople, completionTotal));
|
||||
const completionReady = scopeReady && completedPeople * 100 >= completionTotal * 80;
|
||||
|
||||
@@ -13,7 +13,7 @@ function validCsv() {
|
||||
data_scope: 'active_org_unique_identity',
|
||||
scenario_count: '12',
|
||||
scenario_count_target: '12',
|
||||
formal_org_login_count: '20',
|
||||
formal_org_identity_count: '20',
|
||||
formal_pilot_people_count: '20',
|
||||
formal_pilot_people_target: '20',
|
||||
formal_pilot_project_count: '1',
|
||||
|
||||
@@ -223,7 +223,7 @@ if (pilotExport) {
|
||||
const { metrics } = verifiedExport;
|
||||
console.log(
|
||||
`PILOT_EXPORT window=${pilotStartDate}..${pilotEndDate}`
|
||||
+ ` org_login=${metrics.get('formal_org_login_count')}`
|
||||
+ ` org_identity=${metrics.get('formal_org_identity_count')}`
|
||||
+ ` people=${metrics.get('formal_pilot_people_count')}`
|
||||
+ ` projects=${metrics.get('formal_pilot_project_count')}`
|
||||
+ ` ten_sessions=${metrics.get('completion_people_count')}/${metrics.get('completion_people_total')}`
|
||||
|
||||
Reference in New Issue
Block a user