Commit 787cce09d4ab192902efedd3aafb2cb0f5c2dc18

Authored by YunaiV
1 parent b3195c7c

✨ feat(mes): 添加供应商入库单列表功能,优化物料清单展示

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/MesWmItemReceiptController.java
... ... @@ -15,16 +15,10 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
15 15 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.iqc.MesQcIqcDO;
16 16 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO;
17 17 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO;
18   -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
19   -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
20   -import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
21 18 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
22 19 import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcService;
23 20 import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService;
24 21 import cn.iocoder.yudao.module.mes.service.wm.itemreceipt.MesWmItemReceiptService;
25   -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
26   -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
27   -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
28 22 import io.swagger.v3.oas.annotations.Operation;
29 23 import io.swagger.v3.oas.annotations.Parameter;
30 24 import io.swagger.v3.oas.annotations.tags.Tag;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/line/MesWmItemReceiptLinePageReqVO.java
... ... @@ -2,19 +2,25 @@ package cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.line;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import io.swagger.v3.oas.annotations.media.Schema;
5   -import jakarta.validation.constraints.NotNull;
6 5 import lombok.Data;
7 6 import lombok.EqualsAndHashCode;
8 7 import lombok.ToString;
9 8  
  9 +import java.util.List;
  10 +
10 11 @Schema(description = "管理后台 - MES 采购入库单行分页 Request VO")
11 12 @Data
12 13 @EqualsAndHashCode(callSuper = true)
13 14 @ToString(callSuper = true)
14 15 public class MesWmItemReceiptLinePageReqVO extends PageParam {
15 16  
16   - @Schema(description = "入库单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
17   - @NotNull(message = "入库单编号不能为空")
  17 + @Schema(description = "入库单编号", example = "1")
18 18 private Long receiptId;
19 19  
  20 + @Schema(description = "供应商编号", example = "1")
  21 + private Long vendorId;
  22 +
  23 + @Schema(description = "入库单编号列表(内部使用,供应商过滤时自动填充)", hidden = true)
  24 + private List<Long> receiptIds;
  25 +
20 26 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/itemreceipt/MesWmItemReceiptLineMapper.java
... ... @@ -18,6 +18,7 @@ public interface MesWmItemReceiptLineMapper extends BaseMapperX&lt;MesWmItemReceipt
18 18 default PageResult<MesWmItemReceiptLineDO> selectPage(MesWmItemReceiptLinePageReqVO reqVO) {
19 19 return selectPage(reqVO, new LambdaQueryWrapperX<MesWmItemReceiptLineDO>()
20 20 .eqIfPresent(MesWmItemReceiptLineDO::getReceiptId, reqVO.getReceiptId())
  21 + .inIfPresent(MesWmItemReceiptLineDO::getReceiptId, reqVO.getReceiptIds())
21 22 .orderByDesc(MesWmItemReceiptLineDO::getId));
22 23 }
23 24  
... ... @@ -29,4 +30,8 @@ public interface MesWmItemReceiptLineMapper extends BaseMapperX&lt;MesWmItemReceipt
29 30 delete(MesWmItemReceiptLineDO::getReceiptId, receiptId);
30 31 }
31 32  
  33 + default List<MesWmItemReceiptLineDO> selectListByReceiptIds(java.util.Collection<Long> receiptIds) {
  34 + return selectList(MesWmItemReceiptLineDO::getReceiptId, receiptIds);
  35 + }
  36 +
32 37 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/itemreceipt/MesWmItemReceiptMapper.java
... ... @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemR
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO;
8 8 import org.apache.ibatis.annotations.Mapper;
9 9  
  10 +import java.util.List;
  11 +
10 12 /**
11 13 * MES 采购入库单 Mapper
12 14 */
... ... @@ -30,4 +32,8 @@ public interface MesWmItemReceiptMapper extends BaseMapperX&lt;MesWmItemReceiptDO&gt;
30 32 return selectCount(MesWmItemReceiptDO::getVendorId, vendorId);
31 33 }
32 34  
  35 + default List<MesWmItemReceiptDO> selectListByVendorId(Long vendorId) {
  36 + return selectList(MesWmItemReceiptDO::getVendorId, vendorId);
  37 + }
  38 +
33 39 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptLineServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.wm.itemreceipt;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 6 import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchGenerateReqVO;
... ... @@ -22,6 +23,7 @@ import org.springframework.validation.annotation.Validated;
22 23 import java.util.List;
23 24  
24 25 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  26 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
25 27 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
26 28  
27 29 /**
... ... @@ -107,6 +109,15 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ
107 109  
108 110 @Override
109 111 public PageResult<MesWmItemReceiptLineDO> getItemReceiptLinePage(MesWmItemReceiptLinePageReqVO pageReqVO) {
  112 + // 如果传了 vendorId,先查出该供应商的所有入库单 ID,设置到 receiptIds
  113 + if (pageReqVO.getReceiptId() == null) {
  114 + List<MesWmItemReceiptDO> receipts = itemReceiptService.getItemReceiptListByVendorId(pageReqVO.getVendorId());
  115 + if (CollUtil.isEmpty(receipts)) {
  116 + return PageResult.empty();
  117 + }
  118 + pageReqVO.setReceiptIds(convertList(receipts, MesWmItemReceiptDO::getId));
  119 + }
  120 + // 查询分页
110 121 return itemReceiptLineMapper.selectPage(pageReqVO);
111 122 }
112 123  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptService.java
... ... @@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemR
6 6 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO;
7 7 import jakarta.validation.Valid;
8 8  
  9 +import java.util.List;
  10 +
9 11 /**
10 12 * MES 采购入库单 Service 接口
11 13 */
... ... @@ -93,4 +95,12 @@ public interface MesWmItemReceiptService {
93 95 */
94 96 Long getItemReceiptCountByVendorId(Long vendorId);
95 97  
  98 + /**
  99 + * 查询指定供应商的采购入库单列表
  100 + *
  101 + * @param vendorId 供应商编号
  102 + * @return 入库单列表
  103 + */
  104 + List<MesWmItemReceiptDO> getItemReceiptListByVendorId(Long vendorId);
  105 +
96 106 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
... ... @@ -233,4 +233,9 @@ public class MesWmItemReceiptServiceImpl implements MesWmItemReceiptService {
233 233 return itemReceiptMapper.selectCountByVendorId(vendorId);
234 234 }
235 235  
  236 + @Override
  237 + public List<MesWmItemReceiptDO> getItemReceiptListByVendorId(Long vendorId) {
  238 + return itemReceiptMapper.selectListByVendorId(vendorId);
  239 + }
  240 +
236 241 }
... ...