Commit b6098cff83184edb23da95a7325263ce3bbd771d

Authored by YunaiV
1 parent 29f1eb2c

✨ CRM:商机接入合同列表

yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/contract/CrmContractController.java
@@ -138,6 +138,14 @@ public class CrmContractController { @@ -138,6 +138,14 @@ public class CrmContractController {
138 return success(BeanUtils.toBean(pageResult, CrmContractRespVO.class).setList(buildContractDetailList(pageResult.getList()))); 138 return success(BeanUtils.toBean(pageResult, CrmContractRespVO.class).setList(buildContractDetailList(pageResult.getList())));
139 } 139 }
140 140
  141 + @GetMapping("/page-by-business")
  142 + @Operation(summary = "获得合同分页,基于指定商机")
  143 + public CommonResult<PageResult<CrmContractRespVO>> getContractPageByBusiness(@Valid CrmContractPageReqVO pageVO) {
  144 + Assert.notNull(pageVO.getBusinessId(), "商机编号不能为空");
  145 + PageResult<CrmContractDO> pageResult = contractService.getContractPageByBusinessId(pageVO);
  146 + return success(BeanUtils.toBean(pageResult, CrmContractRespVO.class).setList(buildContractDetailList(pageResult.getList())));
  147 + }
  148 +
141 @GetMapping("/export-excel") 149 @GetMapping("/export-excel")
142 @Operation(summary = "导出合同 Excel") 150 @Operation(summary = "导出合同 Excel")
143 @PreAuthorize("@ss.hasPermission('crm:contract:export')") 151 @PreAuthorize("@ss.hasPermission('crm:contract:export')")
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contract/CrmContractMapper.java
@@ -39,6 +39,16 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; { @@ -39,6 +39,16 @@ public interface CrmContractMapper extends BaseMapperX&lt;CrmContractDO&gt; {
39 .orderByDesc(CrmContractDO::getId)); 39 .orderByDesc(CrmContractDO::getId));
40 } 40 }
41 41
  42 + default PageResult<CrmContractDO> selectPageByBusinessId(CrmContractPageReqVO pageReqVO) {
  43 + return selectPage(pageReqVO, new LambdaQueryWrapperX<CrmContractDO>()
  44 + .eq(CrmContractDO::getBusinessId, pageReqVO.getBusinessId())
  45 + .likeIfPresent(CrmContractDO::getNo, pageReqVO.getNo())
  46 + .likeIfPresent(CrmContractDO::getName, pageReqVO.getName())
  47 + .eqIfPresent(CrmContractDO::getCustomerId, pageReqVO.getCustomerId())
  48 + .eqIfPresent(CrmContractDO::getBusinessId, pageReqVO.getBusinessId())
  49 + .orderByDesc(CrmContractDO::getId));
  50 + }
  51 +
42 default PageResult<CrmContractDO> selectPage(CrmContractPageReqVO pageReqVO, Long userId) { 52 default PageResult<CrmContractDO> selectPage(CrmContractPageReqVO pageReqVO, Long userId) {
43 MPJLambdaWrapperX<CrmContractDO> query = new MPJLambdaWrapperX<>(); 53 MPJLambdaWrapperX<CrmContractDO> query = new MPJLambdaWrapperX<>();
44 // 拼接数据权限的查询条件 54 // 拼接数据权限的查询条件
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java
@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractPageReqVO; 4 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractPageReqVO;
5 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractSaveReqVO; 5 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractSaveReqVO;
6 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractTransferReqVO; 6 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractTransferReqVO;
  7 +import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
7 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO; 8 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO;
8 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractProductDO; 9 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractProductDO;
9 import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO; 10 import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO;
@@ -109,11 +110,21 @@ public interface CrmContractService { @@ -109,11 +110,21 @@ public interface CrmContractService {
109 * 数据权限:基于 {@link CrmCustomerDO} 读取 110 * 数据权限:基于 {@link CrmCustomerDO} 读取
110 * 111 *
111 * @param pageReqVO 分页查询 112 * @param pageReqVO 分页查询
112 - * @return 联系人分页 113 + * @return 合同分页
113 */ 114 */
114 PageResult<CrmContractDO> getContractPageByCustomerId(CrmContractPageReqVO pageReqVO); 115 PageResult<CrmContractDO> getContractPageByCustomerId(CrmContractPageReqVO pageReqVO);
115 116
116 /** 117 /**
  118 + * 获得合同分页,基于指定商机
  119 + *
  120 + * 数据权限:基于 {@link CrmBusinessDO} 读取
  121 + *
  122 + * @param pageReqVO 分页查询
  123 + * @return 合同分页
  124 + */
  125 + PageResult<CrmContractDO> getContractPageByBusinessId(CrmContractPageReqVO pageReqVO);
  126 +
  127 + /**
117 * 查询属于某个联系人的合同数量 128 * 查询属于某个联系人的合同数量
118 * 129 *
119 * @param contactId 联系人ID 130 * @param contactId 联系人ID
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
@@ -342,6 +342,12 @@ public class CrmContractServiceImpl implements CrmContractService { @@ -342,6 +342,12 @@ public class CrmContractServiceImpl implements CrmContractService {
342 } 342 }
343 343
344 @Override 344 @Override
  345 + @CrmPermission(bizType = CrmBizTypeEnum.CRM_BUSINESS, bizId = "#pageReqVO.businessId", level = CrmPermissionLevelEnum.READ)
  346 + public PageResult<CrmContractDO> getContractPageByBusinessId(CrmContractPageReqVO pageReqVO) {
  347 + return contractMapper.selectPageByBusinessId(pageReqVO);
  348 + }
  349 +
  350 + @Override
345 public Long getContractCountByContactId(Long contactId) { 351 public Long getContractCountByContactId(Long contactId) {
346 return contractMapper.selectCountByContactId(contactId); 352 return contractMapper.selectCountByContactId(contactId);
347 } 353 }