Commit cb8d4e0976dc6d69cd177e4fa4e9ac3e902cbcfb
1 parent
a531ba29
✨ CRM:增加回款的待办事项逻辑
Showing
10 changed files
with
38 additions
and
45 deletions
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/CrmReceivableController.java
| ... | ... | @@ -164,13 +164,6 @@ public class CrmReceivableController { |
| 164 | 164 | }); |
| 165 | 165 | } |
| 166 | 166 | |
| 167 | - @GetMapping("/check-receivables-count") | |
| 168 | - @Operation(summary = "获得待审核回款数量") | |
| 169 | - @PreAuthorize("@ss.hasPermission('crm:receivable:query')") | |
| 170 | - public CommonResult<Long> getCheckReceivablesCount() { | |
| 171 | - return success(receivableService.getCheckReceivablesCount(getLoginUserId())); | |
| 172 | - } | |
| 173 | - | |
| 174 | 167 | @PutMapping("/submit") |
| 175 | 168 | @Operation(summary = "提交回款审批") |
| 176 | 169 | @PreAuthorize("@ss.hasPermission('crm:receivable:update')") |
| ... | ... | @@ -179,4 +172,11 @@ public class CrmReceivableController { |
| 179 | 172 | return success(true); |
| 180 | 173 | } |
| 181 | 174 | |
| 175 | + @GetMapping("/audit-count") | |
| 176 | + @Operation(summary = "获得待审核回款数量") | |
| 177 | + @PreAuthorize("@ss.hasPermission('crm:receivable:query')") | |
| 178 | + public CommonResult<Long> getAuditReceivableCount() { | |
| 179 | + return success(receivableService.getAuditReceivableCount(getLoginUserId())); | |
| 180 | + } | |
| 181 | + | |
| 182 | 182 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/CrmReceivablePlanController.java
| ... | ... | @@ -163,13 +163,6 @@ public class CrmReceivablePlanController { |
| 163 | 163 | }); |
| 164 | 164 | } |
| 165 | 165 | |
| 166 | - @GetMapping("/remind-receivable-plan-count") | |
| 167 | - @Operation(summary = "获得待回款提醒数量") | |
| 168 | - @PreAuthorize("@ss.hasPermission('crm:receivable-plan:query')") | |
| 169 | - public CommonResult<Long> getRemindReceivablesCount() { | |
| 170 | - return success(receivablePlanService.getRemindReceivablePlanCount(getLoginUserId())); | |
| 171 | - } | |
| 172 | - | |
| 173 | 166 | @GetMapping("/simple-list") |
| 174 | 167 | @Operation(summary = "获得回款计划精简列表", description = "获得回款计划精简列表,主要用于前端的下拉选项") |
| 175 | 168 | @Parameters({ |
| ... | ... | @@ -187,4 +180,11 @@ public class CrmReceivablePlanController { |
| 187 | 180 | .setPrice(receivablePlan.getPrice()).setReturnType(receivablePlan.getReturnType()))); |
| 188 | 181 | } |
| 189 | 182 | |
| 183 | + @GetMapping("/remind-count") | |
| 184 | + @Operation(summary = "获得待回款提醒数量") | |
| 185 | + @PreAuthorize("@ss.hasPermission('crm:receivable-plan:query')") | |
| 186 | + public CommonResult<Long> getReceivablePlanRemindCount() { | |
| 187 | + return success(receivablePlanService.getReceivablePlanRemindCount(getLoginUserId())); | |
| 188 | + } | |
| 189 | + | |
| 190 | 190 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivableMapper.java
| ... | ... | @@ -68,13 +68,13 @@ public interface CrmReceivableMapper extends BaseMapperX<CrmReceivableDO> { |
| 68 | 68 | return selectJoinList(CrmReceivableDO.class, query); |
| 69 | 69 | } |
| 70 | 70 | |
| 71 | - default Long selectCheckReceivablesCount(Long userId) { | |
| 71 | + default Long selectCountByAudit(Long userId) { | |
| 72 | 72 | MPJLambdaWrapperX<CrmReceivableDO> query = new MPJLambdaWrapperX<>(); |
| 73 | 73 | // 我负责的 + 非公海 |
| 74 | 74 | CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_RECEIVABLE.getType(), |
| 75 | 75 | CrmReceivableDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE); |
| 76 | - // 未提交 or 审核不通过 | |
| 77 | - query.in(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.DRAFT.getStatus(), CrmAuditStatusEnum.REJECT.getStatus()); | |
| 76 | + // 未审核 | |
| 77 | + query.eq(CrmContractDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus()); | |
| 78 | 78 | return selectCount(query); |
| 79 | 79 | } |
| 80 | 80 | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java
| ... | ... | @@ -60,19 +60,16 @@ public interface CrmReceivablePlanMapper extends BaseMapperX<CrmReceivablePlanDO |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | // Backlog: 回款提醒类型 |
| 63 | - // TODO: @dhb52 需要配置 提前提醒天数 | |
| 64 | - int REMIND_DAYS = 20; | |
| 65 | 63 | LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now()); |
| 66 | - LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now()); | |
| 67 | 64 | if (CrmReceivablePlanPageReqVO.REMIND_TYPE_NEEDED.equals(pageReqVO.getRemindType())) { // 待回款 |
| 68 | - query.isNull(CrmReceivablePlanDO::getReceivableId) | |
| 69 | - .between(CrmReceivablePlanDO::getReturnTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS)); | |
| 65 | + query.isNull(CrmReceivablePlanDO::getReceivableId) // 未回款 | |
| 66 | + .lt(CrmReceivablePlanDO::getReturnTime, beginOfToday) // 已逾期 | |
| 67 | + .lt(CrmReceivablePlanDO::getRemindTime, beginOfToday); // 今天开始提醒 | |
| 70 | 68 | } else if (CrmReceivablePlanPageReqVO.REMIND_TYPE_EXPIRED.equals(pageReqVO.getRemindType())) { // 已逾期 |
| 71 | - query.isNull(CrmReceivablePlanDO::getReceivableId) | |
| 72 | - .lt(CrmReceivablePlanDO::getReturnTime, endOfToday); | |
| 69 | + query.isNull(CrmReceivablePlanDO::getReceivableId) // 未回款 | |
| 70 | + .ge(CrmReceivablePlanDO::getReturnTime, beginOfToday); // 已逾期 | |
| 73 | 71 | } else if (CrmReceivablePlanPageReqVO.REMIND_TYPE_RECEIVED.equals(pageReqVO.getRemindType())) { // 已回款 |
| 74 | - query.isNotNull(CrmReceivablePlanDO::getReceivableId) | |
| 75 | - .between(CrmReceivablePlanDO::getReturnTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS)); | |
| 72 | + query.isNotNull(CrmReceivablePlanDO::getReceivableId); | |
| 76 | 73 | } |
| 77 | 74 | return selectJoinPage(pageReqVO, CrmReceivablePlanDO.class, query); |
| 78 | 75 | } |
| ... | ... | @@ -86,20 +83,16 @@ public interface CrmReceivablePlanMapper extends BaseMapperX<CrmReceivablePlanDO |
| 86 | 83 | return selectJoinList(CrmReceivablePlanDO.class, query); |
| 87 | 84 | } |
| 88 | 85 | |
| 89 | - default Long selectRemindReceivablePlanCount(Long userId) { | |
| 86 | + default Long selectReceivablePlanCountByRemind(Long userId) { | |
| 90 | 87 | MPJLambdaWrapperX<CrmReceivablePlanDO> query = new MPJLambdaWrapperX<>(); |
| 91 | 88 | // 我负责的 + 非公海 |
| 92 | 89 | CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_RECEIVABLE_PLAN.getType(), |
| 93 | 90 | CrmReceivablePlanDO::getId, userId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE); |
| 94 | - // TODO: @dhb52 需要配置 提前提醒天数 | |
| 95 | - int REMIND_DAYS = 20; | |
| 91 | + // 未回款 + 已逾期 + 今天开始提醒 | |
| 96 | 92 | LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now()); |
| 97 | - LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now()); | |
| 98 | - query.isNull(CrmReceivablePlanDO::getReceivableId) | |
| 99 | - .between(CrmReceivablePlanDO::getReturnTime, beginOfToday, endOfToday.plusDays(REMIND_DAYS)); | |
| 100 | - // TODO return_time 小于现在; | |
| 101 | - // TODO 未回款 | |
| 102 | - // TODO remind_time 大于现在; | |
| 93 | + query.isNull(CrmReceivablePlanDO::getReceivableId) // 未回款 | |
| 94 | + .lt(CrmReceivablePlanDO::getReturnTime, beginOfToday) // 已逾期 | |
| 95 | + .lt(CrmReceivablePlanDO::getRemindTime, beginOfToday); // 今天开始提醒 | |
| 103 | 96 | return selectCount(query); |
| 104 | 97 | } |
| 105 | 98 | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/job/package-info.java
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
| ... | ... | @@ -222,7 +222,7 @@ public class CrmContractServiceImpl implements CrmContractService { |
| 222 | 222 | success = CRM_CONTRACT_DELETE_SUCCESS) |
| 223 | 223 | @CrmPermission(bizType = CrmBizTypeEnum.CRM_CONTRACT, bizId = "#id", level = CrmPermissionLevelEnum.OWNER) |
| 224 | 224 | public void deleteContract(Long id) { |
| 225 | - // TODO @合同待定:如果被 CrmReceivableDO 所使用,则不允许删除 | |
| 225 | + // TODO @puhui999:如果被 CrmReceivableDO 所使用,则不允许删除 | |
| 226 | 226 | // 校验存在 |
| 227 | 227 | CrmContractDO contract = validateContractExists(id); |
| 228 | 228 | // 删除 | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanService.java
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java
| ... | ... | @@ -184,8 +184,8 @@ public class CrmReceivablePlanServiceImpl implements CrmReceivablePlanService { |
| 184 | 184 | } |
| 185 | 185 | |
| 186 | 186 | @Override |
| 187 | - public Long getRemindReceivablePlanCount(Long userId) { | |
| 188 | - return receivablePlanMapper.selectRemindReceivablePlanCount(userId); | |
| 187 | + public Long getReceivablePlanRemindCount(Long userId) { | |
| 188 | + return receivablePlanMapper.selectReceivablePlanCountByRemind(userId); | |
| 189 | 189 | } |
| 190 | 190 | |
| 191 | 191 | } | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivableService.java
| ... | ... | @@ -110,9 +110,9 @@ public interface CrmReceivableService { |
| 110 | 110 | * 获得待审核回款数量 |
| 111 | 111 | * |
| 112 | 112 | * @param userId 用户编号 |
| 113 | - * @return 提醒数量 | |
| 113 | + * @return 待审批数量 | |
| 114 | 114 | */ |
| 115 | - Long getCheckReceivablesCount(Long userId); | |
| 115 | + Long getAuditReceivableCount(Long userId); | |
| 116 | 116 | |
| 117 | 117 | /** |
| 118 | 118 | * 获得合同已回款金额 Map | ... | ... |
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivableServiceImpl.java
| ... | ... | @@ -212,7 +212,7 @@ public class CrmReceivableServiceImpl implements CrmReceivableService { |
| 212 | 212 | if (receivable.getPlanId() != null && receivablePlanService.getReceivablePlan(receivable.getPlanId()) != null) { |
| 213 | 213 | throw exception(RECEIVABLE_DELETE_FAIL); |
| 214 | 214 | } |
| 215 | - // TODO @芋艿:审批通过时,不允许删除; | |
| 215 | + // TODO @puhui999:审批通过时,不允许删除; | |
| 216 | 216 | |
| 217 | 217 | // 2. 删除 |
| 218 | 218 | receivableMapper.deleteById(id); |
| ... | ... | @@ -280,8 +280,8 @@ public class CrmReceivableServiceImpl implements CrmReceivableService { |
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 | @Override |
| 283 | - public Long getCheckReceivablesCount(Long userId) { | |
| 284 | - return receivableMapper.selectCheckReceivablesCount(userId); | |
| 283 | + public Long getAuditReceivableCount(Long userId) { | |
| 284 | + return receivableMapper.selectCountByAudit(userId); | |
| 285 | 285 | } |
| 286 | 286 | |
| 287 | 287 | @Override | ... | ... |