Commit fc597682 by jianan

前端对接问题修复47

parent d8b9a136
...@@ -79,6 +79,7 @@ public class CommissionExcelDTO { ...@@ -79,6 +79,7 @@ public class CommissionExcelDTO {
public static Commission convertToEntityNew(CommissionExcelDTO data, String loginUserId) { public static Commission convertToEntityNew(CommissionExcelDTO data, String loginUserId) {
Commission entity = new Commission(); Commission entity = new Commission();
// 字段映射 // 字段映射
entity.setCommissionBizType(data.getCommissionBizType());
entity.setPolicyNo(data.getPolicyNo2()); entity.setPolicyNo(data.getPolicyNo2());
entity.setCommissionPeriod(data.getCommissionPeriod2()); entity.setCommissionPeriod(data.getCommissionPeriod2());
entity.setCommissionName(data.getCommissionName2()); entity.setCommissionName(data.getCommissionName2());
......
...@@ -173,14 +173,16 @@ public class CommissionAsyncService { ...@@ -173,14 +173,16 @@ public class CommissionAsyncService {
// 校验参数 // 校验参数
boolean validFlag = false; boolean validFlag = false;
for (Commission existingCommission : existingCommissions) { 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.setRemark("来佣总期数与预计来佣总期数不一致");
existingCommission.setStatus(CommissionStatusEnum.COMPARE_FAIL.getItemValue()); existingCommission.setStatus(CommissionStatusEnum.COMPARE_FAIL.getItemValue());
validFlag = true; validFlag = true;
} }
} }
// 参数校验未通过,更新后,不执行后续计算 // 参数校验未通过,更新后,不执行后续计算
if (!validFlag) { if (validFlag) {
commissionService.updateBatchById(existingCommissions); commissionService.updateBatchById(existingCommissions);
return; return;
} }
...@@ -191,7 +193,12 @@ public class CommissionAsyncService { ...@@ -191,7 +193,12 @@ public class CommissionAsyncService {
BigDecimal paidRatio = BigDecimal.ZERO; BigDecimal paidRatio = BigDecimal.ZERO;
BigDecimal paidAmount = BigDecimal.ZERO; BigDecimal paidAmount = BigDecimal.ZERO;
for (Commission item : existingCommissions) { 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()); paidAmount = paidAmount.add(item.getAmount());
} }
......
package com.yd.csf.service.dao; 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.CommissionBindPolicyBrokerDto;
import com.yd.csf.service.dto.CommissionDto; import com.yd.csf.service.dto.CommissionDto;
import com.yd.csf.service.model.Commission; import com.yd.csf.service.model.Commission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yd.csf.service.vo.CommissionStatisticsVO; import com.yd.csf.service.vo.CommissionStatisticsVO;
import com.yd.csf.service.vo.CommissionVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -23,7 +21,7 @@ public interface CommissionMapper extends BaseMapper<Commission> { ...@@ -23,7 +21,7 @@ public interface CommissionMapper extends BaseMapper<Commission> {
CommissionStatisticsVO getCommissionStatistics(@Param("commissionIdList") List<Long> commissionIdList); 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 { ...@@ -9,6 +9,7 @@ public enum CommissionStatusEnum {
WAIT("未比对","0"), WAIT("未比对","0"),
COMPARE_SUCCESS("比对成功","1"), COMPARE_SUCCESS("比对成功","1"),
COMPARE_FAIL("比对失败","2"), COMPARE_FAIL("比对失败","2"),
MATCH_FAILED("未查询到预计来佣记录","3");
; ;
//字典项标签(名称) //字典项标签(名称)
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
...@@ -195,4 +196,11 @@ public class Commission implements Serializable { ...@@ -195,4 +196,11 @@ public class Commission implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; 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; ...@@ -15,6 +15,7 @@ import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.component.CommissionAsyncService; import com.yd.csf.service.component.CommissionAsyncService;
import com.yd.csf.service.dto.*; 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.enums.FortuneStatusEnum;
import com.yd.csf.service.model.*; import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*; import com.yd.csf.service.service.*;
...@@ -673,6 +674,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -673,6 +674,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
log.warn("新增入账:未查询到预计来佣记录, policyNo: {}, commissionPeriod: {}, commissionName: {}, currency: {}", log.warn("新增入账:未查询到预计来佣记录, policyNo: {}, commissionPeriod: {}, commissionName: {}, currency: {}",
request.getPolicyNo(), request.getCommissionPeriod(), request.getCommissionName(), request.getCurrency()); request.getPolicyNo(), request.getCommissionPeriod(), request.getCommissionName(), request.getCurrency());
commission.setRemark("未查询到预计来佣记录"); commission.setRemark("未查询到预计来佣记录");
commission.setStatus(CommissionStatusEnum.MATCH_FAILED.getItemValue());
} }
} }
commissionList.add(commission); commissionList.add(commission);
......
...@@ -167,7 +167,7 @@ public class CommissionVO implements Serializable { ...@@ -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; private String commissionStatus;
/** /**
......
...@@ -49,18 +49,21 @@ ...@@ -49,18 +49,21 @@
</sql> </sql>
<update id="updateStatusBatchById"> <update id="updateStatusBatchById">
update commission UPDATE commission
set <set>
status = #{item.status}, status = CASE id
update_time = now() <foreach collection="list" item="item">
where id in WHEN #{item.id} THEN #{item.status}
<foreach collection="existingCommissions" item="item" index="index" open="(" separator="," close=")"> </foreach>
END,
update_time = NOW()
</set>
WHERE id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id} #{item.id}
</foreach> </foreach>
</update> </update>
<select id="queryCommissionBindPolicyBrokerList" <select id="queryCommissionBindPolicyBrokerList"
resultType="com.yd.csf.service.dto.CommissionBindPolicyBrokerDto"> resultType="com.yd.csf.service.dto.CommissionBindPolicyBrokerDto">
select c.*,p.*,pb.* 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