From 830c1077107f50c7dfc747b98bf1960f14353661 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期五, 13 六月 2025 11:35:41 +0800 Subject: [PATCH] 工具管理-DNC刀具查询页面涉及接口 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsToDncController.java | 138 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 103 insertions(+), 35 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 index 9bc6c00..d5d3798 100644 --- 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 @@ -1,15 +1,14 @@ 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.ParaHolesToolsVo; -import org.jeecg.modules.tms.entity.vo.ParaMillToolVo; -import org.jeecg.modules.tms.entity.vo.ParaTurningToolsVo; +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; @@ -18,9 +17,10 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.List; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; @RestController @RequestMapping("/tms/toolsToDnc") @@ -34,57 +34,125 @@ 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(@RequestParam("param") ToolQueryParamDto queryParam){ - String param = queryParam.getParam(); - // 姝e垯琛ㄨ揪寮忥細鍓嶅崐閮ㄥ垎涓烘暟瀛楋紙鏀寔灏忔暟锛夛紝鍚庡崐閮ㄥ垎涓哄ぇ鍐欐垨灏忓啓瀛楁瘝 - String regex = "^([\\d.]+)([A-Za-z]+)$"; - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(param); - if (matcher.find()) { - String diameter = matcher.group(1); - String toolAliasName = matcher.group(2); + 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, toolAliasName) + .eq(ToolsClassify::getAliasLabel, aliasLabel) .eq(ToolsClassify::getStatus, CommonConstant.STATUS_1)); if (CollectionUtil.isEmpty(classifyList)) { - return Result.error("鏈壘鍒板尮閰嶇殑宸ュ叿鍒嗙被"); + result.put("records", CollectionUtil.newArrayList()); + result.put("total", 0); + result.put("current", pageNo); + result.put("size", pageSize); + res.setResult(result); + return res; } - List<Object> toolList = CollectionUtil.newArrayList(); for (ToolsClassify classify : classifyList) { String paraTypeFlag = classify.getParaTypeFlag(); queryParam.setClassifyId(classify.getId()); queryParam.setDiameter(diameter); ToolParaType toolParaType = ToolParaType.fromValue(paraTypeFlag); - if (toolParaType != null) { - switch (toolParaType) { - case HOLE: - List<ParaHolesToolsVo> paraHoleToolsList = paraHoleToolsService.selectByClassifyAndDiameter(queryParam); - toolList.addAll(paraHoleToolsList); - 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; - default: - } - } + matchTypeSelectTools(queryParam, toolList, toolParaType); } - return Result.OK(toolList); + } + + // ====== 鍒嗛〉閫昏緫 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 { - return Result.error("鍙傛暟鏍煎紡涓嶆纭�"); + 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