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