Commit 8bfe74fe03417591ab9ebf970361ac2e1ec142de

Authored by YunaiV
1 parent a6b7f4c7

✨ feat(mes): 添加按产品查询工序列表功能

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/route/MesProRouteProcessController.java
@@ -74,6 +74,16 @@ public class MesProRouteProcessController { @@ -74,6 +74,16 @@ public class MesProRouteProcessController {
74 return success(buildRouteProcessRespVO(routeProcess)); 74 return success(buildRouteProcessRespVO(routeProcess));
75 } 75 }
76 76
  77 + // TODO @芋艿:到底叫 list-by-item 还是 list-by-product?
  78 + @GetMapping("/list-by-product")
  79 + @Operation(summary = "按产品获得工序列表", description = "根据产品查找关联的工艺路线,返回该路线的工序列表")
  80 + @Parameter(name = "productId", description = "产品编号", required = true, example = "1")
  81 + @PreAuthorize("@ss.hasPermission('mes:pro-route:query')")
  82 + public CommonResult<List<MesProRouteProcessRespVO>> getRouteProcessListByProduct(@RequestParam("productId") Long productId) {
  83 + List<MesProRouteProcessDO> list = routeProcessService.getRouteProcessListByProductId(productId);
  84 + return success(buildRouteProcessRespVOList(list));
  85 + }
  86 +
77 @GetMapping("/list-by-route") 87 @GetMapping("/list-by-route")
78 @Operation(summary = "按工艺路线获得工序列表") 88 @Operation(summary = "按工艺路线获得工序列表")
79 @Parameter(name = "routeId", description = "工艺路线编号", required = true, example = "1") 89 @Parameter(name = "routeId", description = "工艺路线编号", required = true, example = "1")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessService.java
@@ -57,6 +57,16 @@ public interface MesProRouteProcessService { @@ -57,6 +57,16 @@ public interface MesProRouteProcessService {
57 MesProRouteProcessDO getRouteProcessByRouteIdAndProcessId(Long routeId, Long processId); 57 MesProRouteProcessDO getRouteProcessByRouteIdAndProcessId(Long routeId, Long processId);
58 58
59 /** 59 /**
  60 + * 按产品获得工序列表
  61 + *
  62 + * 根据产品查找关联的工艺路线,返回该路线的工序列表
  63 + *
  64 + * @param productId 产品编号
  65 + * @return 工序列表
  66 + */
  67 + List<MesProRouteProcessDO> getRouteProcessListByProductId(Long productId);
  68 +
  69 + /**
60 * 按工艺路线删除工序(级联删除使用) 70 * 按工艺路线删除工序(级联删除使用)
61 * 71 *
62 * @param routeId 工艺路线编号 72 * @param routeId 工艺路线编号
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; @@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.module.mes.controller.admin.pro.route.vo.process.MesProRouteProcessSaveReqVO; 5 import cn.iocoder.yudao.module.mes.controller.admin.pro.route.vo.process.MesProRouteProcessSaveReqVO;
6 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProcessDO; 6 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProcessDO;
  7 +import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductDO;
7 import cn.iocoder.yudao.module.mes.dal.mysql.pro.route.MesProRouteProcessMapper; 8 import cn.iocoder.yudao.module.mes.dal.mysql.pro.route.MesProRouteProcessMapper;
  9 +import cn.iocoder.yudao.module.mes.dal.mysql.pro.route.MesProRouteProductMapper;
8 import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; 10 import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService;
9 import jakarta.annotation.Resource; 11 import jakarta.annotation.Resource;
10 import org.springframework.context.annotation.Lazy; 12 import org.springframework.context.annotation.Lazy;
@@ -32,6 +34,10 @@ public class MesProRouteProcessServiceImpl implements MesProRouteProcessService @@ -32,6 +34,10 @@ public class MesProRouteProcessServiceImpl implements MesProRouteProcessService
32 @Resource 34 @Resource
33 private MesProRouteProcessMapper routeProcessMapper; 35 private MesProRouteProcessMapper routeProcessMapper;
34 36
  37 + // TODO @AI:应该使用 MesProRouteProductService;
  38 + @Resource
  39 + private MesProRouteProductMapper routeProductMapper;
  40 +
35 @Resource 41 @Resource
36 @Lazy 42 @Lazy
37 private MesProProcessService processService; 43 private MesProProcessService processService;
@@ -184,6 +190,18 @@ public class MesProRouteProcessServiceImpl implements MesProRouteProcessService @@ -184,6 +190,18 @@ public class MesProRouteProcessServiceImpl implements MesProRouteProcessService
184 } 190 }
185 191
186 @Override 192 @Override
  193 + public List<MesProRouteProcessDO> getRouteProcessListByProductId(Long productId) {
  194 + // 1. 根据产品查找关联的工艺路线产品记录
  195 + MesProRouteProductDO routeProduct = routeProductMapper.selectByItemId(productId);
  196 + if (routeProduct == null) {
  197 + // TODO @芋艿:会不会存在配置了多个的情况???
  198 + return Collections.emptyList();
  199 + }
  200 + // 2. 返回该工艺路线的工序列表
  201 + return routeProcessMapper.selectListByRouteId(routeProduct.getRouteId());
  202 + }
  203 +
  204 + @Override
187 public void deleteRouteProcessByRouteId(Long routeId) { 205 public void deleteRouteProcessByRouteId(Long routeId) {
188 routeProcessMapper.deleteByRouteId(routeId); 206 routeProcessMapper.deleteByRouteId(routeId);
189 } 207 }