diff --git a/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java b/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java
index ab88ca4..6264870 100644
--- a/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java
+++ b/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java
@@ -11,5 +11,5 @@ public class ResultExcelDTO {
     List<String> oldResult;
     LocalDateTime startTime;
     LocalDateTime endTime;
-    boolean isMetabolite;
+    Boolean isMetabolite;
 }
diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java
index c675494..25290b3 100644
--- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java
+++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java
@@ -3,6 +3,7 @@ package digital.laboratory.platform.entrustment.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -38,6 +39,7 @@ import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.usermodel.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import springfox.documentation.spring.web.json.Json;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -542,6 +544,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
         LocalDateTime endTime = excelDTO.getEndTime();
         List<String> oldResults = excelDTO.getOldResult();
         Integer entrustType = excelDTO.getEntrustType();
+
         // 创建查询条件包装器
         LambdaQueryWrapper<Entrustment> wrapper = new LambdaQueryWrapper<>();
 
@@ -611,6 +614,18 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
                         .in(EntrustMaterialCheckoutResult::getId, materialIds)
         );
 
+        Boolean isMetabolite = excelDTO.getIsMetabolite();
+
+        if (isMetabolite) {
+            resultList.forEach(result -> {
+                if (StringUtils.isNotBlank(result.getMetaboliteResult())) {
+                    List<DrugLite> drugLites = DrugLiteConvert.getDrugLites(result.getMetaboliteResult());
+                    List<DrugLite> drugLites1 = DrugLiteConvert.getDrugLites(result.getQualitativeResult());
+                    drugLites.addAll(drugLites1);
+                    result.setQualitativeResult(JSONArray.toJSONString(drugLites));
+                }
+            });
+        }
         // 将检测结果转换为 Map
         Map<String, EntrustMaterialCheckoutResult> resultMap = resultList.stream()
                 .collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity()));
@@ -651,7 +666,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
         LocalDateTime endTime = excelDTO.getEndTime();
         List<String> oldResults = excelDTO.getOldResult();
         Integer entrustType = excelDTO.getEntrustType();
-        boolean metabolite = excelDTO.isMetabolite();
+        boolean isMetabolite = excelDTO.getIsMetabolite();
         try {
             // 1. 构建查询条件
             LambdaQueryWrapper<Entrustment> qw = new LambdaQueryWrapper<>();
@@ -712,6 +727,14 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
                 for (DrugLite drugLite : drugLites) {
                     drugNames.add(drugLite.getName());
                 }
+                if (isMetabolite && StringUtils.isNotBlank(result.getMetaboliteResult())) {
+                    List<DrugLite> drugLites1 = DrugLiteConvert.getDrugLites(result.getMetaboliteResult());
+                    for (DrugLite drugLite : drugLites1) {
+                        if (!drugNames.contains(drugLite.getName())) {
+                            drugNames.add(drugLite.getName());
+                        }
+                    }
+                }
             }
 
             // 5. 处理不同毒品名称的数据
@@ -720,13 +743,27 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
             for (String drugName : drugNames) {
                 // 5.1 查询所有含有该毒品的检验结果
                 List<EntrustMaterialCheckoutResult> resultList = this.list(Wrappers.<EntrustMaterialCheckoutResult>lambdaQuery()
-                        .like(EntrustMaterialCheckoutResult::getQualitativeResult, drugName)
+                        .and(queryWrapper -> queryWrapper
+                                .like(EntrustMaterialCheckoutResult::getMetaboliteResult, drugName)
+                                .or()
+                                .like(EntrustMaterialCheckoutResult::getQualitativeResult, drugName))
                         .in(EntrustMaterialCheckoutResult::getEntrustId, entrustIdList));
 
                 if (resultList.isEmpty()) {
                     continue;
                 }
 
+                if (isMetabolite) {
+                    resultList.forEach(item -> {
+                        if (StringUtils.isNotBlank(item.getMetaboliteResult())) {
+                            List<DrugLite> drugLites = DrugLiteConvert.getDrugLites(item.getMetaboliteResult());
+                            List<DrugLite> drugLites1 = DrugLiteConvert.getDrugLites(item.getQualitativeResult());
+                            drugLites.addAll(drugLites1);
+                            item.setQualitativeResult(JSONArray.toJSONString(drugLites));
+                        }
+                    });
+                }
+
                 // 转换为 Map,方便后续查找
                 Map<String, EntrustMaterialCheckoutResult> checkoutResultMap = resultList.stream()
                         .collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity()));
@@ -1733,7 +1770,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
                     Integer val = entry.getValue().get(i - 1);
                     if (val != null && val != 0) {
                         cell.setCellValue(val);
-                        ints[i-1] += entry.getValue().get(i - 1);
+                        ints[i - 1] += entry.getValue().get(i - 1);
                     }
                 }
 
@@ -1756,10 +1793,10 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
 
             rowIndex += 2;
         }
-        XSSFRow lastRow = sheet.createRow(rowIndex-1);
+        XSSFRow lastRow = sheet.createRow(rowIndex - 1);
         lastRow.setHeight((short) (14.25 * 20));
         for (int i = 0; i < nameRows.length; i++) {
-            if (i == 0){
+            if (i == 0) {
                 Cell cell = lastRow.createCell(i);
                 cell.setCellStyle(blackStyle);
             }