From 9eb07b8fd643089f4fc7f2906cb94cac1bb50096 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 29 Dec 2025 14:38:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E5=AE=9E=E7=8E=B0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8=E7=94=A8=E6=88=B7=E6=98=B5=E7=A7=B0?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=92=8C=E7=89=A9=E6=96=99=E5=8D=B7=E9=95=BF?= =?UTF-8?q?=E5=BA=A6=E5=AD=97=E6=AE=B5=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 CrmOrderVo 中添加 createByName 和 updateByName 字段用于显示用户昵称 - 集成 ISysUserService 实现订单列表中创建人和更新人昵称的自动填充 - 优化查询逻辑,通过单次遍历同时处理用户昵称映射和物料产品对象构建 - 为 WmsMaterialCoil 实体添加 length 长度字段支持 - 在 WmsMaterialCoilBo 和 WmsMaterialCoilVo 中同步新增 length 字段 - 更新 WmsMaterialCoilMapper.xml 映射文件以包含长度字段的数据库操作 - 调整订单类型排序规则,预订单(0)优先于正式订单(1)显示 --- .../com/klp/crm/domain/vo/CrmOrderVo.java | 7 +++- .../crm/service/impl/CrmOrderServiceImpl.java | 37 +++++++++++++++++-- .../java/com/klp/domain/WmsMaterialCoil.java | 4 ++ .../com/klp/domain/bo/WmsMaterialCoilBo.java | 4 ++ .../com/klp/domain/vo/WmsMaterialCoilVo.java | 3 ++ .../mapper/klp/WmsMaterialCoilMapper.xml | 4 ++ 6 files changed, 55 insertions(+), 4 deletions(-) diff --git a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java index 182068c9..13463f31 100644 --- a/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java +++ b/klp-crm/src/main/java/com/klp/crm/domain/vo/CrmOrderVo.java @@ -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; } diff --git a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java index 4c2c09ca..68505988 100644 --- a/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java +++ b/klp-crm/src/main/java/com/klp/crm/service/impl/CrmOrderServiceImpl.java @@ -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 queryPageList(CrmOrderBo bo, PageQuery pageQuery) { QueryWrapper lqw = buildQueryWrapperPlus(bo); Page result = baseMapper.selectVoPagePlus(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 (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; } diff --git a/klp-wms/src/main/java/com/klp/domain/WmsMaterialCoil.java b/klp-wms/src/main/java/com/klp/domain/WmsMaterialCoil.java index b30773de..f05af81c 100644 --- a/klp-wms/src/main/java/com/klp/domain/WmsMaterialCoil.java +++ b/klp-wms/src/main/java/com/klp/domain/WmsMaterialCoil.java @@ -131,5 +131,9 @@ public class WmsMaterialCoil extends BaseEntity { //销售id private Long saleId; + + + //新增长度字段 + private BigDecimal length; } diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java index b5b0e5e0..7ab55520 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java @@ -185,5 +185,9 @@ public class WmsMaterialCoilBo extends BaseEntity { //销售id private Long saleId; + + + //新增长度字段 + private BigDecimal length; } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java index fba7c84f..c09fc5c1 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java @@ -314,5 +314,8 @@ public class WmsMaterialCoilVo extends BaseEntity { private Long saleId; // 销售昵称 private String saleName; + + //新增长度字段 + private BigDecimal length; } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 76710e73..bf4452bd 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -20,6 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -95,6 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mc.packaging_requirement, mc.packing_status, mc.sale_id AS saleId, + mc.length, w.warehouse_name AS warehouseName, su.nick_name AS saleName, aw.actual_warehouse_name AS actualWarehouseName, @@ -361,6 +363,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mc.create_time AS createTime, -- 重量 mc.gross_weight AS grossWeight, + -- 长度 + mc.length AS length, -- 用途(暂无数据源) NULL AS purpose, -- 切边要求