Commit 6c83a71b by jianan

新单跟进47

parent 6bfa87a6
......@@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* CommissionExpected接口
......@@ -31,19 +30,19 @@ public class ApiCommissionExpectedController {
private CommissionExpectedService CommissionExpectedService;
/**
* 新增预计来佣
* 批量新增预计来佣
*
* @param CommissionExpectedAddRequest
* @param commissionExpectedAddRequest
* @param request
* @return
*/
@PostMapping("/add")
@Operation(summary = "新增预计来佣")
public Result<Map<String, Object>> addCommissionExpected(@RequestBody CommissionExpectedAddRequest CommissionExpectedAddRequest, HttpServletRequest request) {
if (CommissionExpectedAddRequest == null) {
public Result<Boolean> addCommissionExpected(@RequestBody CommissionExpectedAddRequest commissionExpectedAddRequest, HttpServletRequest request) {
if (commissionExpectedAddRequest == null) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), ResultCode.PARAMS_ERROR.getMessage());
}
return Result.success(CommissionExpectedService.addCommissionExpected(CommissionExpectedAddRequest));
return Result.success(CommissionExpectedService.addCommissionExpected(commissionExpectedAddRequest));
}
/**
......@@ -65,26 +64,17 @@ public class ApiCommissionExpectedController {
/**
* 更新预计来佣
*
* @param CommissionExpectedUpdateRequest
* @param commissionExpectedUpdateRequest
* @return
*/
// @PostMapping("/update")
// @Operation(summary = "更新预计来佣")
// public Result<Boolean> updateCommissionExpected(@RequestBody CommissionExpectedUpdateRequest CommissionExpectedUpdateRequest) {
// if (CommissionExpectedUpdateRequest == null || StringUtils.isBlank(CommissionExpectedUpdateRequest.getCommissionExpectedBizId())) {
// throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "CommissionExpectedBizId不能为空");
// }
// String appointmentNo = null;
// if (StringUtils.isNotBlank(CommissionExpectedUpdateRequest.getAppointmentBizId())) {
// Result<ApiAppointmentInfoDto> apiAppointmentInfoDtoResult = appointmentService.mainDetail(CommissionExpectedUpdateRequest.getAppointmentBizId());
// if (apiAppointmentInfoDtoResult.getData() != null) {
// ApiAppointmentInfoDto apiAppointmentInfoDto = apiAppointmentInfoDtoResult.getData();
// appointmentNo = apiAppointmentInfoDto.getAppointmentNo();
// }
// }
//
// return Result.success(CommissionExpectedService.updateCommissionExpected(CommissionExpectedUpdateRequest, appointmentNo));
// }
@PostMapping("/update")
@Operation(summary = "更新预计来佣")
public Result<Boolean> updateCommissionExpected(@RequestBody CommissionExpectedUpdateRequest commissionExpectedUpdateRequest) {
if (commissionExpectedUpdateRequest == null || StringUtils.isBlank(commissionExpectedUpdateRequest.getCommissionExpectedBizId())) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "commissionExpectedBizId不能为空");
}
return Result.success(CommissionExpectedService.updateCommissionExpected(commissionExpectedUpdateRequest));
}
/**
* 根据 CommissionExpectedBizId 获取CommissionExpected(封装类)
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class CommissionExpectedAddDto {
/**
* 预计来佣业务id
*/
@Schema(description = "预计来佣业务id")
private String commissionExpectedBizId;
/**
* 新单跟进业务id
*/
@Schema(description = "新单跟进业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 佣金期数(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 = "来佣金额")
private BigDecimal amount;
/**
* 来佣币种
*/
@Schema(description = "来佣币种")
private String currency;
/**
* 来佣日期
*/
@Schema(description = "来佣日期 format:yyyy-MM-dd")
private Date commissionDate;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}
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;
import java.util.List;
/**
* 创建预计来佣请求
*/
@Data
public class CommissionExpectedAddRequest implements Serializable {
/**
* 新单跟进业务id
*/
@Schema(description = "新单跟进业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 佣金期数(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 = "来佣金额")
private BigDecimal amount;
/**
* 来佣币种
*/
@Schema(description = "来佣币种")
private String currency;
/**
* 来佣日期
*/
@Schema(description = "来佣日期 format:yyyy-MM-dd")
private Date commissionDate;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
private List<CommissionExpectedAddDto> commissionExpectedAddDtoList;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -5,10 +5,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class CommissionExpectedQueryRequest extends PageDto {
public class CommissionExpectedQueryRequest extends PageDto {
/**
* 保单号
*/
@Schema(description = "保单号", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "保单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyNo;
}
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 CommissionExpectedUpdateRequest implements Serializable {
/**
* 预计来佣业务id
*/
@Schema(description = "预计来佣业务id")
private String commissionExpectedBizId;
/**
* 新单跟进业务id
*/
@Schema(description = "新单跟进业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String policyBizId;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 对账公司
*/
@Schema(description = "对账公司")
private String reconciliationCompany;
/**
* 对账公司业务id
*/
@Schema(description = "对账公司业务id")
private String reconciliationCompanyBizId;
/**
* 佣金期数(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 = "来佣金额")
private BigDecimal amount;
/**
* 来佣币种
*/
@Schema(description = "来佣币种")
private String currency;
/**
* 来佣日期
*/
@Schema(description = "来佣日期 format:yyyy-MM-dd")
private Date commissionDate;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.CommissionExpectedAddRequest;
import com.yd.csf.service.dto.CommissionExpectedQueryRequest;
import com.yd.csf.service.dto.CommissionExpectedUpdateRequest;
import com.yd.csf.service.model.CommissionExpected;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.CommissionExpectedVO;
......@@ -44,7 +45,9 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
*/
CommissionExpectedVO getCommissionExpectedVO(CommissionExpected commissionExpected);
Map<String, Object> addCommissionExpected(CommissionExpectedAddRequest commissionExpectedAddRequest);
Boolean addCommissionExpected(CommissionExpectedAddRequest commissionExpectedAddRequest);
Boolean deleteCommissionExpected(String commissionExpectedBizId);
Boolean updateCommissionExpected(CommissionExpectedUpdateRequest commissionExpectedUpdateRequest);
}
......@@ -4,21 +4,15 @@ 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.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil;
import com.yd.common.constant.CommonConstant;
import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.dto.CommissionExpectedAddDto;
import com.yd.csf.service.dto.CommissionExpectedAddRequest;
import com.yd.csf.service.dto.CommissionExpectedQueryRequest;
import com.yd.csf.service.dto.CommissionExpectedUpdateRequest;
import com.yd.csf.service.enums.CommissionExpectedStatusEnum;
import com.yd.csf.service.enums.CommissionStatusEnum;
import com.yd.csf.service.model.Commission;
import com.yd.csf.service.model.CommissionExpected;
import com.yd.csf.service.model.Policy;
import com.yd.csf.service.service.CommissionExpectedService;
import com.yd.csf.service.dao.CommissionExpectedMapper;
import com.yd.csf.service.vo.CommissionExpectedVO;
......@@ -26,11 +20,10 @@ import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -64,19 +57,34 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
*/
@Override
public void validCommissionExpected(CommissionExpected commissionExpected, boolean add) {
// ThrowUtils.throwIf(commissionExpected == null, ErrorCode.PARAMS_ERROR);
// // todo 从对象中取值
// String title = commissionExpected.getTitle();
// // 创建数据时,参数不能为空
// if (add) {
// // todo 补充校验规则
if (commissionExpected == null) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "预计来佣对象不能为空");
}
String policyNo = commissionExpected.getPolicyNo();
if (StringUtils.isBlank(policyNo)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "保单号不能为空");
}
String commissionName = commissionExpected.getCommissionName();
if (StringUtils.isBlank(commissionName)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "来佣名称不能为空");
}
BigDecimal amount = commissionExpected.getAmount();
if (ObjectUtils.isEmpty(amount)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "来佣金额不能为空");
}
Integer commissionPeriod = commissionExpected.getCommissionPeriod();
if (ObjectUtils.isEmpty(commissionPeriod)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "佣金期数不能为空");
}
Integer totalPeriod = commissionExpected.getTotalPeriod();
if (ObjectUtils.isEmpty(totalPeriod)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "总来佣期数不能为空");
}
// 创建数据时,参数不能为空
if (add) {
// todo 补充校验规则
// ThrowUtils.throwIf(StringUtils.isBlank(title), ErrorCode.PARAMS_ERROR);
// }
// // 修改数据时,有参数则校验
// // todo 补充校验规则
// if (StringUtils.isNotBlank(title)) {
// ThrowUtils.throwIf(title.length() > 80, ErrorCode.PARAMS_ERROR, "标题过长");
// }
}
}
/**
......@@ -117,23 +125,32 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
@Override
public Map<String, Object> addCommissionExpected(CommissionExpectedAddRequest commissionExpectedAddRequest) {
if (commissionExpectedAddRequest == null || StringUtils.isBlank(commissionExpectedAddRequest.getPolicyBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
@Transactional(rollbackFor = Exception.class)
public Boolean addCommissionExpected(CommissionExpectedAddRequest commissionExpectedAddRequest) {
List<CommissionExpectedAddDto> addDtoList = commissionExpectedAddRequest.getCommissionExpectedAddDtoList();
if (CollUtil.isEmpty(addDtoList)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "预计来佣列表不能为空");
}
CommissionExpected commissionExpected = new CommissionExpected();
BeanUtils.copyProperties(commissionExpectedAddRequest, commissionExpected);
// 生成新单编号
String commissionBizId = RandomStringGenerator.generateBizId16("commission_expected");
commissionExpected.setCommissionExpectedBizId(commissionBizId);
// 设置默认状态
commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue());
commissionExpected.setCreateTime(new Date());
commissionExpected.setUpdateTime(new Date());
// 新增预计来佣
this.saveOrUpdate(commissionExpected);
return Collections.singletonMap("commissionExpectedBizId", commissionExpected.getCommissionExpectedBizId());
List<CommissionExpected> updateList = new ArrayList<>();
for (CommissionExpectedAddDto addDto : addDtoList) {
CommissionExpected commissionExpected = new CommissionExpected();
BeanUtils.copyProperties(addDto, commissionExpected);
if (StringUtils.isBlank(addDto.getCommissionExpectedBizId())) {
// 生成新单编号
commissionExpected.setCommissionExpectedBizId(RandomStringGenerator.generateBizId16("commission_expected"));
commissionExpected.setCreateTime(new Date());
commissionExpected.setUpdateTime(new Date());
// 设置默认状态
commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue());
} else {
commissionExpected.setUpdateTime(new Date());
}
updateList.add(commissionExpected);
}
// 新增或更新预计来佣
return this.saveOrUpdateBatch(updateList);
}
@Override
......@@ -142,12 +159,32 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "预计来佣业务id不能为空");
}
// 校验预计来佣是否存在
CommissionExpected commissionExpected = this.getOne(new QueryWrapper<CommissionExpected>().eq("commission_expected_biz_id", commissionExpectedBizId));
CommissionExpected commissionExpected = getByBizId(commissionExpectedBizId);
if (commissionExpected == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "预计来佣不存在");
}
return this.removeById(commissionExpected.getId());
}
@Override
public Boolean updateCommissionExpected(CommissionExpectedUpdateRequest commissionExpectedUpdateRequest) {
// 校验预计来佣是否存在
CommissionExpected commissionExpected = getByBizId(commissionExpectedUpdateRequest.getCommissionExpectedBizId());
if (commissionExpected == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "预计来佣不存在");
}
// 校验数据
validCommissionExpected(commissionExpected, false);
// 转换为实体类
BeanUtils.copyProperties(commissionExpectedUpdateRequest, commissionExpected);
commissionExpected.setUpdateTime(new Date());
// 更新预计来佣
return this.updateById(commissionExpected);
}
private CommissionExpected getByBizId(String commissionExpectedBizId) {
return this.getOne(new QueryWrapper<CommissionExpected>().eq("commission_expected_biz_id", commissionExpectedBizId));
}
}
......
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