Commit cdd11602 by jianan

新单跟进v2

parent 9aa6050f
...@@ -119,22 +119,25 @@ public class ApiCommissionController { ...@@ -119,22 +119,25 @@ public class ApiCommissionController {
.map(CommissionExcelDTO::getPolicyNo2) .map(CommissionExcelDTO::getPolicyNo2)
.filter(StringUtils::isNotBlank) .filter(StringUtils::isNotBlank)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
List<Policy> policies = policyService.lambdaQuery()
.in(Policy::getPolicyNo, policyNos)
.list();
Set<String> existingPolicyNos = policies.stream().map(Policy::getPolicyNo).collect(Collectors.toSet());
StringBuilder errorMsg = new StringBuilder(); if (ObjectUtils.isNotEmpty(policyNos)) {
for (CommissionExcelDTO excelDTO : dataList) { List<Policy> policies = policyService.lambdaQuery()
if (StringUtils.isNotBlank(excelDTO.getPolicyNo())) { .in(Policy::getPolicyNo, policyNos)
if (!existingPolicyNos.contains(excelDTO.getPolicyNo())) { .list();
errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行保单不存在"); Set<String> existingPolicyNos = policies.stream().map(Policy::getPolicyNo).collect(Collectors.toSet());
StringBuilder errorMsg = new StringBuilder();
for (CommissionExcelDTO excelDTO : dataList) {
if (StringUtils.isNotBlank(excelDTO.getPolicyNo())) {
if (!existingPolicyNos.contains(excelDTO.getPolicyNo())) {
errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行保单不存在");
}
} }
} }
} if (StringUtils.isNotBlank(errorMsg)) {
if (StringUtils.isNotBlank(errorMsg)) { errorMsg.append("\n请确认保单中心是否存在该保单,若不存在请先添加");
errorMsg.append("\n请确认保单中心是否存在该保单,若不存在请先添加"); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), errorMsg.toString());
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), errorMsg.toString()); }
} }
// 获取当前登录用户的ID // 获取当前登录用户的ID
...@@ -197,7 +200,7 @@ public class ApiCommissionController { ...@@ -197,7 +200,7 @@ public class ApiCommissionController {
} }
if ("关联保单应收单".equals(excelDTO.getCommissionBizType())) { if ("关联保单应收单".equals(excelDTO.getCommissionBizType())) {
if (StringUtils.isBlank(excelDTO.getPolicyNo())) { if (StringUtils.isBlank(excelDTO.getPolicyNo2())) {
errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行关联保单应收单, 保单号不能为空"); errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行关联保单应收单, 保单号不能为空");
} }
if (ObjectUtils.isEmpty(excelDTO.getExchangeRate2())) { if (ObjectUtils.isEmpty(excelDTO.getExchangeRate2())) {
......
...@@ -54,6 +54,11 @@ public class Commission implements Serializable { ...@@ -54,6 +54,11 @@ public class Commission implements Serializable {
private String premium; private String premium;
/** /**
* 保单币种
*/
private String policyCurrency;
/**
* 保险公司 id * 保险公司 id
*/ */
private String insuranceCompanyBizId; private String insuranceCompanyBizId;
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.dto.*; import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.PolicyFollowStatusEnum; import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.model.Policy;
import com.yd.csf.service.model.PolicyFollow; import com.yd.csf.service.model.PolicyFollow;
import com.yd.csf.service.vo.PolicyFollowDetailVO; import com.yd.csf.service.vo.PolicyFollowDetailVO;
import com.yd.csf.service.vo.PolicyFollowVO; import com.yd.csf.service.vo.PolicyFollowVO;
...@@ -53,6 +54,8 @@ public interface PolicyFollowService extends IService<PolicyFollow> { ...@@ -53,6 +54,8 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Boolean uploadAttachment(AttachmentUploadRequest attachmentUploadRequest); Boolean uploadAttachment(AttachmentUploadRequest attachmentUploadRequest);
String queryReconciliationCompanyByFeign(String reconciliationCompanyBizId);
String getNextStatus(PolicyFollowStatusEnum policyFollowStatusEnum); String getNextStatus(PolicyFollowStatusEnum policyFollowStatusEnum);
String getCurrencyValue(String currency); String getCurrencyValue(String currency);
......
...@@ -240,6 +240,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -240,6 +240,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
.in(CommissionExpected::getPolicyNo, policyNoSet) .in(CommissionExpected::getPolicyNo, policyNoSet)
.select(CommissionExpected::getCommissionExpectedBizId, .select(CommissionExpected::getCommissionExpectedBizId,
CommissionExpected::getPolicyNo, CommissionExpected::getPolicyNo,
CommissionExpected::getCommissionBizType,
CommissionExpected::getReceivableNo, CommissionExpected::getReceivableNo,
CommissionExpected::getCommissionPeriod, CommissionExpected::getCommissionPeriod,
CommissionExpected::getTotalPeriod, CommissionExpected::getTotalPeriod,
...@@ -256,6 +257,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -256,6 +257,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 填充保费、产品名称、保险公司、对账公司 // 填充保费、产品名称、保险公司、对账公司
commission.setPremium(String.valueOf(policy.getPaymentPremium())); commission.setPremium(String.valueOf(policy.getPaymentPremium()));
commission.setCurrency(policy.getCurrency()); commission.setCurrency(policy.getCurrency());
commission.setPolicyCurrency(policy.getCurrency());
commission.setProductLaunchBizId(policy.getProductLaunchBizId()); commission.setProductLaunchBizId(policy.getProductLaunchBizId());
commission.setInsuranceCompanyBizId(policy.getInsuranceCompanyBizId()); commission.setInsuranceCompanyBizId(policy.getInsuranceCompanyBizId());
commission.setReconciliationCompany(policy.getReconciliationCompany()); commission.setReconciliationCompany(policy.getReconciliationCompany());
...@@ -777,6 +779,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -777,6 +779,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission.setInsuranceCompanyBizId(policy.getInsuranceCompanyBizId()); commission.setInsuranceCompanyBizId(policy.getInsuranceCompanyBizId());
commission.setPremium(Convert.toStr(policy.getPaymentPremium())); commission.setPremium(Convert.toStr(policy.getPaymentPremium()));
commission.setCurrency(policy.getCurrency()); commission.setCurrency(policy.getCurrency());
commission.setPolicyCurrency(policy.getCurrency());
} else { } else {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "保单不存在, policyNo: " + request.getPolicyNo()); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "保单不存在, policyNo: " + request.getPolicyNo());
} }
...@@ -910,6 +913,16 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -910,6 +913,16 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
CommissionExpected expected = new CommissionExpected(); CommissionExpected expected = new CommissionExpected();
BeanUtils.copyProperties(commission, expected, "id", "remark"); BeanUtils.copyProperties(commission, expected, "id", "remark");
expected.setCommissionExpectedBizId(RandomStringGenerator.generateBizId16("commission_expected")); expected.setCommissionExpectedBizId(RandomStringGenerator.generateBizId16("commission_expected"));
if (ObjectUtils.isEmpty(commission.getReconciliationCompanyCode())) {
if (ObjectUtils.isEmpty(commission.getReconciliationCompanyBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "来佣记录未关联对账公司");
}
// 调用对账公司 feignclient,查询对账公司编码
String reconciliationCompanyCode = policyFollowService.queryReconciliationCompanyByFeign(commission.getReconciliationCompanyBizId());
expected.setReconciliationCompanyCode(reconciliationCompanyCode);
commission.setReconciliationCompanyCode(reconciliationCompanyCode);
}
// 生成应收单编号 // 生成应收单编号
expected.setReceivableNo(receivableService.generateReceivableNo( expected.setReceivableNo(receivableService.generateReceivableNo(
commission.getCommissionBizType(), commission.getCommissionBizType(),
...@@ -944,6 +957,13 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -944,6 +957,13 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return true; return true;
} }
private String queryReconciliationCompany(String insuranceCompanyBizId) {
if (ObjectUtils.isNotEmpty(insuranceCompanyBizId)) {
}
return null;
}
@Override @Override
public int updateStatusBatchById(List<Commission> existingCommissions) { public int updateStatusBatchById(List<Commission> existingCommissions) {
return this.baseMapper.updateStatusBatchById(existingCommissions); return this.baseMapper.updateStatusBatchById(existingCommissions);
......
...@@ -499,41 +499,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -499,41 +499,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
policy.setReconciliationCompany(productInfo.getReconciliationCompany()); policy.setReconciliationCompany(productInfo.getReconciliationCompany());
policy.setReconciliationCompanyBizId(productInfo.getReconciliationCompanyBizId()); policy.setReconciliationCompanyBizId(productInfo.getReconciliationCompanyBizId());
String reconciliationCompanyCode = null;
// 调用对账公司 feignclient,查询对账公司编码 // 调用对账公司 feignclient,查询对账公司编码
ApiInsuranceReconciliationCompanyPageRequest reconciliationCompanyPageRequest = new ApiInsuranceReconciliationCompanyPageRequest(); String reconciliationCompanyCode = queryReconciliationCompanyByFeign(policy.getReconciliationCompanyBizId());
reconciliationCompanyPageRequest.setPageNo(1);
reconciliationCompanyPageRequest.setPageSize(999);
Result iPageResult = apiInsuranceReconciliationCompanyFeignClient.page(reconciliationCompanyPageRequest);
// 解析响应获取对账公司编码
if (iPageResult != null && iPageResult.getCode() == 200) {
try {
// Feign 返回的泛型会被反序列化为 LinkedHashMap,需要手动提取
Object data = iPageResult.getData();
if (data instanceof Map) {
Map<String, Object> dataMap = (Map<String, Object>) data;
Object recordsObj = dataMap.get("records");
if (recordsObj instanceof List) {
List<Map<String, Object>> records = (List<Map<String, Object>>) recordsObj;
// 遍历分页结果,找到匹配的对账公司
String targetBizId = policy.getReconciliationCompanyBizId();
for (Map<String, Object> record : records) {
String recordBizId = (String) record.get("reconciliationCompanyBizId");
if (targetBizId.equals(recordBizId)) {
// 获取对账公司编码
reconciliationCompanyCode = (String) record.get("code");
log.info("从对账公司服务获取编码: reconciliationCompanyBizId={}, code={}",
targetBizId, reconciliationCompanyCode);
break; // 找到后跳出循环
}
}
}
}
} catch (Exception e) {
log.error("解析对账公司响应失败: {}", e.getMessage(), e);
}
}
// 如果仍然没有获取到编码,抛异常 // 如果仍然没有获取到编码,抛异常
if (StringUtils.isBlank(reconciliationCompanyCode)) { if (StringUtils.isBlank(reconciliationCompanyCode)) {
...@@ -570,6 +537,43 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -570,6 +537,43 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return true; return true;
} }
/**
* 调用对账公司 feignclient,查询对账公司编码
*/
@Override
public String queryReconciliationCompanyByFeign(String reconciliationCompanyBizId) {
ApiInsuranceReconciliationCompanyPageRequest reconciliationCompanyPageRequest = new ApiInsuranceReconciliationCompanyPageRequest();
reconciliationCompanyPageRequest.setPageNo(1);
reconciliationCompanyPageRequest.setPageSize(999);
Result iPageResult = apiInsuranceReconciliationCompanyFeignClient.page(reconciliationCompanyPageRequest);
// 解析响应获取对账公司编码
if (iPageResult != null && iPageResult.getCode() == 200) {
try {
// Feign 返回的泛型会被反序列化为 LinkedHashMap,需要手动提取
Object data = iPageResult.getData();
if (data instanceof Map) {
Map<String, Object> dataMap = (Map<String, Object>) data;
Object recordsObj = dataMap.get("records");
if (recordsObj instanceof List) {
List<Map<String, Object>> records = (List<Map<String, Object>>) recordsObj;
// 遍历分页结果,找到匹配的对账公司
for (Map<String, Object> record : records) {
String recordBizId = (String) record.get("reconciliationCompanyBizId");
if (reconciliationCompanyBizId.equals(recordBizId)) {
// 获取对账公司编码
return (String) record.get("code");
}
}
}
}
} catch (Exception e) {
log.error("解析对账公司响应失败: {}", e.getMessage(), e);
}
}
return null;
}
@Override @Override
public String getNextStatus(PolicyFollowStatusEnum policyFollowStatusEnum) { public String getNextStatus(PolicyFollowStatusEnum policyFollowStatusEnum) {
// 根据当前状态返回可能的下一步状态 // 根据当前状态返回可能的下一步状态
......
...@@ -50,6 +50,12 @@ public class CommissionVO implements Serializable { ...@@ -50,6 +50,12 @@ public class CommissionVO implements Serializable {
private String policyNo; private String policyNo;
/** /**
* 保单币种
*/
@Schema(description = "保单币种")
private String policyCurrency;
/**
* 期交保费 * 期交保费
*/ */
@Schema(description = "期交保费") @Schema(description = "期交保费")
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<result property="commissionBizType" column="commission_biz_type" /> <result property="commissionBizType" column="commission_biz_type" />
<result property="policyNo" column="policy_no" /> <result property="policyNo" column="policy_no" />
<result property="premium" column="premium" /> <result property="premium" column="premium" />
<result property="policyCurrency" column="policy_currency" />
<result property="insuranceCompanyBizId" column="insurance_company_biz_id" /> <result property="insuranceCompanyBizId" column="insurance_company_biz_id" />
<result property="productLaunchBizId" column="product_launch_biz_id" /> <result property="productLaunchBizId" column="product_launch_biz_id" />
<result property="reconciliationCompany" column="reconciliation_company" /> <result property="reconciliationCompany" column="reconciliation_company" />
...@@ -39,7 +40,7 @@ ...@@ -39,7 +40,7 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,receivable_no,commission_biz_id,reconciliation_year_month,commission_biz_type,policy_no,premium, id,receivable_no,commission_biz_id,reconciliation_year_month,commission_biz_type,policy_no,premium,policy_currency,
insurance_company_biz_id,product_launch_biz_id, insurance_company_biz_id,product_launch_biz_id,
reconciliation_company,reconciliation_company_code,reconciliation_company_biz_id,commission_period, reconciliation_company,reconciliation_company_code,reconciliation_company_biz_id,commission_period,
total_period,commission_name,commission_type,exchange_rate,amount,currency, total_period,commission_name,commission_type,exchange_rate,amount,currency,
......
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