Browse Source

添加费用综合查询接口

v1.0
15989082884@163.com 2 years ago
parent
commit
c39a97bb71
  1. 24
      src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java
  2. 2
      src/main/java/com/qs/serve/modules/bir/entity/dto/BirTbsVtbPayJoinDTO.java
  3. 5
      src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java
  4. 174
      src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java
  5. 3
      src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml

24
src/main/java/com/qs/serve/modules/bir/controller/BirTbsVtbPayJoinController.java

@ -28,7 +28,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* BI报表 ROI费率
@ -44,10 +46,26 @@ public class BirTbsVtbPayJoinController {
private BirTbsVtbPayJoinService birTbsVtbPayJoinService;
@GetMapping("/page")
public R<PageVo<BirTbsVtbPayJoinDTO>> page(BirTbsVtbPayJoinSo so){
List<BirTbsVtbPayJoinDTO> list = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so);
return R.byPageHelperList(list);
public R<Map<String,Object>> page(BirTbsVtbPayJoinSo so){
PageVo<BirTbsVtbPayJoinDTO> page = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so,1);
BirTbsVtbPayJoinDTO sumData = birTbsVtbPayJoinService.getSumData(so);
Map<String,Object> returnMap = new HashMap<>();
returnMap.put("page",page);
returnMap.put("sumData",sumData);
return R.ok(returnMap);
}
@GetMapping("/export")
public R<Map<String,Object>> export(BirTbsVtbPayJoinSo so){
PageVo<BirTbsVtbPayJoinDTO> page = birTbsVtbPayJoinService.selectBirTbsVtbPayJoinDTO(so,0);
BirTbsVtbPayJoinDTO sumData = birTbsVtbPayJoinService.getSumData(so);
Map<String,Object> returnMap = new HashMap<>();
returnMap.put("list",page.getList());
returnMap.put("sumData",sumData);
return R.ok(returnMap);
}
}

2
src/main/java/com/qs/serve/modules/bir/entity/dto/BirTbsVtbPayJoinDTO.java

@ -86,6 +86,8 @@ public class BirTbsVtbPayJoinDTO {
private String vtbCode;
private Integer vtbState;
private String checkUserCode;
private String checkUserName;

5
src/main/java/com/qs/serve/modules/bir/service/BirTbsVtbPayJoinService.java

@ -1,6 +1,7 @@
package com.qs.serve.modules.bir.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.common.model.dto.PageVo;
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;
@ -16,6 +17,8 @@ public interface BirTbsVtbPayJoinService extends IService<BirTbsVtbPayJoinDTO> {
List<BirTbsVtbPayJoinDTO> findPage(BirTbsVtbPayJoinSo so);
List<BirTbsVtbPayJoinDTO> selectBirTbsVtbPayJoinDTO(BirTbsVtbPayJoinSo so);
PageVo<BirTbsVtbPayJoinDTO> selectBirTbsVtbPayJoinDTO(BirTbsVtbPayJoinSo so,Integer searchPage);
BirTbsVtbPayJoinDTO getSumData(BirTbsVtbPayJoinSo so);
}

174
src/main/java/com/qs/serve/modules/bir/service/impl/BirTbsVtbPayJoinServiceImpl.java

@ -61,59 +61,25 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl<BirTbsVtbPayJoinMap
private TbsCostApplyService costApplyService;
@Override
public List<BirTbsVtbPayJoinDTO> selectBirTbsVtbPayJoinDTO(BirTbsVtbPayJoinSo so){
PageUtil.startPage();
so.setOnlyAct(1);
List<BirTbsVtbPayJoinDTO> costApplyList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so);
List<Long> actIds = costApplyList.stream().map(a->a.getActivityId()).collect(Collectors.toList());
if(actIds.size()==0){
return new ArrayList<>();
public PageVo<BirTbsVtbPayJoinDTO> selectBirTbsVtbPayJoinDTO(BirTbsVtbPayJoinSo so,Integer searchPage){
if(searchPage==1) {
PageUtil.startPage();
}
so.setOnlyAct(null);
so.setActIds(actIds);
List<BirTbsVtbPayJoinDTO> dtoList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so);
List<BirTbsVtbPayJoinDTO> actDtoList = dtoList.stream().collect(Collectors.groupingBy(BirTbsVtbPayJoinDTO::getActivityId))
.values()
.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
List<BirVtbPayJoinDTO> 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<BirPayJoinDTO> 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<BirVtbPayJoinDTO> vtbDtoChirlList = vtbDtoList.stream().map(vtb->{
List<BirPayJoinDTO> payList = payDtoList.stream().filter(pay->pay.getVtbId().equals(vtb.getVtbId())).collect(Collectors.toList());
vtb.setPayJoinDTOList(payList);
return vtb;
}).collect(Collectors.toList());
PageVo<BirTbsVtbPayJoinDTO> pageVo = new PageVo<>();
if(searchPage==1) {
pageVo = R.buildPageHelperList(dtoList);
}
List<Long> actIds = dtoList.stream().map(a->a.getActivityId()).distinct().collect(Collectors.toList());
List<BirTbsVtbPayJoinDTO> sumVtbAmountList = actIds.size()>0?this.baseMapper.selectSumVtbAmount(actIds):new ArrayList<>();
List<BirTbsVtbPayJoinDTO> sumPayAmountList = actIds.size()>0?this.baseMapper.selectSumPayAmount(actIds):new ArrayList<>();
List<BirTbsVtbPayJoinDTO> returnActDtoList = actDtoList.stream().map(act->{
List<BirVtbPayJoinDTO> vtbList = vtbDtoChirlList.stream().filter(vtb->vtb.getActivityId().equals(act.getActivityId())).collect(Collectors.toList());
act.setBirVtbPayJoinDTOList(vtbList);
List<BirTbsVtbPayJoinDTO> returnActDtoList = dtoList.stream().map(act->{
Optional<BirTbsVtbPayJoinDTO> sumVtbAmountMatch = sumVtbAmountList.stream()
.filter(a->a.getActivityId().equals(act.getActivityId()))
@ -149,7 +115,123 @@ public class BirTbsVtbPayJoinServiceImpl extends ServiceImpl<BirTbsVtbPayJoinMap
return act;
}).collect(Collectors.toList());
return returnActDtoList;
pageVo.setList(returnActDtoList);
return pageVo;
}
public BirTbsVtbPayJoinDTO getSumData(BirTbsVtbPayJoinSo so){
BirTbsVtbPayJoinDTO sumDto = new BirTbsVtbPayJoinDTO();
so.setOnlyAct(1);
List<BirTbsVtbPayJoinDTO> costApplyList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so);
List<Long> actIds = costApplyList.stream().map(a->a.getActivityId()).collect(Collectors.toList());
if(actIds.size()==0){
return sumDto;
}
so.setOnlyAct(null);
so.setActIds(actIds);
List<BirTbsVtbPayJoinDTO> dtoList = this.baseMapper.selectBirTbsVtbPayJoinDTO(so);
List<BirTbsVtbPayJoinDTO> sumVtbAmountList = actIds.size()>0?this.baseMapper.selectSumVtbAmount(actIds):new ArrayList<>();
List<BirTbsVtbPayJoinDTO> sumPayAmountList = actIds.size()>0?this.baseMapper.selectSumPayAmount(actIds):new ArrayList<>();
List<BirTbsVtbPayJoinDTO> returnActDtoList = dtoList.stream()
.collect(Collectors.groupingBy(BirTbsVtbPayJoinDTO::getActivityId))
.values()
.stream()
.flatMap(List::stream).map(act->{
Optional<BirTbsVtbPayJoinDTO> 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<BirTbsVtbPayJoinDTO> 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());
BigDecimal activityAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getActivityAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal checkedAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getCheckedAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal checkingAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getCheckingAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal releaseAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getReleaseAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal unCheckAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getUnCheckAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal payedAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getPayedAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal unpayAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getUnpayAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal notPayAmount = returnActDtoList.stream()
.map(BirTbsVtbPayJoinDTO::getNotPayAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
sumDto.setActivityAmount(activityAmount);
sumDto.setCheckedAmount(checkedAmount);
sumDto.setCheckingAmount(checkingAmount);
sumDto.setReleaseAmount(releaseAmount);
sumDto.setUnCheckAmount(unCheckAmount);
sumDto.setPayedAmount(payedAmount);
sumDto.setUnpayAmount(unpayAmount);
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.setPayAmount(payAmount);
return sumDto;
}
@Override

3
src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml

@ -69,6 +69,7 @@
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,
@ -86,6 +87,8 @@
WHERE
1=1
and a.del_flag = 0
and a.charge_state in (2,3)
and v.verification_state in (0,1)
and (act.del_flag = 0 or act.id is null )
and (v.del_flag = 0 or v.id is null )
and (p.del_flag = 0 or p.id is null )

Loading…
Cancel
Save