From 8bfe74fe03417591ab9ebf970361ac2e1ec142de Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 15 Mar 2026 20:43:45 +0800 Subject: [PATCH] ✨ feat(mes): 添加按产品查询工序列表功能 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProcessController.java | 10 ++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessService.java | 10 ++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java | 18 ++++++++++++++++++ 3 files changed, 38 insertions(+), 0 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProcessController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProcessController.java index 9f37858..ed50c56 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProcessController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProcessController.java @@ -74,6 +74,16 @@ public class MesProRouteProcessController { return success(buildRouteProcessRespVO(routeProcess)); } + // TODO @芋艿:到底叫 list-by-item 还是 list-by-product? + @GetMapping("/list-by-product") + @Operation(summary = "按产品获得工序列表", description = "根据产品查找关联的工艺路线,返回该路线的工序列表") + @Parameter(name = "productId", description = "产品编号", required = true, example = "1") + @PreAuthorize("@ss.hasPermission('mes:pro-route:query')") + public CommonResult> getRouteProcessListByProduct(@RequestParam("productId") Long productId) { + List list = routeProcessService.getRouteProcessListByProductId(productId); + return success(buildRouteProcessRespVOList(list)); + } + @GetMapping("/list-by-route") @Operation(summary = "按工艺路线获得工序列表") @Parameter(name = "routeId", description = "工艺路线编号", required = true, example = "1") diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessService.java index 3ac4def..12f20cf 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessService.java @@ -57,6 +57,16 @@ public interface MesProRouteProcessService { MesProRouteProcessDO getRouteProcessByRouteIdAndProcessId(Long routeId, Long processId); /** + * 按产品获得工序列表 + * + * 根据产品查找关联的工艺路线,返回该路线的工序列表 + * + * @param productId 产品编号 + * @return 工序列表 + */ + List getRouteProcessListByProductId(Long productId); + + /** * 按工艺路线删除工序(级联删除使用) * * @param routeId 工艺路线编号 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java index 2daa8ab..06ce2a2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java @@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.pro.route.vo.process.MesProRouteProcessSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProcessDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductDO; import cn.iocoder.yudao.module.mes.dal.mysql.pro.route.MesProRouteProcessMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.pro.route.MesProRouteProductMapper; import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; @@ -32,6 +34,10 @@ public class MesProRouteProcessServiceImpl implements MesProRouteProcessService @Resource private MesProRouteProcessMapper routeProcessMapper; + // TODO @AI:应该使用 MesProRouteProductService; + @Resource + private MesProRouteProductMapper routeProductMapper; + @Resource @Lazy private MesProProcessService processService; @@ -184,6 +190,18 @@ public class MesProRouteProcessServiceImpl implements MesProRouteProcessService } @Override + public List getRouteProcessListByProductId(Long productId) { + // 1. 根据产品查找关联的工艺路线产品记录 + MesProRouteProductDO routeProduct = routeProductMapper.selectByItemId(productId); + if (routeProduct == null) { + // TODO @芋艿:会不会存在配置了多个的情况??? + return Collections.emptyList(); + } + // 2. 返回该工艺路线的工序列表 + return routeProcessMapper.selectListByRouteId(routeProduct.getRouteId()); + } + + @Override public void deleteRouteProcessByRouteId(Long routeId) { routeProcessMapper.deleteByRouteId(routeId); } -- libgit2 0.21.4