Commit 4685fe9f by zhangxingmin

Merge remote-tracking branch 'origin/dev_zxm_v1' into test

parents e9c901a4 4b9f0054
......@@ -12,9 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 生成预计发佣日志记录表 前端控制器
* </p>
* 生成预计发佣日志记录信息
*
* @author zxm
* @since 2025-11-20
......
package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.csf.api.service.ApiPremiumReconciliationService;
import com.yd.csf.feign.client.premiumreconciliation.ApiPremiumReconciliationFeignClient;
import com.yd.csf.feign.dto.premiumreconciliation.ApiPremiumReconciliationDto;
import com.yd.csf.feign.request.premiumreconciliation.ApiCalculateRemainingUnpaidAmountRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationAddRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationPageRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationResultEditRequest;
import com.yd.csf.feign.response.premiumreconciliation.ApiCalculateRemainingUnpaidAmountResponse;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationDetailResponse;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
/**
* 保费对账记录信息
*
* @author zxm
* @since 2025-12-26
*/
@RestController
@RequestMapping("/premiumReconciliation")
@Validated
public class ApiPremiumReconciliationController implements ApiPremiumReconciliationFeignClient {
@Autowired
private ApiPremiumReconciliationService apiPremiumReconciliationService;
/**
* 分页列表查询-保费对账记录信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiPremiumReconciliationPageResponse>> page(ApiPremiumReconciliationPageRequest request) {
return apiPremiumReconciliationService.page(request);
}
/**
* 添加-保费对账记录信息(聚合信息添加)
* @param request
* @return
*/
@Override
public Result add(ApiPremiumReconciliationAddRequest request) {
return apiPremiumReconciliationService.add(request);
}
/**
* 编辑-单个保费对账记录信息
* @param request
* @return
*/
@Override
public Result edit(ApiPremiumReconciliationDto request) {
return apiPremiumReconciliationService.edit(request);
}
/**
* 详情-保费对账记录信息
* @param premiumReconciliationBizId 保费对账记录表唯一业务ID
* @return
*/
@Override
public Result<ApiPremiumReconciliationDetailResponse> detail(String premiumReconciliationBizId) {
return apiPremiumReconciliationService.detail(premiumReconciliationBizId);
}
/**
* 计算待付金额-保费对账记录信息
* @param request
* @return
*/
@Override
public Result<ApiCalculateRemainingUnpaidAmountResponse> calculateRemainingUnpaidAmount(ApiCalculateRemainingUnpaidAmountRequest request) {
return apiPremiumReconciliationService.calculateRemainingUnpaidAmount(request);
}
/**
* 设置认定结果-保费对账记录信息
* @param request
* @return
*/
@Override
public Result editResult(ApiPremiumReconciliationResultEditRequest request) {
return apiPremiumReconciliationService.editResult(request);
}
/**
* 校验-保单所有期数的保费对账是否对账完成(全部对账完成就不能新增录入对账信息了)
* @param policyNo
* @return
*/
@Override
public Result<Boolean> checkReconciliationComplete(String policyNo) {
return apiPremiumReconciliationService.checkReconciliationComplete(policyNo);
}
}
package com.yd.csf.api.controller;
import com.yd.common.result.Result;
import com.yd.csf.api.service.ApiPremiumRemittanceService;
import com.yd.csf.feign.client.premiumremittance.ApiPremiumRemittanceFeignClient;
import com.yd.csf.feign.dto.premiumremittance.ApiPremiumRemittanceDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 保费对账-汇款记录信息
*
* @author zxm
* @since 2025-12-26
*/
@RestController
@RequestMapping("/premiumRemittance")
@Validated
public class ApiPremiumRemittanceController implements ApiPremiumRemittanceFeignClient {
@Autowired
private ApiPremiumRemittanceService apiPremiumRemittanceService;
/**
* 添加-单个保费对账汇款记录信息
* @param request
* @return
*/
@Override
public Result add(ApiPremiumRemittanceDto request) {
return apiPremiumRemittanceService.add(request);
}
/**
* 编辑-单个保费对账汇款记录信息
* @param request
* @return
*/
@Override
public Result edit(ApiPremiumRemittanceDto request) {
return apiPremiumRemittanceService.edit(request);
}
/**
* 详情-保费对账汇款记录信息
* @param premiumRemittanceBizId 保费对账-汇款记录表唯一业务ID
* @return
*/
@Override
public Result<ApiPremiumRemittanceDto> detail(String premiumRemittanceBizId) {
return apiPremiumRemittanceService.detail(premiumRemittanceBizId);
}
/**
* 删除-单个保费对账汇款记录信息
* @param premiumRemittanceBizId
* @return
*/
@Override
public Result del(String premiumRemittanceBizId) {
return apiPremiumRemittanceService.del(premiumRemittanceBizId);
}
}
package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.csf.api.service.ApiPremiumRemittanceFileService;
import com.yd.csf.feign.client.premiumremittancefile.ApiPremiumRemittanceFileFeignClient;
import com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import com.yd.csf.feign.response.premiumremittancefile.ApiPremiumRemittanceFilePageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 保费对账-汇款记录附件信息
*
* @author zxm
* @since 2025-12-26
*/
@RestController
@RequestMapping("/premiumRemittanceFile")
@Validated
public class ApiPremiumRemittanceFileController implements ApiPremiumRemittanceFileFeignClient {
@Autowired
private ApiPremiumRemittanceFileService apiPremiumRemittanceFileService;
/**
* 分页列表查询-保费汇款记录附件信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiPremiumRemittanceFilePageResponse>> page(ApiPremiumRemittanceFilePageRequest request) {
return apiPremiumRemittanceFileService.page(request);
}
/**
* 添加-保费汇款记录附件信息
* @param request
* @return
*/
@Override
public Result add(ApiPremiumRemittanceFileDto request) {
return apiPremiumRemittanceFileService.add(request);
}
/**
* 编辑-保费汇款记录附件信息
* @param request
* @return
*/
@Override
public Result edit(ApiPremiumRemittanceFileDto request) {
return apiPremiumRemittanceFileService.edit(request);
}
/**
* 删除-保费汇款记录附件信息
* @param premiumRemittanceFileBizId
* @return
*/
@Override
public Result del(String premiumRemittanceFileBizId) {
return apiPremiumRemittanceFileService.del(premiumRemittanceFileBizId);
}
}
package com.yd.csf.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.csf.feign.dto.premiumreconciliation.ApiPremiumReconciliationDto;
import com.yd.csf.feign.request.premiumreconciliation.ApiCalculateRemainingUnpaidAmountRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationAddRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationPageRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationResultEditRequest;
import com.yd.csf.feign.response.premiumreconciliation.ApiCalculateRemainingUnpaidAmountResponse;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationDetailResponse;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse;
import com.yd.csf.service.model.PremiumReconciliation;
public interface ApiPremiumReconciliationService {
Result<IPage<ApiPremiumReconciliationPageResponse>> page(ApiPremiumReconciliationPageRequest request);
Result add(ApiPremiumReconciliationAddRequest request);
Result edit(ApiPremiumReconciliationDto request);
Result<ApiPremiumReconciliationDetailResponse> detail(String premiumReconciliationBizId);
Result<ApiCalculateRemainingUnpaidAmountResponse> calculateRemainingUnpaidAmount(ApiCalculateRemainingUnpaidAmountRequest request);
Result editResult(ApiPremiumReconciliationResultEditRequest request);
Result<Boolean> checkReconciliationComplete(String policyNo);
Result<PremiumReconciliation> checkPremiumReconciliationIsExist(String expectedCommissionRatioBizId);
}
package com.yd.csf.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import com.yd.csf.feign.response.premiumremittancefile.ApiPremiumRemittanceFilePageResponse;
import com.yd.csf.service.model.PremiumRemittanceFile;
import java.util.List;
public interface ApiPremiumRemittanceFileService {
Result<IPage<ApiPremiumRemittanceFilePageResponse>> page(ApiPremiumRemittanceFilePageRequest request);
Result add(ApiPremiumRemittanceFileDto request);
Result edit(ApiPremiumRemittanceFileDto request);
Result del(String premiumRemittanceFileBizId);
Result addPremiumRemittanceFileList(List<ApiPremiumRemittanceFileDto> apiPremiumRemittanceFileDtoList,
String premiumRemittanceBizId);
Result savePremiumRemittanceFileList(List<ApiPremiumRemittanceFileDto> apiPremiumRemittanceFileDtoList,
String premiumRemittanceBizId);
Result delByPremiumRemittanceBizId(String premiumRemittanceBizId);
List<ApiPremiumRemittanceFileDto> apiPremiumRemittanceFileDtoList(String premiumRemittanceBizId);
Result<PremiumRemittanceFile> checkPremiumRemittanceFileIsExist(String premiumRemittanceFileBizId);
}
package com.yd.csf.api.service;
import com.yd.common.result.Result;
import com.yd.csf.feign.dto.premiumremittance.ApiPremiumRemittanceDto;
import com.yd.csf.service.model.PremiumRemittance;
import java.util.List;
public interface ApiPremiumRemittanceService {
Result add(ApiPremiumRemittanceDto request);
Result edit(ApiPremiumRemittanceDto request);
Result<ApiPremiumRemittanceDto> detail(String premiumRemittanceBizId);
Result del(String premiumRemittanceBizId);
Result addPremiumRemittanceList(List<ApiPremiumRemittanceDto> apiPremiumRemittanceDtoList,
String premiumReconciliationBizId);
List<ApiPremiumRemittanceDto> apiPremiumRemittanceDtoList(String premiumReconciliationBizId);
Result<PremiumRemittance> checkPremiumRemittanceIsExist(String premiumRemittanceBizId);
}
package com.yd.csf.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.api.service.ApiPremiumRemittanceFileService;
import com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import com.yd.csf.feign.response.premiumremittancefile.ApiPremiumRemittanceFilePageResponse;
import com.yd.csf.service.model.PremiumRemittanceFile;
import com.yd.csf.service.service.IPremiumRemittanceFileService;
import lombok.extern.slf4j.Slf4j;
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.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ApiPremiumRemittanceFileServiceImpl implements ApiPremiumRemittanceFileService {
@Autowired
private IPremiumRemittanceFileService iPremiumRemittanceFileService;
/**
* 分页列表查询-保费汇款记录附件信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiPremiumRemittanceFilePageResponse>> page(ApiPremiumRemittanceFilePageRequest request) {
Page<ApiPremiumRemittanceFilePageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiPremiumRemittanceFilePageResponse> iPage = iPremiumRemittanceFileService.page(page, request);
return Result.success(iPage);
}
/**
* 添加-保费汇款记录附件信息
* @param request
* @return
*/
@Override
public Result add(ApiPremiumRemittanceFileDto request) {
if (StringUtils.isBlank(request.getPremiumRemittanceBizId())) {
throw new BusinessException("保费对账-汇款记录表唯一业务ID不能为空");
}
PremiumRemittanceFile premiumRemittanceFile = new PremiumRemittanceFile();
BeanUtils.copyProperties(request,premiumRemittanceFile);
premiumRemittanceFile.setPremiumRemittanceBizId(request.getPremiumRemittanceBizId());
premiumRemittanceFile.setPremiumRemittanceFileBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_PREMIUM_REMITTANCE_FILE.getCode()));
iPremiumRemittanceFileService.saveOrUpdate(premiumRemittanceFile);
return Result.success();
}
/**
* 编辑-保费汇款记录附件信息
* @param request
* @return
*/
@Override
public Result edit(ApiPremiumRemittanceFileDto request) {
if (StringUtils.isBlank(request.getPremiumRemittanceBizId())) {
throw new BusinessException("保费对账-汇款记录表唯一业务ID不能为空");
}
if (StringUtils.isBlank(request.getPremiumRemittanceFileBizId())) {
throw new BusinessException("保费汇款记录附件表唯一业务ID不能为空");
}
Result<PremiumRemittanceFile> result = checkPremiumRemittanceFileIsExist(request.getPremiumRemittanceFileBizId());
PremiumRemittanceFile file = result.getData();
BeanUtils.copyProperties(request,file);
iPremiumRemittanceFileService.saveOrUpdate(file);
return Result.success();
}
/**
* 删除-保费汇款记录附件信息
* @param premiumRemittanceFileBizId
* @return
*/
@Override
public Result del(String premiumRemittanceFileBizId) {
Result<PremiumRemittanceFile> result = checkPremiumRemittanceFileIsExist(premiumRemittanceFileBizId);
PremiumRemittanceFile file = result.getData();
iPremiumRemittanceFileService.removeById(file.getId());
return Result.success();
}
/**
* 添加-保费对账汇款记录附件列表
* @param apiPremiumRemittanceFileDtoList
* @param premiumRemittanceBizId
* @return
*/
@Override
public Result addPremiumRemittanceFileList(List<ApiPremiumRemittanceFileDto> apiPremiumRemittanceFileDtoList,
String premiumRemittanceBizId) {
if (CollectionUtils.isEmpty(apiPremiumRemittanceFileDtoList)) {
return Result.success();
}
List<PremiumRemittanceFile> addPremiumRemittanceFileList = apiPremiumRemittanceFileDtoList
.stream().map(dto -> {
PremiumRemittanceFile file = new PremiumRemittanceFile();
BeanUtils.copyProperties(dto,file);
file.setPremiumRemittanceBizId(premiumRemittanceBizId);
file.setPremiumRemittanceFileBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_PREMIUM_REMITTANCE_FILE.getCode()));
return file;
}).collect(Collectors.toList());
iPremiumRemittanceFileService.saveOrUpdateBatch(addPremiumRemittanceFileList);
return Result.success();
}
/**
* 保存-保费对账汇款记录附件列表
* @param apiPremiumRemittanceFileDtoList
* @param premiumRemittanceBizId
* @return
*/
@Override
public Result savePremiumRemittanceFileList(List<ApiPremiumRemittanceFileDto> apiPremiumRemittanceFileDtoList,
String premiumRemittanceBizId) {
//先删后新增
iPremiumRemittanceFileService.delByPremiumRemittanceBizId(premiumRemittanceBizId);
//新增
if (CollectionUtils.isEmpty(apiPremiumRemittanceFileDtoList)) {
return Result.success();
}
List<PremiumRemittanceFile> saveList = apiPremiumRemittanceFileDtoList.stream().map(dto -> {
PremiumRemittanceFile file = new PremiumRemittanceFile();
BeanUtils.copyProperties(dto,file);
file.setPremiumRemittanceBizId(premiumRemittanceBizId);
file.setPremiumRemittanceFileBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_PREMIUM_REMITTANCE_FILE.getCode()));
return file;
}).collect(Collectors.toList());
iPremiumRemittanceFileService.saveOrUpdateBatch(saveList);
return Result.success();
}
/**
* 根据保费对账-汇款记录表唯一业务ID删除
* @param premiumRemittanceBizId
* @return
*/
@Override
public Result delByPremiumRemittanceBizId(String premiumRemittanceBizId) {
iPremiumRemittanceFileService.delByPremiumRemittanceBizId(premiumRemittanceBizId);
return Result.success();
}
/**
* 根据保费对账-汇款记录表唯一业务ID查询保费汇款记录附件列表
* @param premiumRemittanceBizId
* @return
*/
@Override
public List<ApiPremiumRemittanceFileDto> apiPremiumRemittanceFileDtoList(String premiumRemittanceBizId) {
List<PremiumRemittanceFile> fileList = iPremiumRemittanceFileService.queryList(premiumRemittanceBizId);
if (CollectionUtils.isEmpty(fileList)) {
return new ArrayList<>();
}
List<ApiPremiumRemittanceFileDto> fileDtoList = fileList.stream().map(dto -> {
ApiPremiumRemittanceFileDto fileDto = new ApiPremiumRemittanceFileDto();
BeanUtils.copyProperties(dto,fileDto);
return fileDto;
}).collect(Collectors.toList());
return fileDtoList;
}
/**
* 校验保费汇款记录附件信息是否存在
* @param premiumRemittanceFileBizId
* @return
*/
@Override
public Result<PremiumRemittanceFile> checkPremiumRemittanceFileIsExist(String premiumRemittanceFileBizId) {
PremiumRemittanceFile premiumRemittanceFile = iPremiumRemittanceFileService.queryOne(premiumRemittanceFileBizId);
if (Objects.isNull(premiumRemittanceFile)) {
//数据不存在
throw new BusinessException("保费汇款记录附件信息不存在");
}
return Result.success(premiumRemittanceFile);
}
}
package com.yd.csf.api.service.impl;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.api.service.ApiPremiumRemittanceFileService;
import com.yd.csf.api.service.ApiPremiumRemittanceService;
import com.yd.csf.feign.dto.premiumremittance.ApiPremiumRemittanceDto;
import com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto;
import com.yd.csf.service.dto.PremiumRemittanceDto;
import com.yd.csf.service.model.PremiumRemittance;
import com.yd.csf.service.service.IPremiumRemittanceService;
import lombok.extern.slf4j.Slf4j;
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.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ApiPremiumRemittanceServiceImpl implements ApiPremiumRemittanceService {
@Autowired
private IPremiumRemittanceService iPremiumRemittanceService;
@Autowired
private ApiPremiumRemittanceFileService apiPremiumRemittanceFileService;
/**
* 添加-单个保费对账汇款记录信息
* @param request
* @return
*/
@Override
public Result add(ApiPremiumRemittanceDto request) {
if (StringUtils.isBlank(request.getPremiumReconciliationBizId())) {
throw new BusinessException("保费对账记录表唯一业务ID不能为空");
}
List<ApiPremiumRemittanceDto> apiPremiumRemittanceDtoList = new ArrayList<>();
apiPremiumRemittanceDtoList.add(request);
//添加-保费对账汇款记录列表
addPremiumRemittanceList(apiPremiumRemittanceDtoList,request.getPremiumReconciliationBizId());
return Result.success();
}
/**
* 编辑-单个保费对账汇款记录信息
* @param request
* @return
*/
@Override
public Result edit(ApiPremiumRemittanceDto request) {
if (StringUtils.isBlank(request.getPremiumRemittanceBizId())) {
throw new BusinessException("保费对账-汇款记录表唯一业务ID不能为空");
}
Result<PremiumRemittance> result = checkPremiumRemittanceIsExist(request.getPremiumRemittanceBizId());
PremiumRemittance premiumRemittance = result.getData();
BeanUtils.copyProperties(request,premiumRemittance);
//支付凭证
premiumRemittance.setPaymentVoucher(!CollectionUtils.isEmpty(request.getPaymentVoucherList()) ? String.join(";",request.getPaymentVoucherList()) : "");
//账户证明
premiumRemittance.setAccountVerification(!CollectionUtils.isEmpty(request.getAccountVerificationList()) ? String.join(";",request.getAccountVerificationList()) : "");
iPremiumRemittanceService.saveOrUpdate(premiumRemittance);
//保存-保费对账汇款记录附件列表
apiPremiumRemittanceFileService.savePremiumRemittanceFileList(request.getApiPremiumRemittanceFileDtoList(),request.getPremiumRemittanceBizId());
return Result.success();
}
/**
* 详情-保费对账汇款记录信息
* @param premiumRemittanceBizId 保费对账-汇款记录表唯一业务ID
* @return
*/
@Override
public Result<ApiPremiumRemittanceDto> detail(String premiumRemittanceBizId) {
ApiPremiumRemittanceDto dto = new ApiPremiumRemittanceDto();
Result<PremiumRemittance> result = checkPremiumRemittanceIsExist(premiumRemittanceBizId);
PremiumRemittance premiumRemittance = result.getData();
BeanUtils.copyProperties(premiumRemittance,dto);
//其他资料列表
List<ApiPremiumRemittanceFileDto> fileDtoList = apiPremiumRemittanceFileService.apiPremiumRemittanceFileDtoList(premiumRemittanceBizId);
dto.setApiPremiumRemittanceFileDtoList(fileDtoList);
return Result.success(dto);
}
/**
* 删除-单个保费对账汇款记录信息
* @param premiumRemittanceBizId
* @return
*/
@Override
public Result del(String premiumRemittanceBizId) {
checkPremiumRemittanceIsExist(premiumRemittanceBizId);
//删除保费对账汇款记录附件列表
apiPremiumRemittanceFileService.delByPremiumRemittanceBizId(premiumRemittanceBizId);
//删除单个保费对账汇款记录信息
iPremiumRemittanceService.delByPremiumRemittanceBizId(premiumRemittanceBizId);
return Result.success();
}
/**
* 添加-保费对账汇款记录列表
* @param apiPremiumRemittanceDtoList
* @param premiumReconciliationBizId
* @return
*/
@Override
public Result addPremiumRemittanceList(List<ApiPremiumRemittanceDto> apiPremiumRemittanceDtoList,
String premiumReconciliationBizId) {
if (CollectionUtils.isEmpty(apiPremiumRemittanceDtoList)) {
return Result.success();
}
//添加保费对账汇款记录列表
for (ApiPremiumRemittanceDto dto : apiPremiumRemittanceDtoList) {
PremiumRemittance premiumRemittance = new PremiumRemittance();
BeanUtils.copyProperties(dto,premiumRemittance);
//保费对账记录表唯一业务ID
premiumRemittance.setPremiumReconciliationBizId(premiumReconciliationBizId);
//保费对账-汇款记录表唯一业务ID
premiumRemittance.setPremiumRemittanceBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_PREMIUM_REMITTANCE.getCode()));
//支付凭证
premiumRemittance.setPaymentVoucher(!CollectionUtils.isEmpty(dto.getPaymentVoucherList()) ? String.join(";",dto.getPaymentVoucherList()) : "");
//账户证明
premiumRemittance.setAccountVerification(!CollectionUtils.isEmpty(dto.getAccountVerificationList()) ? String.join(";",dto.getAccountVerificationList()) : "");
iPremiumRemittanceService.saveOrUpdate(premiumRemittance);
//添加-保费对账汇款记录附件列表
apiPremiumRemittanceFileService.addPremiumRemittanceFileList(dto.getApiPremiumRemittanceFileDtoList()
,premiumRemittance.getPremiumRemittanceBizId());
}
return Result.success();
}
/**
* 根据保费对账记录表唯一业务ID查询保费对账-汇款记录
* @param premiumReconciliationBizId
* @return
*/
@Override
public List<ApiPremiumRemittanceDto> apiPremiumRemittanceDtoList(String premiumReconciliationBizId) {
List<PremiumRemittance> list = iPremiumRemittanceService.queryList(PremiumRemittanceDto.builder()
.premiumReconciliationBizId(premiumReconciliationBizId).build());
if (CollectionUtils.isEmpty(list)){
return new ArrayList<>();
}
List<ApiPremiumRemittanceDto> dtoList = list.stream().map(dto -> {
ApiPremiumRemittanceDto remittanceDto = new ApiPremiumRemittanceDto();
BeanUtils.copyProperties(dto,remittanceDto);
return remittanceDto;
}).collect(Collectors.toList());
return dtoList;
}
/**
* 校验保费对账汇款记录信息是否存在
* @param premiumRemittanceBizId
* @return
*/
@Override
public Result<PremiumRemittance> checkPremiumRemittanceIsExist(String premiumRemittanceBizId) {
PremiumRemittance premiumRemittance = iPremiumRemittanceService.queryOne(premiumRemittanceBizId);
if (Objects.isNull(premiumRemittance)) {
//数据不存在
throw new BusinessException("保费对账汇款记录信息不存在");
}
return Result.success(premiumRemittance);
}
}
......@@ -6,6 +6,7 @@ import com.yd.csf.feign.request.policyreceipt.ApiPolicyReceiptAddRequest;
import com.yd.csf.feign.request.policyreceipt.ApiPolicyReceiptPageRequest;
import com.yd.csf.feign.response.policyreceipt.ApiPolicyReceiptDetailResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
......@@ -37,7 +38,7 @@ public interface ApiPolicyReceiptFeignClient {
* @return
*/
@PostMapping("/add")
Result add(@RequestBody ApiPolicyReceiptAddRequest request);
Result add(@Validated @RequestBody ApiPolicyReceiptAddRequest request);
/**
* 编辑-回执状态
......
package com.yd.csf.feign.client.premiumreconciliation;
import com.yd.common.result.Result;
import com.yd.csf.feign.dto.premiumreconciliation.ApiPremiumReconciliationDto;
import com.yd.csf.feign.fallback.premiumreconciliation.ApiPremiumReconciliationFeignFallbackFactory;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationAddRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationPageRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationResultEditRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiCalculateRemainingUnpaidAmountRequest;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationDetailResponse;
import com.yd.csf.feign.response.premiumreconciliation.ApiCalculateRemainingUnpaidAmountResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
/**
* 香港保险服务-保费对账记录信息Feign客户端
*/
@FeignClient(name = "yd-csf-api", fallbackFactory = ApiPremiumReconciliationFeignFallbackFactory.class)
public interface ApiPremiumReconciliationFeignClient {
/**
* 分页列表查询-保费对账记录信息
* @param request
* @return
*/
@PostMapping("/page")
Result page(@RequestBody ApiPremiumReconciliationPageRequest request);
/**
* 添加-保费对账记录信息(聚合信息添加)
* @param request
* @return
*/
@PostMapping("/add")
Result add(@Validated @RequestBody ApiPremiumReconciliationAddRequest request);
/**
* 编辑-单个保费对账记录信息
* @param request
* @return
*/
@PutMapping("/edit")
Result edit(@Validated @RequestBody ApiPremiumReconciliationDto request);
/**
* 详情-保费对账记录信息
* @param premiumReconciliationBizId 保费对账记录表唯一业务ID
* @return
*/
@GetMapping("/detail")
Result<ApiPremiumReconciliationDetailResponse> detail(@NotBlank(message = "保费对账记录表唯一业务ID能为空") @RequestParam(value = "premiumReconciliationBizId") String premiumReconciliationBizId);
/**
* 计算待付金额-保费对账记录信息
* @param request
* @return
*/
@PostMapping("/calculate/remainingUnpaidAmount")
Result<ApiCalculateRemainingUnpaidAmountResponse> calculateRemainingUnpaidAmount(@Validated @RequestBody ApiCalculateRemainingUnpaidAmountRequest request);
/**
* 设置认定结果-保费对账记录信息
* @param request
* @return
*/
@PutMapping("/edit/result")
Result editResult(@Validated @RequestBody ApiPremiumReconciliationResultEditRequest request);
/**
* 校验-保单所有期数的保费对账是否对账完成(全部对账完成就不能新增录入对账信息了)
* @param policyNo
* @return
*/
@GetMapping("/check/reconciliation/complete")
Result<Boolean> checkReconciliationComplete(@NotBlank(message = "保单号能为空") @RequestParam(value = "policyNo") String policyNo);
}
package com.yd.csf.feign.client.premiumremittance;
import com.yd.common.result.Result;
import com.yd.csf.feign.dto.premiumremittance.ApiPremiumRemittanceDto;
import com.yd.csf.feign.fallback.premiumremittance.ApiPremiumRemittanceFeignFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
/**
* 香港保险服务-保费对账汇款记录信息Feign客户端
*/
@FeignClient(name = "yd-csf-api", fallbackFactory = ApiPremiumRemittanceFeignFallbackFactory.class)
public interface ApiPremiumRemittanceFeignClient {
/**
* 添加-单个保费对账汇款记录信息
* @param request
* @return
*/
@PostMapping("/add")
Result add(@Validated @RequestBody ApiPremiumRemittanceDto request);
/**
* 编辑-单个保费对账汇款记录信息
* @param request
* @return
*/
@PutMapping("/edit")
Result edit(@Validated @RequestBody ApiPremiumRemittanceDto request);
/**
* 详情-保费对账汇款记录信息
* @param premiumRemittanceBizId 保费对账-汇款记录表唯一业务ID
* @return
*/
@GetMapping("/detail")
Result<ApiPremiumRemittanceDto> detail(@NotBlank(message = "保费对账-汇款记录表唯一业务ID能为空") @RequestParam(value = "premiumRemittanceBizId") String premiumRemittanceBizId);
/**
* 删除-单个保费对账汇款记录信息
* @param premiumRemittanceBizId
* @return
*/
@DeleteMapping("/del")
Result del(@NotBlank(message = "保费对账-汇款记录表唯一业务ID能为空") @RequestParam(value = "premiumRemittanceBizId") String premiumRemittanceBizId);
}
package com.yd.csf.feign.client.premiumremittancefile;
import com.yd.common.result.Result;
import com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto;
import com.yd.csf.feign.fallback.premiumremittancefile.ApiPremiumRemittanceFileFeignFallbackFactory;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
/**
* 香港保险服务-保费汇款记录附件信息Feign客户端
*/
@FeignClient(name = "yd-csf-api", fallbackFactory = ApiPremiumRemittanceFileFeignFallbackFactory.class)
public interface ApiPremiumRemittanceFileFeignClient {
/**
* 分页列表查询-保费汇款记录附件信息
* @param request
* @return
*/
@PostMapping("/page")
Result page(@RequestBody ApiPremiumRemittanceFilePageRequest request);
/**
* 添加-保费汇款记录附件信息
* @param request
* @return
*/
@PostMapping("/add")
Result add(@Validated @RequestBody ApiPremiumRemittanceFileDto request);
/**
* 编辑-保费汇款记录附件信息
* @param request
* @return
*/
@PutMapping("/edit")
Result edit(@Validated @RequestBody ApiPremiumRemittanceFileDto request);
/**
* 删除-保费汇款记录附件信息
* @param premiumRemittanceFileBizId
* @return
*/
@DeleteMapping("/del")
Result del(@NotBlank(message = "保费汇款记录附件表唯一业务ID能为空") @RequestParam(value = "premiumRemittanceFileBizId") String premiumRemittanceFileBizId);
}
package com.yd.csf.feign.dto.premiumreconciliation;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiPremiumReconciliationDto {
/**
* 保费对账记录表唯一业务ID
*/
private String premiumReconciliationBizId;
/**
* 对账类型
*/
@NotBlank(message = "对账类型不能为空")
private String reconciliationType;
/**
* 申请人
*/
@NotBlank(message = "申请人不能为空")
private String applicant;
/**
* 保单号
*/
@NotBlank(message = "保单号不能为空")
private String policyNo;
/**
* 保单受保人(被保人)
*/
@NotBlank(message = "被保人不能为空")
private String insured;
}
package com.yd.csf.feign.dto.premiumremittance;
import com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.List;
@Data
public class ApiPremiumRemittanceDto {
/**
* 保费对账-汇款记录表唯一业务ID(传值编辑,不传值新增)
*/
private String premiumRemittanceBizId;
/**
* 保费对账记录表唯一业务ID
*/
private String premiumReconciliationBizId;
/**
* 缴费方式
*/
@NotBlank(message = "缴费方式不能为空")
private String paymentMethod;
/**
* 付款金额
*/
@NotBlank(message = "付款金额不能为空")
private BigDecimal paymentAmount;
/**
* 付款币种
*/
@NotBlank(message = "付款币种不能为空")
private String paymentCurrency;
/**
* 付款人与保单关系(字典)
*/
@NotBlank(message = "付款人与保单关系不能为空")
private String paymentRel;
/**
* 付款人
*/
@NotBlank(message = "付款人不能为空")
private String payer;
/**
* 付款银行
*/
private String payingBank;
/**
* 付款账号
*/
private String paymentAccount;
/**
* 支付凭证列表
*/
@NotEmpty(message = "支付凭证列表不能为空")
private List<String> paymentVoucherList;
/**
* 账户证明列表
*/
@NotEmpty(message = "账户证明列表不能为空")
private List<String> accountVerificationList;
/**
* 其他资料列表
*/
private List<ApiPremiumRemittanceFileDto> apiPremiumRemittanceFileDtoList;
}
package com.yd.csf.feign.dto.premiumremittancefile;
import lombok.Data;
@Data
public class ApiPremiumRemittanceFileDto {
/**
* 保费对账-汇款记录表唯一业务ID
*/
private String premiumRemittanceBizId;
/**
* 保费汇款记录附件表唯一业务ID
*/
private String premiumRemittanceFileBizId;
/**
* 文件名
*/
private String fileName;
/**
* 文件类型
*/
private String fileType;
/**
* 文件URL
*/
private String fileUrl;
}
package com.yd.csf.feign.enums;
/**
* 付款频率枚举
*/
public enum PaymentFrequencyEnum {
MONTH("月缴","MONTH"),
SEASON("季缴","SEASON"),
YEAR("年缴","YEAR"),
FULL_PAYMENT("整付","FULL_PAYMENT"),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
private String itemValue;
//构造函数
PaymentFrequencyEnum(String itemLabel, String itemValue) {
this.itemLabel = itemLabel;
this.itemValue = itemValue;
}
public String getItemLabel() {
return itemLabel;
}
public String getItemValue() {
return itemValue;
}
}
package com.yd.csf.feign.enums;
/**
* 对账状态
*/
public enum ReconciliationStatusEnum {
YY_SHZ("运营审核中","YY_SHZ","客户提交后的状态"),
BS_DZZ("保司对账中","BS_DZZ","运营审核通过,提交给保司后"),
BS_DZ_CG("保司对账成功","BS_DZ_CG","保司反馈,已经收到打款"),
BS_DZ_SB("保司对账失败","BS_DZ_SB","保司反馈,没有收到打款"),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
private String itemValue;
//描述
private String description;
//构造函数
ReconciliationStatusEnum(String itemLabel, String itemValue,String description) {
this.itemLabel = itemLabel;
this.itemValue = itemValue;
this.description = description;
}
public String getItemLabel() {
return itemLabel;
}
public String getItemValue() {
return itemValue;
}
public String getDescription() {
return description;
}
}
package com.yd.csf.feign.fallback.premiumreconciliation;
import com.yd.common.result.Result;
import com.yd.csf.feign.client.premiumreconciliation.ApiPremiumReconciliationFeignClient;
import com.yd.csf.feign.dto.premiumreconciliation.ApiPremiumReconciliationDto;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationAddRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationPageRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationResultEditRequest;
import com.yd.csf.feign.request.premiumreconciliation.ApiCalculateRemainingUnpaidAmountRequest;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationDetailResponse;
import com.yd.csf.feign.response.premiumreconciliation.ApiCalculateRemainingUnpaidAmountResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
/**
* 香港保险服务-保费对账记录信息Feign降级处理
*/
@Slf4j
@Component
public class ApiPremiumReconciliationFeignFallbackFactory implements FallbackFactory<ApiPremiumReconciliationFeignClient> {
@Override
public ApiPremiumReconciliationFeignClient create(Throwable cause) {
return new ApiPremiumReconciliationFeignClient() {
@Override
public Result page(ApiPremiumReconciliationPageRequest request) {
return null;
}
@Override
public Result add(ApiPremiumReconciliationAddRequest request) {
return null;
}
@Override
public Result edit(ApiPremiumReconciliationDto request) {
return null;
}
@Override
public Result<ApiPremiumReconciliationDetailResponse> detail(String premiumReconciliationBizId) {
return null;
}
@Override
public Result<ApiCalculateRemainingUnpaidAmountResponse> calculateRemainingUnpaidAmount(ApiCalculateRemainingUnpaidAmountRequest request) {
return null;
}
@Override
public Result editResult(ApiPremiumReconciliationResultEditRequest request) {
return null;
}
@Override
public Result<Boolean> checkReconciliationComplete(String policyNo) {
return null;
}
};
}
}
package com.yd.csf.feign.fallback.premiumremittance;
import com.yd.common.result.Result;
import com.yd.csf.feign.client.premiumremittance.ApiPremiumRemittanceFeignClient;
import com.yd.csf.feign.dto.premiumremittance.ApiPremiumRemittanceDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
/**
* 香港保险服务-保费汇款记录信息Feign降级处理
*/
@Slf4j
@Component
public class ApiPremiumRemittanceFeignFallbackFactory implements FallbackFactory<ApiPremiumRemittanceFeignClient> {
@Override
public ApiPremiumRemittanceFeignClient create(Throwable cause) {
return new ApiPremiumRemittanceFeignClient() {
@Override
public Result add(ApiPremiumRemittanceDto request) {
return null;
}
@Override
public Result edit(ApiPremiumRemittanceDto request) {
return null;
}
@Override
public Result<ApiPremiumRemittanceDto> detail(String premiumRemittanceBizId) {
return null;
}
@Override
public Result del(String premiumRemittanceBizId) {
return null;
}
};
}
}
package com.yd.csf.feign.fallback.premiumremittancefile;
import com.yd.common.result.Result;
import com.yd.csf.feign.client.premiumremittancefile.ApiPremiumRemittanceFileFeignClient;
import com.yd.csf.feign.dto.premiumremittancefile.ApiPremiumRemittanceFileDto;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* 香港保险服务-保费汇款记录附件信息Feign降级处理
*/
@Slf4j
@Component
public class ApiPremiumRemittanceFileFeignFallbackFactory implements FallbackFactory<ApiPremiumRemittanceFileFeignClient> {
@Override
public ApiPremiumRemittanceFileFeignClient create(Throwable cause) {
return new ApiPremiumRemittanceFileFeignClient() {
@Override
public Result page(ApiPremiumRemittanceFilePageRequest request) {
return null;
}
@Override
public Result add(ApiPremiumRemittanceFileDto request) {
return null;
}
@Override
public Result edit(ApiPremiumRemittanceFileDto request) {
return null;
}
@Override
public Result del(String premiumRemittanceFileBizId) {
return null;
}
};
}
}
package com.yd.csf.feign.request.premiumreconciliation;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Data
public class ApiCalculateRemainingUnpaidAmountRequest {
/**
* 保费对账记录表唯一业务ID
*/
@NotBlank(message = "保费对账记录表唯一业务ID不能为空")
private String premiumReconciliationBizId;
/**
* 当次保司认定金额(客户当次缴纳的金额)
*/
@NotNull(message = "当次保司认定金额不能为空")
private BigDecimal recognizedAmount;
/**
* 当次保司认定币种
*/
@NotNull(message = "当次保司认定币种不能为空")
private String recognizedCurrency;
}
package com.yd.csf.feign.request.premiumreconciliation;
import com.yd.csf.feign.dto.premiumreconciliation.ApiPremiumReconciliationDto;
import com.yd.csf.feign.dto.premiumremittance.ApiPremiumRemittanceDto;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class ApiPremiumReconciliationAddRequest {
/**
* 保费对账信息
*/
@Valid
@NotNull(message = "保费对账信息不能为空")
private ApiPremiumReconciliationDto apiPremiumReconciliationDto;
/**
* 保费对账-汇款记录列表
*/
@Valid
private List<ApiPremiumRemittanceDto> apiPremiumRemittanceDtoList;
}
package com.yd.csf.feign.request.premiumreconciliation;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiPremiumReconciliationPageRequest extends PageDto {
}
package com.yd.csf.feign.request.premiumreconciliation;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class ApiPremiumReconciliationResultEditRequest {
/**
* 保费对账记录表唯一业务ID
*/
@NotBlank(message = "保费对账记录表唯一业务ID不能为空")
private String premiumReconciliationBizId;
/**
* 当次保司认定金额(客户当次缴纳的金额)
*/
@NotNull(message = "当次保司认定金额不能为空")
private BigDecimal recognizedAmount;
/**
* 当次保司认定币种
*/
@NotNull(message = "当次保司认定币种不能为空")
private String recognizedCurrency;
/**
* 当期剩余待付金额
*/
@NotNull(message = "当期剩余待付金额不能为空")
private BigDecimal remainingUnpaidAmount;
/**
* 当期剩余待付币种
*/
@NotNull(message = "当期剩余待付币种不能为空")
private String remainingUnpaidCurrency;
//以下信息只有当前保单首期剩余待付金额为小于等于0时,才传入下面字段进行保单生效日和状态更新
/**
* 生效日期(保单生效日)
*/
private Date effectiveDate;
/**
* 保单核保日
*/
private Date underwritingDate;
// /**
// * 保单状态
// */
// private String status;
}
package com.yd.csf.feign.request.premiumremittance;
import lombok.Data;
@Data
public class ApiPremiumRemittanceAddRequest {
}
package com.yd.csf.feign.request.premiumremittancefile;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiPremiumRemittanceFilePageRequest extends PageDto {
/**
* 文件名
*/
private String fileName;
}
package com.yd.csf.feign.response.premiumreconciliation;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ApiCalculateRemainingUnpaidAmountResponse {
/**
* 当期剩余待付金额
*/
private BigDecimal remainingUnpaidAmount;
/**
* 当期剩余待付币种
*/
private String remainingUnpaidCurrency;
}
package com.yd.csf.feign.response.premiumreconciliation;
import com.yd.csf.feign.dto.premiumreconciliation.ApiPremiumReconciliationDto;
import com.yd.csf.feign.dto.premiumremittance.ApiPremiumRemittanceDto;
import lombok.Data;
import java.util.List;
@Data
public class ApiPremiumReconciliationDetailResponse {
/**
* 保费对账信息
*/
private ApiPremiumReconciliationDto apiPremiumReconciliationDto;
/**
* 保费对账-汇款记录列表
*/
private List<ApiPremiumRemittanceDto> apiPremiumRemittanceDtoList;
}
package com.yd.csf.feign.response.premiumreconciliation;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class ApiPremiumReconciliationPageResponse {
/**
* 保险公司名称(保单表)
*/
private String insurer;
/**
* 保单号(保单表)
*/
private String policyNo;
/**
* 新单状态(新单跟进表)
*/
private String policyFollowStatus;
/**
* 对账状态(保费对账记录表)
*/
private String reconciliationStatus;
/**
* 保单状态(保单表)
*/
private String policyStatus;
/**
* 当期剩余待付金额(保费对账记录表)
*/
private BigDecimal remainingUnpaidAmount;
/**
* 当期剩余待付币种(保费对账记录表)
*/
private String remainingUnpaidCurrency;
/**
* 付款金额(保费对账-汇款记录表统计合)
*/
private BigDecimal paymentAmount;
/**
* 付款币种(保费对账-汇款记录表)
*/
private String paymentCurrency;
/**
* 缴费方式(保费对账-汇款记录表,多个分号分隔)
*/
private String paymentMethod;
/**
* 当次保司认定金额(客户当次缴纳的金额,保费对账记录表)
*/
private BigDecimal recognizedAmount;
/**
* 当次保司认定币种(保费对账记录表)
*/
private String recognizedCurrency;
/**
* 付款人(保费对账-汇款记录表)
*/
private String payer;
/**
* 付款银行(保费对账-汇款记录表)
*/
private String payingBank;
/**
* 保單持有人(投保人,保单表)
*/
private String policyHolder;
/**
* 受保人(保单表)
*/
private String insured;
/**
* 转介人名称(保单转介人表,多个分号分隔)
*/
private String brokerName;
/**
* 创建时间(保费对账记录表)
*/
private LocalDateTime createTime;
/**
* 更新时间(保费对账记录表)
*/
private LocalDateTime updateTime;
/**
* 对账公司(保单表)
*/
private String reconciliationCompany;
}
package com.yd.csf.feign.response.premiumremittancefile;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ApiPremiumRemittanceFilePageResponse {
/**
* 主键ID
*/
private Long id;
/**
* 保费汇款记录附件表唯一业务ID
*/
private String premiumRemittanceFileBizId;
/**
* 保费对账-汇款记录表唯一业务ID
*/
private String premiumRemittanceBizId;
/**
* 文件名
*/
private String fileName;
/**
* 文件类型
*/
private String fileType;
/**
* 文件URL
*/
private String fileUrl;
/**
* 创建人名
*/
private String creatorName;
/**
* 创建时间
*/
private LocalDateTime createTime;
}
package com.yd.csf.service.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationPageRequest;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse;
import com.yd.csf.service.model.PremiumReconciliation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 保费对账记录表 Mapper 接口
* </p>
*
* @author zxm
* @since 2025-12-26
*/
public interface PremiumReconciliationMapper extends BaseMapper<PremiumReconciliation> {
IPage<ApiPremiumReconciliationPageResponse> page(@Param("page") Page<ApiPremiumReconciliationPageResponse> page,
@Param("request") ApiPremiumReconciliationPageRequest request);
}
package com.yd.csf.service.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import com.yd.csf.feign.response.premiumremittancefile.ApiPremiumRemittanceFilePageResponse;
import com.yd.csf.service.model.PremiumRemittanceFile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 保费汇款记录附件表 Mapper 接口
* </p>
*
* @author zxm
* @since 2025-12-26
*/
public interface PremiumRemittanceFileMapper extends BaseMapper<PremiumRemittanceFile> {
IPage<ApiPremiumRemittanceFilePageResponse> page(@Param("page") Page<ApiPremiumRemittanceFilePageResponse> page,
@Param("request") ApiPremiumRemittanceFilePageRequest request);
}
package com.yd.csf.service.dao;
import com.yd.csf.service.model.PremiumRemittance;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 保费汇款记录表 Mapper 接口
* </p>
*
* @author zxm
* @since 2025-12-26
*/
public interface PremiumRemittanceMapper extends BaseMapper<PremiumRemittance> {
}
package com.yd.csf.service.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PremiumReconciliationDto {
/**
* 保费对账记录表唯一业务ID
*/
private String premiumReconciliationBizId;
/**
* 当前期数
*/
private String currentIssueNumber;
/**
* 查询是否排除当前记录
*/
@Builder.Default
private Boolean isExcludeMy = false;
}
package com.yd.csf.service.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PremiumRemittanceDto {
/**
* 保费对账记录表唯一业务ID
*/
private String premiumReconciliationBizId;
}
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
......@@ -134,6 +135,11 @@ public class Policy implements Serializable {
*/
private Date effectiveDate;
/**
* 核保日期
*/
private Date underwritingDate;
/**
* 冷却期结束日期
*/
......@@ -210,6 +216,11 @@ public class Policy implements Serializable {
private String policyLevy;
/**
* 缴费宽限期(每期缴费的最大宽限天数)
*/
private String gracePeriod;
/**
* 通用备注
*/
private String remark;
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
......@@ -83,6 +84,11 @@ public class PolicyFollow implements Serializable {
*/
private Date effectiveDate;
/**
* 核保日期
*/
private Date underwritingDate;
/**
* 冷却期结束日期
*/
......
package com.yd.csf.service.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 保费对账记录表
* </p>
*
* @author zxm
* @since 2025-12-26
*/
@Getter
@Setter
@TableName("premium_reconciliation")
public class PremiumReconciliation implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 保费对账记录表唯一业务ID
*/
@TableField("premium_reconciliation_biz_id")
private String premiumReconciliationBizId;
/**
* 对账类型
*/
@TableField("reconciliation_type")
private String reconciliationType;
/**
* 当前期数
*/
@TableField("current_issue_number")
private String currentIssueNumber;
/**
* 申请人
*/
@TableField("applicant")
private String applicant;
/**
* 保单号
*/
@TableField("policy_no")
private String policyNo;
/**
* 保单受保人(被保人)
*/
@TableField("insured")
private String insured;
/**
* 保险公司名称
*/
@TableField("insurer")
private String insurer;
/**
* 当次保司认定金额(客户当次缴纳的金额)
*/
@TableField("recognized_amount")
private BigDecimal recognizedAmount;
/**
* 当次保司认定币种
*/
@TableField("recognized_currency")
private String recognizedCurrency;
/**
* 当期剩余待付金额
*/
@TableField("remaining_unpaid_amount")
private BigDecimal remainingUnpaidAmount;
/**
* 当期剩余待付币种
*/
@TableField("remaining_unpaid_currency")
private String remainingUnpaidCurrency;
/**
* 对账状态
*/
@TableField("reconciliation_status")
private String reconciliationStatus;
/**
* 通用备注
*/
@TableField("remark")
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField("is_deleted")
private Integer isDeleted;
/**
* 创建人ID
*/
@TableField("creator_id")
private String creatorId;
/**
* 更新人ID
*/
@TableField("updater_id")
private String updaterId;
/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;
}
package com.yd.csf.service.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 保费对账-汇款记录表
* </p>
*
* @author zxm
* @since 2025-12-26
*/
@Getter
@Setter
@TableName("premium_remittance")
public class PremiumRemittance implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 保费对账-汇款记录表唯一业务ID
*/
@TableField("premium_remittance_biz_id")
private String premiumRemittanceBizId;
/**
* 保费对账记录表唯一业务ID
*/
@TableField("premium_reconciliation_biz_id")
private String premiumReconciliationBizId;
/**
* 缴费方式
*/
@TableField("payment_method")
private String paymentMethod;
/**
* 付款金额
*/
@TableField("payment_amount")
private BigDecimal paymentAmount;
/**
* 付款币种
*/
@TableField("payment_currency")
private String paymentCurrency;
/**
* 付款人与保单关系(字典)
*/
@TableField("payment_rel")
private String paymentRel;
/**
* 付款人
*/
@TableField("payer")
private String payer;
/**
* 付款银行
*/
@TableField("paying_bank")
private String payingBank;
/**
* 付款账号
*/
@TableField("payment_account")
private String paymentAccount;
/**
* 支付凭证(多个文件URL用分号分隔)
*/
@TableField("payment_voucher")
private String paymentVoucher;
/**
* 账户证明(多个文件URL用分号分隔)
*/
@TableField("account_verification")
private String accountVerification;
/**
* 通用备注
*/
@TableField("remark")
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField("is_deleted")
private Integer isDeleted;
/**
* 创建人ID
*/
@TableField("creator_id")
private String creatorId;
/**
* 更新人ID
*/
@TableField("updater_id")
private String updaterId;
/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;
}
package com.yd.csf.service.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 保费对账-汇款记录附件表
* </p>
*
* @author zxm
* @since 2025-12-26
*/
@Getter
@Setter
@TableName("premium_remittance_file")
public class PremiumRemittanceFile implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 保费汇款记录附件表唯一业务ID
*/
@TableField("premium_remittance_file_biz_id")
private String premiumRemittanceFileBizId;
/**
* 保费对账-汇款记录表唯一业务ID
*/
@TableField("premium_remittance_biz_id")
private String premiumRemittanceBizId;
/**
* 文件名
*/
@TableField("file_name")
private String fileName;
/**
* 文件类型
*/
@TableField("file_type")
private String fileType;
/**
* 文件URL
*/
@TableField("file_url")
private String fileUrl;
/**
* 通用备注
*/
@TableField("remark")
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField("is_deleted")
private Integer isDeleted;
/**
* 创建人ID
*/
@TableField("creator_id")
private String creatorId;
/**
* 创建人名
*/
@TableField("creator_name")
private String creatorName;
/**
* 更新人ID
*/
@TableField("updater_id")
private String updaterId;
/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;
}
package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationPageRequest;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse;
import com.yd.csf.service.dto.PremiumReconciliationDto;
import com.yd.csf.service.model.PremiumReconciliation;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 保费对账记录表 服务类
* </p>
*
* @author zxm
* @since 2025-12-26
*/
public interface IPremiumReconciliationService extends IService<PremiumReconciliation> {
IPage<ApiPremiumReconciliationPageResponse> page(Page<ApiPremiumReconciliationPageResponse> page,
ApiPremiumReconciliationPageRequest request);
PremiumReconciliation queryOne(String premiumReconciliationBizId);
List<PremiumReconciliation> queryList(PremiumReconciliationDto dto);
PremiumReconciliation queryLatestOneByPolicyNo(String policyNo);
}
package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import com.yd.csf.feign.response.premiumremittancefile.ApiPremiumRemittanceFilePageResponse;
import com.yd.csf.service.model.PremiumRemittanceFile;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 保费汇款记录附件表 服务类
* </p>
*
* @author zxm
* @since 2025-12-26
*/
public interface IPremiumRemittanceFileService extends IService<PremiumRemittanceFile> {
IPage<ApiPremiumRemittanceFilePageResponse> page(Page<ApiPremiumRemittanceFilePageResponse> page,
ApiPremiumRemittanceFilePageRequest request);
List<PremiumRemittanceFile> queryList(String premiumRemittanceBizId);
Boolean delByPremiumRemittanceBizId(String premiumRemittanceBizId);
PremiumRemittanceFile queryOne(String premiumRemittanceFileBizId);
}
package com.yd.csf.service.service;
import com.yd.csf.service.dto.PremiumRemittanceDto;
import com.yd.csf.service.model.PremiumRemittance;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 保费汇款记录表 服务类
* </p>
*
* @author zxm
* @since 2025-12-26
*/
public interface IPremiumRemittanceService extends IService<PremiumRemittance> {
List<PremiumRemittance> queryList(PremiumRemittanceDto dto);
PremiumRemittance queryOne(String premiumRemittanceBizId);
Boolean delByPremiumRemittanceBizId(String premiumRemittanceBizId);
}
......@@ -46,4 +46,6 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
String getCurrencyValue(String currency);
PolicyReportData queryPolicyReportData(String policyBizId);
PolicyFollow queryOneByPolicyNo(String policyNo);
}
......@@ -6,6 +6,7 @@ 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -607,6 +608,19 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return policyReportData;
}
/**
* 根据保单号查询保单跟进信息
* @param policyNo
* @return
*/
@Override
public PolicyFollow queryOneByPolicyNo(String policyNo) {
return this.getOne(new LambdaQueryWrapper<PolicyFollow>()
.eq(PolicyFollow::getPolicyNo,policyNo)
.last(" limit 1 ")
);
}
@Override
public Boolean uploadAttachment(AttachmentUploadRequest attachmentUploadRequest) {
String policyBizId = attachmentUploadRequest.getPolicyBizId();
......
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.premiumreconciliation.ApiPremiumReconciliationPageRequest;
import com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse;
import com.yd.csf.service.dto.PremiumReconciliationDto;
import com.yd.csf.service.model.PremiumReconciliation;
import com.yd.csf.service.dao.PremiumReconciliationMapper;
import com.yd.csf.service.model.Variable;
import com.yd.csf.service.service.IPremiumReconciliationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 保费对账记录表 服务实现类
* </p>
*
* @author zxm
* @since 2025-12-26
*/
@Service
public class PremiumReconciliationServiceImpl extends ServiceImpl<PremiumReconciliationMapper, PremiumReconciliation> implements IPremiumReconciliationService {
@Override
public IPage<ApiPremiumReconciliationPageResponse> page(Page<ApiPremiumReconciliationPageResponse> page,
ApiPremiumReconciliationPageRequest request) {
return baseMapper.page(page,request);
}
@Override
public PremiumReconciliation queryOne(String premiumReconciliationBizId) {
return this.getOne(new LambdaQueryWrapper<PremiumReconciliation>()
.eq(PremiumReconciliation::getPremiumReconciliationBizId,premiumReconciliationBizId).last(" limit 1 "));
}
@Override
public List<PremiumReconciliation> queryList(PremiumReconciliationDto dto) {
List<PremiumReconciliation> list = baseMapper.selectList(new LambdaQueryWrapper<PremiumReconciliation>()
.eq(StringUtils.isNotBlank(dto.getPremiumReconciliationBizId()) && !dto.getIsExcludeMy(),PremiumReconciliation::getPremiumReconciliationBizId,dto.getPremiumReconciliationBizId())
.eq(StringUtils.isNotBlank(dto.getCurrentIssueNumber()),PremiumReconciliation::getCurrentIssueNumber,dto.getCurrentIssueNumber())
.ne(dto.getIsExcludeMy(),PremiumReconciliation::getPremiumReconciliationBizId,dto.getPremiumReconciliationBizId())
);
return list;
}
/**
* 根据保单号查询最新创建时间的对账记录
* @param policyNo
* @return
*/
@Override
public PremiumReconciliation queryLatestOneByPolicyNo(String policyNo) {
return this.getOne(new LambdaQueryWrapper<PremiumReconciliation>()
.eq(PremiumReconciliation::getPolicyNo,policyNo)
.orderByDesc(PremiumReconciliation::getCreateTime)
.last(" limit 1 ")
);
}
}
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.premiumremittancefile.ApiPremiumRemittanceFilePageRequest;
import com.yd.csf.feign.response.premiumremittancefile.ApiPremiumRemittanceFilePageResponse;
import com.yd.csf.service.model.PremiumRemittance;
import com.yd.csf.service.model.PremiumRemittanceFile;
import com.yd.csf.service.dao.PremiumRemittanceFileMapper;
import com.yd.csf.service.service.IPremiumRemittanceFileService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 保费汇款记录附件表 服务实现类
* </p>
*
* @author zxm
* @since 2025-12-26
*/
@Service
public class PremiumRemittanceFileServiceImpl extends ServiceImpl<PremiumRemittanceFileMapper, PremiumRemittanceFile> implements IPremiumRemittanceFileService {
@Override
public IPage<ApiPremiumRemittanceFilePageResponse> page(Page<ApiPremiumRemittanceFilePageResponse> page,
ApiPremiumRemittanceFilePageRequest request) {
return baseMapper.page(page,request);
}
@Override
public List<PremiumRemittanceFile> queryList(String premiumRemittanceBizId) {
List<PremiumRemittanceFile> list = baseMapper.selectList(new LambdaQueryWrapper<PremiumRemittanceFile>()
.eq(StringUtils.isNotBlank(premiumRemittanceBizId),PremiumRemittanceFile::getPremiumRemittanceBizId,premiumRemittanceBizId)
);
return list;
}
/**
* 根据保费对账-汇款记录表唯一业务ID删除
* @param premiumRemittanceBizId
* @return
*/
@Override
public Boolean delByPremiumRemittanceBizId(String premiumRemittanceBizId) {
return this.remove(new LambdaQueryWrapper<PremiumRemittanceFile>().eq(PremiumRemittanceFile::getPremiumRemittanceBizId,premiumRemittanceBizId));
}
/**
* 查询单个对象
* @param premiumRemittanceFileBizId
* @return
*/
@Override
public PremiumRemittanceFile queryOne(String premiumRemittanceFileBizId) {
return this.getOne(new LambdaQueryWrapper<PremiumRemittanceFile>()
.eq(PremiumRemittanceFile::getPremiumRemittanceBizId,premiumRemittanceFileBizId).last(" limit 1 "));
}
}
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.csf.service.dto.PremiumRemittanceDto;
import com.yd.csf.service.model.PremiumRemittance;
import com.yd.csf.service.dao.PremiumRemittanceMapper;
import com.yd.csf.service.service.IPremiumRemittanceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* <p>
* 保费汇款记录表 服务实现类
* </p>
*
* @author zxm
* @since 2025-12-26
*/
@Service
public class PremiumRemittanceServiceImpl extends ServiceImpl<PremiumRemittanceMapper, PremiumRemittance> implements IPremiumRemittanceService {
/**
* 查询列表
* @param dto
* @return
*/
@Override
public List<PremiumRemittance> queryList(PremiumRemittanceDto dto) {
List<PremiumRemittance> list = baseMapper.selectList(new LambdaQueryWrapper<PremiumRemittance>()
.eq(StringUtils.isNotBlank(dto.getPremiumReconciliationBizId()),PremiumRemittance::getPremiumReconciliationBizId,dto.getPremiumReconciliationBizId())
);
return list;
}
/**
* 查询单个对象
* @param premiumRemittanceBizId
* @return
*/
@Override
public PremiumRemittance queryOne(String premiumRemittanceBizId) {
return this.getOne(new LambdaQueryWrapper<PremiumRemittance>()
.eq(PremiumRemittance::getPremiumRemittanceBizId,premiumRemittanceBizId).last(" limit 1 "));
}
/**
* 根据保费对账-汇款记录表唯一业务ID删除
* @param premiumRemittanceBizId
* @return
*/
@Override
public Boolean delByPremiumRemittanceBizId(String premiumRemittanceBizId) {
return this.remove(new LambdaQueryWrapper<PremiumRemittance>().eq(PremiumRemittance::getPremiumRemittanceBizId,premiumRemittanceBizId));
}
}
......@@ -21,7 +21,7 @@ public class MyBatisPlusCodeGenerator {
})
.strategyConfig(builder -> {
builder.addInclude(
"policy_receipt"
"premium_reconciliation","premium_remittance","premium_remittance_file"
)
.entityBuilder()
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.csf.service.dao.PremiumReconciliationMapper">
<select id="page"
resultType="com.yd.csf.feign.response.premiumreconciliation.ApiPremiumReconciliationPageResponse">
SELECT
MAX(p.insurer) AS insurer,
pr.policy_no,
MAX(pf.status) AS policyFollowStatus,
MAX(pr.reconciliation_status) AS reconciliation_status,
MAX(p.status) AS policyStatus,
MAX(pr.remaining_unpaid_amount) AS remaining_unpaid_amount,
MAX(pr.remaining_unpaid_currency) AS remaining_unpaid_currency,
COALESCE(SUM(prm.payment_amount), 0) AS paymentAmount,
MAX(prm.payment_currency) AS paymentCurrency,
GROUP_CONCAT(DISTINCT prm.payment_method SEPARATOR ';') AS paymentMethod,
MAX(pr.recognized_amount) AS recognized_amount,
MAX(pr.recognized_currency) AS recognized_currency,
GROUP_CONCAT(DISTINCT prm.payer SEPARATOR ';') AS payer,
GROUP_CONCAT(DISTINCT prm.paying_bank SEPARATOR ';') AS paying_bank,
MAX(p.policy_holder) AS policy_holder,
MAX(p.insured) AS insured,
GROUP_CONCAT(DISTINCT pb.broker_name SEPARATOR ';') AS brokerName,
MAX(pr.create_time) AS create_time,
MAX(pr.update_time) AS update_time,
MAX(p.reconciliation_company) AS reconciliation_company
FROM premium_reconciliation pr
LEFT JOIN policy p ON p.policy_no = pr.policy_no AND p.is_deleted = 0
LEFT JOIN policy_follow pf ON pf.policy_no = pr.policy_no AND pf.is_deleted = 0
LEFT JOIN premium_remittance prm ON prm.premium_reconciliation_biz_id = pr.premium_reconciliation_biz_id AND prm.is_deleted = 0
LEFT JOIN policy_broker pb ON pb.policy_no = pr.policy_no AND pb.is_deleted = 0
WHERE pr.is_deleted = 0
GROUP BY pr.premium_reconciliation_biz_id, pr.policy_no
ORDER BY MAX(pr.create_time) DESC
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.csf.service.dao.PremiumRemittanceFileMapper">
<select id="page"
resultType="com.yd.csf.feign.response.premiumremittancefile.ApiPremiumRemittanceFilePageResponse">
select prf.* from premium_remittance_file prf
<where>
<if test="request.fileName != null and request.fileName != ''">
and prf.file_name like concat('%', #{request.fileName}, '%')
</if>
and prf.is_deleted = 0
</where>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.csf.service.dao.PremiumRemittanceMapper">
</mapper>
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