feat: 新增合同、订单明细导出功能,补充业务员字段展示

1.  新增crm订单主、订单明细的导出接口,支持业务精简字段导出
2.  为订单明细VO新增业务员字段,关联查询订单表填充数据
3.  在订单列表页新增业务员表格列展示
4.  为合同编辑页、订单明细页添加导出按钮并实现导出逻辑
5.  新增导出专用的VO类,处理日期格式化和状态转文本
This commit is contained in:
王文昊
2026-07-06 17:19:49 +08:00
parent e42eac9115
commit 93bb094566
12 changed files with 418 additions and 7 deletions

View File

@@ -1,7 +1,11 @@
package com.klp.crm.controller;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Arrays;
import java.util.stream.Collectors;
import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
@@ -18,6 +22,7 @@ import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.crm.domain.vo.CrmOrderItemVo;
import com.klp.crm.domain.vo.CrmOrderItemExportVo;
import com.klp.crm.domain.vo.CrmContractOrderFinanceVo;
import com.klp.crm.domain.bo.CrmOrderItemBo;
import com.klp.crm.service.ICrmOrderItemService;
@@ -56,6 +61,30 @@ public class CrmOrderItemController extends BaseController {
ExcelUtil.exportExcel(list, "正式订单明细", CrmOrderItemVo.class, response);
}
/**
* 导出正式订单明细列表(业务精简字段,用于订单明细列表页导出)
*/
@Log(title = "正式订单明细", businessType = BusinessType.EXPORT)
@PostMapping("/exportDetail")
public void exportDetail(@RequestBody CrmOrderItemBo bo, HttpServletResponse response) {
List<CrmOrderItemVo> list = iCrmOrderItemService.queryList(bo);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<CrmOrderItemExportVo> exportList = list.stream().map(vo -> {
CrmOrderItemExportVo export = new CrmOrderItemExportVo();
BeanUtil.copyProperties(vo, export);
// 日期格式化
export.setSignTime(vo.getSignTime() != null ? sdf.format(vo.getSignTime()) : null);
// 展平 orderInfo 中的 salesman、orderCode、contractName
if (vo.getOrderInfo() != null) {
export.setSalesman(vo.getOrderInfo().getSalesman());
export.setOrderCode(vo.getOrderInfo().getOrderCode());
export.setContractName(vo.getOrderInfo().getContractName());
}
return export;
}).collect(Collectors.toList());
ExcelUtil.exportExcel(exportList, "订单明细列表", CrmOrderItemExportVo.class, response);
}
/**
* 获取正式订单明细详细信息
*