From ef1c93e85c4e05462dcc1bf8da271da55534a9b2 Mon Sep 17 00:00:00 2001 From: "15989082884@163.com" <15989082884@163.com> Date: Tue, 2 Jan 2024 15:45:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/bir/consts/TbsVtbPayShowType.java | 12 ++ .../BirTbsVtbPayJoinController.java | 6 + .../bir/entity/so/BirTbsVtbPayJoinSo.java | 13 +- .../bir/service/BirTbsVtbPayJoinService.java | 2 - .../impl/BirTbsVtbPayJoinServiceImpl.java | 157 +++--------------- .../mapper/bir/BirTbsVtbPayJoinMapper.xml | 40 +++-- 6 files changed, 70 insertions(+), 160 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/bir/consts/TbsVtbPayShowType.java diff --git a/src/main/java/com/qs/serve/modules/bir/consts/TbsVtbPayShowType.java b/src/main/java/com/qs/serve/modules/bir/consts/TbsVtbPayShowType.java new file mode 100644 index 00000000..76d92a38 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/consts/TbsVtbPayShowType.java @@ -0,0 +1,12 @@ +package com.qs.serve.modules.bir.consts; + +/** + * @author YenHex + * @since 2023/10/25 + */ +public interface TbsVtbPayShowType { + + Integer activity = 1; + Integer activityVtb = 2; + Integer all = 3; +} diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java index ab3d9351..874d1be9 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java @@ -47,6 +47,9 @@ public class BirTbsVtbPayJoinController { @GetMapping("/page") public R> page(BirTbsVtbPayJoinSo so){ + if(so.getShowType()==null){ + Assert.throwEx("请选择显示方式!"); + } PageVo page = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so,1); BirTbsVtbPayJoinDTO sumData = birTbsVtbPayJoinService.getSumData(so); Map returnMap = new HashMap<>(); @@ -59,6 +62,9 @@ public class BirTbsVtbPayJoinController { @GetMapping("/export") public R> export(BirTbsVtbPayJoinSo so){ + if(so.getShowType()==null){ + Assert.throwEx("请选择显示方式!"); + } PageVo page = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so,0); BirTbsVtbPayJoinDTO sumData = birTbsVtbPayJoinService.getSumData(so); Map returnMap = new HashMap<>(); diff --git a/src/main/java/com/qs/serve/modules/bir/entity/so/BirTbsVtbPayJoinSo.java b/src/main/java/com/qs/serve/modules/bir/entity/so/BirTbsVtbPayJoinSo.java index 3bf68051..05b8fdbf 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/so/BirTbsVtbPayJoinSo.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/so/BirTbsVtbPayJoinSo.java @@ -118,17 +118,8 @@ public class BirTbsVtbPayJoinSo { private List actIds; -// a.submit_time as submit_time, -// a.pass_time as pass_time, -// -// act.act_start_date as act_start_date, -// act.act_end_date as act_end_date, -// -// v.create_time as vtb_submit_date, -// v.finished_time as vtb_finish_date, -// -// p.item_pay_amount as pay_amount, -// p.pay_time as pay_date + private Integer showType; + private String orderProp; private String orderType; diff --git a/src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java b/src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java index d455abc0..3d0012a5 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java +++ b/src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java @@ -15,8 +15,6 @@ import java.util.List; */ public interface BirTbsVtbPayJoinService extends IService { - List findPage(BirTbsVtbPayJoinSo so); - PageVo selectBirTbsVtbPayJoinDTO(BirTbsVtbPayJoinSo so,Integer searchPage); BirTbsVtbPayJoinDTO getSumData(BirTbsVtbPayJoinSo so); diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java index ec59521a..49fb16f3 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java @@ -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.R; 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.dto.BirPayJoinDTO; import com.qs.serve.modules.bir.entity.dto.BirTbsVtbPayJoinDTO; @@ -36,9 +37,12 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; import java.util.Optional; +import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * ROI费率(活动档案) 服务实现类 @@ -125,6 +129,7 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl costApplyList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so); List actIds = costApplyList.stream().map(a->a.getActivityId()).collect(Collectors.toList()); if(actIds.size()==0){ @@ -138,11 +143,26 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl 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 returnActDtoList = dtoList.stream() - .collect(Collectors.groupingBy(BirTbsVtbPayJoinDTO::getActivityId)) - .values() - .stream() - .flatMap(List::stream).map(act->{ + .collect(Collectors.toMap( + BirTbsVtbPayJoinDTO::getActivityId, + dto -> dto, + (existing, replacement) -> existing, + LinkedHashMap::new)) + .values() + .stream().map(act->{ Optional sumVtbAmountMatch = sumVtbAmountList.stream() .filter(a->a.getActivityId().equals(act.getActivityId())) @@ -220,13 +240,7 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpla.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.setPayAmount(payAmount); @@ -234,128 +248,5 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl findPage(BirTbsVtbPayJoinSo so) { - List pay4VtbIds = null; - List vtb4ActIds = null; - List act4ApplyIds = null; - List applyIds = new ArrayList<>(); - - if(so.getQueryStartPayTime()!=null || so.getQueryEndPayTime()!=null || so.getPayCode()!=null){ - LambdaQueryWrapper 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 payPaymentList = payPaymentService.list(lqwPay); - List payIds = payPaymentList.stream().map(a->a.getId()).collect(Collectors.toList()); - - LambdaQueryWrapper lqwPayItem = new LambdaQueryWrapper<>(); - lqwPayItem.in(PayPaymentItem::getPaymentId,payIds); - List 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 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 verificationList = verificationService.list(lqwVtb); - List vtbIds = verificationList.stream().map(a->a.getId()).collect(Collectors.toList()); - if(pay4VtbIds!=null){ - pay4VtbIds = CollectionUtil.intersection(pay4VtbIds,vtbIds).stream().collect(Collectors.toList()); - List 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 lqwVtb = new LambdaQueryWrapper<>(); - lqwVtb.in(VtbVerification::getId, pay4VtbIds); - List 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 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 activityList = activityService.list(lqwAct); - List actIds = activityList.stream().map(a->a.getId()).collect(Collectors.toList()); - - if(vtb4ActIds!=null){ - vtb4ActIds = CollectionUtil.intersection(vtb4ActIds,actIds).stream().collect(Collectors.toList()); - List 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 lqwAct = new LambdaQueryWrapper<>(); - lqwAct.in(TbsActivity::getId, vtb4ActIds); - List 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 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 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 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(); - - } } diff --git a/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml b/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml index 29b9ddd5..f2e844f8 100644 --- a/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml +++ b/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml @@ -48,8 +48,6 @@ a.id as costApply_id, act.id as activity_id, - v.id as vtb_id, - p.id as pay_id, a.`code` as cost_apply_code, a.charge_theme as cost_title, @@ -66,18 +64,24 @@ act.act_start_date as act_start_date, act.act_end_date as act_end_date, act.total_amount as activity_amount, - act.release_amount as release_amount, + act.release_amount as release_amount - v.verification_code as vtb_code, - v.verification_state as vtb_state, - v.user_code as check_user_code, - v.user_name as check_user_name, - v.amount as vtb_amount, - v.create_time as vtb_submit_date, - v.finished_time as vtb_finish_date, + + ,v.id as vtb_id, + v.verification_code as vtb_code, + v.verification_state as vtb_state, + v.user_code as check_user_code, + v.user_name as check_user_name, + v.amount as vtb_amount, + v.create_time as vtb_submit_date, + v.finished_time as vtb_finish_date + - p.item_pay_amount as pay_amount, - p.pay_time as pay_date + + ,p.id as pay_id, + p.item_pay_amount as pay_amount, + p.pay_time as pay_date + FROM tbs_cost_apply a @@ -180,8 +184,16 @@ - - group by act.id + + group by act.id + + + + group by + CASE + WHEN v.id IS NULL THEN CONCAT('a-', a.id) + ELSE CONCAT('v-', v.id) + END