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.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();
}