bd5bfbac2d
Root cause: LLM receiving full 34k-char JRXML would regenerate from scratch
instead of modifying coordinates in-place, shrinking output to ~3k chars.
Solution (programmatic node control, not prompt engineering):
- New agent/jrxml_windower.py: decompose JRXML into header (never sent to
LLM) + individual bands. Split bands >4000 chars at element boundaries.
Reassemble with element count validation (>10% change = rollback).
- Rewrite refine_layout: per-band windowed LLM processing (~2-4k chars
each). LLM cannot "reimagine" the entire report.
- Rewrite map_fields: 100% programmatic regex $F{field_N} -> real name
replacement. Zero LLM calls, zero content loss.
- _sanitize_field_name: non-ASCII chars escaped to _uXXXX_ format for
valid JRXML identifiers.
- Tests: 48 new unit tests (windower 28 + map_fields 20). All passing.
Full suite 385 tests, zero regressions.
2.1 KiB
2.1 KiB
委托单接口文档
委托单接口文档
| 字段 | 含义 | 是否必有 | 类型 |
|---|---|---|---|
| printOrgName | 打印抬头 | String | |
| orgName | 维修厂名称 | String | |
| billNo | 工单号 | String | |
| naEmployee | 服务顾问 | String | |
| employeePhone | 服务顾问手机号 | String | |
| naCustomer | 单位名称(客户姓名) | String | |
| carNoWhole | 车牌号整体 = carPrefix + carNo | String | |
| cellPhone | 联系电话(客户) | String | |
| repairPerson | 送修人 | String | |
| repairPersonContact | 送修人联系方式 | String | |
| billDate | 进厂日期 | String | |
| deliveryTime | 交车时间(出厂时间) | String | |
| mileage | 出厂里程(进厂里程) | BigDecimal | |
| oilCapacity | 当前油量 | String | |
| vin | 车辆VIN码 | String | |
| carModelShort | 车型简称 | String | |
| signaturePhotoUrl | 签名图片 | String | |
| orgContactNumber | 联系电话(维修厂) | String | |
| orgDetailAddress | 联系地址(维修厂) | String | |
| orgContactMobile | 联系电话(维修厂) | String | |
| printContentEntrust | 委托单免责条款 | String | |
| serviceSubtotalVip | 服务项目明细小计(会员项目) | BigDecimal | |
| stuffSubtotalVip | 材料收入小计(会员项目) | BigDecimal | |
| serviceSubtotalAll | 工时费小计 | BigDecimal | |
| stuffSubtotalAll | 材料费小计 | BigDecimal | |
| serviceList | 工单对应项目集合 | List | |
ServicePrintAttribute
| 字段 | 含义 | 是否必有 | 类型 |
|---|---|---|---|
| serviceName | 项目名称 | String | |
| price | 工时单价 | BigInteger | |
| workHour | 工时 | BigInteger | |
| subtotal | 金额 | BigInteger | |
| serviceMemo | 附加信息备注 | String | |
| isMember | 当前项目是否使用会员 | Integer | |
| empNameStr | 服务项目明细对应修理工名称组装字符串 | String | |
更新: 2022-11-30 15:56:54 原文: https://xcz.yuque.com/ombipo/rpc7ms/eppwl9lml80qq2bi