|
@@ -777,8 +777,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
// 驾意险的总跟单费(jy_follow_premium)
|
|
// 驾意险的总跟单费(jy_follow_premium)
|
|
|
jyFollowPremium;
|
|
jyFollowPremium;
|
|
|
case "5" ->
|
|
case "5" ->
|
|
|
- // 交强的总手续费(jq_commission_premium) + 商业的总手续费(sy_commission_premium) + 交强的总跟单费(jq_follow_premium) + 商业的总跟单费(sy_follow_premium)
|
|
|
|
|
- jqCommissionPremium.add(syCommissionPremium).add(jqFollowPremium).add(syFollowPremium);
|
|
|
|
|
|
|
+ // 现在平台不区分车险非车险了,所以都统计到一起
|
|
|
|
|
+ // 交强的总手续费(jq_commission_premium) + 商业的总手续费(sy_commission_premium) + 交强的总跟单费(jq_follow_premium) + 商业的总跟单费(sy_follow_premium) + 驾意险的总手续费(jy_commission_premium) + 驾意险的总跟单费(jy_follow_premium)
|
|
|
|
|
+ jqCommissionPremium.add(syCommissionPremium).add(jqFollowPremium).add(syFollowPremium).add(jyCommissionPremium).add(jyFollowPremium);
|
|
|
case "6" ->
|
|
case "6" ->
|
|
|
// 驾意险的总手续费(jy_commission_premium) + 驾意险的总跟单费(jy_follow_premium)
|
|
// 驾意险的总手续费(jy_commission_premium) + 驾意险的总跟单费(jy_follow_premium)
|
|
|
jyCommissionPremium.add(jyFollowPremium);
|
|
jyCommissionPremium.add(jyFollowPremium);
|
|
@@ -1055,17 +1056,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
result.setSumPrice(null != invoicingVo.getReceivablePremium() ? invoicingVo.getReceivablePremium().toString() : null);
|
|
result.setSumPrice(null != invoicingVo.getReceivablePremium() ? invoicingVo.getReceivablePremium().toString() : null);
|
|
|
|
|
|
|
|
// ============================结算逻辑============================
|
|
// ============================结算逻辑============================
|
|
|
- // 实际已经收了的金额
|
|
|
|
|
- BigDecimal actualReceivedAmount = this.getInvoicingAmount(settlementVo.getInvoicingId());
|
|
|
|
|
-
|
|
|
|
|
- // 所有需要结算的金额
|
|
|
|
|
- BigDecimal allToSettlement = invoice.getReceivableSupervisePremium().add(invoice.getOverinflatedAmount());
|
|
|
|
|
- // 剩余的金额
|
|
|
|
|
- BigDecimal surplusPremium = allToSettlement.subtract(actualReceivedAmount);
|
|
|
|
|
- log.info("invoiceId=[{}],一共需要结算的金额[{}],实际已经结算的金额[{}],本次计划结算的金额[{}]",
|
|
|
|
|
- settlementVo.getInvoicingId(), allToSettlement,actualReceivedAmount,settlementVo.getActualReceivedAmount());
|
|
|
|
|
// 校验是否超出了剩余的金额
|
|
// 校验是否超出了剩余的金额
|
|
|
- AssertionUtils.isFail(surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) < 0, "已超出应收金额,请核对!");
|
|
|
|
|
|
|
+// AssertionUtils.isFail(surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) < 0, "已超出应收金额,请核对!");
|
|
|
|
|
|
|
|
// 处理结算数据
|
|
// 处理结算数据
|
|
|
// 未完全结算完成
|
|
// 未完全结算完成
|
|
@@ -1507,7 +1499,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
log.info("invoiceId=[{}],一共需要结算的金额[{}],实际已经结算的金额[{}],本次计划结算的金额[{}]",
|
|
log.info("invoiceId=[{}],一共需要结算的金额[{}],实际已经结算的金额[{}],本次计划结算的金额[{}]",
|
|
|
settlementVo.getInvoicingId(), allToSettlement,actualReceivedAmount,settlementVo.getActualReceivedAmount());
|
|
settlementVo.getInvoicingId(), allToSettlement,actualReceivedAmount,settlementVo.getActualReceivedAmount());
|
|
|
// 校验是否超出了剩余的金额
|
|
// 校验是否超出了剩余的金额
|
|
|
- AssertionUtils.isFail(surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) < 0, "已超出应收金额,请核对!");
|
|
|
|
|
|
|
+// AssertionUtils.isFail(surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) < 0, "已超出应收金额,请核对!");
|
|
|
|
|
|
|
|
// 处理结算数据
|
|
// 处理结算数据
|
|
|
// 未完全结算完成
|
|
// 未完全结算完成
|
|
@@ -1529,8 +1521,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
insPlyIncomeInvoiceSettlementFileMapper.insert(files);
|
|
insPlyIncomeInvoiceSettlementFileMapper.insert(files);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 判断是否已经结算完成
|
|
|
|
|
- if (surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) == 0) {
|
|
|
|
|
|
|
+ // 判断是否已经结算完成,剩余金额小于等于实收金额就算完成结算了
|
|
|
|
|
+ if (surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) <= 0) {
|
|
|
log.info("序号为[{}]的发票已经结算完成",insPlyIncomeInvoice.getId());
|
|
log.info("序号为[{}]的发票已经结算完成",insPlyIncomeInvoice.getId());
|
|
|
// 更新发票状态
|
|
// 更新发票状态
|
|
|
insPlyIncomeInvoice.setStatus("1");
|
|
insPlyIncomeInvoice.setStatus("1");
|
|
@@ -2268,6 +2260,12 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
if (null == followInvoicePageListVo || CollUtil.isEmpty(followInvoicePageListVo.getSearchList())){
|
|
if (null == followInvoicePageListVo || CollUtil.isEmpty(followInvoicePageListVo.getSearchList())){
|
|
|
return CollUtil.newArrayList();
|
|
return CollUtil.newArrayList();
|
|
|
}
|
|
}
|
|
|
|
|
+ if (StrUtil.isBlank(followInvoicePageListVo.getSearchList().stream().filter(search -> "signYear".equals(search.getName())).findAny().get().getSearch())){
|
|
|
|
|
+ return CollUtil.newArrayList();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!StrUtil.contains(followInvoicePageListVo.getSearchList().stream().filter(search -> "signYear".equals(search.getName())).findAny().get().getSearch(), ",")){
|
|
|
|
|
+ return CollUtil.newArrayList();
|
|
|
|
|
+ }
|
|
|
FollowInvoicePageListVo.SearchVO searchYear = followInvoicePageListVo.getSearchList().stream().filter(search -> "signYear".equals(search.getName())).findFirst().orElse(new FollowInvoicePageListVo.SearchVO());
|
|
FollowInvoicePageListVo.SearchVO searchYear = followInvoicePageListVo.getSearchList().stream().filter(search -> "signYear".equals(search.getName())).findFirst().orElse(new FollowInvoicePageListVo.SearchVO());
|
|
|
Integer startYear = Integer.parseInt(searchYear.getSearch().split(",")[0]);
|
|
Integer startYear = Integer.parseInt(searchYear.getSearch().split(",")[0]);
|
|
|
Integer endYear = Integer.parseInt(searchYear.getSearch().split(",")[1]);
|
|
Integer endYear = Integer.parseInt(searchYear.getSearch().split(",")[1]);
|
|
@@ -2482,7 +2480,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
log.info("invoiceId=[{}],一共需要结算的金额[{}],实际已经结算的金额[{}],本次计划结算的金额[{}]",
|
|
log.info("invoiceId=[{}],一共需要结算的金额[{}],实际已经结算的金额[{}],本次计划结算的金额[{}]",
|
|
|
settlementVo.getInvoicingId(), allToSettlement,actualReceivedAmount,settlementVo.getActualReceivedAmount());
|
|
settlementVo.getInvoicingId(), allToSettlement,actualReceivedAmount,settlementVo.getActualReceivedAmount());
|
|
|
// 校验是否超出了剩余的金额,判断 surplusPremium 是否 小于 实际到账金额
|
|
// 校验是否超出了剩余的金额,判断 surplusPremium 是否 小于 实际到账金额
|
|
|
- AssertionUtils.isFail(surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) < 0, "已超出应收金额,请核对!");
|
|
|
|
|
|
|
+// AssertionUtils.isFail(surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) < 0, "已超出应收金额,请核对!");
|
|
|
|
|
|
|
|
// 处理结算数据
|
|
// 处理结算数据
|
|
|
// 未完全结算完成
|
|
// 未完全结算完成
|
|
@@ -2504,8 +2502,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
insPlyIncomeInvoiceSettlementFileMapper.insert(files);
|
|
insPlyIncomeInvoiceSettlementFileMapper.insert(files);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 判断是否已经结算完成
|
|
|
|
|
- if (surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) == 0) {
|
|
|
|
|
|
|
+ // 判断是否已经结算完成,剩余金额小于等于实收金额就算完成结算了
|
|
|
|
|
+ if (surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) <= 0) {
|
|
|
log.info("序号为[{}]的发票已经结算完成",insPlyIncomeInvoice.getId());
|
|
log.info("序号为[{}]的发票已经结算完成",insPlyIncomeInvoice.getId());
|
|
|
// 更新发票状态
|
|
// 更新发票状态
|
|
|
insPlyIncomeInvoice.setStatus("1");
|
|
insPlyIncomeInvoice.setStatus("1");
|
|
@@ -3173,9 +3171,10 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
Map<String, BigDecimal> ptInvoicedAmountMap =calRes.stream().collect(Collectors.toMap(CalRes::getCompanyId, CalRes::getAmount, (o1,o2)->o1));
|
|
Map<String, BigDecimal> ptInvoicedAmountMap =calRes.stream().collect(Collectors.toMap(CalRes::getCompanyId, CalRes::getAmount, (o1,o2)->o1));
|
|
|
|
|
|
|
|
// 结算费用
|
|
// 结算费用
|
|
|
- calRes = baseMapper.querySettledAmount(systemCode, queryVo.getInvoiceStartTime(), queryVo.getInvoiceEndTime(), queryVo.getAgreementType());
|
|
|
|
|
- Map<String, BigDecimal> sxfSettledAmountMap = calRes.stream().collect(Collectors.toMap(CalRes::getCompanyId, CalRes::getSxfSettlement, (o1,o2)->o1));
|
|
|
|
|
- Map<String, BigDecimal> gdfSettledAmountMap = calRes.stream().collect(Collectors.toMap(CalRes::getCompanyId, CalRes::getGdfSettlement, (o1,o2)->o1));
|
|
|
|
|
|
|
+ List<CalRes> sxfList = baseMapper.querySettledAmount(systemCode, queryVo.getInvoiceStartTime(), queryVo.getInvoiceEndTime(), queryVo.getAgreementType(), CollUtil.newArrayList("1", "3"));
|
|
|
|
|
+ List<CalRes> gdfList = baseMapper.querySettledAmount(systemCode, queryVo.getInvoiceStartTime(), queryVo.getInvoiceEndTime(), queryVo.getAgreementType(), CollUtil.newArrayList("2", "4"));
|
|
|
|
|
+ Map<String, BigDecimal> sxfSettledAmountMap = CollUtil.isNotEmpty(sxfList) ? sxfList.stream().collect(Collectors.toMap(CalRes::getCompanyId, CalRes::getSettlement, (o1,o2)->o1)) : new HashMap<>();
|
|
|
|
|
+ Map<String, BigDecimal> gdfSettledAmountMap = CollUtil.isNotEmpty(gdfList) ? gdfList.stream().collect(Collectors.toMap(CalRes::getCompanyId, CalRes::getSettlement, (o1,o2)->o1)) : new HashMap<>();
|
|
|
|
|
|
|
|
// 计算已开票和未开票
|
|
// 计算已开票和未开票
|
|
|
for (String companyId : companyMap.keySet()) {
|
|
for (String companyId : companyMap.keySet()) {
|