Commit bedd41e8 by jianan

新单跟进v2

parent 08ef6c9e
...@@ -206,6 +206,10 @@ public class ApiCommissionController { ...@@ -206,6 +206,10 @@ public class ApiCommissionController {
if (ObjectUtils.isEmpty(excelDTO.getExchangeRate2())) { if (ObjectUtils.isEmpty(excelDTO.getExchangeRate2())) {
errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行关联保单应收单, 结算汇率不能为空"); errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行关联保单应收单, 结算汇率不能为空");
} }
} else {
if (StringUtils.isBlank(excelDTO.getReconciliationCompany2())) {
errorMsg.append("第").append(dataList.indexOf(excelDTO) + 1).append("行, 非关联保单应收单, 对账公司不能为空");
}
} }
} }
if (errorMsg.length() > 0) { if (errorMsg.length() > 0) {
......
...@@ -25,9 +25,6 @@ public class CommissionExcelDTO { ...@@ -25,9 +25,6 @@ public class CommissionExcelDTO {
@ExcelProperty("保费") @ExcelProperty("保费")
private String premium; private String premium;
@ExcelProperty("对账公司")
private String reconciliationCompany;
@ExcelProperty("当前来佣期数") @ExcelProperty("当前来佣期数")
private Integer commissionPeriod; private Integer commissionPeriod;
...@@ -76,6 +73,9 @@ public class CommissionExcelDTO { ...@@ -76,6 +73,9 @@ public class CommissionExcelDTO {
@ExcelProperty("结算汇率(实)") @ExcelProperty("结算汇率(实)")
private BigDecimal exchangeRate2; private BigDecimal exchangeRate2;
@ExcelProperty("对账公司")
private String reconciliationCompany2;
/** /**
* 数据转换 * 数据转换
...@@ -94,6 +94,7 @@ public class CommissionExcelDTO { ...@@ -94,6 +94,7 @@ public class CommissionExcelDTO {
entity.setCurrency(CurrencyEnum.getEnumByItemLabel(data.getCurrency2())); entity.setCurrency(CurrencyEnum.getEnumByItemLabel(data.getCurrency2()));
entity.setExchangeRate(data.getExchangeRate2()); entity.setExchangeRate(data.getExchangeRate2());
entity.setCommissionDate(data.getCommissionDate2()); entity.setCommissionDate(data.getCommissionDate2());
entity.setReconciliationCompany(data.getReconciliationCompany2());
entity.setRemark(data.getRemark()); entity.setRemark(data.getRemark());
entity.setStatus(null); entity.setStatus(null);
entity.setCreatorId(loginUserId); entity.setCreatorId(loginUserId);
...@@ -113,7 +114,7 @@ public class CommissionExcelDTO { ...@@ -113,7 +114,7 @@ public class CommissionExcelDTO {
entity.setPolicyNo(data.getPolicyNo()); entity.setPolicyNo(data.getPolicyNo());
entity.setPremium(data.getPremium()); entity.setPremium(data.getPremium());
entity.setCommissionBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode())); entity.setCommissionBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode()));
entity.setReconciliationCompany(data.getReconciliationCompany()); entity.setReconciliationCompany(data.getReconciliationCompany2());
entity.setCommissionPeriod(data.getCommissionPeriod()); entity.setCommissionPeriod(data.getCommissionPeriod());
entity.setTotalPeriod(data.getTotalPeriod()); entity.setTotalPeriod(data.getTotalPeriod());
entity.setCommissionName(data.getCommissionName()); entity.setCommissionName(data.getCommissionName());
...@@ -142,7 +143,7 @@ public class CommissionExcelDTO { ...@@ -142,7 +143,7 @@ public class CommissionExcelDTO {
// 字段映射 // 字段映射
entity.setPolicyNo(data.getPolicyNo()); entity.setPolicyNo(data.getPolicyNo());
entity.setCommissionExpectedBizId(RandomStringGenerator.generateBizId16("commission_expected")); entity.setCommissionExpectedBizId(RandomStringGenerator.generateBizId16("commission_expected"));
entity.setReconciliationCompany(data.getReconciliationCompany()); entity.setReconciliationCompany(data.getReconciliationCompany2());
entity.setCommissionPeriod(data.getCommissionPeriod()); entity.setCommissionPeriod(data.getCommissionPeriod());
entity.setTotalPeriod(data.getTotalPeriod()); entity.setTotalPeriod(data.getTotalPeriod());
entity.setCommissionName(data.getCommissionName()); entity.setCommissionName(data.getCommissionName());
......
...@@ -25,6 +25,8 @@ import com.yd.csf.service.service.*; ...@@ -25,6 +25,8 @@ import com.yd.csf.service.service.*;
import com.yd.csf.service.dao.CommissionMapper; import com.yd.csf.service.dao.CommissionMapper;
import com.yd.csf.service.vo.CommissionStatisticsVO; import com.yd.csf.service.vo.CommissionStatisticsVO;
import com.yd.csf.service.vo.CommissionVO; import com.yd.csf.service.vo.CommissionVO;
import com.yd.insurance.base.feign.client.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyFeignClient;
import com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageRequest;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient; import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse; import com.yd.user.feign.response.sysdict.GetDictItemListByDictTypeResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -81,6 +83,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -81,6 +83,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
private ReceivableService receivableService; private ReceivableService receivableService;
@Autowired @Autowired
private ApiSysDictFeignClient apiSysDictFeignClient; private ApiSysDictFeignClient apiSysDictFeignClient;
@Resource
private ApiInsuranceReconciliationCompanyFeignClient apiInsuranceReconciliationCompanyFeignClient;
@Override @Override
...@@ -250,8 +254,19 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -250,8 +254,19 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
CommissionExpected::getStatus) CommissionExpected::getStatus)
.list(); .list();
// 3.查询对账公司列表
Set<String> reconciliationCompanySet = commissionList.stream()
.map(Commission::getReconciliationCompany)
.filter(Objects::nonNull).collect(Collectors.toSet());
List<Map<String, Object>> reconciliationCompanyList = Collections.emptyList();
if (!reconciliationCompanySet.isEmpty()) {
reconciliationCompanyList = queryReconciliationCompanyListByFeign();
}
// 填充信息 // 填充信息
commissionList.forEach(commission -> { for (Commission commission : commissionList) {
Policy policy = policyMap.get(commission.getPolicyNo()); Policy policy = policyMap.get(commission.getPolicyNo());
if (policy != null) { if (policy != null) {
// 填充保费、产品名称、保险公司、对账公司 // 填充保费、产品名称、保险公司、对账公司
...@@ -277,9 +292,52 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -277,9 +292,52 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission.setRemark("未查询到预计来佣记录"); commission.setRemark("未查询到预计来佣记录");
commission.setStatus(CommissionStatusEnum.MATCH_FAILED.getItemValue()); commission.setStatus(CommissionStatusEnum.MATCH_FAILED.getItemValue());
} }
// 设置对账公司信息
if (!reconciliationCompanyList.isEmpty()) {
setReconciliationCompanyInfo(commission, reconciliationCompanyList);
}
// 计算来佣金额(港币) // 计算来佣金额(港币)
commission.setHkdAmount(calculateHKDAmount(commission.getAmount(), commission.getExchangeRate(), commission.getCurrency())); commission.setHkdAmount(calculateHKDAmount(commission.getAmount(), commission.getExchangeRate(), commission.getCurrency()));
}); }
}
private void setReconciliationCompanyInfo(Commission commission, List<Map<String, Object>> reconciliationCompanyList) {
for (Map<String, Object> map : reconciliationCompanyList) {
String name = (String) map.get("name");
if (name.contains(commission.getReconciliationCompany())) {
commission.setReconciliationCompany(Convert.toStr(map.get("name")));
commission.setReconciliationCompanyBizId(Convert.toStr(map.get("reconciliationCompanyBizId")));
commission.setReconciliationCompanyCode(Convert.toStr(map.get("code")));
break;
}
}
}
public List<Map<String, Object>> queryReconciliationCompanyListByFeign() {
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;
return records;
}
}
} catch (Exception e) {
log.error("解析对账公司响应失败: {}", e.getMessage(), e);
}
}
return Collections.emptyList();
} }
private CommissionExpected findExpectedFromList(Commission commission, List<CommissionExpected> commissionExpectedList) { private CommissionExpected findExpectedFromList(Commission commission, List<CommissionExpected> commissionExpectedList) {
...@@ -655,7 +713,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -655,7 +713,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return BigDecimal.valueOf(1); return BigDecimal.valueOf(1);
} }
Result<List<GetDictItemListByDictTypeResponse>> result = apiSysDictFeignClient.getDictItemListByDictType("csf_exchange_rate_hkd"); Result<List<GetDictItemListByDictTypeResponse>> result = apiSysDictFeignClient.getDictItemListByDictType("csf_exchange_rate_hkd");
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(result.getData())) { if (CollectionUtils.isNotEmpty(result.getData())) {
for (GetDictItemListByDictTypeResponse dictItem : result.getData()) { for (GetDictItemListByDictTypeResponse dictItem : result.getData()) {
if (StringUtils.equalsIgnoreCase(dictItem.getItemLabel(), currency)) { if (StringUtils.equalsIgnoreCase(dictItem.getItemLabel(), currency)) {
return new BigDecimal(dictItem.getItemValue()); return new BigDecimal(dictItem.getItemValue());
......
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