Commit 57dab836 by zhangxingmin

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

parents bd3af9fe 50ca4449
...@@ -349,12 +349,8 @@ public class ApiCommissionController { ...@@ -349,12 +349,8 @@ public class ApiCommissionController {
// if (!oldCommission.getUserId().equals(loginUserId) && !userService.isAdmin(request)) { // if (!oldCommission.getUserId().equals(loginUserId) && !userService.isAdmin(request)) {
// throw new BusinessException(ErrorCode.NO_AUTH_ERROR); // throw new BusinessException(ErrorCode.NO_AUTH_ERROR);
// } // }
// 操作数据库
boolean result = commissionService.removeById(oldCommission.getId()); return Result.success(commissionService.deleteCommission(oldCommission));
if (!result) {
return Result.fail(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
return Result.success(result);
} }
/** /**
......
...@@ -1244,18 +1244,22 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -1244,18 +1244,22 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
if (expectedFortune.getPaidAmount().compareTo(BigDecimal.ZERO) > 0) { if (expectedFortune.getPaidAmount().compareTo(BigDecimal.ZERO) > 0) {
throw new BusinessException(ResultCode.FAIL.getCode(), "当前应付款已有出账金额,不能修改"); throw new BusinessException(ResultCode.FAIL.getCode(), "当前应付款已有出账金额,不能修改");
} }
CurrencyEnum currencyEnum;
try {
currencyEnum = CurrencyEnum.valueOf(request.getCurrency());
} catch (IllegalArgumentException e) {
throw new BusinessException(ResultCode.FAIL.getCode(), "币种错误:" + request.getCurrency());
}
ExpectedFortune updateExpectedFortune = new ExpectedFortune(); ExpectedFortune updateExpectedFortune = new ExpectedFortune();
BeanUtils.copyProperties(request, updateExpectedFortune); BeanUtils.copyProperties(request, updateExpectedFortune);
updateExpectedFortune.setId(expectedFortune.getId()); updateExpectedFortune.setId(expectedFortune.getId());
// 默认结算汇率 // 默认结算汇率
if (updateExpectedFortune.getDefaultExchangeRate() == null) {
updateExpectedFortune.setDefaultExchangeRate( updateExpectedFortune.setDefaultExchangeRate(
queryExchangeRateByFeign( queryExchangeRateByFeign(
updateExpectedFortune.getPolicyCurrency(), expectedFortune.getPolicyCurrency(),
updateExpectedFortune.getCurrency() updateExpectedFortune.getCurrency()
)); ));
}
// 计算港币金额 // 计算港币金额
updateExpectedFortune.setHkdAmount(updateExpectedFortune.getAmount().multiply(updateExpectedFortune.getDefaultExchangeRate())); updateExpectedFortune.setHkdAmount(updateExpectedFortune.getAmount().multiply(updateExpectedFortune.getDefaultExchangeRate()));
......
...@@ -2,6 +2,7 @@ package com.yd.csf.service.dao; ...@@ -2,6 +2,7 @@ package com.yd.csf.service.dao;
import com.yd.csf.service.model.CommissionCompareRecord; import com.yd.csf.service.model.CommissionCompareRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
...@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface CommissionCompareRecordMapper extends BaseMapper<CommissionCompareRecord> { public interface CommissionCompareRecordMapper extends BaseMapper<CommissionCompareRecord> {
void removeByCommissionId(@Param("commissionId") String commissionId);
} }
......
...@@ -22,6 +22,8 @@ public interface CommissionMapper extends BaseMapper<Commission> { ...@@ -22,6 +22,8 @@ public interface CommissionMapper extends BaseMapper<Commission> {
CommissionStatisticsVO getCommissionStatistics(@Param("commissionIdList") List<Long> commissionIdList); CommissionStatisticsVO getCommissionStatistics(@Param("commissionIdList") List<Long> commissionIdList);
int updateStatusBatchById(@Param("list") List<Commission> list); int updateStatusBatchById(@Param("list") List<Commission> list);
int deleteByIdPhysical(Long id);
} }
......
...@@ -13,4 +13,5 @@ import java.util.List; ...@@ -13,4 +13,5 @@ import java.util.List;
*/ */
public interface CommissionCompareRecordService extends IService<CommissionCompareRecord> { public interface CommissionCompareRecordService extends IService<CommissionCompareRecord> {
void removeByCommissionId(String commissionId);
} }
...@@ -55,4 +55,8 @@ public interface CommissionService extends IService<Commission> { ...@@ -55,4 +55,8 @@ public interface CommissionService extends IService<Commission> {
Boolean addToExpected(AddToExpectedCommissionRequest addToExpectedCommissionRequest); Boolean addToExpected(AddToExpectedCommissionRequest addToExpectedCommissionRequest);
int updateStatusBatchById(List<Commission> existingCommissions); int updateStatusBatchById(List<Commission> existingCommissions);
boolean deleteByIdPhysical(Long id);
Boolean deleteCommission(Commission oldCommission);
} }
...@@ -15,6 +15,10 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +15,10 @@ import org.springframework.stereotype.Service;
public class CommissionCompareRecordServiceImpl extends ServiceImpl<CommissionCompareRecordMapper, CommissionCompareRecord> public class CommissionCompareRecordServiceImpl extends ServiceImpl<CommissionCompareRecordMapper, CommissionCompareRecord>
implements CommissionCompareRecordService{ implements CommissionCompareRecordService{
@Override
public void removeByCommissionId(String commissionId) {
this.baseMapper.removeByCommissionId(commissionId);
}
} }
......
...@@ -15,6 +15,7 @@ import com.yd.common.enums.ResultCode; ...@@ -15,6 +15,7 @@ import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.component.CommissionAsyncService; import com.yd.csf.service.component.CommissionAsyncService;
import com.yd.csf.service.component.ReceivableService; import com.yd.csf.service.component.ReceivableService;
import com.yd.csf.service.dto.*; import com.yd.csf.service.dto.*;
...@@ -1046,6 +1047,70 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -1046,6 +1047,70 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return this.baseMapper.updateStatusBatchById(existingCommissions); return this.baseMapper.updateStatusBatchById(existingCommissions);
} }
@Override
public boolean deleteByIdPhysical(Long id) {
return baseMapper.deleteByIdPhysical(id) > 0;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteCommission(Commission oldCommission) {
// 操作数据库
boolean result = this.deleteByIdPhysical(oldCommission.getId());
if (!result) {
throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
String commissionBizId = oldCommission.getCommissionBizId();
// 删除关联来佣比对记录
commissionCompareRecordService.removeByCommissionId(commissionBizId);
// 更新预计来佣记录
String commissionExpectedBizId = oldCommission.getCommissionExpectedBizId();
if (StringUtils.isNotBlank(commissionExpectedBizId)) {
// 查询该预计来佣下的所有剩余来佣记录
List<Commission> remainingCommissions = this.lambdaQuery()
.eq(Commission::getCommissionExpectedBizId, commissionExpectedBizId)
.list();
// 计算新的 paidAmount 和 paidRatio
BigDecimal paidRatio = BigDecimal.ZERO;
BigDecimal paidAmount = BigDecimal.ZERO;
for (Commission item : remainingCommissions) {
paidRatio = paidRatio.add(item.getCurrentCommissionRatio());
paidAmount = paidAmount.add(item.getHkdAmount());
}
// 获取预计来佣记录
CommissionExpected commissionExpected = commissionExpectedService.lambdaQuery()
.eq(CommissionExpected::getCommissionExpectedBizId, commissionExpectedBizId)
.one();
if (commissionExpected != null) {
// 根据 paidRatio 与 commissionRatio 比较确定状态
String newStatus;
if (CollectionUtils.isEmpty(remainingCommissions)) {
// 没有剩余来佣时,恢复到初始状态
newStatus = CommissionExpectedStatusEnum.PENDING.getItemValue();
} else if (paidRatio.compareTo(commissionExpected.getCommissionRatio()) == 0) {
newStatus = CommissionExpectedStatusEnum.COMPARED.getItemValue();
} else {
newStatus = CommissionExpectedStatusEnum.PARTIAL.getItemValue();
}
// 更新预计来佣记录
commissionExpectedService.lambdaUpdate()
.set(CommissionExpected::getPaidAmount, paidAmount.setScale(4, RoundingMode.HALF_UP))
.set(CommissionExpected::getPaidRatio, paidRatio)
.set(CommissionExpected::getStatus, newStatus)
.eq(CommissionExpected::getCommissionExpectedBizId, commissionExpectedBizId)
.update();
}
}
return true;
}
/** /**
* 查询列表 * 查询列表
* *
......
...@@ -358,8 +358,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -358,8 +358,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
// 校验发佣记录状态 // 校验发佣记录状态
StringBuilder validateMsg = new StringBuilder(); StringBuilder validateMsg = new StringBuilder();
for (Fortune fortune : fortuneList) { for (Fortune fortune : fortuneList) {
if (!StringUtils.equals(fortune.getStatus(), FortuneStatusEnum.CHECKED.getItemValue())) { if (StringUtils.equals(fortune.getStatus(), FortuneStatusEnum.WAIT.getItemValue())) {
validateMsg.append(fortune.getPolicyNo()).append("-").append(fortune.getBroker()).append("当前状态不是'可出账, 已检核',不能生成出账记录; "); validateMsg.append(fortune.getPolicyNo()).append("-").append(fortune.getBroker()).append("待出账状态不能直接改为'可出账, 检核完成',不能生成出账记录; ");
} }
if (StringUtils.equals(fortune.getStatus(), FortuneStatusEnum.SENT.getItemValue())) { if (StringUtils.equals(fortune.getStatus(), FortuneStatusEnum.SENT.getItemValue())) {
validateMsg.append(fortune.getPolicyNo()).append("-").append(fortune.getBroker()).append("已完成出账,不能生成出账记录; "); validateMsg.append(fortune.getPolicyNo()).append("-").append(fortune.getBroker()).append("已完成出账,不能生成出账记录; ");
...@@ -723,6 +723,10 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -723,6 +723,10 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
Fortune fortune = new Fortune(); Fortune fortune = new Fortune();
BeanUtil.copyProperties(fortuneAddRequest, fortune); BeanUtil.copyProperties(fortuneAddRequest, fortune);
// 计算港币金额
fortune.setExchangeRate(queryExchangeRateByFeign(fortuneAddRequest.getCurrency(), "HKD"));
fortune.setHkdAmount(fortuneAddRequest.getAmount().multiply(fortune.getExchangeRate()));
fortune.setCurrentPaymentHkdAmount(fortune.getHkdAmount());
if ("R".equals(fortuneAddRequest.getFortuneBizType())) { if ("R".equals(fortuneAddRequest.getFortuneBizType())) {
ExpectedFortune expectedFortune = expectedFortuneMap.get(fortuneAddRequest.getPolicyNo() + "_" + fortuneAddRequest.getFortunePeriod() + "_" + fortuneAddRequest.getFortuneType()); ExpectedFortune expectedFortune = expectedFortuneMap.get(fortuneAddRequest.getPolicyNo() + "_" + fortuneAddRequest.getFortunePeriod() + "_" + fortuneAddRequest.getFortuneType());
...@@ -731,9 +735,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -731,9 +735,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
} }
fortune.setExpectedFortuneBizId(expectedFortune.getExpectedFortuneBizId()); fortune.setExpectedFortuneBizId(expectedFortune.getExpectedFortuneBizId());
fortune.setPolicyCurrency(expectedFortune.getPolicyCurrency()); fortune.setPolicyCurrency(expectedFortune.getPolicyCurrency());
fortune.setExchangeRate(expectedFortune.getDefaultExchangeRate());
fortune.setHkdAmount(fortuneAddRequest.getAmount().multiply(expectedFortune.getDefaultExchangeRate()));
fortune.setCurrentPaymentHkdAmount(fortune.getHkdAmount());
fortune.setCurrentPaymentRatio(BigDecimal.valueOf(100)); fortune.setCurrentPaymentRatio(BigDecimal.valueOf(100));
fortune.setPayoutDate(expectedFortune.getPayoutDate()); fortune.setPayoutDate(expectedFortune.getPayoutDate());
...@@ -747,10 +748,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -747,10 +748,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
fortune.setStatus(FortuneStatusEnum.MATCH_FAIL.getItemValue()); fortune.setStatus(FortuneStatusEnum.MATCH_FAIL.getItemValue());
fortune.setRemark("未找到当前预计发佣对应的来佣"); fortune.setRemark("未找到当前预计发佣对应的来佣");
} }
} else {
fortune.setExchangeRate(BigDecimal.ONE);
fortune.setHkdAmount(fortuneAddRequest.getAmount());
fortune.setCurrentPaymentHkdAmount(fortune.getHkdAmount());
} }
// 生成发佣业务ID // 生成发佣业务ID
......
...@@ -26,4 +26,8 @@ ...@@ -26,4 +26,8 @@
currency,create_time,exchange_rate,amount,current_commission_ratio,operator_name,remark, currency,create_time,exchange_rate,amount,current_commission_ratio,operator_name,remark,
is_deleted is_deleted
</sql> </sql>
<delete id="removeByCommissionId">
delete from commission_compare_record where commission_biz_id = #{commissionId}
</delete>
</mapper> </mapper>
...@@ -65,6 +65,10 @@ ...@@ -65,6 +65,10 @@
</foreach> </foreach>
</update> </update>
<delete id="deleteByIdPhysical">
DELETE FROM commission WHERE id = #{id}
</delete>
<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