fix: 溢出截断 + flatfile字段路由 + 多E2E验证

1. _make_numeric_value截断保护
   PIC 9(3)字段值超过999时截断(之前不截断)
2. flatfile.py字段路由
   write_all_files按FD分配字段值到对应的文件
3. 端到端运行验证:
   01-matching-1-1: PASS (8匹配/9不匹配)
   03-matching-N-1: PASS (COPYBOOK正常解析)
   10-divide-50: 程序自身OPEN逻辑问题
   34-sort-anomaly: PARTIAL(异常测试用例部分通过)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
NB-076
2026-06-22 13:59:54 +08:00
parent 0e7472598d
commit 097f5449da
2 changed files with 44 additions and 51 deletions
+3 -1
View File
@@ -401,10 +401,12 @@ def _children_of(group_name: str, fields: list) -> list:
def _make_numeric_value(idx: int, record_num: int, total_digits: int) -> str:
max_val = 10 ** total_digits - 1
for step in (100, 10, 1):
val = idx * step + record_num
if val < 10 ** total_digits:
return str(val).zfill(total_digits)
return str(min(val, max_val)).zfill(total_digits)
return str(min(record_num, max_val)).zfill(total_digits)
return str(record_num).zfill(total_digits)