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,16 +15,10 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
15 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.iqc.MesQcIqcDO; 15 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.iqc.MesQcIqcDO;
16 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO; 16 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO;
17 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO; 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 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService; 18 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
22 import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcService; 19 import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcService;
23 import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService; 20 import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService;
24 import cn.iocoder.yudao.module.mes.service.wm.itemreceipt.MesWmItemReceiptService; 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 import io.swagger.v3.oas.annotations.Operation; 22 import io.swagger.v3.oas.annotations.Operation;
29 import io.swagger.v3.oas.annotations.Parameter; 23 import io.swagger.v3.oas.annotations.Parameter;
30 import io.swagger.v3.oas.annotations.tags.Tag; 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,19 +2,25 @@ package cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.line;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.v3.oas.annotations.media.Schema; 4 import io.swagger.v3.oas.annotations.media.Schema;
5 -import jakarta.validation.constraints.NotNull;  
6 import lombok.Data; 5 import lombok.Data;
7 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
8 import lombok.ToString; 7 import lombok.ToString;
9 8
  9 +import java.util.List;
  10 +
10 @Schema(description = "管理后台 - MES 采购入库单行分页 Request VO") 11 @Schema(description = "管理后台 - MES 采购入库单行分页 Request VO")
11 @Data 12 @Data
12 @EqualsAndHashCode(callSuper = true) 13 @EqualsAndHashCode(callSuper = true)
13 @ToString(callSuper = true) 14 @ToString(callSuper = true)
14 public class MesWmItemReceiptLinePageReqVO extends PageParam { 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 private Long receiptId; 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,6 +18,7 @@ public interface MesWmItemReceiptLineMapper extends BaseMapperX&lt;MesWmItemReceipt
18 default PageResult<MesWmItemReceiptLineDO> selectPage(MesWmItemReceiptLinePageReqVO reqVO) { 18 default PageResult<MesWmItemReceiptLineDO> selectPage(MesWmItemReceiptLinePageReqVO reqVO) {
19 return selectPage(reqVO, new LambdaQueryWrapperX<MesWmItemReceiptLineDO>() 19 return selectPage(reqVO, new LambdaQueryWrapperX<MesWmItemReceiptLineDO>()
20 .eqIfPresent(MesWmItemReceiptLineDO::getReceiptId, reqVO.getReceiptId()) 20 .eqIfPresent(MesWmItemReceiptLineDO::getReceiptId, reqVO.getReceiptId())
  21 + .inIfPresent(MesWmItemReceiptLineDO::getReceiptId, reqVO.getReceiptIds())
21 .orderByDesc(MesWmItemReceiptLineDO::getId)); 22 .orderByDesc(MesWmItemReceiptLineDO::getId));
22 } 23 }
23 24
@@ -29,4 +30,8 @@ public interface MesWmItemReceiptLineMapper extends BaseMapperX&lt;MesWmItemReceipt @@ -29,4 +30,8 @@ public interface MesWmItemReceiptLineMapper extends BaseMapperX&lt;MesWmItemReceipt
29 delete(MesWmItemReceiptLineDO::getReceiptId, receiptId); 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,6 +7,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemR
7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO; 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO;
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
  10 +import java.util.List;
  11 +
10 /** 12 /**
11 * MES 采购入库单 Mapper 13 * MES 采购入库单 Mapper
12 */ 14 */
@@ -30,4 +32,8 @@ public interface MesWmItemReceiptMapper extends BaseMapperX&lt;MesWmItemReceiptDO&gt; @@ -30,4 +32,8 @@ public interface MesWmItemReceiptMapper extends BaseMapperX&lt;MesWmItemReceiptDO&gt;
30 return selectCount(MesWmItemReceiptDO::getVendorId, vendorId); 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 package cn.iocoder.yudao.module.mes.service.wm.itemreceipt; 1 package cn.iocoder.yudao.module.mes.service.wm.itemreceipt;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchGenerateReqVO; 6 import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchGenerateReqVO;
@@ -22,6 +23,7 @@ import org.springframework.validation.annotation.Validated; @@ -22,6 +23,7 @@ import org.springframework.validation.annotation.Validated;
22 import java.util.List; 23 import java.util.List;
23 24
24 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 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 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; 27 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
26 28
27 /** 29 /**
@@ -107,6 +109,15 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ @@ -107,6 +109,15 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ
107 109
108 @Override 110 @Override
109 public PageResult<MesWmItemReceiptLineDO> getItemReceiptLinePage(MesWmItemReceiptLinePageReqVO pageReqVO) { 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 return itemReceiptLineMapper.selectPage(pageReqVO); 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 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.MesWmItemR
6 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO; 6 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO;
7 import jakarta.validation.Valid; 7 import jakarta.validation.Valid;
8 8
  9 +import java.util.List;
  10 +
9 /** 11 /**
10 * MES 采购入库单 Service 接口 12 * MES 采购入库单 Service 接口
11 */ 13 */
@@ -93,4 +95,12 @@ public interface MesWmItemReceiptService { @@ -93,4 +95,12 @@ public interface MesWmItemReceiptService {
93 */ 95 */
94 Long getItemReceiptCountByVendorId(Long vendorId); 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,4 +233,9 @@ public class MesWmItemReceiptServiceImpl implements MesWmItemReceiptService {
233 return itemReceiptMapper.selectCountByVendorId(vendorId); 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 }