Commit fc597682 by jianan

前端对接问题修复47

parent d8b9a136
......@@ -79,6 +79,7 @@ public class CommissionExcelDTO {
public static Commission convertToEntityNew(CommissionExcelDTO data, String loginUserId) {
Commission entity = new Commission();
// 字段映射
entity.setCommissionBizType(data.getCommissionBizType());
entity.setPolicyNo(data.getPolicyNo2());
entity.setCommissionPeriod(data.getCommissionPeriod2());
entity.setCommissionName(data.getCommissionName2());
......
......@@ -173,14 +173,16 @@ public class CommissionAsyncService {
// 校验参数
boolean validFlag = false;
for (Commission existingCommission : existingCommissions) {
if (existingCommission.getTotalPeriod().compareTo(commissionExpected.getTotalPeriod()) != 0) {
Integer commissionTotalPeriod = existingCommission.getTotalPeriod();
Integer expectedTotalPeriod = commissionExpected.getTotalPeriod();
if (commissionTotalPeriod.compareTo(expectedTotalPeriod) != 0) {
existingCommission.setRemark("来佣总期数与预计来佣总期数不一致");
existingCommission.setStatus(CommissionStatusEnum.COMPARE_FAIL.getItemValue());
validFlag = true;
}
}
// 参数校验未通过,更新后,不执行后续计算
if (!validFlag) {
if (validFlag) {
commissionService.updateBatchById(existingCommissions);
return;
}
......@@ -191,7 +193,12 @@ public class CommissionAsyncService {
BigDecimal paidRatio = BigDecimal.ZERO;
BigDecimal paidAmount = BigDecimal.ZERO;
for (Commission item : existingCommissions) {
paidRatio = paidRatio.add(item.getCurrentCommissionRatio());
if (item.getCurrentCommissionRatio() == null) {
log.warn("当前来佣比例为空,临时计算当前来佣比例: {}", item);
paidRatio = paidRatio.add(item.calculateCurrentPaidRatio());
} else {
paidRatio = paidRatio.add(item.getCurrentCommissionRatio());
}
paidAmount = paidAmount.add(item.getAmount());
}
......
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;
......@@ -23,7 +21,7 @@ public interface CommissionMapper extends BaseMapper<Commission> {
CommissionStatisticsVO getCommissionStatistics(@Param("commissionIdList") List<Long> commissionIdList);
int updateStatusBatchById(@Param("existingCommissions") List<Commission> existingCommissions);
int updateStatusBatchById(@Param("list") List<Commission> list);
}
......
......@@ -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
......@@ -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.*;
......@@ -673,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);
......
......@@ -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;
/**
......
......@@ -49,18 +49,21 @@
</sql>
<update id="updateStatusBatchById">
update commission
set
status = #{item.status},
update_time = now()
where id in
<foreach collection="existingCommissions" item="item" index="index" open="(" separator="," close=")">
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