Commit a4cba300b255bb53c6404882402eaa6e1252a14a
1 parent
bab71fce
✨ feat(mes): 更新操作按钮,移除完成功能
Showing
5 changed files
with
40 additions
and
5 deletions
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,11 +15,9 @@ import org.apache.ibatis.annotations.Mapper; | ||
| 15 | @Mapper | 15 | @Mapper |
| 16 | public interface MesWmPackageLineMapper extends BaseMapperX<MesWmPackageLineDO> { | 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 | return selectPage(reqVO, new LambdaQueryWrapperX<MesWmPackageLineDO>() | 19 | return selectPage(reqVO, new LambdaQueryWrapperX<MesWmPackageLineDO>() |
| 22 | - .eqIfPresent(MesWmPackageLineDO::getPackageId, reqVO.getPackageId()) | 20 | + .inIfPresent(MesWmPackageLineDO::getPackageId, packageIds) |
| 23 | .orderByDesc(MesWmPackageLineDO::getId)); | 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,6 +8,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.wm.packages.MesWmPackageDO; | ||
| 8 | import cn.iocoder.yudao.module.mes.enums.wm.MesWmPackageStatusEnum; | 8 | import cn.iocoder.yudao.module.mes.enums.wm.MesWmPackageStatusEnum; |
| 9 | import org.apache.ibatis.annotations.Mapper; | 9 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 10 | ||
| 11 | +import java.util.Collection; | ||
| 11 | import java.util.List; | 12 | import java.util.List; |
| 12 | 13 | ||
| 13 | /** | 14 | /** |
| @@ -36,6 +37,11 @@ public interface MesWmPackageMapper extends BaseMapperX<MesWmPackageDO> { | @@ -36,6 +37,11 @@ public interface MesWmPackageMapper extends BaseMapperX<MesWmPackageDO> { | ||
| 36 | return selectList(MesWmPackageDO::getParentId, parentId); | 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 | default List<MesWmPackageDO> selectChildableList() { | 45 | default List<MesWmPackageDO> selectChildableList() { |
| 40 | return selectList(new LambdaQueryWrapperX<MesWmPackageDO>() | 46 | return selectList(new LambdaQueryWrapperX<MesWmPackageDO>() |
| 41 | .eq(MesWmPackageDO::getParentId, MesWmPackageDO.PARENT_ID_ROOT) | 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,6 +12,8 @@ import org.springframework.context.annotation.Lazy; | ||
| 12 | import org.springframework.stereotype.Service; | 12 | import org.springframework.stereotype.Service; |
| 13 | import org.springframework.validation.annotation.Validated; | 13 | import org.springframework.validation.annotation.Validated; |
| 14 | 14 | ||
| 15 | +import java.util.List; | ||
| 16 | + | ||
| 15 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | 17 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 16 | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PACKAGE_LINE_NOT_EXISTS; | 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,7 +79,11 @@ public class MesWmPackageLineServiceImpl implements MesWmPackageLineService { | ||
| 77 | 79 | ||
| 78 | @Override | 80 | @Override |
| 79 | public PageResult<MesWmPackageLineDO> getPackageLinePage(MesWmPackageLinePageReqVO pageReqVO) { | 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 | @Override | 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,4 +89,12 @@ public interface MesWmPackageService { | ||
| 89 | */ | 89 | */ |
| 90 | List<MesWmPackageDO> getChildablePackageList(); | 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,6 +20,7 @@ import java.util.List; | ||
| 20 | import java.util.Objects; | 20 | import java.util.Objects; |
| 21 | 21 | ||
| 22 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | 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 | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; | 24 | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| 24 | 25 | ||
| 25 | /** | 26 | /** |
| @@ -141,6 +142,22 @@ public class MesWmPackageServiceImpl implements MesWmPackageService { | @@ -141,6 +142,22 @@ public class MesWmPackageServiceImpl implements MesWmPackageService { | ||
| 141 | return packageMapper.selectChildableList(); | 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 | private MesWmPackageDO validatePackageExists(Long id) { | 163 | private MesWmPackageDO validatePackageExists(Long id) { |