From 7d0e4a546e4a3db2dd5538e37397ac6fb2e82aa8 Mon Sep 17 00:00:00 2001 From: "15989082884@163.com" <15989082884@163.com> Date: Fri, 29 Dec 2023 02:56:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E8=A1=A8=E8=81=94=E6=9F=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BirTbsVtbPayJoinController.java | 53 ++++ .../modules/bir/entity/dto/BirPayJoinDTO.java | 33 +++ .../bir/entity/dto/BirTbsVtbPayJoinDTO.java | 115 ++++++++ .../bir/entity/dto/BirVtbPayJoinDTO.java | 41 +++ .../bir/entity/so/BirTbsVtbPayJoinSo.java | 136 +++++++++ .../bir/mapper/BirTbsVtbPayJoinMapper.java | 27 ++ .../bir/service/BirTbsVtbPayJoinService.java | 21 ++ .../impl/BirTbsVtbPayJoinServiceImpl.java | 279 ++++++++++++++++++ .../service/PortalOfCostApplication.java | 5 + .../mapper/bir/BirTbsVtbPayJoinMapper.xml | 190 ++++++++++++ 10 files changed, 900 insertions(+) create mode 100644 src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java create mode 100644 src/main/java/com/qs/serve/modules/bir/entity/dto/BirPayJoinDTO.java create mode 100644 src/main/java/com/qs/serve/modules/bir/entity/dto/BirTbsVtbPayJoinDTO.java create mode 100644 src/main/java/com/qs/serve/modules/bir/entity/dto/BirVtbPayJoinDTO.java create mode 100644 src/main/java/com/qs/serve/modules/bir/entity/so/BirTbsVtbPayJoinSo.java create mode 100644 src/main/java/com/qs/serve/modules/bir/mapper/BirTbsVtbPayJoinMapper.java create mode 100644 src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java create mode 100644 src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java create mode 100644 src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml 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 new file mode 100644 index 00000000..c8772caa --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java @@ -0,0 +1,53 @@ +package com.qs.serve.modules.bir.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.RepeatSubmit; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.bir.entity.dto.BirTbsVtbPayJoinDTO; +import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; +import com.qs.serve.modules.bir.entity.so.BirTbsVtbPayJoinSo; +import com.qs.serve.modules.bir.entity.vo.BirAccountReportVo; +import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; +import com.qs.serve.modules.bir.entity.vo.BirRoiVo; +import com.qs.serve.modules.bir.service.*; +import com.qs.serve.modules.sys.entity.SysDictData; +import com.qs.serve.modules.sys.service.SysDictDataService; +import com.qs.serve.modules.tbs.common.TbsCenterType; +import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; +import com.qs.serve.modules.tbs.service.TbsBudgetService; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.entity.dto.VtbActivityCheckDTO; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/** + * BI报表 ROI费率 + * @author YenHex + * @since 2023-06-05 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("bir/tbsVtbPayJoin") +public class BirTbsVtbPayJoinController { + + private BirTbsVtbPayJoinService birTbsVtbPayJoinService; + + @GetMapping("/page") + public R> page(BirTbsVtbPayJoinSo so){ + List list = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so); + return R.byPageHelperList(list); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bir/entity/dto/BirPayJoinDTO.java b/src/main/java/com/qs/serve/modules/bir/entity/dto/BirPayJoinDTO.java new file mode 100644 index 00000000..edf193b7 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/entity/dto/BirPayJoinDTO.java @@ -0,0 +1,33 @@ +package com.qs.serve.modules.bir.entity.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 活动的核销情况 + * @author YenHex + * @since 2023/9/4 + */ +@Data +public class BirPayJoinDTO { + + + private Long vtbId; + + private Long payId; + + private String payCode; + + private BigDecimal payAmount; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime payDate; + + + +} diff --git a/src/main/java/com/qs/serve/modules/bir/entity/dto/BirTbsVtbPayJoinDTO.java b/src/main/java/com/qs/serve/modules/bir/entity/dto/BirTbsVtbPayJoinDTO.java new file mode 100644 index 00000000..6feb55e9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/entity/dto/BirTbsVtbPayJoinDTO.java @@ -0,0 +1,115 @@ +package com.qs.serve.modules.bir.entity.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 活动的核销情况 + * @author YenHex + * @since 2023/9/4 + */ +@Data +public class BirTbsVtbPayJoinDTO { + + private Long costApplyId; + + /** 费用编码 */ + private String costApplyCode; + + private String costTitle; + + /** 客户id */ + private String supplierId; + + private String supplierCode; + + private String supplierName; + + private String userCode; + + private String userName; + + private Integer chargeState; + + /** 提交实际 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime submitTime; + + /** 提交实际 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime passTime; + + private Long activityId; + /** 活动编码 */ + private String activityCode; + + private String activityTitle; + + /** 提交实际 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime actStartDate; + + /** 提交实际 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime actEndDate; + + + private BigDecimal activityAmount; + + /** 核销金额 */ + private BigDecimal checkedAmount; + + /** 核销金额 */ + private BigDecimal checkingAmount; + + /** 释放金额 */ + private BigDecimal releaseAmount; + + private BigDecimal unCheckAmount; + + private BigDecimal payedAmount; + + private BigDecimal unpayAmount; + + private BigDecimal notPayAmount; + + private Long vtbId; + + private String vtbCode; + + private String checkUserCode; + + private String checkUserName; + + private BigDecimal vtbAmount; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime vtbSubmitDate; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime vtbFinishDate; + + private Long payId; + + private String payCode; + + private BigDecimal payAmount; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime payDate; + + private List birVtbPayJoinDTOList; + +} diff --git a/src/main/java/com/qs/serve/modules/bir/entity/dto/BirVtbPayJoinDTO.java b/src/main/java/com/qs/serve/modules/bir/entity/dto/BirVtbPayJoinDTO.java new file mode 100644 index 00000000..4e6881fa --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/entity/dto/BirVtbPayJoinDTO.java @@ -0,0 +1,41 @@ +package com.qs.serve.modules.bir.entity.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 活动的核销情况 + * @author YenHex + * @since 2023/9/4 + */ +@Data +public class BirVtbPayJoinDTO { + + private Long vtbId; + + private Long activityId; + + private String vtbCode; + + private String checkUserCode; + + private String checkUserName; + + private BigDecimal vtbAmount; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime vtbSubmitDate; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime vtbFinishDate; + + private List payJoinDTOList; + +} 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 new file mode 100644 index 00000000..3bf68051 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/entity/so/BirTbsVtbPayJoinSo.java @@ -0,0 +1,136 @@ +package com.qs.serve.modules.bir.entity.so; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 活动的核销情况 + * @author YenHex + * @since 2023/9/4 + */ +@Data +public class BirTbsVtbPayJoinSo { + + /** 费用编码 */ + private String costApplyCode; + + private String costTitle; + + /** 客户 */ + private String supplierCode; + + private String supplierName; + + /** 活动编码 */ + private String activityCode; + + private String activityTitle; + + private String userCode; + + private String userName; + + private Integer costApplyState; + /** 核销状态 */ + private Integer verificationState; + + private String vtbCode; + + private String checkUserCode; + + private String checkUserName; + + private String payCode; + + /** 提交开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryStartSubmitTime; + + /** 提交结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryEndSubmitTime; + + /** 过审开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryStartFinishTime; + + /** 过审结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryEndFinishTime; + + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryStartActivityStartTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryEndActivityStartTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryStartActivityEndTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryEndActivityEndTime; + + + /** 核销开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryStartCheckTime; + + /** 核销开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryEndCheckTime; + + /** 核销完成时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryStartFinishCheckTime; + + /** 核销完成时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryEndFinishCheckTime; + + + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryStartPayTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime queryEndPayTime; + + private Integer onlyAct; + + 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 String orderProp; + + private String orderType; + +} diff --git a/src/main/java/com/qs/serve/modules/bir/mapper/BirTbsVtbPayJoinMapper.java b/src/main/java/com/qs/serve/modules/bir/mapper/BirTbsVtbPayJoinMapper.java new file mode 100644 index 00000000..5648485a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/mapper/BirTbsVtbPayJoinMapper.java @@ -0,0 +1,27 @@ +package com.qs.serve.modules.bir.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.bir.entity.BirBaseActivity; +import com.qs.serve.modules.bir.entity.dto.BirTbsVtbPayJoinDTO; +import com.qs.serve.modules.bir.entity.so.BirTbsVtbPayJoinSo; +import com.qs.serve.modules.tbs.entity.TbsActivity; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; +import java.util.List; + +/** + * ROI费率(活动档案) Mapper + * @author YenHex + * @date 2023-06-05 + */ +public interface BirTbsVtbPayJoinMapper extends BaseMapper { + + List selectBirTbsVtbPayJoinDTO(@Param("query") BirTbsVtbPayJoinSo so); + + List selectSumVtbAmount(@Param("actIds") List actIds); + + List selectSumPayAmount(@Param("actIds") List actIds); + +} + 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 new file mode 100644 index 00000000..d4f5561c --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.bir.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.bir.entity.BirBaseActivity; +import com.qs.serve.modules.bir.entity.dto.BirTbsVtbPayJoinDTO; +import com.qs.serve.modules.bir.entity.so.BirTbsVtbPayJoinSo; + +import java.util.List; + +/** + * ROI费率(活动档案) 服务接口 + * @author YenHex + * @date 2023-06-05 + */ +public interface BirTbsVtbPayJoinService extends IService { + + List findPage(BirTbsVtbPayJoinSo so); + + List selectBirTbsVtbPayJoinDTO(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 new file mode 100644 index 00000000..9da4d605 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java @@ -0,0 +1,279 @@ +package com.qs.serve.modules.bir.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.entity.BirBaseActivity; +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.BirVtbPayJoinDTO; +import com.qs.serve.modules.bir.entity.so.BirTbsVtbPayJoinSo; +import com.qs.serve.modules.bir.mapper.BirBaseActivityMapper; +import com.qs.serve.modules.bir.mapper.BirTbsVtbPayJoinMapper; +import com.qs.serve.modules.bir.service.BirBaseActivityService; +import com.qs.serve.modules.bir.service.BirTbsVtbPayJoinService; +import com.qs.serve.modules.pay.entity.PayPayment; +import com.qs.serve.modules.pay.entity.PayPaymentItem; +import com.qs.serve.modules.pay.service.PayPaymentItemService; +import com.qs.serve.modules.pay.service.PayPaymentService; +import com.qs.serve.modules.tbs.entity.TbsActivity; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; +import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; +import com.qs.serve.modules.tbs.service.TbsActivityService; +import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.service.VtbVerificationService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * ROI费率(活动档案) 服务实现类 + * @author YenHex + * @since 2023-06-05 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl implements BirTbsVtbPayJoinService { + @Autowired + private PayPaymentService payPaymentService; + @Autowired + private PayPaymentItemService payPaymentItemService; + @Autowired + private VtbVerificationService verificationService; + @Autowired + private TbsActivityService activityService; + @Autowired + private TbsCostApplyService costApplyService; + + @Override + public List selectBirTbsVtbPayJoinDTO(BirTbsVtbPayJoinSo so){ + PageUtil.startPage(); + so.setOnlyAct(1); + List costApplyList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so); + List actIds = costApplyList.stream().map(a->a.getActivityId()).collect(Collectors.toList()); + if(actIds.size()==0){ + return new ArrayList<>(); + } + so.setOnlyAct(null); + so.setActIds(actIds); + List dtoList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so); + + List actDtoList = dtoList.stream().collect(Collectors.groupingBy(BirTbsVtbPayJoinDTO::getActivityId)) + .values() + .stream() + .flatMap(List::stream) + .collect(Collectors.toList()); + + List vtbDtoList = dtoList.stream().filter(a->a.getVtbId()!=null).collect(Collectors.groupingBy(BirTbsVtbPayJoinDTO::getVtbId)) + .values() + .stream() + .flatMap(List::stream).map(a->{ + BirVtbPayJoinDTO dto = new BirVtbPayJoinDTO(); + CopierUtil.copy(a,dto); + return dto; + }) + .collect(Collectors.toList()); + + + List payDtoList = dtoList.stream().filter(a->a.getPayId()!=null).collect(Collectors.groupingBy(BirTbsVtbPayJoinDTO::getPayId)) + .values() + .stream() + .flatMap(List::stream).map(a->{ + BirPayJoinDTO dto = new BirPayJoinDTO(); + CopierUtil.copy(a,dto); + return dto; + }) + .collect(Collectors.toList()); + + List vtbDtoChirlList = vtbDtoList.stream().map(vtb->{ + List payList = payDtoList.stream().filter(pay->pay.getVtbId().equals(vtb.getVtbId())).collect(Collectors.toList()); + vtb.setPayJoinDTOList(payList); + return vtb; + }).collect(Collectors.toList()); + + List sumVtbAmountList = actIds.size()>0?this.baseMapper.selectSumVtbAmount(actIds):new ArrayList<>(); + + List sumPayAmountList = actIds.size()>0?this.baseMapper.selectSumPayAmount(actIds):new ArrayList<>(); + + List returnActDtoList = actDtoList.stream().map(act->{ + List vtbList = vtbDtoChirlList.stream().filter(vtb->vtb.getActivityId().equals(act.getActivityId())).collect(Collectors.toList()); + act.setBirVtbPayJoinDTOList(vtbList); + + + Optional sumVtbAmountMatch = sumVtbAmountList.stream() + .filter(a->a.getActivityId().equals(act.getActivityId())) + .findFirst(); + + if (sumVtbAmountMatch.isPresent()) { + act.setCheckedAmount(sumVtbAmountMatch.get().getCheckedAmount()); + act.setCheckingAmount(sumVtbAmountMatch.get().getCheckingAmount()); + }else{ + act.setCheckedAmount(BigDecimal.ZERO); + act.setCheckingAmount(BigDecimal.ZERO); + } + + Optional sumPayAmountMatch = sumPayAmountList.stream() + .filter(a->a.getActivityId().equals(act.getActivityId())) + .findFirst(); + + if (sumPayAmountMatch.isPresent()) { + act.setPayedAmount(sumPayAmountMatch.get().getPayedAmount()); + act.setNotPayAmount(sumPayAmountMatch.get().getNotPayAmount()); + }else{ + act.setPayedAmount(BigDecimal.ZERO); + act.setNotPayAmount(BigDecimal.ZERO); + } + + if(act.getReleaseAmount()==null){ + act.setReleaseAmount(BigDecimal.ZERO); + } + + act.setUnCheckAmount(act.getActivityAmount().subtract(act.getCheckedAmount()).subtract(act.getCheckingAmount()).subtract(act.getReleaseAmount())); + act.setUnpayAmount(act.getCheckedAmount().subtract(act.getPayedAmount())); + + return act; + }).collect(Collectors.toList()); + + return returnActDtoList; + } + + @Override + public List 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/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 7fd0e1f8..9fc44a46 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -219,6 +219,8 @@ public class PortalOfCostApplication { paymentItem.setSubjectId(subject.getId()); paymentItem.setSubjectCode(subject.getSubjectCode()); paymentItem.setSubjectName(subject.getSubjectName()); + paymentItem.setPayTime(nowTime); + paymentItemService.save(paymentItem); } @@ -948,6 +950,8 @@ public class PortalOfCostApplication { paymentItem.setSubjectName(subject.getSubjectName()); paymentItem.setCreateBy(user.getName()); paymentItem.setCreateTime(LocalDateTime.now()); + paymentItem.setPayTime(nowTime); + paymentItemService.save(paymentItem); } @@ -1050,6 +1054,7 @@ public class PortalOfCostApplication { paymentItem.setPayType(PaymentType.PAYMENT); paymentItem.setSupplierId(Long.parseLong(supplier.getId())); paymentItem.setItemPayAmount(totalAmount); + paymentItem.setPayTime(nowTime); paymentItem.setVerificationId(verification.getId()); paymentItem.setVerificationCode(verification.getVerificationCode()); paymentItem.setVerificationMainCode(verification.getVerificationCode()); diff --git a/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml b/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml new file mode 100644 index 00000000..f1a9c39e --- /dev/null +++ b/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + +