diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmcontract/dto/CrmContractProductSettlementDTO.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmcontract/dto/CrmContractProductSettlementDTO.java index db2633e5..9c89fc0b 100644 --- a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmcontract/dto/CrmContractProductSettlementDTO.java +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmcontract/dto/CrmContractProductSettlementDTO.java @@ -22,6 +22,9 @@ public class CrmContractProductSettlementDTO { @Schema(description = "数量") private Integer nums; + @Schema(description = "渠道商转介数量") + private Integer channelNums; + @Schema(description = "折扣") private BigDecimal discount; diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessRespVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessRespVO.java index fc39bba4..28b877fa 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessRespVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessRespVO.java @@ -76,4 +76,15 @@ public class CrmBusinessRespVO { @Schema(description = "负责人") private String ownUserName; + @Schema(description = "是否渠道商转介 | 0否 1是") + private Integer isChannel; + + @Schema(description = "渠道商名称") + private String channelName; + + @Schema(description = "渠道商联系方式") + private String channelPhone; + + @Schema(description = "渠道商银行卡号") + private String channelBankNo; } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessSaveReqVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessSaveReqVO.java index d907dab6..97e5b9a4 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessSaveReqVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/vo/CrmBusinessSaveReqVO.java @@ -54,8 +54,19 @@ public class CrmBusinessSaveReqVO { @Schema(description = "负责人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24317") private Long ownerUserId; - @Schema(description = "商机产品关联列表") private List businessProducts; + @Schema(description = "是否渠道商转介 | 0否 1是") + private Integer isChannel; + + @Schema(description = "渠道商名称") + private String channelName; + + @Schema(description = "渠道商联系方式") + private String channelPhone; + + @Schema(description = "渠道商银行卡号") + private String channelBankNo; + } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementRespVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementRespVO.java index 2b074917..9e94c15c 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementRespVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementRespVO.java @@ -41,9 +41,15 @@ public class SalesPerformanceSettlementRespVO { @Schema(description = "实际回款额") private BigDecimal actualPayment; + @Schema(description = "渠道回款额") + private BigDecimal channelPayment; + @Schema(description = "实际销售额") private Integer actualSale; + @Schema(description = "渠道销售额") + private Integer channelSale; + @Schema(description = "回款目标") private BigDecimal paymentTarget; diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementSaveReqVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementSaveReqVO.java index acd85d1a..1853bd87 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementSaveReqVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/salesperformancesettlement/vo/SalesPerformanceSettlementSaveReqVO.java @@ -32,9 +32,15 @@ public class SalesPerformanceSettlementSaveReqVO { @Schema(description = "实际回款额") private BigDecimal actualPayment; + @Schema(description = "渠道回款额") + private BigDecimal channelPayment; + @Schema(description = "实际销售额") private Integer actualSale; + @Schema(description = "渠道销售额") + private Integer channelSale; + @Schema(description = "评分") private BigDecimal score; diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/crmbusiness/CrmBusinessDO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/crmbusiness/CrmBusinessDO.java index c731e46c..e0c17e0c 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/crmbusiness/CrmBusinessDO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/crmbusiness/CrmBusinessDO.java @@ -77,6 +77,20 @@ public class CrmBusinessDO extends BaseDO { * 负责人ID */ private Long ownerUserId; - - + /** + * 是否渠道商转介 | 0否 1是 + */ + private Integer isChannel; + /** + * 渠道商名称 + */ + private String channelName; + /** + * 渠道商电话 + */ + private String channelPhone; + /** + * 渠道商银行账号 + */ + private String channelBankNo; } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/salesperformancesettlement/SalesPerformanceSettlementDO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/salesperformancesettlement/SalesPerformanceSettlementDO.java index 0283b5e2..424f1604 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/salesperformancesettlement/SalesPerformanceSettlementDO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/salesperformancesettlement/SalesPerformanceSettlementDO.java @@ -51,10 +51,18 @@ public class SalesPerformanceSettlementDO extends BaseDO { * 实际回款额 */ private BigDecimal actualPayment; + /** + * 渠道商回款额 + */ + private BigDecimal channelPayment; /** * 实际销售额 */ private Integer actualSale; + /** + * 渠道商销售额 + */ + private Integer channelSale; /** * 评分 */ diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/salesperformancesettlement/SalesPerformanceSettlementServiceImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/salesperformancesettlement/SalesPerformanceSettlementServiceImpl.java index 1af07d2a..97446a58 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/salesperformancesettlement/SalesPerformanceSettlementServiceImpl.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/salesperformancesettlement/SalesPerformanceSettlementServiceImpl.java @@ -55,6 +55,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; import static cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants.NOT_EDITABLE_UNTIL_SALES_TARGET_HAS_BEEN_APPLIED; /** @@ -219,6 +220,10 @@ public class SalesPerformanceSettlementServiceImpl extends ServiceImpl productMap = contractProductSettlementDTOList.stream().collect(Collectors.groupingBy(CrmContractProductSettlementDTO::getUserId, Collectors.summingInt(CrmContractProductSettlementDTO::getNums))); + //根据用户id分组 并且合并渠道商转介数量 + Map channelMap = contractProductSettlementDTOList.stream().collect(Collectors.groupingBy(CrmContractProductSettlementDTO::getUserId, + Collectors.summingInt(CrmContractProductSettlementDTO::getChannelNums))); + // -- 回款申请 / - 回了多少就是多少咯 - 这个没啥业务判断当前月回了多少款即可 LocalDateTime beginTime = LocalDateTimeUtils.beginOfMonth(now); LocalDateTime endTime = LocalDateTimeUtils.endOfMonth(now); @@ -227,8 +232,8 @@ public class SalesPerformanceSettlementServiceImpl extends ServiceImpl receiptSettlementList = receiptApi.getReceiptSettlement(receiptSettlementVO).getCheckedData(); receiptSettlementList = CollUtil.isEmpty(receiptSettlementList) ? Collections.emptyList() : receiptSettlementList; - Map receiptSettlementMap = receiptSettlementList.stream() - .collect(Collectors.toMap(ReceiptSettlementDTO::getUserId, ReceiptSettlementDTO::getMoney)); + Map receiptSettlementMap = convertMap(receiptSettlementList, ReceiptSettlementDTO::getUserId); + List salesPerformanceSettlementDOS = salesPerformanceSettlementMapper.selectList(new LambdaQueryWrapperX() .eq(SalesPerformanceSettlementDO::getYear, year) .eq(SalesPerformanceSettlementDO::getMonth, month)); @@ -244,6 +249,7 @@ public class SalesPerformanceSettlementServiceImpl extends ServiceImpl