2.0 KiB
2.0 KiB
2026-03-19 LSFX Mock 单员工域修复记录
背景
- 现象:新建项目后导入单个流水文件,解析完成后结果总览出现两个员工信息。
- 预期:单个上传文件只应归属到一个员工域,结果总览最多出现该员工本人对应的一条员工信息。
根因
lsfx-mock-server/services/statement_rule_samples.py中的大额交易固定样本同时混入了两名员工及两名家属的证件号。lsfx-mock-server/services/statement_service.py中的随机噪声流水继续从四个证件号的全量池随机取值。- 因此同一个
logId返回的流水天然会覆盖两个员工域,主系统按cret_no聚合后就会出现两个员工。
修改内容
Mock 造数收敛为单员工域
- 在
lsfx-mock-server/services/statement_rule_samples.py新增IDENTITY_SCOPES。 - 新增
resolve_identity_scope(log_id)和resolve_identity_cards(log_id),按logId稳定选择单个员工域。 - 将固定命中样本从“跨两个员工域混用”改为“只使用当前员工域的员工本人及家属”。
随机噪声不再污染其他员工
- 在
lsfx-mock-server/services/statement_service.py中改为按logId读取允许的证件号范围。 - 随机噪声流水的
cretNo仅能从当前员工域的两张证件号中选择。
测试补充
- 在
lsfx-mock-server/tests/test_statement_service.py增加“同一logId只能落在单一员工域”测试。 - 调整大额交易样本测试,改为基于
resolve_identity_scope(log_id)校验,避免继续依赖固定第二名员工。
验证结果
- 执行:
cd lsfx-mock-server && python3 -m pytest tests/test_statement_service.py tests/test_file_service.py tests/integration/test_full_workflow.py -q
- 结果:
17 passed
影响说明
- 本次只修改
lsfx-mock-server的 mock 造数逻辑,不影响主系统 Java/Vue 代码。 - 已存在库中的历史测试项目数据不会自动回写;如需验证页面结果,需要重启 mock 服务后重新上传文件生成新流水。