Commit 135326c2 by zhangxingmin

push

parent 43b0aae6
...@@ -290,8 +290,11 @@ public class ApiCommissionExpectedController { ...@@ -290,8 +290,11 @@ public class ApiCommissionExpectedController {
@PostMapping("/receivable_report") @PostMapping("/receivable_report")
@Operation(summary = "应收款报表") @Operation(summary = "应收款报表")
public Result<ReceivableReportResponse> receivableReport(@RequestBody CommissionExpectedQueryRequest commissionExpectedQueryRequest) { public Result<ReceivableReportResponse> receivableReport(@RequestBody CommissionExpectedQueryRequest commissionExpectedQueryRequest) {
//保單持有人(中/英)、签单人、转介人名称(主)查询保单号列表 //保單持有人(中/英、繁简/大小写)、签单人、转介人名称(主)、受保人(中/英、繁简/大小写)、查询保单号列表
List<String> queryPolicyNoList = policyFollowService.queryPolicyNoList(commissionExpectedQueryRequest.getPolicyHolder(),commissionExpectedQueryRequest.getSigner(),commissionExpectedQueryRequest.getBrokerName()); List<String> queryPolicyNoList = policyFollowService.queryPolicyNoList(commissionExpectedQueryRequest.getPolicyHolder(),
commissionExpectedQueryRequest.getSigner(),
commissionExpectedQueryRequest.getBrokerName(),
commissionExpectedQueryRequest.getInsured());
// 构建查询条件 // 构建查询条件
commissionExpectedQueryRequest.setPolicyNoList(queryPolicyNoList); commissionExpectedQueryRequest.setPolicyNoList(queryPolicyNoList);
QueryWrapper<CommissionExpected> queryWrapper = commissionExpectedService.getQueryWrapper(commissionExpectedQueryRequest); QueryWrapper<CommissionExpected> queryWrapper = commissionExpectedService.getQueryWrapper(commissionExpectedQueryRequest);
......
...@@ -957,5 +957,14 @@ public class ApiPolicyFollowController { ...@@ -957,5 +957,14 @@ public class ApiPolicyFollowController {
return policyFollowService.detail(policyNo); return policyFollowService.detail(policyNo);
} }
/**
* 更新-新单跟进投保人和受保人的名字冗余字段
* @return
*/
@PutMapping("/update")
public Result update(){
return policyFollowService.updateTs();
}
} }
\ No newline at end of file
...@@ -11,7 +11,9 @@ import com.yd.common.enums.CommonEnum; ...@@ -11,7 +11,9 @@ 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.result.Result;
import com.yd.common.utils.ChineseTextConverter;
import com.yd.common.utils.CodeGenerator; import com.yd.common.utils.CodeGenerator;
import com.yd.common.utils.EnglishTextUtil;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.api.service.*; import com.yd.csf.api.service.*;
import com.yd.csf.feign.dto.appointment.*; import com.yd.csf.feign.dto.appointment.*;
...@@ -947,6 +949,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -947,6 +949,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
policyInsurant.setPolicyInsurantBizId(RandomStringGenerator.generateBizId16("policy_insurant")); policyInsurant.setPolicyInsurantBizId(RandomStringGenerator.generateBizId16("policy_insurant"));
policyInsurant.setName(apiInsurantInfoDto.getNameCn()); policyInsurant.setName(apiInsurantInfoDto.getNameCn());
policyInsurant.setNameEn(apiInsurantInfoDto.getNamePyEn()); policyInsurant.setNameEn(apiInsurantInfoDto.getNamePyEn());
policyInsurant.setNameSc(ChineseTextConverter.traditionalToSimplified(apiInsurantInfoDto.getNameCn()));
policyInsurant.setNameEnLc(EnglishTextUtil.toLowerCaseSafe(apiInsurantInfoDto.getNamePyEn()));
return policyInsurantService.saveOrUpdate(policyInsurant); return policyInsurantService.saveOrUpdate(policyInsurant);
} }
...@@ -965,6 +969,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -965,6 +969,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
policyPolicyholder.setPolicyPolicyholderBizId(RandomStringGenerator.generateBizId16("policy_policyholder")); policyPolicyholder.setPolicyPolicyholderBizId(RandomStringGenerator.generateBizId16("policy_policyholder"));
policyPolicyholder.setName(apiPolicyholderInfoDto.getNameCn()); policyPolicyholder.setName(apiPolicyholderInfoDto.getNameCn());
policyPolicyholder.setNameEn(apiPolicyholderInfoDto.getNamePyEn()); policyPolicyholder.setNameEn(apiPolicyholderInfoDto.getNamePyEn());
policyPolicyholder.setNameSc(ChineseTextConverter.traditionalToSimplified(apiPolicyholderInfoDto.getNameCn()));
policyPolicyholder.setNameEnLc(EnglishTextUtil.toLowerCaseSafe(apiPolicyholderInfoDto.getNamePyEn()));
return policyPolicyholderService.saveOrUpdate(policyPolicyholder); return policyPolicyholderService.saveOrUpdate(policyPolicyholder);
} }
......
...@@ -1079,7 +1079,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -1079,7 +1079,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Override @Override
public Result<PayableReportResponse> payableReport(ApiExpectedFortunePageRequest request) { public Result<PayableReportResponse> payableReport(ApiExpectedFortunePageRequest request) {
//保單持有人(中/英)、签单人、转介人名称(主)查询保单号列表 //保單持有人(中/英)、签单人、转介人名称(主)查询保单号列表
List<String> queryPolicyNoList = policyFollowService.queryPolicyNoList(request.getPolicyHolder(),"",""); List<String> queryPolicyNoList = policyFollowService.queryPolicyNoList(request.getPolicyHolder(),"","","");
// 构建查询条件 // 构建查询条件
request.setPolicyNoList(queryPolicyNoList); request.setPolicyNoList(queryPolicyNoList);
......
...@@ -14,6 +14,8 @@ import com.yd.common.enums.CommonEnum; ...@@ -14,6 +14,8 @@ 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.result.Result;
import com.yd.common.utils.ChineseTextConverter;
import com.yd.common.utils.EnglishTextUtil;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.api.async.ApiExpectedFortuneAsyncService; import com.yd.csf.api.async.ApiExpectedFortuneAsyncService;
import com.yd.csf.api.service.ApiExpectedFortuneService; import com.yd.csf.api.service.ApiExpectedFortuneService;
...@@ -129,6 +131,19 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -129,6 +131,19 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
*/ */
@Override @Override
public Result<IPage<ApiPremiumReconciliationPageResponse>> page(ApiPremiumReconciliationPageRequest request) { public Result<IPage<ApiPremiumReconciliationPageResponse>> page(ApiPremiumReconciliationPageRequest request) {
// 投保人-中文转简体
String policyHolderNameSc = ChineseTextConverter.traditionalToSimplified(request.getPolicyHolder());
// 投保人-英文转小写
String policyHolderNameEnLc = EnglishTextUtil.toLowerCase(request.getPolicyHolder());
// 受保人-中文转简体
String insuredNameSc = ChineseTextConverter.traditionalToSimplified(request.getPolicyHolder());
// 受保人-英文转小写
String insuredNameEnLc = EnglishTextUtil.toLowerCase(request.getPolicyHolder());
request.setPolicyHolderNameSc(policyHolderNameSc);
request.setPolicyHolderNameEnLc(policyHolderNameEnLc);
request.setInsuredNameSc(insuredNameSc);
request.setInsuredNameEnLc(insuredNameEnLc);
Page<ApiPremiumReconciliationPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize()); Page<ApiPremiumReconciliationPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiPremiumReconciliationPageResponse> iPage = iPremiumReconciliationService.page(page, request); IPage<ApiPremiumReconciliationPageResponse> iPage = iPremiumReconciliationService.page(page, request);
......
...@@ -43,7 +43,7 @@ public class ApiSalarySplitSummaryExcelDto { ...@@ -43,7 +43,7 @@ public class ApiSalarySplitSummaryExcelDto {
@Excel(name = "本期总出账金额(原币种)", orderNum = "12") @Excel(name = "本期总出账金额(原币种)", orderNum = "12")
private BigDecimal hkdAmount; private BigDecimal hkdAmount;
@Excel(name = "出账记录业务id", orderNum = "13") @Excel(name = "出账业务编号", orderNum = "13")
private String fortuneAccountBizId; private String businessNo;
} }
...@@ -24,6 +24,11 @@ public class ApiSalarySplitSummaryPageDto { ...@@ -24,6 +24,11 @@ public class ApiSalarySplitSummaryPageDto {
private String fortuneAccountBizId; private String fortuneAccountBizId;
/** /**
* 出账业务编号(出账年月 + 转介人内部编号(后6位)(如无,用0补齐)+流水号(6位))
*/
private String businessNo;
/**
* 转介人名称 * 转介人名称
*/ */
private String brokerName; private String brokerName;
......
...@@ -2,7 +2,9 @@ package com.yd.csf.feign.request.premiumreconciliation; ...@@ -2,7 +2,9 @@ package com.yd.csf.feign.request.premiumreconciliation;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yd.common.dto.PageDto; import com.yd.common.dto.PageDto;
import com.yd.common.utils.ChineseTextConverter;
import com.yd.common.utils.CustomLocalDateTimeDeserializer; import com.yd.common.utils.CustomLocalDateTimeDeserializer;
import com.yd.common.utils.EnglishTextUtil;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -35,12 +37,12 @@ public class ApiPremiumReconciliationPageRequest extends PageDto { ...@@ -35,12 +37,12 @@ public class ApiPremiumReconciliationPageRequest extends PageDto {
private String appointmentNo; private String appointmentNo;
/** /**
* 保單持有人(投保人)(中文名/英文名) * 保單持有人(投保人)(中文名/英文名)(繁简/大小写)
*/ */
private String policyHolder; private String policyHolder;
/** /**
* 受保人(保单表)(中文名/英文名) * 受保人(保单表)(中文名/英文名)(繁简/大小写)
*/ */
private String insured; private String insured;
...@@ -64,6 +66,15 @@ public class ApiPremiumReconciliationPageRequest extends PageDto { ...@@ -64,6 +66,15 @@ public class ApiPremiumReconciliationPageRequest extends PageDto {
*/ */
private String reconciliationType; private String reconciliationType;
// 投保人-中文转简体
private String policyHolderNameSc;
// 投保人-英文转小写
private String policyHolderNameEnLc;
// 受保人-中文转简体
private String insuredNameSc;
// 受保人-英文转小写
private String insuredNameEnLc;
/** /**
* 付款日期 * 付款日期
*/ */
......
...@@ -17,12 +17,14 @@ public interface PolicyFollowMapper extends BaseMapper<PolicyFollow> { ...@@ -17,12 +17,14 @@ public interface PolicyFollowMapper extends BaseMapper<PolicyFollow> {
PolicyReportData queryPolicyReportData(@Param("policyBizId") String policyBizId); PolicyReportData queryPolicyReportData(@Param("policyBizId") String policyBizId);
//policyHolder(中英文姓名)查询policy_policyholder表 List<String> queryPolicyNoList(
//signer签单员姓名查询policy_follow @Param("policyHolderSc") String policyHolderSc,
//brokerName转介人(主,第一个转介人,一个保单对应多个转介人,查询第一个转介人姓名即可) policy_broker @Param("policyHolderEnLc") String policyHolderEnLc,
List<String> queryPolicyNoList(@Param("policyHolder") String policyHolder, @Param("signer") String signer,
@Param("signer") String signer, @Param("brokerName") String brokerName,
@Param("brokerName") String brokerName); @Param("insuredSc") String insuredSc,
@Param("insuredEnLc") String insuredEnLc
);
} }
......
...@@ -83,11 +83,17 @@ public class CommissionExpectedQueryRequest extends PageDto { ...@@ -83,11 +83,17 @@ public class CommissionExpectedQueryRequest extends PageDto {
private String teamBizId; private String teamBizId;
/** /**
* 保單持有人(中/英) * 保單持有人(中/英、繁简/大小写
*/ */
private String policyHolder; private String policyHolder;
/** /**
* 受保人(中/英、繁简/大小写)
*/
@Schema(description = "受保人")
private String insured;
/**
* 签单人 * 签单人
*/ */
private String signer; private String signer;
......
...@@ -86,12 +86,12 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable { ...@@ -86,12 +86,12 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
private Integer issueNumber; private Integer issueNumber;
/** /**
* 保單持有人 * 保單持有人(中(繁/简)/英文(大小写))
*/ */
private String policyHolder; private String policyHolder;
/** /**
* 受保人 * 受保人(中(繁/简)/英文(大小写))
*/ */
private String insured; private String insured;
......
...@@ -64,11 +64,21 @@ public class PolicyInsurant implements Serializable { ...@@ -64,11 +64,21 @@ public class PolicyInsurant implements Serializable {
private String name; private String name;
/** /**
* 名字-简体(入库名字统一转换简体,方便查询)
*/
private String nameSc;
/**
* 名字-英文 * 名字-英文
*/ */
private String nameEn; private String nameEn;
/** /**
* 名字-英文-小写(入库名字英文统一转换小写,方便查询)
*/
private String nameEnLc;
/**
* 性别(字典) * 性别(字典)
*/ */
private String gender; private String gender;
......
...@@ -59,11 +59,21 @@ public class PolicyPolicyholder implements Serializable { ...@@ -59,11 +59,21 @@ public class PolicyPolicyholder implements Serializable {
private String name; private String name;
/** /**
* 名字-简体(入库名字统一转换简体,方便查询)
*/
private String nameSc;
/**
* 名字-英文 * 名字-英文
*/ */
private String nameEn; private String nameEn;
/** /**
* 名字-英文-小写(入库名字英文统一转换小写,方便查询)
*/
private String nameEnLc;
/**
* 性别(字典) * 性别(字典)
*/ */
private String gender; private String gender;
......
...@@ -5,6 +5,7 @@ import com.yd.csf.service.model.PolicyBroker; ...@@ -5,6 +5,7 @@ import com.yd.csf.service.model.PolicyBroker;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
...@@ -21,4 +22,6 @@ public interface PolicyBrokerService extends IService<PolicyBroker> { ...@@ -21,4 +22,6 @@ public interface PolicyBrokerService extends IService<PolicyBroker> {
List<String> selectRelatedBrokerBizIds(String clientUserId); List<String> selectRelatedBrokerBizIds(String clientUserId);
Map<String, String> queryInternalCodeMap(List<String> brokerBizIdList);
} }
...@@ -184,5 +184,7 @@ public interface PolicyFollowService extends IService<PolicyFollow> { ...@@ -184,5 +184,7 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Result<ApiPolicyFollowDetailResponse> detail(String policyNo); Result<ApiPolicyFollowDetailResponse> detail(String policyNo);
List<String> queryPolicyNoList(String policyHolder,String signer,String brokerName); List<String> queryPolicyNoList(String policyHolder,String signer,String brokerName,String insured);
Result updateTs();
} }
...@@ -3,6 +3,9 @@ package com.yd.csf.service.service; ...@@ -3,6 +3,9 @@ package com.yd.csf.service.service;
import com.yd.csf.service.dto.PolicyInsurantUpdateRequest; import com.yd.csf.service.dto.PolicyInsurantUpdateRequest;
import com.yd.csf.service.model.PolicyInsurant; import com.yd.csf.service.model.PolicyInsurant;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.model.PolicyPolicyholder;
import java.util.List;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
...@@ -18,4 +21,5 @@ public interface PolicyInsurantService extends IService<PolicyInsurant> { ...@@ -18,4 +21,5 @@ public interface PolicyInsurantService extends IService<PolicyInsurant> {
*/ */
boolean update(PolicyInsurantUpdateRequest policyInsurantUpdateRequest); boolean update(PolicyInsurantUpdateRequest policyInsurantUpdateRequest);
List<PolicyInsurant> queryList(String policyHolder);
} }
...@@ -4,6 +4,8 @@ import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest; ...@@ -4,6 +4,8 @@ import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest;
import com.yd.csf.service.model.PolicyPolicyholder; import com.yd.csf.service.model.PolicyPolicyholder;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
* @description 针对表【policy_policyholder(保单投保人信息表)】的数据库操作Service * @description 针对表【policy_policyholder(保单投保人信息表)】的数据库操作Service
...@@ -19,4 +21,6 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder> ...@@ -19,4 +21,6 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder>
boolean update(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest); boolean update(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest);
PolicyPolicyholder queryOne(String policyBizId); PolicyPolicyholder queryOne(String policyBizId);
List<PolicyPolicyholder> queryList(String policyHolder);
} }
...@@ -20,11 +20,9 @@ import com.yd.csf.service.dto.*; ...@@ -20,11 +20,9 @@ import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.FortuneAccountStatusEnum; import com.yd.csf.service.enums.FortuneAccountStatusEnum;
import com.yd.csf.service.enums.FortuneStatusEnum; import com.yd.csf.service.enums.FortuneStatusEnum;
import com.yd.csf.service.model.*; import com.yd.csf.service.model.*;
import com.yd.csf.service.service.FortuneAccountEditRecordService; import com.yd.csf.service.service.*;
import com.yd.csf.service.service.FortuneAccountService;
import com.yd.csf.service.dao.FortuneAccountMapper; import com.yd.csf.service.dao.FortuneAccountMapper;
import com.yd.csf.service.service.FortuneService; import com.yd.csf.service.utils.BusinessNoUtils;
import com.yd.csf.service.service.IExpectedFortuneService;
import com.yd.csf.service.vo.FortuneAccountVO; import com.yd.csf.service.vo.FortuneAccountVO;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -57,6 +55,9 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper, ...@@ -57,6 +55,9 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
@Resource @Resource
private IExpectedFortuneService expectedFortuneService; private IExpectedFortuneService expectedFortuneService;
@Resource
private PolicyBrokerService policyBrokerService;
private final Gson GSON = new Gson(); private final Gson GSON = new Gson();
@Override @Override
...@@ -115,11 +116,22 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper, ...@@ -115,11 +116,22 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser(); AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
Long loginUserId = currentLoginUser.getId(); Long loginUserId = currentLoginUser.getId();
//查询转介人的内部编号列表信息
List<String> brokerBizIdList = accountExportDTOList.stream().map(FortuneAccountExportDTO::getBrokerBizId).collect(Collectors.toList());
Map<String, String> map = policyBrokerService.queryInternalCodeMap(brokerBizIdList);
List<FortuneAccount> fortuneAccountList = new ArrayList<>(); List<FortuneAccount> fortuneAccountList = new ArrayList<>();
Date currentDate = new Date(); Date currentDate = new Date();
for (FortuneAccountExportDTO accountExportDTO : accountExportDTOList) { for (FortuneAccountExportDTO accountExportDTO : accountExportDTOList) {
FortuneAccount fortuneAccount = new FortuneAccount(); FortuneAccount fortuneAccount = new FortuneAccount();
fortuneAccount.setFortuneAccountBizId(RandomStringGenerator.generateBizId16("fortune_account")); fortuneAccount.setFortuneAccountBizId(RandomStringGenerator.generateBizId16("fortune_account"));
String internalCode = map.get(accountExportDTO.getBrokerBizId());
LocalDate actualPayoutDate = accountExportDTO.getActualPayoutDate();
String billingYearMonth = actualPayoutDate != null
? actualPayoutDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyyMM"))
: "";
String businessNo = BusinessNoUtils.generate(billingYearMonth, internalCode);
//出账业务编号(出账年月 + 转介人内部编号(后6位)(如无,用0补齐)+流水号(6位))
fortuneAccount.setBusinessNo(businessNo);
fortuneAccount.setBroker(accountExportDTO.getBroker()); fortuneAccount.setBroker(accountExportDTO.getBroker());
fortuneAccount.setBrokerBizId(accountExportDTO.getBrokerBizId()); fortuneAccount.setBrokerBizId(accountExportDTO.getBrokerBizId());
fortuneAccount.setTeam(accountExportDTO.getTeam()); fortuneAccount.setTeam(accountExportDTO.getTeam());
......
...@@ -11,7 +11,10 @@ import org.apache.commons.lang3.StringUtils; ...@@ -11,7 +11,10 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
...@@ -56,6 +59,23 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol ...@@ -56,6 +59,23 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
public List<String> selectRelatedBrokerBizIds(String clientUserId) { public List<String> selectRelatedBrokerBizIds(String clientUserId) {
return baseMapper.selectRelatedBrokerBizIds(clientUserId); return baseMapper.selectRelatedBrokerBizIds(clientUserId);
} }
@Override
public Map<String, String> queryInternalCodeMap(List<String> brokerBizIdList) {
if (CollectionUtils.isEmpty(brokerBizIdList)) {
return Collections.emptyMap();
}
List<PolicyBroker> list = baseMapper.selectList(new LambdaQueryWrapper<PolicyBroker>()
.select(PolicyBroker::getBrokerBizId, PolicyBroker::getInternalCode) // 只查需要的字段
.in(PolicyBroker::getBrokerBizId, brokerBizIdList)
.isNotNull(PolicyBroker::getInternalCode) // 排除 internalCode 为 null 的记录(可选)
);
return list.stream().collect(Collectors.toMap(
PolicyBroker::getBrokerBizId,
PolicyBroker::getInternalCode,
(v1, v2) -> v1 // 如果 brokerBizId 可能重复,保留其中一个
));
}
} }
......
...@@ -18,6 +18,8 @@ import com.yd.common.enums.CommonEnum; ...@@ -18,6 +18,8 @@ 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.result.Result;
import com.yd.common.utils.ChineseTextConverter;
import com.yd.common.utils.EnglishTextUtil;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.feign.response.policyfollow.ApiPolicyFollowDetailResponse; import com.yd.csf.feign.response.policyfollow.ApiPolicyFollowDetailResponse;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
...@@ -129,8 +131,41 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -129,8 +131,41 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
queryWrapper.le(ObjectUtils.isNotEmpty(signDateEnd), "sign_date", signDateEnd); queryWrapper.le(ObjectUtils.isNotEmpty(signDateEnd), "sign_date", signDateEnd);
queryWrapper.eq(ObjectUtils.isNotEmpty(latestPaymentDate), "latest_payment_date", latestPaymentDate); queryWrapper.eq(ObjectUtils.isNotEmpty(latestPaymentDate), "latest_payment_date", latestPaymentDate);
//保單持有人(投保人) //保單持有人(投保人)
if (StringUtils.isNotEmpty(policyFollowQueryRequest.getPolicyHolder())) queryWrapper.like( "policy_holder", policyFollowQueryRequest.getPolicyHolder()); if (StringUtils.isNotEmpty(policyFollowQueryRequest.getPolicyHolder())) {
List<PolicyPolicyholder> policyHolderList = policyPolicyholderService.queryList(policyFollowQueryRequest.getPolicyHolder());
List<String> policyBizIdList = null;
if (CollectionUtils.isNotEmpty(policyHolderList)) {
policyBizIdList = policyHolderList.stream()
.map(PolicyPolicyholder::getPolicyBizId)
.filter(StringUtils::isNotBlank)
.distinct()
.collect(Collectors.toList());
}
if (CollectionUtils.isNotEmpty(policyBizIdList)) {
queryWrapper.in("policy_biz_id", policyBizIdList);
} else {
// 没有匹配的投保人,直接让查询结果为空
queryWrapper.apply("1=0");
}
}
//受保人 //受保人
if (StringUtils.isNotEmpty(policyFollowQueryRequest.getInsured())) {
List<PolicyInsurant> policyHolderList = policyInsurantService.queryList(policyFollowQueryRequest.getInsured());
List<String> policyBizIdList = null;
if (CollectionUtils.isNotEmpty(policyHolderList)) {
policyBizIdList = policyHolderList.stream()
.map(PolicyInsurant::getPolicyBizId)
.filter(StringUtils::isNotBlank)
.distinct()
.collect(Collectors.toList());
}
if (CollectionUtils.isNotEmpty(policyBizIdList)) {
queryWrapper.in("policy_biz_id", policyBizIdList);
} else {
// 没有匹配的受保人,直接让查询结果为空
queryWrapper.apply("1=0");
}
}
if (StringUtils.isNotEmpty(policyFollowQueryRequest.getInsured())) queryWrapper.like("insured", policyFollowQueryRequest.getInsured()); if (StringUtils.isNotEmpty(policyFollowQueryRequest.getInsured())) queryWrapper.like("insured", policyFollowQueryRequest.getInsured());
//签单人 //签单人
if (StringUtils.isNotEmpty(policyFollowQueryRequest.getSigner())) queryWrapper.like("signer", policyFollowQueryRequest.getSigner()); if (StringUtils.isNotEmpty(policyFollowQueryRequest.getSigner())) queryWrapper.like("signer", policyFollowQueryRequest.getSigner());
...@@ -1226,8 +1261,133 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -1226,8 +1261,133 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
} }
@Override @Override
public List<String> queryPolicyNoList(String policyHolder, String signer, String brokerName) { public List<String> queryPolicyNoList(String policyHolder, String signer, String brokerName, String insured) {
return this.baseMapper.queryPolicyNoList(policyHolder,signer,brokerName); // 投保人转换:中文转简体、英文转小写
String policyHolderSc = ChineseTextConverter.traditionalToSimplified(policyHolder);
String policyHolderEnLc = EnglishTextUtil.toLowerCase(policyHolder);
// 受保人转换:中文转简体、英文转小写
String insuredSc = ChineseTextConverter.traditionalToSimplified(insured);
String insuredEnLc = EnglishTextUtil.toLowerCase(insured);
return this.baseMapper.queryPolicyNoList(
policyHolderSc, policyHolderEnLc,
signer,
brokerName,
insuredSc, insuredEnLc
);
}
/**
* 更新-新单跟进投保人和受保人的名字冗余字段
* @return
*/
@Override
public Result updateTs() {
int pageSize = 200;
// 1. 更新投保人表
updatePolicyholderNameFields(pageSize);
// 2. 更新受保人表
updateInsurantNameFields(pageSize);
log.info("投保人/受保人名字冗余字段更新完成");
return Result.success("更新成功");
}
/**
* 批量处理 policy_policyholder 的 nameSc 和 nameEnLc
*/
private void updatePolicyholderNameFields(int pageSize) {
int pageNo = 1;
while (true) {
Page<PolicyPolicyholder> page = new Page<>(pageNo, pageSize);
Page<PolicyPolicyholder> resultPage = policyPolicyholderService.page(page);
List<PolicyPolicyholder> records = resultPage.getRecords();
if (CollUtil.isEmpty(records)) {
break;
}
List<PolicyPolicyholder> toUpdate = new ArrayList<>();
for (PolicyPolicyholder entity : records) {
boolean changed = false;
// 繁体 → 简体
if (StringUtils.isNotBlank(entity.getName())) {
String nameSc = ChineseTextConverter.traditionalToSimplified(entity.getName());
if (!nameSc.equals(entity.getNameSc())) {
entity.setNameSc(nameSc);
changed = true;
}
}
// 英文 → 小写
if (StringUtils.isNotBlank(entity.getNameEn())) {
String nameEnLc = EnglishTextUtil.toLowerCase(entity.getNameEn());
if (!nameEnLc.equals(entity.getNameEnLc())) {
entity.setNameEnLc(nameEnLc);
changed = true;
}
}
if (changed) {
entity.setUpdateTime(new Date()); // 可选,记录更新时间
toUpdate.add(entity);
}
}
if (!toUpdate.isEmpty()) {
policyPolicyholderService.updateBatchById(toUpdate);
}
pageNo++;
}
}
/**
* 批量处理 policy_insurant 的 nameSc 和 nameEnLc
*/
private void updateInsurantNameFields(int pageSize) {
int pageNo = 1;
while (true) {
Page<PolicyInsurant> page = new Page<>(pageNo, pageSize);
Page<PolicyInsurant> resultPage = policyInsurantService.page(page);
List<PolicyInsurant> records = resultPage.getRecords();
if (CollUtil.isEmpty(records)) {
break;
}
List<PolicyInsurant> toUpdate = new ArrayList<>();
for (PolicyInsurant entity : records) {
boolean changed = false;
if (StringUtils.isNotBlank(entity.getName())) {
String nameSc = ChineseTextConverter.traditionalToSimplified(entity.getName());
if (!nameSc.equals(entity.getNameSc())) {
entity.setNameSc(nameSc);
changed = true;
}
}
if (StringUtils.isNotBlank(entity.getNameEn())) {
String nameEnLc = EnglishTextUtil.toLowerCase(entity.getNameEn());
if (!nameEnLc.equals(entity.getNameEnLc())) {
entity.setNameEnLc(nameEnLc);
changed = true;
}
}
if (changed) {
entity.setUpdateTime(new Date());
toUpdate.add(entity);
}
}
if (!toUpdate.isEmpty()) {
policyInsurantService.updateBatchById(toUpdate);
}
pageNo++;
}
} }
} }
package com.yd.csf.service.service.impl; package com.yd.csf.service.service.impl;
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.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.utils.ChineseTextConverter;
import com.yd.common.utils.EnglishTextUtil;
import com.yd.csf.service.dto.PolicyInsurantUpdateRequest; import com.yd.csf.service.dto.PolicyInsurantUpdateRequest;
import com.yd.csf.service.model.PolicyInsurant; import com.yd.csf.service.model.PolicyInsurant;
import com.yd.csf.service.model.PolicyPolicyholder;
import com.yd.csf.service.service.PolicyInsurantService; import com.yd.csf.service.service.PolicyInsurantService;
import com.yd.csf.service.dao.PolicyInsurantMapper; import com.yd.csf.service.dao.PolicyInsurantMapper;
import com.yd.csf.service.utils.GSONUtil; import com.yd.csf.service.utils.GSONUtil;
...@@ -14,7 +18,9 @@ import org.apache.commons.lang3.StringUtils; ...@@ -14,7 +18,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
...@@ -42,6 +48,27 @@ public class PolicyInsurantServiceImpl extends ServiceImpl<PolicyInsurantMapper, ...@@ -42,6 +48,27 @@ public class PolicyInsurantServiceImpl extends ServiceImpl<PolicyInsurantMapper,
policyInsurant.setUpdateTime(new Date()); policyInsurant.setUpdateTime(new Date());
return this.updateById(policyInsurant); return this.updateById(policyInsurant);
} }
@Override
public List<PolicyInsurant> queryList(String insured) {
// 输入为空时直接返回空列表,避免无意义的全表查询
if (StringUtils.isBlank(insured)) {
return Collections.emptyList();
}
// 中文转简体
String nameSc = ChineseTextConverter.traditionalToSimplified(insured);
// 英文转小写
String nameEnLc = EnglishTextUtil.toLowerCase(insured);
return this.baseMapper.selectList(new LambdaQueryWrapper<PolicyInsurant>()
.and(wrapper -> wrapper
.like(StringUtils.isNotBlank(nameSc), PolicyInsurant::getNameSc, nameSc)
.or()
.like(StringUtils.isNotBlank(nameEnLc), PolicyInsurant::getNameEnLc, nameEnLc)
)
);
}
} }
......
...@@ -5,16 +5,21 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -5,16 +5,21 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.utils.ChineseTextConverter;
import com.yd.common.utils.EnglishTextUtil;
import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest; import com.yd.csf.service.dto.PolicyPolicyholderUpdateRequest;
import com.yd.csf.service.model.PolicyPolicyholder; import com.yd.csf.service.model.PolicyPolicyholder;
import com.yd.csf.service.service.PolicyPolicyholderService; import com.yd.csf.service.service.PolicyPolicyholderService;
import com.yd.csf.service.dao.PolicyPolicyholderMapper; import com.yd.csf.service.dao.PolicyPolicyholderMapper;
import com.yd.csf.service.utils.GSONUtil; import com.yd.csf.service.utils.GSONUtil;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
...@@ -48,6 +53,27 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde ...@@ -48,6 +53,27 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde
return this.baseMapper.selectOne(new LambdaQueryWrapper<PolicyPolicyholder>() return this.baseMapper.selectOne(new LambdaQueryWrapper<PolicyPolicyholder>()
.eq(PolicyPolicyholder::getPolicyBizId,policyBizId).last(" limit 1 ")); .eq(PolicyPolicyholder::getPolicyBizId,policyBizId).last(" limit 1 "));
} }
@Override
public List<PolicyPolicyholder> queryList(String policyHolder) {
// 输入为空时直接返回空列表,避免无意义的全表查询
if (StringUtils.isBlank(policyHolder)) {
return Collections.emptyList();
}
// 中文转简体
String nameSc = ChineseTextConverter.traditionalToSimplified(policyHolder);
// 英文转小写
String nameEnLc = EnglishTextUtil.toLowerCase(policyHolder);
return this.baseMapper.selectList(new LambdaQueryWrapper<PolicyPolicyholder>()
.and(wrapper -> wrapper
.like(StringUtils.isNotBlank(nameSc), PolicyPolicyholder::getNameSc, nameSc)
.or()
.like(StringUtils.isNotBlank(nameEnLc), PolicyPolicyholder::getNameEnLc, nameEnLc)
)
);
}
} }
......
package com.yd.csf.service.utils;
import java.util.concurrent.ThreadLocalRandom;
/**
* 业务编号生成工具类
* <p>格式:出账年月 + 转介人内部编号后6位(无则补0) + 6位随机数字</p>
*/
public class BusinessNoUtils {
/**
* 生成业务编号
*
* @param billingYearMonth 出账年月,如 "202604"
* @param referrerInnerNo 转介人内部编号,可为 null 或空字符串
* @return 完整的业务编号字符串
*/
public static String generate(String billingYearMonth, String referrerInnerNo) {
String referrerPart = formatReferrerInnerNo(referrerInnerNo);
String serialPart = generateRandomSerial();
return billingYearMonth + referrerPart + serialPart;
}
// 格式化转介人内部编号:取后6位,不足左补0,无则全0
private static String formatReferrerInnerNo(String referrerInnerNo) {
if (referrerInnerNo == null || referrerInnerNo.trim().isEmpty()) {
return "000000";
}
String no = referrerInnerNo.trim();
if (no.length() > 6) {
return no.substring(no.length() - 6);
}
return String.format("%6s", no).replace(' ', '0');
}
// 生成6位随机数字(000000~999999)
private static String generateRandomSerial() {
int random = ThreadLocalRandom.current().nextInt(1000000);
return String.format("%06d", random);
}
}
\ No newline at end of file
package com.yd.csf.service.vo; package com.yd.csf.service.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.model.FortuneAccount; import com.yd.csf.service.model.FortuneAccount;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -26,6 +27,12 @@ public class FortuneAccountVO { ...@@ -26,6 +27,12 @@ public class FortuneAccountVO {
private String fortuneAccountBizId; private String fortuneAccountBizId;
/** /**
* 出账业务编号(出账年月 + 转介人内部编号(后6位)(如无,用0补齐)+流水号(6位))
*/
@Schema(description = "出账业务编号")
private String businessNo;
/**
* 转介人 * 转介人
*/ */
@Schema(description = "转介人") @Schema(description = "转介人")
......
...@@ -94,12 +94,24 @@ public class PolicyFollowVO implements Serializable { ...@@ -94,12 +94,24 @@ public class PolicyFollowVO implements Serializable {
private String policyHolder; private String policyHolder;
/** /**
* 保單持有人-英文
*/
@Schema(description = "投保人-英文")
private String policyHolderEn;
/**
* 受保人 * 受保人
*/ */
@Schema(description = "受保人") @Schema(description = "受保人")
private String insured; private String insured;
/** /**
* 受保人-英文
*/
@Schema(description = "受保人-英文")
private String insuredEn;
/**
* 受保人业务id * 受保人业务id
*/ */
@Schema(description = "受保人业务id") @Schema(description = "受保人业务id")
......
...@@ -145,4 +145,14 @@ public class ReceivableReportVO { ...@@ -145,4 +145,14 @@ public class ReceivableReportVO {
*/ */
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
/**
* 保單持有人(投保人,保单表)(中文名)
*/
private String policyHolder;
/**
* 保單持有人(投保人,保单表)(英文名)
*/
private String policyHolderEn;
} }
...@@ -71,6 +71,8 @@ ...@@ -71,6 +71,8 @@
select select
null as receivableNo, null as receivableNo,
ce.policy_no as policyNo, ce.policy_no as policyNo,
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
ce.remark, ce.remark,
MAX(ce.reconciliation_company) as reconciliationCompany, MAX(ce.reconciliation_company) as reconciliationCompany,
MAX(ce.reconciliation_company_biz_id) as reconciliationCompanyBizId, MAX(ce.reconciliation_company_biz_id) as reconciliationCompanyBizId,
...@@ -113,6 +115,8 @@ ...@@ -113,6 +115,8 @@
select select
ce.receivable_no as receivableNo, ce.receivable_no as receivableNo,
ce.policy_no as policyNo, ce.policy_no as policyNo,
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
ce.remark, ce.remark,
ce.reconciliation_company as reconciliationCompany, ce.reconciliation_company as reconciliationCompany,
ce.reconciliation_company_biz_id as reconciliationCompanyBizId, ce.reconciliation_company_biz_id as reconciliationCompanyBizId,
......
...@@ -137,6 +137,9 @@ ...@@ -137,6 +137,9 @@
left join policy_policyholder pp left join policy_policyholder pp
on pf.policy_biz_id = pp.policy_biz_id on pf.policy_biz_id = pp.policy_biz_id
and pp.is_deleted = 0 and pp.is_deleted = 0
left join policy_insurant pi
on pf.policy_biz_id = pi.policy_biz_id
and pi.is_deleted = 0
left join ( left join (
select pb.policy_biz_id, pb.broker_name select pb.policy_biz_id, pb.broker_name
from policy_broker pb from policy_broker pb
...@@ -150,9 +153,33 @@ ...@@ -150,9 +153,33 @@
on pf.policy_biz_id = first_broker.policy_biz_id on pf.policy_biz_id = first_broker.policy_biz_id
<where> <where>
pf.is_deleted = 0 pf.is_deleted = 0
<if test="policyHolder != null and policyHolder != ''"> <!-- 投保人:简体中文或英文小写,满足其一即可 -->
and (pp.name like concat('%', #{policyHolder}, '%') <if test="(policyHolderSc != null and policyHolderSc != '') or (policyHolderEnLc != null and policyHolderEnLc != '')">
or pp.name_en like concat('%', #{policyHolder}, '%')) and (
<if test="policyHolderSc != null and policyHolderSc != ''">
pp.name_sc like concat('%', #{policyHolderSc}, '%')
</if>
<if test="policyHolderSc != null and policyHolderSc != '' and policyHolderEnLc != null and policyHolderEnLc != ''">
or
</if>
<if test="policyHolderEnLc != null and policyHolderEnLc != ''">
pp.name_en_lc like concat('%', #{policyHolderEnLc}, '%')
</if>
)
</if>
<!-- 受保人:简体中文或英文小写,满足其一即可 -->
<if test="(insuredSc != null and insuredSc != '') or (insuredEnLc != null and insuredEnLc != '')">
and (
<if test="insuredSc != null and insuredSc != ''">
pi.name_sc like concat('%', #{insuredSc}, '%')
</if>
<if test="insuredSc != null and insuredSc != '' and insuredEnLc != null and insuredEnLc != ''">
or
</if>
<if test="insuredEnLc != null and insuredEnLc != ''">
pi.name_en_lc like concat('%', #{insuredEnLc}, '%')
</if>
)
</if> </if>
<if test="signer != null and signer != ''"> <if test="signer != null and signer != ''">
and pf.signer like concat('%', #{signer}, '%') and pf.signer like concat('%', #{signer}, '%')
......
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
pr.recognized_currency, pr.recognized_currency,
prm_total.payer, prm_total.payer,
prm_total.paying_bank, prm_total.paying_bank,
pp.name as policyHolder, pp.name AS policyHolder,
pp.name_en as policyHolderEn, pp.name_en AS policyHolderEn,
pi.name as insured, pi.name AS insured,
pi.name_en as insuredEn, pi.name_en AS insuredEn,
pb.broker_name AS brokerName, pb.broker_name AS brokerName,
pr.create_time, pr.create_time,
pr.update_time, pr.update_time,
...@@ -75,9 +75,6 @@ ...@@ -75,9 +75,6 @@
<if test="request.appointmentNo != null and request.appointmentNo != ''"> <if test="request.appointmentNo != null and request.appointmentNo != ''">
AND pf.appointment_no LIKE CONCAT('%', #{request.appointmentNo}, '%') AND pf.appointment_no LIKE CONCAT('%', #{request.appointmentNo}, '%')
</if> </if>
<if test="request.policyHolder != null and request.policyHolder != ''">
AND p.policy_holder LIKE CONCAT('%', #{request.policyHolder}, '%')
</if>
<if test="request.paymentMethod != null and request.paymentMethod != ''"> <if test="request.paymentMethod != null and request.paymentMethod != ''">
AND prm_total.payment_method LIKE CONCAT('%', #{request.paymentMethod}, '%') AND prm_total.payment_method LIKE CONCAT('%', #{request.paymentMethod}, '%')
</if> </if>
...@@ -90,19 +87,38 @@ ...@@ -90,19 +87,38 @@
<if test="request.reconciliationType != null and request.reconciliationType != ''"> <if test="request.reconciliationType != null and request.reconciliationType != ''">
AND pr.reconciliation_type = #{request.reconciliationType} AND pr.reconciliation_type = #{request.reconciliationType}
</if> </if>
<if test="request.policyHolder != null and request.policyHolder != ''"> <!-- 投保人查询:支持中文繁/简体和英文大小写 -->
AND (pp.name LIKE CONCAT('%', #{request.policyHolder}, '%') OR pp.name_en LIKE CONCAT('%', #{request.policyHolder}, '%')) <if test="request.policyHolderNameSc != null and request.policyHolderNameSc != ''
or request.policyHolderNameEnLc != null and request.policyHolderNameEnLc != ''">
AND (
<if test="request.policyHolderNameSc != null and request.policyHolderNameSc != ''">
pp.name LIKE CONCAT('%', #{request.policyHolderNameSc}, '%')
</if>
<if test="request.policyHolderNameSc != null and request.policyHolderNameSc != ''
and request.policyHolderNameEnLc != null and request.policyHolderNameEnLc != ''">
OR
</if>
<if test="request.policyHolderNameEnLc != null and request.policyHolderNameEnLc != ''">
pp.name_en LIKE CONCAT('%', #{request.policyHolderNameEnLc}, '%')
</if>
)
</if> </if>
<if test="request.insured != null and request.insured != ''"> <!-- 受保人查询:支持中文繁/简体和英文大小写 -->
AND (pi.name LIKE CONCAT('%', #{request.insured}, '%') OR pi.name_en LIKE CONCAT('%', #{request.insured}, '%')) <if test="request.insuredNameSc != null and request.insuredNameSc != ''
or request.insuredNameEnLc != null and request.insuredNameEnLc != ''">
AND (
<if test="request.insuredNameSc != null and request.insuredNameSc != ''">
pi.name LIKE CONCAT('%', #{request.insuredNameSc}, '%')
</if>
<if test="request.insuredNameSc != null and request.insuredNameSc != ''
and request.insuredNameEnLc != null and request.insuredNameEnLc != ''">
OR
</if>
<if test="request.insuredNameEnLc != null and request.insuredNameEnLc != ''">
pi.name_en LIKE CONCAT('%', #{request.insuredNameEnLc}, '%')
</if>
)
</if> </if>
<choose>
<when test="request.paymentDate != null">
AND pp.premium_reconciliation_biz_id IS NOT NULL
</when>
<otherwise>
</otherwise>
</choose>
ORDER BY pr.create_time DESC ORDER BY pr.create_time DESC
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -29,7 +29,8 @@ ...@@ -29,7 +29,8 @@
fa.amount, fa.amount,
fa.hkd_amount, fa.hkd_amount,
fa.currency, fa.currency,
DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month,
fa.business_no
from salary_split ss from salary_split ss
inner join fortune_account fa inner join fortune_account fa
on ss.fortune_account_biz_id = fa.fortune_account_biz_id on ss.fortune_account_biz_id = fa.fortune_account_biz_id
...@@ -105,7 +106,8 @@ ...@@ -105,7 +106,8 @@
fa.amount, fa.amount,
fa.hkd_amount, fa.hkd_amount,
fa.currency, fa.currency,
DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month DATE_FORMAT(fa.fortune_account_date, '%Y%m') as fortune_account_month,
fa.business_no
from salary_split ss from salary_split ss
inner join fortune_account fa inner join fortune_account fa
on ss.fortune_account_biz_id = fa.fortune_account_biz_id on ss.fortune_account_biz_id = fa.fortune_account_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