|
@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.DateSplitDTO; |
|
|
import com.qs.serve.common.model.dto.PageVo; |
|
|
import com.qs.serve.common.model.dto.PageVo; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.common.util.*; |
|
|
|
|
|
import com.qs.serve.modules.bir.consts.TbsVtbPayShowType; |
|
|
import com.qs.serve.modules.bir.entity.BirBaseActivity; |
|
|
import com.qs.serve.modules.bir.entity.BirBaseActivity; |
|
|
import com.qs.serve.modules.bir.entity.dto.BirPayJoinDTO; |
|
|
import com.qs.serve.modules.bir.entity.dto.BirPayJoinDTO; |
|
|
import com.qs.serve.modules.bir.entity.dto.BirTbsVtbPayJoinDTO; |
|
|
import com.qs.serve.modules.bir.entity.dto.BirTbsVtbPayJoinDTO; |
|
@ -36,9 +37,12 @@ import java.math.BigDecimal; |
|
|
import java.math.RoundingMode; |
|
|
import java.math.RoundingMode; |
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
|
|
|
import java.util.LinkedHashMap; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Optional; |
|
|
import java.util.Optional; |
|
|
|
|
|
import java.util.function.Function; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* ROI费率(活动档案) 服务实现类 |
|
|
* ROI费率(活动档案) 服务实现类 |
|
@ -125,6 +129,7 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl<BirTbsVtbPayJoinMap |
|
|
BirTbsVtbPayJoinDTO sumDto = new BirTbsVtbPayJoinDTO(); |
|
|
BirTbsVtbPayJoinDTO sumDto = new BirTbsVtbPayJoinDTO(); |
|
|
|
|
|
|
|
|
so.setOnlyAct(1); |
|
|
so.setOnlyAct(1); |
|
|
|
|
|
so.setShowType(0); |
|
|
List<BirTbsVtbPayJoinDTO> costApplyList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so); |
|
|
List<BirTbsVtbPayJoinDTO> costApplyList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so); |
|
|
List<Long> actIds = costApplyList.stream().map(a->a.getActivityId()).collect(Collectors.toList()); |
|
|
List<Long> actIds = costApplyList.stream().map(a->a.getActivityId()).collect(Collectors.toList()); |
|
|
if(actIds.size()==0){ |
|
|
if(actIds.size()==0){ |
|
@ -138,11 +143,26 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl<BirTbsVtbPayJoinMap |
|
|
|
|
|
|
|
|
List<BirTbsVtbPayJoinDTO> sumPayAmountList = actIds.size()>0?this.baseMapper.selectSumPayAmount(actIds):new ArrayList<>(); |
|
|
List<BirTbsVtbPayJoinDTO> sumPayAmountList = actIds.size()>0?this.baseMapper.selectSumPayAmount(actIds):new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal vtbAmount = sumVtbAmountList.stream().filter(a->a.getCheckedAmount()!=null) |
|
|
|
|
|
.map(BirTbsVtbPayJoinDTO::getCheckedAmount) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add).add( |
|
|
|
|
|
sumVtbAmountList.stream().filter(a->a.getCheckingAmount()!=null) |
|
|
|
|
|
.map(BirTbsVtbPayJoinDTO::getCheckingAmount) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal payAmount = sumPayAmountList.stream().filter(a->a.getPayedAmount()!=null) |
|
|
|
|
|
.map(BirTbsVtbPayJoinDTO::getPayedAmount) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
List<BirTbsVtbPayJoinDTO> returnActDtoList = dtoList.stream() |
|
|
List<BirTbsVtbPayJoinDTO> returnActDtoList = dtoList.stream() |
|
|
.collect(Collectors.groupingBy(BirTbsVtbPayJoinDTO::getActivityId)) |
|
|
.collect(Collectors.toMap( |
|
|
|
|
|
BirTbsVtbPayJoinDTO::getActivityId, |
|
|
|
|
|
dto -> dto, |
|
|
|
|
|
(existing, replacement) -> existing, |
|
|
|
|
|
LinkedHashMap::new)) |
|
|
.values() |
|
|
.values() |
|
|
.stream() |
|
|
.stream().map(act->{ |
|
|
.flatMap(List::stream).map(act->{ |
|
|
|
|
|
|
|
|
|
|
|
Optional<BirTbsVtbPayJoinDTO> sumVtbAmountMatch = sumVtbAmountList.stream() |
|
|
Optional<BirTbsVtbPayJoinDTO> sumVtbAmountMatch = sumVtbAmountList.stream() |
|
|
.filter(a->a.getActivityId().equals(act.getActivityId())) |
|
|
.filter(a->a.getActivityId().equals(act.getActivityId())) |
|
@ -220,13 +240,7 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl<BirTbsVtbPayJoinMap |
|
|
sumDto.setUnpayAmount(unpayAmount); |
|
|
sumDto.setUnpayAmount(unpayAmount); |
|
|
sumDto.setNotPayAmount(notPayAmount); |
|
|
sumDto.setNotPayAmount(notPayAmount); |
|
|
|
|
|
|
|
|
BigDecimal vtbAmount = dtoList.stream().filter(a->a.getVtbAmount()!=null) |
|
|
|
|
|
.map(BirTbsVtbPayJoinDTO::getVtbAmount) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
BigDecimal payAmount = dtoList.stream().filter(a->a.getPayAmount()!=null) |
|
|
|
|
|
.map(BirTbsVtbPayJoinDTO::getPayAmount) |
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
|
|
sumDto.setVtbAmount(vtbAmount); |
|
|
sumDto.setVtbAmount(vtbAmount); |
|
|
sumDto.setPayAmount(payAmount); |
|
|
sumDto.setPayAmount(payAmount); |
|
@ -234,128 +248,5 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl<BirTbsVtbPayJoinMap |
|
|
return sumDto; |
|
|
return sumDto; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public List<BirTbsVtbPayJoinDTO> findPage(BirTbsVtbPayJoinSo so) { |
|
|
|
|
|
List<Long> pay4VtbIds = null; |
|
|
|
|
|
List<Long> vtb4ActIds = null; |
|
|
|
|
|
List<Long> act4ApplyIds = null; |
|
|
|
|
|
List<Long> applyIds = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
if(so.getQueryStartPayTime()!=null || so.getQueryEndPayTime()!=null || so.getPayCode()!=null){ |
|
|
|
|
|
LambdaQueryWrapper<PayPayment> lqwPay = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqwPay.select(PayPayment::getId); |
|
|
|
|
|
lqwPay.like(PayPayment::getPayCode,so.getPayCode()); |
|
|
|
|
|
lqwPay.ge(PayPayment::getPayTime,so.getQueryStartPayTime()); |
|
|
|
|
|
lqwPay.le(PayPayment::getPayTime,so.getQueryEndPayTime()); |
|
|
|
|
|
List<PayPayment> payPaymentList = payPaymentService.list(lqwPay); |
|
|
|
|
|
List<Long> payIds = payPaymentList.stream().map(a->a.getId()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<PayPaymentItem> lqwPayItem = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqwPayItem.in(PayPaymentItem::getPaymentId,payIds); |
|
|
|
|
|
List<PayPaymentItem> payPaymentItemList = payPaymentItemService.list(lqwPayItem); |
|
|
|
|
|
pay4VtbIds = payPaymentItemList.stream().map(a->a.getVerificationId()).distinct().collect(Collectors.toList()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(so.getVerificationState()!=null || so.getVtbCode()!=null |
|
|
|
|
|
|| so.getQueryStartCheckTime()!=null || so.getQueryEndCheckTime()!= null |
|
|
|
|
|
|| so.getQueryStartFinishCheckTime()!=null || so.getQueryEndFinishCheckTime()!=null |
|
|
|
|
|
|| so.getCheckUserName()!=null || so.getCheckUserCode()!= null){ |
|
|
|
|
|
LambdaQueryWrapper<VtbVerification> lqwVtb = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqwVtb.eq(VtbVerification::getVerificationState,so.getVerificationState()); |
|
|
|
|
|
lqwVtb.like(VtbVerification::getVerificationCode,so.getVtbCode()); |
|
|
|
|
|
lqwVtb.like(VtbVerification::getUserCode,so.getCheckUserCode()); |
|
|
|
|
|
lqwVtb.like(VtbVerification::getUserName,so.getCheckUserName()); |
|
|
|
|
|
lqwVtb.ge(VtbVerification::getFinishedTime,so.getQueryStartFinishCheckTime()); |
|
|
|
|
|
lqwVtb.le(VtbVerification::getFinishedTime,so.getQueryEndFinishCheckTime()); |
|
|
|
|
|
lqwVtb.ge(VtbVerification::getCreateTime,so.getQueryStartCheckTime()); |
|
|
|
|
|
lqwVtb.le(VtbVerification::getCreateTime,so.getQueryEndCheckTime()); |
|
|
|
|
|
List<VtbVerification> verificationList = verificationService.list(lqwVtb); |
|
|
|
|
|
List<Long> vtbIds = verificationList.stream().map(a->a.getId()).collect(Collectors.toList()); |
|
|
|
|
|
if(pay4VtbIds!=null){ |
|
|
|
|
|
pay4VtbIds = CollectionUtil.intersection(pay4VtbIds,vtbIds).stream().collect(Collectors.toList()); |
|
|
|
|
|
List<Long> finalPay4VtbIds = pay4VtbIds; |
|
|
|
|
|
verificationList = verificationList.stream().filter(a-> finalPay4VtbIds.contains(a.getId())).collect(Collectors.toList()); |
|
|
|
|
|
} |
|
|
|
|
|
vtb4ActIds = verificationList.stream().map(a->a.getActivityId()).distinct().collect(Collectors.toList()); |
|
|
|
|
|
}else { |
|
|
|
|
|
if(pay4VtbIds!=null){ |
|
|
|
|
|
if(pay4VtbIds.size()>0) { |
|
|
|
|
|
LambdaQueryWrapper<VtbVerification> lqwVtb = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqwVtb.in(VtbVerification::getId, pay4VtbIds); |
|
|
|
|
|
List<VtbVerification> verificationList = verificationService.list(lqwVtb); |
|
|
|
|
|
vtb4ActIds = verificationList.stream().map(a -> a.getActivityId()).distinct().collect(Collectors.toList()); |
|
|
|
|
|
}else{ |
|
|
|
|
|
vtb4ActIds = new ArrayList<>(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(so.getActivityTitle()!=null || so.getActivityCode()!=null |
|
|
|
|
|
|| so.getQueryStartActivityStartTime()!=null || so.getQueryEndActivityStartTime()!=null |
|
|
|
|
|
|| so.getQueryStartActivityEndTime()!=null || so.getQueryEndActivityEndTime()!=null){ |
|
|
|
|
|
LambdaQueryWrapper<TbsActivity> lqwAct = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqwAct.like(TbsActivity::getActTitle,so.getActivityTitle()); |
|
|
|
|
|
lqwAct.like(TbsActivity::getActivityCode,so.getActivityCode()); |
|
|
|
|
|
lqwAct.ge(TbsActivity::getActStartDate,so.getQueryStartActivityStartTime()); |
|
|
|
|
|
lqwAct.le(TbsActivity::getActStartDate,so.getQueryEndActivityStartTime()); |
|
|
|
|
|
lqwAct.ge(TbsActivity::getActEndDate,so.getQueryStartActivityEndTime()); |
|
|
|
|
|
lqwAct.le(TbsActivity::getActEndDate,so.getQueryEndActivityEndTime()); |
|
|
|
|
|
List<TbsActivity> activityList = activityService.list(lqwAct); |
|
|
|
|
|
List<Long> actIds = activityList.stream().map(a->a.getId()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
if(vtb4ActIds!=null){ |
|
|
|
|
|
vtb4ActIds = CollectionUtil.intersection(vtb4ActIds,actIds).stream().collect(Collectors.toList()); |
|
|
|
|
|
List<Long> finalVtb4ActIds = vtb4ActIds; |
|
|
|
|
|
activityList = activityList.stream().filter(a-> finalVtb4ActIds.contains(a.getId())).collect(Collectors.toList()); |
|
|
|
|
|
} |
|
|
|
|
|
act4ApplyIds = activityList.stream().map(a->a.getCostApplyId()).distinct().collect(Collectors.toList()); |
|
|
|
|
|
}else { |
|
|
|
|
|
if (vtb4ActIds != null) { |
|
|
|
|
|
if (vtb4ActIds.size()>0) { |
|
|
|
|
|
LambdaQueryWrapper<TbsActivity> lqwAct = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqwAct.in(TbsActivity::getId, vtb4ActIds); |
|
|
|
|
|
List<TbsActivity> activityList = activityService.list(lqwAct); |
|
|
|
|
|
act4ApplyIds = activityList.stream().map(a -> a.getCostApplyId()).distinct().collect(Collectors.toList()); |
|
|
|
|
|
}else{ |
|
|
|
|
|
act4ApplyIds= new ArrayList<>(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(so.getCostApplyCode()!=null || so.getCostTitle()!= null |
|
|
|
|
|
|| so.getSupplierCode()!=null || so.getSupplierName()!=null |
|
|
|
|
|
|| so.getUserCode()!=null || so.getUserName()!=null || so.getCostApplyState()!=null |
|
|
|
|
|
|| so.getQueryStartSubmitTime()!=null || so.getQueryEndSubmitTime()!=null |
|
|
|
|
|
|| so.getQueryStartFinishTime()!=null || so.getQueryEndFinishTime()!=null){ |
|
|
|
|
|
LambdaQueryWrapper<TbsCostApply> lqwApply = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqwApply.like(TbsCostApply::getCode,so.getCostApplyCode()); |
|
|
|
|
|
lqwApply.like(TbsCostApply::getChargeTheme,so.getCostTitle()); |
|
|
|
|
|
lqwApply.like(TbsCostApply::getSupplierCode,so.getSupplierCode()); |
|
|
|
|
|
lqwApply.like(TbsCostApply::getSupplierName,so.getSupplierName()); |
|
|
|
|
|
lqwApply.like(TbsCostApply::getUserCode,so.getUserCode()); |
|
|
|
|
|
lqwApply.like(TbsCostApply::getUserName,so.getUserName()); |
|
|
|
|
|
lqwApply.eq(TbsCostApply::getChargeState,so.getCostApplyState()); |
|
|
|
|
|
lqwApply.ge(TbsCostApply::getSubmitTime,so.getQueryStartSubmitTime()); |
|
|
|
|
|
lqwApply.le(TbsCostApply::getSubmitTime,so.getQueryEndSubmitTime()); |
|
|
|
|
|
lqwApply.ge(TbsCostApply::getPassTime,so.getQueryStartFinishTime()); |
|
|
|
|
|
lqwApply.le(TbsCostApply::getPassTime,so.getQueryEndFinishTime()); |
|
|
|
|
|
|
|
|
|
|
|
List<TbsCostApply> costApplyList = costApplyService.list(lqwApply); |
|
|
|
|
|
applyIds = costApplyList.stream().map(a->a.getId()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
if(act4ApplyIds!=null){ |
|
|
|
|
|
act4ApplyIds = CollectionUtil.intersection(act4ApplyIds,applyIds).stream().collect(Collectors.toList()); |
|
|
|
|
|
List<Long> finalAct4ApplyIds = act4ApplyIds; |
|
|
|
|
|
costApplyList = costApplyList.stream().filter(a-> finalAct4ApplyIds.contains(a.getId())).collect(Collectors.toList()); |
|
|
|
|
|
applyIds = costApplyList.stream().map(a->a.getId()).collect(Collectors.toList()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
PageUtil.startPage(); |
|
|
|
|
|
|
|
|
|
|
|
return new ArrayList<BirTbsVtbPayJoinDTO>(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|