From 631a829f00df3c446dca1f8a8a9f82a5c55cc684 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 28 Mar 2026 17:19:31 +0800 Subject: [PATCH] ✨ feat(mes): 添加客户英文名称及出库单查询功能 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientPageReqVO.java | 3 +++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/pendinginspect/MesQcPendingInspectController.java | 3 ++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLinePageReqVO.java | 8 ++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/client/MesMdClientMapper.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesMapper.java | 6 ++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java | 12 ++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java | 10 ++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java | 5 +++++ 10 files changed, 49 insertions(+), 1 deletion(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientPageReqVO.java index 4d9e1c1..a9c0e52 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientPageReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientPageReqVO.java @@ -21,6 +21,9 @@ public class MesMdClientPageReqVO extends PageParam { @Schema(description = "客户简称", example = "比亚迪") private String nickname; + @Schema(description = "客户英文名称", example = "BYD") + private String englishName; + @Schema(description = "客户类型", example = "1") private Integer type; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/pendinginspect/MesQcPendingInspectController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/pendinginspect/MesQcPendingInspectController.java index 038a25b..65f6b13 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/pendinginspect/MesQcPendingInspectController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/pendinginspect/MesQcPendingInspectController.java @@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -68,7 +69,7 @@ public class MesQcPendingInspectController { // ==================== 拼接 VO ==================== - private void buildPendingInspectRespVOList(java.util.List list) { + private void buildPendingInspectRespVOList(List list) { if (CollUtil.isEmpty(list)) { return; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLinePageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLinePageReqVO.java index 8964ce3..73b3df6 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLinePageReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLinePageReqVO.java @@ -6,6 +6,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; +import java.util.List; + @Schema(description = "管理后台 - MES 销售出库单行分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) @@ -15,4 +17,10 @@ public class MesWmProductSalesLinePageReqVO extends PageParam { @Schema(description = "出库单ID", example = "1") private Long salesId; + @Schema(description = "客户编号", example = "1") + private Long clientId; + + @Schema(description = "出库单编号列表(内部使用,客户过滤时自动填充)", hidden = true) + private List salesIds; + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/client/MesMdClientMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/client/MesMdClientMapper.java index 95afba5..c01544f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/client/MesMdClientMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/client/MesMdClientMapper.java @@ -22,6 +22,7 @@ public interface MesMdClientMapper extends BaseMapperX { .eqIfPresent(MesMdClientDO::getCode, reqVO.getCode()) .likeIfPresent(MesMdClientDO::getName, reqVO.getName()) .likeIfPresent(MesMdClientDO::getNickname, reqVO.getNickname()) + .likeIfPresent(MesMdClientDO::getEnglishName, reqVO.getEnglishName()) .eqIfPresent(MesMdClientDO::getType, reqVO.getType()) .eqIfPresent(MesMdClientDO::getStatus, reqVO.getStatus()) .orderByDesc(MesMdClientDO::getId)); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java index e0f29c8..1124341 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java @@ -26,6 +26,7 @@ public interface MesWmProductSalesLineMapper extends BaseMapperX() .eqIfPresent(MesWmProductSalesLineDO::getSalesId, reqVO.getSalesId()) + .inIfPresent(MesWmProductSalesLineDO::getSalesId, reqVO.getSalesIds()) .orderByDesc(MesWmProductSalesLineDO::getId)); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesMapper.java index 5ecd736..e350ee4 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProd import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * MES 销售出库单 Mapper * @@ -29,4 +31,8 @@ public interface MesWmProductSalesMapper extends BaseMapperX selectListByClientId(Long clientId) { + return selectList(MesWmProductSalesDO::getClientId, clientId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java index abf3385..84c1cdc 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java @@ -14,6 +14,7 @@ public enum MesMdAutoCodeRuleCodeEnum { MD_ITEM_CODE("MD_ITEM_CODE", "物料编码"), MD_VENDOR_CODE("MD_VENDOR_CODE", "供应商编码"), + MD_CLIENT_CODE("MD_CLIENT_CODE", "客户编码"), WM_SN_CODE("WM_SN_CODE", "SN 码"), WM_PACKAGE_CODE("WM_PACKAGE_CODE", "装箱单编码"), WM_BATCH_CODE("WM_BATCH_CODE", "批次编码"), diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java index bed160f..8089dd2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java @@ -1,9 +1,11 @@ package cn.iocoder.yudao.module.mes.service.wm.productsales; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLinePageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLineSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesLineDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.productsales.MesWmProductSalesLineMapper; import cn.iocoder.yudao.module.mes.enums.qc.MesQcCheckResultEnum; @@ -20,6 +22,7 @@ import java.util.List; import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCT_SALES_LINE_NOT_EXISTS; /** @@ -95,6 +98,15 @@ public class MesWmProductSalesLineServiceImpl implements MesWmProductSalesLineSe @Override public cn.iocoder.yudao.framework.common.pojo.PageResult getProductSalesLinePage( MesWmProductSalesLinePageReqVO pageReqVO) { + // 如果传了 clientId,先查出该客户的所有出库单 ID,设置到 salesIds + if (pageReqVO.getSalesId() == null && pageReqVO.getClientId() != null) { + List salesList = productSalesService.getProductSalesListByClientId(pageReqVO.getClientId()); + if (CollUtil.isEmpty(salesList)) { + return cn.iocoder.yudao.framework.common.pojo.PageResult.empty(); + } + pageReqVO.setSalesIds(convertList(salesList, MesWmProductSalesDO::getId)); + } + // 查询分页 return productSalesLineMapper.selectPage(pageReqVO); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java index 1abc86d..64a3d1e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.MesWmProd import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO; import jakarta.validation.Valid; +import java.util.List; + /** * MES 销售出库单 Service 接口 * @@ -106,4 +108,12 @@ public interface MesWmProductSalesService { */ void confirmProductSales(Long id); + /** + * 按客户编号获得销售出库单列表 + * + * @param clientId 客户编号 + * @return 出库单列表 + */ + List getProductSalesListByClientId(Long clientId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java index 4170e69..0a3a61e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java @@ -236,6 +236,11 @@ public class MesWmProductSalesServiceImpl implements MesWmProductSalesService { .setId(id).setStatus(MesWmProductSalesStatusEnum.APPROVING.getStatus())); } + @Override + public List getProductSalesListByClientId(Long clientId) { + return productSalesMapper.selectListByClientId(clientId); + } + private MesWmProductSalesDO validateProductSalesExists(Long id) { MesWmProductSalesDO sales = productSalesMapper.selectById(id); if (sales == null) { -- libgit2 0.21.4