Commit a4cba300b255bb53c6404882402eaa6e1252a14a

Authored by YunaiV
1 parent bab71fce

✨ feat(mes): 更新操作按钮,移除完成功能

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java
... ... @@ -15,11 +15,9 @@ import org.apache.ibatis.annotations.Mapper;
15 15 @Mapper
16 16 public interface MesWmPackageLineMapper extends BaseMapperX<MesWmPackageLineDO> {
17 17  
18   - default PageResult<MesWmPackageLineDO> selectPage(MesWmPackageLinePageReqVO reqVO) {
19   - // TODO @芋艿:需确认“父箱详情 -> 装箱清单”是否需要汇总当前箱及其所有子孙箱的明细;
20   - // TODO @芋艿:对齐,当前通过 SQL + ancestors 实现聚合查询,这里现在仅按 packageId 精确查询。
  18 + default PageResult<MesWmPackageLineDO> selectPage(MesWmPackageLinePageReqVO reqVO, java.util.Collection<Long> packageIds) {
21 19 return selectPage(reqVO, new LambdaQueryWrapperX<MesWmPackageLineDO>()
22   - .eqIfPresent(MesWmPackageLineDO::getPackageId, reqVO.getPackageId())
  20 + .inIfPresent(MesWmPackageLineDO::getPackageId, packageIds)
23 21 .orderByDesc(MesWmPackageLineDO::getId));
24 22 }
25 23  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageMapper.java
... ... @@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.wm.packages.MesWmPackageDO;
8 8 import cn.iocoder.yudao.module.mes.enums.wm.MesWmPackageStatusEnum;
9 9 import org.apache.ibatis.annotations.Mapper;
10 10  
  11 +import java.util.Collection;
11 12 import java.util.List;
12 13  
13 14 /**
... ... @@ -36,6 +37,11 @@ public interface MesWmPackageMapper extends BaseMapperX&lt;MesWmPackageDO&gt; {
36 37 return selectList(MesWmPackageDO::getParentId, parentId);
37 38 }
38 39  
  40 + default List<MesWmPackageDO> selectListByParentIds(Collection<Long> parentIds) {
  41 + return selectList(new LambdaQueryWrapperX<MesWmPackageDO>()
  42 + .in(MesWmPackageDO::getParentId, parentIds));
  43 + }
  44 +
39 45 default List<MesWmPackageDO> selectChildableList() {
40 46 return selectList(new LambdaQueryWrapperX<MesWmPackageDO>()
41 47 .eq(MesWmPackageDO::getParentId, MesWmPackageDO.PARENT_ID_ROOT)
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java
... ... @@ -12,6 +12,8 @@ import org.springframework.context.annotation.Lazy;
12 12 import org.springframework.stereotype.Service;
13 13 import org.springframework.validation.annotation.Validated;
14 14  
  15 +import java.util.List;
  16 +
15 17 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
16 18 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PACKAGE_LINE_NOT_EXISTS;
17 19  
... ... @@ -77,7 +79,11 @@ public class MesWmPackageLineServiceImpl implements MesWmPackageLineService {
77 79  
78 80 @Override
79 81 public PageResult<MesWmPackageLineDO> getPackageLinePage(MesWmPackageLinePageReqVO pageReqVO) {
80   - return packageLineMapper.selectPage(pageReqVO);
  82 + if (pageReqVO.getPackageId() == null) {
  83 + return PageResult.empty();
  84 + }
  85 + List<Long> packageIds = packageService.getPackageAndDescendantIds(pageReqVO.getPackageId());
  86 + return packageLineMapper.selectPage(pageReqVO, packageIds);
81 87 }
82 88  
83 89 @Override
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageService.java
... ... @@ -89,4 +89,12 @@ public interface MesWmPackageService {
89 89 */
90 90 List<MesWmPackageDO> getChildablePackageList();
91 91  
  92 + /**
  93 + * 获取指定装箱单及其所有子孙箱的 ID 列表
  94 + *
  95 + * @param packageId 装箱单 ID
  96 + * @return 装箱单及其所有子孙箱的 ID 集合
  97 + */
  98 + List<Long> getPackageAndDescendantIds(Long packageId);
  99 +
92 100 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
... ... @@ -20,6 +20,7 @@ import java.util.List;
20 20 import java.util.Objects;
21 21  
22 22 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  23 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
23 24 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
24 25  
25 26 /**
... ... @@ -141,6 +142,22 @@ public class MesWmPackageServiceImpl implements MesWmPackageService {
141 142 return packageMapper.selectChildableList();
142 143 }
143 144  
  145 + @Override
  146 + public List<Long> getPackageAndDescendantIds(Long packageId) {
  147 + List<Long> result = CollUtil.newArrayList(packageId);
  148 + // 使用广度优先搜索 (BFS) 按层批量查询所有子孙箱 ID
  149 + List<Long> currentLevelIds = CollUtil.newArrayList(packageId);
  150 + for (int i = 0; i < Short.MAX_VALUE && CollUtil.isNotEmpty(currentLevelIds); i++) {
  151 + List<MesWmPackageDO> children = packageMapper.selectListByParentIds(currentLevelIds);
  152 + if (CollUtil.isEmpty(children)) {
  153 + break;
  154 + }
  155 + currentLevelIds = convertList(children, MesWmPackageDO::getId);
  156 + result.addAll(currentLevelIds);
  157 + }
  158 + return result;
  159 + }
  160 +
144 161 // ========== 校验方法 ==========
145 162  
146 163 private MesWmPackageDO validatePackageExists(Long id) {
... ...