|
|
@ -1,6 +1,7 @@ |
|
|
|
package com.qs.serve.modules.excel.service.impl; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
|
import com.qs.serve.modules.bms.entity.BmsSupplierContacts; |
|
|
|
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; |
|
|
@ -75,75 +76,91 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { |
|
|
|
//暂未定义时间区间
|
|
|
|
List<TbsActivity> activityList = activityMapper.selectList(actLqw); |
|
|
|
List<DataCheckApplyDetailItem> detailItemList = new ArrayList<>(); |
|
|
|
for (TbsActivity activity : activityList) { |
|
|
|
TbsCostApply costApply = costApplyMapper.selectById(activity.getCostApplyId()); |
|
|
|
DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); |
|
|
|
detailItem.setActivityCode(activity.getActivityCode()); |
|
|
|
detailItem.setActivityDate(costApply.getSubmitTime().toLocalDate().toString()); |
|
|
|
detailItem.setActivityTheme(activity.getActTitle()); |
|
|
|
detailItem.setCostApplyAmt(activity.getTotalAmount()); |
|
|
|
if(CollectionUtil.isNotEmpty(activityList)){ |
|
|
|
for (TbsActivity activity : activityList) { |
|
|
|
TbsCostApply costApply = costApplyMapper.selectById(activity.getCostApplyId()); |
|
|
|
DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); |
|
|
|
detailItem.setActivityCode(activity.getActivityCode()); |
|
|
|
detailItem.setActivityDate(costApply.getSubmitTime().toLocalDate().toString()); |
|
|
|
detailItem.setActivityTheme(activity.getActTitle()); |
|
|
|
detailItem.setCostApplyAmt(activity.getTotalAmount()); |
|
|
|
|
|
|
|
LambdaQueryWrapper<VtbVerification> veriLqw = new LambdaQueryWrapper<>(); |
|
|
|
veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount); |
|
|
|
veriLqw.eq(VtbVerification::getActivityId,activity.getId()); |
|
|
|
veriLqw.in(VtbVerification::getVerificationState, |
|
|
|
VtbVerificationState.Finished.getCode(), |
|
|
|
VtbVerificationState.Rollback.getCode(), |
|
|
|
VtbVerificationState.Commiting.getCode()); |
|
|
|
List<VtbVerification> vtbVerificationList = verificationMapper.selectList(veriLqw); |
|
|
|
List<VtbVerification> finishedVeriList= vtbVerificationList.stream() |
|
|
|
.filter(a->a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); |
|
|
|
List<VtbVerification> unFinishVeriList= vtbVerificationList.stream() |
|
|
|
.filter(a->!a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); |
|
|
|
LambdaQueryWrapper<VtbVerification> veriLqw = new LambdaQueryWrapper<>(); |
|
|
|
veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount); |
|
|
|
veriLqw.eq(VtbVerification::getActivityId,activity.getId()); |
|
|
|
veriLqw.in(VtbVerification::getVerificationState, |
|
|
|
VtbVerificationState.Finished.getCode(), |
|
|
|
VtbVerificationState.Rollback.getCode(), |
|
|
|
VtbVerificationState.Commiting.getCode()); |
|
|
|
List<VtbVerification> vtbVerificationList = verificationMapper.selectList(veriLqw); |
|
|
|
List<VtbVerification> finishedVeriList= vtbVerificationList.stream() |
|
|
|
.filter(a->a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); |
|
|
|
List<VtbVerification> unFinishVeriList= vtbVerificationList.stream() |
|
|
|
.filter(a->!a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); |
|
|
|
|
|
|
|
BigDecimal checkedAmt = BigDecimal.ZERO; |
|
|
|
for (VtbVerification verification : finishedVeriList) { |
|
|
|
checkedAmt = checkedAmt.add(verification.getAmount()); |
|
|
|
} |
|
|
|
|
|
|
|
BigDecimal notCheckAmt = BigDecimal.ZERO; |
|
|
|
for (VtbVerification verification : unFinishVeriList) { |
|
|
|
notCheckAmt = notCheckAmt.add(verification.getAmount()); |
|
|
|
} |
|
|
|
BigDecimal releaseAmt = activity.getReleaseAmount()==null?BigDecimal.ZERO:activity.getReleaseAmount(); |
|
|
|
detailItem.setCheckedAmt(checkedAmt); |
|
|
|
detailItem.setCheckingAmt(notCheckAmt); |
|
|
|
detailItem.setDontCheckAmt(releaseAmt); |
|
|
|
BigDecimal notCheckedAmt = activity.getTotalAmount().subtract(detailItem.getCheckedAmt()) |
|
|
|
.subtract(detailItem.getCheckingAmt()) |
|
|
|
.subtract(detailItem.getDontCheckAmt()); |
|
|
|
detailItem.setNotCheckAmt(notCheckedAmt); |
|
|
|
|
|
|
|
if(checkedAmt.compareTo(BigDecimal.ZERO)==0){ |
|
|
|
detailItem.setPayAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setUnPayAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setNotPayAmt(BigDecimal.ZERO); |
|
|
|
}else { |
|
|
|
//已支付
|
|
|
|
PayPaymentItem payItemQuery = new PayPaymentItem(); |
|
|
|
payItemQuery.setCancelFlag(0); |
|
|
|
payItemQuery.setActivityId(activity.getId()); |
|
|
|
List<PayPaymentItem> allPayList = payPaymentItemMapper.selectPayPaymentItemList(payItemQuery); |
|
|
|
List<PayPaymentItem> payList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.PAYMENT)).collect(Collectors.toList()); |
|
|
|
List<PayPaymentItem> unPayList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.UN_PAYMENT)).collect(Collectors.toList()); |
|
|
|
|
|
|
|
//不再支付
|
|
|
|
BigDecimal notPayAmt = BigDecimal.ZERO; |
|
|
|
for (PayPaymentItem paymentItem : unPayList) { |
|
|
|
notPayAmt = notPayAmt.add(paymentItem.getItemPayAmount()); |
|
|
|
BigDecimal checkedAmt = BigDecimal.ZERO; |
|
|
|
for (VtbVerification verification : finishedVeriList) { |
|
|
|
checkedAmt = checkedAmt.add(verification.getAmount()); |
|
|
|
} |
|
|
|
|
|
|
|
BigDecimal payAmt = BigDecimal.ZERO; |
|
|
|
for (PayPaymentItem paymentItem : payList) { |
|
|
|
payAmt = payAmt.add(paymentItem.getItemPayAmount()); |
|
|
|
BigDecimal notCheckAmt = BigDecimal.ZERO; |
|
|
|
for (VtbVerification verification : unFinishVeriList) { |
|
|
|
notCheckAmt = notCheckAmt.add(verification.getAmount()); |
|
|
|
} |
|
|
|
//未支付
|
|
|
|
BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt); |
|
|
|
BigDecimal releaseAmt = activity.getReleaseAmount()==null?BigDecimal.ZERO:activity.getReleaseAmount(); |
|
|
|
detailItem.setCheckedAmt(checkedAmt); |
|
|
|
detailItem.setCheckingAmt(notCheckAmt); |
|
|
|
detailItem.setDontCheckAmt(releaseAmt); |
|
|
|
BigDecimal notCheckedAmt = activity.getTotalAmount().subtract(detailItem.getCheckedAmt()) |
|
|
|
.subtract(detailItem.getCheckingAmt()) |
|
|
|
.subtract(detailItem.getDontCheckAmt()); |
|
|
|
detailItem.setNotCheckAmt(notCheckedAmt); |
|
|
|
|
|
|
|
if(checkedAmt.compareTo(BigDecimal.ZERO)==0){ |
|
|
|
detailItem.setPayAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setUnPayAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setNotPayAmt(BigDecimal.ZERO); |
|
|
|
}else { |
|
|
|
//已支付
|
|
|
|
PayPaymentItem payItemQuery = new PayPaymentItem(); |
|
|
|
payItemQuery.setCancelFlag(0); |
|
|
|
payItemQuery.setActivityId(activity.getId()); |
|
|
|
List<PayPaymentItem> allPayList = payPaymentItemMapper.selectPayPaymentItemList(payItemQuery); |
|
|
|
List<PayPaymentItem> payList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.PAYMENT)).collect(Collectors.toList()); |
|
|
|
List<PayPaymentItem> unPayList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.UN_PAYMENT)).collect(Collectors.toList()); |
|
|
|
|
|
|
|
//不再支付
|
|
|
|
BigDecimal notPayAmt = BigDecimal.ZERO; |
|
|
|
for (PayPaymentItem paymentItem : unPayList) { |
|
|
|
notPayAmt = notPayAmt.add(paymentItem.getItemPayAmount()); |
|
|
|
} |
|
|
|
|
|
|
|
detailItem.setPayAmt(payAmt); |
|
|
|
detailItem.setUnPayAmt(unPayAmt); |
|
|
|
detailItem.setNotPayAmt(notPayAmt); |
|
|
|
BigDecimal payAmt = BigDecimal.ZERO; |
|
|
|
for (PayPaymentItem paymentItem : payList) { |
|
|
|
payAmt = payAmt.add(paymentItem.getItemPayAmount()); |
|
|
|
} |
|
|
|
//未支付
|
|
|
|
BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt); |
|
|
|
|
|
|
|
detailItem.setPayAmt(payAmt); |
|
|
|
detailItem.setUnPayAmt(unPayAmt); |
|
|
|
detailItem.setNotPayAmt(notPayAmt); |
|
|
|
} |
|
|
|
detailItemList.add(detailItem); |
|
|
|
} |
|
|
|
}else { |
|
|
|
DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); |
|
|
|
detailItem.setActivityCode(""); |
|
|
|
detailItem.setActivityDate(""); |
|
|
|
detailItem.setActivityTheme(""); |
|
|
|
detailItem.setCostApplyAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setCheckedAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setCheckingAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setNotCheckAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setDontCheckAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setPayAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setUnPayAmt(BigDecimal.ZERO); |
|
|
|
detailItem.setNotPayAmt(BigDecimal.ZERO); |
|
|
|
detailItemList.add(detailItem); |
|
|
|
} |
|
|
|
detailInfo.setDetailList(detailItemList); |
|
|
@ -170,6 +187,9 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService { |
|
|
|
|
|
|
|
//申请总金额
|
|
|
|
BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId); |
|
|
|
if(totalAmount==null){ |
|
|
|
totalAmount = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
mainInfo.setCostApplyAmt(totalAmount); |
|
|
|
if(totalAmount.compareTo(BigDecimal.ZERO)==0){ |
|
|
|
mainInfo.setCostApplyAmt(totalAmount); |
|
|
|