Commit 3221e6a3 by jianan

来佣接口18

parent 5d63093d
......@@ -8,9 +8,7 @@ import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.csf.api.dto.CommissionExcelDTO;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.CommissionQueryRequest;
import com.yd.csf.service.dto.CommissionUpdateRequest;
import com.yd.csf.service.dto.GenerateFortuneRequest;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.CommissionExpectedStatusEnum;
import com.yd.csf.service.enums.CommissionStatusEnum;
import com.yd.csf.service.model.Commission;
......@@ -21,6 +19,7 @@ import com.yd.csf.service.vo.CommissionVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.transaction.annotation.Transactional;
......@@ -33,6 +32,7 @@ import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -161,42 +161,49 @@ public class ApiCommissionController {
* @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(policyFollowService.addCustomer(customerAddRequest));
// }
@Operation(summary = "创建保单来佣")
@PostMapping("/add")
public Result<Map<String, Object>> addCommission(@RequestBody CommissionAddRequest customerAddRequest, HttpServletRequest request) {
if (customerAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(commissionService.addCommission(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 = policyFollowService.getById(id);
// ThrowUtils.throwIf(oldFna == null, ErrorCode.NOT_FOUND_ERROR);
// // 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(user.getId()) && !userService.isAdmin(request)) {
@PostMapping("/delete")
public Result<Boolean> deleteCommission(@RequestBody CommissionDeleteRequest deleteRequest, HttpServletRequest request) {
if (StringUtils.isBlank(deleteRequest.getCommissionBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
String commissionBizId = deleteRequest.getCommissionBizId();
// 获取当前登录用户的ID
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
String loginUserId = currentLoginUser.getId().toString();
// 判断是否存在
Commission oldCommission = commissionService.getByCommissionBizId(commissionBizId);
if (oldCommission == null) {
return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
}
// 仅本人或管理员可删除
// if (!oldCommission.getUserId().equals(loginUserId) && !userService.isAdmin(request)) {
// throw new BusinessException(ErrorCode.NO_AUTH_ERROR);
// }
// // 操作数据库
// boolean result = policyFollowService.removeById(id);
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
// return Result.success(true);
// }
// 操作数据库
boolean result = commissionService.removeById(oldCommission.getId());
if (!result) {
return Result.fail(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
return Result.success(result);
}
/**
* 更新保单来佣
......
......@@ -184,31 +184,92 @@ public class ApiFortuneController {
}
/**
* 删除fna
* 创建出账
*
* @param fortuneAccountAddRequest
* @param request
* @return
*/
@Operation(summary = "创建出账")
@PostMapping("/add/fortuneAccount")
public Result<Map<String, Object>> addFortuneAccount(@RequestBody FortuneAccountAddRequest fortuneAccountAddRequest, HttpServletRequest request) {
if (fortuneAccountAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(fortuneAccountService.addFortuneAccount(fortuneAccountAddRequest));
}
/**
* 删除出账
*
* @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);
@PostMapping("/delete/fortuneAccount")
@Operation(summary = "删除出账")
public Result<Boolean> deleteFortuneAccount(@RequestBody FortuneAccountDeleteRequest deleteRequest, HttpServletRequest request) {
if (StringUtils.isBlank(deleteRequest.getFortuneAccountBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
String fortuneAccountBizId = deleteRequest.getFortuneAccountBizId();
// 获取当前登录用户的ID
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
String loginUserId = currentLoginUser.getId().toString();
// 判断是否存在
FortuneAccount oldFortuneAccount = fortuneAccountService.getByFortuneAccountBizId(fortuneAccountBizId);
if (oldFortuneAccount == null) {
return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
}
// 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(loginUserId) && !userService.isAdmin(request)) {
// return Result.fail(ErrorCode.NO_AUTH_ERROR.getCode(), ErrorCode.NO_AUTH_ERROR.getMessage());
// }
// User user = userService.getLoginUser(request);
// long id = deleteRequest.getId();
// // 判断是否存在
// Customer oldFna = policyFollowService.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 = fortuneService.removeById(oldFortuneAccount);
if (!result) {
return Result.fail(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
return Result.success(result);
}
/**
* 删除发佣
*
* @param deleteRequest
* @param request
* @return
*/
@PostMapping("/delete")
@Operation(summary = "删除发佣")
public Result<Boolean> deleteFortune(@RequestBody FortuneDeleteRequest deleteRequest, HttpServletRequest request) {
if (StringUtils.isBlank(deleteRequest.getFortuneBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
String fortuneBizId = deleteRequest.getFortuneBizId();
// 获取当前登录用户的ID
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
String loginUserId = currentLoginUser.getId().toString();
// 判断是否存在
Fortune oldFortune = fortuneService.getByFortuneBizId(fortuneBizId);
if (oldFortune == null) {
return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
}
// 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(loginUserId) && !userService.isAdmin(request)) {
// return Result.fail(ErrorCode.NO_AUTH_ERROR.getCode(), ErrorCode.NO_AUTH_ERROR.getMessage());
// }
// // 操作数据库
// boolean result = policyFollowService.removeById(id);
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
// return Result.success(true);
// }
// 操作数据库
boolean result = fortuneService.removeById(oldFortune);
if (!result) {
return Result.fail(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
return Result.success(result);
}
/**
* 更新保单发佣
......
......@@ -16,6 +16,8 @@ import com.yd.csf.api.dto.PolicyExcelDTO;
import com.yd.csf.api.dto.PolicyFollowDTO;
import com.yd.csf.api.listener.PolicyDataListener;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.PolicyFollowAddRequest;
import com.yd.csf.service.dto.PolicyFollowDeleteRequest;
import com.yd.csf.service.dto.PolicyFollowQueryRequest;
import com.yd.csf.service.dto.PolicyFollowUpdateRequest;
import com.yd.csf.service.model.*;
......@@ -239,46 +241,54 @@ public class ApiPolicyFollowController {
/**
* 创建新单跟进
*
* @param customerAddRequest
* @param policyFollowAddRequest
* @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(policyFollowService.addCustomer(customerAddRequest));
// }
@Operation(summary = "创建新单跟进")
@PostMapping("/add")
public Result<Map<String, Object>> addPolicyFollow(@RequestBody PolicyFollowAddRequest policyFollowAddRequest, HttpServletRequest request) {
if (policyFollowAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(policyFollowService.addPolicyFollow(policyFollowAddRequest));
}
/**
* 删除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 = policyFollowService.getById(id);
// ThrowUtils.throwIf(oldFna == null, ErrorCode.NOT_FOUND_ERROR);
// // 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(user.getId()) && !userService.isAdmin(request)) {
@Operation(summary = "删除新单跟进")
@PostMapping("/delete")
public Result<Boolean> deletePolicyFollow(@RequestBody PolicyFollowDeleteRequest deleteRequest, HttpServletRequest request) {
if (StringUtils.isBlank(deleteRequest.getPolicyBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
String policyBizId = deleteRequest.getPolicyBizId();
// 获取当前登录用户
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
String loginUserId = currentLoginUser.getId().toString();
// 判断是否存在
PolicyFollow oldFna = policyFollowService.getByPolicyBizId(policyBizId);
if (oldFna == null) {
return Result.fail(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
}
// 仅本人或管理员可删除
// if (!oldFna.getUserId().equals(loginUserId) && !userService.isAdmin(request)) {
// throw new BusinessException(ErrorCode.NO_AUTH_ERROR);
// }
// // 操作数据库
// boolean result = policyFollowService.removeById(id);
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
// return Result.success(true);
// }
// 操作数据库
boolean result = policyFollowService.removeById(oldFna.getId());
if (!result) {
return Result.fail(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
return Result.success(result);
}
/**
* 更新新单跟进
......
......@@ -14,7 +14,7 @@ import java.util.Date;
@Data
public class FortuneImportDTO {
@ExcelProperty("发佣数据业务Id")
@ExcelProperty("发佣数据业务id")
private String fortuneBizId;
@ExcelProperty("保单号")
......
......@@ -17,6 +17,12 @@ public class PolicyDataListener extends AnalysisEventListener<PolicyExcelDTO> {
@Override
public void invoke(PolicyExcelDTO policy, AnalysisContext context) {
// 校验保单数据是否完整
if (policy.getPolicyNo() == null) {
log.warn("第 {} 行数据校验失败,保单数据不完整", context.readRowHolder().getRowIndex());
return;
}
list.add(policy);
}
......
package com.yd.csf.service.dto;
import lombok.Data;
@Data
public class CommissionAddRequest {
// TODO 入参格式
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class CommissionDeleteRequest implements Serializable {
/**
* 来佣业务ID
*/
@Schema(description = "来佣业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String commissionBizId;
private static final long serialVersionUID = 1L;
}
package com.yd.csf.service.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class FortuneAccountAddRequest implements Serializable {
/**
* 转介人
*/
@Schema(description = "转介人", requiredMode = Schema.RequiredMode.REQUIRED)
private String broker;
/**
* 所属团队
*/
@Schema(description = "所属团队", requiredMode = Schema.RequiredMode.REQUIRED)
private String team;
/**
* 出账币种
*/
@Schema(description = "出账币种", requiredMode = Schema.RequiredMode.REQUIRED)
private String currency;
/**
* 出账总额
*/
@Schema(description = "出账总额", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal amount;
/**
* 出账状态 0-可出账、1-待出账、2-已出账
*/
@Schema(description = "出账状态 0-可出账、1-待出账、2-已出账", requiredMode = Schema.RequiredMode.REQUIRED)
private String status;
/**
* 出账日期
*/
@Schema(description = "出账日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "2025-09-19", format = "date")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date fortuneAccountDate;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
private static final long serialVersionUID = 1L;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class FortuneAccountDeleteRequest implements Serializable {
/**
* 出账业务ID
*/
@Schema(description = "出账业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String fortuneAccountBizId;
private static final long serialVersionUID = 1L;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class FortuneDeleteRequest implements Serializable {
/**
* 发佣业务ID
*/
@Schema(description = "发佣业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String fortuneBizId;
private static final long serialVersionUID = 1L;
}
package com.yd.csf.service.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.csf.service.model.PolicyBroker;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class PolicyFollowAddRequest implements Serializable {
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 签单日期
*/
@Schema(description = "签单日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date signDate;
/**
* 签单人
*/
@Schema(description = "签单人")
private String signer;
/**
* 供款年期
*/
@Schema(description = "供款年期")
private Integer paymentTerm;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema(description = "是否预缴: 0-否, 1-是")
private Integer isPrepaid;
/**
* 预缴年期
*/
@Schema(description = "预缴年期")
private Integer prepaidTerm;
/**
* 产品名称
*/
@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 reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 新单跟进状态
*/
@Schema(description = "新单跟进状态 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消', 字典值: policy_follow_status")
private String status;
/**
* 保單持有人
*/
@Schema(description = "保單持有人")
private String policyHolder;
/**
* 受保人
*/
@Schema(description = "受保人")
private String insured;
/**
* 币种
*/
@Schema(description = "币种")
private String currency;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema(description = "首期保费(不含徽费,预缴保费)")
private Object initialPremium;
/**
* 转介人
*/
@Schema(description = "转介人")
private List<PolicyBroker> brokerList;
private static final long serialVersionUID = 1L;
}
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class PolicyFollowDeleteRequest implements Serializable {
/**
* 新单跟进bizId
*/
@Schema(description = "新单跟进bizId", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
private static final long serialVersionUID = 1L;
}
package com.yd.csf.service.enums;
/**
* 新单跟进状态枚举 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消'
*/
public enum PolicyFollowStatusEnum {
CHECKING("审核中", "CHECKING"),
UNDERWRITING("承保中", "UNDERWRITING"),
FINISHED("已完成", "FINISHED"),
DECLINED("已拒绝", "DECLINED"),
CANCELLED("已取消", "CANCELLED"),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
private String itemValue;
//构造函数
PolicyFollowStatusEnum(String itemLabel, String itemValue) {
this.itemLabel = itemLabel;
this.itemValue = itemValue;
}
public String getItemLabel() {
return itemLabel;
}
public String getItemValue() {
return itemValue;
}
}
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 com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -90,6 +88,7 @@ public class Commission implements Serializable {
/**
* 删除标识: 0-正常, 1-删除
*/
@TableLogic
private Integer isDeleted;
/**
......
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 com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -145,6 +143,7 @@ public class Fortune implements Serializable {
/**
* 删除标识: 0-正常, 1-删除
*/
@TableLogic
private Integer isDeleted;
/**
......
......@@ -48,7 +48,7 @@ public class Policy implements Serializable {
private String productName;
/**
* 产品险种
* 产品类别
*/
private String productCate;
......
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 com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
......@@ -73,10 +73,25 @@ public class PolicyFollow implements Serializable {
private BigDecimal paymentPremium;
/**
* 是否预缴: 0-否, 1-是
*/
private Integer isPrepaid;
/**
* 预缴年期
*/
private Integer prepaidTerm;
/**
* 产品名称
*/
private String productName;
/**
* 产品类别
*/
private String productCate;
/**
* 保险公司
*/
......@@ -130,6 +145,7 @@ public class PolicyFollow implements Serializable {
/**
* 删除标识: 0-正常, 1-删除
*/
@TableLogic
private Integer isDeleted;
/**
......
......@@ -3,6 +3,7 @@ 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.CommissionAddRequest;
import com.yd.csf.service.dto.CommissionQueryRequest;
import com.yd.csf.service.dto.CommissionUpdateRequest;
import com.yd.csf.service.dto.GenerateFortuneRequest;
......@@ -10,6 +11,8 @@ import com.yd.csf.service.model.Commission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.CommissionVO;
import java.util.Map;
/**
* @author Zhang Jianan
* @description 针对表【commission(保单来佣表)】的数据库操作Service
......@@ -24,4 +27,8 @@ public interface CommissionService extends IService<Commission> {
Boolean updateCommission(CommissionUpdateRequest commissionUpdateRequest);
Boolean generateFortune(GenerateFortuneRequest generateFortuneRequest);
Map<String, Object> addCommission(CommissionAddRequest commissionAddRequest);
Commission getByCommissionBizId(String commissionBizId);
}
......@@ -2,6 +2,7 @@ package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.FortuneAccountAddRequest;
import com.yd.csf.service.dto.FortuneAccountExportDTO;
import com.yd.csf.service.dto.FortuneAccountQueryRequest;
import com.yd.csf.service.model.FortuneAccount;
......@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.FortuneAccountVO;
import java.util.List;
import java.util.Map;
/**
* @author Zhang Jianan
......@@ -22,4 +24,8 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
Page<FortuneAccountVO> getFortuneAccountVOPage(Page<FortuneAccount> fortunePage);
void saveFortuneAccount(List<FortuneAccountExportDTO> accountExportDTOList);
FortuneAccount getByFortuneAccountBizId(String fortuneAccountBizId);
Map<String, Object> addFortuneAccount(FortuneAccountAddRequest fortuneAccountAddRequest);
}
......@@ -32,4 +32,6 @@ public interface FortuneService extends IService<Fortune> {
void downloadAccount(FortuneDownloadRequest fortuneDownloadRequest, HttpServletResponse response) throws UnsupportedEncodingException;
Boolean updateFortuneStatus(FortuneStatusUpdateRequest fortuneStatusUpdateRequest);
Fortune getByFortuneBizId(String fortuneBizId);
}
......@@ -3,11 +3,14 @@ package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.dto.PolicyFollowAddRequest;
import com.yd.csf.service.dto.PolicyFollowQueryRequest;
import com.yd.csf.service.dto.PolicyFollowUpdateRequest;
import com.yd.csf.service.model.PolicyFollow;
import com.yd.csf.service.vo.PolicyFollowVO;
import java.util.Map;
/**
* @author Zhang Jianan
* @description 针对表【policy_follow(新单跟进表)】的数据库操作Service
......@@ -24,4 +27,6 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Boolean updatePolicyFollow(PolicyFollowUpdateRequest policyFollowUpdateRequest);
PolicyFollowVO getPolicyFollowVO(PolicyFollow policyFollow);
Map<String, Object> addPolicyFollow(PolicyFollowAddRequest policyFollowAddRequest);
}
......@@ -10,6 +10,7 @@ import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.dto.CommissionAddRequest;
import com.yd.csf.service.dto.CommissionQueryRequest;
import com.yd.csf.service.dto.CommissionUpdateRequest;
import com.yd.csf.service.dto.GenerateFortuneRequest;
......@@ -170,6 +171,25 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
return true;
}
@Override
public Map<String, Object> addCommission(CommissionAddRequest commissionAddRequest) {
Commission commission = new Commission();
BeanUtils.copyProperties(commissionAddRequest, commission);
// 生成新单编号
String commissionBizId = RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode());
commission.setCommissionBizId(commissionBizId);
// 保存来佣记录
this.save(commission);
// 返回新单跟进唯一业务ID
return Collections.singletonMap("commissionBizId", commissionBizId);
}
@Override
public Commission getByCommissionBizId(String commissionBizId) {
return this.getOne(new QueryWrapper<Commission>().eq("commission_biz_id", commissionBizId));
}
}
......
......@@ -9,6 +9,7 @@ import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.dto.FortuneAccountAddRequest;
import com.yd.csf.service.dto.FortuneAccountExportDTO;
import com.yd.csf.service.dto.FortuneAccountQueryRequest;
import com.yd.csf.service.enums.FortuneAccountStatusEnum;
......@@ -113,6 +114,35 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
this.saveBatch(fortuneAccountList);
}
@Override
public FortuneAccount getByFortuneAccountBizId(String fortuneAccountBizId) {
return this.getOne(new QueryWrapper<FortuneAccount>().eq("fortune_account_biz_id", fortuneAccountBizId));
}
@Override
public Map<String, Object> addFortuneAccount(FortuneAccountAddRequest fortuneAccountAddRequest) {
// 当前登录用户
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
Long loginUserId = currentLoginUser.getId();
FortuneAccount fortuneAccount = new FortuneAccount();
fortuneAccount.setFortuneAccountBizId(RandomStringGenerator.generateBizId16("fortune_account"));
fortuneAccount.setBroker(fortuneAccountAddRequest.getBroker());
fortuneAccount.setTeam(fortuneAccountAddRequest.getTeam());
fortuneAccount.setCurrency(fortuneAccountAddRequest.getCurrency());
fortuneAccount.setAmount(fortuneAccountAddRequest.getAmount());
fortuneAccount.setFortuneAccountDate(fortuneAccountAddRequest.getFortuneAccountDate());
fortuneAccount.setStatus(fortuneAccountAddRequest.getStatus());
fortuneAccount.setRemark(fortuneAccountAddRequest.getRemark());
fortuneAccount.setCreatorId(loginUserId.toString());
fortuneAccount.setUpdaterId(loginUserId.toString());
fortuneAccount.setCreateTime(new Date());
fortuneAccount.setUpdateTime(new Date());
this.save(fortuneAccount);
return Collections.singletonMap("fortuneAccountBizId", fortuneAccount.getFortuneAccountBizId());
}
}
......
......@@ -116,7 +116,7 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
// 导出
try {
EasyExcel.write(response.getOutputStream(), FortuneExportDTO.class).sheet("保单发佣").doWrite(exportDTOList);
EasyExcel.write(response.getOutputStream(), FortuneExportDTO.class).sheet("发佣").doWrite(exportDTOList);
} catch (IOException e) {
log.error("导出保单发佣数据失败", e);
throw new BusinessException(ResultCode.FAIL.getCode(), "导出失败");
......@@ -253,6 +253,11 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return this.updateBatchById(updateList);
}
@Override
public Fortune getByFortuneBizId(String fortuneBizId) {
return this.getOne(new QueryWrapper<Fortune>().eq("fortune_biz_id", fortuneBizId));
}
}
......
......@@ -5,21 +5,28 @@ 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;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.PolicyFollowAddRequest;
import com.yd.csf.service.dto.PolicyFollowQueryRequest;
import com.yd.csf.service.dto.PolicyFollowUpdateRequest;
import com.yd.csf.service.model.Policy;
import com.yd.csf.service.model.PolicyBroker;
import com.yd.csf.service.model.PolicyFollow;
import com.yd.csf.service.service.PolicyBrokerService;
import com.yd.csf.service.service.PolicyFollowService;
import com.yd.csf.service.dao.PolicyFollowMapper;
import com.yd.csf.service.service.PolicyService;
import com.yd.csf.service.vo.PolicyFollowVO;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -36,10 +43,12 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Resource
private PolicyBrokerService policyBrokerService;
@Resource
private PolicyService policyService;
@Override
public PolicyFollow getByPolicyBizId(String policyBizId) {
return baseMapper.selectOne(new LambdaQueryWrapper<PolicyFollow>().eq(PolicyFollow::getPolicyBizId, policyBizId));
return this.getOne(new QueryWrapper<PolicyFollow>().eq("policy_biz_id", policyBizId));
}
@Override
......@@ -128,6 +137,34 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return policyFollowVO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> addPolicyFollow(PolicyFollowAddRequest policyFollowAddRequest) {
PolicyFollow policyFollow = new PolicyFollow();
BeanUtils.copyProperties(policyFollowAddRequest, policyFollow);
// 生成新单编号
String policyBizId = RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_POLICY.getCode());
policyFollow.setPolicyBizId(policyBizId);
// 创建 Policy对象
Policy policy = new Policy();
BeanUtils.copyProperties(policyFollowAddRequest, policy);
policy.setPolicyBizId(policyBizId);
// 保存转介人
List<PolicyBroker> policyBrokerList = policyFollowAddRequest.getBrokerList();
if (CollUtil.isNotEmpty(policyBrokerList)) {
policyBrokerList.forEach(policyBroker -> {
policyBroker.setPolicyBizId(policyBizId);
});
}
this.save(policyFollow);
policyService.save(policy);
policyBrokerService.saveBatch(policyBrokerList);
// 返回新单跟进唯一业务ID
return Collections.singletonMap("policyBizId", policyBizId);
}
}
......
......@@ -43,9 +43,9 @@ public class PolicyVO {
private String productName;
/**
* 产品险种
* 产品类别
*/
@Schema(description = "产品险种")
@Schema(description = "产品类别")
private String productCate;
/**
......
......@@ -17,7 +17,10 @@
<result property="renewalDate" column="renewal_date" />
<result property="paymentTerm" column="payment_term" />
<result property="paymentPremium" column="payment_premium" />
<result property="isPrepaid" column="is_prepaid" />
<result property="prepaidTerm" column="prepaid_term" />
<result property="productName" column="product_name" />
<result property="productCate" column="product_cate" />
<result property="insurer" column="insurer" />
<result property="insurerBizId" column="insurer_biz_id" />
<result property="reconciliationCompany" column="reconciliation_company" />
......@@ -37,7 +40,7 @@
<sql id="Base_Column_List">
id,policy_biz_id,policy_no,user_biz_id,customer_biz_id,customer_name,sign_date,signer,
effective_date,renewal_date,payment_term,payment_premium,product_name,
effective_date,renewal_date,payment_term,payment_premium,is_prepaid,prepaid_term,product_name,product_cate,
insurer,insurer_biz_id,reconciliation_company,reconciliation_company_biz_id,status,
policy_holder,insured,currency,initial_premium,remark,
is_deleted,creator_id,updater_id,create_time,update_time
......
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