Commit b9ea7937e8d9204522e50efe5969cceea48a65e6

Authored by YunaiV
1 parent 71ef24a2

✨ feat(mes): 更新工作站表单,添加工序和设备选择功能

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationMachineController.java
1 package cn.iocoder.yudao.module.mes.controller.admin.md.workstation; 1 package cn.iocoder.yudao.module.mes.controller.admin.md.workstation;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  5 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.machine.MesMdWorkstationMachineRespVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.machine.MesMdWorkstationMachineRespVO;
6 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.machine.MesMdWorkstationMachineSaveReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.machine.MesMdWorkstationMachineSaveReqVO;
  9 +import cn.iocoder.yudao.module.mes.dal.dataobject.dv.machinery.MesDvMachineryDO;
7 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationMachineDO; 10 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationMachineDO;
  11 +import cn.iocoder.yudao.module.mes.service.dv.machinery.MesDvMachineryService;
8 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationMachineService; 12 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationMachineService;
9 import io.swagger.v3.oas.annotations.Operation; 13 import io.swagger.v3.oas.annotations.Operation;
10 import io.swagger.v3.oas.annotations.Parameter; 14 import io.swagger.v3.oas.annotations.Parameter;
@@ -15,9 +19,12 @@ import org.springframework.security.access.prepost.PreAuthorize; @@ -15,9 +19,12 @@ import org.springframework.security.access.prepost.PreAuthorize;
15 import org.springframework.validation.annotation.Validated; 19 import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.*; 20 import org.springframework.web.bind.annotation.*;
17 21
  22 +import java.util.Collections;
18 import java.util.List; 23 import java.util.List;
  24 +import java.util.Map;
19 25
20 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 26 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  27 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
21 28
22 @Tag(name = "管理后台 - MES 设备资源") 29 @Tag(name = "管理后台 - MES 设备资源")
23 @RestController 30 @RestController
@@ -28,6 +35,9 @@ public class MesMdWorkstationMachineController { @@ -28,6 +35,9 @@ public class MesMdWorkstationMachineController {
28 @Resource 35 @Resource
29 private MesMdWorkstationMachineService workstationMachineService; 36 private MesMdWorkstationMachineService workstationMachineService;
30 37
  38 + @Resource
  39 + private MesDvMachineryService machineryService;
  40 +
31 @PostMapping("/create") 41 @PostMapping("/create")
32 @Operation(summary = "创建设备资源") 42 @Operation(summary = "创建设备资源")
33 @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") 43 @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')")
@@ -51,8 +61,23 @@ public class MesMdWorkstationMachineController { @@ -51,8 +61,23 @@ public class MesMdWorkstationMachineController {
51 public CommonResult<List<MesMdWorkstationMachineRespVO>> getWorkstationMachineList( 61 public CommonResult<List<MesMdWorkstationMachineRespVO>> getWorkstationMachineList(
52 @RequestParam("workstationId") Long workstationId) { 62 @RequestParam("workstationId") Long workstationId) {
53 List<MesMdWorkstationMachineDO> list = workstationMachineService.getWorkstationMachineListByWorkstationId(workstationId); 63 List<MesMdWorkstationMachineDO> list = workstationMachineService.getWorkstationMachineListByWorkstationId(workstationId);
54 - // TODO @芋艿:拼装设备编码/名称,等 DV 设备模块完成后对接  
55 - return success(BeanUtils.toBean(list, MesMdWorkstationMachineRespVO.class)); 64 + return success(buildWorkstationMachineRespVOList(list));
  65 + }
  66 +
  67 + // ==================== 拼接 VO ====================
  68 +
  69 + private List<MesMdWorkstationMachineRespVO> buildWorkstationMachineRespVOList(List<MesMdWorkstationMachineDO> list) {
  70 + if (CollUtil.isEmpty(list)) {
  71 + return Collections.emptyList();
  72 + }
  73 + // 1. 批量获取设备信息
  74 + Map<Long, MesDvMachineryDO> machineryMap = machineryService.getMachineryMap(
  75 + convertSet(list, MesMdWorkstationMachineDO::getMachineryId));
  76 + // 2. 拼接 VO
  77 + return BeanUtils.toBean(list, MesMdWorkstationMachineRespVO.class, vo -> {
  78 + MapUtils.findAndThen(machineryMap, vo.getMachineryId(),
  79 + machinery -> vo.setMachineryCode(machinery.getCode()).setMachineryName(machinery.getName()));
  80 + });
56 } 81 }
57 82
58 } 83 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationToolController.java
1 package cn.iocoder.yudao.module.mes.controller.admin.md.workstation; 1 package cn.iocoder.yudao.module.mes.controller.admin.md.workstation;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  5 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolRespVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolRespVO;
6 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolSaveReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolSaveReqVO;
7 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationToolDO; 9 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationToolDO;
  10 +import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolTypeDO;
8 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationToolService; 11 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationToolService;
  12 +import cn.iocoder.yudao.module.mes.service.tm.tool.MesTmToolTypeService;
9 import io.swagger.v3.oas.annotations.Operation; 13 import io.swagger.v3.oas.annotations.Operation;
10 import io.swagger.v3.oas.annotations.Parameter; 14 import io.swagger.v3.oas.annotations.Parameter;
11 import io.swagger.v3.oas.annotations.tags.Tag; 15 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -15,9 +19,12 @@ import org.springframework.security.access.prepost.PreAuthorize; @@ -15,9 +19,12 @@ import org.springframework.security.access.prepost.PreAuthorize;
15 import org.springframework.validation.annotation.Validated; 19 import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.*; 20 import org.springframework.web.bind.annotation.*;
17 21
  22 +import java.util.Collections;
18 import java.util.List; 23 import java.util.List;
  24 +import java.util.Map;
19 25
20 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 26 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  27 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
21 28
22 @Tag(name = "管理后台 - MES 工装夹具资源") 29 @Tag(name = "管理后台 - MES 工装夹具资源")
23 @RestController 30 @RestController
@@ -28,6 +35,9 @@ public class MesMdWorkstationToolController { @@ -28,6 +35,9 @@ public class MesMdWorkstationToolController {
28 @Resource 35 @Resource
29 private MesMdWorkstationToolService workstationToolService; 36 private MesMdWorkstationToolService workstationToolService;
30 37
  38 + @Resource
  39 + private MesTmToolTypeService toolTypeService;
  40 +
31 @PostMapping("/create") 41 @PostMapping("/create")
32 @Operation(summary = "创建工装夹具资源") 42 @Operation(summary = "创建工装夹具资源")
33 @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") 43 @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')")
@@ -59,8 +69,22 @@ public class MesMdWorkstationToolController { @@ -59,8 +69,22 @@ public class MesMdWorkstationToolController {
59 public CommonResult<List<MesMdWorkstationToolRespVO>> getWorkstationToolList( 69 public CommonResult<List<MesMdWorkstationToolRespVO>> getWorkstationToolList(
60 @RequestParam("workstationId") Long workstationId) { 70 @RequestParam("workstationId") Long workstationId) {
61 List<MesMdWorkstationToolDO> list = workstationToolService.getWorkstationToolListByWorkstationId(workstationId); 71 List<MesMdWorkstationToolDO> list = workstationToolService.getWorkstationToolListByWorkstationId(workstationId);
62 - // TODO @芋艿:拼装工具类型名称,等 TM 工具模块完成后对接  
63 - return success(BeanUtils.toBean(list, MesMdWorkstationToolRespVO.class)); 72 + return success(buildWorkstationToolRespVOList(list));
  73 + }
  74 +
  75 + // ==================== 拼接 VO ====================
  76 +
  77 + private List<MesMdWorkstationToolRespVO> buildWorkstationToolRespVOList(List<MesMdWorkstationToolDO> list) {
  78 + if (CollUtil.isEmpty(list)) {
  79 + return Collections.emptyList();
  80 + }
  81 + // 1. 批量获取工具类型信息
  82 + Map<Long, MesTmToolTypeDO> toolTypeMap = toolTypeService.getToolTypeMap(
  83 + convertSet(list, MesMdWorkstationToolDO::getToolTypeId));
  84 + // 2. 拼接 VO
  85 + return BeanUtils.toBean(list, MesMdWorkstationToolRespVO.class, vo ->
  86 + MapUtils.findAndThen(toolTypeMap, vo.getToolTypeId(),
  87 + toolType -> vo.setToolTypeName(toolType.getName())));
64 } 88 }
65 89
66 } 90 }