Commit 3877843b by jianan

新单跟进82

parent 39b0a42d
package com.yd.csf.api.controller;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yd.auth.core.dto.AuthUserDto;
......@@ -17,8 +19,6 @@ import com.yd.csf.service.model.Fortune;
import com.yd.csf.service.model.FortuneAccount;
import com.yd.csf.service.service.FortuneAccountService;
import com.yd.csf.service.service.FortuneService;
import com.yd.csf.service.vo.FortuneAccountVO;
import com.yd.csf.service.vo.FortuneVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.collections4.CollectionUtils;
......@@ -34,7 +34,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -204,18 +203,42 @@ public class ApiFortuneController {
*/
@PostMapping("/list/page/fortuneAccount")
@Operation(summary = "分页获取出账列表")
public Result<Page<FortuneAccountVO>> listAccountByPage(@RequestBody FortuneAccountQueryRequest fortuneAccountQueryRequest,
public Result<Map<String, Object>> listAccountByPage(@RequestBody FortuneAccountQueryRequest fortuneAccountQueryRequest,
HttpServletRequest request) {
long current = fortuneAccountQueryRequest.getPageNo();
long size = fortuneAccountQueryRequest.getPageSize();
// 查询数据库
QueryWrapper<FortuneAccount> queryWrapper = fortuneAccountService.getQueryWrapper(fortuneAccountQueryRequest);
Page<FortuneAccount> fortunePage = fortuneAccountService.page(new Page<>(current, size),
fortuneAccountService.getQueryWrapper(fortuneAccountQueryRequest));
queryWrapper);
// 统计数据 总金额、总人数
List<FortuneAccount> fortuneAccountList = fortuneAccountService.list(queryWrapper);
FortuneAccountStatisticsVO statisticsVO = fortuneAccountService.getFortuneAccountStatistics(fortuneAccountList.stream()
.map(FortuneAccount::getId)
.collect(Collectors.toList()));
// 获取封装类
return Result.success(fortuneAccountService.getFortuneAccountVOPage(fortunePage));
Map<String, Object> result = new HashMap<>();
result.put("page", fortuneAccountService.getFortuneAccountVOPage(fortunePage));
result.put("statisticsVO", statisticsVO);
return Result.success(result);
}
/**
* 统计数据 总金额、总人数
*
* @param fortuneAccountQueryRequest
* @param request
* @return
*/
@PostMapping("/fortuneAccount/statistics")
@Operation(summary = "统计数据 总金额、总人数")
public Result<FortuneAccountStatisticsVO> getFortuneAccountStatistics(@RequestBody FortuneAccountStatisticsQueryRequest fortuneAccountQueryRequest,
HttpServletRequest request) {
return Result.success(fortuneAccountService.getFortuneAccountStatistics(fortuneAccountQueryRequest.getFortuneAccountIdList()));
}
/**
* 创建出账
*
......@@ -417,12 +440,15 @@ public class ApiFortuneController {
long current = fortuneQueryRequest.getPageNo();
long size = fortuneQueryRequest.getPageSize();
// 查询数据库
// 查询条件
Wrapper<Fortune> queryWrapper = fortuneService.getQueryWrapper(fortuneQueryRequest);
// 分页查询
Page<Fortune> fortunePage = fortuneService.page(new Page<>(current, size),
fortuneService.getQueryWrapper(fortuneQueryRequest));
queryWrapper);
// 查询统计数据
FortuneStatisticsVO statisticsVO = fortuneService.getFortuneStatistics(fortunePage.getRecords().stream().map(Fortune::getId).collect(Collectors.toList()));
List<Fortune> fortuneList = fortuneService.list(queryWrapper);
FortuneStatisticsVO statisticsVO = fortuneService.getFortuneStatistics(fortuneList.stream().map(Fortune::getId).collect(Collectors.toList()));
// 组装返回结果
Map<String, Object> result = new HashMap<>();
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class FortuneAccountStatisticsQueryRequest {
/**
* 薪资记录id列表
*/
@Schema(description = "薪资记录id列表")
private List<Long> fortuneAccountIdList;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class FortuneAccountStatisticsVO {
/**
* 总金额
*/
@Schema(description = "总金额")
private BigDecimal totalAmount;
/**
* 总人数
*/
@Schema(description = "总人数")
private Object brokerCount;
}
......@@ -30,4 +30,12 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
Boolean updateFortuneAccount(FortuneAccountUpdateRequest fortuneAccountUpdateRequest);
Boolean completeFortuneAccount(CompleteFortuneAccountRequest completeFortuneAccountRequest);
/**
* 统计数据 总金额、总人数
*
* @param fortuneAccountIdList
* @return
*/
FortuneAccountStatisticsVO getFortuneAccountStatistics(List<Long> fortuneAccountIdList);
}
......@@ -235,6 +235,28 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
return true;
}
@Override
public FortuneAccountStatisticsVO getFortuneAccountStatistics(List<Long> fortuneAccountIdList) {
if (CollectionUtils.isEmpty(fortuneAccountIdList)) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "fortuneAccountIdList不能为空");
}
// 统计总金额和总人数
List<FortuneAccount> fortuneAccountList = this.baseMapper.selectBatchIds(fortuneAccountIdList);
BigDecimal totalAmount = fortuneAccountList.stream()
.map(FortuneAccount::getAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
int brokerCount = fortuneAccountList.stream()
.map(FortuneAccount::getBroker)
.collect(Collectors.toSet()).size();
FortuneAccountStatisticsVO vo = new FortuneAccountStatisticsVO();
vo.setTotalAmount(totalAmount);
vo.setBrokerCount(brokerCount);
return vo;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment