From 4295a28f33ba55d1e5c411ff03e2372d2db7125a Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 2 Jun 2026 11:11:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms/coil):=20=E6=96=B0=E5=A2=9E=E5=B7=B2?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=92=A2=E5=8D=B7=E5=88=97=E8=A1=A8=E6=8C=89?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E8=AE=A1=E5=88=92=E5=88=9B=E5=BB=BA=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=80=92=E5=BA=8F=E6=8E=92=E5=BA=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在钢卷查询业务中,当查询已绑定钢卷列表且未指定计划ID(planId)时,新增按关联的发货计划创建时间倒序排序功能,确保较新的计划优先展示。 主要改动: 1. 在WmsMaterialCoilBo中新增orderByPlanDesc布尔字段,用于控制排序逻辑 2. 在WmsMaterialCoilMapper中新增selectVoPagePlusPlanOrder方法及对应的XML映射,通过关联发货计划表支持按计划创建时间排序 3. 在WmsMaterialCoilServiceImpl中调整查询逻辑:当orderByPlanDesc为true时调用新的查询方法,并在查询条件中补充排序规则 4. 在WmsDeliveryWaybillDetailController中设置orderByPlanDesc条件:当planId为空时启用该排序 5. 重构XML映射文件,提取公共SQL片段以提高可维护性 调整前,已绑定钢卷列表在无planId时仅按状态排序;调整后,新增按发货计划创建时间倒序排序,便于用户快速查看最新计划相关的钢卷。 --- .../WmsDeliveryWaybillDetailController.java | 5 +- .../com/klp/domain/bo/WmsMaterialCoilBo.java | 6 + .../com/klp/mapper/WmsMaterialCoilMapper.java | 7 +- .../impl/WmsMaterialCoilServiceImpl.java | 8 +- .../mapper/klp/WmsMaterialCoilMapper.xml | 291 +++++++----------- 5 files changed, 130 insertions(+), 187 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java index 22ce9eb4..ed6e896b 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java @@ -148,7 +148,10 @@ public class WmsDeliveryWaybillDetailController extends BaseController { return new TableDataInfo<>(); } bo.setCoilIds(boundCoilIds.stream().map(String::valueOf).collect(java.util.stream.Collectors.joining(","))); - bo.setStatusFirst(true); // 未发货的排在前面 + bo.setStatusFirst(true); + if (planId == null) { + bo.setOrderByPlanDesc(true); + } return iWmsMaterialCoilService.queryPageListWithBindInfo(bo, pageQuery); } 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 be9b965c..2ca363f0 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 @@ -396,5 +396,11 @@ public class WmsMaterialCoilBo extends BaseEntity { * 镀铬卷号 */ private String chromePlateCoilNo; + + /** + * 是否按计划创建时间倒序排序(已绑定钢卷列表无planId时,按计划新旧排列) + */ + @TableField(exist = false) + private Boolean orderByPlanDesc; } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index f893c0cf..ddb0f0de 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -45,6 +45,11 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus selectVoPagePlusOrderBy(Page build, @Param("ew") QueryWrapper lqw); + /** + * orderByPlanDesc=true 时使用:包含发货计划 join,支持按计划创建时间排序 + */ + Page selectVoPagePlusPlanOrder(Page build, @Param("ew") QueryWrapper lqw); + List selectVoListWithDynamicJoin(@Param("ew")QueryWrapper lqw); Map selectCountForSpecSync(@Param("ew") QueryWrapper qw); @@ -91,7 +96,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus selectDeliveryExportListByCoilIds(@Param("coilIds") java.util.Collection coilIds); + List selectDeliveryExportListByCoilIds(@Param("coilIds") java.util.Collection coilIds); /** * 退火报表导出:按钢卷ID列表联查(钢卷 + 退火计划 + 退火计划钢卷关系) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 7018d87b..f64ce531 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -487,7 +487,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { private Page queryMaterialCoilPage(WmsMaterialCoilBo bo, PageQuery pageQuery) { QueryWrapper qw = buildQueryWrapperPlus(bo); Page result; - if (Boolean.TRUE.equals(bo.getOrderBy())) { + if (Boolean.TRUE.equals(bo.getOrderByPlanDesc())) { + result = baseMapper.selectVoPagePlusPlanOrder(pageQuery.build(), qw); + } else if (Boolean.TRUE.equals(bo.getOrderBy())) { result = baseMapper.selectVoPagePlusOrderBy(pageQuery.build(), qw); } else { result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); @@ -933,6 +935,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount()); } // 排序: + // 按计划创建时间倒序(已绑定钢卷列表无planId时优先按计划排序) + if (Boolean.TRUE.equals(bo.getOrderByPlanDesc())) { + qw.orderByDesc("pl.create_time"); + } // 已绑定钢卷列表中,未发货(status=0)的排在前面 if (Boolean.TRUE.equals(bo.getStatusFirst())) { qw.orderByAsc("mc.status = 1"); diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 3c119a78..3c19110b 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -82,90 +82,91 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY w.warehouse_id, w.warehouse_name ORDER BY w.warehouse_id - + SELECT + ${ew.customSqlSegment} - + + +