Pārlūkot izejas kodu

外接接口多个批准文号的问题解决

LIJU 1 mēnesi atpakaļ
vecāks
revīzija
5c8863ff9d

+ 17 - 1
src/main/java/cn/hnthyy/thmz/controller/mz/MzPharmacyController.java

@@ -2272,7 +2272,23 @@ public class MzPharmacyController {
             }
             
             // 比较批准文号是否一致
-            if (!externalApprovalNo.equals(currentPzwh)) {
+            // 支持外部接口返回多个批准文号的情况,检查当前药品批准文号是否在列表中
+            boolean isMatched = false;
+            if (StringUtils.isNotBlank(externalApprovalNo) && StringUtils.isNotBlank(currentPzwh)) {
+                // 去除首尾空格后按空格分割
+                String[] approvalNos = externalApprovalNo.trim().split(" ");
+                String trimmedCurrentPzwh = currentPzwh.trim();
+                
+                // 检查当前药品批准文号是否在外部接口返回的批准文号列表中
+                for (String approvalNo : approvalNos) {
+                    if (StringUtils.isNotBlank(approvalNo) && approvalNo.trim().equals(trimmedCurrentPzwh)) {
+                        isMatched = true;
+                        break;
+                    }
+                }
+            }
+            
+            if (!isMatched) {
                 log.error("批准文号不匹配,外部接口: {}, 当前药品: {}", externalApprovalNo, currentPzwh);
                 result.put("message", "扫追溯码的药,和当前的药不一样");
                 return result;