|
|
@@ -3,6 +3,7 @@ package com.jzg.organization.service.impl;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.ListUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.lang.tree.Tree;
|
|
|
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
|
|
import cn.hutool.core.lang.tree.TreeUtil;
|
|
|
@@ -756,6 +757,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
public List<FollowCompanyFeeVO> followCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo) {
|
|
|
log.info("私有协议-跟单结算记录-结算报表: settlementReportQueryVo=[{}]", JSONUtil.toJsonStr(settlementReportQueryVo));
|
|
|
List<FollowCompanyFeeVO> resultList = new ArrayList<>();
|
|
|
+ String invoiceType = settlementReportQueryVo.getInvoiceType();
|
|
|
|
|
|
// 1. 一次性获取保险公司全量Map,全局复用
|
|
|
Map<String, EsmInsCompany> companyMap = getAllInsCompanyMap();
|
|
|
@@ -771,22 +773,25 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
}
|
|
|
|
|
|
// 应收项为空时才去补充数据,不为空时不补充数据,补充数据是因为联查了invoice和settlement表,所以没开票和结算的数据会被过滤掉,才需要补充数据
|
|
|
- List<InsPlyIncomeDto> incomeDtoList = CollUtil.newArrayList();
|
|
|
- if (StrUtil.isBlank(settlementReportQueryVo.getInvoiceType())){
|
|
|
- // 3. 查询额外其他费用收入数据,补充到结果集
|
|
|
- incomeDtoList = queryFollowIncomeData(settlementReportQueryVo);
|
|
|
- if (CollUtil.isEmpty(incomeDtoList)) {
|
|
|
- return resultList;
|
|
|
- }else{
|
|
|
- // 如果JyPremium不为0,则设置发票类型为4
|
|
|
- incomeDtoList.stream().forEach(item -> {
|
|
|
- if (StrUtil.isNotBlank(item.getJyPremium()) && !NumberUtil.equals(BigDecimal.ZERO, new BigDecimal(item.getJyPremium()))){
|
|
|
- item.setInvoiceType(InvoiceTypeEnum.FEE_4.getCode());
|
|
|
- }else{
|
|
|
- item.setInvoiceType(InvoiceTypeEnum.FEE_2.getCode());
|
|
|
- }
|
|
|
- });
|
|
|
- List<InsPlyIncomeDto> copyList = CollUtil.newArrayList();
|
|
|
+ List<InsPlyIncomeDto> incomeDtoList = queryFollowIncomeData(settlementReportQueryVo);
|
|
|
+ if (CollUtil.isEmpty(incomeDtoList)) {
|
|
|
+ return resultList;
|
|
|
+ }else{
|
|
|
+ // 如果JyPremium不为0,则设置发票类型为4
|
|
|
+ incomeDtoList.stream().forEach(item -> {
|
|
|
+ if (StrUtil.isNotBlank(item.getJyPremium()) && !NumberUtil.equals(BigDecimal.ZERO, new BigDecimal(item.getJyPremium()))){
|
|
|
+ item.setInvoiceType(InvoiceTypeEnum.FEE_4.getCode());
|
|
|
+ }else{
|
|
|
+ item.setInvoiceType(InvoiceTypeEnum.FEE_2.getCode());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 过滤一下invoiceType等于请求接口入参的数据
|
|
|
+ incomeDtoList = incomeDtoList.stream()
|
|
|
+ .filter(income -> StrUtil.isBlank(invoiceType)
|
|
|
+ || invoiceType.equals(income.getInvoiceType()))
|
|
|
+ .toList();
|
|
|
+ List<InsPlyIncomeDto> copyList = CollUtil.newArrayList();
|
|
|
+ if (CollUtil.isNotEmpty(incomeDtoList)){
|
|
|
// 如果有发票类型为4的,则复制一条4的数据,完全一致,但发票类型为2
|
|
|
incomeDtoList.stream().filter(item -> InvoiceTypeEnum.FEE_4.getCode().equals(item.getInvoiceType())).forEach(item -> {
|
|
|
InsPlyIncomeDto incomeDto = new InsPlyIncomeDto();
|
|
|
@@ -794,7 +799,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
incomeDto.setInvoiceType(InvoiceTypeEnum.FEE_2.getCode());
|
|
|
copyList.add(incomeDto);
|
|
|
});
|
|
|
- incomeDtoList.addAll(copyList);
|
|
|
+ incomeDtoList = CollUtil.addAll(incomeDtoList, copyList).stream().toList();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -978,7 +983,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
boolean noFilterCond = StrUtil.isBlank(status)
|
|
|
&& (StrUtil.isBlank(invoiceStartTime) || StrUtil.isBlank(invoiceEndTime))
|
|
|
&& (StrUtil.isBlank(settleStartTime) || StrUtil.isBlank(settleEndTime));
|
|
|
- if (noFilterCond) {
|
|
|
+ if (noFilterCond || CollUtil.isEmpty(incomeList)) {
|
|
|
return incomeList;
|
|
|
}
|
|
|
|
|
|
@@ -1954,7 +1959,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
// 处理结算数据
|
|
|
// 未完全结算完成
|
|
|
InsPlyIncomeInvoiceSettlement settlement = new InsPlyIncomeInvoiceSettlement(invoice.getId(), settlementVo.getActualReceivedAmount(),
|
|
|
- DateTime.now(), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
|
|
|
+ DateUtil.parse(settlementVo.getReceivePaymentDate(), "yyyy-MM-dd HH:mm:ss"), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
|
|
|
insPlyIncomeInvoiceSettlementMapper.insert(settlement);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(settlementVo.getAttachmentIds())) {
|
|
|
@@ -2791,7 +2796,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
// 处理结算数据
|
|
|
// 未完全结算完成
|
|
|
InsPlyIncomeInvoiceSettlement settlement = new InsPlyIncomeInvoiceSettlement(settlementVo.getInvoicingId(), settlementVo.getActualReceivedAmount(),
|
|
|
- DateTime.now(), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
|
|
|
+ DateUtil.parse(settlementVo.getReceivePaymentDate(), "yyyy-MM-dd HH:mm:ss"), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
|
|
|
insPlyIncomeInvoiceSettlementMapper.insert(settlement);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(settlementVo.getAttachmentIds())) {
|
|
|
@@ -3687,6 +3692,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean batchModify(BatchModifyVo batchModifyVo) {
|
|
|
log.info("批量修改应收订单: batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
|
|
|
+ if(StrUtil.isEmpty(batchModifyVo.getContractPhone())){
|
|
|
+ batchModifyVo.setContractPhone(batchModifyVo.getContractUserPhone());
|
|
|
+ }
|
|
|
List<String> incomeIds = batchModifyVo.getIncomeIds();
|
|
|
if (CollUtil.isEmpty(incomeIds)) {
|
|
|
throw new ServiceException("请勾选要批量修改的应收订单");
|
|
|
@@ -4553,7 +4561,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
// 处理结算数据
|
|
|
// 未完全结算完成
|
|
|
InsPlyIncomeInvoiceSettlement settlement = new InsPlyIncomeInvoiceSettlement(settlementVo.getInvoicingId(), settlementVo.getActualReceivedAmount(),
|
|
|
- DateTime.now(), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
|
|
|
+ DateUtil.parse(settlementVo.getReceivePaymentDate(), "yyyy-MM-dd"), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
|
|
|
insPlyIncomeInvoiceSettlementMapper.insert(settlement);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(settlementVo.getAttachmentIds())) {
|
|
|
@@ -6300,6 +6308,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
BigDecimal subtract = BigDecimalUtil.subtract(settlementAmount, insPlyIncomeInvoice.getReceivableSupervisePremium());
|
|
|
if (CollUtil.isNotEmpty(insPlyIncomeInvoiceSettlements)){
|
|
|
if(subtract.compareTo(BigDecimal.ZERO) != 0){
|
|
|
+ // 点标识结清的时候不更新收款日期,和wwq确认过
|
|
|
InsPlyIncomeInvoiceSettlement insPlyIncomeInvoiceSettlement = insPlyIncomeInvoiceSettlements.get(0);
|
|
|
insPlyIncomeInvoiceSettlement.setSettlementPaymentDifference(subtract);
|
|
|
insPlyIncomeInvoiceSettlement.setSettlementPaymentReason(settlementPaymentReason);
|