|
@@ -517,7 +517,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
List<Long> allContractIds = contractList.stream().map(Contract::getId).collect(Collectors.toList());
|
|
List<Long> allContractIds = contractList.stream().map(Contract::getId).collect(Collectors.toList());
|
|
Map<Long, Contract> contractMap = contractList.stream().collect(Collectors.toMap(Contract::getId, Function.identity()));
|
|
Map<Long, Contract> contractMap = contractList.stream().collect(Collectors.toMap(Contract::getId, Function.identity()));
|
|
|
|
|
|
- List<EhsdPurchase> ehsdPurchaseList = ehsdPurchaseService.list(q -> q.in(EhsdPurchase::getDataResourceId, allContractIds));
|
|
|
|
|
|
+ List<EhsdPurchase> ehsdPurchaseList = ehsdPurchaseService.list(q -> q.in(EhsdPurchase::getDataResourceId, allContractIds)
|
|
|
|
+ .in(EhsdPurchase::getStatus, 10, 30, 60, 70, 99));
|
|
|
|
|
|
for (ContractBudgetVo contractBudgetVo : list) {
|
|
for (ContractBudgetVo contractBudgetVo : list) {
|
|
Long contractId = contractBudgetVo.getContractId();
|
|
Long contractId = contractBudgetVo.getContractId();
|
|
@@ -542,6 +543,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
for (Contract contract : arr) {
|
|
for (Contract contract : arr) {
|
|
ContractBudgetVo.GrossProfitInfo grossProfitInfo = new ContractBudgetVo.GrossProfitInfo();
|
|
ContractBudgetVo.GrossProfitInfo grossProfitInfo = new ContractBudgetVo.GrossProfitInfo();
|
|
grossProfitInfo.setContractAmount(contract.getAmount());
|
|
grossProfitInfo.setContractAmount(contract.getAmount());
|
|
|
|
+ grossProfitInfo.setContractCurrency(contract.getCurrency());
|
|
|
|
+ grossProfitInfo.setContractRmbAmount(contract.getAmount().multiply(contract.getRate()));
|
|
grossProfitInfo.setCreateTime(contract.getCreateTime());
|
|
grossProfitInfo.setCreateTime(contract.getCreateTime());
|
|
grossProfitInfoList.add(grossProfitInfo);
|
|
grossProfitInfoList.add(grossProfitInfo);
|
|
}
|
|
}
|
|
@@ -556,32 +559,39 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
|
|
|
//赋值信息
|
|
//赋值信息
|
|
BigDecimal lastContractAmount = BigDecimal.ZERO;
|
|
BigDecimal lastContractAmount = BigDecimal.ZERO;
|
|
|
|
+ String lastContractCurrency = "";
|
|
|
|
+ BigDecimal lastContractRmbAmount = BigDecimal.ZERO;
|
|
BigDecimal lastPurchaseAmount = BigDecimal.ZERO;
|
|
BigDecimal lastPurchaseAmount = BigDecimal.ZERO;
|
|
for (ContractBudgetVo.GrossProfitInfo grossProfitInfo : grossProfitInfoList) {
|
|
for (ContractBudgetVo.GrossProfitInfo grossProfitInfo : grossProfitInfoList) {
|
|
- BigDecimal contractAmount = grossProfitInfo.getContractAmount();
|
|
|
|
|
|
+ BigDecimal contractRmbAmount = grossProfitInfo.getContractRmbAmount();
|
|
BigDecimal purchaseAmount = grossProfitInfo.getPurchaseAmount();
|
|
BigDecimal purchaseAmount = grossProfitInfo.getPurchaseAmount();
|
|
- if (ObjectUtil.isEmpty(contractAmount)) {
|
|
|
|
|
|
+ if (ObjectUtil.isEmpty(contractRmbAmount)) {
|
|
grossProfitInfo.setContractAmount(lastContractAmount);
|
|
grossProfitInfo.setContractAmount(lastContractAmount);
|
|
|
|
+ grossProfitInfo.setContractCurrency(lastContractCurrency);
|
|
|
|
+ grossProfitInfo.setContractRmbAmount(lastContractRmbAmount);
|
|
}
|
|
}
|
|
if (ObjectUtil.isEmpty(purchaseAmount)) {
|
|
if (ObjectUtil.isEmpty(purchaseAmount)) {
|
|
grossProfitInfo.setPurchaseAmount(lastPurchaseAmount);
|
|
grossProfitInfo.setPurchaseAmount(lastPurchaseAmount);
|
|
}
|
|
}
|
|
//赋值上次金额
|
|
//赋值上次金额
|
|
|
|
+ lastContractRmbAmount = grossProfitInfo.getContractRmbAmount();
|
|
lastContractAmount = grossProfitInfo.getContractAmount();
|
|
lastContractAmount = grossProfitInfo.getContractAmount();
|
|
|
|
+ lastContractCurrency = grossProfitInfo.getContractCurrency();
|
|
lastPurchaseAmount = grossProfitInfo.getPurchaseAmount();
|
|
lastPurchaseAmount = grossProfitInfo.getPurchaseAmount();
|
|
|
|
|
|
|
|
+
|
|
//退税金额
|
|
//退税金额
|
|
BigDecimal refundableAmount = contractBudgetVo.getRefundableAmount();
|
|
BigDecimal refundableAmount = contractBudgetVo.getRefundableAmount();
|
|
- BigDecimal incomeAmount = grossProfitInfo.getContractAmount().add(refundableAmount);
|
|
|
|
|
|
+ BigDecimal incomeAmount = grossProfitInfo.getContractRmbAmount().add(refundableAmount);
|
|
|
|
|
|
//计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
|
|
//计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
|
|
- BigDecimal expenditureAmount = contractBudgetVo.getTrailerFee() == null ? BigDecimal.ZERO : contractBudgetVo.getTrailerFee().add
|
|
|
|
- (contractBudgetVo.getCustomsFee() == null ? BigDecimal.ZERO : contractBudgetVo.getCustomsFee()).add
|
|
|
|
- (contractBudgetVo.getAgencyFee() == null ? BigDecimal.ZERO : contractBudgetVo.getAgencyFee()).add
|
|
|
|
- (contractBudgetVo.getPortMixedFee() == null ? BigDecimal.ZERO : contractBudgetVo.getPortMixedFee()).add
|
|
|
|
- (contractBudgetVo.getInspectionRedPack() == null ? BigDecimal.ZERO : contractBudgetVo.getInspectionRedPack()).add
|
|
|
|
- (contractBudgetVo.getCommission() == null ? BigDecimal.ZERO : contractBudgetVo.getCommission()).add
|
|
|
|
- (contractBudgetVo.getOther() == null ? BigDecimal.ZERO : contractBudgetVo.getOther());
|
|
|
|
|
|
+ BigDecimal expenditureAmount = (contractBudgetVo.getTrailerFee() == null ? BigDecimal.ZERO : contractBudgetVo.getTrailerFee())
|
|
|
|
+ .add(contractBudgetVo.getCustomsFee() == null ? BigDecimal.ZERO : contractBudgetVo.getCustomsFee())
|
|
|
|
+ .add(contractBudgetVo.getAgencyFee() == null ? BigDecimal.ZERO : contractBudgetVo.getAgencyFee())
|
|
|
|
+ .add(contractBudgetVo.getPortMixedFee() == null ? BigDecimal.ZERO : contractBudgetVo.getPortMixedFee())
|
|
|
|
+ .add(contractBudgetVo.getInspectionRedPack() == null ? BigDecimal.ZERO : contractBudgetVo.getInspectionRedPack())
|
|
|
|
+ .add(contractBudgetVo.getCommission() == null ? BigDecimal.ZERO : contractBudgetVo.getCommission())
|
|
|
|
+ .add(contractBudgetVo.getOther() == null ? BigDecimal.ZERO : contractBudgetVo.getOther());
|
|
expenditureAmount = expenditureAmount.add(grossProfitInfo.getPurchaseAmount() == null ? BigDecimal.ZERO : grossProfitInfo.getPurchaseAmount());
|
|
expenditureAmount = expenditureAmount.add(grossProfitInfo.getPurchaseAmount() == null ? BigDecimal.ZERO : grossProfitInfo.getPurchaseAmount());
|
|
|
|
|
|
BigDecimal grossProfit = incomeAmount.subtract(expenditureAmount);
|
|
BigDecimal grossProfit = incomeAmount.subtract(expenditureAmount);
|
|
@@ -598,7 +608,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
private List<Contract> recursionOldContract(List<Long> contractIds) {
|
|
private List<Contract> recursionOldContract(List<Long> contractIds) {
|
|
- List<Contract> contract = this.list(q -> q.in(Contract::getId, contractIds));
|
|
|
|
|
|
+ List<Contract> contract = this.list(q -> q.in(Contract::getId, contractIds).in(Contract::getStatus, 10, 30, 60, 70, 99));
|
|
List<Long> contractIds1 = contract.stream().map(Contract::getOldContractId).distinct()
|
|
List<Long> contractIds1 = contract.stream().map(Contract::getOldContractId).distinct()
|
|
.filter(item -> ObjectUtil.isNotEmpty(item)).collect(Collectors.toList());
|
|
.filter(item -> ObjectUtil.isNotEmpty(item)).collect(Collectors.toList());
|
|
if (ObjectUtil.isNotEmpty(contractIds1)) {
|
|
if (ObjectUtil.isNotEmpty(contractIds1)) {
|
|
@@ -690,14 +700,14 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
v.setAccessoriesAmount(accessoriesAmount);
|
|
v.setAccessoriesAmount(accessoriesAmount);
|
|
}
|
|
}
|
|
//计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
|
|
//计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
|
|
- v.setExpenditureAmount(v.getTrailerFee() == null ? BigDecimal.ZERO : v.getTrailerFee().multiply(new BigDecimal(map.getOrDefault(v.getTrailerFeeCurrency(), BigDecimal.ONE).toString())).add
|
|
|
|
- (v.getCustomsFee() == null ? BigDecimal.ZERO : v.getCustomsFee().multiply(new BigDecimal(map.getOrDefault(v.getCustomsFeeCurrency(), BigDecimal.ONE).toString()))).add
|
|
|
|
- (v.getAgencyFee() == null ? BigDecimal.ZERO : v.getAgencyFee().multiply(new BigDecimal(map.getOrDefault(v.getAgencyFeeCurrency(), BigDecimal.ONE).toString()))).add
|
|
|
|
- (v.getPortMixedFee() == null ? BigDecimal.ZERO : v.getPortMixedFee().multiply(new BigDecimal(map.getOrDefault(v.getPortMixedFeeCurrency(), BigDecimal.ONE).toString()))).add
|
|
|
|
- (v.getInspectionRedPack() == null ? BigDecimal.ZERO : v.getInspectionRedPack().multiply(new BigDecimal(map.getOrDefault(v.getInspectionRedPackCurrency(), BigDecimal.ONE).toString()))).add
|
|
|
|
- (v.getCommission() == null ? BigDecimal.ZERO : v.getCommission().multiply(new BigDecimal(map.getOrDefault(v.getCommissionCurrency(), BigDecimal.ONE).toString()))).add
|
|
|
|
- (v.getOther() == null ? BigDecimal.ZERO : v.getOther().multiply(new BigDecimal(map.getOrDefault(v.getOtherCurrency(), BigDecimal.ONE).toString()))).add
|
|
|
|
- (v.getEhsdSumAmount() == null ? BigDecimal.ZERO : v.getEhsdSumAmount())
|
|
|
|
|
|
+ v.setExpenditureAmount((v.getTrailerFee() == null ? BigDecimal.ZERO : v.getTrailerFee().multiply(new BigDecimal(map.getOrDefault(v.getTrailerFeeCurrency(), BigDecimal.ONE).toString())))
|
|
|
|
+ .add(v.getCustomsFee() == null ? BigDecimal.ZERO : v.getCustomsFee().multiply(new BigDecimal(map.getOrDefault(v.getCustomsFeeCurrency(), BigDecimal.ONE).toString())))
|
|
|
|
+ .add(v.getAgencyFee() == null ? BigDecimal.ZERO : v.getAgencyFee().multiply(new BigDecimal(map.getOrDefault(v.getAgencyFeeCurrency(), BigDecimal.ONE).toString())))
|
|
|
|
+ .add(v.getPortMixedFee() == null ? BigDecimal.ZERO : v.getPortMixedFee().multiply(new BigDecimal(map.getOrDefault(v.getPortMixedFeeCurrency(), BigDecimal.ONE).toString())))
|
|
|
|
+ .add(v.getInspectionRedPack() == null ? BigDecimal.ZERO : v.getInspectionRedPack().multiply(new BigDecimal(map.getOrDefault(v.getInspectionRedPackCurrency(), BigDecimal.ONE).toString())))
|
|
|
|
+ .add(v.getCommission() == null ? BigDecimal.ZERO : v.getCommission().multiply(new BigDecimal(map.getOrDefault(v.getCommissionCurrency(), BigDecimal.ONE).toString())))
|
|
|
|
+ .add(v.getOther() == null ? BigDecimal.ZERO : v.getOther().multiply(new BigDecimal(map.getOrDefault(v.getOtherCurrency(), BigDecimal.ONE).toString())))
|
|
|
|
+ .add(v.getEhsdSumAmount() == null ? BigDecimal.ZERO : v.getEhsdSumAmount())
|
|
);
|
|
);
|
|
//处理退税金额
|
|
//处理退税金额
|
|
handleRefundTax(v);
|
|
handleRefundTax(v);
|
|
@@ -747,16 +757,16 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
BigDecimal rate = v.getRate();
|
|
BigDecimal rate = v.getRate();
|
|
|
|
|
|
//计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
|
|
//计算支出总计 除合同金额(转人民币)+应退税金额(转人民币) 其他金额相加
|
|
- v.setExpenditureAmount(
|
|
|
|
- v.getTrailerFee() == null ? BigDecimal.ZERO : v.getTrailerFee().add
|
|
|
|
- (v.getCustomsFee() == null ? BigDecimal.ZERO : v.getCustomsFee()).add
|
|
|
|
- (v.getAgencyFee() == null ? BigDecimal.ZERO : v.getAgencyFee()).add
|
|
|
|
- (v.getPortMixedFee() == null ? BigDecimal.ZERO : v.getPortMixedFee()).add
|
|
|
|
- (v.getInspectionRedPack() == null ? BigDecimal.ZERO : v.getInspectionRedPack()).add
|
|
|
|
- (v.getCommission() == null ? BigDecimal.ZERO : v.getCommission()).add
|
|
|
|
- (v.getOther() == null ? BigDecimal.ZERO : v.getOther()).add
|
|
|
|
- (v.getEhsdSumAmount() == null ? BigDecimal.ZERO : v.getEhsdSumAmount())
|
|
|
|
|
|
+ v.setExpenditureAmount((v.getTrailerFee() == null ? BigDecimal.ZERO : v.getTrailerFee())
|
|
|
|
+ .add(v.getCustomsFee() == null ? BigDecimal.ZERO : v.getCustomsFee())
|
|
|
|
+ .add(v.getAgencyFee() == null ? BigDecimal.ZERO : v.getAgencyFee())
|
|
|
|
+ .add(v.getPortMixedFee() == null ? BigDecimal.ZERO : v.getPortMixedFee())
|
|
|
|
+ .add(v.getInspectionRedPack() == null ? BigDecimal.ZERO : v.getInspectionRedPack())
|
|
|
|
+ .add(v.getCommission() == null ? BigDecimal.ZERO : v.getCommission())
|
|
|
|
+ .add(v.getOther() == null ? BigDecimal.ZERO : v.getOther())
|
|
|
|
+ .add(v.getEhsdSumAmount() == null ? BigDecimal.ZERO : v.getEhsdSumAmount())
|
|
);
|
|
);
|
|
|
|
+
|
|
//处理退税金额
|
|
//处理退税金额
|
|
handleRefundTax(v);
|
|
handleRefundTax(v);
|
|
v.setRmbContractAmount(v.getAmount().multiply(rate));
|
|
v.setRmbContractAmount(v.getAmount().multiply(rate));
|