|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.crm.controller.admin.business;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.lang.Assert;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
@@ -8,6 +9,7 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
|
|
import cn.iocoder.yudao.module.crm.controller.admin.business.vo.business.*;
|
|
|
import cn.iocoder.yudao.module.crm.controller.admin.business.vo.status.CrmBusinessStatusQueryVO;
|
|
|
import cn.iocoder.yudao.module.crm.controller.admin.business.vo.type.CrmBusinessStatusTypeQueryVO;
|
|
|
+import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.CrmContractPageReqVO;
|
|
|
import cn.iocoder.yudao.module.crm.convert.business.CrmBusinessConvert;
|
|
|
import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
|
|
|
import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessStatusDO;
|
|
@@ -109,7 +111,32 @@ public class CrmBusinessController {
|
|
|
List<CrmBusinessStatusTypeDO> statusTypeList = businessStatusTypeService.selectList(queryStatusTypeVO);
|
|
|
// 处理商机状态名称回显
|
|
|
Set<Long> statusIds = pageResult.getList().stream()
|
|
|
+ .map(CrmBusinessDO::getStatusId).filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
+ CrmBusinessStatusQueryVO queryVO = new CrmBusinessStatusQueryVO();
|
|
|
+ queryVO.setIdList(statusIds);
|
|
|
+ List<CrmBusinessStatusDO> statusList = businessStatusService.selectList(queryVO);
|
|
|
+ return success(CrmBusinessConvert.INSTANCE.convertPage(pageResult, customerList, statusTypeList, statusList));
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/page-by-customer")
|
|
|
+ @Operation(summary = "获得商机分页,基于指定客户")
|
|
|
+ public CommonResult<PageResult<CrmBusinessRespVO>> getBusinessPageByCustomer(@Valid CrmContractPageReqVO pageReqVO) {
|
|
|
+ Assert.notNull(pageReqVO.getCustomerId(), "客户编号不能为空");
|
|
|
+ PageResult<CrmBusinessDO> pageResult = businessService.getBusinessPageByCustomer(pageReqVO);
|
|
|
+ // 处理客户名称回显
|
|
|
+ // TODO @ljlleo:可以使用 CollectionUtils.convertSet 替代常用的 stream 操作,更简洁一点;下面几个也是哈;
|
|
|
+ Set<Long> customerIds = pageResult.getList().stream()
|
|
|
.map(CrmBusinessDO::getCustomerId).filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
+ List<CrmCustomerDO> customerList = customerService.getCustomerList(customerIds);
|
|
|
+ // 处理商机状态类型名称回显
|
|
|
+ Set<Long> statusTypeIds = pageResult.getList().stream()
|
|
|
+ .map(CrmBusinessDO::getStatusTypeId).filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
+ CrmBusinessStatusTypeQueryVO queryStatusTypeVO = new CrmBusinessStatusTypeQueryVO();
|
|
|
+ queryStatusTypeVO.setIdList(statusTypeIds);
|
|
|
+ List<CrmBusinessStatusTypeDO> statusTypeList = businessStatusTypeService.selectList(queryStatusTypeVO);
|
|
|
+ // 处理商机状态名称回显
|
|
|
+ Set<Long> statusIds = pageResult.getList().stream()
|
|
|
+ .map(CrmBusinessDO::getStatusId).filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
CrmBusinessStatusQueryVO queryVO = new CrmBusinessStatusQueryVO();
|
|
|
queryVO.setIdList(statusIds);
|
|
|
List<CrmBusinessStatusDO> statusList = businessStatusService.selectList(queryVO);
|
|
@@ -128,12 +155,12 @@ public class CrmBusinessController {
|
|
|
@Operation(summary = "导出商机 Excel")
|
|
|
@PreAuthorize("@ss.hasPermission('crm:business:export')")
|
|
|
@OperateLog(type = EXPORT)
|
|
|
- public void exportBusinessExcel(@Valid CrmBusinessExportReqVO exportReqVO,
|
|
|
+ public void exportBusinessExcel(@Valid CrmBusinessPageReqVO exportReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
- List<CrmBusinessDO> list = businessService.getBusinessList(exportReqVO);
|
|
|
+ PageResult<CrmBusinessDO> pageResult = businessService.getBusinessPage(exportReqVO, getLoginUserId());
|
|
|
// 导出 Excel
|
|
|
- List<CrmBusinessExcelVO> datas = CrmBusinessConvert.INSTANCE.convertList02(list);
|
|
|
- ExcelUtils.write(response, "商机.xls", "数据", CrmBusinessExcelVO.class, datas);
|
|
|
+ ExcelUtils.write(response, "商机.xls", "数据", CrmBusinessExcelVO.class,
|
|
|
+ CrmBusinessConvert.INSTANCE.convertList02(pageResult.getList()));
|
|
|
}
|
|
|
|
|
|
@PutMapping("/transfer")
|