Commit 3c7f843a by jianan

前端对接问题修复3

parent 54f66a1d
package com.yd.csf.api.controller; package com.yd.csf.api.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
...@@ -9,6 +12,7 @@ import com.yd.csf.service.common.ErrorCode; ...@@ -9,6 +12,7 @@ import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.*; import com.yd.csf.service.dto.*;
import com.yd.csf.service.model.CommissionExpected; import com.yd.csf.service.model.CommissionExpected;
import com.yd.csf.service.service.CommissionExpectedService; import com.yd.csf.service.service.CommissionExpectedService;
import com.yd.csf.service.vo.CommissionExpectedExportDTO;
import com.yd.csf.service.vo.CommissionExpectedStatisticsVO; import com.yd.csf.service.vo.CommissionExpectedStatisticsVO;
import com.yd.csf.service.vo.CommissionExpectedVO; import com.yd.csf.service.vo.CommissionExpectedVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
...@@ -18,9 +22,11 @@ import org.springframework.web.bind.annotation.*; ...@@ -18,9 +22,11 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap; import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -168,4 +174,42 @@ public class ApiCommissionExpectedController { ...@@ -168,4 +174,42 @@ public class ApiCommissionExpectedController {
response.setPage(commissionExpectedService.getCommissionExpectedVOPage(commissionExpectedPage)); response.setPage(commissionExpectedService.getCommissionExpectedVOPage(commissionExpectedPage));
return Result.success(response); return Result.success(response);
} }
/**
* 应收款导出
*
* @param commissionExpectedQueryRequest
* @return
*/
@PostMapping("/export")
@Operation(summary = "应收款导出")
public void exportCommissionExpected(@RequestBody CommissionExpectedQueryRequest commissionExpectedQueryRequest, HttpServletResponse response) throws UnsupportedEncodingException {
if (commissionExpectedQueryRequest == null) {
throw new RuntimeException("查询参数不能为空");
}
// 设置响应头
String fileName = URLEncoder.encode("应收款管理数据", "UTF-8").replaceAll("\\+", "%20");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
// 查询数据
QueryWrapper<CommissionExpected> queryWrapper = commissionExpectedService.getQueryWrapper(commissionExpectedQueryRequest);
List<CommissionExpected> commissionExpectedList = commissionExpectedService.list(queryWrapper);
// 转换为导出DTO
List<CommissionExpectedExportDTO> exportDataList = commissionExpectedList.stream()
.map(CommissionExpectedExportDTO::convertToExportDTO)
.collect(Collectors.toList());
// 使用EasyExcel导出
try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), CommissionExpectedExportDTO.class).build()) {
WriteSheet writeSheet = EasyExcel.writerSheet("应收款数据").build();
excelWriter.write(exportDataList, writeSheet);
} catch (Exception e) {
throw new RuntimeException("导出应收款数据失败", e);
}
}
} }
...@@ -506,16 +506,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -506,16 +506,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
LocalDate payoutDateEnd = request.getPayoutDateEnd(); LocalDate payoutDateEnd = request.getPayoutDateEnd();
List<String> statusList = request.getStatusList(); List<String> statusList = request.getStatusList();
Integer fortunePeriod = request.getFortunePeriod(); Integer fortunePeriod = request.getFortunePeriod();
String fortuneName = request.getFortuneName(); String fortuneType = request.getFortuneType();
String team = request.getTeam(); String team = request.getTeam();
String teamBizId = request.getTeamBizId(); List<String> teamBizIdList = request.getTeamBizIdList();
String insuranceCompany = request.getInsuranceCompany(); List<String> insuranceCompanyBizIdList = request.getInsuranceCompanyBizIdList();
String productName = request.getProductName(); List<String> productLaunchBizIdList = request.getProductLaunchBizIdList();
// String reconciliationCompany = request.getReconciliationCompany(); List<String> brokerBizIdList = request.getBrokerBizIdList();
List<String> signerBizIdList = request.getSignerBizIdList();
String broker = request.getBroker();
String signer = request.getSigner();
String productLaunchBizId = request.getProductLaunchBizId();
String fortuneBizType = request.getFortuneBizType(); String fortuneBizType = request.getFortuneBizType();
// 按保单号模糊查询 // 按保单号模糊查询
...@@ -524,15 +521,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -524,15 +521,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
queryWrapper.lt(ObjectUtils.isNotEmpty(payoutDateEnd), "payout_date", payoutDateEnd); queryWrapper.lt(ObjectUtils.isNotEmpty(payoutDateEnd), "payout_date", payoutDateEnd);
queryWrapper.in(ObjectUtils.isNotEmpty(statusList), "status", statusList); queryWrapper.in(ObjectUtils.isNotEmpty(statusList), "status", statusList);
queryWrapper.eq(ObjectUtils.isNotEmpty(fortunePeriod), "fortune_period", fortunePeriod); queryWrapper.eq(ObjectUtils.isNotEmpty(fortunePeriod), "fortune_period", fortunePeriod);
queryWrapper.like(StringUtils.isNotBlank(fortuneName), "fortune_name", fortuneName); queryWrapper.eq(StringUtils.isNotBlank(fortuneType), "fortune_type", fortuneType);
queryWrapper.like(StringUtils.isNotBlank(team), "team", team); queryWrapper.like(StringUtils.isNotBlank(team), "team", team);
queryWrapper.eq(StringUtils.isNotBlank(teamBizId), "team_biz_id", teamBizId); queryWrapper.in(ObjectUtils.isNotEmpty(teamBizIdList), "team_biz_id", teamBizIdList);
queryWrapper.like(StringUtils.isNotBlank(insuranceCompany), "insurance_company", insuranceCompany); queryWrapper.in(ObjectUtils.isNotEmpty(insuranceCompanyBizIdList), "insurance_company_biz_id", insuranceCompanyBizIdList);
queryWrapper.like(StringUtils.isNotBlank(productName), "product_name", productName); queryWrapper.in(ObjectUtils.isNotEmpty(productLaunchBizIdList), "product_launch_biz_id", productLaunchBizIdList);
queryWrapper.eq(StringUtils.isNotBlank(productLaunchBizId), "product_launch_biz_id", productLaunchBizId); queryWrapper.in(ObjectUtils.isNotEmpty(brokerBizIdList), "broker_biz_id", brokerBizIdList);
// queryWrapper.like(StringUtils.isNotBlank(reconciliationCompany), "reconciliation_company", reconciliationCompany); queryWrapper.in(ObjectUtils.isNotEmpty(signerBizIdList), "signer_biz_id", signerBizIdList);
queryWrapper.like(StringUtils.isNotBlank(broker), "broker", broker);
queryWrapper.like(StringUtils.isNotBlank(signer), "signer", signer);
queryWrapper.eq(StringUtils.isNotBlank(fortuneBizType), "fortune_biz_type", fortuneBizType); queryWrapper.eq(StringUtils.isNotBlank(fortuneBizType), "fortune_biz_type", fortuneBizType);
// 按id升序排序 // 按id升序排序
...@@ -567,6 +562,15 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -567,6 +562,15 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Override @Override
public ExpectedFortuneStatisticsVO getStatistics(List<Long> expectedFortuneIds) { public ExpectedFortuneStatisticsVO getStatistics(List<Long> expectedFortuneIds) {
if (CollectionUtils.isEmpty(expectedFortuneIds)) {
ExpectedFortuneStatisticsVO statisticsVO = new ExpectedFortuneStatisticsVO();
statisticsVO.setTotalExpectedAmount(BigDecimal.ZERO);
statisticsVO.setTotalPaidAmount(BigDecimal.ZERO);
statisticsVO.setTotalUnpaidAmount(BigDecimal.ZERO);
statisticsVO.setPaidAmountRatio("0.00%");
statisticsVO.setTotalPolicyCount(0);
return statisticsVO;
}
// 自定义统计数据 // 自定义统计数据
ExpectedFortuneStatisticsVO statisticsVO = iExpectedFortuneService.getStatistics(expectedFortuneIds); ExpectedFortuneStatisticsVO statisticsVO = iExpectedFortuneService.getStatistics(expectedFortuneIds);
......
...@@ -15,47 +15,41 @@ public class ApiExpectedFortunePageRequest extends PageDto { ...@@ -15,47 +15,41 @@ public class ApiExpectedFortunePageRequest extends PageDto {
@Schema(description = "保单号") @Schema(description = "保单号")
private String policyNo; private String policyNo;
@Schema(description = "预估发佣开始日期") @Schema(description = "预计出账日期开始")
private LocalDate payoutDateStart; private LocalDate payoutDateStart;
@Schema(description = "预估发佣结束日期") @Schema(description = "预计出账日期结束")
private LocalDate payoutDateEnd; private LocalDate payoutDateEnd;
@Schema(description = "出账状态, 可多选 0=待出账 1=可出帐 2=完成出账 3=部分出账 4=保留 5=已失效") @Schema(description = "出账状态, 可多选 0=待出账 1=可出帐 2=完成出账 3=部分出账 4=保留 5=已失效 字典值: csf_expected_fortune_status")
private List<String> statusList; private List<String> statusList;
/** /**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年) * 出账期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/ */
@Schema(description = "出账期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)") @Schema(description = "出账期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)")
private Integer fortunePeriod; private Integer fortunePeriod;
@Schema(description = "出账项目") @Schema(description = "出账项目类型 1=销售佣金;等等 字典值: csf_fortune_type")
private String fortuneName; private String fortuneType;
@Schema(description = "出单团队名称") @Schema(description = "出单团队名称")
private String team; private String team;
@Schema(description = "出单团队业务ID") @Schema(description = "出单团队业务ID列表")
private String teamBizId; private List<String> teamBizIdList;
@Schema(description = "保险公司") @Schema(description = "保险公司业务ID列表")
private String insuranceCompany; private List<String> insuranceCompanyBizIdList;
@Schema(description = "产品名称") @Schema(description = "产品计划业务ID列表")
private String productName; private List<String> productLaunchBizIdList;
@Schema(description = "产品计划:产品上架信息业务ID") @Schema(description = "转介人业务ID列表")
private String productLaunchBizId; private List<String> brokerBizIdList;
/** @Schema(description = "签单员业务ID列表")
* 转介人名称 private List<String> signerBizIdList;
*/
@Schema(description = "转介人名称")
private String broker;
@Schema(description = "签单员名称")
private String signer;
@Schema(description = "应付款类型 R-关联保单应付款 U-非关联保单应付款") @Schema(description = "应付款类型 R-关联保单应付款 U-非关联保单应付款")
private String fortuneBizType; private String fortuneBizType;
......
...@@ -43,10 +43,10 @@ public class CommissionExpectedQueryRequest extends PageDto { ...@@ -43,10 +43,10 @@ public class CommissionExpectedQueryRequest extends PageDto {
private Integer commissionPeriod; private Integer commissionPeriod;
/** /**
* 入账项目(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等) * 入账项目类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/ */
@Schema(description = "入账项目(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)") @Schema(description = "入账项目类型(1:销售佣金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等 字典值: csf_commission_type)")
private String commissionName; private String commissionType;
/** /**
* 对账公司业务ID列表 * 对账公司业务ID列表
......
...@@ -149,6 +149,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -149,6 +149,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
} }
// 获取查询参数 // 获取查询参数
String policyNo = commissionExpectedQueryRequest.getPolicyNo(); String policyNo = commissionExpectedQueryRequest.getPolicyNo();
String commissionType = commissionExpectedQueryRequest.getCommissionType();
List<String> insurerCompanyBizIdList = commissionExpectedQueryRequest.getInsurerCompanyBizIdList(); List<String> insurerCompanyBizIdList = commissionExpectedQueryRequest.getInsurerCompanyBizIdList();
List<String> reconciliationCompanyBizIdList = commissionExpectedQueryRequest.getReconciliationCompanyBizIdList(); List<String> reconciliationCompanyBizIdList = commissionExpectedQueryRequest.getReconciliationCompanyBizIdList();
List<String> statusList = commissionExpectedQueryRequest.getStatusList(); List<String> statusList = commissionExpectedQueryRequest.getStatusList();
...@@ -160,6 +161,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -160,6 +161,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
String teamBizId = commissionExpectedQueryRequest.getTeamBizId(); String teamBizId = commissionExpectedQueryRequest.getTeamBizId();
// 精确查询 // 精确查询
queryWrapper.eq(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo); queryWrapper.eq(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo);
queryWrapper.eq(ObjectUtils.isNotEmpty(commissionType), "commission_type", commissionType);
queryWrapper.in(ObjectUtils.isNotEmpty(insurerCompanyBizIdList), "insurance_company_biz_id", insurerCompanyBizIdList); queryWrapper.in(ObjectUtils.isNotEmpty(insurerCompanyBizIdList), "insurance_company_biz_id", insurerCompanyBizIdList);
queryWrapper.in(ObjectUtils.isNotEmpty(reconciliationCompanyBizIdList), "reconciliation_company_biz_id", reconciliationCompanyBizIdList); queryWrapper.in(ObjectUtils.isNotEmpty(reconciliationCompanyBizIdList), "reconciliation_company_biz_id", reconciliationCompanyBizIdList);
queryWrapper.eq(ObjectUtils.isNotEmpty(commissionPeriod), "commission_period", commissionPeriod); queryWrapper.eq(ObjectUtils.isNotEmpty(commissionPeriod), "commission_period", commissionPeriod);
...@@ -319,6 +321,15 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -319,6 +321,15 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
@Override @Override
public CommissionExpectedStatisticsVO getExpectedStatistics(List<Long> expectedIds) { public CommissionExpectedStatisticsVO getExpectedStatistics(List<Long> expectedIds) {
if (CollectionUtils.isEmpty(expectedIds)) {
CommissionExpectedStatisticsVO expectedStatisticsVO = new CommissionExpectedStatisticsVO();
expectedStatisticsVO.setTotalAmount(BigDecimal.ZERO);
expectedStatisticsVO.setTotalPaidAmount(BigDecimal.ZERO);
expectedStatisticsVO.setPendingPaidAmount(BigDecimal.ZERO);
expectedStatisticsVO.setPaidAmountRatio("0.00%");
expectedStatisticsVO.setTotalPolicyCount(0);
return expectedStatisticsVO;
}
// 自定义统计数据 // 自定义统计数据
CommissionExpectedStatisticsVO commissionStatistics = baseMapper.getExpectedStatistics(expectedIds); CommissionExpectedStatisticsVO commissionStatistics = baseMapper.getExpectedStatistics(expectedIds);
......
package com.yd.csf.service.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.yd.csf.service.model.CommissionExpected;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ContentRowHeight(15)
@HeadRowHeight(20)
@ColumnWidth(15)
public class CommissionExpectedExportDTO {
@ExcelProperty("应收账款编号")
@ColumnWidth(20)
private String receivableNo;
@ExcelProperty("应收款类型")
private String commissionBizType;
@ExcelProperty("保单号")
@ColumnWidth(20)
private String policyNo;
@ExcelProperty("对账公司")
@ColumnWidth(20)
private String reconciliationCompany;
@ExcelProperty("佣金期数")
private Integer commissionPeriod;
@ExcelProperty("总来佣期数")
private Integer totalPeriod;
@ExcelProperty("来佣名称")
@ColumnWidth(20)
private String commissionName;
@ExcelProperty("来佣类型")
private String commissionType;
@ExcelProperty("预计入账比例(%)")
private BigDecimal commissionRatio;
@ExcelProperty("来佣币种")
private String currency;
@ExcelProperty("预计来佣日期")
@DateTimeFormat("yyyy-MM-dd")
@ColumnWidth(15)
private Date commissionDate;
@ExcelProperty("入账状态")
private String status;
@ExcelProperty("预计入账金额(HKD)")
@ColumnWidth(20)
private BigDecimal expectedAmount;
@ExcelProperty("已入账金额(HKD)")
@ColumnWidth(20)
private BigDecimal paidAmount;
@ExcelProperty("待入账金额(HKD)")
@ColumnWidth(20)
private BigDecimal pendingAmount;
@ExcelProperty("备注")
@ColumnWidth(30)
private String remark;
@ExcelProperty("创建时间")
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
@ColumnWidth(20)
private Date createTime;
@ExcelProperty("更新时间")
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
@ColumnWidth(20)
private Date updateTime;
/**
* 将对象转换为导出DTO
*/
public static CommissionExpectedExportDTO convertToExportDTO(CommissionExpected vo) {
CommissionExpectedExportDTO dto = new CommissionExpectedExportDTO();
dto.setReceivableNo(vo.getReceivableNo());
dto.setCommissionBizType(vo.getCommissionBizType());
dto.setPolicyNo(vo.getPolicyNo());
dto.setReconciliationCompany(vo.getReconciliationCompany());
dto.setCommissionPeriod(vo.getCommissionPeriod());
dto.setTotalPeriod(vo.getTotalPeriod());
dto.setCommissionName(vo.getCommissionName());
dto.setCommissionType(vo.getCommissionType());
dto.setCommissionRatio(vo.getCommissionRatio());
dto.setCurrency(vo.getCurrency());
dto.setCommissionDate(vo.getCommissionDate());
dto.setStatus(getStatusText(vo.getStatus()));
dto.setExpectedAmount(vo.getExpectedAmount());
dto.setPaidAmount(vo.getPaidAmount());
// 计算待入账金额
BigDecimal pendingAmount = vo.getExpectedAmount() != null && vo.getPaidAmount() != null
? vo.getExpectedAmount().subtract(vo.getPaidAmount())
: BigDecimal.ZERO;
dto.setPendingAmount(pendingAmount);
dto.setRemark(vo.getRemark());
dto.setCreateTime(vo.getCreateTime());
dto.setUpdateTime(vo.getUpdateTime());
return dto;
}
/**
* 获取状态文本
*/
public static String getStatusText(String status) {
if (status == null) return "未知";
switch (status) {
case "0":
return "待入账";
case "1":
return "完成入账";
case "2":
return "部分入账";
case "3":
return "已失效";
default:
return "未知";
}
}
}
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