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.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.klp.common.annotation.ExcelDictFormat;
|
import com.klp.common.annotation.ExcelDictFormat;
|
||||||
import com.klp.common.convert.ExcelDictConvert;
|
import com.klp.common.convert.ExcelDictConvert;
|
||||||
|
import com.klp.common.core.domain.BaseEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
@@ -17,7 +18,7 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
public class CrmOrderOperationTraceVo {
|
public class CrmOrderOperationTraceVo extends BaseEntity {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@@ -79,5 +80,8 @@ public class CrmOrderOperationTraceVo {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
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.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.klp.common.utils.StringUtils;
|
import com.klp.common.utils.StringUtils;
|
||||||
|
import com.klp.domain.vo.WmsMaterialCoilVo;
|
||||||
|
import com.klp.system.service.ISysUserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.klp.crm.domain.bo.CrmOrderOperationTraceBo;
|
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.mapper.CrmOrderOperationTraceMapper;
|
||||||
import com.klp.crm.service.ICrmOrderOperationTraceService;
|
import com.klp.crm.service.ICrmOrderOperationTraceService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
import java.util.stream.Collectors;
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单操作追溯Service业务层处理
|
* 订单操作追溯Service业务层处理
|
||||||
@@ -31,6 +32,8 @@ public class CrmOrderOperationTraceServiceImpl implements ICrmOrderOperationTrac
|
|||||||
|
|
||||||
private final CrmOrderOperationTraceMapper baseMapper;
|
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) {
|
public TableDataInfo<CrmOrderOperationTraceVo> queryPageList(CrmOrderOperationTraceBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<CrmOrderOperationTrace> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<CrmOrderOperationTrace> lqw = buildQueryWrapper(bo);
|
||||||
Page<CrmOrderOperationTraceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
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);
|
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.getOperationContent()), CrmOrderOperationTrace::getOperationContent, bo.getOperationContent());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getOperator()), CrmOrderOperationTrace::getOperator, bo.getOperator());
|
lqw.eq(StringUtils.isNotBlank(bo.getOperator()), CrmOrderOperationTrace::getOperator, bo.getOperator());
|
||||||
lqw.eq(bo.getOperationTime() != null, CrmOrderOperationTrace::getOperationTime, bo.getOperationTime());
|
lqw.eq(bo.getOperationTime() != null, CrmOrderOperationTrace::getOperationTime, bo.getOperationTime());
|
||||||
|
//根据创建时间正序排序
|
||||||
|
lqw.orderByAsc(CrmOrderOperationTrace::getCreateTime);
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user