From 34f879e0a108ed203e3f8a1f844cbaab4318905a Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 31 Mar 2026 21:14:07 +0800 Subject: [PATCH] ✨ feat(mes): 新增生产流转卡和装箱单精简列表接口 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/card/MesProCardController.java | 7 +++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/packages/MesWmPackageController.java | 7 +++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/barcode/MesWmBarcodeMapper.java | 4 ++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java | 9 +++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java | 7 +++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeConfigServiceImpl.java | 10 ++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeService.java | 8 ++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java | 5 +++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageService.java | 7 +++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java | 5 +++++ 11 files changed, 70 insertions(+), 0 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/card/MesProCardController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/card/MesProCardController.java index e72588c..53db8d3 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/card/MesProCardController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/card/MesProCardController.java @@ -100,6 +100,13 @@ public class MesProCardController { return success(new PageResult<>(buildCardRespVOList(pageResult.getList()), pageResult.getTotal())); } + @GetMapping("/simple-list") + @Operation(summary = "获得生产流转卡精简列表", description = "主要用于前端的下拉选项") + public CommonResult> getCardSimpleList() { + List list = cardService.getCardSimpleList(); + return success(buildCardRespVOList(list)); + } + @GetMapping("/export-excel") @Operation(summary = "导出生产流转卡 Excel") @PreAuthorize("@ss.hasPermission('mes:pro-card:export')") diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/packages/MesWmPackageController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/packages/MesWmPackageController.java index 3baf9ff..70b4d0f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/packages/MesWmPackageController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/packages/MesWmPackageController.java @@ -133,6 +133,13 @@ public class MesWmPackageController { return success(buildRespVOList(list)); } + @GetMapping("/simple-list") + @Operation(summary = "获得装箱单精简列表", description = "主要用于前端的下拉选项") + public CommonResult> getPackageSimpleList() { + List list = packageService.getPackageSimpleList(); + return success(buildRespVOList(list)); + } + // ========== 私有方法 ========== private List buildRespVOList(List list) { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/barcode/MesWmBarcodeMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/barcode/MesWmBarcodeMapper.java index 3b23947..d361912 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/barcode/MesWmBarcodeMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/barcode/MesWmBarcodeMapper.java @@ -39,4 +39,8 @@ public interface MesWmBarcodeMapper extends BaseMapperX { return selectOne(MesWmBarcodeDO::getContent, content); } + default Long selectCountByConfigId(Long configId) { + return selectCount(MesWmBarcodeDO::getConfigId, configId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index cbac0f8..532d407 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -592,6 +592,7 @@ public interface ErrorCodeConstants { // ========== MES 仓库管理-条码配置(1-040-730-000) ========== ErrorCode WM_BARCODE_CONFIG_NOT_EXISTS = new ErrorCode(1_040_730_000, "条码配置不存在"); ErrorCode WM_BARCODE_CONFIG_BIZ_TYPE_DUPLICATE = new ErrorCode(1_040_730_001, "该业务类型的条码配置已存在"); + ErrorCode WM_BARCODE_CONFIG_HAS_BARCODE = new ErrorCode(1_040_730_002, "该条码配置已被条码记录关联,无法删除"); // ========== MES 仓库管理-条码清单(1-040-731-000) ========== ErrorCode WM_BARCODE_NOT_EXISTS = new ErrorCode(1_040_731_000, "条码不存在"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java index 8f70532..87ce413 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.pro.card.vo.MesProCardSaveRe import cn.iocoder.yudao.module.mes.dal.dataobject.pro.card.MesProCardDO; import jakarta.validation.Valid; +import java.util.List; + /** * MES 生产流转卡 Service 接口 * @@ -58,4 +60,11 @@ public interface MesProCardService { */ PageResult getCardPage(MesProCardPageReqVO pageReqVO); + /** + * 获得生产流转卡精简列表 + * + * @return 流转卡列表 + */ + List getCardSimpleList(); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java index 6462c9e..2248a90 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.mes.service.pro.card; import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import java.util.List; import cn.iocoder.yudao.module.mes.controller.admin.pro.card.vo.MesProCardPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pro.card.vo.MesProCardSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.card.MesProCardDO; @@ -92,6 +94,11 @@ public class MesProCardServiceImpl implements MesProCardService { return cardMapper.selectPage(pageReqVO); } + @Override + public List getCardSimpleList() { + return cardMapper.selectList(); + } + // ==================== 校验方法 ==================== @Override diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeConfigServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeConfigServiceImpl.java index ae78e2a..3e7ff86 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeConfigServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeConfigServiceImpl.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.barcode.vo.config.MesWmBa import cn.iocoder.yudao.module.mes.dal.dataobject.wm.barcode.MesWmBarcodeConfigDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.barcode.MesWmBarcodeConfigMapper; import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -26,6 +27,10 @@ public class MesWmBarcodeConfigServiceImpl implements MesWmBarcodeConfigService @Resource private MesWmBarcodeConfigMapper barcodeConfigMapper; + @Resource + @Lazy + private MesWmBarcodeService barcodeService; + @Override public Long createBarcodeConfig(MesWmBarcodeConfigSaveReqVO createReqVO) { // 校验业务类型唯一 @@ -53,6 +58,11 @@ public class MesWmBarcodeConfigServiceImpl implements MesWmBarcodeConfigService public void deleteBarcodeConfig(Long id) { // 校验存在 validateBarcodeConfigExists(id); + // 校验是否有关联的条码记录 + if (barcodeService.getBarcodeCountByConfigId(id) > 0) { + throw exception(WM_BARCODE_CONFIG_HAS_BARCODE); + } + // 删除 barcodeConfigMapper.deleteById(id); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeService.java index 096321f..a70cb3e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeService.java @@ -79,4 +79,12 @@ public interface MesWmBarcodeService { */ String generateBarcodeContent(Integer bizType, String bizCode); + /** + * 根据条码配置编号获取相关联的条码数量 + * + * @param configId 条码配置编号 + * @return 条码数量 + */ + long getBarcodeCountByConfigId(Long configId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java index d0a1700..2dd719e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java @@ -170,4 +170,9 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService { createBarcode(createReqVO); } + @Override + public long getBarcodeCountByConfigId(Long configId) { + return barcodeMapper.selectCountByConfigId(configId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageService.java index 8633eea..aab8124 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageService.java @@ -90,6 +90,13 @@ public interface MesWmPackageService { List getChildablePackageList(); /** + * 获得装箱单精简列表 + * + * @return 装箱单列表 + */ + List getPackageSimpleList(); + + /** * 获取指定装箱单及其所有子孙箱的 ID 列表 * * @param packageId 装箱单 ID diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java index a7cf8cf..24a206f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java @@ -143,6 +143,11 @@ public class MesWmPackageServiceImpl implements MesWmPackageService { } @Override + public List getPackageSimpleList() { + return packageMapper.selectList(); + } + + @Override public List getPackageAndDescendantIds(Long packageId) { List result = CollUtil.newArrayList(packageId); // 使用广度优先搜索 (BFS) 按层批量查询所有子孙箱 ID -- libgit2 0.21.4