This commit is contained in:
linfso 2024-09-03 16:10:57 +08:00
parent aaee38b6cb
commit 348eb5bb74

View File

@ -32,11 +32,13 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xdadan.erp.common.utils.DateUtils; import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.DictUtils; 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.EmisSettleSubBill;
import com.xdadan.erp.emis.domain.EmisSettleSubBillFeeitem; import com.xdadan.erp.emis.domain.EmisSettleSubBillFeeitem;
import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.vo.scan.ScanResult; import com.xdadan.erp.emis.domain.vo.scan.ScanResult;
import com.xdadan.erp.emis.service.EmisBaseService; 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.IEmisSettleBillPayLogService;
import com.xdadan.erp.emis.service.billexport.ExcelUtils; import com.xdadan.erp.emis.service.billexport.ExcelUtils;
import com.xdadan.erp.emis.service.billexport.MapObjectUtil; import com.xdadan.erp.emis.service.billexport.MapObjectUtil;
@ -87,6 +89,9 @@ public class EmisSettleBillController extends BaseController
@Autowired @Autowired
private EmisBaseService emisBaseService; private EmisBaseService emisBaseService;
@Autowired
private IEmisExchangeRateService emisExchangeRateService;
/** /**
* 查询结算总账单列表 * 查询结算总账单列表
@ -526,33 +531,47 @@ public class EmisSettleBillController extends BaseController
if( !CollectionUtils.isEmpty(feeItemList)){ if( !CollectionUtils.isEmpty(feeItemList)){
for (EmisSettleSubBillFeeitem feeitem : feeItemList) { for (EmisSettleSubBillFeeitem feeitem : feeItemList) {
// 所有币种全部统一换算成RMB
BigDecimal rmbBillFee=feeitem.getBillFee();
// 币种 // 币种
String currencyStr=""; String currencyStr="";
if(StringUtils.isEmpty(feeitem.getCurrency())){ if(StringUtils.isEmpty(feeitem.getCurrency())){
feeitem.setCurrency("CNY"); feeitem.setCurrency("CNY");
} }
if(!"CNY".equals(feeitem.getCurrency())){ if(!"CNY".equals(feeitem.getCurrency())){
currencyStr=""+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())) { if ("1001".equals(feeitem.getFeeCode())) {
transFee = transFee.add(feeitem.getBillFee()); transFee = transFee.add(rmbBillFee);
transFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; // transFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr;
} }
// 报关费 // 报关费
else if ("2002".equals(feeitem.getFeeCode())) { else if ("2002".equals(feeitem.getFeeCode())) {
cebFee = cebFee.add(feeitem.getBillFee()); cebFee = cebFee.add(rmbBillFee);
cebFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; // cebFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr;
} }
// 清关费 // 清关费
else if ("2003".equals(feeitem.getFeeCode())) { else if ("2003".equals(feeitem.getFeeCode())) {
declareFee = declareFee.add(feeitem.getBillFee()); declareFee = declareFee.add(rmbBillFee);
declareFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr; // declareFeeStr= feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr;
//
} else { } else {
otherFee = otherFee.add(feeitem.getBillFee()); otherFee = otherFee.add(rmbBillFee);
otherFeeStr= otherFeeStr+""+feeitem.getFeeName()+":"+feeitem.getBillFee().stripTrailingZeros().toPlainString()+currencyStr+","; // 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{ }else{
transFeeStr=billItem.getWaybillDetail().getFreight().stripTrailingZeros().toPlainString(); transFeeStr=billItem.getWaybillDetail().getFreight().stripTrailingZeros().toPlainString();
} }