Commit 3877843b by jianan

新单跟进82

parent 39b0a42d
package com.yd.csf.api.controller; package com.yd.csf.api.controller;
import com.alibaba.excel.EasyExcel; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.yd.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
...@@ -17,8 +19,6 @@ import com.yd.csf.service.model.Fortune; ...@@ -17,8 +19,6 @@ import com.yd.csf.service.model.Fortune;
import com.yd.csf.service.model.FortuneAccount; import com.yd.csf.service.model.FortuneAccount;
import com.yd.csf.service.service.FortuneAccountService; import com.yd.csf.service.service.FortuneAccountService;
import com.yd.csf.service.service.FortuneService; 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.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -34,7 +34,6 @@ import javax.annotation.Resource; ...@@ -34,7 +34,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -204,18 +203,42 @@ public class ApiFortuneController { ...@@ -204,18 +203,42 @@ public class ApiFortuneController {
*/ */
@PostMapping("/list/page/fortuneAccount") @PostMapping("/list/page/fortuneAccount")
@Operation(summary = "分页获取出账列表") @Operation(summary = "分页获取出账列表")
public Result<Page<FortuneAccountVO>> listAccountByPage(@RequestBody FortuneAccountQueryRequest fortuneAccountQueryRequest, public Result<Map<String, Object>> listAccountByPage(@RequestBody FortuneAccountQueryRequest fortuneAccountQueryRequest,
HttpServletRequest request) { HttpServletRequest request) {
long current = fortuneAccountQueryRequest.getPageNo(); long current = fortuneAccountQueryRequest.getPageNo();
long size = fortuneAccountQueryRequest.getPageSize(); long size = fortuneAccountQueryRequest.getPageSize();
// 查询数据库 // 查询数据库
QueryWrapper<FortuneAccount> queryWrapper = fortuneAccountService.getQueryWrapper(fortuneAccountQueryRequest);
Page<FortuneAccount> fortunePage = fortuneAccountService.page(new Page<>(current, size), 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 { ...@@ -417,12 +440,15 @@ public class ApiFortuneController {
long current = fortuneQueryRequest.getPageNo(); long current = fortuneQueryRequest.getPageNo();
long size = fortuneQueryRequest.getPageSize(); long size = fortuneQueryRequest.getPageSize();
// 查询数据库 // 查询条件
Wrapper<Fortune> queryWrapper = fortuneService.getQueryWrapper(fortuneQueryRequest);
// 分页查询
Page<Fortune> fortunePage = fortuneService.page(new Page<>(current, size), 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<>(); 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> { ...@@ -30,4 +30,12 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
Boolean updateFortuneAccount(FortuneAccountUpdateRequest fortuneAccountUpdateRequest); Boolean updateFortuneAccount(FortuneAccountUpdateRequest fortuneAccountUpdateRequest);
Boolean completeFortuneAccount(CompleteFortuneAccountRequest completeFortuneAccountRequest); Boolean completeFortuneAccount(CompleteFortuneAccountRequest completeFortuneAccountRequest);
/**
* 统计数据 总金额、总人数
*
* @param fortuneAccountIdList
* @return
*/
FortuneAccountStatisticsVO getFortuneAccountStatistics(List<Long> fortuneAccountIdList);
} }
...@@ -235,6 +235,28 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper, ...@@ -235,6 +235,28 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
return true; 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