Commit b8053594 by zhangxingmin

Merge remote-tracking branch 'origin/test' into test

parents bee5253a e0b2fb70
......@@ -6,6 +6,7 @@ import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.model.Commission;
import com.yd.csf.service.model.CommissionExpected;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.Date;
......@@ -79,6 +80,10 @@ public class CommissionExcelDTO {
public static Commission convertToEntityNew(CommissionExcelDTO data, String loginUserId) {
Commission entity = new Commission();
// 字段映射
String commissionBizType = data.getCommissionBizType();
if (StringUtils.isNotBlank(commissionBizType)) {
entity.setCommissionBizType("R".equals(commissionBizType) || "关联保单应收单".equalsIgnoreCase(commissionBizType) ? "R" : "U");
}
entity.setPolicyNo(data.getPolicyNo2());
entity.setCommissionPeriod(data.getCommissionPeriod2());
entity.setCommissionName(data.getCommissionName2());
......
package com.yd.csf.service.dao;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yd.csf.service.dto.CommissionBindPolicyBrokerDto;
import com.yd.csf.service.dto.CommissionDto;
import com.yd.csf.service.model.Commission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yd.csf.service.vo.CommissionStatisticsVO;
import com.yd.csf.service.vo.CommissionVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -22,6 +20,8 @@ public interface CommissionMapper extends BaseMapper<Commission> {
List<CommissionBindPolicyBrokerDto> queryCommissionBindPolicyBrokerList(@Param("dto") CommissionDto dto);
CommissionStatisticsVO getCommissionStatistics(@Param("commissionIdList") List<Long> commissionIdList);
int updateStatusBatchById(@Param("list") List<Commission> list);
}
......
......@@ -11,9 +11,9 @@ import java.util.Date;
@Data
public class CommissionUpdateRequest implements Serializable {
/**
* 保单来佣业务id
* 保单入账业务id
*/
@Schema(description = "保单来佣业务id", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "保单入账业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String commissionBizId;
/**
......@@ -29,12 +29,6 @@ public class CommissionUpdateRequest implements Serializable {
private String policyNo;
/**
* 保费
*/
@Schema(description = "保费")
private String premium;
/**
* 对账公司
*/
@Schema(description = "对账公司")
......@@ -47,9 +41,9 @@ public class CommissionUpdateRequest implements Serializable {
private String reconciliationCompanyBizId;
/**
* 来佣比对状态
* 入账比对状态
*/
// @Schema(description = "来佣比对状态 1=比对成功 2=比对失败")
// @Schema(description = "入账比对状态 1=比对成功 2=比对失败")
// private String status;
/**
......@@ -59,33 +53,33 @@ public class CommissionUpdateRequest implements Serializable {
private Integer commissionPeriod;
/**
* 总来佣期数
* 总入账期数
*/
@Schema(description = "总来佣期数")
@Schema(description = "总入账期数")
private Integer totalPeriod;
/**
* 来佣名称(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 String commissionName;
/**
* 来佣类型(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 String commissionType;
/**
* 来佣金额
* 入账金额
*/
@Schema(description = "来佣金额")
@Schema(description = "入账金额")
private BigDecimal amount;
/**
* 来佣币种
* 入账币种
*/
@Schema(description = "来佣币种")
@Schema(description = "入账币种")
private String currency;
/**
......@@ -95,9 +89,9 @@ public class CommissionUpdateRequest implements Serializable {
private String exchangeRate;
/**
* 来佣日期
* 入账日期
*/
@Schema(description = "来佣日期")
@Schema(description = "入账日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date commissionDate;
......
......@@ -9,6 +9,7 @@ public enum CommissionStatusEnum {
WAIT("未比对","0"),
COMPARE_SUCCESS("比对成功","1"),
COMPARE_FAIL("比对失败","2"),
MATCH_FAILED("未查询到预计来佣记录","3");
;
//字典项标签(名称)
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import lombok.Data;
......@@ -195,4 +196,11 @@ public class Commission implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
public BigDecimal calculateCurrentPaidRatio() {
// 当前来佣比例=当前入账金额/结算汇率/保费 * 100
return amount.divide(new BigDecimal(premium), 4, RoundingMode.HALF_UP)
.divide(new BigDecimal(exchangeRate), 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100));
}
}
\ No newline at end of file
......@@ -51,4 +51,6 @@ public interface CommissionService extends IService<Commission> {
List<Commission> addCommissionBatch(List<CommissionAddRequest> customerAddRequestList);
Boolean addToExpected(AddToExpectedCommissionRequest addToExpectedCommissionRequest);
int updateStatusBatchById(List<Commission> existingCommissions);
}
......@@ -15,6 +15,7 @@ import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.component.CommissionAsyncService;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.CommissionStatusEnum;
import com.yd.csf.service.enums.FortuneStatusEnum;
import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*;
......@@ -210,11 +211,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
BigDecimal amount = commission.getAmount();
BigDecimal requestAmount = commissionUpdateRequest.getAmount();
// 1. 执行主更新事务(这个方法将在当前事务中执行)
// 计算当前来佣比例
BigDecimal currentCommissionRatio = this.calculateCurrentCommissionRatio(
commissionUpdateRequest.getAmount(),
commissionUpdateRequest.getPremium(),
commission.getPremium(),
requestAmount,
commissionUpdateRequest.getCurrency(),
commissionUpdateRequest.getExchangeRate());
// 获取当前登录用户
......@@ -261,18 +262,14 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
log.error("来佣业务id不能为空:{}", commissionUpdateRequest.getCommissionBizId());
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "来佣业务id不能为空");
}
if (ObjectUtils.isEmpty(commissionUpdateRequest.getPremium())) {
log.error("保费不能为空:{}", commissionUpdateRequest.getPremium());
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保费不能为空");
}
if (ObjectUtils.isEmpty(commissionUpdateRequest.getAmount())) {
log.error("当前入账金额不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前入账金额不能为空");
}
if (ObjectUtils.isEmpty(commissionUpdateRequest.getExchangeRate())) {
log.error("当前结算汇率不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前结算汇率不能为空");
}
// if (ObjectUtils.isEmpty(commissionUpdateRequest.getAmount())) {
// log.error("当前入账金额不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
// throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前入账金额不能为空");
// }
// if (ObjectUtils.isEmpty(commissionUpdateRequest.getExchangeRate())) {
// log.error("当前结算汇率不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
// throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前结算汇率不能为空");
// }
}
......@@ -570,9 +567,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return this.getOne(new QueryWrapper<Commission>().eq("commission_biz_id", commissionBizId));
}
public BigDecimal calculateCurrentCommissionRatio(BigDecimal amount, String premium, String exchangeRate) {
public BigDecimal calculateCurrentCommissionRatio(String premium, BigDecimal amount, String exchangeRate, String currency) {
if (ObjectUtils.isEmpty(premium)) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保费不能为空");
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保单保费不能为空");
}
if (ObjectUtils.isEmpty(amount)) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前入账金额不能为空");
......@@ -677,6 +674,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
log.warn("新增入账:未查询到预计来佣记录, policyNo: {}, commissionPeriod: {}, commissionName: {}, currency: {}",
request.getPolicyNo(), request.getCommissionPeriod(), request.getCommissionName(), request.getCurrency());
commission.setRemark("未查询到预计来佣记录");
commission.setStatus(CommissionStatusEnum.MATCH_FAILED.getItemValue());
}
}
commissionList.add(commission);
......@@ -750,6 +748,11 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return commissionExpectedService.save(expected);
}
@Override
public int updateStatusBatchById(List<Commission> existingCommissions) {
return this.baseMapper.updateStatusBatchById(existingCommissions);
}
/**
* 查询列表
*
......
......@@ -167,7 +167,7 @@ public class CommissionVO implements Serializable {
/**
* 比对状态
*/
@Schema(description = "比对状态 0=未比对 1=比对成功 2=比对失败 字典值: csf_commission_status")
@Schema(description = "比对状态 0=未比对 1=比对成功 2=比对失败 3=未匹配到预计入账记录 字典值: csf_commission_status")
private String commissionStatus;
/**
......
......@@ -48,6 +48,22 @@
updater_id,create_time,update_time
</sql>
<update id="updateStatusBatchById">
UPDATE commission
<set>
status = CASE id
<foreach collection="list" item="item">
WHEN #{item.id} THEN #{item.status}
</foreach>
END,
update_time = NOW()
</set>
WHERE id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<select id="queryCommissionBindPolicyBrokerList"
resultType="com.yd.csf.service.dto.CommissionBindPolicyBrokerDto">
select c.*,p.*,pb.*
......
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