Commit 6bfa87a6 by jianan

新单跟进46

parent 366685ab
package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode;
import com.yd.common.result.Result;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.model.CommissionExpected;
import com.yd.csf.service.service.CommissionExpectedService;
import com.yd.csf.service.vo.CommissionExpectedVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* CommissionExpected接口
*
* @author jianan
* @since 2025-08-31
*/
@RestController
@RequestMapping("/CommissionExpected")
@Tag(name = "预计来佣接口")
public class ApiCommissionExpectedController {
@Resource
private CommissionExpectedService CommissionExpectedService;
/**
* 新增预计来佣
*
* @param CommissionExpectedAddRequest
* @param request
* @return
*/
@PostMapping("/add")
@Operation(summary = "新增预计来佣")
public Result<Map<String, Object>> 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));
}
/**
* 删除预计来佣
*
* @param commissionExpectedBizId 预计来佣业务id
* @param request
* @return
*/
@DeleteMapping("/delete")
@Operation(summary = "删除预计来佣")
public Result<Boolean> deleteCommissionExpected(@RequestParam("commissionExpectedBizId") String commissionExpectedBizId, HttpServletRequest request) {
if (StringUtils.isBlank(commissionExpectedBizId)) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "预计来佣业务id不能为空");
}
return Result.success(CommissionExpectedService.deleteCommissionExpected(commissionExpectedBizId));
}
/**
* 更新预计来佣
*
* @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));
// }
/**
* 根据 CommissionExpectedBizId 获取CommissionExpected(封装类)
*
* @param CommissionExpectedBizId
* @return
*/
// @GetMapping("/get/vo")
// @Operation(summary = "预计来佣详情")
// public Result<CommissionExpectedVO> getCommissionExpectedVOByBizId(String CommissionExpectedBizId, HttpServletRequest request) {
// if (StringUtils.isBlank(CommissionExpectedBizId)) {
// return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "CommissionExpectedBizId不能为空");
// }
// // 查询数据库
// CommissionExpected CommissionExpected = CommissionExpectedService.getByBizId(CommissionExpectedBizId);
// if (CommissionExpected == null) {
// return Result.fail(ResultCode.NULL_ERROR.getCode(), ResultCode.NULL_ERROR.getMessage());
// }
//
// // 获取封装类
// return Result.success(CommissionExpectedService.getCommissionExpectedVO(CommissionExpected));
// }
/**
* 分页获取CommissionExpected列表(仅管理员可用)
*
* @param CommissionExpectedQueryRequest
* @return
*/
@PostMapping("/list/page")
@Operation(summary = "分页获取预计来佣列表")
public Result<Page<CommissionExpectedVO>> listCommissionExpectedByPage(@RequestBody CommissionExpectedQueryRequest CommissionExpectedQueryRequest) {
long current = CommissionExpectedQueryRequest.getPageNo();
long size = CommissionExpectedQueryRequest.getPageSize();
// 查询数据库
Page<CommissionExpected> CommissionExpectedPage = CommissionExpectedService.page(new Page<>(current, size),
CommissionExpectedService.getQueryWrapper(CommissionExpectedQueryRequest));
return Result.success(CommissionExpectedService.getCommissionExpectedVOPage(CommissionExpectedPage));
}
}
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 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 static final long serialVersionUID = 1L;
}
\ No newline at end of file
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.CommissionExpectedAddRequest;
import com.yd.csf.service.dto.CommissionExpectedQueryRequest;
import com.yd.csf.service.model.CommissionExpected;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.CommissionExpectedVO;
import com.yd.csf.service.vo.PolicyVO;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* @author Zhang Jianan
......@@ -14,4 +19,32 @@ import com.yd.csf.service.vo.PolicyVO;
public interface CommissionExpectedService extends IService<CommissionExpected> {
Page<CommissionExpectedVO> getCommissionExpectedVOPage(Page<CommissionExpected> commissionExpectedPage);
/**
* 校验数据
*
* @param commissionExpected
* @param add 对创建的数据进行校验
*/
void validCommissionExpected(CommissionExpected commissionExpected, boolean add);
/**
* 获取查询条件
*
* @param commissionExpectedQueryRequest
* @return
*/
QueryWrapper<CommissionExpected> getQueryWrapper(CommissionExpectedQueryRequest commissionExpectedQueryRequest);
/**
* 获取预计来佣封装
*
* @param commissionExpected
* @return
*/
CommissionExpectedVO getCommissionExpectedVO(CommissionExpected commissionExpected);
Map<String, Object> addCommissionExpected(CommissionExpectedAddRequest commissionExpectedAddRequest);
Boolean deleteCommissionExpected(String commissionExpectedBizId);
}
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.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.CommissionExpectedAddRequest;
import com.yd.csf.service.dto.CommissionExpectedQueryRequest;
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;
import com.yd.csf.service.vo.CommissionExpectedVO;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -36,6 +55,99 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
CommissionExpectedVOPage.setRecords(CommissionExpectedVOList);
return CommissionExpectedVOPage;
}
/**
* 校验数据
*
* @param commissionExpected
* @param add 对创建的数据进行校验
*/
@Override
public void validCommissionExpected(CommissionExpected commissionExpected, boolean add) {
// ThrowUtils.throwIf(commissionExpected == null, ErrorCode.PARAMS_ERROR);
// // todo 从对象中取值
// String title = commissionExpected.getTitle();
// // 创建数据时,参数不能为空
// if (add) {
// // todo 补充校验规则
// ThrowUtils.throwIf(StringUtils.isBlank(title), ErrorCode.PARAMS_ERROR);
// }
// // 修改数据时,有参数则校验
// // todo 补充校验规则
// if (StringUtils.isNotBlank(title)) {
// ThrowUtils.throwIf(title.length() > 80, ErrorCode.PARAMS_ERROR, "标题过长");
// }
}
/**
* 获取查询条件
*
* @param commissionExpectedQueryRequest
* @return
*/
@Override
public QueryWrapper<CommissionExpected> getQueryWrapper(CommissionExpectedQueryRequest commissionExpectedQueryRequest) {
QueryWrapper<CommissionExpected> queryWrapper = new QueryWrapper<>();
if (commissionExpectedQueryRequest == null) {
return queryWrapper;
}
// 获取查询参数
String policyNo = commissionExpectedQueryRequest.getPolicyNo();
// 精确查询
queryWrapper.eq(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo);
// 排序规则
queryWrapper.orderByAsc("commission_period");
return queryWrapper;
}
/**
* 获取预计来佣封装
*
* @param commissionExpected
* @return
*/
@Override
public CommissionExpectedVO getCommissionExpectedVO(CommissionExpected commissionExpected) {
// 对象转封装类
CommissionExpectedVO commissionExpectedVO = CommissionExpectedVO.objToVo(commissionExpected);
// todo 可以根据需要为封装对象补充值,不需要的内容可以删除
return commissionExpectedVO;
}
@Override
public Map<String, Object> addCommissionExpected(CommissionExpectedAddRequest commissionExpectedAddRequest) {
if (commissionExpectedAddRequest == null || StringUtils.isBlank(commissionExpectedAddRequest.getPolicyBizId())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
}
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());
}
@Override
public Boolean deleteCommissionExpected(String commissionExpectedBizId) {
if (StringUtils.isBlank(commissionExpectedBizId)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "预计来佣业务id不能为空");
}
// 校验预计来佣是否存在
CommissionExpected commissionExpected = this.getOne(new QueryWrapper<CommissionExpected>().eq("commission_expected_biz_id", commissionExpectedBizId));
if (commissionExpected == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "预计来佣不存在");
}
return this.removeById(commissionExpected.getId());
}
}
......
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