Commit 96a9cfb4 by jianan

新单跟进改版2

parent 269f86d2
...@@ -15,7 +15,7 @@ import java.util.List; ...@@ -15,7 +15,7 @@ import java.util.List;
*/ */
public interface FortuneMapper extends BaseMapper<Fortune> { public interface FortuneMapper extends BaseMapper<Fortune> {
FortuneStatisticsVO getFortuneStatistics(@Param("fortuneIdList") List<Long> fortuneIdList); List<FortuneStatisticsVO> getFortuneStatistics(@Param("fortuneIdList") List<Long> fortuneIdList);
} }
......
...@@ -36,6 +36,12 @@ public class FortuneQueryRequest extends PageDto implements Serializable { ...@@ -36,6 +36,12 @@ public class FortuneQueryRequest extends PageDto implements Serializable {
private String policyNo; private String policyNo;
/** /**
* 入账状态
*/
@Schema(description = "入账状态,可多选 字典值: csf_expected_commission_status")
private List<String> commissionStatusList;
/**
* 保险公司业务 id 列表 * 保险公司业务 id 列表
*/ */
@Schema(description = "保险公司业务 id 列表") @Schema(description = "保险公司业务 id 列表")
......
...@@ -59,6 +59,11 @@ public class Fortune implements Serializable { ...@@ -59,6 +59,11 @@ public class Fortune implements Serializable {
private String commissionBizId; private String commissionBizId;
/** /**
* 预计来佣记录业务ID
*/
private String commissionExpectedBizId;
/**
* 保单号 * 保单号
*/ */
private String policyNo; private String policyNo;
......
...@@ -613,6 +613,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -613,6 +613,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
Commission matchedCommission = commissionByPolicyPeriod.get(key); Commission matchedCommission = commissionByPolicyPeriod.get(key);
if (matchedCommission != null) { if (matchedCommission != null) {
fortune.setCommissionBizId(matchedCommission.getCommissionBizId()); fortune.setCommissionBizId(matchedCommission.getCommissionBizId());
fortune.setCommissionExpectedBizId(matchedCommission.getCommissionExpectedBizId());
} else { } else {
fortune.setStatus(FortuneStatusEnum.MATCH_FAIL.getItemValue()); fortune.setStatus(FortuneStatusEnum.MATCH_FAIL.getItemValue());
fortune.setRemark("未找到当前预计发佣对应的来佣"); fortune.setRemark("未找到当前预计发佣对应的来佣");
......
...@@ -8,11 +8,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -8,11 +8,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Joiner;
import com.yd.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil; import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; 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.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.dto.*; import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.FortuneStatusEnum; import com.yd.csf.service.enums.FortuneStatusEnum;
...@@ -20,10 +22,14 @@ import com.yd.csf.service.model.*; ...@@ -20,10 +22,14 @@ import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*; import com.yd.csf.service.service.*;
import com.yd.csf.service.dao.FortuneMapper; import com.yd.csf.service.dao.FortuneMapper;
import com.yd.csf.service.vo.FortuneVO; import com.yd.csf.service.vo.FortuneVO;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -58,6 +64,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -58,6 +64,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
private IExpectedFortuneService expectedFortuneService; private IExpectedFortuneService expectedFortuneService;
@Resource @Resource
private PolicyService policyService; private PolicyService policyService;
@Autowired
private ApiSysDictFeignClient apiSysDictFeignClient;
@Override @Override
...@@ -73,6 +81,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -73,6 +81,8 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
List<String> productLaunchBizIdList = fortuneQueryRequest.getProductLaunchBizIdList(); List<String> productLaunchBizIdList = fortuneQueryRequest.getProductLaunchBizIdList();
LocalDate payoutDateStart = fortuneQueryRequest.getPayoutDateStart(); LocalDate payoutDateStart = fortuneQueryRequest.getPayoutDateStart();
LocalDate payoutDateEnd = fortuneQueryRequest.getPayoutDateEnd(); LocalDate payoutDateEnd = fortuneQueryRequest.getPayoutDateEnd();
// 入账状态
List<String> commissionStatusList = fortuneQueryRequest.getCommissionStatusList();
queryWrapper.eq(StringUtils.isNotBlank(reconciliationYearMonth), "reconciliation_year_month", reconciliationYearMonth); queryWrapper.eq(StringUtils.isNotBlank(reconciliationYearMonth), "reconciliation_year_month", reconciliationYearMonth);
queryWrapper.in(CollUtil.isNotEmpty(statusList), "status", statusList); queryWrapper.in(CollUtil.isNotEmpty(statusList), "status", statusList);
...@@ -83,6 +93,12 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -83,6 +93,12 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
queryWrapper.gt(ObjectUtils.isNotEmpty(payoutDateStart), "payout_date", payoutDateStart); queryWrapper.gt(ObjectUtils.isNotEmpty(payoutDateStart), "payout_date", payoutDateStart);
queryWrapper.lt(ObjectUtils.isNotEmpty(payoutDateEnd), "payout_date", payoutDateEnd); queryWrapper.lt(ObjectUtils.isNotEmpty(payoutDateEnd), "payout_date", payoutDateEnd);
// 入账状态, 关联查询 commission_expected 表
if (CollUtil.isNotEmpty(commissionStatusList)) {
queryWrapper.apply("EXISTS (SELECT 1 FROM commission_expected ce WHERE ce.commission_expected_biz_id = fortune.commission_expected_biz_id AND ce.status IN ({0}))",
Joiner.on(",").join(commissionStatusList));
}
queryWrapper.orderByAsc("id"); queryWrapper.orderByAsc("id");
return queryWrapper; return queryWrapper;
} }
...@@ -464,11 +480,26 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -464,11 +480,26 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
BeanUtil.copyProperties(fortuneAddRequest, fortune); BeanUtil.copyProperties(fortuneAddRequest, fortune);
// 生成发佣业务ID // 生成发佣业务ID
fortune.setFortuneBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FORTUNE.getCode())); fortune.setFortuneBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FORTUNE.getCode()));
fortune.setCurrentPaymentAmount(fortuneAddRequest.getAmount());
fortune.setFortuneName(queryByDict(fortuneAddRequest.getFortuneType()));
fortune.setIsPart(0);
fortune.setStatus(FortuneStatusEnum.WAIT.getItemValue()); fortune.setStatus(FortuneStatusEnum.WAIT.getItemValue());
return this.save(fortune); return this.save(fortune);
} }
private String queryByDict(String fortuneType) {
Result<List<GetDictItemListByDictTypeResponse>> result = apiSysDictFeignClient.getDictItemListByDictType("csf_fortune_type");
if (CollectionUtils.isNotEmpty(result.getData())) {
for (GetDictItemListByDictTypeResponse dictItem : result.getData()) {
if (StringUtils.equalsIgnoreCase(dictItem.getItemValue(), fortuneType)) {
return dictItem.getItemLabel();
}
}
}
return null;
}
/** /**
* 查询单个对象 * 查询单个对象
* @param fortuneBizId * @param fortuneBizId
...@@ -492,7 +523,24 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -492,7 +523,24 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return fortuneStatisticsVO; return fortuneStatisticsVO;
} }
// 自定义查询 // 自定义查询
FortuneStatisticsVO fortuneStatistics = this.baseMapper.getFortuneStatistics(fortuneIdList); List<FortuneStatisticsVO> fortuneStatisticsList = this.baseMapper.getFortuneStatistics(fortuneIdList);
// 查询结果
FortuneStatisticsVO fortuneStatistics;
if (CollectionUtils.isNotEmpty(fortuneStatisticsList) && fortuneStatisticsList.size() > 1) {
// 合并查询结果
FortuneStatisticsVO noPolicyNoData = fortuneStatisticsList.get(0);
FortuneStatisticsVO policyNoData = fortuneStatisticsList.get(1);
// 合并查询结果
fortuneStatistics = new FortuneStatisticsVO();
fortuneStatistics.setTotalInAmount(policyNoData.getTotalInAmount());
fortuneStatistics.setTotalPolicyCount(policyNoData.getTotalPolicyCount());
fortuneStatistics.setTotalPremium(policyNoData.getTotalPremium());
fortuneStatistics.setPendingOutAmount(noPolicyNoData.getPendingOutAmount().add(policyNoData.getPendingOutAmount()));
fortuneStatistics.setAvailableOutAmount(noPolicyNoData.getAvailableOutAmount().add(policyNoData.getAvailableOutAmount()));
} else {
fortuneStatistics = fortuneStatisticsList.get(0);
}
// 计算差额 // 计算差额
fortuneStatistics.setDifferenceAmount(fortuneStatistics.getPendingOutAmount().subtract(fortuneStatistics.getAvailableOutAmount())); fortuneStatistics.setDifferenceAmount(fortuneStatistics.getPendingOutAmount().subtract(fortuneStatistics.getAvailableOutAmount()));
return fortuneStatistics; return fortuneStatistics;
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<result property="isPart" column="is_part" /> <result property="isPart" column="is_part" />
<result property="batchBizId" column="batch_biz_id" /> <result property="batchBizId" column="batch_biz_id" />
<result property="commissionBizId" column="commission_biz_id" /> <result property="commissionBizId" column="commission_biz_id" />
<result property="commissionExpectedBizId" column="commission_expected_biz_id" />
<result property="policyNo" column="policy_no" /> <result property="policyNo" column="policy_no" />
<result property="fortunePeriod" column="fortune_period" /> <result property="fortunePeriod" column="fortune_period" />
<result property="fortuneTotalPeriod" column="fortune_total_period" /> <result property="fortuneTotalPeriod" column="fortune_total_period" />
...@@ -45,7 +46,7 @@ ...@@ -45,7 +46,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,fortune_biz_id,expected_fortune_biz_id,reconciliation_year_month,fortune_biz_type,batch_biz_id, id,fortune_biz_id,expected_fortune_biz_id,reconciliation_year_month,fortune_biz_type,batch_biz_id,
commission_biz_id,policy_no,fortune_period,fortune_total_period,broker_biz_id, commission_biz_id,commission_expected_biz_id,policy_no,fortune_period,fortune_total_period,broker_biz_id,
team_biz_id,grade_commission_rate,share_rate,fortune_name,fortune_type,is_part, team_biz_id,grade_commission_rate,share_rate,fortune_name,fortune_type,is_part,
amount,currency,current_payment_amount,status,payout_date,actual_payout_date,is_tax, amount,currency,current_payment_amount,status,payout_date,actual_payout_date,is_tax,
tax_amount,net_amount,salary_biz_id,base_rule_biz_id,settlement_biz_id, tax_amount,net_amount,salary_biz_id,base_rule_biz_id,settlement_biz_id,
......
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