Commit b3ea220d by zhangxingmin

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

parents a91242bf 89e949c7
...@@ -16,6 +16,8 @@ import java.util.List; ...@@ -16,6 +16,8 @@ import java.util.List;
public interface FortuneMapper extends BaseMapper<Fortune> { public interface FortuneMapper extends BaseMapper<Fortune> {
List<FortuneStatisticsVO> getFortuneStatistics(@Param("fortuneIdList") List<Long> fortuneIdList); List<FortuneStatisticsVO> getFortuneStatistics(@Param("fortuneIdList") List<Long> fortuneIdList);
void removeByIdsPhysical(@Param("fortuneIdList") List<Long> fortuneIdList);
} }
......
...@@ -48,4 +48,6 @@ public interface FortuneService extends IService<Fortune> { ...@@ -48,4 +48,6 @@ public interface FortuneService extends IService<Fortune> {
Boolean editExchangeRate(EditExchangeRateRequest editExchangeRateRequest); Boolean editExchangeRate(EditExchangeRateRequest editExchangeRateRequest);
String batchEditActualPayoutDate(BatchEditActualPayoutDateRequest editBatchActualPayoutDateRequest); String batchEditActualPayoutDate(BatchEditActualPayoutDateRequest editBatchActualPayoutDateRequest);
void removeByIdsPhysical(List<Long> collect);
} }
...@@ -646,21 +646,22 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -646,21 +646,22 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "未找到保单对应的预计发佣记录,请先创建预计发佣记录"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "未找到保单对应的预计发佣记录,请先创建预计发佣记录");
} }
// 2. 根据本次发佣期数,查询是否有已出账的记录 // 2. 根据本次发佣期数,删除未出账的记录
List<Fortune> fortuneList = fortuneService.lambdaQuery() List<Fortune> fortuneList = fortuneService.lambdaQuery()
.eq(Fortune::getStatus, FortuneStatusEnum.CAN_SEND.getItemValue())
.in(Fortune::getExpectedFortuneBizId, filteredExpectedFortuneList1.stream().map(ExpectedFortune::getExpectedFortuneBizId).collect(Collectors.toList())) .in(Fortune::getExpectedFortuneBizId, filteredExpectedFortuneList1.stream().map(ExpectedFortune::getExpectedFortuneBizId).collect(Collectors.toList()))
.list(); .list();
// 2.1 已出帐的保单号和期数
Set<String> fortuneSet = fortuneList.stream() // 2.1 物理删除
.map(i -> i.getPolicyNo() + "_" + i.getFortunePeriod()) if (CollectionUtils.isNotEmpty(fortuneList)) {
.collect(Collectors.toSet()); fortuneService.removeByIdsPhysical(fortuneList.stream().map(Fortune::getId).collect(Collectors.toList()));
// 2.2 校验是否有已出账的记录 }
// 2.2 筛选出未出账的记录
List<ExpectedFortune> filteredExpectedFortuneList2 = new ArrayList<>(); List<ExpectedFortune> filteredExpectedFortuneList2 = new ArrayList<>();
for (ExpectedFortune expectedFortune : filteredExpectedFortuneList1) { for (ExpectedFortune expectedFortune : filteredExpectedFortuneList1) {
String policyNo = expectedFortune.getPolicyNo(); // 如果有已出账记录,跳过
Integer fortunePeriod = expectedFortune.getFortunePeriod(); if (FortuneStatusEnum.SENT.getItemValue().equals(expectedFortune.getStatus())) {
// 如果有已出账记录,跳过,表示此次该预计出账已出账
if (fortuneSet.contains(policyNo + "_" + fortunePeriod)) {
continue; continue;
} }
filteredExpectedFortuneList2.add(expectedFortune); filteredExpectedFortuneList2.add(expectedFortune);
...@@ -694,7 +695,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -694,7 +695,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
.in(Commission::getPolicyNo, policyNoSet) .in(Commission::getPolicyNo, policyNoSet)
.in(Commission::getCommissionPeriod, commissionPeriodSet) .in(Commission::getCommissionPeriod, commissionPeriodSet)
.select(Commission::getPolicyNo, Commission::getCommissionPeriod, Commission::getExchangeRate, Commission::getCommissionDate) .select(Commission::getPolicyNo, Commission::getCommissionPeriod, Commission::getExchangeRate, Commission::getCommissionDate)
.orderByDesc(Commission::getCommissionDate) .orderByDesc(Commission::getId)
.list(); .list();
// 2. 按 policyNo + commissionPeriod 分组,取每组的第一条(最新的) // 2. 按 policyNo + commissionPeriod 分组,取每组的第一条(最新的)
...@@ -761,7 +762,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -761,7 +762,12 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
List<Fortune> newFortuneList = new ArrayList<>(); List<Fortune> newFortuneList = new ArrayList<>();
// 更新预计发佣记录的港币金额 // 更新预计发佣记录的港币金额
List<ExpectedFortune> updatedExpectedFortuneList = new ArrayList<>(); List<ExpectedFortune> updatedExpectedFortuneList = new ArrayList<>();
// 更新预计发佣记录的状态
List<Long> updatedExpectedFortuneIdList = new ArrayList<>();
for (ExpectedFortune expectedFortune : expectedFortuneList) { for (ExpectedFortune expectedFortune : expectedFortuneList) {
updatedExpectedFortuneIdList.add(expectedFortune.getId());
Fortune fortune = new Fortune(); Fortune fortune = new Fortune();
BeanUtils.copyProperties(expectedFortune, fortune); BeanUtils.copyProperties(expectedFortune, fortune);
...@@ -834,6 +840,18 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -834,6 +840,18 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
} }
} }
// 更新预计发佣记录的状态
if (CollectionUtils.isNotEmpty(updatedExpectedFortuneIdList)) {
boolean updateSuccess = iExpectedFortuneService.lambdaUpdate()
.set(ExpectedFortune::getStatus, FortuneStatusEnum.CAN_SEND.getItemValue())
.in(ExpectedFortune::getId, updatedExpectedFortuneIdList)
.update();
if (!updateSuccess) {
throw new BusinessException(ResultCode.FAIL.getCode(), "更新预计发佣记录状态失败");
}
}
return newFortuneList; return newFortuneList;
} }
......
...@@ -1253,6 +1253,14 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -1253,6 +1253,14 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return String.format("设置成功。已更新 %d 条数据,跳过 %d 条(已有实际出账年月)", updateCount, skipCount); return String.format("设置成功。已更新 %d 条数据,跳过 %d 条(已有实际出账年月)", updateCount, skipCount);
} }
@Override
public void removeByIdsPhysical(List<Long> collect) {
if (CollectionUtils.isEmpty(collect)) {
return;
}
this.baseMapper.removeByIdsPhysical(collect);
}
private void validEditExchangeRate(EditExchangeRateRequest editExchangeRateRequest) { private void validEditExchangeRate(EditExchangeRateRequest editExchangeRateRequest) {
if (ObjectUtils.isEmpty(editExchangeRateRequest.getOriginalCurrency())) { if (ObjectUtils.isEmpty(editExchangeRateRequest.getOriginalCurrency())) {
throw new BusinessException(ResultCode.PARAM_CHECK_ERROR.getCode(), "原币种不能为空"); throw new BusinessException(ResultCode.PARAM_CHECK_ERROR.getCode(), "原币种不能为空");
......
...@@ -61,6 +61,13 @@ ...@@ -61,6 +61,13 @@
create_time,update_time create_time,update_time
</sql> </sql>
<delete id="removeByIdsPhysical">
DELETE FROM fortune WHERE id IN
<foreach collection="fortuneIdList" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
<select id="getFortuneStatistics" resultType="com.yd.csf.service.dto.FortuneStatisticsVO"> <select id="getFortuneStatistics" resultType="com.yd.csf.service.dto.FortuneStatisticsVO">
SELECT SELECT
f.policy_no, f.policy_no,
......
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