Bläddra i källkod

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

YunaiV 4 månader sedan
förälder
incheckning
b9ea7937e8

+ 27 - 2
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationMachineController.java

@@ -1,10 +1,14 @@
 package cn.iocoder.yudao.module.mes.controller.admin.md.workstation;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.machine.MesMdWorkstationMachineRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.machine.MesMdWorkstationMachineSaveReqVO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.dv.machinery.MesDvMachineryDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationMachineDO;
+import cn.iocoder.yudao.module.mes.service.dv.machinery.MesDvMachineryService;
 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationMachineService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -15,9 +19,12 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 
 @Tag(name = "管理后台 - MES 设备资源")
 @RestController
@@ -28,6 +35,9 @@ public class MesMdWorkstationMachineController {
     @Resource
     private MesMdWorkstationMachineService workstationMachineService;
 
+    @Resource
+    private MesDvMachineryService machineryService;
+
     @PostMapping("/create")
     @Operation(summary = "创建设备资源")
     @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')")
@@ -51,8 +61,23 @@ public class MesMdWorkstationMachineController {
     public CommonResult<List<MesMdWorkstationMachineRespVO>> getWorkstationMachineList(
             @RequestParam("workstationId") Long workstationId) {
         List<MesMdWorkstationMachineDO> list = workstationMachineService.getWorkstationMachineListByWorkstationId(workstationId);
-        // TODO @芋艿:拼装设备编码/名称,等 DV 设备模块完成后对接
-        return success(BeanUtils.toBean(list, MesMdWorkstationMachineRespVO.class));
+        return success(buildWorkstationMachineRespVOList(list));
+    }
+
+    // ==================== 拼接 VO ====================
+
+    private List<MesMdWorkstationMachineRespVO> buildWorkstationMachineRespVOList(List<MesMdWorkstationMachineDO> list) {
+        if (CollUtil.isEmpty(list)) {
+            return Collections.emptyList();
+        }
+        // 1. 批量获取设备信息
+        Map<Long, MesDvMachineryDO> machineryMap = machineryService.getMachineryMap(
+                convertSet(list, MesMdWorkstationMachineDO::getMachineryId));
+        // 2. 拼接 VO
+        return BeanUtils.toBean(list, MesMdWorkstationMachineRespVO.class, vo -> {
+            MapUtils.findAndThen(machineryMap, vo.getMachineryId(),
+                    machinery -> vo.setMachineryCode(machinery.getCode()).setMachineryName(machinery.getName()));
+        });
     }
 
 }

+ 26 - 2
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationToolController.java

@@ -1,11 +1,15 @@
 package cn.iocoder.yudao.module.mes.controller.admin.md.workstation;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationToolDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolTypeDO;
 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationToolService;
+import cn.iocoder.yudao.module.mes.service.tm.tool.MesTmToolTypeService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -15,9 +19,12 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 
 @Tag(name = "管理后台 - MES 工装夹具资源")
 @RestController
@@ -28,6 +35,9 @@ public class MesMdWorkstationToolController {
     @Resource
     private MesMdWorkstationToolService workstationToolService;
 
+    @Resource
+    private MesTmToolTypeService toolTypeService;
+
     @PostMapping("/create")
     @Operation(summary = "创建工装夹具资源")
     @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')")
@@ -59,8 +69,22 @@ public class MesMdWorkstationToolController {
     public CommonResult<List<MesMdWorkstationToolRespVO>> getWorkstationToolList(
             @RequestParam("workstationId") Long workstationId) {
         List<MesMdWorkstationToolDO> list = workstationToolService.getWorkstationToolListByWorkstationId(workstationId);
-        // TODO @芋艿:拼装工具类型名称,等 TM 工具模块完成后对接
-        return success(BeanUtils.toBean(list, MesMdWorkstationToolRespVO.class));
+        return success(buildWorkstationToolRespVOList(list));
+    }
+
+    // ==================== 拼接 VO ====================
+
+    private List<MesMdWorkstationToolRespVO> buildWorkstationToolRespVOList(List<MesMdWorkstationToolDO> list) {
+        if (CollUtil.isEmpty(list)) {
+            return Collections.emptyList();
+        }
+        // 1. 批量获取工具类型信息
+        Map<Long, MesTmToolTypeDO> toolTypeMap = toolTypeService.getToolTypeMap(
+                convertSet(list, MesMdWorkstationToolDO::getToolTypeId));
+        // 2. 拼接 VO
+        return BeanUtils.toBean(list, MesMdWorkstationToolRespVO.class, vo ->
+                MapUtils.findAndThen(toolTypeMap, vo.getToolTypeId(),
+                        toolType -> vo.setToolTypeName(toolType.getName())));
     }
 
 }