diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java index 18d492448..c79b3adf4 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java @@ -32,11 +32,13 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.xdadan.erp.common.utils.DateUtils; import com.xdadan.erp.common.utils.DictUtils; +import com.xdadan.erp.emis.domain.EmisExchangeRate; import com.xdadan.erp.emis.domain.EmisSettleSubBill; import com.xdadan.erp.emis.domain.EmisSettleSubBillFeeitem; import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.domain.vo.scan.ScanResult; import com.xdadan.erp.emis.service.EmisBaseService; +import com.xdadan.erp.emis.service.IEmisExchangeRateService; import com.xdadan.erp.emis.service.IEmisSettleBillPayLogService; import com.xdadan.erp.emis.service.billexport.ExcelUtils; import com.xdadan.erp.emis.service.billexport.MapObjectUtil; @@ -87,6 +89,9 @@ public class EmisSettleBillController extends BaseController @Autowired private EmisBaseService emisBaseService; + @Autowired + private IEmisExchangeRateService emisExchangeRateService; + /** * 查询结算总账单列表 @@ -526,33 +531,47 @@ public class EmisSettleBillController extends BaseController if( !CollectionUtils.isEmpty(feeItemList)){ for (EmisSettleSubBillFeeitem feeitem : feeItemList) { + // 所有币种全部统一换算成RMB + + BigDecimal rmbBillFee=feeitem.getBillFee(); // 币种 String currencyStr=""; if(StringUtils.isEmpty(feeitem.getCurrency())){ feeitem.setCurrency("CNY"); } + if(!"CNY".equals(feeitem.getCurrency())){ currencyStr=""+feeitem.getCurrency()+""; + // 非人民币需要换算成人民币 + EmisExchangeRate emisExchangeRate=emisExchangeRateService.getValidExchangeRate(currencyStr,"CNY",DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,billItem.getWaybillDetail().getSendDate())); + double rate=0.0D; + if(emisExchangeRate!=null){ + rate=Double.valueOf(emisExchangeRate.getRate()); + rmbBillFee=rmbBillFee.multiply(BigDecimal.valueOf(rate)); + } + } // 费用细分 if ("1001".equals(feeitem.getFeeCode())) { - transFee = transFee.add(feeitem.getBillFee()); - transFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; + transFee = transFee.add(rmbBillFee); +// transFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; } // 报关费 else if ("2002".equals(feeitem.getFeeCode())) { - cebFee = cebFee.add(feeitem.getBillFee()); - cebFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; + cebFee = cebFee.add(rmbBillFee); +// cebFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; } // 清关费 else if ("2003".equals(feeitem.getFeeCode())) { - declareFee = declareFee.add(feeitem.getBillFee()); - declareFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; + declareFee = declareFee.add(rmbBillFee); +// declareFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; +// } else { - otherFee = otherFee.add(feeitem.getBillFee()); - otherFeeStr= otherFeeStr+""+feeitem.getFeeName()+":"+feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr+","; + otherFee = otherFee.add(rmbBillFee); +// otherFeeStr= otherFeeStr+""+feeitem.getFeeName()+":"+feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr+","; +// } @@ -571,6 +590,11 @@ public class EmisSettleBillController extends BaseController } } + + transFeeStr= transFee.stripTrailingZeros().toPlainString(); + cebFeeStr= cebFee.stripTrailingZeros().toPlainString(); + declareFeeStr= declareFee.stripTrailingZeros().toPlainString(); + otherFeeStr= otherFee.stripTrailingZeros().toPlainString(); }else{ transFeeStr=billItem.getWaybillDetail().getFreight().stripTrailingZeros().toPlainString(); }