From f1f180ff77963f837acac390e94690cefcd05f95 Mon Sep 17 00:00:00 2001 From: liuhongfeng <291117974@qq.com> Date: Tue, 31 Oct 2023 00:35:41 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E5=BD=92=E7=B1=BB=20=E3=80=90=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E3=80=91=E8=A7=84=E8=8C=83=E5=AE=9E=E4=BD=93=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E5=92=8C=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/crm/enums/DictTypeConstants.java | 1 + .../admin/receivable/vo/ReceivableBaseVO.java | 33 ++++--------------- .../receivable/vo/ReceivableExcelVO.java | 20 ++++------- .../receivable/vo/ReceivableExportReqVO.java | 21 +++--------- .../receivable/vo/ReceivablePageReqVO.java | 24 ++------------ .../receivable/vo/ReceivablePlanBaseVO.java | 30 ++++++----------- .../receivable/vo/ReceivablePlanExcelVO.java | 13 ++++---- .../vo/ReceivablePlanExportReqVO.java | 6 ++-- .../vo/ReceivablePlanPageReqVO.java | 15 ++------- .../dataobject/receivable/ReceivableDO.java | 17 +++++----- .../receivable/ReceivablePlanDO.java | 12 +++---- .../mysql/receivable/ReceivableMapper.java | 10 ------ .../receivable/ReceivablePlanMapper.java | 3 -- .../receivable/ReceivableServiceImpl.java | 9 ++++- .../ReceivablePlanServiceImplTest.java | 3 -- .../receivable/ReceivableServiceImplTest.java | 10 ------ 16 files changed, 64 insertions(+), 163 deletions(-) diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/DictTypeConstants.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/DictTypeConstants.java index 0e412ee9b..71f550775 100644 --- a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/DictTypeConstants.java +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/DictTypeConstants.java @@ -11,5 +11,6 @@ public interface DictTypeConstants { String CRM_CUSTOMER_INDUSTRY = "crm_customer_industry"; // CRM 客户所属行业 String CRM_CUSTOMER_LEVEL = "crm_customer_level"; // CRM 客户等级 String CRM_CUSTOMER_SOURCE = "crm_customer_source"; // CRM 客户来源 + String CRM_RECEIVABLE_CHECK_STATUS = "crm_receivable_check_status"; // CRM 审批状态 } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java index 8aa43e50b..1e7e7bd68 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java @@ -19,30 +19,22 @@ 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 = "回款编号") + @Schema(description = "回款编号",requiredMode = Schema.RequiredMode.REQUIRED, example = "31177") private String no; - // TODO @liuhongfeng:中英文之间,有个空格,这样更干净; - @Schema(description = "回款计划ID", example = "31177") + @Schema(description = "回款计划", example = "31177") private Long planId; - @Schema(description = "客户ID", example = "4963") + @Schema(description = "客户名称", example = "4963") private Long customerId; - @Schema(description = "合同ID", example = "30305") + @Schema(description = "合同名称", example = "30305") private Long contractId; @Schema(description = "审批状态", example = "1") @InEnum(AuditStatusEnum.class) private Integer checkStatus; - // TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面; - @Schema(description = "工作流编号", example = "16568") - private Long processInstanceId; - @Schema(description = "回款日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime returnTime; @@ -50,9 +42,8 @@ public class ReceivableBaseVO { @Schema(description = "回款方式", example = "2") private String returnType; - // TODO @liuhongfeng:使用 Int 哈,分; @Schema(description = "回款金额", example = "31859") - private BigDecimal price; + private Integer price; @Schema(description = "负责人", example = "22202") private Long ownerUserId; @@ -63,19 +54,7 @@ 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; - - @Schema(description = "备注", example = "随便") + @Schema(description = "备注", example = "备注") private String remark; } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExcelVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExcelVO.java index b525341d3..a88fa9fd9 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExcelVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExcelVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -30,14 +31,14 @@ public class ReceivableExcelVO { @ExcelProperty("回款计划ID") private Long planId; - @ExcelProperty("客户ID") + @ExcelProperty("客户名称") private Long customerId; - @ExcelProperty("合同ID") + @ExcelProperty("合同名称") private Long contractId; @ExcelProperty(value = "审批状态", converter = DictConvert.class) - @DictFormat("crm_receivable_check_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(cn.iocoder.yudao.module.crm.enums.DictTypeConstants.CRM_RECEIVABLE_CHECK_STATUS) private Integer checkStatus; @ExcelProperty("工作流编号") @@ -50,7 +51,7 @@ public class ReceivableExcelVO { private String returnType; @ExcelProperty("回款金额") - private BigDecimal price; + private Integer price; @ExcelProperty("负责人") private Long ownerUserId; @@ -58,17 +59,8 @@ public class ReceivableExcelVO { @ExcelProperty("批次") private Long batchId; - //@ExcelProperty("显示顺序") - //private Integer sort; - - //@ExcelProperty("数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)") - //private Integer dataScope; - - //@ExcelProperty("数据范围(指定部门数组)") - //private String dataScopeDeptIds; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("common_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(DictTypeConstants.COMMON_STATUS) private Integer status; @ExcelProperty("备注") diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExportReqVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExportReqVO.java index 4a9a033f3..f07e4ddf8 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExportReqVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableExportReqVO.java @@ -4,7 +4,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; -import java.math.BigDecimal; import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -19,21 +18,18 @@ public class ReceivableExportReqVO { @Schema(description = "回款编号") private String no; - @Schema(description = "回款计划ID", example = "31177") + @Schema(description = "回款计划", example = "31177") private Long planId; - @Schema(description = "客户ID", example = "4963") + @Schema(description = "客户名称", example = "4963") private Long customerId; - @Schema(description = "合同ID", example = "30305") + @Schema(description = "合同名称", example = "30305") private Long contractId; @Schema(description = "审批状态", example = "1") private Integer checkStatus; - @Schema(description = "工作流编号", example = "16568") - private Long processInstanceId; - @Schema(description = "回款日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] returnTime; @@ -42,7 +38,7 @@ public class ReceivableExportReqVO { private String returnType; @Schema(description = "回款金额", example = "31859") - private BigDecimal price; + private Integer price; @Schema(description = "负责人", example = "22202") private Long ownerUserId; @@ -50,15 +46,6 @@ public class ReceivableExportReqVO { @Schema(description = "批次", example = "2539") private Long batchId; - @Schema(description = "显示顺序") - private Integer sort; - - @Schema(description = "数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)") - private Integer dataScope; - - @Schema(description = "数据范围(指定部门数组)") - private String dataScopeDeptIds; - @Schema(description = "状态", example = "1") private Integer status; diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePageReqVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePageReqVO.java index ba4775535..53cdc4949 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePageReqVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePageReqVO.java @@ -18,25 +18,21 @@ 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; @Schema(description = "回款计划ID", example = "31177") private Long planId; - @Schema(description = "客户ID", example = "4963") + @Schema(description = "客户名称", example = "4963") private Long customerId; - @Schema(description = "合同ID", example = "30305") + @Schema(description = "合同名称", example = "30305") private Long contractId; @Schema(description = "审批状态", example = "1") private Integer checkStatus; - @Schema(description = "工作流编号", example = "16568") - private Long processInstanceId; - @Schema(description = "回款日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] returnTime; @@ -45,29 +41,15 @@ public class ReceivablePageReqVO extends PageParam { private String returnType; @Schema(description = "回款金额", example = "31859") - private BigDecimal price; + private Integer price; @Schema(description = "负责人", example = "22202") private Long ownerUserId; - @Schema(description = "批次", example = "2539") - private Long batchId; - - @Schema(description = "显示顺序") - private Integer sort; - - @Schema(description = "数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)") - private Integer dataScope; - - @Schema(description = "数据范围(指定部门数组)") - private String dataScopeDeptIds; @Schema(description = "状态", example = "1") private Integer status; - @Schema(description = "备注", example = "随便") - private String remark; - @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanBaseVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanBaseVO.java index b5ba20296..2bd05a64a 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanBaseVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanBaseVO.java @@ -1,10 +1,11 @@ package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.crm.enums.AuditStatusEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; -import java.math.BigDecimal; import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -16,57 +17,46 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @Data public class ReceivablePlanBaseVO { - // TODO 芋艿:这个字段,在想想命名; - @Schema(description = "期数") + @Schema(description = "期数", example = "1") private Integer period; - // TODO @liuhongfeng:中英文之间,有个空格,这样更干净; - @Schema(description = "回款ID", example = "19852") + @Schema(description = "回款计划", example = "19852") private Long receivableId; @Schema(description = "完成状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - //@NotNull(message = "完成状态不能为空") private Integer status; - // TODO @liuhongfeng:这个字段,可以写个枚举,然后 InEnum 去校验下; - // TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的 @Schema(description = "审批状态", example = "1") + @InEnum(AuditStatusEnum.class) private Integer checkStatus; - // TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面; - @Schema(description = "工作流编号", example = "8909") - private Long processInstanceId; - - // TODO @liuhongfeng:使用 Int 哈,分; @Schema(description = "计划回款金额", example = "29675") - private BigDecimal price; + private Integer price; @Schema(description = "计划回款日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime returnTime; - // TODO @liuhongfeng:这个字段,Integer @Schema(description = "提前几天提醒") - private Long remindDays; + private Integer remindDays; @Schema(description = "提醒日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime remindTime; - @Schema(description = "客户ID", example = "18026") + @Schema(description = "客户名称", example = "18026") private Long customerId; - @Schema(description = "合同ID", example = "3473") + @Schema(description = "合同名称", example = "3473") private Long contractId; - // TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面; @Schema(description = "负责人", example = "17828") private Long ownerUserId; @Schema(description = "显示顺序") private Integer sort; - @Schema(description = "备注", example = "随便") + @Schema(description = "备注", example = "备注") private String remark; } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExcelVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExcelVO.java index e6646aa2d..2ff3fd0d3 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExcelVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExcelVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; import lombok.*; import java.math.BigDecimal; @@ -27,25 +28,25 @@ public class ReceivablePlanExcelVO { @ExcelProperty("回款ID") private Long receivableId; - @ExcelProperty(value = "完成状态", converter = DictConvert.class) - @DictFormat("common_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) private Integer status; @ExcelProperty(value = "审批状态", converter = DictConvert.class) - @DictFormat("crm_receivable_check_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(cn.iocoder.yudao.module.crm.enums.DictTypeConstants.CRM_RECEIVABLE_CHECK_STATUS) private Integer checkStatus; //@ExcelProperty("工作流编号") //private Long processInstanceId; @ExcelProperty("计划回款金额") - private BigDecimal price; + private Integer price; @ExcelProperty("计划回款日期") private LocalDateTime returnTime; @ExcelProperty("提前几天提醒") - private Long remindDays; + private Integer remindDays; @ExcelProperty("提醒日期") private LocalDateTime remindTime; @@ -53,7 +54,7 @@ public class ReceivablePlanExcelVO { @ExcelProperty("客户ID") private Long customerId; - @ExcelProperty("合同ID") + @ExcelProperty("合同名称") private Long contractId; @ExcelProperty("负责人") diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExportReqVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExportReqVO.java index 694deb8fc..803e1ed03 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExportReqVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanExportReqVO.java @@ -26,16 +26,16 @@ public class ReceivablePlanExportReqVO { private LocalDateTime[] returnTime; @Schema(description = "提前几天提醒") - private Long remindDays; + private Integer remindDays; @Schema(description = "提醒日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] remindTime; - @Schema(description = "客户ID", example = "18026") + @Schema(description = "客户名称", example = "18026") private Long customerId; - @Schema(description = "合同ID", example = "3473") + @Schema(description = "合同名称", example = "3473") private Long contractId; @Schema(description = "负责人", example = "17828") diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanPageReqVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanPageReqVO.java index c445bee50..c92b4e891 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanPageReqVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivablePlanPageReqVO.java @@ -17,11 +17,6 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class ReceivablePlanPageReqVO extends PageParam { - // TODO 芋艿:筛选字段,需要去掉几个,在想想; - - @Schema(description = "期数") - private Integer period; - @Schema(description = "完成状态", example = "2") private Integer status; @@ -32,25 +27,19 @@ public class ReceivablePlanPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] returnTime; - @Schema(description = "提前几天提醒") - private Long remindDays; - @Schema(description = "提醒日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] remindTime; - @Schema(description = "客户ID", example = "18026") + @Schema(description = "客户名称", example = "18026") private Long customerId; - @Schema(description = "合同ID", example = "3473") + @Schema(description = "合同名称", example = "3473") private Long contractId; @Schema(description = "负责人", example = "17828") private Long ownerUserId; - @Schema(description = "备注", example = "随便") - private String remark; - @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivableDO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivableDO.java index d80f76a91..0cf2423de 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivableDO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivableDO.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; -import java.math.BigDecimal; import java.time.LocalDateTime; /** @@ -34,27 +33,26 @@ public class ReceivableDO extends BaseDO { */ private String no; /** - * 回款计划ID + * 回款计划 * - * TODO @liuhongfeng:这个字段,后续要写下关联的实体哈 + * 对应实体 {@link cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivablePlanDO} */ private Long planId; /** * 客户ID * - * TODO @liuhongfeng:这个字段,后续要写下关联的实体哈 + * 对应实体 {@link cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO} */ private Long customerId; /** * 合同ID * - * TODO @liuhongfeng:这个字段,后续要写下关联的实体哈 + * 对应实体 {@link cn.iocoder.yudao.module.crm.dal.dataobject.contract.ContractDO} */ private Long contractId; /** * 审批状态 - * - * 枚举 {@link TODO crm_receivable_check_status 对应的类} + * 对应字典 {@link cn.iocoder.yudao.module.crm.enums.DictTypeConstants#CRM_RECEIVABLE_CHECK_STATUS} */ private Integer checkStatus; /** @@ -74,7 +72,7 @@ public class ReceivableDO extends BaseDO { /** * 回款金额 */ - private BigDecimal price; + private Integer price; /** * 负责人 */ @@ -99,7 +97,8 @@ public class ReceivableDO extends BaseDO { /** * 状态 * - * 枚举 {@link TODO common_status 对应的类} + * 枚举 {@link cn.iocoder.yudao.framework.common.enums.CommonStatusEnum} + * */ private Integer status; /** diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivablePlanDO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivablePlanDO.java index 56ef67962..caaee7211 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivablePlanDO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/ReceivablePlanDO.java @@ -37,15 +37,15 @@ public class ReceivablePlanDO extends BaseDO { */ private Long receivableId; /** - * 完成状态 + * 状态 + * + * 枚举 {@link cn.iocoder.yudao.framework.common.enums.CommonStatusEnum} * - * 枚举 {@link TODO common_status 对应的类} */ private Integer status; /** * 审批状态 - * - * 枚举 {@link TODO crm_receivable_check_status 对应的类} + * 对应字典 {@link cn.iocoder.yudao.module.crm.enums.DictTypeConstants#CRM_RECEIVABLE_CHECK_STATUS} */ private Integer checkStatus; /** @@ -55,7 +55,7 @@ public class ReceivablePlanDO extends BaseDO { /** * 计划回款金额 */ - private BigDecimal price; + private Integer price; /** * 计划回款日期 */ @@ -63,7 +63,7 @@ public class ReceivablePlanDO extends BaseDO { /** * 提前几天提醒 */ - private Long remindDays; + private Integer remindDays; /** * 提醒日期 */ diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivableMapper.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivableMapper.java index 08031772c..0ef7165f4 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivableMapper.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivableMapper.java @@ -24,17 +24,11 @@ public interface ReceivableMapper extends BaseMapperX { .eqIfPresent(ReceivableDO::getCustomerId, reqVO.getCustomerId()) .eqIfPresent(ReceivableDO::getContractId, reqVO.getContractId()) .eqIfPresent(ReceivableDO::getCheckStatus, reqVO.getCheckStatus()) - .eqIfPresent(ReceivableDO::getProcessInstanceId, reqVO.getProcessInstanceId()) .betweenIfPresent(ReceivableDO::getReturnTime, reqVO.getReturnTime()) .eqIfPresent(ReceivableDO::getReturnType, reqVO.getReturnType()) .eqIfPresent(ReceivableDO::getPrice, reqVO.getPrice()) .eqIfPresent(ReceivableDO::getOwnerUserId, reqVO.getOwnerUserId()) - .eqIfPresent(ReceivableDO::getBatchId, reqVO.getBatchId()) - .eqIfPresent(ReceivableDO::getSort, reqVO.getSort()) - .eqIfPresent(ReceivableDO::getDataScope, reqVO.getDataScope()) - .eqIfPresent(ReceivableDO::getDataScopeDeptIds, reqVO.getDataScopeDeptIds()) .eqIfPresent(ReceivableDO::getStatus, reqVO.getStatus()) - .eqIfPresent(ReceivableDO::getRemark, reqVO.getRemark()) .betweenIfPresent(ReceivableDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(ReceivableDO::getId)); } @@ -46,15 +40,11 @@ public interface ReceivableMapper extends BaseMapperX { .eqIfPresent(ReceivableDO::getCustomerId, reqVO.getCustomerId()) .eqIfPresent(ReceivableDO::getContractId, reqVO.getContractId()) .eqIfPresent(ReceivableDO::getCheckStatus, reqVO.getCheckStatus()) - .eqIfPresent(ReceivableDO::getProcessInstanceId, reqVO.getProcessInstanceId()) .betweenIfPresent(ReceivableDO::getReturnTime, reqVO.getReturnTime()) .eqIfPresent(ReceivableDO::getReturnType, reqVO.getReturnType()) .eqIfPresent(ReceivableDO::getPrice, reqVO.getPrice()) .eqIfPresent(ReceivableDO::getOwnerUserId, reqVO.getOwnerUserId()) .eqIfPresent(ReceivableDO::getBatchId, reqVO.getBatchId()) - .eqIfPresent(ReceivableDO::getSort, reqVO.getSort()) - .eqIfPresent(ReceivableDO::getDataScope, reqVO.getDataScope()) - .eqIfPresent(ReceivableDO::getDataScopeDeptIds, reqVO.getDataScopeDeptIds()) .eqIfPresent(ReceivableDO::getStatus, reqVO.getStatus()) .eqIfPresent(ReceivableDO::getRemark, reqVO.getRemark()) .betweenIfPresent(ReceivableDO::getCreateTime, reqVO.getCreateTime()) diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivablePlanMapper.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivablePlanMapper.java index 3251c6787..516f20c0c 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivablePlanMapper.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/ReceivablePlanMapper.java @@ -19,16 +19,13 @@ public interface ReceivablePlanMapper extends BaseMapperX { default PageResult selectPage(ReceivablePlanPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(ReceivablePlanDO::getPeriod, reqVO.getPeriod()) .eqIfPresent(ReceivablePlanDO::getStatus, reqVO.getStatus()) .eqIfPresent(ReceivablePlanDO::getCheckStatus, reqVO.getCheckStatus()) .betweenIfPresent(ReceivablePlanDO::getReturnTime, reqVO.getReturnTime()) - .eqIfPresent(ReceivablePlanDO::getRemindDays, reqVO.getRemindDays()) .betweenIfPresent(ReceivablePlanDO::getRemindTime, reqVO.getRemindTime()) .eqIfPresent(ReceivablePlanDO::getCustomerId, reqVO.getCustomerId()) .eqIfPresent(ReceivablePlanDO::getContractId, reqVO.getContractId()) .eqIfPresent(ReceivablePlanDO::getOwnerUserId, reqVO.getOwnerUserId()) - .eqIfPresent(ReceivablePlanDO::getRemark, reqVO.getRemark()) .betweenIfPresent(ReceivablePlanDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(ReceivablePlanDO::getId)); } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java index cf216d4d2..d3c7a16ef 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java @@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.crm.convert.receivable.ReceivableConvert; import cn.iocoder.yudao.module.crm.dal.dataobject.contract.ContractDO; import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO; import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivableDO; +import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivablePlanDO; import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivableMapper; import cn.iocoder.yudao.module.crm.enums.AuditStatusEnum; import cn.iocoder.yudao.module.crm.service.contract.ContractService; @@ -43,10 +44,11 @@ public class ReceivableServiceImpl implements ReceivableService { private ContractService contractService; @Resource private CrmCustomerService crmCustomerService; + @Resource + private ReceivablePlanService receivablePlanService; @Override public Long createReceivable(ReceivableCreateReqVO createReqVO) { - // TODO @liuhongfeng:planId 是否存在,是否合法,需要去校验; // 插入 ReceivableDO receivable = ReceivableConvert.INSTANCE.convert(createReqVO); if (ObjectUtil.isNull(receivable.getStatus())){ @@ -80,6 +82,11 @@ public class ReceivableServiceImpl implements ReceivableService { throw exception(CUSTOMER_NOT_EXISTS); } + ReceivablePlanDO receivablePlan = receivablePlanService.getReceivablePlan(receivable.getPlanId()); + if(ObjectUtil.isNull(receivablePlan)){ + throw exception(RECEIVABLE_PLAN_NOT_EXISTS); + } + } @Override diff --git a/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivablePlanServiceImplTest.java b/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivablePlanServiceImplTest.java index 4f9fb8d26..952514ecb 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivablePlanServiceImplTest.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivablePlanServiceImplTest.java @@ -144,16 +144,13 @@ public class ReceivablePlanServiceImplTest extends BaseDbUnitTest { receivablePlanMapper.insert(cloneIgnoreId(dbReceivablePlan, o -> o.setCreateTime(null))); // 准备参数 ReceivablePlanPageReqVO reqVO = new ReceivablePlanPageReqVO(); - reqVO.setPeriod(null); reqVO.setStatus(null); reqVO.setCheckStatus(null); reqVO.setReturnTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); - reqVO.setRemindDays(null); reqVO.setRemindTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); reqVO.setCustomerId(null); reqVO.setContractId(null); reqVO.setOwnerUserId(null); - reqVO.setRemark(null); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); // 调用 diff --git a/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImplTest.java b/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImplTest.java index b8d4018b4..906fdb436 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImplTest.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/test/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImplTest.java @@ -167,17 +167,11 @@ public class ReceivableServiceImplTest extends BaseDbUnitTest { reqVO.setCustomerId(null); reqVO.setContractId(null); reqVO.setCheckStatus(null); - reqVO.setProcessInstanceId(null); reqVO.setReturnTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); reqVO.setReturnType(null); reqVO.setPrice(null); reqVO.setOwnerUserId(null); - reqVO.setBatchId(null); - reqVO.setSort(null); - reqVO.setDataScope(null); - reqVO.setDataScopeDeptIds(null); reqVO.setStatus(null); - reqVO.setRemark(null); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); // 调用 @@ -253,15 +247,11 @@ public class ReceivableServiceImplTest extends BaseDbUnitTest { reqVO.setCustomerId(null); reqVO.setContractId(null); reqVO.setCheckStatus(null); - reqVO.setProcessInstanceId(null); reqVO.setReturnTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); reqVO.setReturnType(null); reqVO.setPrice(null); reqVO.setOwnerUserId(null); reqVO.setBatchId(null); - reqVO.setSort(null); - reqVO.setDataScope(null); - reqVO.setDataScopeDeptIds(null); reqVO.setStatus(null); reqVO.setRemark(null); reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));