36 KiB
F6 打印单说明知识库
来源:
C:\Users\hp_z66\Desktop\Jaspersoft Studio\workbuddy-jaspersoft目录下 15 个 md 文件整合 整合日期:2026-04-22
目录
- 打印单定制介绍
- 工具与环境
- 模板修改流程
- 常见编辑操作
- 语法介绍
- 高级语法与工具类
- 保存与输出
- 后台配置与命名规范
- 常见打印分类及通用模板
- 各打印单接口参数文档
- 10.1 工单结算单
- 10.2 新版附表
- 10.3 结算单(指定内容)
- 10.4 委托单
- 10.5 协作单
- 10.6 增项单
- 10.7 保险单
- 10.8 定金单
- 10.9 报价单
- 10.10 检测单
- 10.11 出/入库单据
- 10.12 调拨单
- 10.13 材料标签
- 10.14 采购单/采购退货单
1. 打印单定制介绍
F6 系统的打印单基于 TIBCO Jaspersoft Studio 模板引擎,使用 .jrxml(源码)和 .jasper(编译后)文件。打印数据由后端接口传入模板参数,模板通过 $P{} / $F{} 表达式渲染。
常用链接
2. 工具与环境
| 项目 | 说明 |
|---|---|
| 编辑工具 | TIBCO Jaspersoft Studio |
| 默认版本 | Jaspersoft 6.3.1 + JDK 1.6 |
| 可选版本 | Jaspersoft 6.8 + JDK 1.8(用户可指定) |
| WIN 下载 | 钉钉附件《Jaspersoft Studio-6.3.1.final.rar》 |
| MAC 下载 | 钉钉附件《TIBCOJaspersoftStudio-6.3.1.final-mac-x86_64.zip》 |
| 工具类 JAR | print-core-1.0.7.jar(金额转大写、日期转换) |
版本说明:默认使用 Jaspersoft 6.3.1 + JDK 1.6。如需使用 JDK 1.8 语法(如 stream API 从 List 中取特定值),需指定使用 Jaspersoft 6.8 + JDK 1.8 版本。
3. 模板修改流程
- 下载模板:在打印单后台通过模板名称查询并下载
.jrxml文件 - 打开编辑:Jaspersoft Studio → File → Open File → 选择模板
- 编辑模板:增减组件、调整参数、修改样式
- 格式预览:工具内只能预览样式,参数判断需上传到门店后实际打印预览
- 保存输出:保存
.jrxml→ Compile Report 生成.jasper→ Export 到桌面 - 后台配置:上传模板、配置门店生效
4. 常见编辑操作
4.1 新增静态文本
- 从 Palette 拖拽 Static Text 组件到模板
- 双击编辑显示文本
- 调整组件大小和位置参数
4.2 新增动态字段(如展示工单号)
- 在参数表中搜索参数名称和类型(如
billNo,类型java.lang.String) - 拖拽 Text Field 组件到模板
- 双击写入公式:
$P{参数名称} - 若提示 "The current expression is not valid":
- 说明参数未预设,需手动创建
- Outline → Parameters(右键)→ Create Parameter
- 设置 Name(参数名)和 Class(数字:
java.math.BigDecimal,文本:java.lang.String)
4.3 列表中增减字段(如项目列表、材料列表)
- 确认参数所属列表(如
partName属于partList) - 双击列表进入编辑页面
- 列表内参数固定写法:
$F{参数名称}(注意不是$P{}) - 列表内只能使用所属列表下的参数,不可跨列表引用
- 未预设参数需在列表编辑页面内新增 Field
4.4 新增边框和样式
- 选择组件 → Properties → Borders 编辑
5. 语法介绍
5.1 基础语法
| 用途 | 语法 | 示例 |
|---|---|---|
| 文本拼接参数 | $P{参数}+"文本" |
$P{printOrgName}+"结算单" |
| 保留小数 | $P{参数}.setScale(位数, BigDecimal.ROUND_DOWN) |
$P{stuffSubtotalAll}.setScale(2, BigDecimal.ROUND_DOWN) |
| 字符串截取 | $P{参数}.substring(起始,长度) |
$P{billDate}.substring(0,10) |
| IF 判断 | (条件) ? 值1 : 值2 |
($P{printOrgName}==null?$P{orgName}:$P{printOrgName})+"结算单" |
| 相等判断 | == 或 .equals("文本") |
$P{balanceStatus}.equals("7100") |
5.2 运算语法
| 运算 | 语法 |
|---|---|
| 加 | $P{参数1}.add($P{参数2}) |
| 减 | $P{参数1}.subtract($P{参数2}) |
| 乘 | $P{参数1}.multiply($P{参数2}) 或 $P{参数1}.multiply(new BigDecimal(1.13)) |
| 除 | $P{参数1}.divide($P{参数2}, 2, BigDecimal.ROUND_HALF_UP) |
6. 高级语法与工具类
6.1 JAR 包导入(金额转大写等)
- 项目右键 → Properties → Java Build Path → Add External JARs → 选择
print-core-1.0.7.jar - 启用成功后按语法调用
6.2 数字金额转中文大写
com.f6car.printserver.core.CharacterUtil.chinese($P{amount}==null?BigDecimal.ZERO:$P{amount})
6.3 日期时间戳转日期
参数类型选 java.lang.Long:
$P{nextMaintainDateRemind} == null ? "" : new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date($P{nextMaintainDateRemind}))
6.4 从 List 中取特定值写入外层表格(JDK 1.8 语法)
从支付方式列表 payItemList 中找到支付方式等于"记账"的第一个支付金额:
$P{payItemList}.getData().stream()
.filter(map -> "记账".equals(map.get("payWay")))
.map(map -> {
Object amt = map.get("payAmount");
return amt == null ? BigDecimal.ZERO : new BigDecimal(amt.toString());
})
.findFirst()
.orElse(BigDecimal.ZERO)
7. 保存与输出
- 保存
.jrxml源文件 - 右键
.jrxml→ Compile Report → 生成.jasper编译文件 - 右键
.jasper→ Export Files to... → 另存到桌面 - 上传
.jasper到打印单后台
8. 后台配置与命名规范
8.1 注意事项
- 不要随意删除模板,删除不可恢复
- 结算单模板名称必须包含"结算单"三个字,否则收款后无法显示
- 洗车单定制模板名称必须包含"洗车单"三个字
8.2 命名规范
| 类型 | 模板名称 | 模板编码 | 模板备注 |
|---|---|---|---|
| 简单调整 | 基础表+特殊修改需求 | 修改人姓名首字母+模板分类+日期 | 各修改点 |
| 定制调整 | 门店名称+定制 | 修改人姓名首字母+模板分类+日期 | 各修改点 |
9. 常见打印分类及通用模板
| 打印单分类 | 对应系统打印模块 | 通用模板名称 | 模板编码 |
|---|---|---|---|
| 新结算单打印 | 维保单 | F6标准结算单(壹) | newSettleFirst |
| 结算单-新 | 除维保单的其他单据 | 无 | 无 |
| 附表-新 | 新附表 | 无 | 无 |
| 销售单 | 销售单 | 销售单(日期版) | xiaoshodanriqiban |
| 洗车单 | 洗车单 | 洗车单 | wash01 |
| 报价单打印 | 报价单 | 报价单打印 | quotationPrint |
| 新库存入库单打印 | 入库单 | 新库存入库单打印 | 9001 |
| 新库存出库单打印 | 出库单 | 新库存出库单打印 | 9002 |
注意:采购单和采购退货单走打印平台定制,需先向赵亚妮提供门店编码、门店名称开通后再上传配置
10. 各打印单接口参数文档
10.1 工单结算单
打印平台模版分类:新结算单打印 / 结算单-新
接口信息
| 接口类型 | 地址 | 方法 |
|---|---|---|
| maintain 接口 | /print/dispatchPrint/genUrl |
POST |
| erp 接口 | /print/getPrintPDFPath.do?templateId=&templateType=newSettlePrint&idSourceBill= |
GET |
maintain 入参:{ "pkId": "工单ID", "rowCode": "costSettlePrint", "rowId": "12" }
主单参数
| 字段 | 类型 | 说明 |
|---|---|---|
| 基础信息 | ||
| billNo | String | 工单号 |
| maintainType | String | 工单类型 |
| balanceStatus | String | 结算状态:"7000"未结算 / "7100"已结算 / "7200"部分结算 |
| creatorName | String | 创建人名称 |
| naEmployee | String | 服务顾问 |
| creationtime | String | 创建时间 |
| memo | String | 工单备注 |
| printCount | String | 打印次数 |
| printTime | String | 打印时间 |
| deliveryTime | String | 交车时间 |
| mergePackageContent | String | 套餐合并标识 |
| printContent | String | 免责条款 |
| engineNumber | String | 发动机号 |
| transmissionNo | String | 变速箱号 |
| 金额信息 | ||
| amountAll | Double | 应收总计 |
| disCountAll | Double | 总优惠合计 |
| oweAmount | Double | 未收金额 |
| receiptAmount | Double | 实收金额 |
| chineseAmount | String | 实收金额(大写) |
| vipExpense | Double | 会员卡消费金额 |
| czkExpense | Double | 储值卡消费金额 |
| serviceSubtotalAll | Double | 工时费小计 |
| stuffSubtotalAll | Double | 材料费小计 |
| serviceDisCountSubTotal | Double | 项目折后金额合计 |
| stuffDisCountTotal | Double | 材料折后金额合计 |
| partFavourableTotal | Double | 材料优惠金额合计 |
| serviceFavourableTotal | Double | 项目优惠金额合计 |
| extraCostTotal | Double | 附加费小计 |
| 托修方信息 | ||
| naCustomer | String | 单位名称/托修方 |
| repairPerson | String | 送修人 |
| carNoWhole | String | 车牌号整体 |
| carBrandName | String | 品牌名称 |
| carSeriesName | String | 车系名称 |
| businessTypeName | String | 维修类别 |
| vin | String | 车辆VIN码 |
| billDate | String | 进厂日期 |
| mileage | BigDecimal | 出厂里程 |
| cellPhone | String | 联系电话 |
| 承修方信息 | ||
| orgName | String | 单位名称 |
| abbreviation | String | 门店简称 |
| orgContactNumber | String | 联系电话 |
| orgDetailAddress | String | 联系地址 |
| orgContactMobile | String | 联系电话 |
| bankAccount | String | 开户银行 |
| accountNumber | String | 账号 |
| 二期新增 | ||
| oilCapacity | String | 油量 |
| nextMileage | Double | 下次保养里程 |
| nextMaintainDate | String | 下次保养日期 |
| memberCardNo | String | 会员号 |
| points | String | 积分 |
serviceList(项目列表)
| 字段 | 类型 | 说明 |
|---|---|---|
| sortNumber | String | 序号 |
| customCode | String | 项目编码 |
| serviceName | String | 项目名称 |
| labelName | String | 业务分类名称 |
| price | Double | 工时单价 |
| workHour | Double | 工时 |
| subtotal | Double | 金额 |
| discount | Double | 折扣 |
| discountedSubtotal | Double | 折后金额 |
| singleFavourable | Double | 优惠金额 |
| taxRateOutput | BigDecimal | 销项税率 |
| isMember | Integer | 是否会员卡项目 |
| empNameStr | String | 修理工 |
partList(材料列表)
| 字段 | 类型 | 说明 |
|---|---|---|
| sortNumber | String | 序号 |
| customCode | String | 材料编码 |
| partName | String | 材料名称 |
| partBrand | String | 配件品牌 |
| spec | String | 规格型号 |
| partShowName | String | 配件名称规格型号品牌 |
| supplierCode | String | 供应商编码(零件号) |
| unit | String | 单位 |
| number | Double | 数量 |
| price | Double | 价格 |
| subtotal | Double | 金额 |
| discount | Double | 折扣 |
| discountedSubtotal | Double | 折后金额 |
| singleFavourable | Double | 优惠金额 |
| isBring | Integer | 是否自带(1自带) |
| taxRateOutput | BigDecimal | 销项税率 |
| cargoSpace | String | 货位 |
| applyModel | String | 适用车型 |
| employeeName | String | 员工名称 |
| outStockEmployeeName | String | 领料人 |
payItemList(付款方式)
| 字段 | 类型 | 说明 |
|---|---|---|
| payWay | String | 付款方式 |
| payAmount | Double | 付款金额 |
| chinesePayAmount | String | 大写付款方式 |
常用案例
结算前待付/结算后实付(根据 balanceStatus 判断):
$P{balanceStatus}.equals("7100") ? 实付逻辑 : 待付逻辑
对应大写:
$P{balanceStatus}.equals("7100") ? $P{payItemTogetherChinese} : $P{settleOweAmoutChinese}
10.2 新版附表
打印平台模版分类:附表-新
重要备注
-
新版附表没有
billStatus、balanceStatus字段,切勿使用做判断。用payItemList判空替代:- 收银金额:
$P{payItemList}.getRecordCount()==0?$P{receivedAmount}:$P{receivedAmount}.setScale(2,BigDecimal.ROUND_HALF_EVEN).toString()+"("+$P{paymentTypeDetails}+")" - 合计金额:
$P{payItemList}.getRecordCount()==0?($P{settleOweAmout}).setScale(2,BigDecimal.ROUND_HALF_EVEN):($P{settleReceivedAmout}).setScale(2,BigDecimal.ROUND_HALF_EVEN)
- 收银金额:
-
新版附表没有
maintainType字段,用fromMaintainType替代判断。如判断理赔:fromMaintainType.equals('LPD')
主单参数
| 字段 | 类型 | 说明 |
|---|---|---|
| billNo | String | 附表单号 |
| fromBillNo | String | 附表源工单号 |
| fromMaintainType | String | 来源单据类型 |
| billDate | String | 进厂日期 |
| naEmployee | String | 服务顾问 |
| businessTypeName | String | 业务类型 |
| naCustomer | String | 客户姓名 |
| cellPhone | String | 联系电话 |
| carNoWhole | String | 车牌号 |
| vin | String | 车辆VIN码 |
| carModel | String | 品牌车型全称 |
| carModelShort | String | 车型简称 |
| mileage | Double | 出厂里程 |
| amountAll | Double | 应收总计 |
| amountAllChinese | String | 应收总计中文大写 |
| disCountAll | Double | 总优惠合计 |
| amountReal | Double | 实收金额 |
| oweAmount | Double | 未收金额 |
| receiptAmount | Double | 收据金额 |
| serviceSubtotalAll | Double | 工时费小计 |
| stuffSubtotalAll | Double | 材料费小计 |
| extraCostTotal | Double | 附加费小计 |
| payItemList | List | 付款方式集合 |
| serviceList | List | 项目集合 |
| partList | List | 材料集合 |
| extraChargeList | List | 附加费用集合 |
| extraPrintVo | Object | 附加项目 |
| printContent | String | 免责条款 |
| orgName | String | 门店名称 |
| printOrgName | String | 打印抬头 |
10.3 结算单(指定内容)
打印平台模版分类:结算单-新
接口信息
- 接口:
/blazer/maintenance/print/file/dispatchCondition - 方法:POST
- 支持场景:维保单/洗车单/维修单/贴膜单/理赔单/零售单,支持指定项目/材料/附加费打印
入参结构
{
"rowId": "10329",
"rowCode": "partialSettlementStatement",
"pkId": "工单ID",
"serviceList": [{ "pkId": 项目ID, "module": 1 }],
"partList": [{ "pkId": 材料ID, "module": 2 }],
"extraList": [{ "type": 附加费类型, "module": 3 }]
}
PrintModuleEnum 打印模块枚举
| key | code | name |
|---|---|---|
| MAN_HOUR_COST | 1 | 工时费模块 |
| MATERIAL_COST | 2 | 材料费模块 |
| EXTRA_COST | 3 | 附加费模块 |
| OTHER_COST | 4 | 其他费用模块 |
| SERVICE_COST | 5 | 服务费用模块 |
主单参数
与结算单类似,额外包含 signaturePhotoUrl(签名图片)、storeLogo(logo)等字段。
扩展模块列表 extendedModuleList
| 字段 | 说明 |
|---|---|
| module | 打印模块(PrintModuleEnum.code) |
| name | 项目/材料/附加费名称 |
| number | 工时/数量/"-" |
| price | 单价/"-" |
| subtotal | 金额 |
| discount | 折扣(附加费为1.00) |
| discountedSubtotal | 折后金额 |
10.4 委托单
打印平台模版分类:委托单
| 字段 | 类型 | 说明 |
|---|---|---|
| printOrgName | String | 打印抬头 |
| orgName | String | 维修厂名称 |
| billNo | String | 工单号 |
| naEmployee | String | 服务顾问 |
| employeePhone | String | 服务顾问手机号 |
| naCustomer | String | 单位名称(客户姓名) |
| carNoWhole | String | 车牌号整体 |
| cellPhone | String | 联系电话 |
| repairPerson | String | 送修人 |
| repairPersonContact | String | 送修人联系方式 |
| billDate | String | 进厂日期 |
| deliveryTime | String | 交车时间 |
| mileage | BigDecimal | 出厂里程 |
| oilCapacity | String | 当前油量 |
| vin | String | 车辆VIN码 |
| carModelShort | String | 车型简称 |
| signaturePhotoUrl | String | 签名图片 |
| orgContactNumber | String | 联系电话(维修厂) |
| orgDetailAddress | 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 | 修理工名称 |
10.5 协作单
打印平台模版分类:协作单
| 字段 | 类型 | 说明 |
|---|---|---|
| title | String | 打印抬头(门店简称) |
| billNo | String | 工单号 |
| creatorName | String | 制单人 |
| printTime | String | 打印时间 |
| naEmployee | String | 服务顾问 |
| billDate | String | 进厂日期 |
| deliveryTime | String | 交车时间 |
| naCustomer | String | 车主姓名 |
| cellPhone | String | 车主电话 |
| carModel | String | 车型 |
| carNoWhole | String | 车牌号 |
| vin | String | 车辆VIN码 |
| amountAll | BigDecimal | 小计 |
| serviceDetailVOList | List | 协作项目集合 |
CooperationServicePrintAttribute:
| 字段 | 类型 | 说明 |
|---|---|---|
| serviceName | String | 工单项目名称 |
| cooperationServiceName | String | 协作项目名称 |
| cooperationOrgName | String | 协作门店 |
| auditStatus | String | 审核状态 |
| cooperationCost | BigDecimal | 协作成本 |
10.6 增项单
打印平台模版分类:增项单
| 字段 | 类型 | 说明 |
|---|---|---|
| title | String | 打印抬头(门店名称+"新增项目确认单") |
| sourceBillNo | String | 关联工单号 |
| printTime | String | 打印时间 |
| naEmployee | String | 服务顾问 |
| arrivalTime | String | 进厂日期 |
| deliveryTime | String | 交车时间 |
| naCustomer | String | 车主姓名 |
| cellPhone | String | 车主电话 |
| repairPerson | String | 送修人 |
| repairPersonContact | String | 送修人联系方式 |
| carModel | String | 车型 |
| carNoWhole | String | 车牌号 |
| carColor | String | 车身颜色 |
| engineCode | String | 发动机号 |
| vin | String | 车辆VIN码 |
| mileage | String | 进厂里程 |
| oilCapacity | String | 进厂油量 |
| merchantAddress | String | 商家联系地址 |
| merchantTel | String | 商家联系方式(固定电话) |
| merchantPhone | String | 商家联系方式(手机) |
| workHourPriceSubtotal | String | 工时费(小计) |
| amountSubtotal | String | 材料费(小计) |
| attachedServiceVoList | List | 增项服务项目集合 |
| attachedStuffVoList | List | 增项配件材料集合 |
ServicePrintAttribute(增项服务):
| 字段 | 类型 | 说明 |
|---|---|---|
| serviceName | String | 项目名称 |
| labelName | String | 业务分类 |
| customCode | String | 项目编码 |
| price | Double | 工时单价 |
| workHour | Double | 工时 |
| number | Integer | 项目数量 |
| discount | Double | 折扣 |
| discountedSubtotal | Double | 折后金额 |
| subtotal | Double | 金额 |
| serviceMemo | String | 项目备注 |
| isMember | Integer | 是否使用会员 |
| nameMember | String | 会员项目来源名 |
| empNameStr | String | 修理工名称 |
PartPrintAttribute(增项材料):
| 字段 | 类型 | 说明 |
|---|---|---|
| partName | String | 材料名称 |
| labelName | String | 业务分类 |
| partBrand | String | 配件品牌 |
| customCode | String | 材料编码 |
| price | Double | 单价 |
| number | Integer | 材料数量 |
| unit | String | 单位 |
| discount | Double | 折扣 |
| discountedSubtotal | Double | 折后金额 |
| subtotal | Double | 金额 |
| partMemo | String | 材料备注 |
| isMember | Integer | 是否使用会员 |
| nameMember | String | 会员项目来源名 |
| employeeName | String | 员工名称 |
| empNameStr | String | 修理工名称 |
10.7 保险单
打印平台模版分类:保险单
| 字段 | 类型 | 说明 |
|---|---|---|
| companyTitle | String | 打印title |
| customerName | String | 客户姓名 |
| carNo | String | 车牌号 |
| vin | String | vin码 |
| carModel | String | 车型 |
| cellPhone | String | 手机号 |
| insureDate | String | 起保日期(yyyy-MM-dd) |
| receivable | BigDecimal | 应收金额 |
| preferentialAmount | BigDecimal | 优惠金额 |
| receiveAmount | BigDecimal | 实收金额 |
| oweAmount | BigDecimal | 未收金额 |
| commissionAmountTotal | BigDecimal | 手续费 |
| companyRefundAmount | BigDecimal | 保险公司返点 |
| customerRefundAmount | BigDecimal | 客户返点 |
| insuranceCompanyName | String | 承保公司 |
| memo | String | 备注 |
| employeeName | String | 服务顾问 |
| contacts | String | 保险公司联系人 |
| contactMobile | String | 保险公司联系人手机号 |
| channelName | String | 来店途径 |
| startDate | String | 开始日期(yyyy-MM-dd) |
| endDate | String | 结束日期(yyyy-MM-dd) |
| renewal | Integer | 是否续保(0否/1是) |
| tsInsuranceDetailList | List | 保险单明细 |
TsInsuranceDetailPrintVo:
| 字段 | 类型 | 说明 |
|---|---|---|
| policyNo | String | 保单号 |
| insuranceType | Integer | 保险类型(0交强险/1商业险) |
| name | String | 险种名称 |
| amount | BigDecimal | 保额 |
| receivable | BigDecimal | 应收金额 |
| discount | BigDecimal | 折扣 |
| concessionary | BigDecimal | 优惠金额 |
| commissionRate | BigDecimal | 手续费率 |
| commissionAmount | BigDecimal | 手续费 |
| paid | BigDecimal | 实收金额 |
| memo | String | 备注 |
| companyRefundAmount | BigDecimal | 保险公司返点 |
| customerRefundAmount | BigDecimal | 客户返点 |
10.8 定金单
打印平台模版分类:定金单
| 字段 | 类型 | 说明 |
|---|---|---|
| title | String | 标题(门店名称) |
| abbreviation | String | 门店简称 |
| billNO | String | 定金单号 |
| printTime | String | 打印时间 |
| customerName | String | 客户姓名 |
| cellPhone | String | 手机号码 |
| carNo | String | 适用车辆(顿号隔开) |
| orgName | String | 适用门店(顿号隔开) |
| balanceStatus | String | 结算状态 |
| receivedAmount | Double | 已收金额 |
| amount | Double | 收款交易金额 |
| amountAll | Double | 定金单收款小计 |
| preRefundBalance | Double | 定金单退款前余额 |
| advancesReceivedBalance | Double | 定金单收款后剩余面额 |
| memo | String | 定金备注 |
| settlePerson | String | 结算人 |
| employeeName | String | 收款人 |
| businessDate | String | 收款时间 |
| billDate | String | 交易时间 |
| transactionDate | String | 交易时间 |
| detailAddress | String | 联系地址 |
| contactMobile | String | 联系方式 |
| naServicePerson | String | 服务顾问 |
| gatheringList | List | 收款方式列表 |
| relationServices | List | 适用项目列表 |
| relationParts | List | 适用材料列表 |
| relationCars | List | 适用车辆列表 |
gatheringList 项:paymentType(支付方式), amount(金额-BigDecimal)
relationServices 项:infoId(项目id), infoName(项目名称), labelName(业务分类)
relationParts 项:infoId(材料id), infoName(材料名称), labelName(业务分类)
relationCars 项:idCar(车辆信息id), carNo(车牌号), vin(vin码)
10.9 报价单
打印平台模版分类:报价单打印
主单信息
| 字段 | 类型 | 说明 |
|---|---|---|
| partDetailVoList | List | 材料列表 |
| serviceDetailVoList | List | 项目列表 |
| amountChinese | String | 商品金额中文大写 |
| realAmountWithoutCardChinese | String | 待付金额中文大写 |
QuotationPartDetailPrintVo(报价单材料)
| 字段 | 类型 | 说明 |
|---|---|---|
| pkId | BigInteger | 无意义主键 |
| partName | String | 材料名称 |
| partShowName | String | 材料显示名称 |
| number | BigDecimal | 数量 |
| price | BigDecimal | 单价 |
| subtotal | BigDecimal | 总价 |
| discount | BigDecimal | 折扣 |
| realSubtotal | BigDecimal | 折后总计 |
| unit | String | 单位 |
| spec | String | 规格型号 |
| brand | String | 品牌名称 |
| supplierCode | String | 零件号 |
| customCode | String | 材料编码 |
| employeeName | String | 服务员工姓名 |
| memo | String | 备注 |
QuotationServiceDetailPrintVo(报价单项目)
| 字段 | 类型 | 说明 |
|---|---|---|
| pkId | BigInteger | 无意义主键 |
| customCode | String | 项目编码 |
| serviceName | String | 项目名称 |
| workHour | BigDecimal | 工时 |
| price | BigDecimal | 单价 |
| subtotal | BigDecimal | 工时费 |
| discount | BigDecimal | 折扣 |
| realSubtotal | BigDecimal | 折后金额 |
| memo | String | 备注 |
10.10 检测单
打印平台模版分类:检测单
主单信息
| 字段 | 类型 | 说明 |
|---|---|---|
| carCheckPackageName | String | 模板名称 |
| title | String | 标题 |
| billNo | String | 检测单号 |
| printTime | String | 打印时间 |
| naEmployee | String | 服务顾问 |
| billDate | String | 进厂时间 |
| deliveryTime | String | 预计交车 |
| naCustomer | String | 车主 |
| carModel | String | 车型 |
| cellPhone | String | 车主电话 |
| carNoWhole | String | 车牌号 |
| vin | String | vin码 |
| repairPerson | String | 送修人 |
| repairPersonContact | String | 送修人联系方式 |
| mileage | String | 进厂里程 |
| oilCapacity | String | 进厂油量 |
| nextMileage | String | 下次保养里程 |
| nextMaintainDate | String | 下次保养日期 |
| customerMemo | String | 车主描述 |
| merchantAddress | String | 联系地址 |
| merchantPhone | String | 联系方式 |
| qrCode | String | 二维码 |
| qrCodeToB | String | B端二维码 |
| qrCodeToC | String | C端二维码 |
| icon | String | 车辆环视图 |
| maintainBillNo | String | 结算单号 |
| showComputerCheckInfo | Boolean | 是否展示电脑检测 |
| computerCheckInfoList | List | 电脑检测 |
| personalCheckInfoList | List | 人工检测项(正常+异常) |
| sortedPersonalCheckInfoList | List | 人工检测项(问题排序靠前) |
| optionPersonalCheckInfoList | List | 异常人工检测项 |
| normalPersonalCheckInfoList | List | 正常人工检测项 |
| iconMemo | String | 环视图备注 |
| iconResult | String | 环视图结论 |
| warningLightResult | String | 警示灯结论 |
| showWarningLightItem | Boolean | 是否展示警示灯 |
| warningLightItemList | List | 警示灯 |
| employeeName | String | 服务技师 |
ComputerPrintItem(电脑检测项)
| 字段 | 类型 | 说明 |
|---|---|---|
| index | String | 序号 |
| errorCode | String | 故障码 |
| itemName | String | 检测项目 |
| optionNameS | String | 建议处理(Y) |
| optionNameE | String | 择期处理(Y) |
| optionNameU | String | 急需处理(Y) |
| memo | String | 备注 |
PersonalPrintItem(人工检测小类)
| 字段 | 类型 | 说明 |
|---|---|---|
| index | BigInteger | 序号 |
| itemComponent | String | 检测部件 |
| memo | String | 备注 |
| childList | List | 子项目列表 |
PrintTinyItem(检测项目)
| 字段 | 类型 | 说明 |
|---|---|---|
| itemName | String | 检测项目 |
| itemResults | String | 检测结果 |
| optionNameS | String | 建议处理(Y) |
| optionNameE | String | 择期处理(Y) |
| optionNameU | String | 急需处理(Y) |
| memo | String | 备注 |
10.11 出/入库单据
场景总览
| 场景 | 入口 | REST 接口 | 底层接口 |
|---|---|---|---|
| 库存出库单 | 出入库单据-出库单 | /stock/stockInAndOutBill/stockOutPrint?idStock=XXX&isNew=true |
PrintServiceImpl#getStockOutPrintUrl |
| 库存入库单 | 出入库单据-入库单 | /stock/stockInAndOutBill/stockInPrint?idStock=XXX&isNew=true |
PrintServiceImpl#getStockInPrintUrl |
| 手工出入库 | 手工出入库 | /stock/manual/print?pkId=XXX&billType=0&isNew=true |
PrintService#getManualStorageStockInPrintUrl |
| 领料单 | 领料详情 | /stock/maintain/print?idSourceBill=XXX&hasPreview=true |
PrintServiceImpl#getMaintainPrintUrl |
日志关键字:出库单→"出库单打印参数",入库单→"入库单打印参数",手工→"手工出入库单据打印入参是",领料→"领料单打印参数"
出库单参数
定制类模版分类:newStockOutMaintainCustomPrint(20250925新增)
| 字段 | 说明 | 备注 |
|---|---|---|
| title | 门店名称+"出库单" | |
| billNo | 出库单号 | |
| sourceBillNo | 来源单号 | |
| showSourceBillNo | 显示来源单号(boolean) | |
| billStatus | 单据状态(制单/完成) | |
| inOutDate | 出库日期 | |
| showInOutDate | 是否显示出库日期(boolean) | |
| objectName | 出入库对象 | |
| objectNameGD | 出入库对象工单 | 客户姓名+车牌+VIN+品牌车系车型(前80字符) |
| creatorName | 制单人 | |
| billDate | 制单日期(yyyy-MM-dd) | |
| sumNumber | 材料总数量 | |
| sumAmount | 总金额 | 脱敏显示**** |
| chineseAmount | 总金额(中文大写) | 脱敏显示**** |
| nowDateTime | 打印当前时间(yyyy-MM-dd HH:mm) | |
| idOwnOrg | 门店ID | |
| remark | 备注信息 | |
| showRemark | 是否显示备注(boolean) | |
| isGdType | 是否工单类型(boolean) | |
| saName | 服务顾问 | 工单出库场景 |
| printCount | 打印次数 | |
| showCustomCode | 是否显示材料编码(boolean) | |
| showBusinessLabel | 是否显示业务分类(boolean) | |
| showApplyModel | 是否显示适用车型(boolean) | |
| showStorageName | 是否显示仓库(boolean) | |
| showDefSeat | 是否显示货位(boolean) | |
| showChineseAmount | 是否显示大写金额(boolean) | |
| showChineseSubtotal | 是否显示大写行合计(boolean) | |
| columnCount | 显示几列 | |
| batchPrintConfig | 批次成本展示设置 | 0不展示/1总成本/2和3展示批次 |
| memo | 车主描述 | 20250925新增 |
partInfoDetailMapList 材料行:
| 字段 | 说明 |
|---|---|
| sortNumber | 序号(合计行显示"合计") |
| partShowName | 材料组合名称 |
| partName | 材料名称 |
| partBrand | 材料品牌(2025.02.27新增) |
| supplierCode | 零件号 |
| labelName | 业务分类 |
| applyModel | 适用车型 |
| customCode | 材料编码 |
| storageName | 仓库名称 |
| defSeat | 货位 |
| number | 数量 |
| unit | 单位 |
| price | 单价 |
| subtotal | 金额 |
| employeeName | 出库人 |
| salesEmployeeNameList | 材料行销售人员(20250925新增) |
| orderBatchList | 批次成本信息(List) |
orderBatchList 项:orderNo(批次号), count(数量), price(单位成本), priceNoTax(除税单位成本), totalPrice(总成本), totalPriceNoTax(除税总成本)
入库单参数
定制类模版分类:newStockInMaintainCustomPrint(20250925新增)
与出库单类似,额外字段:
| 字段 | 说明 |
|---|---|
| noTaxSumAmount | 除税总金额 |
| chineseNoTaxSumAmount | 除税总金额(大写) |
| noTaxPrice | 除税单价(材料行) |
| noTaxSubtotal | 除税金额(材料行) |
| sumSubtotal | 入库总金额(工单退才有) |
| chineseSubtotal | 大写入库总金额(工单退才有) |
| showReturnIn | 显示退料入库一行(工单退才有) |
| showSign | 仓管签字位置(工单退=2,其它=1) |
| stockInType | 退料入库(工单退才有) |
领料单参数
| 字段 | 说明 |
|---|---|
| idOwnOrg | 门店ID |
| title | 门店名称+"领料单" |
| billNo | 工单号 |
| nowDateTime | 打印当前时间 |
| employeeName | 服务顾问 |
| carModel | 车型 |
| carNoWhole | 车牌号 |
| memo | 车主描述(2025.08.14新增) |
| printTimes | 打印次数 |
| columnCount | 显示几列 |
| batchPrintConfig | 批次成本设置 |
| stuffDetailVOList | 材料列表 |
10.12 调拨单
前端调用接口:/stock/allot/print?idAllot=
模版编码:allotInPrint
| 字段 | 说明 | 备注 |
|---|---|---|
| printFlag | 均价门店false/批次门店true | |
| showPrice | 参配-打印调拨价格及金额 | 勾选true |
| orgName | 打印抬头 | 调入:XXX调入单/调出:XXX调出单 |
| billNo | 调拨单号 | 调入:DRD/调出:DCD前缀 |
| idOwnOrg | 门店ID | |
| naOrgIn | 调入门店名称 | |
| naOrgOut | 调出门店名称 | |
| detailAddress | 供应商详细地址 | |
| statusName | 调拨单状态 | 制单/待发货/待收货/已完成 |
| billDate | 单据日期(yyyy-MM-dd) | |
| creatorName | 创建人 | |
| nowDateTime | 打印时间 | |
| remark | 备注信息 | |
| showRemark | 是否显示备注 | |
| sumNumber | 总数量 | |
| sumAmount | 总金额 | 脱敏显示**** |
| printCount | 打印次数 | |
| allotDetailVoList | 调拨单明细行 |
allotDetailVoList 明细行:
| 字段 | 说明 |
|---|---|
| sortNumber | 序号 |
| partShowName | 材料组合名称 |
| customCode | 材料自定义编码 |
| partName | 材料名称(20250731追加) |
| partBrand | 材料品牌(20250731追加) |
| supplierCode | 材料零件号(20250731追加) |
| standard | 材料规格型号(20250731追加) |
| carNo | 车牌(20250731追加) |
| defSeat | 货位(调入/调出门店货位) |
| unit | 单位 |
| price | 单价 |
| numCus | 个数(均价/批次逻辑不同) |
| amount | 金额(均价/批次逻辑不同) |
| orderNo | 批次号 |
| productDate | 批次生成日期 |
10.13 材料标签
打印平台模版分类:材料价格通用标签打印
材料标签支持一次打多张,与 labelList 集合元素个数匹配。
通用材料标签
| 字段 | 类型 | 说明 |
|---|---|---|
| labelList | List | 材料标签列表 |
Label:
| 字段 | 类型 | 说明 |
|---|---|---|
| name | String | 材料名称 |
| supplierCode | String | 零件号 |
| customCode | String | 材料编码 |
| sellPrice | BigDecimal | 销售价格 |
| date | String | 打印日期(yyyy/MM/dd) |
采购库存材料标签
- 不带供应商:采购库存通用标签打印-新
- 带供应商:采购库存通用标签打印-包含供应商-新
| 字段 | 类型 | 说明 |
|---|---|---|
| labelList | List | 材料标签列表 |
Object:
| 字段 | 类型 | 说明 |
|---|---|---|
| partName | String | 材料名称 |
| partBrand | String | 材料品牌 |
| customCode | String | 材料编码 |
| partShowName | String | 组合名称 |
| supplierCode | String | 材料供应商编码 |
| spec | String | 材料规格型号 |
| unit | String | 材料单位 |
| barCode | String | 材料编码 |
| billDate | String | 单据日期(yyyy-MM-dd) |
| supplierName | String | 供应商名称 |
| storageName | String | 材料仓库名称 |
| defSeat | String | 材料货位 |
| date | String | 打印日期(yyyy/MM/dd) |
10.14 采购单/采购退货单
走打印平台定制,需先向赵亚妮提供门店编码、门店名称开通后再上传配置。
参考文档:采购单/采购退打印
附录:关键注意事项
- 结算单模板名称必须包含"结算单"三个字
- 洗车单定制模板名称必须包含"洗车单"三个字
- 新版附表不能用
billStatus、balanceStatus、maintainType做判断 - 列表内参数用
$F{},外层参数用$P{} - 数字类型参数用
java.math.BigDecimal,文本用java.lang.String - 未预设参数需先创建 Parameter(外层)或 Field(列表内)
- 删除模板不可恢复,操作前务必确认
- 价格脱敏场景显示
**** - 工具类 JAR:
print-core-1.0.7.jar,提供金额转大写和日期转换功能