请解释这段代码 excelInvVo.setCIsCrossStartLine("0");//是否跨起付线为否 excelInvVo.setCIsCrossCappLine("0");//是否跨封顶线为否 Double subCappLine = CalcUtils.sub(excelInvVo.getNSumAmt(),excelInvVo.getNSelfExpense(), excelInvVo.getNCategSelfpay(),excelInvVo.getNOverallAmt(),excelInvVo.getNCappLine()); Double NDownLineThirdAmt = 0.0;//起付线下第三方 Double NUpLineThirdAmt = 0.0;//起付线上第三方 Double NCrossCappThirdAmt= 0.0;//跨封顶线第三方 Double thirdAmt = Double.valueOf(excelInvVo.getCThirdCompen());//第三方支付 if(excelInvVo.getNCappLine() != null && excelInvVo.getNCappLine().doubleValue() > 0.0 && subCappLine.doubleValue() == 0.0){ //仅超封顶线 责任场景 excelInvVo.setCIsCrossStartLine("0");//是否跨起付线为否 }else{ if(excelInvVo.getNDeductible()!=null && excelInvVo.getNDeductible().doubleValue()>0.0){ //发票金额-自费-分类自付-起付线 Double sub = CalcUtils.sub(excelInvVo.getNSumAmt(),excelInvVo.getNSelfExpense(),excelInvVo.getNCategSelfpay(),excelInvVo.getNDeductible()); if(sub.doubleValue()>0.0){ excelInvVo.setCIsCrossStartLine("1");//是否跨起付线为是 }else{ excelInvVo.setCIsCrossStartLine("0");//是否跨起付线为否 } } if(excelInvVo.getNCappLine() != null && excelInvVo.getNCappLine().doubleValue() > 0.0){ excelInvVo.setCIsCrossCappLine("1");//是否跨封顶线为是 } }
时间: 2024-02-07 08:03:51 浏览: 60
这段代码主要是对一个名为 `excelInvVo` 的对象的属性进行设置,该对象包含了一张发票的相关信息。具体来说,代码执行的过程如下:
1. 首先设置是否跨起付线为“否”(即0)
```excelInvVo.setCIsCrossStartLine("0");//是否跨起付线为否```
2. 然后设置是否跨封顶线为“否”(即0)
```excelInvVo.setCIsCrossCappLine("0");//是否跨封顶线为否```
3. 接着计算起付线下第三方、起付线上第三方、跨封顶线第三方以及第三方支付的金额。
```
Double subCappLine = CalcUtils.sub(excelInvVo.getNSumAmt(),excelInvVo.getNSelfExpense(), excelInvVo.getNCategSelfpay(),excelInvVo.getNOverallAmt(),excelInvVo.getNCappLine());
Double NDownLineThirdAmt = 0.0;//起付线下第三方
Double NUpLineThirdAmt = 0.0;//起付线上第三方
Double NCrossCappThirdAmt= 0.0;//跨封顶线第三方
Double thirdAmt = Double.valueOf(excelInvVo.getCThirdCompen());//第三方支付
```
4. 对于仅超过封顶线的情况,设置是否跨起付线为“否”。
```
if(excelInvVo.getNCappLine() != null && excelInvVo.getNCappLine().doubleValue() > 0.0 && subCappLine.doubleValue() == 0.0){ //仅超封顶线 责任场景
excelInvVo.setCIsCrossStartLine("0");//是否跨起付线为否
}
```
5. 对于不仅超过封顶线的情况,计算是否跨起付线和是否跨封顶线,并分别设置为“是”或“否”。
```
else{
if(excelInvVo.getNDeductible()!=null && excelInvVo.getNDeductible().doubleValue()>0.0){
//发票金额-自费-分类自付-起付线
Double sub = CalcUtils.sub(excelInvVo.getNSumAmt(),excelInvVo.getNSelfExpense(),excelInvVo.getNCategSelfpay(),excelInvVo.getNDeductible());
if(sub.doubleValue()>0.0){
excelInvVo.setCIsCrossStartLine("1");//是否跨起付线为是
}else{
excelInvVo.setCIsCrossStartLine("0");//是否跨起付线为否
}
}
if(excelInvVo.getNCappLine() != null && excelInvVo.getNCappLine().doubleValue() > 0.0){
excelInvVo.setCIsCrossCappLine("1");//是否跨封顶线为是
}
}
```
阅读全文