feat(order): 实现订单列表用户昵称显示和物料卷长度字段扩展
- 在 CrmOrderVo 中添加 createByName 和 updateByName 字段用于显示用户昵称 - 集成 ISysUserService 实现订单列表中创建人和更新人昵称的自动填充 - 优化查询逻辑,通过单次遍历同时处理用户昵称映射和物料产品对象构建 - 为 WmsMaterialCoil 实体添加 length 长度字段支持 - 在 WmsMaterialCoilBo 和 WmsMaterialCoilVo 中同步新增 length 字段 - 更新 WmsMaterialCoilMapper.xml 映射文件以包含长度字段的数据库操作 - 调整订单类型排序规则,预订单(0)优先于正式订单(1)显示
This commit is contained in:
@@ -7,6 +7,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;
|
||||
|
||||
|
||||
@@ -18,7 +19,7 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class CrmOrderVo {
|
||||
public class CrmOrderVo extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -115,4 +116,8 @@ public class CrmOrderVo {
|
||||
// @ExcelProperty(value = "地址")
|
||||
private String address;
|
||||
|
||||
//创建人
|
||||
private String createByName;
|
||||
//更新人
|
||||
private String updateByName;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,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.crm.domain.vo.CrmOrderOperationTraceVo;
|
||||
import com.klp.system.service.ISysUserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.crm.domain.bo.CrmOrderBo;
|
||||
@@ -16,9 +18,8 @@ import com.klp.crm.domain.CrmOrder;
|
||||
import com.klp.crm.mapper.CrmOrderMapper;
|
||||
import com.klp.crm.service.ICrmOrderService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 正式订单主Service业务层处理
|
||||
@@ -32,6 +33,8 @@ public class CrmOrderServiceImpl implements ICrmOrderService {
|
||||
|
||||
private final CrmOrderMapper baseMapper;
|
||||
|
||||
private final ISysUserService userService;
|
||||
|
||||
/**
|
||||
* 查询正式订单主
|
||||
*/
|
||||
@@ -47,6 +50,32 @@ public class CrmOrderServiceImpl implements ICrmOrderService {
|
||||
public TableDataInfo<CrmOrderVo> queryPageList(CrmOrderBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<CrmOrder> lqw = buildQueryWrapperPlus(bo);
|
||||
Page<CrmOrderVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
|
||||
List<CrmOrderVo> 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 (CrmOrderVo 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 CrmOrderServiceImpl implements ICrmOrderService {
|
||||
//逻辑删除
|
||||
qw.eq("co.del_flag", 0);
|
||||
qw.orderByDesc("co.create_time");
|
||||
//根据orderType排序预订单是0 正是订单是1 0排在前面 1排在后面 升序
|
||||
qw.orderByAsc("co.order_type");
|
||||
return qw;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user