From 2033d39243052f8e2d620856a5f979fe36f9e303 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 26 Dec 2025 14:00:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(crm):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=93=8D=E4=BD=9C=E8=BF=BD=E6=BA=AF=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E7=9A=84=E7=94=A8=E6=88=B7=E6=98=B5=E7=A7=B0=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=92=8C=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 ISysUserService 用于获取用户昵称映射 - 在查询结果中添加创建人和更新人的昵称信息 - 实现用户名称到昵称的批量转换功能 - 按创建时间正序排列订单操作追溯记录 - 扩展 CrmOrderOperationTraceVo 类继承 BaseEntity - 添加 createByName 和 updateByName 字段用于显示用户昵称 --- .../domain/vo/CrmOrderOperationTraceVo.java | 6 ++- .../CrmOrderOperationTraceServiceImpl.java | 37 +++++++++++++++++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderOperationTraceVo.java b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderOperationTraceVo.java index 37621505..29dc371c 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderOperationTraceVo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderOperationTraceVo.java @@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.convert.ExcelDictConvert; +import com.klp.common.core.domain.BaseEntity; import lombok.Data; @@ -17,7 +18,7 @@ import lombok.Data; */ @Data @ExcelIgnoreUnannotated -public class CrmOrderOperationTraceVo { +public class CrmOrderOperationTraceVo extends BaseEntity { private static final long serialVersionUID = 1L; @@ -79,5 +80,8 @@ public class CrmOrderOperationTraceVo { @ExcelProperty(value = "备注") private String remark; + private String createByName; + private String updateByName; + } diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java index 8ba98523..6a550c6e 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderOperationTraceServiceImpl.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; +import com.klp.domain.vo.WmsMaterialCoilVo; +import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.crm.domain.bo.CrmOrderOperationTraceBo; @@ -15,9 +17,8 @@ import com.klp.crm.domain.CrmOrderOperationTrace; import com.klp.crm.mapper.CrmOrderOperationTraceMapper; import com.klp.crm.service.ICrmOrderOperationTraceService; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 订单操作追溯Service业务层处理 @@ -31,6 +32,8 @@ public class CrmOrderOperationTraceServiceImpl implements ICrmOrderOperationTrac private final CrmOrderOperationTraceMapper baseMapper; + private final ISysUserService userService; + /** * 查询订单操作追溯 */ @@ -46,6 +49,32 @@ public class CrmOrderOperationTraceServiceImpl implements ICrmOrderOperationTrac public TableDataInfo queryPageList(CrmOrderOperationTraceBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + List records = result.getRecords(); + if (records == null || records.isEmpty()) { + return TableDataInfo.build(result); + } + + Set userNames = records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + + Map nickMap = Collections.emptyMap(); + if (!userNames.isEmpty()) { + nickMap = userService.selectNickNameMapByUserNames(new ArrayList<>(userNames)); + } + + // 单次遍历:填充创建/更新人昵称,并构建物料/产品对象 + for (CrmOrderOperationTraceVo vo : records) { + if (!nickMap.isEmpty()) { + if (StringUtils.isNotBlank(vo.getCreateBy())) { + vo.setCreateByName(nickMap.getOrDefault(vo.getCreateBy(), vo.getCreateBy())); + } + if (StringUtils.isNotBlank(vo.getUpdateBy())) { + vo.setUpdateByName(nickMap.getOrDefault(vo.getUpdateBy(), vo.getUpdateBy())); + } + } + } return TableDataInfo.build(result); } @@ -68,6 +97,8 @@ public class CrmOrderOperationTraceServiceImpl implements ICrmOrderOperationTrac lqw.eq(StringUtils.isNotBlank(bo.getOperationContent()), CrmOrderOperationTrace::getOperationContent, bo.getOperationContent()); lqw.eq(StringUtils.isNotBlank(bo.getOperator()), CrmOrderOperationTrace::getOperator, bo.getOperator()); lqw.eq(bo.getOperationTime() != null, CrmOrderOperationTrace::getOperationTime, bo.getOperationTime()); + //根据创建时间正序排序 + lqw.orderByAsc(CrmOrderOperationTrace::getCreateTime); return lqw; }