From a08832337f8de6a53edebbab1fb0b5a3bd1785aa Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 27 八月 2026 17:23:04 +0800
Subject: [PATCH] feat(srm): 供应商准入审核接入协同办公(BPM)

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/process/MesProProcessParamController.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 111 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/process/MesProProcessParamController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/process/MesProProcessParamController.java
new file mode 100644
index 0000000..d058a81
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/process/MesProProcessParamController.java
@@ -0,0 +1,111 @@
+package cn.iocoder.yudao.module.mes.controller.admin.pro.process;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.process.vo.MesProProcessRespVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.process.vo.param.MesProProcessParamRespVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.process.vo.param.MesProProcessParamSaveReqVO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pd.processparam.MesPdProcessParamDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessParamDO;
+import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
+import cn.iocoder.yudao.module.mes.service.pd.processparam.MesPdProcessParamService;
+import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessParamService;
+import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+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;
+import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen;
+
+@Tag(name = "绠$悊鍚庡彴 - MES 宸ュ簭宸ヨ壓鍙傛暟缁戝畾")
+@RestController
+@RequestMapping("/mes/pro/process-param")
+@Validated
+public class MesProProcessParamController {
+
+    @Resource
+    private MesProProcessParamService processParamService;
+    @Resource
+    private MesPdProcessParamService pdProcessParamService;
+    @Resource
+    private MesMdUnitMeasureService unitMeasureService;
+    @Resource
+    private MesProProcessService processService;
+
+    @GetMapping("/list-by-process")
+    @Operation(summary = "鑾峰緱宸ュ簭缁戝畾鐨勫伐鑹哄弬鏁板垪琛紙鎸夊伐搴忕紪鍙凤級")
+    @Parameter(name = "processId", description = "宸ュ簭缂栧彿", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('mes:pro-process:query')")
+    public CommonResult<List<MesProProcessParamRespVO>> getProcessParamListByProcessId(@RequestParam("processId") Long processId) {
+        List<MesProProcessParamDO> list = processParamService.getProcessParamListByProcessId(processId);
+        return success(buildRespVOList(list));
+    }
+
+    @PostMapping("/update-bindings")
+    @Operation(summary = "鍏ㄩ噺瑕嗙洊淇濆瓨宸ュ簭缁戝畾鐨勫伐鑹哄弬鏁�")
+    @PreAuthorize("@ss.hasPermission('mes:pro-process:update')")
+    public CommonResult<Boolean> updateProcessParams(@Valid @RequestBody MesProProcessParamSaveReqVO reqVO) {
+        processParamService.updateProcessParams(reqVO.getProcessId(), reqVO.getItems());
+        return success(true);
+    }
+
+    @GetMapping("/list-by-param")
+    @Operation(summary = "鑾峰緱宸ヨ壓鍙傛暟琚粦瀹氱殑宸ュ簭鍒楄〃锛堟寜宸ヨ壓鍙傛暟缂栧彿锛�")
+    @Parameter(name = "paramId", description = "宸ヨ壓鍙傛暟缂栧彿", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('mes:pro-process:query')")
+    public CommonResult<List<MesProProcessRespVO>> getProcessListByParamId(@RequestParam("paramId") Long paramId) {
+        List<MesProProcessParamDO> list = processParamService.getProcessParamListByParamId(paramId);
+        if (CollUtil.isEmpty(list)) {
+            return success(Collections.emptyList());
+        }
+        Map<Long, MesProProcessDO> processMap = processService.getProcessMap(
+                convertSet(list, MesProProcessParamDO::getProcessId));
+        List<MesProProcessRespVO> result = new ArrayList<>(list.size());
+        for (MesProProcessParamDO binding : list) {
+            MesProProcessDO process = processMap.get(binding.getProcessId());
+            if (process != null) {
+                result.add(new MesProProcessRespVO()
+                        .setId(process.getId()).setCode(process.getCode()).setName(process.getName()));
+            }
+        }
+        return success(result);
+    }
+
+    // ==================== 鎷兼帴 VO ====================
+
+    private List<MesProProcessParamRespVO> buildRespVOList(List<MesProProcessParamDO> list) {
+        if (CollUtil.isEmpty(list)) {
+            return Collections.emptyList();
+        }
+        // 1. 鎵归噺鑾峰彇宸ヨ壓鍙傛暟涓庤閲忓崟浣�
+        Map<Long, MesPdProcessParamDO> paramMap = pdProcessParamService.getProcessParamMap(
+                convertSet(list, MesProProcessParamDO::getProcessParamId));
+        Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap(
+                convertSet(paramMap.values(), MesPdProcessParamDO::getUnitMeasureId));
+        // 2. 鎷兼帴 VO
+        return BeanUtils.toBean(list, MesProProcessParamRespVO.class, vo ->
+                findAndThen(paramMap, vo.getProcessParamId(), param -> {
+                    vo.setParamCode(param.getParamCode()).setParamName(param.getParamName())
+                            .setParamType(param.getParamType()).setUnitMeasureId(param.getUnitMeasureId());
+                    findAndThen(unitMeasureMap, param.getUnitMeasureId(), unit ->
+                            vo.setUnitMeasureName(unit.getName()));
+                })
+        );
+    }
+
+}

--
Gitblit v1.9.3