From afd4b25f5744725c92be40217aae0760289b4671 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 08 四月 2025 11:19:05 +0800 Subject: [PATCH] 标准库添加委托要求功能 --- basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java | 146 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 96 insertions(+), 50 deletions(-) diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java index 691a547..652af35 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java @@ -1,16 +1,23 @@ package com.ruoyi.basic.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.basic.enums.BasicTreeEnums; +import com.ruoyi.basic.enums.TestPorjectTypeEnums; import com.ruoyi.basic.mapper.StandardMethodListMapper; +import com.ruoyi.basic.mapper.StandardMethodMapper; import com.ruoyi.basic.mapper.StandardProductListMapper; import com.ruoyi.basic.mapper.WorkShopMapper; +import com.ruoyi.basic.pojo.StandardMethod; import com.ruoyi.basic.pojo.StandardMethodList; import com.ruoyi.basic.pojo.StandardProductList; import com.ruoyi.basic.pojo.WorkShop; import com.ruoyi.basic.service.StandardMethodListService; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,6 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author Administrator @@ -36,64 +44,102 @@ @Autowired private WorkShopMapper workShopMapper; + @Autowired + private StandardMethodMapper standardMethodMapper; + @Override public Map<String, List<?>> selectsStandardMethodByFLSSM(String tree) { - // 鍒ゆ柇鏄惁鍖呭惈杞﹂棿 - boolean workshopExist = existWorkShop(tree); Map<String, List<?>> map = new HashMap<>(); - String str = ""; - List<StandardMethodList> standardMethodLists = new ArrayList<>(); + String sampleType = ""; // 妫�楠屽璞� + // 鎷兼帴鏍� String[] trees = tree.split(" - "); - if(trees != null && trees.length >= 4){ - // 鍒ゆ柇鏄惁鏈夎溅闂� - if(workshopExist){ - switch (trees.length - 4){ - case 3: - str += "\"" + trees[4] + "\",\"" + trees[5] + "\",\"" + trees[6] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str)); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[4] + "\",\"" + trees[5] + "\"")); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[4] + "\"")); - break; - case 2: - str += "\"" + trees[4] + "\",\"" + trees[5] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str)); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[4] + "\"")); - break; - case 1: - str += "\"" + trees[4] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists3(str)); - break; - default: - map.put("standardMethodList", null); - return map; - } - }else { - switch (trees.length - 4){ - case 2: - str += "\"" + trees[3] + "\",\"" + trees[4] + "\",\"" + trees[5] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str)); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[3] + "\",\"" + trees[4] + "\"")); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[3] + "\"")); - break; - case 1: - str += "\"" + trees[3] + "\",\"" + trees[4] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str)); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[3] + "\"")); - break; - case 0: - str += "\"" + trees[3] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists3(str)); - break; - default: - map.put("standardMethodList", null); - return map; - } + map.put("standardMethodList", null); + if(trees == null && trees.length < 4){ + return map; + } + StringBuilder checkItemQueryTree = new StringBuilder(); // 妫�鏌ラ」鏌ヨ + StringBuilder productTree = new StringBuilder(); // 妫�楠屼骇鍝佹爲 + // 鍒ゆ柇鏄惁鍖呭惈杞﹂棿 + boolean existWorkShopFlag = this.existWorkShop(tree); + // 杞﹂棿灞傜骇澶氫竴灞傜骇 + if(existWorkShopFlag){ + switch (trees.length) { + case 7: + sampleType = trees[4]; + checkItemQueryTree.append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\",\"").append(trees[6]).append("\""); + productTree.append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\""); + break; + case 6: + sampleType = trees[4]; + checkItemQueryTree.append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\""); + break; + case 5: + sampleType = trees[4]; + checkItemQueryTree.append("\"").append(trees[4]).append("\"").append("]"); + break; } }else { - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodListsByNull(str)); + switch (trees.length) { + case 6: + sampleType = trees[3]; + checkItemQueryTree.append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\",\"").append(trees[5]).append("\""); + productTree.append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\""); + break; + case 5: + sampleType = trees[3]; + checkItemQueryTree.append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\""); + break; + case 4: + sampleType = trees[3]; + checkItemQueryTree.append("\"").append(trees[3]).append("\"").append("]"); + break; + } } - map.put("standardMethodList", standardMethodLists); + if(StringUtils.isEmpty(checkItemQueryTree.toString())){ + return map; + } + List<StandardMethodList> standardMethodListArray = standardMethodListMapper.selectStandardMethodLists(checkItemQueryTree.toString()); + // 鏌ヤ笉鍒版煡璇㈡鏌ュ璞� + if(CollectionUtils.isEmpty(standardMethodListArray)){ + // 濡傛灉鏄畬鏁村眰绾э紝鍚戜笂鎺ㄥ埌浜у搧灞傜骇 + if((existWorkShopFlag&&trees.length == 7) || (!existWorkShopFlag&&trees.length == 6)){ + standardMethodListArray = standardMethodListMapper.selectStandardMethodLists(productTree.toString()); + + } + // 杩樻槸涓虹┖鏌ヨ瀵硅薄灞傜骇 + if(CollectionUtils.isEmpty(standardMethodListArray)){ + standardMethodListArray = standardMethodListMapper.selectStandardMethodLists(sampleType); + } + } + // 鍒ゆ柇鏄惁鏄垚鍝�/鍗婃垚鍝� + boolean isProduct = false; + for (int i = 0; i < trees.length; i++) { + if(TestPorjectTypeEnums.FINISHED_PRODUCT.getName().equals(trees[i]) || TestPorjectTypeEnums.SEMI_FINISHED_PRODUCT.getName().equals(trees[i])){ + isProduct = true; + break; + } + } + // 濡傛灉鏄垚鍝�/鍗婃垚鍝� 涓� 妫�楠屾爣鍑嗛噷涓嶅寘鍚鎵樿姹傘�傛煡璇㈠苟娣诲姞鑷抽泦鍚� + boolean isContainDelegateRequest = false; + for (StandardMethodList standardMethodList : standardMethodListArray) { + if("濮旀墭瑕佹眰".equals(standardMethodList.getName())){ + isContainDelegateRequest = true; + break; + } + } + if(isProduct && !isContainDelegateRequest){ + QueryWrapper<StandardMethod> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("name","濮旀墭瑕佹眰"); + queryWrapper.eq("is_use","1"); + List<StandardMethod> standardMethods = standardMethodMapper.selectList(queryWrapper); + standardMethodListArray.addAll(standardMethods.stream().map(item -> { + StandardMethodList standardMethodList = new StandardMethodList(); + BeanUtils.copyProperties(item, standardMethodList); + return standardMethodList; + }).collect(Collectors.toList())); + } + map.put("standardMethodList", standardMethodListArray); return map; } -- Gitblit v1.9.3