Commit 35783e97 by jianan

新单跟进v2

parent 4769acf3
......@@ -171,7 +171,7 @@ public class Fortune implements Serializable {
/**
* 实际出账日期
*/
private LocalDate actualPayoutDate;
private Date actualPayoutDate;
/**
* 检核人
......
......@@ -284,7 +284,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
if (CollectionUtils.isNotEmpty(fortunes)) {
fortunes.forEach(f -> {
f.setStatus(FortuneStatusEnum.SENT.getItemValue());
f.setActualPayoutDate(LocalDate.now());
f.setActualPayoutDate(new Date());
f.setUpdaterId(loginUserId.toString());
f.setUpdateTime(new Date());
});
......
......@@ -11,11 +11,13 @@ 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.utils.SecurityUtil;
import com.yd.common.constant.RedisConstants;
import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.common.utils.RedisUtil;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.FortuneStatusEnum;
import com.yd.csf.service.model.*;
......@@ -64,9 +66,10 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
private IExpectedFortuneService expectedFortuneService;
@Resource
private PolicyService policyService;
@Autowired
@Resource
private ApiSysDictFeignClient apiSysDictFeignClient;
@Resource
private RedisUtil redisUtil;
@Override
public Wrapper<Fortune> getQueryWrapper(FortuneQueryRequest fortuneQueryRequest) {
......@@ -505,12 +508,63 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
@Override
public Boolean addFortune(FortuneAddRequest fortuneAddRequest) {
if (ObjectUtils.isEmpty(fortuneAddRequest.getFortuneBizType())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "出账类型不能为空");
}
if (ObjectUtils.isEmpty(fortuneAddRequest.getAmount())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "出账金额不能为空");
}
if (ObjectUtils.isEmpty(fortuneAddRequest.getCurrency())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "出账币种不能为空");
}
if (ObjectUtils.isEmpty(fortuneAddRequest.getFortuneType())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "出账项目不能为空");
}
if (ObjectUtils.isEmpty(fortuneAddRequest.getBrokerBizId())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "转介人不能为空");
}
// 创建Fortune实体
Fortune fortune = new Fortune();
BeanUtil.copyProperties(fortuneAddRequest, fortune);
if ("R".equals(fortuneAddRequest.getFortuneBizType())) {
if (ObjectUtils.isEmpty(fortuneAddRequest.getPolicyNo())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "关联保单应付款,保单号不能为空");
}
if (ObjectUtils.isEmpty(fortuneAddRequest.getFortunePeriod())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "关联保单应付款,佣金期数不能为空");
}
ExpectedFortune expectedFortune = expectedFortuneService.lambdaQuery()
.eq(ExpectedFortune::getPolicyNo, fortuneAddRequest.getPolicyNo())
.eq(ExpectedFortune::getFortunePeriod, fortuneAddRequest.getFortunePeriod())
.eq(ExpectedFortune::getFortuneType, fortuneAddRequest.getFortuneType())
.one();
if (expectedFortune == null) {
throw new BusinessException(ResultCode.FAIL.getCode(), "未查询到当前项目对应的预计出账数据");
}
fortune.setExpectedFortuneBizId(expectedFortune.getExpectedFortuneBizId());
fortune.setCommissionExpectedBizId(expectedFortune.getExpectedFortuneBizId());
fortune.setPolicyCurrency(expectedFortune.getPolicyCurrency());
fortune.setExchangeRate(expectedFortune.getDefaultExchangeRate());
fortune.setHkdAmount(fortuneAddRequest.getAmount().multiply(expectedFortune.getDefaultExchangeRate()));
fortune.setCurrentPaymentHkdAmount(fortune.getHkdAmount());
fortune.setPayoutDate(expectedFortune.getPayoutDate());
} else {
fortune.setExchangeRate(queryDefaultExchangeRate(fortuneAddRequest.getCurrency()));
fortune.setHkdAmount(fortuneAddRequest.getAmount().multiply(fortune.getExchangeRate()));
fortune.setCurrentPaymentHkdAmount(fortune.getHkdAmount());
}
// 生成发佣业务ID
fortune.setFortuneBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FORTUNE.getCode()));
fortune.setCurrentPaymentAmount(fortuneAddRequest.getAmount());
fortune.setFortuneName(queryByDict(fortuneAddRequest.getFortuneType()));
fortune.setActualPayoutDate(fortuneAddRequest.getPayoutDate());
fortune.setIsPart(0);
fortune.setStatus(FortuneStatusEnum.WAIT.getItemValue());
......@@ -518,6 +572,13 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
}
private String queryByDict(String fortuneType) {
//查询redis缓存的字典列表信息
List<GetDictItemListByDictTypeResponse> dictTypeResponses = redisUtil.getCacheObject(RedisConstants.DICT_LIST);
String fortuneName = GetDictItemListByDictTypeResponse.getItemLabel(dictTypeResponses,
"csf_fortune_type", fortuneType);
if (ObjectUtils.isNotEmpty(fortuneName)) {
return fortuneName;
}
Result<List<GetDictItemListByDictTypeResponse>> result = apiSysDictFeignClient.getDictItemListByDictType("csf_fortune_type");
if (CollectionUtils.isNotEmpty(result.getData())) {
for (GetDictItemListByDictTypeResponse dictItem : result.getData()) {
......
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