Commit 631a829f00df3c446dca1f8a8a9f82a5c55cc684

Authored by YunaiV
1 parent 787cce09

✨ feat(mes): 添加客户英文名称及出库单查询功能

新增客户英文名称字段,优化客户信息展示。实现按客户编号查询销售出库单列表的功能,提升用户体验。
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 {
21 21 @Schema(description = "客户简称", example = "比亚迪")
22 22 private String nickname;
23 23  
  24 + @Schema(description = "客户英文名称", example = "BYD")
  25 + private String englishName;
  26 +
24 27 @Schema(description = "客户类型", example = "1")
25 28 private Integer type;
26 29  
... ...
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;
28 28 import org.springframework.web.bind.annotation.RequestMapping;
29 29 import org.springframework.web.bind.annotation.RestController;
30 30  
  31 +import java.util.List;
31 32 import java.util.Map;
32 33  
33 34 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
... ... @@ -68,7 +69,7 @@ public class MesQcPendingInspectController {
68 69  
69 70 // ==================== 拼接 VO ====================
70 71  
71   - private void buildPendingInspectRespVOList(java.util.List<MesQcPendingInspectRespVO> list) {
  72 + private void buildPendingInspectRespVOList(List<MesQcPendingInspectRespVO> list) {
72 73 if (CollUtil.isEmpty(list)) {
73 74 return;
74 75 }
... ...
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;
6 6 import lombok.EqualsAndHashCode;
7 7 import lombok.ToString;
8 8  
  9 +import java.util.List;
  10 +
9 11 @Schema(description = "管理后台 - MES 销售出库单行分页 Request VO")
10 12 @Data
11 13 @EqualsAndHashCode(callSuper = true)
... ... @@ -15,4 +17,10 @@ public class MesWmProductSalesLinePageReqVO extends PageParam {
15 17 @Schema(description = "出库单ID", example = "1")
16 18 private Long salesId;
17 19  
  20 + @Schema(description = "客户编号", example = "1")
  21 + private Long clientId;
  22 +
  23 + @Schema(description = "出库单编号列表(内部使用,客户过滤时自动填充)", hidden = true)
  24 + private List<Long> salesIds;
  25 +
18 26 }
... ...
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&lt;MesMdClientDO&gt; {
22 22 .eqIfPresent(MesMdClientDO::getCode, reqVO.getCode())
23 23 .likeIfPresent(MesMdClientDO::getName, reqVO.getName())
24 24 .likeIfPresent(MesMdClientDO::getNickname, reqVO.getNickname())
  25 + .likeIfPresent(MesMdClientDO::getEnglishName, reqVO.getEnglishName())
25 26 .eqIfPresent(MesMdClientDO::getType, reqVO.getType())
26 27 .eqIfPresent(MesMdClientDO::getStatus, reqVO.getStatus())
27 28 .orderByDesc(MesMdClientDO::getId));
... ...
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&lt;MesWmProductSal
26 26 cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLinePageReqVO reqVO) {
27 27 return selectPage(reqVO, new cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX<MesWmProductSalesLineDO>()
28 28 .eqIfPresent(MesWmProductSalesLineDO::getSalesId, reqVO.getSalesId())
  29 + .inIfPresent(MesWmProductSalesLineDO::getSalesId, reqVO.getSalesIds())
29 30 .orderByDesc(MesWmProductSalesLineDO::getId));
30 31 }
31 32  
... ...
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
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO;
8 8 import org.apache.ibatis.annotations.Mapper;
9 9  
  10 +import java.util.List;
  11 +
10 12 /**
11 13 * MES 销售出库单 Mapper
12 14 *
... ... @@ -29,4 +31,8 @@ public interface MesWmProductSalesMapper extends BaseMapperX&lt;MesWmProductSalesDO
29 31 return selectOne(MesWmProductSalesDO::getCode, code);
30 32 }
31 33  
  34 + default List<MesWmProductSalesDO> selectListByClientId(Long clientId) {
  35 + return selectList(MesWmProductSalesDO::getClientId, clientId);
  36 + }
  37 +
32 38 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java
... ... @@ -14,6 +14,7 @@ public enum MesMdAutoCodeRuleCodeEnum {
14 14  
15 15 MD_ITEM_CODE("MD_ITEM_CODE", "物料编码"),
16 16 MD_VENDOR_CODE("MD_VENDOR_CODE", "供应商编码"),
  17 + MD_CLIENT_CODE("MD_CLIENT_CODE", "客户编码"),
17 18 WM_SN_CODE("WM_SN_CODE", "SN 码"),
18 19 WM_PACKAGE_CODE("WM_PACKAGE_CODE", "装箱单编码"),
19 20 WM_BATCH_CODE("WM_BATCH_CODE", "批次编码"),
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.wm.productsales;
2 2  
3 3 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  4 +import cn.hutool.core.collection.CollUtil;
4 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 6 import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLinePageReqVO;
6 7 import cn.iocoder.yudao.module.mes.controller.admin.wm.productsales.vo.line.MesWmProductSalesLineSaveReqVO;
  8 +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO;
7 9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesLineDO;
8 10 import cn.iocoder.yudao.module.mes.dal.mysql.wm.productsales.MesWmProductSalesLineMapper;
9 11 import cn.iocoder.yudao.module.mes.enums.qc.MesQcCheckResultEnum;
... ... @@ -20,6 +22,7 @@ import java.util.List;
20 22 import java.util.Objects;
21 23  
22 24 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  25 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
23 26 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_PRODUCT_SALES_LINE_NOT_EXISTS;
24 27  
25 28 /**
... ... @@ -95,6 +98,15 @@ public class MesWmProductSalesLineServiceImpl implements MesWmProductSalesLineSe
95 98 @Override
96 99 public cn.iocoder.yudao.framework.common.pojo.PageResult<MesWmProductSalesLineDO> getProductSalesLinePage(
97 100 MesWmProductSalesLinePageReqVO pageReqVO) {
  101 + // 如果传了 clientId,先查出该客户的所有出库单 ID,设置到 salesIds
  102 + if (pageReqVO.getSalesId() == null && pageReqVO.getClientId() != null) {
  103 + List<MesWmProductSalesDO> salesList = productSalesService.getProductSalesListByClientId(pageReqVO.getClientId());
  104 + if (CollUtil.isEmpty(salesList)) {
  105 + return cn.iocoder.yudao.framework.common.pojo.PageResult.empty();
  106 + }
  107 + pageReqVO.setSalesIds(convertList(salesList, MesWmProductSalesDO::getId));
  108 + }
  109 + // 查询分页
98 110 return productSalesLineMapper.selectPage(pageReqVO);
99 111 }
100 112  
... ...
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
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO;
8 8 import jakarta.validation.Valid;
9 9  
  10 +import java.util.List;
  11 +
10 12 /**
11 13 * MES 销售出库单 Service 接口
12 14 *
... ... @@ -106,4 +108,12 @@ public interface MesWmProductSalesService {
106 108 */
107 109 void confirmProductSales(Long id);
108 110  
  111 + /**
  112 + * 按客户编号获得销售出库单列表
  113 + *
  114 + * @param clientId 客户编号
  115 + * @return 出库单列表
  116 + */
  117 + List<MesWmProductSalesDO> getProductSalesListByClientId(Long clientId);
  118 +
109 119 }
... ...
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 {
236 236 .setId(id).setStatus(MesWmProductSalesStatusEnum.APPROVING.getStatus()));
237 237 }
238 238  
  239 + @Override
  240 + public List<MesWmProductSalesDO> getProductSalesListByClientId(Long clientId) {
  241 + return productSalesMapper.selectListByClientId(clientId);
  242 + }
  243 +
239 244 private MesWmProductSalesDO validateProductSalesExists(Long id) {
240 245 MesWmProductSalesDO sales = productSalesMapper.selectById(id);
241 246 if (sales == null) {
... ...