feat(crm): 添加订单操作追溯功能的用户昵称显示和排序
- 引入 ISysUserService 用于获取用户昵称映射 - 在查询结果中添加创建人和更新人的昵称信息 - 实现用户名称到昵称的批量转换功能 - 按创建时间正序排列订单操作追溯记录 - 扩展 CrmOrderOperationTraceVo 类继承 BaseEntity - 添加 createByName 和 updateByName 字段用于显示用户昵称
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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<CrmOrderOperationTraceVo> queryPageList(CrmOrderOperationTraceBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<CrmOrderOperationTrace> lqw = buildQueryWrapper(bo);
|
||||
Page<CrmOrderOperationTraceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
List<CrmOrderOperationTraceVo> records = result.getRecords();
|
||||
if (records == null || records.isEmpty()) {
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
Set<String> userNames = records.stream()
|
||||
.flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy()))
|
||||
.filter(StringUtils::isNotBlank)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
Map<String, String> 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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user