From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-lims/jnpf-lims-biz/src/test/java/jnpf/limsService/impl/LimsJianceTaskBatchValidationProbe.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 98 insertions(+), 0 deletions(-)
diff --git a/jnpf-lims/jnpf-lims-biz/src/test/java/jnpf/limsService/impl/LimsJianceTaskBatchValidationProbe.java b/jnpf-lims/jnpf-lims-biz/src/test/java/jnpf/limsService/impl/LimsJianceTaskBatchValidationProbe.java
new file mode 100644
index 0000000..cfe3115
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/test/java/jnpf/limsService/impl/LimsJianceTaskBatchValidationProbe.java
@@ -0,0 +1,98 @@
+package jnpf.limsService.impl;
+
+import jnpf.exception.DataException;
+import jnpf.limsEntity.LimsFenjianItem;
+import jnpf.limsEntity.LimsJianyanAssignItem;
+import jnpf.limsEntity.LimsJianyanXiangEntity;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/** 鎵归噺浠诲姟蹇呴』鍦ㄧ涓�鏉� UPDATE 鍓嶅畬鎴愭暣鎵瑰繀濉牎楠屻�� */
+public final class LimsJianceTaskBatchValidationProbe {
+
+ private static int passed;
+ private static int failed;
+
+ public static void main(String[] args) {
+ LimsFenjianItem first = fenjian("A", true);
+ LimsFenjianItem invalidSecond = fenjian("B", false);
+ check("鍒嗘鍚庤闈炴硶鍦ㄥ啓寰幆鍓嶈鍙戠幇",
+ failsOnSecondFenjian(first, invalidSecond), "鏈寜绗簩琛屽け璐�");
+
+ Map<String, LimsJianyanXiangEntity> rows = new LinkedHashMap<>();
+ rows.put("A", normalRow("A"));
+ rows.put("B", normalRow("B"));
+ LimsJianyanAssignItem validAssign = new LimsJianyanAssignItem();
+ validAssign.setId("A");
+ validAssign.setJianchaRen("user-a");
+ LimsJianyanAssignItem invalidAssign = new LimsJianyanAssignItem();
+ invalidAssign.setId("B");
+ check("鍒嗛厤鍚庤闈炴硶鍦ㄥ啓寰幆鍓嶈鍙戠幇",
+ failsOnSecondAssign(validAssign, invalidAssign, rows), "鏈寜绗簩琛屽け璐�");
+
+ LimsJianyanAssignItem missingRow = new LimsJianyanAssignItem();
+ missingRow.setId("missing");
+ boolean skipped = true;
+ try {
+ LimsJianceTaskServiceImpl.validateAssignItems(
+ Arrays.asList(validAssign, missingRow), rows);
+ } catch (DataException e) {
+ skipped = false;
+ }
+ check("棰勫姞杞界己澶辫淇濇寔閮ㄥ垎鎴愬姛璺宠繃璇箟", skipped, "缂哄け琛岃褰撴垚鏍¢獙澶辫触");
+
+ System.out.println("=== 鎵归噺棰勬牎楠屾柇瑷�锛�" + passed + " 閫氳繃 / " + failed + " 澶辫触 ===");
+ System.exit(failed == 0 ? 0 : 1);
+ }
+
+ private static boolean failsOnSecondFenjian(LimsFenjianItem first, LimsFenjianItem second) {
+ try {
+ LimsJianceTaskServiceImpl.validateFenjianItems(Arrays.asList(first, second));
+ return false;
+ } catch (DataException e) {
+ return e.getMessage() != null && e.getMessage().contains("绗� 2 鏉�");
+ }
+ }
+
+ private static boolean failsOnSecondAssign(LimsJianyanAssignItem first,
+ LimsJianyanAssignItem second,
+ Map<String, LimsJianyanXiangEntity> rows) {
+ try {
+ LimsJianceTaskServiceImpl.validateAssignItems(Arrays.asList(first, second), rows);
+ return false;
+ } catch (DataException e) {
+ return e.getMessage() != null && e.getMessage().contains("绗� 2 鏉�");
+ }
+ }
+
+ private static LimsFenjianItem fenjian(String id, boolean complete) {
+ LimsFenjianItem item = new LimsFenjianItem();
+ item.setId(id);
+ item.setFenjianLiang("1");
+ item.setFenjianDanwei(complete ? "g" : null);
+ item.setFenjianFenzhuangRongqi("鐡�");
+ item.setFenjianBaocunTiaojian("甯告俯");
+ return item;
+ }
+
+ private static LimsJianyanXiangEntity normalRow(String id) {
+ LimsJianyanXiangEntity row = new LimsJianyanXiangEntity();
+ row.setId(id);
+ return row;
+ }
+
+ private static void check(String name, boolean ok, String detail) {
+ if (ok) {
+ passed++;
+ System.out.println(" [PASS] " + name);
+ } else {
+ failed++;
+ System.out.println(" [FAIL] " + name + " -- " + detail);
+ }
+ }
+
+ private LimsJianceTaskBatchValidationProbe() {
+ }
+}
--
Gitblit v1.8.0