mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2025-02-20 19:20:32 +08:00
code review:CRM 回款计划的逻辑
This commit is contained in:
parent
56b59cf383
commit
f942e2c7f2
@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.crm.controller.admin.receivable;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.*;
|
||||
@ -18,9 +19,8 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
|
||||
@ -69,15 +69,6 @@ public class ReceivableController {
|
||||
return success(ReceivableConvert.INSTANCE.convert(receivable));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得回款管理列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('crm:receivable:query')")
|
||||
public CommonResult<List<ReceivableRespVO>> getReceivableList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<ReceivableDO> list = receivableService.getReceivableList(ids);
|
||||
return success(ReceivableConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得回款管理分页")
|
||||
@PreAuthorize("@ss.hasPermission('crm:receivable:query')")
|
||||
|
@ -1,32 +1,28 @@
|
||||
package cn.iocoder.yudao.module.crm.controller.admin.receivable;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.*;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivablePlanDO;
|
||||
import cn.iocoder.yudao.module.crm.convert.receivable.ReceivablePlanConvert;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivablePlanDO;
|
||||
import cn.iocoder.yudao.module.crm.service.receivable.ReceivablePlanService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
|
||||
/**
|
||||
* @author 赤焰
|
||||
@ -73,15 +69,6 @@ public class ReceivablePlanController {
|
||||
return success(ReceivablePlanConvert.INSTANCE.convert(receivablePlan));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得回款计划列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('crm:receivable-plan:query')")
|
||||
public CommonResult<List<ReceivablePlanRespVO>> getReceivablePlanList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<ReceivablePlanDO> list = receivablePlanService.getReceivablePlanList(ids);
|
||||
return success(ReceivablePlanConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得回款计划分页")
|
||||
@PreAuthorize("@ss.hasPermission('crm:receivable-plan:query')")
|
||||
|
@ -1,14 +1,12 @@
|
||||
package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@ -19,9 +17,13 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
|
||||
@Data
|
||||
public class ReceivableBaseVO {
|
||||
|
||||
// TODO @liuhongfeng:部分缺少 example 的字段,要补充下;
|
||||
// TODO @liuhongfeng:部分字段,需要必传,要写 requiredMode = Schema.RequiredMode.REQUIRED,以及对应的 validator 非空校验
|
||||
|
||||
@Schema(description = "回款编号")
|
||||
private String no;
|
||||
|
||||
// TODO @liuhongfeng:中英文之间,有个空格,这样更干净;
|
||||
@Schema(description = "回款计划ID", example = "31177")
|
||||
private Long planId;
|
||||
|
||||
@ -31,9 +33,12 @@ public class ReceivableBaseVO {
|
||||
@Schema(description = "合同ID", example = "30305")
|
||||
private Long contractId;
|
||||
|
||||
// TODO @liuhongfeng:这个字段,可以写个枚举,然后 InEnum 去校验下;
|
||||
// TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的
|
||||
@Schema(description = "审批状态", example = "1")
|
||||
private Integer checkStatus;
|
||||
|
||||
// TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面;
|
||||
@Schema(description = "工作流编号", example = "16568")
|
||||
private Long processInstanceId;
|
||||
|
||||
@ -44,6 +49,7 @@ public class ReceivableBaseVO {
|
||||
@Schema(description = "回款方式", example = "2")
|
||||
private String returnType;
|
||||
|
||||
// TODO @liuhongfeng:使用 Int 哈,分;
|
||||
@Schema(description = "回款金额", example = "31859")
|
||||
private BigDecimal price;
|
||||
|
||||
@ -56,12 +62,14 @@ public class ReceivableBaseVO {
|
||||
@Schema(description = "显示顺序")
|
||||
private Integer sort;
|
||||
|
||||
// TODO @芋艿:这个字段在看看;dataScope、dataScopeDeptIds
|
||||
@Schema(description = "数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)")
|
||||
private Integer dataScope;
|
||||
|
||||
@Schema(description = "数据范围(指定部门数组)")
|
||||
private String dataScopeDeptIds;
|
||||
|
||||
// TODO @liuhongfeng:这个字段,这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面;
|
||||
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@NotNull(message = "状态不能为空")
|
||||
private Integer status;
|
||||
|
@ -1,12 +1,13 @@
|
||||
package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo;
|
||||
|
||||
import lombok.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
@ -17,6 +18,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
|
||||
@ToString(callSuper = true)
|
||||
public class ReceivablePageReqVO extends PageParam {
|
||||
|
||||
// TODO @liuhongfeng:目前就使用 no 检索即可;
|
||||
@Schema(description = "回款编号")
|
||||
private String no;
|
||||
|
||||
|
@ -1,15 +1,11 @@
|
||||
package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@ -20,9 +16,11 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
|
||||
@Data
|
||||
public class ReceivablePlanBaseVO {
|
||||
|
||||
// TODO 芋艿:这个字段,在想想命名;
|
||||
@Schema(description = "期数")
|
||||
private Long indexNo;
|
||||
|
||||
// TODO @liuhongfeng:中英文之间,有个空格,这样更干净;
|
||||
@Schema(description = "回款ID", example = "19852")
|
||||
private Long receivableId;
|
||||
|
||||
@ -30,12 +28,16 @@ public class ReceivablePlanBaseVO {
|
||||
//@NotNull(message = "完成状态不能为空")
|
||||
private Integer status;
|
||||
|
||||
// TODO @liuhongfeng:这个字段,可以写个枚举,然后 InEnum 去校验下;
|
||||
// TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的
|
||||
@Schema(description = "审批状态", example = "1")
|
||||
private String checkStatus;
|
||||
|
||||
// TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面;
|
||||
@Schema(description = "工作流编号", example = "8909")
|
||||
private Long processInstanceId;
|
||||
|
||||
// TODO @liuhongfeng:使用 Int 哈,分;
|
||||
@Schema(description = "计划回款金额", example = "29675")
|
||||
private BigDecimal price;
|
||||
|
||||
@ -43,6 +45,7 @@ public class ReceivablePlanBaseVO {
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime returnTime;
|
||||
|
||||
// TODO @liuhongfeng:这个字段,Integer
|
||||
@Schema(description = "提前几天提醒")
|
||||
private Long remindDays;
|
||||
|
||||
@ -56,6 +59,7 @@ public class ReceivablePlanBaseVO {
|
||||
@Schema(description = "合同ID", example = "3473")
|
||||
private Long contractId;
|
||||
|
||||
// TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面;
|
||||
@Schema(description = "负责人", example = "17828")
|
||||
private Long ownerUserId;
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
@ -15,6 +17,8 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
|
||||
@ToString(callSuper = true)
|
||||
public class ReceivablePlanPageReqVO extends PageParam {
|
||||
|
||||
// TODO 芋艿:筛选字段,需要去掉几个,在想想;
|
||||
|
||||
@Schema(description = "期数")
|
||||
private Long indexNo;
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
package cn.iocoder.yudao.module.crm.dal.dataobject.receivable;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 回款管理 DO
|
||||
@ -35,14 +35,20 @@ public class ReceivableDO extends BaseDO {
|
||||
private String no;
|
||||
/**
|
||||
* 回款计划ID
|
||||
*
|
||||
* TODO @liuhongfeng:这个字段,后续要写下关联的实体哈
|
||||
*/
|
||||
private Long planId;
|
||||
/**
|
||||
* 客户ID
|
||||
*
|
||||
* TODO @liuhongfeng:这个字段,后续要写下关联的实体哈
|
||||
*/
|
||||
private Long customerId;
|
||||
/**
|
||||
* 合同ID
|
||||
*
|
||||
* TODO @liuhongfeng:这个字段,后续要写下关联的实体哈
|
||||
*/
|
||||
private Long contractId;
|
||||
/**
|
||||
@ -53,6 +59,8 @@ public class ReceivableDO extends BaseDO {
|
||||
private Integer checkStatus;
|
||||
/**
|
||||
* 工作流编号
|
||||
*
|
||||
* TODO @liuhongfeng:这个字段,后续要写下关联的实体哈
|
||||
*/
|
||||
private Long processInstanceId;
|
||||
/**
|
||||
@ -79,6 +87,7 @@ public class ReceivableDO extends BaseDO {
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer sort;
|
||||
// TODO 芋艿:dataScope、dataScopeDeptIds 在想下;
|
||||
/**
|
||||
* 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
|
||||
*/
|
||||
|
@ -1,24 +1,26 @@
|
||||
package cn.iocoder.yudao.module.crm.service.receivable;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.*;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivablePlanDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
|
||||
import cn.iocoder.yudao.module.crm.convert.receivable.ReceivablePlanConvert;
|
||||
import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivablePlanMapper;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanCreateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanExportReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanPageReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.convert.receivable.ReceivablePlanConvert;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivablePlanDO;
|
||||
import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivablePlanMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.RECEIVABLE_PLAN_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* 回款计划 Service 实现类
|
||||
@ -36,6 +38,7 @@ public class ReceivablePlanServiceImpl implements ReceivablePlanService {
|
||||
public Long createReceivablePlan(ReceivablePlanCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
ReceivablePlanDO receivablePlan = ReceivablePlanConvert.INSTANCE.convert(createReqVO);
|
||||
// TODO @liuhongfeng:空格要注释;if (ObjectUtil.isNull(receivablePlan.getStatus())) {
|
||||
if(ObjectUtil.isNull(receivablePlan.getStatus())){
|
||||
receivablePlan.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
}
|
||||
@ -48,6 +51,7 @@ public class ReceivablePlanServiceImpl implements ReceivablePlanService {
|
||||
public void updateReceivablePlan(ReceivablePlanUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateReceivablePlanExists(updateReqVO.getId());
|
||||
|
||||
// 更新
|
||||
ReceivablePlanDO updateObj = ReceivablePlanConvert.INSTANCE.convert(updateReqVO);
|
||||
receivablePlanMapper.updateById(updateObj);
|
||||
|
@ -1,21 +1,24 @@
|
||||
package cn.iocoder.yudao.module.crm.service.receivable;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.*;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivableDO;
|
||||
|
||||
import cn.iocoder.yudao.module.crm.convert.receivable.ReceivableConvert;
|
||||
import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivableMapper;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableCreateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableExportReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePageReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.convert.receivable.ReceivableConvert;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivableDO;
|
||||
import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivableMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.RECEIVABLE_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* 回款管理 Service 实现类
|
||||
@ -31,6 +34,8 @@ public class ReceivableServiceImpl implements ReceivableService {
|
||||
|
||||
@Override
|
||||
public Long createReceivable(ReceivableCreateReqVO createReqVO) {
|
||||
// TODO @liuhongfeng:planId 是否存在,是否合法,需要去校验;
|
||||
// TODO @liuhongfeng:其它类似 customerId、contractId 也需要去校验;
|
||||
// 插入
|
||||
ReceivableDO receivable = ReceivableConvert.INSTANCE.convert(createReqVO);
|
||||
receivableMapper.insert(receivable);
|
||||
@ -42,6 +47,7 @@ public class ReceivableServiceImpl implements ReceivableService {
|
||||
public void updateReceivable(ReceivableUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateReceivableExists(updateReqVO.getId());
|
||||
|
||||
// 更新
|
||||
ReceivableDO updateObj = ReceivableConvert.INSTANCE.convert(updateReqVO);
|
||||
receivableMapper.updateById(updateObj);
|
||||
|
@ -1,33 +1,30 @@
|
||||
package cn.iocoder.yudao.module.crm.service.receivable;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.*;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanCreateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanExportReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanPageReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePlanUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivablePlanDO;
|
||||
import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivablePlanMapper;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
|
||||
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.RECEIVABLE_PLAN_NOT_EXISTS;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
// TODO 芋艿:后续,需要补充测试用例
|
||||
/**
|
||||
* {@link ReceivablePlanServiceImpl} 的单元测试类
|
||||
*
|
||||
|
@ -1,33 +1,30 @@
|
||||
package cn.iocoder.yudao.module.crm.service.receivable;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.*;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableCreateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableExportReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePageReqVO;
|
||||
import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivableDO;
|
||||
import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivableMapper;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.*;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
|
||||
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
|
||||
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||
import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.RECEIVABLE_NOT_EXISTS;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
// TODO 芋艿:等实现完,在校验下;
|
||||
/**
|
||||
* {@link ReceivableServiceImpl} 的单元测试类
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user