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