From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 25 六月 2025 11:51:38 +0800
Subject: [PATCH] Merge branch 'mdc_hyjs_master'

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsToDncController.java |  159 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 159 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsToDncController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsToDncController.java
new file mode 100644
index 0000000..d5d3798
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsToDncController.java
@@ -0,0 +1,159 @@
+package org.jeecg.modules.tms.controller;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.modules.tms.entity.ToolsClassify;
+import org.jeecg.modules.tms.entity.dto.ToolQueryParamDto;
+import org.jeecg.modules.tms.entity.vo.*;
+import org.jeecg.modules.tms.enums.ToolParaType;
+import org.jeecg.modules.tms.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("/tms/toolsToDnc")
+public class ToolsToDncController {
+
+    @Autowired
+    private IToolsClassifyService toolsClassifyService;
+    @Autowired
+    private IParaHoleToolsService paraHoleToolsService;
+    @Autowired
+    private IParaMillToolService paraMillToolService;
+    @Autowired
+    private IParaTurningToolsService paraTurningToolsService;
+    @Autowired
+    private IParaThreadingToolService paraThreadingToolService;
+    @Autowired
+    private IParaBladeService paraBladeService;
+
+    @ApiOperation(value = "閫氳繃宸ュ叿绠�绉版煡璇㈠伐鍏峰垎绫讳俊鎭紝閫夊垁椤甸潰宸ュ叿绫诲瀷涓嬫媺妗嗙敤", notes = "閫氳繃宸ュ叿绠�绉版煡璇㈠伐鍏峰垎绫讳俊鎭紝閫夊垁椤甸潰宸ュ叿绫诲瀷涓嬫媺妗嗙敤")
+    @GetMapping("/queryToolClassifyByParam")
+    public Result<?> queryToolClassifyByParam(@RequestParam("aliasLabel") String aliasLabel) {
+        List<ToolsClassify> classifyList = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>()
+                .eq(ToolsClassify::getAliasLabel, aliasLabel)
+                .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1));
+        List<Map<String, String>> list = classifyList.stream()
+                .map(classify -> new HashMap<String, String>() {{
+                    put("value", classify.getId());
+                    put("label", classify.getTypeName());
+                }})
+                .collect(Collectors.toList());
+        return Result.ok(list);
+    }
+    /**
+     * 閫氳繃宸ュ叿绠�绉�/鐩村緞鍙傛暟鏌ヨ鍏蜂綋宸ュ叿鍙傛暟淇℃伅(缁橠NC鎻愪緵鎺ュ彛)锛屽弬鏁扮ず渚嬶細3E锛�3涓哄伐鍏风洿寰勫弬鏁般�丒涓哄姞宸ヤ腑蹇冨垁鍏风畝绉帮級
+     *
+     * @param queryParam
+     * @return
+     */
+    @ApiOperation(value = "閫氳繃宸ュ叿绠�绉�/鐩村緞鍙傛暟鏌ヨ鍏蜂綋宸ュ叿鍙傛暟淇℃伅(缁橠NC鎻愪緵鎺ュ彛)", notes = "閫氳繃宸ュ叿绠�绉�/鐩村緞鍙傛暟鏌ヨ鍏蜂綋宸ュ叿鍙傛暟淇℃伅(缁橠NC鎻愪緵鎺ュ彛)")
+    @GetMapping("/queryToolByParam")
+    public Result<?> queryToolByParam(ToolQueryParamDto queryParam) {
+        String aliasLabel = queryParam.getAliasLabel();
+        String diameter = queryParam.getDiameter();
+        if (StrUtil.isBlank(aliasLabel)) {
+            return Result.error("缂哄皯蹇呰鍙傛暟");
+        }
+
+        Result<Object> res = Result.OK();
+        Map<String, Object> result = new HashMap<>();
+        int pageNo = Objects.isNull(queryParam.getPageNo()) || queryParam.getPageNo() < 1 ? 1 : queryParam.getPageNo();
+        int pageSize = Objects.isNull(queryParam.getPageSize()) || queryParam.getPageSize() < 1 ? 10 : queryParam.getPageSize();
+
+        List<Object> toolList = CollectionUtil.newArrayList();
+        String classifyId = queryParam.getClassifyId();
+        if (StrUtil.isNotBlank(classifyId)) {
+            //宸茬粡杩涘叆浜嗛�夊垁椤甸潰锛屽伐鍏峰垎绫诲凡缁忕‘瀹�
+            ToolsClassify toolsClassify = toolsClassifyService.getById(classifyId);
+            ToolParaType toolParaType = ToolParaType.fromValue(toolsClassify.getParaTypeFlag());
+            matchTypeSelectTools(queryParam, toolList, toolParaType);
+        } else {
+            //绗竴娆¤繘鍏ラ�夊垁椤甸潰锛屾牴鎹垁鍏风畝绉板拰鐩村緞鍙傛暟鏌ヨ宸ュ叿鍒嗙被
+            List<ToolsClassify> classifyList = toolsClassifyService.list(new LambdaQueryWrapper<ToolsClassify>()
+                    .eq(ToolsClassify::getAliasLabel, aliasLabel)
+                    .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1));
+            if (CollectionUtil.isEmpty(classifyList)) {
+                result.put("records", CollectionUtil.newArrayList());
+                result.put("total", 0);
+                result.put("current", pageNo);
+                result.put("size", pageSize);
+                res.setResult(result);
+                return res;
+            }
+            for (ToolsClassify classify : classifyList) {
+                String paraTypeFlag = classify.getParaTypeFlag();
+                queryParam.setClassifyId(classify.getId());
+                queryParam.setDiameter(diameter);
+                ToolParaType toolParaType = ToolParaType.fromValue(paraTypeFlag);
+                matchTypeSelectTools(queryParam, toolList, toolParaType);
+            }
+        }
+
+        // ====== 鍒嗛〉閫昏緫 start ======
+        int total = toolList.size();
+        int fromIndex = (pageNo - 1) * pageSize;
+        int toIndex = Math.min(fromIndex + pageSize, total);
+
+        List<Object> pagedList;
+        if (fromIndex > total) {
+            pagedList = Collections.emptyList();
+        } else {
+            pagedList = toolList.subList(fromIndex, toIndex);
+        }
+
+        result.put("records", pagedList);
+        result.put("total", total);
+        result.put("current", pageNo);
+        result.put("size", pageSize);
+        res.setResult(result);
+        return res;
+        // ====== 鍒嗛〉閫昏緫 end ======
+    }
+
+    private void matchTypeSelectTools(ToolQueryParamDto queryParam, List<Object> toolList, ToolParaType toolParaType) {
+        if (toolParaType != null) {
+            String diameter = queryParam.getDiameter();
+            switch (toolParaType) {
+                case HOLE:
+                    List<ParaHolesToolsVo> paraHoleToolsList = paraHoleToolsService.selectByClassifyAndDiameter(queryParam);
+                    toolList.addAll(paraHoleToolsList);
+                    break;
+                case THREADING://铻虹汗鍒�鍏锋病鏈夌洿寰勫弬鏁帮紝濡傛灉浼犲叆鐩村緞锛岀洿鎺ョ暐杩�
+                    if (StrUtil.isBlank(diameter)) {
+                        List<ParaThreadingToolVo> paraThreadingToolList = paraThreadingToolService.selectByClassifyAndParam(queryParam);
+                        toolList.addAll(paraThreadingToolList);
+                    }
+                    break;
+                case MILL:
+                    List<ParaMillToolVo> paraMillToolList = paraMillToolService.selectByClassifyAndDiameter(queryParam);
+                    toolList.addAll(paraMillToolList);
+                    break;
+                case TURNING:
+                    List<ParaTurningToolsVo> paraTurningToolsList = paraTurningToolsService.selectByClassifyAndDiameter(queryParam);
+                    toolList.addAll(paraTurningToolsList);
+                    break;
+                case BLADE://鍒�鐗囨病鏈夌洿寰勫弬鏁帮紝濡傛灉浼犲叆鐩村緞锛岀洿鎺ョ暐杩�
+                    if (StrUtil.isBlank(diameter)) {
+                        List<ParaBladeVo> paraBladeToolsList = paraBladeService.selectByClassifyAndParam(queryParam);
+                        toolList.addAll(paraBladeToolsList);
+                    }
+                    break;
+                default:
+            }
+        }
+    }
+
+}

--
Gitblit v1.9.3