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/mapper/StructureItemParameterMapper.java         |    3 +
 basic-server/src/main/java/com/ruoyi/basic/dto/StructureItemParameterDto.java               |   14 +++++++
 basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java                 |    3 +
 basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java  |   36 ++++++++++++++++++
 basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml                     |    8 +++-
 basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java |   22 +++++++++-
 6 files changed, 80 insertions(+), 6 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/StructureItemParameterDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/StructureItemParameterDto.java
new file mode 100644
index 0000000..3113728
--- /dev/null
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/StructureItemParameterDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.basic.dto;
+
+import lombok.Data;
+
+@Data
+public class StructureItemParameterDto {
+
+    private String tree;
+
+    /**
+     * 鏄惁濮旀墭瑕佹眰 0 鍚� 1 鏄�
+     */
+    private String delegateRequestFlag;
+}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
index e95ac18..f6cdb2f 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StructureItemParameterMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.StructureItemParameterDto;
 import com.ruoyi.basic.dto.TestItemDto;
 import com.ruoyi.basic.pojo.StandardProductList;
 import com.ruoyi.basic.pojo.StructureItemParameter;
@@ -28,7 +29,7 @@
 
     int removeNoSample(@Param("sample") String sample);
 
-    List<StructureItemParameter> selectItemParameterBySample(@Param("sample") String sample);
+    List<StructureItemParameter> selectItemParameterBySample(@Param("structureItemParameterDto") StructureItemParameterDto structureItemParameterDto);
 
     List<TestItemDto> getItemTreeProduct(@Param("objectType") String objectType);
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
index a2b34ba..c88fe58 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
@@ -246,4 +246,7 @@
     @ExcelProperty(value = "妫�娴嬪弬鏁扮紪鍙�",index = 3)
     @TableField(exist = false)
     private String parameterNumber;
+
+    @ApiModelProperty(value = "鏄惁濮旀墭瑕佹眰 0 鍚� 1 鏄�")
+    private String delegateRequestFlag;
 }
\ No newline at end of file
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 596aabb..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
@@ -5,14 +5,19 @@
 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;
 
@@ -20,6 +25,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
 * @author Administrator
@@ -37,6 +43,9 @@
 
     @Autowired
     private WorkShopMapper workShopMapper;
+
+    @Autowired
+    private StandardMethodMapper standardMethodMapper;
 
 
     @Override
@@ -103,6 +112,33 @@
                 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;
     }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
index 33a54de..305e77c 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -75,6 +75,9 @@
     @Autowired
     private StandardProductListSupplierAskBackupRelMapper  standardProductListSupplierAskBackupRelMapper;
 
+    @Autowired
+    private StandardMethodMapper standardMethodMapper;
+
 
     @Override
     public int upStandardProductList(StandardProductList list) {
@@ -383,14 +386,27 @@
         if(StringUtils.isEmpty(checkItemQueryTree.toString())){
             return map;
         }
+        // 鍒ゆ柇鏄惁涓哄鎵樿姹傛爣鍑�
+        StandardMethod standardMethod = standardMethodMapper.selectById(id);
+        if(ObjectUtils.isEmpty(standardMethod)){
+            return map;
+        }
+        StructureItemParameterDto structureItemParameterDto = new StructureItemParameterDto();
+        if(standardMethod.getName().equals("濮旀墭瑕佹眰")){
+            structureItemParameterDto.setDelegateRequestFlag("1");
+        }else {
+            structureItemParameterDto.setDelegateRequestFlag("0");
+        }
+        structureItemParameterDto.setTree(checkItemQueryTree.toString());
+
         // 鏍规嵁妫�楠屽璞�/浜у搧鏌ヨ妫�楠岄」
-        List<StructureItemParameter> structureItemParameterList = structureItemParameterMapper.selectItemParameterBySample(checkItemQueryTree.toString());
+        List<StructureItemParameter> structureItemParameterList = structureItemParameterMapper.selectItemParameterBySample(structureItemParameterDto);
         // 濡傛灉鏄骇鍝佺殑妫�鏌ラ」涓虹┖鍚戜笂鎺�
         if(CollectionUtils.isEmpty(structureItemParameterList)){
             String query = "[\"" + sampleType + "\"]";
-            structureItemParameterList = structureItemParameterMapper.selectItemParameterBySample(query);
+            structureItemParameterDto.setTree(query);
+            structureItemParameterList = structureItemParameterMapper.selectItemParameterBySample(structureItemParameterDto);
         }
-
         // 鏌ヨ鏍囧噯搴撳凡缁戝畾妫�鏌ラ」鐩�
         List<StandardProductList> standardProductList = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
                 .eq(StandardProductList::getStandardMethodListId, id)
diff --git a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
index bf8a74d..0dd9fb5 100644
--- a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
+++ b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
@@ -92,7 +92,8 @@
         inspection_item_class_en,
         code,
         radius_list,
-        rates
+        rates,
+        delegate_request_flag
         FROM
         temp_sample A
         LEFT JOIN
@@ -204,8 +205,11 @@
         sample is NULL
         OR sample = ''
         or sample = '[]'
-        OR sample LIKE CONCAT('%', #{sample}, '%')
+        OR sample LIKE CONCAT('%', #{structureItemParameterDto.tree}, '%')
         )
+        <if test="structureItemParameterDto.delegateRequestFlag != null and structureItemParameterDto.delegateRequestFlag  !='' ">
+            AND delegate_request_flag = #{structureItemParameterDto.delegateRequestFlag}
+        </if>
         order by id asc
     </select>
 

--
Gitblit v1.9.3