Commit 49324567 by jianan

来佣接口7

parent ec378a2e
......@@ -9,12 +9,12 @@ import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.csf.api.dto.FortuneImportDTO;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.FortuneDownloadRequest;
import com.yd.csf.service.dto.FortuneQueryRequest;
import com.yd.csf.service.dto.FortuneStatusUpdateRequest;
import com.yd.csf.service.dto.FortuneUpdateRequest;
import com.yd.csf.service.dto.*;
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;
......@@ -48,6 +48,9 @@ public class ApiFortuneController {
@Resource
private FortuneService fortuneService;
@Resource
private FortuneAccountService fortuneAccountService;
@PostMapping("/upload/excel")
@Transactional(rollbackFor = Exception.class)
......@@ -121,6 +124,27 @@ public class ApiFortuneController {
}
/**
* 分页获取出账列表
*
* @param fortuneAccountQueryRequest
* @param request
* @return
*/
@PostMapping("/list/page/fortuneAccount")
@Operation(summary = "分页获取出账列表")
public Result<Page<FortuneAccountVO>> listAccountByPage(@RequestBody FortuneAccountQueryRequest fortuneAccountQueryRequest,
HttpServletRequest request) {
long current = fortuneAccountQueryRequest.getPageNo();
long size = fortuneAccountQueryRequest.getPageSize();
// 查询数据库
Page<FortuneAccount> fortunePage = fortuneAccountService.page(new Page<>(current, size),
fortuneAccountService.getQueryWrapper(fortuneAccountQueryRequest));
// 获取封装类
return Result.success(fortuneAccountService.getFortuneAccountVOPage(fortunePage));
}
/**
* 删除fna
*
* @param deleteRequest
......
......@@ -36,11 +36,18 @@ public class CommissionQueryRequest extends PageDto implements Serializable {
private String reconciliationCompany;
/**
* 来佣日期
* 来佣日期开始
*/
@Schema(description = "来佣日期", example = "2023-01-01",format = "yyyy-MM-dd")
@Schema(description = "来佣日期开始", example = "2023-01-01",format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date commissionDate;
private Date commissionDateStart;
/**
* 来佣日期结束
*/
@Schema(description = "来佣日期结束", example = "2023-01-01",format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date commissionDateEnd;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yd.csf.service.dto;
import com.yd.common.dto.PageDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
@Data
public class FortuneAccountQueryRequest extends PageDto {
@Schema(description = "转介人")
private String broker;
@Schema(description = "出账日期开始", example = "2023-01-01", type = "string", format = "date")
private Date accountDateStart;
@Schema(description = "出账日期结束", example = "2023-01-01", type = "string", format = "date")
private Date accountDateEnd;
}
package com.yd.csf.service.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 出账记录表
* @TableName fortune_account
*/
@TableName(value ="fortune_account")
@Data
public class FortuneAccount implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 出账记录业务id
*/
private String fortuneAccountBizId;
/**
* 转介人
*/
private String broker;
/**
* 出账日期
*/
private Date fortuneAccountDate;
/**
* 出账信息
*/
private String content;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -22,6 +22,7 @@ import com.yd.csf.service.service.FortuneService;
import com.yd.csf.service.service.PolicyBrokerService;
import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.vo.CommissionVO;
import com.yd.csf.service.vo.FnaVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
......@@ -59,12 +60,16 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
String status = commissionQueryRequest.getStatus();
String policyNo = commissionQueryRequest.getPolicyNo();
String reconciliationCompany = commissionQueryRequest.getReconciliationCompany();
Date commissionDate = commissionQueryRequest.getCommissionDate();
Date commissionDateStart = commissionQueryRequest.getCommissionDateStart();
Date commissionDateEnd = commissionQueryRequest.getCommissionDateEnd();
queryWrapper.eq(StringUtils.isNotBlank(status), "status", status);
queryWrapper.like(StringUtils.isNotBlank(policyNo), "policy_no", policyNo);
queryWrapper.like(StringUtils.isNotBlank(reconciliationCompany), "reconciliation_company", reconciliationCompany);
queryWrapper.eq(commissionDate != null, "commission_date", commissionDate);
if (commissionDateStart != null && commissionDateEnd != null) {
queryWrapper.between("commission_date", commissionDateStart, commissionDateEnd);
}
queryWrapper.orderByDesc("id");
return queryWrapper;
......@@ -73,16 +78,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
@Override
public Page<CommissionVO> getCommissionVOPage(Page<Commission> commissionPage) {
List<Commission> commissionList = commissionPage.getRecords();
Page<CommissionVO> commissionVOPage = new Page<>(commissionPage.getCurrent(), commissionPage.getSize());
Page<CommissionVO> commissionVOPage = new Page<>(commissionPage.getCurrent(), commissionPage.getSize(), commissionPage.getTotal());
if (CollUtil.isEmpty(commissionList)) {
return commissionVOPage;
}
List<CommissionVO> commissionVOList = commissionList.stream().map(commission -> {
CommissionVO commissionVO = new CommissionVO();
BeanUtils.copyProperties(commission, commissionVO);
return commissionVO;
}).collect(Collectors.toList());
List<CommissionVO> commissionVOList = commissionList.stream().map(CommissionVO::objToVo).collect(Collectors.toList());
commissionVOPage.setRecords(commissionVOList);
return commissionVOPage;
......
......@@ -12,6 +12,7 @@ import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.model.Fortune;
import com.yd.csf.service.service.FortuneAccountService;
import com.yd.csf.service.service.FortuneService;
import com.yd.csf.service.dao.FortuneMapper;
import com.yd.csf.service.vo.FortuneVO;
......@@ -20,6 +21,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
......@@ -38,6 +40,9 @@ import java.util.stream.Collectors;
public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
implements FortuneService {
@Resource
private FortuneAccountService fortuneAccountService;
@Override
public Wrapper<Fortune> getQueryWrapper(FortuneQueryRequest fortuneQueryRequest) {
QueryWrapper<Fortune> queryWrapper = new QueryWrapper<>();
......@@ -191,6 +196,10 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
}
dataList.add(row);
}
// 写入数据库
fortuneAccountService.saveFortuneAccount(accountExportDTOList);
// 使用try-with-resources确保流正确关闭
try (ServletOutputStream outputStream = response.getOutputStream()) {
// 写入 Excel
......
package com.yd.csf.service.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.model.Commission;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.math.BigDecimal;
......@@ -12,82 +16,115 @@ public class CommissionVO implements Serializable {
/**
* 保单来佣业务id
*/
@Schema(description = "保单来佣业务id")
private String commissionBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema(description = "佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)")
private Integer commissionPeriod;
/**
* 总来佣期数
*/
@Schema(description = "总来佣期数")
private Integer totalPeriod;
/**
* 来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema(description = "来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)")
private String commissionName;
/**
* 来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema(description = "来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)")
private String commissionType;
/**
* 来佣金额
*/
@Schema(description = "来佣金额")
private BigDecimal amount;
/**
* 来佣币种
*/
@Schema(description = "来佣币种")
private String currency;
/**
* 来佣日期
*/
@Schema(description = "来佣日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date commissionDate;
/**
* 来佣状态 0=未比对 1=已比对
*/
@Schema(description = "来佣状态 0=未比对 1=已比对")
private String status;
/**
* 通用备注
*/
@Schema(description = "备注")
private String remark;
/**
* 创建人ID
*/
@Schema(description = "创建人ID")
private String creatorId;
/**
* 更新人ID
*/
@Schema(description = "更新人ID")
private String updaterId;
/**
* 创建时间
*/
@Schema(description = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@Schema(description = "更新时间")
private Date updateTime;
private static final long serialVersionUID = 1L;
/**
* 对象转封装类
*
* @param commission
* @return
*/
public static CommissionVO objToVo(Commission commission) {
if (commission == null) {
return null;
}
CommissionVO commissionVO = new CommissionVO();
BeanUtils.copyProperties(commission, commissionVO);
return commissionVO;
}
}
package com.yd.csf.service.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.model.Customer;
import com.yd.csf.service.model.FortuneAccount;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
public class FortuneAccountVO {
/**
* 出账记录业务id
*/
@Schema(description = "出账记录业务id")
private String fortuneAccountBizId;
/**
* 转介人
*/
@Schema(description = "转介人")
private String broker;
/**
* 出账日期
*/
@Schema(description = "出账日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date fortuneAccountDate;
/**
* 出账信息
*/
@Schema(description = "出账信息")
private List<Map<String, Object>> fortuneList;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 对象转封装类
*
* @param fortuneAccount
* @return
*/
public static FortuneAccountVO objToVo(FortuneAccount fortuneAccount) {
if (fortuneAccount == null) {
return null;
}
FortuneAccountVO fortuneAccountVO = new FortuneAccountVO();
BeanUtils.copyProperties(fortuneAccount, fortuneAccountVO);
return fortuneAccountVO;
}
}
package com.yd.csf.service.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.model.Fortune;
import com.yd.csf.service.model.FortuneAccount;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.math.BigDecimal;
......@@ -12,121 +17,134 @@ public class FortuneVO implements Serializable {
/**
* 保单发佣业务id
*/
@Schema(description = "保单发佣业务id")
private String fortuneBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema(description = "发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)")
private Integer fortunePeriod;
/**
* 发佣总期数
*/
@Schema(description = "发佣总期数")
private Integer fortuneTotalPeriod;
/**
* 转介人
*/
@Schema(description = "转介人")
private String broker;
/**
* 转介人业务ID
*/
@Schema(description = "转介人业务ID")
private String brokerBizId;
/**
* 所属团队
*/
@Schema(description = "所属团队")
private String team;
/**
* 所属团队业务ID
*/
@Schema(description = "所属团队业务ID")
private String teamBizId;
/**
* 个人职级佣金率
*/
private BigDecimal gradeCommissionRate;
/**
* 多个代理人财富分摊比例
*/
private BigDecimal shareRate;
/**
* 来佣名称
* 发佣名称
*/
@Schema(description = "发佣名称")
private String fortuneName;
/**
* 发佣类型
*/
@Schema(description = "发佣类型")
private String fortuneType;
/**
* 发佣金额
*/
@Schema(description = "发佣金额")
private BigDecimal amount;
/**
* 发佣币种
*/
@Schema(description = "发佣币种")
private String currency;
/**
* 佣金发放状态 0=暂不可发 1=可发放 2=已发并关账
*/
@Schema(description = "佣金发放状态 0=暂不可发 1=可发放 2=已发并关账 字典值:csf_fortune_status")
private String status;
/**
* 发佣日期
*/
@Schema(description = "发佣日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date payoutDate;
/**
* 是否含税 0=No, 1=Yes
*/
@Schema(description = "是否含税 0=No, 1=Yes")
private Integer isTax;
/**
* 应缴税额
*/
@Schema(description = "应缴税额")
private BigDecimal taxAmount;
/**
* 税后发佣
*/
@Schema(description = "税后发佣")
private BigDecimal netAmount;
/**
* 薪资单业务id
*/
@Schema(description = "薪资单业务id")
private String salaryBizId;
/**
* 基本法id
*/
@Schema(description = "基本法id")
private String baseRuleBizId;
/**
* 计算规则id
*/
@Schema(description = "计算规则id")
private String settlementBizId;
/**
* 计算公式
*/
@Schema(description = "计算公式")
private String calculationFormula;
/**
* 通用备注
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
......@@ -155,4 +173,20 @@ public class FortuneVO implements Serializable {
private Date updateTime;
private static final long serialVersionUID = 1L;
/**
* 对象转封装类
*
* @param fortune
* @return
*/
public static FortuneVO objToVo(Fortune fortune) {
if (fortune == null) {
return null;
}
FortuneVO fortuneVO = new FortuneVO();
BeanUtils.copyProperties(fortune, fortuneVO);
return fortuneVO;
}
}
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