feat(crm): 添加商机关联产品信息获取接口并优化业绩分析功能
- 在 BusinessApi 中新增 getBusinessProduct 方法,用于获取商机所绑定的产品信息 - 实现 CrmBusinessProductDTO 数据传输对象,用于传递商机产品信息 - 在 AchievementController 中添加 getAchievement 方法,用于获取产品业绩分析数据- 实现 BusinessApiImpl 中的 getBusinessProduct 方法,调用业务服务获取产品信息 - 移除 CrmBusinessController 中的 PreAuthorize 注解
This commit is contained in:
parent
4900d87c40
commit
471a980905
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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<CrmBusinessDTO> getBusiness(@RequestParam("id") Long id);
|
||||
|
||||
@GetMapping(PREFIX + "/getByBusinessId")
|
||||
@Operation(summary = "获得商机所绑定产品信息")
|
||||
@Parameter(name = "businessId", description = "商机编号", required = true)
|
||||
CommonResult<List<CrmBusinessProductDTO>> getBusinessProduct(@RequestParam("businessId") Long businessId);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
@ -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<List<CrmBusinessProductDTO>> getBusinessProduct(Long businessId) {
|
||||
List<CrmBusinessProductDO> businessProductList = businessService.getBusinessProductListByBusinessId(businessId);
|
||||
return success(BeanUtils.toBean(businessProductList, CrmBusinessProductDTO.class));
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,12 @@ public class AchievementController {
|
||||
return success(achievementService.getSales(relation));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/product-performance")
|
||||
@Operation(summary = "获得产品业绩分析")
|
||||
public CommonResult<List<DeptAchieveVO>> getAchievement(@Valid AchievementPageReqVO pageReqVO) {
|
||||
List<DeptAchieveVO> deptAchieveRespVOS = achievementService.getDeptAchieve(pageReqVO);
|
||||
return success(deptAchieveRespVOS);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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.*;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user