From 471a980905380c91ff641a9133bf322939486c07 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Sat, 22 Feb 2025 16:29:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(crm):=20=E6=B7=BB=E5=8A=A0=E5=95=86?= =?UTF-8?q?=E6=9C=BA=E5=85=B3=E8=81=94=E4=BA=A7=E5=93=81=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=B8=9A=E7=BB=A9=E5=88=86=E6=9E=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 BusinessApi 中新增 getBusinessProduct 方法,用于获取商机所绑定的产品信息 - 实现 CrmBusinessProductDTO 数据传输对象,用于传递商机产品信息 - 在 AchievementController 中添加 getAchievement 方法,用于获取产品业绩分析数据- 实现 BusinessApiImpl 中的 getBusinessProduct 方法,调用业务服务获取产品信息 - 移除 CrmBusinessController 中的 PreAuthorize 注解 --- .../excel/core/util/SpinnerWriteHandler.java | 1 - .../oa/vo/print/BpmOAPrintDataRespVO.java | 1 - .../bpm/dal/mysql/oa/BpmOAPaymentMapper.java | 1 - .../BpmTaskCurrentAssignLeaderScript.java | 1 - .../impl/BpmTaskFactoryLeaderScript.java | 2 - .../service/oa/BpmOAImprestServiceImpl.java | 4 +- .../hrm/api/crmbusiness/BusinessApi.java | 8 ++++ .../dto/CrmBusinessProductDTO.java | 38 +++++++++++++++++++ .../crm/api/crmbusiness/BusinessApiImpl.java | 10 +++++ .../crmanalysis/AchievementController.java | 7 +++- .../crmbusiness/CrmBusinessController.java | 1 - 11 files changed, 63 insertions(+), 11 deletions(-) create mode 100644 yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/dto/CrmBusinessProductDTO.java diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java index 6b78777e..ea72fcb7 100644 --- a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/SpinnerWriteHandler.java @@ -7,7 +7,6 @@ import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.usermodel.XSSFDataValidation; -import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/print/BpmOAPrintDataRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/print/BpmOAPrintDataRespVO.java index 15a507e7..c4027d4c 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/print/BpmOAPrintDataRespVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/print/BpmOAPrintDataRespVO.java @@ -4,7 +4,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOABaseRespVO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.cash.BpmOACashRespVO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentRespVO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.reimbursement.BpmOAReimbursementRespVO; -import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOAPaymentMapper.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOAPaymentMapper.java index 04242082..eccbea30 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOAPaymentMapper.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOAPaymentMapper.java @@ -7,7 +7,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentPa import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentRespVO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; -import io.swagger.v3.oas.annotations.Parameter; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskCurrentAssignLeaderScript.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskCurrentAssignLeaderScript.java index 53352670..2eda5042 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskCurrentAssignLeaderScript.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskCurrentAssignLeaderScript.java @@ -17,7 +17,6 @@ import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.awt.event.PaintEvent; import java.util.List; import java.util.Set; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskFactoryLeaderScript.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskFactoryLeaderScript.java index 874719e2..44656920 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskFactoryLeaderScript.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskFactoryLeaderScript.java @@ -4,11 +4,9 @@ import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAExpensesItemDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALoanDO; -import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASalaryDO; import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; import cn.iocoder.yudao.module.bpm.service.oa.BpmOAExpensesService; import cn.iocoder.yudao.module.bpm.service.oa.BpmOALoanService; -import cn.iocoder.yudao.module.bpm.service.oa.BpmOASalaryService; import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java index 98ca3924..7a4e1af6 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOAImprestServiceImpl.java @@ -1,12 +1,11 @@ package cn.iocoder.yudao.module.bpm.service.oa; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.UploadUserFile; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.imprest.BpmOAImprestCreateReqVO; -import cn.iocoder.yudao.framework.common.pojo.UploadUserFile; -import cn.iocoder.yudao.module.bpm.convert.oa.BpmOAImprestConvert; import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAImprestDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; @@ -24,7 +23,6 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/BusinessApi.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/BusinessApi.java index 9f91c7d3..17470fc1 100644 --- a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/BusinessApi.java +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/BusinessApi.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.hrm.api.crmbusiness; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.hrm.api.crmbusiness.dto.CrmBusinessDTO; +import cn.iocoder.yudao.module.hrm.api.crmbusiness.dto.CrmBusinessProductDTO; import cn.iocoder.yudao.module.hrm.enums.ApiConstants; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -10,6 +11,8 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + @FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = @Tag(name = "RPC 服务 - 流程实例") public interface BusinessApi { @@ -20,4 +23,9 @@ public interface BusinessApi { @Operation(summary = "获得商机信息") @Parameter(name = "id", description = "ID", required = true) CommonResult getBusiness(@RequestParam("id") Long id); + + @GetMapping(PREFIX + "/getByBusinessId") + @Operation(summary = "获得商机所绑定产品信息") + @Parameter(name = "businessId", description = "商机编号", required = true) + CommonResult> getBusinessProduct(@RequestParam("businessId") Long businessId); } diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/dto/CrmBusinessProductDTO.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/dto/CrmBusinessProductDTO.java new file mode 100644 index 00000000..218a7b4a --- /dev/null +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/hrm/api/crmbusiness/dto/CrmBusinessProductDTO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.hrm.api.crmbusiness.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "RPC 服务 - 商机产品关联 Response DTO") +@Data +public class CrmBusinessProductDTO { + + @Schema(description = "编号") + private Long id; + + @Schema(description = "商机id") + private Long businessId; + + @Schema(description = "产品id") + private Long productId; + + @Schema(description = "商品名称") + private String name; + + @Schema(description = "商品属性") + private String productAttrUnique; + + @Schema(description = "单价") + private BigDecimal price; + + @Schema(description = "数量") + private Integer nums; + + @Schema(description = "小计") + private BigDecimal subtotal; + + @Schema(description = "备注") + private String remarks; +} diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/api/crmbusiness/BusinessApiImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/api/crmbusiness/BusinessApiImpl.java index de05b68d..c5f69870 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/api/crmbusiness/BusinessApiImpl.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/api/crmbusiness/BusinessApiImpl.java @@ -3,14 +3,18 @@ package cn.iocoder.yudao.module.crm.api.crmbusiness; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.crm.controller.admin.crmbusiness.vo.CrmBusinessRespVO; +import cn.iocoder.yudao.module.crm.dal.dataobject.crmbusiness.CrmBusinessProductDO; import cn.iocoder.yudao.module.crm.service.crmbusiness.CrmBusinessService; import cn.iocoder.yudao.module.hrm.api.crmbusiness.BusinessApi; import cn.iocoder.yudao.module.hrm.api.crmbusiness.dto.CrmBusinessDTO; +import cn.iocoder.yudao.module.hrm.api.crmbusiness.dto.CrmBusinessProductDTO; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; /** @@ -28,4 +32,10 @@ public class BusinessApiImpl implements BusinessApi { CrmBusinessRespVO businessDO = businessService.getBusiness(id); return success(BeanUtils.toBean(businessDO, CrmBusinessDTO.class)); } + + @Override + public CommonResult> getBusinessProduct(Long businessId) { + List businessProductList = businessService.getBusinessProductListByBusinessId(businessId); + return success(BeanUtils.toBean(businessProductList, CrmBusinessProductDTO.class)); + } } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmanalysis/AchievementController.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmanalysis/AchievementController.java index 56b7c30d..e3a59734 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmanalysis/AchievementController.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmanalysis/AchievementController.java @@ -56,7 +56,12 @@ public class AchievementController { return success(achievementService.getSales(relation)); } - + @GetMapping("/product-performance") + @Operation(summary = "获得产品业绩分析") + public CommonResult> getAchievement(@Valid AchievementPageReqVO pageReqVO) { + List deptAchieveRespVOS = achievementService.getDeptAchieve(pageReqVO); + return success(deptAchieveRespVOS); + } } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/CrmBusinessController.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/CrmBusinessController.java index d7a0b0e1..ef8f6edd 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/CrmBusinessController.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/crmbusiness/CrmBusinessController.java @@ -10,7 +10,6 @@ import cn.iocoder.yudao.module.crm.service.crmbusiness.CrmBusinessService; 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.*;