Commit b4ef3b81 by jianan

前端对接问题修复12

parent 9fd07281
......@@ -212,4 +212,24 @@ public class ApiCommissionExpectedController {
}
}
/**
* 获取保单应收款
*/
@PostMapping("/getExpectedCommissionByProductlaunchId")
@Operation(summary = "获取保单应收款")
public Result<Boolean> getExpectedCommissionByProductlaunchId(@RequestBody GetExpectedCommissionByProductlaunchIdRequest request) {
if (request == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
commissionExpectedService.getExpectedCommissionByProductlaunchId(
request.getPolicyNo(),
request.getProductLaunchBizId(),
request.getInsuranceCompanyBizId(),
request.getReconciliationCompany(),
request.getReconciliationCompanyCode(),
request.getReconciliationCompanyBizId());
return Result.success(true);
}
}
......@@ -626,7 +626,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
expectedFortune.setUpdaterId(loginUserId);
expectedFortune.setUpdateTime(LocalDateTime.now());
iExpectedFortuneService.updateById(expectedFortune);
return iExpectedFortuneService.updateById(expectedFortune);
return true;
}
}
......@@ -20,6 +20,12 @@ public class ExpectedFortuneUpdateRequest {
private String status;
/**
* 出账状态-修改理由
*/
@Schema(description = "出账状态-修改理由")
private String statusDesc;
/**
* 当前出账金额
*/
@Schema(description = "当前出账金额")
......
......@@ -144,6 +144,12 @@ public class ApiExpectedFortunePageResponse {
private String status;
/**
* 出账状态-修改理由
*/
@Schema(description = "出账状态-修改理由")
private String statusDesc;
/**
* 预计出账日期
*/
@Schema(description = "预计出账日期")
......
......@@ -24,14 +24,12 @@ public class ReceivableService {
// 日期格式
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
public String generateReceivableNo(CommissionExpectedAddDto addDto) {
// 有保单号,应收账款编号 = 保单号 + 佣金期数
if (StringUtils.isNotBlank(addDto.getPolicyNo())) {
return addDto.getPolicyNo() + addDto.getCommissionPeriod();
}
// 无保单号,生成附加编号
return generateAdditionalReceivableNo(addDto);
public String generateReceivableNo(String commissionBizType, String reconciliationCompanyCode, String reconciliationCompany) {
CommissionExpectedAddDto commissionExpectedAddDto = new CommissionExpectedAddDto();
commissionExpectedAddDto.setCommissionBizType(commissionBizType);
commissionExpectedAddDto.setReconciliationCompanyCode(reconciliationCompanyCode);
commissionExpectedAddDto.setReconciliationCompany(reconciliationCompany);
return generateAdditionalReceivableNo(commissionExpectedAddDto);
}
private String generateAdditionalReceivableNo(CommissionExpectedAddDto addDto) {
......@@ -41,7 +39,7 @@ public class ReceivableService {
// 获取当天流水号(从1开始)
long dailySeq = getDailySequence();
// 格式:对账公司代码-年份后两位-席号(6位数字)
// 格式:应收款类型-对账公司代码-年份后两位-席号(6位数字)
return String.format("%s%s%s%06d",
"R".equals(addDto.getCommissionBizType()) ? "R-" : "U-",
getCompanyCode(addDto),
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* 获取保单应收款请求参数
*/
@Data
public class GetExpectedCommissionByProductlaunchIdRequest implements Serializable {
/**
* 保单号
*/
@Schema(description = "保单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyNo;
/**
* 产品计划业务id
*/
@Schema(description = "产品计划业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String productLaunchBizId;
/**
* 保险公司业务id
*/
@Schema(description = "保险公司业务id")
private String insuranceCompanyBizId;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司编码
*/
@Schema(description = "对账公司编码")
private String reconciliationCompanyCode;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String reconciliationCompanyBizId;
}
......@@ -109,6 +109,12 @@ public class PolicyFollowAddRequest implements Serializable {
private String reconciliationCompany;
/**
* 对账公司编码
*/
@Schema(description = "对账公司编码")
private String reconciliationCompanyCode;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
......
......@@ -155,6 +155,12 @@ public class ExpectedFortune implements Serializable {
private String status;
/**
* 出账状态-修改理由
*/
@TableField("status_desc")
private String statusDesc;
/**
* 本次出账金额
*/
// @TableField("current_payment_amount")
......
......@@ -56,4 +56,6 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
CommissionExpectedStatisticsVO getExpectedStatistics(List<Long> expectedIds);
CommissionExpected getByBizId(String commissionExpectedBizId);
void getExpectedCommissionByProductlaunchId(String policyNo, String productLaunchBizId, String insuranceCompanyBizId, String reconciliationCompany, String reconciliationCompanyCode, String reconciliationCompanyBizId);
}
package com.yd.csf.service.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -23,6 +24,9 @@ import com.yd.csf.service.service.*;
import com.yd.csf.service.dao.CommissionExpectedMapper;
import com.yd.csf.service.vo.CommissionExpectedStatisticsVO;
import com.yd.csf.service.vo.CommissionExpectedVO;
import com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import com.yd.user.service.model.SysDictItem;
......@@ -51,17 +55,16 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
@Resource
private PolicyService policyService;
@Resource
private PolicyFollowService policyFollowService;
@Resource
private CommissionService commissionService;
@Resource
private ReceivableService receivableService;
@Autowired
private ApiSysDictFeignClient apiSysDictFeignClient;
@Resource
private ApiExpectedSpeciesFeignClient apiExpectedSpeciesFeignClient;
@Override
......@@ -260,7 +263,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if (StringUtils.isBlank(addDto.getCommissionExpectedBizId())) {
// 生成应收账款编号
commissionExpected.setReceivableNo(receivableService.generateReceivableNo(addDto));
commissionExpected.setReceivableNo(receivableService.generateReceivableNo(addDto.getCommissionBizType(), addDto.getReconciliationCompanyCode(), addDto.getReconciliationCompany()));
// 生成新单编号
commissionExpected.setCommissionExpectedBizId(RandomStringGenerator.generateBizId16("commission_expected"));
commissionExpected.setCreateTime(new Date());
......@@ -291,6 +294,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
private BigDecimal queryDefaultExchangeRate(String currency) {
if ("HKD".equalsIgnoreCase(currency)) {
return BigDecimal.valueOf(1);
}
Result<List<GetDictItemListByDictTypeResponse>> result = apiSysDictFeignClient.getDictItemListByDictType("csf_exchange_rate_hkd");
if (CollectionUtils.isNotEmpty(result.getData())) {
for (GetDictItemListByDictTypeResponse dictItem : result.getData()) {
......@@ -379,6 +385,61 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
public CommissionExpected getByBizId(String commissionExpectedBizId) {
return this.getOne(new QueryWrapper<CommissionExpected>().eq("commission_expected_biz_id", commissionExpectedBizId));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void getExpectedCommissionByProductlaunchId(String policyNo, String productLaunchBizId,
String insuranceCompanyBizId, String reconciliationCompany, String reconciliationCompanyCode, String reconciliationCompanyBizId) {
if (StringUtils.isNotBlank(productLaunchBizId)) {
ApiExpectedSpeciesListRequest apiExpectedSpeciesListRequest = new ApiExpectedSpeciesListRequest();
apiExpectedSpeciesListRequest.setProductLaunchBizId(productLaunchBizId);
Result<List<ApiExpectedSpeciesListResponse>> result = apiExpectedSpeciesFeignClient.list(apiExpectedSpeciesListRequest);
if (result.getData() != null) {
List<ApiExpectedSpeciesListResponse> expectedSpeciesList = result.getData();
List<CommissionExpected> commissionExpectedList = new ArrayList<>();
if (CollUtil.isNotEmpty(expectedSpeciesList)) {
for (ApiExpectedSpeciesListResponse item : expectedSpeciesList) {
CommissionExpected commissionExpected = new CommissionExpected();
commissionExpected.setCommissionExpectedBizId(RandomStringGenerator.generateBizId16("commission_expected"));
commissionExpected.setReceivableNo(receivableService.generateReceivableNo("R", reconciliationCompanyCode, reconciliationCompany));
commissionExpected.setCommissionBizType("R");
commissionExpected.setPolicyNo(policyNo);
commissionExpected.setInsuranceCompanyBizId(insuranceCompanyBizId);
commissionExpected.setProductLaunchBizId(productLaunchBizId);
commissionExpected.setReconciliationCompany(reconciliationCompany);
commissionExpected.setReconciliationCompanyCode(reconciliationCompanyCode);
commissionExpected.setReconciliationCompanyBizId(reconciliationCompanyBizId);
commissionExpected.setCommissionPeriod(Convert.toInt(item.getIssueNumber()));
commissionExpected.setTotalPeriod(Convert.toInt(item.getEndPeriod()));
commissionExpected.setCommissionName(item.getExpenseName());
commissionExpected.setCommissionType("");
commissionExpected.setCommissionRatio(item.getCommissionRate());
commissionExpected.setAmount(null);
commissionExpected.setCurrency(item.getCurrency());
commissionExpected.setCommissionDate(new Date());
commissionExpected.setActualCommissionDate(new Date());
commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue());
commissionExpected.setStatusDesc(null);
commissionExpected.setDefaultExchangeRate(queryDefaultExchangeRate(item.getCurrency()));
commissionExpected.setExpectedAmount(null);
commissionExpected.setPaidAmount(null);
commissionExpected.setPaidRatio(null);
commissionExpected.setRemark("");
commissionExpected.setIsDeleted(0);
commissionExpected.setCreatorId("");
commissionExpected.setUpdaterId("");
commissionExpected.setCreateTime(new Date());
commissionExpected.setUpdateTime(new Date());
commissionExpectedList.add(commissionExpected);
}
// 保存预计来佣
this.saveBatch(commissionExpectedList);
}
}
}
}
}
......
package com.yd.csf.service.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -11,9 +14,12 @@ import com.yd.auth.core.utils.SecurityUtil;
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.csf.service.common.ErrorCode;
import com.yd.csf.service.component.ReceivableService;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.CommissionExpectedStatusEnum;
import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.model.*;
import com.yd.csf.service.service.*;
......@@ -22,11 +28,17 @@ import com.yd.csf.service.utils.AsyncQueryUtil;
import com.yd.csf.service.utils.GSONUtil;
import com.yd.csf.service.vo.PolicyFollowDetailVO;
import com.yd.csf.service.vo.PolicyFollowVO;
import com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient;
import com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient;
import com.yd.product.feign.client.product.ApiProductFeignClient;
import com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesListRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -70,7 +82,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
private PolicyAdditionalService policyAdditionalService;
@Resource
private IExpectedFortuneService expectedFortuneService;
@Autowired
private CommissionExpectedService commissionExpectedService;
@Override
public PolicyFollow getByPolicyBizId(String policyBizId) {
......@@ -269,10 +282,21 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
policyService.save(policy);
policyBrokerService.saveBatch(policyBrokerList);
// 保险产品相关字段不为空,则查询获取保单预计来佣
String policyNo = policyFollowAddRequest.getPolicyNo();
String productLaunchBizId = policyFollowAddRequest.getProductLaunchBizId();
String insuranceCompanyBizId = policyFollowAddRequest.getInsuranceCompanyBizId();
String reconciliationCompany = policyFollowAddRequest.getReconciliationCompany();
String reconciliationCompanyCode = policyFollowAddRequest.getReconciliationCompanyCode();
String reconciliationCompanyBizId = policyFollowAddRequest.getReconciliationCompanyBizId();
// 保存保单预计来佣
commissionExpectedService.getExpectedCommissionByProductlaunchId(policyNo, productLaunchBizId, insuranceCompanyBizId, reconciliationCompany, reconciliationCompanyCode, reconciliationCompanyBizId);
// 返回新单跟进唯一业务ID
return Collections.singletonMap("policyBizId", policyBizId);
}
@Override
public Boolean addToPolicy(List<String> policyNoList) {
if (CollectionUtils.isEmpty(policyNoList)) {
......
......@@ -59,6 +59,10 @@ public class CommissionExpectedExportDTO {
@ExcelProperty("入账状态")
private String status;
@ExcelProperty("入账状态-修改理由")
@ColumnWidth(30)
private String statusDesc;
@ExcelProperty("预计入账金额(HKD)")
@ColumnWidth(20)
private BigDecimal expectedAmount;
......
......@@ -126,6 +126,12 @@ public class CommissionExpectedVO implements Serializable {
private String status;
/**
* 设置入账状态-修改理由
*/
@Schema(description = "设置入账状态-修改理由")
private String statusDesc;
/**
* 预计入账金额(HKD)
*/
@Schema(description = "预计入账金额(HKD)")
......
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