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; }