Pārlūkot izejas kodu

交易市场平台(供应商)

wwh 6 dienas atpakaļ
vecāks
revīzija
9d0ea4f16d

+ 44 - 0
baqing-admin/src/main/java/com/ruoyi/web/modules/architecture/domain/AppMedicationIncompatibilityGroupRow.java

@@ -0,0 +1,44 @@
1
+package com.ruoyi.web.modules.architecture.domain;
2
+
3
+/**
4
+ * 移动端用药工具 — 同一主药下的一条禁配标准(配伍组)摘要。
5
+ */
6
+public class AppMedicationIncompatibilityGroupRow
7
+{
8
+    private Long standardId;
9
+
10
+    private String compatResult;
11
+
12
+    /** 组内配伍药物,逗号分隔,按 sort_order */
13
+    private String companionsCsv;
14
+
15
+    public Long getStandardId()
16
+    {
17
+        return standardId;
18
+    }
19
+
20
+    public void setStandardId(Long standardId)
21
+    {
22
+        this.standardId = standardId;
23
+    }
24
+
25
+    public String getCompatResult()
26
+    {
27
+        return compatResult;
28
+    }
29
+
30
+    public void setCompatResult(String compatResult)
31
+    {
32
+        this.compatResult = compatResult;
33
+    }
34
+
35
+    public String getCompanionsCsv()
36
+    {
37
+        return companionsCsv;
38
+    }
39
+
40
+    public void setCompanionsCsv(String companionsCsv)
41
+    {
42
+        this.companionsCsv = companionsCsv;
43
+    }
44
+}

+ 44 - 0
baqing-admin/src/main/java/com/ruoyi/web/modules/architecture/support/AppMedicationIncompatibilityDisplaySupport.java

@@ -0,0 +1,44 @@
1
+package com.ruoyi.web.modules.architecture.support;
2
+
3
+import java.util.List;
4
+import com.ruoyi.common.utils.StringUtils;
5
+import com.ruoyi.web.modules.architecture.domain.AppMedicationIncompatibilityGroupRow;
6
+
7
+/**
8
+ * 移动端用药工具 — 多配伍组禁配信息展示文案。
9
+ */
10
+public final class AppMedicationIncompatibilityDisplaySupport
11
+{
12
+    private AppMedicationIncompatibilityDisplaySupport()
13
+    {
14
+    }
15
+
16
+    /**
17
+     * 将多条禁配标准格式化为:{@code 药A,药B(结果1);药C(结果2)}。
18
+     */
19
+    public static String formatGroupsForDisplay(List<AppMedicationIncompatibilityGroupRow> groups)
20
+    {
21
+        if (groups == null || groups.isEmpty())
22
+        {
23
+            return null;
24
+        }
25
+        StringBuilder sb = new StringBuilder();
26
+        for (AppMedicationIncompatibilityGroupRow group : groups)
27
+        {
28
+            if (group == null || StringUtils.isEmpty(group.getCompanionsCsv()))
29
+            {
30
+                continue;
31
+            }
32
+            if (sb.length() > 0)
33
+            {
34
+                sb.append(';');
35
+            }
36
+            sb.append(group.getCompanionsCsv().trim());
37
+            if (StringUtils.isNotEmpty(group.getCompatResult()))
38
+            {
39
+                sb.append('(').append(group.getCompatResult().trim()).append(')');
40
+            }
41
+        }
42
+        return sb.length() > 0 ? sb.toString() : null;
43
+    }
44
+}

+ 47 - 0
baqing-admin/src/test/java/com/ruoyi/web/modules/architecture/support/AppMedicationIncompatibilityDisplaySupportTest.java

@@ -0,0 +1,47 @@
1
+package com.ruoyi.web.modules.architecture.support;
2
+
3
+import static org.junit.jupiter.api.Assertions.assertEquals;
4
+import static org.junit.jupiter.api.Assertions.assertNull;
5
+
6
+import java.util.Arrays;
7
+import org.junit.jupiter.api.DisplayName;
8
+import org.junit.jupiter.api.Test;
9
+import com.ruoyi.web.modules.architecture.domain.AppMedicationIncompatibilityGroupRow;
10
+
11
+@DisplayName("AppMedicationIncompatibilityDisplaySupport")
12
+class AppMedicationIncompatibilityDisplaySupportTest
13
+{
14
+    @Test
15
+    @DisplayName("多配伍组带结果")
16
+    void multipleGroups()
17
+    {
18
+        AppMedicationIncompatibilityGroupRow g1 = group("链霉素,庆大霉素", "禁止合用");
19
+        AppMedicationIncompatibilityGroupRow g2 = group("维生素C", "降低疗效");
20
+        assertEquals("链霉素,庆大霉素(禁止合用);维生素C(降低疗效)",
21
+                AppMedicationIncompatibilityDisplaySupport.formatGroupsForDisplay(Arrays.asList(g1, g2)));
22
+    }
23
+
24
+    @Test
25
+    @DisplayName("单组无配伍结果")
26
+    void singleGroupWithoutResult()
27
+    {
28
+        assertEquals("链霉素,磺胺",
29
+                AppMedicationIncompatibilityDisplaySupport.formatGroupsForDisplay(
30
+                        Arrays.asList(group("链霉素,磺胺", null))));
31
+    }
32
+
33
+    @Test
34
+    @DisplayName("空列表")
35
+    void empty()
36
+    {
37
+        assertNull(AppMedicationIncompatibilityDisplaySupport.formatGroupsForDisplay(null));
38
+    }
39
+
40
+    private static AppMedicationIncompatibilityGroupRow group(String companions, String result)
41
+    {
42
+        AppMedicationIncompatibilityGroupRow row = new AppMedicationIncompatibilityGroupRow();
43
+        row.setCompanionsCsv(companions);
44
+        row.setCompatResult(result);
45
+        return row;
46
+    }
47
+}