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