Commit 3f4f3a48 by jianan

来佣接口11

parent f00b7475
...@@ -3,24 +3,18 @@ package com.yd.csf.api.controller; ...@@ -3,24 +3,18 @@ package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.CustomerAddRequest; import com.yd.csf.service.dto.CustomerAddRequest;
import com.yd.csf.service.dto.CustomerQueryRequest; import com.yd.csf.service.dto.CustomerQueryRequest;
import com.yd.csf.service.dto.CustomerUpdateRequest; import com.yd.csf.service.dto.CustomerUpdateRequest;
import com.yd.csf.service.dto.FnaQueryRequest;
import com.yd.csf.service.model.Customer; import com.yd.csf.service.model.Customer;
import com.yd.csf.service.model.CustomerExpand;
import com.yd.csf.service.service.CustomerService; import com.yd.csf.service.service.CustomerService;
import com.yd.csf.service.utils.ValidateUtil;
import com.yd.csf.service.vo.CustomerVO; import com.yd.csf.service.vo.CustomerVO;
import com.yd.csf.service.vo.FnaVO;
import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient; import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient;
import com.yd.csf.service.service.CustomerExpandService; import com.yd.csf.service.service.CustomerExpandService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
......
package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.result.Result;
import com.yd.csf.service.dto.PolicyQueryRequest;
import com.yd.csf.service.model.Policy;
import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.vo.PolicyVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
/**
* policy接口
*
* @author jianan
* @since 2025-09-20
*/
@RestController
@RequestMapping("/policy")
@Tag(name = "保单接口")
public class ApiPolicyController {
@Resource
private PolicyService policyService;
/**
* 创建保单
*
* @param customerAddRequest
* @param request
* @return
*/
// @Operation(summary = "创建保单")
// @PostMapping("/add")
// @Transactional(rollbackFor = Exception.class)
// public Result<Map<String, Object>> addCustomer(@RequestBody CustomerAddRequest customerAddRequest, HttpServletRequest request) {
// if (customerAddRequest == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// }
// return Result.success(PolicyService.addCustomer(customerAddRequest));
// }
/**
* 删除fna
*
* @param deleteRequest
* @param request
* @return
*/
// @PostMapping("/delete")
// public Result<Boolean> deleteFna(@RequestBody DeleteRequest deleteRequest, HttpServletRequest request) {
// if (deleteRequest == null || deleteRequest.getId() <= 0) {
// throw new BusinessException(ErrorCode.PARAMS_ERROR);
// }
// User user = userService.getLoginUser(request);
// long id = deleteRequest.getId();
// // 判断是否存在
// Customer oldFna = PolicyService.getById(id);
// ThrowUtils.throwIf(oldFna == null, ErrorCode.NOT_FOUND_ERROR);
// // 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(user.getId()) && !userService.isAdmin(request)) {
// throw new BusinessException(ErrorCode.NO_AUTH_ERROR);
// }
// // 操作数据库
// boolean result = PolicyService.removeById(id);
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
// return Result.success(true);
// }
/**
* 更新保单
*
* @param PolicyUpdateRequest
* @return
*/
// @PostMapping("/update")
// @Operation(summary = "更新保单信息")
// public Result<Boolean> updatePolicy(@RequestBody PolicyUpdateRequest PolicyUpdateRequest) {
// if (PolicyUpdateRequest == null || PolicyUpdateRequest.getPolicyBizId() == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// }
// return Result.success(PolicyService.updatePolicy(PolicyUpdateRequest));
// }
/**
* 根据 policyBizId 获取保单(封装类)
*
* @param policyBizId
* @return
*/
// @GetMapping("/get/vo")
// @Operation(summary = "根据 policyBizId 获取保单详情")
// public Result<PolicyVO> getPolicyByPolicyBizId(@RequestParam("policyBizId") String policyBizId, HttpServletRequest request) {
// if (policyBizId == null) {
// return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// }
// // 查询数据库
// Policy Policy = PolicyService.getByPolicyBizId(policyBizId);
// if (Policy == null) {
// return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
// }
//
// // 获取封装类
// return Result.success(PolicyService.getPolicyVO(Policy));
// }
/**
* 分页获取保单列表(VO)
*
* @param PolicyQueryRequest
* @param request
* @return
*/
@PostMapping("/list/page/vo")
@Operation(summary = "分页获取保单列表")
public Result<Page<PolicyVO>> listPolicyByPage(@RequestBody PolicyQueryRequest PolicyQueryRequest,
HttpServletRequest request) {
long current = PolicyQueryRequest.getPageNo();
long size = PolicyQueryRequest.getPageSize();
// 查询数据库
Page<Policy> policyPage = policyService.page(new Page<>(current, size),
policyService.getQueryWrapper(PolicyQueryRequest));
// 获取封装类
return Result.success(policyService.getPolicyVOPage(policyPage));
}
}
...@@ -49,13 +49,13 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable { ...@@ -49,13 +49,13 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
* 保险公司 * 保险公司
*/ */
@Schema(description = "保险公司") @Schema(description = "保险公司")
private String insurance; private String insurer;
/** /**
* 产品代码 * 产品名称
*/ */
@Schema(description = "产品代码") @Schema(description = "产品名称")
private String productCode; private String productName;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
package com.yd.csf.service.dto;
import com.yd.common.dto.PageDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class PolicyQueryRequest extends PageDto {
@Schema(description = "保单状态 生效中,保单失效,期满终止,已转出,退保,被拒保,取消申请 字典值:csf_policy_status")
private String status;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 客户名称
*/
@Schema(description = "客户名称")
private String customerName;
/**
* 客户编号
*/
@Schema(description = "客户编号")
private String customerBizId;
/**
* 保险公司
*/
@Schema(description = "保险公司")
private String insurer;
/**
* 产品名称
*/
@Schema(description = "产品名称")
private String productName;
@Schema(description = "缮发日期开始")
private String issueDateStart;
@Schema(description = "缮发日期结束")
private String issueDateEnd;
}
package com.yd.csf.service.service; package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.PolicyQueryRequest;
import com.yd.csf.service.model.Policy; import com.yd.csf.service.model.Policy;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.PolicyVO;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
...@@ -10,4 +15,7 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -10,4 +15,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface PolicyService extends IService<Policy> { public interface PolicyService extends IService<Policy> {
QueryWrapper<Policy> getQueryWrapper(PolicyQueryRequest policyQueryRequest);
Page<PolicyVO> getPolicyVOPage(Page<Policy> policyPage);
} }
...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.PolicyFollowQueryRequest; import com.yd.csf.service.dto.PolicyFollowQueryRequest;
import com.yd.csf.service.dto.PolicyFollowUpdateRequest; import com.yd.csf.service.dto.PolicyFollowUpdateRequest;
...@@ -21,7 +20,6 @@ import org.springframework.beans.BeanUtils; ...@@ -21,7 +20,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -53,15 +51,15 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -53,15 +51,15 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
String customerName = policyFollowQueryRequest.getCustomerName(); String customerName = policyFollowQueryRequest.getCustomerName();
String customerBizId = policyFollowQueryRequest.getCustomerBizId(); String customerBizId = policyFollowQueryRequest.getCustomerBizId();
String status = policyFollowQueryRequest.getStatus(); String status = policyFollowQueryRequest.getStatus();
String insurance = policyFollowQueryRequest.getInsurance(); String insurer = policyFollowQueryRequest.getInsurer();
String productCode = policyFollowQueryRequest.getProductCode(); String productName = policyFollowQueryRequest.getProductName();
queryWrapper.eq(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo); queryWrapper.eq(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo);
queryWrapper.eq(ObjectUtils.isNotEmpty(customerName), "customer_name", customerName); queryWrapper.eq(ObjectUtils.isNotEmpty(customerName), "customer_name", customerName);
queryWrapper.eq(ObjectUtils.isNotEmpty(customerBizId), "customer_biz_id", customerBizId); queryWrapper.eq(ObjectUtils.isNotEmpty(customerBizId), "customer_biz_id", customerBizId);
queryWrapper.eq(ObjectUtils.isNotEmpty(status), "status", status); queryWrapper.eq(ObjectUtils.isNotEmpty(status), "status", status);
queryWrapper.eq(ObjectUtils.isNotEmpty(insurance), "insurance", insurance); queryWrapper.eq(ObjectUtils.isNotEmpty(insurer), "insurance", insurer);
queryWrapper.eq(ObjectUtils.isNotEmpty(productCode), "product_code", productCode); queryWrapper.eq(ObjectUtils.isNotEmpty(productName), "product_code", productName);
// 排序 // 排序
queryWrapper.orderByDesc("id"); queryWrapper.orderByDesc("id");
......
package com.yd.csf.service.service.impl; package com.yd.csf.service.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.csf.service.dto.PolicyQueryRequest;
import com.yd.csf.service.model.Policy; import com.yd.csf.service.model.Policy;
import com.yd.csf.service.service.PolicyService; import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.dao.PolicyMapper; import com.yd.csf.service.dao.PolicyMapper;
import com.yd.csf.service.vo.PolicyVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* @author Zhang Jianan * @author Zhang Jianan
* @description 针对表【policy(保单表)】的数据库操作Service实现 * @description 针对表【policy(保单表)】的数据库操作Service实现
...@@ -15,8 +27,55 @@ import org.springframework.stereotype.Service; ...@@ -15,8 +27,55 @@ import org.springframework.stereotype.Service;
public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy> public class PolicyServiceImpl extends ServiceImpl<PolicyMapper, Policy>
implements PolicyService{ implements PolicyService{
@Override
public QueryWrapper<Policy> getQueryWrapper(PolicyQueryRequest policyQueryRequest) {
QueryWrapper<Policy> queryWrapper = new QueryWrapper<>();
if (policyQueryRequest == null) {
return queryWrapper;
}
String status = policyQueryRequest.getStatus();
String policyNo = policyQueryRequest.getPolicyNo();
String customerName = policyQueryRequest.getCustomerName();
String customerBizId = policyQueryRequest.getCustomerBizId();
String insurer = policyQueryRequest.getInsurer();
String productName = policyQueryRequest.getProductName();
String issueDateStart = policyQueryRequest.getIssueDateStart();
String issueDateEnd = policyQueryRequest.getIssueDateEnd();
queryWrapper.eq(StringUtils.isNotBlank(status), "status", status);
queryWrapper.eq(StringUtils.isNotBlank(policyNo), "policy_no", policyNo);
queryWrapper.eq(StringUtils.isNotBlank(customerName), "customer_name", customerName);
queryWrapper.eq(StringUtils.isNotBlank(customerBizId), "customer_biz_id", customerBizId);
queryWrapper.eq(StringUtils.isNotBlank(insurer), "insurer", insurer);
queryWrapper.eq(StringUtils.isNotBlank(productName), "product_name", productName);
queryWrapper.ge(StringUtils.isNotBlank(issueDateStart), "issue_date", issueDateStart);
queryWrapper.le(StringUtils.isNotBlank(issueDateEnd), "issue_date", issueDateEnd);
// 默认排序
queryWrapper.orderByDesc("id");
return queryWrapper;
}
@Override
public Page<PolicyVO> getPolicyVOPage(Page<Policy> policyPage) {
List<Policy> policyList = policyPage.getRecords();
Page<PolicyVO> policyVOPage = new Page<>(policyPage.getCurrent(), policyPage.getSize(), policyPage.getTotal());
if (CollUtil.isEmpty(policyList)) {
return policyVOPage;
}
// 填充信息
List<PolicyVO> policyVOList = policyList.stream().map(policy -> {
PolicyVO policyVO = PolicyVO.objToVo(policy);
return policyVO;
}).collect(Collectors.toList());
policyVOPage.setRecords(policyVOList);
return policyVOPage;
}
} }
package com.yd.csf.service.vo;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.model.Policy;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class PolicyVO {
/**
* 保单业务ID
*/
@Schema(description = "保单业务ID")
private String policyBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 用户业务id
*/
@Schema(description = "用户业务id")
private String userBizId;
/**
* 产品代码
*/
@Schema(description = "产品代码")
private String productCode;
/**
* 产品名称
*/
@Schema(description = "产品名称")
private String productName;
/**
* 产品险种
*/
@Schema(description = "产品险种")
private String productCate;
/**
* 保险公司
*/
@Schema(description = "保险公司")
private String insurer;
/**
* 保险公司业务id
*/
@Schema(description = "保险公司业务id")
private String insurerBizId;
/**
* 保單持有人
*/
@Schema(description = "保單持有人")
private String policyHolder;
/**
* 受保人
*/
@Schema(description = "受保人")
private String insured;
/**
* 供款年期
*/
@Schema(description = "供款年期")
private Integer paymentTerm;
/**
* 期交保费
*/
@Schema(description = "期交保费")
private BigDecimal paymentPremium;
/**
* 保单状态
*/
@Schema(description = "保单状态 生效中,保单失效,期满终止,已转出,退保,被拒保,取消申请 字典值:csf_policy_status")
private String status;
/**
* 保单币种
*/
@Schema(description = "保单币种")
private String currency;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema(description = "首期保费(不含徽费,预缴保费)")
private Integer initialPremium;
/**
* 签单日期
*/
@Schema(description = "签单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date signDate;
/**
* 缮发日期
*/
@Schema(description = "缮发日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date issueDate;
/**
* 生效日期
*/
@Schema(description = "生效日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date effectiveDate;
/**
* 续保日期
*/
@Schema(description = "续保日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date renewalDate;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema(description = "是否预缴: 0-否, 1-是")
private Integer isPrepaid;
/**
* 预缴年期
*/
@Schema(description = "预缴年期")
private Integer prepaidTerm;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 通用备注
*/
@Schema(description = "通用备注")
private String remark;
/**
* 对象转包装类
*
* @param policy
* @return
*/
public static PolicyVO objToVo(Policy policy) {
if (policy == null) {
return null;
}
PolicyVO policyVO = new PolicyVO();
BeanUtils.copyProperties(policy, policyVO);
return policyVO;
}
}
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