# 工单结算单接口文档
# 打印单最新接口参数
#### maintain接口
**接口:/print/dispatchPrint/genUrl**
**方法:post**
支持场景:
各类结算单
不支持:上海结算单
**入参:**
```plaintext
{
"pkId": "14581820313319918809",
"rowCode": "costSettlePrint",
"rowId": "12"
}
```
```plaintext
{
"code": 200,
"data": {
"url": "http://s1.f6yc.com/printserver/test/printFile/201912/191213154046701.pdf"
},
"message": "SUCCESS"
}
```
#### erp接口
**/print/getPrintPDFPath.do**
templateId=56&templateType=newSettlePrint&idSourceBill=10546443563897503197
**rest get**
**支持各种新版打印类型**
```plaintext
{
"code": 200,
"data": "http://s1.f6yc.com/printserver/test/printFile/201912/191213154046701.pdf",
"message": "SUCCESS"
}
```
#### jasper取参对照
```plaintext
{
"data": {
"cellPhone": "15421562365", //联系电话
"naCustomer": "0322新", //单位名称
"repairPerson": "", //送修人
"carOwnerName":"", // 车辆所有人
"accountNumber": "", //账号
"billNo": "GD20190517001", //工单号
"carNoWhole": "苏1542", //车牌号
""
"carColor":"" //车身颜色
"orgDetailAddress": "江苏省盐城市阜宁县豆豆",//联系地址
"vin": "11111111111111111", //车辆VIN码
"naEmployee": "员工1(旧1)", //服务顾问
"billDate": "2019-05-17 11:49",//进厂日期
"businessTypeName": "维修", //维修类别
"deliveryTime": "2019-05-17 12:49",//交车时间(出厂时间)
"email": "126544@qq.com", //组织邮件
"maintainType": "GD", //工单类型
"billStatus":"6300", //单据状态
"orgContactMobile": "15315256232", //联系电话
"memo": "", //工单备注
"orgMemo":"", // 门店备注
"carMemo":"", // 车辆备注
"printCount": "1", //打印次数
"orgContactNumber": "", //联系电话-承修方信息
"carSeriesName": "商用车", //车系名称
"carBrandName": "商用车", //品牌名称
"balanceStatus": "7000", //结算状态
"printTime": "2019-07-26 11:43:48",//打印时间
"firstSettlementTime":"2019-07-26 11:43:48",//结算时间(第一次收款时间)
"orgName": "新公司测试", //单位名称-承修方信息
"abbreviation": "门店简称", //门店简称
"engineNumber": "123", //发动机号
"transmissionNo": "123", //变速箱号
"creationtime": "2019-05-17 11:50:46.0",//创建时间
"creatorName": "员工1(旧1)", //创建人名称
"employeePhone":"18734033191", //服务顾问手机号
"paymentTypeDetails":"记账", //支付方式(记账公司)汇总
"bankAccount": "", //开户银行
"naInsurer":"", //理赔公司名称
"insurancepolicyNo":"", //理赔单理赔保险单号
"mergePackageContent": "1", //套餐合并标识
"totalStuffNum": 1.0, //材料数量合计
"selfTotalStuffNum": 0.0, //自带材料数量合计
"serviceNum": "1", //维修项目小计
"spreadRate": 0.0, //进销差价率
"managementCost": 0.0, //进销差价合计
"amountAll": 160.0, //应收总计
"serviceDisCountSubTotal": 100.0, //项目折后金额合计
"stuffSubtotalAll": 60.0, //材料费小计
"serviceSubtotalAll": 100.0, //工时费小计
"receiptAmount": 160.0, //实收金额
"chineseAmount": "壹佰陆拾元整", //实收金额(大写)
"oweAmount": 160.0, //未收金额
"remainAmount":1.0, //结算金额tsf
"receivedAmount":1.0, //收款金额tsf
"settleOweAmout":1.0, //结算单中用的待付金额(未收)
"settleOweAmoutChinese":"壹", //待付金额大写
"settleReceivedAmout":1.0, //实付金额
"settleReceivedAmoutChinese":1.0, //实付金额大写
"totalWorkHour": 1.0, //项目工时合计
"serviceFavourableTotal": 52.0, //项目优惠金额合计
"serviceFavourableCommonTotal": 52.0,//普通项目优惠金额合计
"stuffSubtotalAll": 532.0, //材料费小计
"partFavourableTotal": 102.0, //材料优惠金额合计
"partFavourableCommonTotal": 92.0, //普通材料优惠金额合计
"stuffDisCountTotal": 60.0, //材料折后金额合计
"extraCostTotal": 0.0, //附加费小计
"allOtherCost": 0.0, //附加费合计应收
"packageFavourable": 0.0, //套餐优惠
"czkExpense": 0.0, //储值卡消费金额
"vipExpense": 0.0, //会员卡消费金额
"czkExpenseFavourable": 0.0, //储值卡优惠金额
"czkDiscountFavourable": 0.0, //储值卡办卡优惠金额
"vipExpenseFavourable": 0.0, //计次卡/套餐卡优惠金额
"partinfoDiscountFavourable": 0.0, //材料折扣优惠
"partinfoFavourable": 0.0, //材料项目(非会员项目)客户等级优惠
"couponFavourable": 0.0, //优惠券优惠
"pointFavourable": 0.0, //积分优惠
"discountFavourable": 0.0, //结算时设置的结清优惠
"gatheringFavourable": 0.0, //收银时设置的收银优惠
"customerLevelFavourable": 0.0, //客户级别优惠金额
"serviceFavourable": 0.0, //服务项目(非会员项目)客户等级优惠
"disCountAll": 0.0, //总优惠合计
"disCountAllBak":0.0, //总优惠合计bak
"printContent": "", //免责条款
"printContentEntrust":"", //委托单免责条款
"mainCostList": [ //维修结算费用集合
{
"subtotal": 60.0, //价格
"sortNumber": "1", //序号
"costName": "材料费" //名称
},
{
"subtotal": 100.0,
"sortNumber": "2",
"costName": "工时费"
},
{
"subtotal": 160.0,
"sortNumber": "3",
"costName": "合计"
}
],
"partList": [ //工单对应配件材料集合
{
"unit": "个", //单位
"isBring": 0, //是否自带,1表示自带,0表示非自带
"discountedSubtotal": 60.0, //折后金额
"price": 60.0, //价格
"partName": "分全", //材料名称
"number": 1.0, //数量
"subtotal": 60.0, //金额
"taxRateOutput": 0.13, //销项税率
"singleFavourable":0.0, //优惠金额
"partBrand":"", //配件品牌
"spec":"", //规格型号
"supplierCode":"", //供应商编码(零件号)
"customCode":"", //材料编码
"isMember":0, //是否是会员卡材料 1是
"discount":0.5, //折扣
"partMemo":"", //备注
"employeeName":"", //员工名称(维修技师)
"cargoSpace":"", //货位
"outStockEmployeeName":"", //领料人
"sortNumber": "1" //序号
}
],
"serviceList": [ //工单对应项目集合
{
"discountedSubtotal": 100.0,//折后金额
"price": 100.0, //工时单价
"workHour": 1.0, //工时
"subtotal": 100.0, //金额
"taxRateOutput": 0.13, //销项税率
"sortNumber": "1", //序号
"discount":1, //折扣
"singleFavourable":0.0, //优惠金额
"isMember":1, //是否是会员卡项目 1是 0否
"empNameStr":"", //修理工
"unusedNumber":1, //会员卡项目-未使用次数
"number":2, //会员卡项目-总次数
"infiniteFlag":1, //是否无限,0:否,1:是
"serviceName": "0322新" //项目名称
}
],
"cardList": [ //会员卡列表
{
"favourable": 20, //优惠
"amount": 2019799, //余额
"consumeAmount":10, //本次消费金额
"memberCardNo": "123232rg",//卡号
"name": "测试洗车卡项目2" //卡名称
}
],
"czkList": [ //储值卡列表
{
"favourable": 20, //优惠
"amount": 2019799, //余额
"consumeAmount":10, //本次消费金额
"memberCardNo": "123232rg",//卡号
"name": "测试洗车卡项目2" //卡名称
}
],
"extraPrintVo": { //附加项目
"processItemName": "加工", //加工条目名称
"checkCustomName": "检测费", //检测费名称
"diagnosisCustomName": "诊断费", //诊断费名称
"diagnosisItemName": "维修诊断", //维修诊断项目
"diagnosisMemo": "", //诊断费备注
"diagnosisCost": 0.0, //诊断费
"commissionCustomName": "代办费", //代办费名称
"managementCustomName": "管理费", //管理费名称
"commissionMemo": "", //代办费备注
"processMemo": "", //加工费
"commissionCost": 0.0, //代办费
"checkCost": 0.0, //检测费
"managementCost": 0.0, //管理费
"processCustomName": "加工费", //加工费名称
"processCost": 0.0, //加工费
"managementMemo": "", //管理费备注
"checkMemo": "" //检测费备注
}
},
"storeId": 25965086392720693,
"tempId": 123
}
```
#### 参数说明(完整)
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| \------基础信息 | | |
| **billNo** | String | _工单号_ |
| **maintainType** | String | _工单类型_ |
| **balanceStatus** | String | _结算状态_
_"7000" -- 未结算(即存在待付金额)_
_"7100" -- 已结算_
_"7200" -- 部分结算_ |
| **creatorName** | String | _创建人名称_ |
| **naEmployee** | String | _服务顾问_ |
| **spreadRate** | Double | _进销差价率_ |
| carCategoryName | String | _客户车辆分类名称_ |
| **creationtime** | String | _创建时间_ |
| **memo** | String | _工单备注_ |
| **printCount** | String | _打印次数_ |
| **printTime** | String | _打印时间_ |
| **deliveryTime** | String | _交车时间(出厂时间),收款取收款时间,未收款完工的取完工时间,未完工的取预计交车时间_ |
| **mergePackageContent** | String | _套餐合并标识_ |
| **printContent** | String | _免责条款_ |
| **engineNumber** | String | _发动机号_ |
| **transmissionNo** | String | 变速箱号 |
| **printMaintainGuaZi** | String | _guazi标识_ |
| **amountAll** | Double | _应收总计_ |
| **disCountAll** | Double | _总优惠合计_ |
| **oweAmount** | Double | _未收金额_ |
| **vipExpense** | Double | _会员卡消费金额_ |
| **vipExpenseFavourable** | Double | _计次卡/套餐卡优惠金额_ |
| **czkExpense** | Double | _储值卡消费金额_ |
| **czkExpenseFavourable** | Double | _储值卡优惠金额_ |
| **czkSettleFavourable** | Double | _储值卡结算优惠金额(仅未收款返回)_ |
| **accountAmount** | Double | 记账金额 |
| **totalOweAmount** | Double | _未付金额_ |
| **serviceFavourable** | Double | _服务项目(非会员项目)客户等级优惠_ |
| **partinfoFavourable** | Double | _材料项目(非会员项目)客户等级优惠_ |
| **partinfoDiscountFavourable** | Double | _材料折扣优惠_ |
| **pointFavourable** | Double | _积分优惠_ |
| **packageFavourable** | Double | _套餐优惠_ |
| **discountFavourable** | Double | _结算时设置的结清优惠_ |
| **gatheringFavourable** | Double | _收银时设置的收银优惠_ |
| **couponFavourable** | Double | _优惠券优惠_ |
| **customerLevelFavourable** | Double | _客户级别优惠金额_ |
| **customerLevelName** | String | _客户级别_ |
| **customerDetailAddress** | String | 客户详细地址 |
| **channelName** | String | 来店途径名称 |
| **receiptMemo** | String | 收银备注 |
| **customerSourceName** | String | _客户来源名称_ |
| **carSourceName** | String | _车辆来源名称_ |
| \-----托修方信息 | | |
| **naCustomer** | String | _单位名称/托修方_ |
| **repairPerson** | String | _送修人_ |
| **carNoWhole** | String | _车牌号整体_ |
| **carBrandName** | String | _品牌名称_ |
| **carSeriesName** | String | _车系名称_ |
| carMemo | String | 车辆备注 |
| **businessTypeName** | String | _维修类别_ |
| **vin** | String | _车辆VIN码_ |
| carFuelTypeNameOriginal | carFuelTypeNameOriginal | 燃料类型 |
| **billDate** | String | _进厂日期_ |
| **mileage** | java.math.BigDecimal | _出厂里程_ |
| **contractNumber** | | _合同编号(空)_ |
| **certificateNumber** | | _合格证号(空)_ |
| **cellPhone** | String | _联系电话_ |
| **email** | String | _组织邮件_ |
| \------承修方信息 | | |
| **orgName** | String | _单位名称_ |
| **abbreviation** | String | 门店简称 |
| **orgContactNumber** | String | _联系电话_ |
| **orgDetailAddress** | String | _联系地址_ |
| **orgContactMobile** | String | _联系电话_ |
| **bankAccount** | String | _开户银行_ |
| **accountNumber** | String | _账号_ |
| **businessLicenseCode** | String | 营业执照编码 |
| \------项目信息 | | |
| serviceList | array | 项目条目 |
| #### orderNumber | String | 序号(验证可用) |
| sortNumber | String | _序号_ |
| customCode | String | 项目编码 |
| serviceName | String | _项目名称_ |
| **labelName** | String | _业务分类名称_ |
| **nameMember** | String | _会员项目的来源名_ |
| **labelName** | String | 业务分类 |
| price | Double | _工时单价_ |
| workHour | Double | _工时_ |
| subtotal | Double | _金额_ |
| ```plaintext
taxRateOutput
``` | BigDecimal | _销项税率_ |
| ```plaintext
singleFavourable
``` | Double | 优惠金额 |
| discountedSubtotal | Double | _折后金额_ |
| **serviceMemo** | String | _单据服务项目备注_ |
| discount | Double | 折扣 |
| unusedNumber | Integer | 会员卡项目-未使用次数 |
| number | Integer | 会员卡项目-总次数 |
| ```plaintext
favourableVoList
``` | List | 优惠明细 |
| ```plaintext
discountType
``` | Integer | 优惠类型(编码) |
| ```plaintext
discountTypeName
``` | String | 优惠类型名称 |
| amount | Double | 优惠金额 |
| ```plaintext
sourceId
``` | String | 优惠项目的主键,如:如果优惠项是优惠券,那么该字段为优惠券的id |
| **memo** | String | 项目说明 |
| **qualityCheckEmployeeName** | String | 质检人姓名 |
| **qualityCheckEmployeeCode** | String | 质检人工号 |
| **cooperationMemo** | String | 协作备注 |
| **totalWorkHour** | Double | _项目工时合计_ |
| **serviceSubtotalAll** | Double | _工时费小计_ |
| **serviceNum** | Double | _维修项目小计_ |
| **serviceDisCountSubTotal** | Double | _项目折后金额合计_ |
| \-------材料信息 | | |
| partList | array | 材料条目 |
| #### orderNumber | String | 序号(验证可用) |
| sortNumber | String | _序号_ |
| customCode | String | 材料编码 |
| partName | String | _材料名称_ |
| **partBrand** | String | _配件品牌_ |
| spec | String | 规格型号 |
| standard | String | 规格型号(旧) |
| **partShowName** | String | _配件名称规格型号品牌_ |
| **supplierCode** | String | _供应商编码(零件号)_ |
| unit | String | _单位_ |
| number | Double | _数量_ |
| **nameMember** | String | _会员项目的来源名_ |
| price | Double | _价格_ |
| cost | Double | _材料成本_ |
| subtotal | Double | _退货金额_ |
| taxRateOutput | BigDecimal | _销项税率_ |
| singleFavourable | Double | 优惠金额 |
| discountedSubtotal | Double | _折后金额_ |
| **partMemo** | String | _单据服务材料备注_ |
| discount | Double | 折扣 |
| **applyModel** | String | 适用车型 |
| ```plaintext
cargoSpace
``` | String | 材料货位 |
| **defSeats** | List | 材料货位列表 |
| ```plaintext
favourableVoList
``` | List | 优惠明细 |
| ```plaintext
discountType
``` | Integer | 优惠类型(编码) |
| ```plaintext
discountTypeName
``` | String | 优惠类型名称 |
| ```plaintext
amount
``` | Double | 优惠金额 |
| ```plaintext
sourceId
``` | String | 优惠项目的主键,如:如果优惠项是优惠券,那么该字段为优惠券的id |
| \-------自带材料(新版维修/贴膜)信息 | | |
| **bringPartList** | array | 自带材料条目 |
| **partShowName** | String | 自带材料名称(文本) |
| **photoList** | List | 自带图片路径(url) |
| empNameStr | String | 技师 |
| outStockEmployeeName | String | 领料人 |
| **isBring** | String | _是否自带_ |
| **selfPartList** | array | _工单对应配件自带材料集合(内容同上面材料)_ |
| **totalStuffNum** | String | _材料数量合计_ |
| **selfTotalStuffNum** | String | _自带材料数量合计_ |
| **stuffSubtotalAll** | Double | _材料费小计_ |
| **partFavourableTotal** | Double | _材料优惠金额合计_ |
| **partFavourableCommonTotal** | Double | _普通材料优惠金额合计_ |
| **stuffDisCountTotal** | Double | _材料折后金额合计_ |
| **managementCost** | Double | _进销差价合计_ |
| \------附加费用信息 | | |
| **extraChargeList** | | |
| **sortNumber** | String | _序号_ |
| **extraName** | String | _附加费名称_ |
| **subtotal** | Double | _金额_ |
| **memo** | String | _备注_ |
| \-----维修结算费用集合(江苏结算单) | | |
| **mainCostList** | array | |
| **sortNumber** | String | _序号_ |
| **costName** | String | _名称_ |
| **memo** | String | _备注_ |
| **subtotal** | Double | _金额_ |
| \----_其他结算费用集合(江苏结算单)_ | | |
| **otherCostList** | array | 内容同上 维修结算费用集合 |
| **extraCostTotal** | Double | _附加费小计_ |
| **allOtherCost** | Double | _附加费合计应收_ |
| **favourableExtraCost** | Double | _附加费优惠金额_ |
| **receiptAmount** | Double | _实收金额(已收金额-储值卡金额,如未收款,则还加入了欠款金额+客户等级优惠-积分优惠-结清优惠)_ |
| **receiptAmountChinese** | String | _实收金额大写(逻辑同上)_ |
| **amountReal** | Double | 工单收款后真正的实收 |
| **chineseAmount** | String | _实收金额(大写)(逻辑同上)_ |
| **payItemTogetherChinese** | String | _付款方式总额大写_ |
| **payItemTogetherExcludeAccountAmountChinese** | String | 付款总额(排除记账金额)大写 |
| **settleOweAmout** | Double | 结算单中用的待付金额(未收),使用后台逻辑算好 |
| **settleOweAmoutChinese** | String | 待付金额大写 |
| \-----结算付款方式及优惠保存信息 | array | |
| **settlementPayItemList** | | |
| **payWay** | String | _付款方式_ |
| **payAmount** | Double | _付款金额_ |
| **chinesePayAmount** | String | _大写付款方式_ |
| **accountAgreementName** | String | _记账客户名称_ |
| \-----付款方式信息 | array | |
| **payItemList** | | |
| **payWay** | String | _付款方式_ |
| **payAmount** | Double | _付款金额_ |
| **chinesePayAmount** | String | _大写付款方式_ |
| \-----附加项目(江苏结算单) | | |
| **extraPrintVo** | obj | |
| **commissionCustomName** | String | _代办费自定义名称_ |
| **commissionCost** | Double | _代办费成本_ |
| **commissionMemo** | String | _代办费备注_ |
| **diagnosisCustomName** | String | _诊断费自定义名称_ |
| **diagnosisCost** | Double | _诊断费成本_ |
| **diagnosisItemName** | String | _诊断详细名称_ |
| **diagnosisMemo** | String | _诊断费备注_ |
| **checkCustomName** | String | _检查费自定义名称_ |
| **checkCost** | Double | _检查费成本_ |
| **checkMemo** | String | _检查费备注_ |
| **processCustomName** | String | _加工费自定义名称_ |
| **processCost** | Double | _加工费成本_ |
| **processMemo** | String | _加工费备注_ |
| **processItemName** | String | _加工详细名称_ |
| **managementCustomName** | String | _管理费自定义名称_ |
| **managementCost** | Double | _管理费成本_ |
| **managementMemo** | String | _管理费备注_ |
| \-----二期新增字段 | | |
| **oilCapacity** | String | 油量 |
| **nextMileage** | Double | _下次保养里程(工单数据源,目前维保、洗车单读取)_ |
| **nextMaintainDate** | String | _下次保养日期(工单数据源,目前维保、洗车单读取)_ |
| **nextMileageRemind** | Double | _下次服务里程(服务提醒数据源,目前维修、贴膜单读取)_ |
| **nextMaintainDateRemind** | Long | _下次服务时间(服务提醒数据源,目前维修、贴膜单读取)_ |
| **repairPersonContact** | String | _送修人联系方式_ |
| **memberCardNo** | String | _会员号_ |
| **points** | String | _积分_ |
| **czkList** | array | 储值卡列表 |
| **name** | String | 名称 |
| **memberCardNo** | String | 卡号 |
| ```plaintext
**cardOwner**
``` | String | 持卡人 |
| **amount** | Double | 金额 |
| **cardList** | array | 套餐卡列表 |
| **name** | String | 名称 |
| **memberCardNo** | String | 卡号 |
| ```plaintext
**cardOwner**
``` | String | 持卡人 |
| **amount** | Double | 金额 |
| **combineServiceAndPartList** | array | 项目材料组合列表 |
| **servicePrintVo** | 参见serviceList | |
| **partPrintVo** | 参见partList | |
# 案例记录:
#### 1.结算前 待付 结算后实付(跟进结算状态判断,7100 为已结算)
```plaintext
$P{balanceStatus}.equals("7100")?($P{amountAll}.subtract($P{vipExpense}).subtract($P{czkExpense}).subtract($P{serviceFavourable}.add($P{partFavourableCommonTotal}==null?BigDecimal.ZERO:$P{partFavourableCommonTotal}).add($P{serviceFavourableCommonTotal}==null?BigDecimal.ZERO:$P{serviceFavourableCommonTotal}).add($P{partinfoFavourable}).add($P{discountFavourable}).add($P{couponFavourable}).add($P{pointFavourable}).add($P{gatheringFavourable})).setScale( 2, BigDecimal.ROUND_HALF_EVEN ).toString()+($P{payItemTogether}==null?"":"("+$P{payItemTogether}+")")):($P{amountAll}.subtract($P{vipExpense}).subtract($P{czkExpense}).subtract($P{serviceFavourable}.add($P{partFavourableCommonTotal}==null?BigDecimal.ZERO:$P{partFavourableCommonTotal}).add($P{serviceFavourableCommonTotal}==null?BigDecimal.ZERO:$P{serviceFavourableCommonTotal}).add($P{partinfoFavourable}).add($P{discountFavourable}).add($P{couponFavourable}).add($P{pointFavourable}).add($P{gatheringFavourable})).setScale( 2, BigDecimal.ROUND_HALF_EVEN ))
```
* 对应的汉字
```plaintext
$P{balanceStatus}.equals("7100")?$P{payItemTogetherChinese}:$P{settleOweAmoutChinese}
```
# 工具类jar包附件下载:
[请至钉钉文档查看附件《print-core-1.0.7.jar》](https://alidocs.dingtalk.com/i/nodes/vy20BglGWOexYpophlEGoZvGJA7depqY?iframeQuery=anchorId%3DX02mjljl3qzo6fk6o7712b)
### 数字金额转中文方法调用示例:
**数字金额**:$P{amount}==null?BigDecimal.ZERO:$P{amount}
**转中文**:**com.f6car.printserver.core.CharacterUtil.chinese(**$P{amount}==null?BigDecimal.ZERO:$P{amount})
### 日期时间戳转日期示例:
**日期格式选择:**java.lang.Long
**日期时间戳**:$P{nextMaintainDateRemind} **转为目标格式**:$P{nextMaintainDateRemind} == null ? "" : new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date($P{nextMaintainDateRemind}))
其中,"yyyy-MM-dd HH:mm:ss" 根据实际需求指定,比如到日则选择 "yyyy-MM-dd"
### 洗车单
洗车单小票不支持定制,定制洗车单的模板名称必须包含“洗车单”三个字 ,否则无法显示对应模板
> 更新: 2025-02-24 17:08:50 原文: