md
This commit is contained in:
parent
8c00beae3f
commit
1482183526
@ -15,6 +15,7 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.xdadan.erp.common.utils.DateUtils;
|
||||
import com.xdadan.erp.emis.domain.*;
|
||||
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
@ -56,6 +57,9 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
|
||||
@Autowired
|
||||
protected EmisWaybillMapper emisWaybillMapper;
|
||||
|
||||
@Autowired
|
||||
private EmisExchangeRateMapper emisExchangeRateMapper;
|
||||
|
||||
/**
|
||||
* 查询TMS运输成本账单
|
||||
* @param id TMS运输成本账单主键
|
||||
@ -120,19 +124,53 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
|
||||
// 总票数
|
||||
emisTmsCostFee.setSendPieceSum(emisTmsCostFee.getBillRelList().size());
|
||||
|
||||
emisTmsCostFeeMapper.insertEmisTmsCostFee(emisTmsCostFee);
|
||||
|
||||
BigDecimal totalCostCnyFee=BigDecimal.ZERO;
|
||||
BigDecimal totalCostUsdFee=BigDecimal.ZERO;
|
||||
// 插入关联费用,只保存费用大于0的费用
|
||||
for (EmisTmsCostFeeFeeitem feeItem:emisTmsCostFee.getFeeItemList()) {
|
||||
if(
|
||||
(feeItem.getFee()!=null && feeItem.getFee().compareTo(BigDecimal.ZERO)>0)
|
||||
|| (feeItem.getPrice()!=null && feeItem.getPrice().compareTo(BigDecimal.ZERO)>0)
|
||||
) {
|
||||
|
||||
// 币种进行换算
|
||||
if(!"CNY".equals(feeItem.getCurrency())){
|
||||
Date calcDate = new Date();
|
||||
if(calcDate==null){
|
||||
calcDate= new Date();
|
||||
}
|
||||
|
||||
EmisExchangeRate exchangeRate= emisExchangeRateMapper.getValidExchangeRate(feeItem.getCurrency(), "CNY", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,calcDate));
|
||||
if(exchangeRate!=null){
|
||||
BigDecimal cnyRealFee = feeItem.getFee().multiply( BigDecimal.valueOf( Double.valueOf(exchangeRate.getRate()) ) );
|
||||
String feeItemRemark = "汇率:"+exchangeRate.getRate()+","+ cnyRealFee.stripTrailingZeros().toPlainString();
|
||||
feeItem.setRemark(feeItemRemark);
|
||||
feeItem.setCnyFee(cnyRealFee);
|
||||
}else{
|
||||
BigDecimal cnyRealFee = feeItem.getFee();
|
||||
String feeItemRemark = "汇率:0.0,"+ cnyRealFee.stripTrailingZeros().toPlainString();
|
||||
feeItem.setRemark(feeItemRemark);
|
||||
feeItem.setCnyFee(cnyRealFee);
|
||||
}
|
||||
|
||||
totalCostUsdFee=totalCostUsdFee.add(feeItem.getFee());
|
||||
|
||||
}else{
|
||||
feeItem.setCnyFee(feeItem.getFee());
|
||||
|
||||
totalCostCnyFee=totalCostCnyFee.add(feeItem.getFee());
|
||||
}
|
||||
|
||||
feeItem.setId(null);
|
||||
feeItem.setCostNo(costNo);
|
||||
emisTmsCostFeeFeeitemMapper.insertEmisTmsCostFeeFeeitem(feeItem);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
emisTmsCostFeeMapper.insertEmisTmsCostFee(emisTmsCostFee);
|
||||
|
||||
// 计算分摊费用
|
||||
// reCalcSplitCostFee(costNo);
|
||||
|
||||
@ -232,7 +270,7 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
|
||||
else if ("3".equals(oldCostFee.getSplitType())) {
|
||||
splitRate = BigDecimal.valueOf(1.0D / (double) sendPieceSum);
|
||||
}
|
||||
splitCostFee = feeItem.getFee().multiply(splitRate);
|
||||
splitCostFee = feeItem.getCnyFee().multiply(splitRate);
|
||||
splitItem.setCostFee(splitCostFee);
|
||||
|
||||
splitItem.setBillWeight(billCodeItem.getWaybillDetail().getBillWeight());
|
||||
@ -359,6 +397,10 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
|
||||
|
||||
// 删除旧的费用
|
||||
emisTmsCostFeeFeeitemMapper.deleteEmisTmsCostFeeFeeitemByCostNo(emisTmsCostFee.getCostNo());
|
||||
|
||||
BigDecimal totalCostCnyFee=BigDecimal.ZERO;
|
||||
BigDecimal totalCostUsdFee=BigDecimal.ZERO;
|
||||
|
||||
// 插入关联费用
|
||||
for (EmisTmsCostFeeFeeitem feeItem:emisTmsCostFee.getFeeItemList()
|
||||
) {
|
||||
@ -366,6 +408,35 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
|
||||
(feeItem.getFee()!=null && feeItem.getFee().compareTo(BigDecimal.ZERO)>0)
|
||||
|| (feeItem.getPrice()!=null && feeItem.getPrice().compareTo(BigDecimal.ZERO)>0)
|
||||
) {
|
||||
|
||||
// 币种进行换算
|
||||
if(!"CNY".equals(feeItem.getCurrency())){
|
||||
Date calcDate = new Date();
|
||||
if(calcDate==null){
|
||||
calcDate= new Date();
|
||||
}
|
||||
|
||||
EmisExchangeRate exchangeRate= emisExchangeRateMapper.getValidExchangeRate(feeItem.getCurrency(), "CNY", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,calcDate));
|
||||
if(exchangeRate!=null){
|
||||
BigDecimal cnyRealFee = feeItem.getFee().multiply( BigDecimal.valueOf( Double.valueOf(exchangeRate.getRate()) ) );
|
||||
String feeItemRemark = "汇率:"+exchangeRate.getRate()+","+ cnyRealFee.stripTrailingZeros().toPlainString();
|
||||
feeItem.setRemark(feeItemRemark);
|
||||
feeItem.setCnyFee(cnyRealFee);
|
||||
}else{
|
||||
BigDecimal cnyRealFee = feeItem.getFee();
|
||||
String feeItemRemark = "汇率:0.0,"+ cnyRealFee.stripTrailingZeros().toPlainString();
|
||||
feeItem.setRemark(feeItemRemark);
|
||||
feeItem.setCnyFee(cnyRealFee);
|
||||
}
|
||||
|
||||
totalCostUsdFee=totalCostUsdFee.add(feeItem.getFee());
|
||||
|
||||
}else{
|
||||
feeItem.setCnyFee(feeItem.getFee());
|
||||
|
||||
totalCostCnyFee=totalCostCnyFee.add(feeItem.getFee());
|
||||
}
|
||||
|
||||
feeItem.setId(null);
|
||||
feeItem.setCostNo(costNo);
|
||||
emisTmsCostFeeFeeitemMapper.insertEmisTmsCostFeeFeeitem(feeItem);
|
||||
@ -374,6 +445,8 @@ public class EmisTmsCostFeeServiceImpl implements IEmisTmsCostFeeService
|
||||
|
||||
// 设置为未计算
|
||||
emisTmsCostFee.setBlHasCalc("0");
|
||||
emisTmsCostFee.setCostFee(totalCostCnyFee);
|
||||
emisTmsCostFee.setUsdCostFee(totalCostUsdFee);
|
||||
emisTmsCostFeeMapper.updateEmisTmsCostFee(emisTmsCostFee);
|
||||
|
||||
// 计算分摊费用
|
||||
|
||||
Loading…
Reference in New Issue
Block a user