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 | 153 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 129 insertions(+), 24 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 aa95f5d..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,19 +1,31 @@ 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; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author Administrator @@ -29,35 +41,105 @@ private StandardProductListMapper standardProductListMapper; + @Autowired + private WorkShopMapper workShopMapper; + + @Autowired + private StandardMethodMapper standardMethodMapper; + @Override public Map<String, List<?>> selectsStandardMethodByFLSSM(String tree) { - String[] trees = tree.split(" - "); Map<String, List<?>> map = new HashMap<>(); - String str = ""; - List<StandardMethodList> standardMethodLists = new ArrayList<>(); - switch (trees.length){ - case 5: - str += "\"" + trees[2] + "\",\"" + trees[3] + "\",\"" + trees[4] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str)); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[2] + "\",\"" + trees[3] + "\"")); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[2] + "\"")); - break; - case 4: - str += "\"" + trees[2] + "\",\"" + trees[3] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str)); - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[2] + "\"")); - break; - case 3: - str += "\"" + trees[2] + "\""; - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists3(str)); - break; - default: - map.put("standardMethodList", null); - return map; + String sampleType = ""; // 妫�楠屽璞� + // 鎷兼帴鏍� + String[] trees = tree.split(" - "); + map.put("standardMethodList", null); + if(trees == null && trees.length < 4){ + return map; } - standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodListsByNull(str)); - map.put("standardMethodList", standardMethodLists); + 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 { + 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; + } + } + 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; } @@ -70,6 +152,29 @@ public Integer getStandardMethodId(String code) { return baseMapper.getStandardMethodId(code); } + + /** + * 鍒ゆ柇鏄惁鍖呭惈杞﹂棿 + * + * @param tree + * @return + */ + @Override + public boolean existWorkShop(String tree){ + QueryWrapper<WorkShop> queryWrapper = new QueryWrapper<>(); + List<WorkShop> workShopList = workShopMapper.selectList(queryWrapper); + String[] trees = tree.split(" - "); + if(trees != null && trees.length > 0){ + for (int i = 0; i < trees.length; i++) { + for (WorkShop workShop : workShopList) { + if(workShop.getName().equals(trees[i].trim())){ + return true; + } + } + } + } + return false; + } } -- Gitblit v1.9.3