Commit d315e2fe by zhangxingmin

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

parents 1acae9ba 157eba48
...@@ -4,7 +4,6 @@ import com.alibaba.excel.EasyExcel; ...@@ -4,7 +4,6 @@ import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil; import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.csf.api.dto.CommissionExcelDTO; import com.yd.csf.api.dto.CommissionExcelDTO;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
...@@ -29,10 +28,8 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -29,10 +28,8 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -163,7 +160,7 @@ public class ApiCommissionController { ...@@ -163,7 +160,7 @@ public class ApiCommissionController {
*/ */
@Operation(summary = "创建保单来佣") @Operation(summary = "创建保单来佣")
@PostMapping("/add") @PostMapping("/add")
public Result<Map<String, Object>> addCommission(@RequestBody CommissionAddRequest customerAddRequest, HttpServletRequest request) { public Result<Boolean> addCommission(@RequestBody CommissionAddRequest customerAddRequest, HttpServletRequest request) {
if (customerAddRequest == null) { if (customerAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage()); return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
} }
......
...@@ -128,7 +128,21 @@ public class ApiFortuneController { ...@@ -128,7 +128,21 @@ public class ApiFortuneController {
} }
} }
/**
* 创建发佣
*
* @param fortuneAddRequest
* @param request
* @return
*/
@Operation(summary = "创建发佣")
@PostMapping("/add")
public Result<Boolean> addFortune(@RequestBody FortuneAddRequest fortuneAddRequest, HttpServletRequest request) {
if (fortuneAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(fortuneService.addFortune(fortuneAddRequest));
}
/** /**
* 下载选中的发佣数据 * 下载选中的发佣数据
...@@ -236,6 +250,21 @@ public class ApiFortuneController { ...@@ -236,6 +250,21 @@ public class ApiFortuneController {
} }
/** /**
* 修改出账信息
*
* @param fortuneUpdateRequest
* @return
*/
@PostMapping("/update/fortuneAccount")
@Operation(summary = "修改出账信息")
public Result<Boolean> updateFortuneAccount(@RequestBody FortuneAccountUpdateRequest fortuneUpdateRequest) {
if (StringUtils.isBlank(fortuneUpdateRequest.getFortuneAccountBizId())) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "出账数据业务ID不能为空");
}
return Result.success(fortuneAccountService.updateFortuneAccount(fortuneUpdateRequest));
}
/**
* 删除发佣 * 删除发佣
* *
* @param deleteRequest * @param deleteRequest
...@@ -287,7 +316,7 @@ public class ApiFortuneController { ...@@ -287,7 +316,7 @@ public class ApiFortuneController {
} }
/** /**
* 修改状态 * 修改发佣状态
* *
* @param fortuneStatusUpdateRequest * @param fortuneStatusUpdateRequest
* @return * @return
......
...@@ -60,7 +60,7 @@ public class FortuneImportDTO { ...@@ -60,7 +60,7 @@ public class FortuneImportDTO {
entity.setBroker(data.getBroker()); entity.setBroker(data.getBroker());
entity.setTeam(data.getTeam()); entity.setTeam(data.getTeam());
entity.setRemark(data.getRemark()); entity.setRemark(data.getRemark());
entity.setStatus(FortuneStatusEnum.IN_PROCESS.getItemValue()); entity.setStatus(FortuneStatusEnum.WAIT.getItemValue());
entity.setCreatorId(loginUserId); entity.setCreatorId(loginUserId);
entity.setUpdaterId(loginUserId); entity.setUpdaterId(loginUserId);
entity.setCreateTime(new Date()); entity.setCreateTime(new Date());
......
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 CommissionAddDto implements Serializable {
/**
* 来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema(description = "来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)", requiredMode = Schema.RequiredMode.REQUIRED)
private String commissionName;
/**
* 来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema(description = "来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)")
private String commissionType;
/**
* 来佣金额
*/
@Schema(description = "来佣金额", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal amount;
/**
* 来佣币种
*/
@Schema(description = "来佣币种", requiredMode = Schema.RequiredMode.REQUIRED)
private String currency;
/**
* 来佣日期
*/
@Schema(description = "来佣日期", requiredMode = Schema.RequiredMode.REQUIRED, format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date commissionDate;
private static final long serialVersionUID = 1L;
}
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data @Data
public class CommissionAddRequest { public class CommissionAddRequest implements Serializable {
// TODO 入参格式 /**
* 保单号
*/
@Schema(description = "保单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyNo;
/**
* 对账公司
*/
@Schema(description = "对账公司", requiredMode = Schema.RequiredMode.REQUIRED)
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema(description = "佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer commissionPeriod;
/**
* 佣金列表
*/
@Schema(description = "佣金列表", requiredMode = Schema.RequiredMode.REQUIRED)
private List<CommissionAddDto> commissionAddDtoList;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
private static final long serialVersionUID = 1L;
} }
...@@ -3,17 +3,36 @@ package com.yd.csf.service.dto; ...@@ -3,17 +3,36 @@ package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Data @Data
public class CommissionUpdateRequest { public class CommissionUpdateRequest implements Serializable {
/** /**
* 保单来佣业务id * 保单来佣业务id
*/ */
@Schema(description = "保单来佣业务id", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "保单来佣业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String commissionBizId; private String commissionBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/** /**
* 来佣比对状态 * 来佣比对状态
*/ */
...@@ -21,6 +40,30 @@ public class CommissionUpdateRequest { ...@@ -21,6 +40,30 @@ public class CommissionUpdateRequest {
private String status; private String status;
/** /**
* 佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema(description = "佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)")
private Integer commissionPeriod;
/**
* 总来佣期数
*/
@Schema(description = "总来佣期数")
private Integer totalPeriod;
/**
* 来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema(description = "来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)")
private String commissionName;
/**
* 来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema(description = "来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)")
private String commissionType;
/**
* 来佣金额 * 来佣金额
*/ */
@Schema(description = "来佣金额") @Schema(description = "来佣金额")
...@@ -43,4 +86,6 @@ public class CommissionUpdateRequest { ...@@ -43,4 +86,6 @@ public class CommissionUpdateRequest {
*/ */
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
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 FortuneAccountUpdateRequest implements Serializable {
/**
* 出账数据业务ID
*/
@Schema(description = "出账数据业务ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String fortuneAccountBizId;
/**
* 经纪人
*/
@Schema(description = "经纪人")
private String broker;
/**
* 团队
*/
@Schema(description = "团队")
private String team;
/**
* 币种
*/
@Schema(description = "币种")
private String currency;
/**
* 金额
*/
@Schema(description = "金额")
private BigDecimal amount;
/**
* 出账日期
*/
@Schema(description = "出账日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
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;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class FortuneAddRequest implements Serializable {
/**
* 保单号
*/
@Schema(description = "保单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyNo;
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema(description = "发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer fortunePeriod;
/**
* 发佣总期数
*/
@Schema(description = "发佣总期数", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer fortuneTotalPeriod;
/**
* 转介人
*/
@Schema(description = "转介人", requiredMode = Schema.RequiredMode.REQUIRED)
private String broker;
/**
* 转介人业务ID
*/
@Schema(description = "转介人业务ID")
private String brokerBizId;
/**
* 所属团队
*/
@Schema(description = "所属团队", requiredMode = Schema.RequiredMode.REQUIRED)
private String team;
/**
* 所属团队业务ID
*/
@Schema(description = "所属团队业务ID")
private String teamBizId;
/**
* 发佣名称
*/
@Schema(description = "发佣名称", requiredMode = Schema.RequiredMode.REQUIRED)
private String fortuneName;
/**
* 发佣类型
*/
@Schema(description = "发佣类型")
private String fortuneType;
/**
* 发佣金额
*/
@Schema(description = "发佣金额", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal amount;
/**
* 发佣币种
*/
@Schema(description = "发佣币种", requiredMode = Schema.RequiredMode.REQUIRED)
private String currency;
/**
* 发佣日期
*/
@Schema(description = "发佣日期", requiredMode = Schema.RequiredMode.REQUIRED)
private Date payoutDate;
/**
* 发佣备注
*/
@Schema(description = "发佣备注")
private String remark;
private static final long serialVersionUID = 1L;
}
...@@ -16,6 +16,6 @@ public class FortuneStatusUpdateRequest { ...@@ -16,6 +16,6 @@ public class FortuneStatusUpdateRequest {
/** /**
* 发佣状态 * 发佣状态
*/ */
@Schema(description = "发佣状态 '0'-'暂不可发','1'-'可发放','2'-'已发并关账', 字典值: csf_fortune_status") @Schema(description = "发佣状态 '0'-'待出账','1'-'可出账','2'-'已出账'")
private String status; private String status;
} }
...@@ -3,11 +3,12 @@ package com.yd.csf.service.dto; ...@@ -3,11 +3,12 @@ package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Data @Data
public class FortuneUpdateRequest { public class FortuneUpdateRequest implements Serializable {
/** /**
* 保单发佣业务id * 保单发佣业务id
*/ */
...@@ -15,6 +16,48 @@ public class FortuneUpdateRequest { ...@@ -15,6 +16,48 @@ public class FortuneUpdateRequest {
private String fortuneBizId; private String fortuneBizId;
/** /**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema(description = "发佣期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)")
private Integer fortunePeriod;
/**
* 发佣总期数
*/
@Schema(description = "发佣总期数")
private Integer fortuneTotalPeriod;
/**
* 转介人
*/
@Schema(description = "转介人")
private String broker;
/**
* 转介人业务ID
*/
@Schema(description = "转介人业务ID")
private String brokerBizId;
/**
* 所属团队
*/
@Schema(description = "所属团队")
private String team;
/**
* 所属团队业务ID
*/
@Schema(description = "所属团队业务ID")
private String teamBizId;
/**
* 发佣名称 * 发佣名称
*/ */
@Schema(description = "发佣名称") @Schema(description = "发佣名称")
...@@ -49,4 +92,6 @@ public class FortuneUpdateRequest { ...@@ -49,4 +92,6 @@ public class FortuneUpdateRequest {
*/ */
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
private static final long serialVersionUID = 1L;
} }
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data @Data
public class PolicyFollowUpdateRequest { public class PolicyFollowUpdateRequest {
...@@ -18,7 +22,6 @@ public class PolicyFollowUpdateRequest { ...@@ -18,7 +22,6 @@ public class PolicyFollowUpdateRequest {
@Schema(description = "新单状态 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消', 字典值: policy_follow_status") @Schema(description = "新单状态 'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消', 字典值: policy_follow_status")
private String status; private String status;
/** /**
* 客户名称 * 客户名称
*/ */
...@@ -30,4 +33,127 @@ public class PolicyFollowUpdateRequest { ...@@ -30,4 +33,127 @@ public class PolicyFollowUpdateRequest {
*/ */
@Schema(description = "客户编号") @Schema(description = "客户编号")
private String customerBizId; private String customerBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 签单日期
*/
@Schema(description = "签单日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date signDate;
/**
* 签单人
*/
@Schema(description = "签单人")
private String signer;
/**
* 生效日期
*/
@Schema(description = "生效日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date effectiveDate;
/**
* 续保日期
*/
@Schema(description = "续保日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date renewalDate;
/**
* 供款年期
*/
@Schema(description = "供款年期")
private Integer paymentTerm;
/**
* 期交保费
*/
@Schema(description = "期交保费")
private BigDecimal paymentPremium;
/**
* 是否预缴: 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 = "保單持有人")
private String policyHolder;
/**
* 受保人
*/
@Schema(description = "受保人")
private String insured;
/**
* 币种
*/
@Schema(description = "币种")
private String currency;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema(description = "首期保费(不含徽费,预缴保费)")
private Object initialPremium;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
} }
...@@ -6,6 +6,7 @@ package com.yd.csf.service.enums; ...@@ -6,6 +6,7 @@ package com.yd.csf.service.enums;
public enum CommissionStatusEnum { public enum CommissionStatusEnum {
//来佣比对状态枚举 //来佣比对状态枚举
WAIT("未比对","0"),
COMPARE_SUCCESS("比对成功","1"), COMPARE_SUCCESS("比对成功","1"),
COMPARE_FAIL("比对失败","2"), COMPARE_FAIL("比对失败","2"),
......
...@@ -6,9 +6,9 @@ package com.yd.csf.service.enums; ...@@ -6,9 +6,9 @@ package com.yd.csf.service.enums;
public enum FortuneStatusEnum { public enum FortuneStatusEnum {
//发佣状态枚举 //发佣状态枚举
IN_PROCESS("暂不可发","0"), WAIT("待出账", "0"),
CANSEND("可发放","1"), CAN_SEND("可出账", "1"),
SENT("已发并关账","2"), SENT("已出账", "2"),
; ;
//字典项标签(名称) //字典项标签(名称)
......
...@@ -91,7 +91,7 @@ public class Fortune implements Serializable { ...@@ -91,7 +91,7 @@ public class Fortune implements Serializable {
private String currency; private String currency;
/** /**
* 佣金发放状态 0=待发佣 1=已发并关 * 佣金发放状态 0=待出账 1=可出账 2=已出
*/ */
private String status; private String status;
......
...@@ -28,7 +28,7 @@ public interface CommissionService extends IService<Commission> { ...@@ -28,7 +28,7 @@ public interface CommissionService extends IService<Commission> {
Boolean generateFortune(GenerateFortuneRequest generateFortuneRequest); Boolean generateFortune(GenerateFortuneRequest generateFortuneRequest);
Map<String, Object> addCommission(CommissionAddRequest commissionAddRequest); Boolean addCommission(CommissionAddRequest commissionAddRequest);
Commission getByCommissionBizId(String commissionBizId); Commission getByCommissionBizId(String commissionBizId);
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.FortuneAccountAddRequest; import com.yd.csf.service.dto.FortuneAccountAddRequest;
import com.yd.csf.service.dto.FortuneAccountExportDTO; import com.yd.csf.service.dto.FortuneAccountExportDTO;
import com.yd.csf.service.dto.FortuneAccountQueryRequest; import com.yd.csf.service.dto.FortuneAccountQueryRequest;
import com.yd.csf.service.dto.FortuneAccountUpdateRequest;
import com.yd.csf.service.model.FortuneAccount; import com.yd.csf.service.model.FortuneAccount;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.FortuneAccountVO; import com.yd.csf.service.vo.FortuneAccountVO;
...@@ -28,4 +29,6 @@ public interface FortuneAccountService extends IService<FortuneAccount> { ...@@ -28,4 +29,6 @@ public interface FortuneAccountService extends IService<FortuneAccount> {
FortuneAccount getByFortuneAccountBizId(String fortuneAccountBizId); FortuneAccount getByFortuneAccountBizId(String fortuneAccountBizId);
Map<String, Object> addFortuneAccount(FortuneAccountAddRequest fortuneAccountAddRequest); Map<String, Object> addFortuneAccount(FortuneAccountAddRequest fortuneAccountAddRequest);
Boolean updateFortuneAccount(FortuneAccountUpdateRequest fortuneAccountUpdateRequest);
} }
...@@ -2,10 +2,7 @@ package com.yd.csf.service.service; ...@@ -2,10 +2,7 @@ package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.FortuneDownloadRequest; import com.yd.csf.service.dto.*;
import com.yd.csf.service.dto.FortuneQueryRequest;
import com.yd.csf.service.dto.FortuneStatusUpdateRequest;
import com.yd.csf.service.dto.FortuneUpdateRequest;
import com.yd.csf.service.model.Fortune; import com.yd.csf.service.model.Fortune;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.FortuneVO; import com.yd.csf.service.vo.FortuneVO;
...@@ -34,4 +31,6 @@ public interface FortuneService extends IService<Fortune> { ...@@ -34,4 +31,6 @@ public interface FortuneService extends IService<Fortune> {
Boolean updateFortuneStatus(FortuneStatusUpdateRequest fortuneStatusUpdateRequest); Boolean updateFortuneStatus(FortuneStatusUpdateRequest fortuneStatusUpdateRequest);
Fortune getByFortuneBizId(String fortuneBizId); Fortune getByFortuneBizId(String fortuneBizId);
Boolean addFortune(FortuneAddRequest fortuneAddRequest);
} }
...@@ -10,10 +10,7 @@ import com.yd.common.enums.CommonEnum; ...@@ -10,10 +10,7 @@ import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.dto.CommissionAddRequest; import com.yd.csf.service.dto.*;
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.enums.CommissionStatusEnum; import com.yd.csf.service.enums.CommissionStatusEnum;
import com.yd.csf.service.enums.FortuneStatusEnum; import com.yd.csf.service.enums.FortuneStatusEnum;
import com.yd.csf.service.model.*; import com.yd.csf.service.model.*;
...@@ -98,7 +95,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -98,7 +95,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if (commission == null) { if (commission == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "未找到该来佣记录"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "未找到该来佣记录");
} }
BeanUtils.copyProperties(commissionUpdateRequest, commission); BeanUtils.copyProperties(commissionUpdateRequest, commission, "id", "commissionBizId");
// 获取当前登录用户 // 获取当前登录用户
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser(); AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
String loginUserId = currentLoginUser.getId().toString(); String loginUserId = currentLoginUser.getId().toString();
...@@ -122,7 +119,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -122,7 +119,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 校验,如果有"可发放或已发并关账"的发佣记录,不能重复生成 // 校验,如果有"可发放或已发并关账"的发佣记录,不能重复生成
for (Fortune item : fortuneList) { for (Fortune item : fortuneList) {
if (StringUtils.equals(item.getStatus(), FortuneStatusEnum.CANSEND.getItemValue()) || if (StringUtils.equals(item.getStatus(), FortuneStatusEnum.CAN_SEND.getItemValue()) ||
StringUtils.equals(item.getStatus(), FortuneStatusEnum.SENT.getItemValue())) { StringUtils.equals(item.getStatus(), FortuneStatusEnum.SENT.getItemValue())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "该来佣记录已被处理,不能重复生成"); throw new BusinessException(ResultCode.FAIL.getCode(), "该来佣记录已被处理,不能重复生成");
} }
...@@ -153,7 +150,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -153,7 +150,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
fortune.setFortuneBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FORTUNE.getCode())); fortune.setFortuneBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FORTUNE.getCode()));
fortune.setPolicyNo(policyNo); fortune.setPolicyNo(policyNo);
fortune.setBroker(policyBroker.getBrokerName()); fortune.setBroker(policyBroker.getBrokerName());
fortune.setStatus(FortuneStatusEnum.IN_PROCESS.getItemValue()); fortune.setStatus(FortuneStatusEnum.WAIT.getItemValue());
fortune.setCreateTime(new Date()); fortune.setCreateTime(new Date());
fortune.setUpdateTime(new Date()); fortune.setUpdateTime(new Date());
...@@ -173,17 +170,41 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -173,17 +170,41 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
} }
@Override @Override
public Map<String, Object> addCommission(CommissionAddRequest commissionAddRequest) { @Transactional(rollbackFor = Exception.class)
Commission commission = new Commission(); public Boolean addCommission(CommissionAddRequest commissionAddRequest) {
BeanUtils.copyProperties(commissionAddRequest, commission); List<CommissionAddDto> commissionAddDtoList = commissionAddRequest.getCommissionAddDtoList();
// 生成新单编号 if (CollUtil.isEmpty(commissionAddDtoList)) {
String commissionBizId = RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode()); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "佣金列表不能为空");
commission.setCommissionBizId(commissionBizId); }
// 保存来佣记录
this.save(commission); // 获取当前登录用户
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
// 返回新单跟进唯一业务ID String loginUserId = currentLoginUser.getId().toString();
return Collections.singletonMap("commissionBizId", commissionBizId);
List<Commission> commissionList = new ArrayList<>();
for (CommissionAddDto item : commissionAddDtoList) {
Commission commission = new Commission();
BeanUtils.copyProperties(item, commission);
// 生成新单编号
String commissionBizId = RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode());
commission.setCommissionBizId(commissionBizId);
commission.setPolicyNo(commissionAddRequest.getPolicyNo());
commission.setReconciliationCompany(commissionAddRequest.getReconciliationCompany());
commission.setReconciliationCompanyBizId(commissionAddRequest.getReconciliationCompanyBizId());
commission.setCommissionPeriod(commissionAddRequest.getCommissionPeriod());
commission.setStatus(CommissionStatusEnum.WAIT.getItemValue());
commission.setRemark(commissionAddRequest.getRemark());
commission.setCreatorId(loginUserId);
commission.setCreateTime(new Date());
commission.setUpdaterId(loginUserId);
commission.setUpdateTime(new Date());
commissionList.add(commission);
}
return this.saveBatch(commissionList);
} }
@Override @Override
......
...@@ -8,10 +8,14 @@ import com.google.gson.reflect.TypeToken; ...@@ -8,10 +8,14 @@ import com.google.gson.reflect.TypeToken;
import com.yd.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil; import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum; 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.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.FortuneAccountAddRequest; import com.yd.csf.service.dto.FortuneAccountAddRequest;
import com.yd.csf.service.dto.FortuneAccountExportDTO; import com.yd.csf.service.dto.FortuneAccountExportDTO;
import com.yd.csf.service.dto.FortuneAccountQueryRequest; import com.yd.csf.service.dto.FortuneAccountQueryRequest;
import com.yd.csf.service.dto.FortuneAccountUpdateRequest;
import com.yd.csf.service.enums.FortuneAccountStatusEnum; import com.yd.csf.service.enums.FortuneAccountStatusEnum;
import com.yd.csf.service.model.FortuneAccount; import com.yd.csf.service.model.FortuneAccount;
import com.yd.csf.service.service.FortuneAccountService; import com.yd.csf.service.service.FortuneAccountService;
...@@ -143,6 +147,30 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper, ...@@ -143,6 +147,30 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
this.save(fortuneAccount); this.save(fortuneAccount);
return Collections.singletonMap("fortuneAccountBizId", fortuneAccount.getFortuneAccountBizId()); return Collections.singletonMap("fortuneAccountBizId", fortuneAccount.getFortuneAccountBizId());
} }
@Override
public Boolean updateFortuneAccount(FortuneAccountUpdateRequest fortuneAccountUpdateRequest) {
// 当前登录用户
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
Long loginUserId = currentLoginUser.getId();
FortuneAccount fortuneAccount = this.getByFortuneAccountBizId(fortuneAccountUpdateRequest.getFortuneAccountBizId());
if (fortuneAccount == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
}
fortuneAccount.setBroker(fortuneAccountUpdateRequest.getBroker());
fortuneAccount.setTeam(fortuneAccountUpdateRequest.getTeam());
fortuneAccount.setCurrency(fortuneAccountUpdateRequest.getCurrency());
fortuneAccount.setAmount(fortuneAccountUpdateRequest.getAmount());
fortuneAccount.setFortuneAccountDate(fortuneAccountUpdateRequest.getFortuneAccountDate());
fortuneAccount.setRemark(fortuneAccountUpdateRequest.getRemark());
fortuneAccount.setUpdaterId(loginUserId.toString());
fortuneAccount.setUpdateTime(new Date());
this.updateById(fortuneAccount);
return true;
}
} }
......
package com.yd.csf.service.service.impl; package com.yd.csf.service.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
...@@ -8,9 +9,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -8,9 +9,12 @@ 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.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil; import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.dto.*; import com.yd.csf.service.dto.*;
import com.yd.csf.service.enums.FortuneStatusEnum;
import com.yd.csf.service.model.Fortune; import com.yd.csf.service.model.Fortune;
import com.yd.csf.service.service.FortuneAccountService; import com.yd.csf.service.service.FortuneAccountService;
import com.yd.csf.service.service.FortuneService; import com.yd.csf.service.service.FortuneService;
...@@ -83,7 +87,7 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -83,7 +87,7 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
if (fortune == null) { if (fortune == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "发佣数据不存在"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "发佣数据不存在");
} }
BeanUtils.copyProperties(fortuneUpdateRequest, fortune); BeanUtils.copyProperties(fortuneUpdateRequest, fortune, "id", "fortuneBizId");
// 获取当前登录用户 // 获取当前登录用户
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser(); AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
...@@ -258,6 +262,17 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -258,6 +262,17 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return this.getOne(new QueryWrapper<Fortune>().eq("fortune_biz_id", fortuneBizId)); return this.getOne(new QueryWrapper<Fortune>().eq("fortune_biz_id", fortuneBizId));
} }
@Override
public Boolean addFortune(FortuneAddRequest fortuneAddRequest) {
Fortune fortune = new Fortune();
BeanUtil.copyProperties(fortuneAddRequest, fortune);
// 生成发佣业务ID
fortune.setFortuneBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_FORTUNE.getCode()));
fortune.setStatus(FortuneStatusEnum.WAIT.getItemValue());
return this.save(fortune);
}
} }
......
...@@ -77,7 +77,7 @@ public class CommissionVO implements Serializable { ...@@ -77,7 +77,7 @@ public class CommissionVO implements Serializable {
/** /**
* 来佣状态 * 来佣状态
*/ */
@Schema(description = "来佣状态 1=已比对 2=部分来佣") @Schema(description = "来佣状态 0=未比对 1=比对成功 2=比对失败")
private String status; private String status;
/** /**
......
...@@ -46,7 +46,7 @@ public class FortuneAccountVO { ...@@ -46,7 +46,7 @@ public class FortuneAccountVO {
/** /**
* 出账状态 * 出账状态
*/ */
@Schema(description = "出账状态 可出账、待出账、已出账") @Schema(description = "出账状态 0=可出账 1=待出账 2=已出账")
private String status; private String status;
/** /**
......
...@@ -87,9 +87,9 @@ public class FortuneVO implements Serializable { ...@@ -87,9 +87,9 @@ public class FortuneVO implements Serializable {
private String currency; private String currency;
/** /**
* 佣金发放状态 0=暂不可发 1=可发放 2=已发并关 * 佣金状态 0=待出账 1=可出账 2=已出
*/ */
@Schema(description = "佣金发放状态 0=暂不可发 1=可发放 2=已发并关账 字典值:csf_fortune_status") @Schema(description = "佣金状态 0=待出账 1=可出账 2=已出账 字典值:csf_fortune_status")
private String status; private String status;
/** /**
......
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