From 806618e611387c1b1bbfcc62542da3c9641c737f Mon Sep 17 00:00:00 2001
From: xueqingkun <xueqingkun@126.com>
Date: Fri, 22 Dec 2023 17:12:05 +0800
Subject: [PATCH] =?UTF-8?q?web:=20=E6=9F=A5=E8=AF=A2=E8=BE=85=E5=8A=A9?=
 =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=E6=B7=BB=E5=8A=A0=E6=8E=92=E5=BA=8F?=
 =?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../model/ConfigAncillaryItem.java            |  7 ++++++
 .../impl/ConfigAncillaryItemServiceImpl.java  | 23 ++++++++++++-------
 .../vo/ask/ConfigAncillaryItemResVO.java      |  2 ++
 .../mapper/ConfigAncillaryItemMapper.xml      |  4 +++-
 4 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/virtual-patient-model/src/main/java/com/supervision/model/ConfigAncillaryItem.java b/virtual-patient-model/src/main/java/com/supervision/model/ConfigAncillaryItem.java
index 730c9041..4f3089c9 100644
--- a/virtual-patient-model/src/main/java/com/supervision/model/ConfigAncillaryItem.java
+++ b/virtual-patient-model/src/main/java/com/supervision/model/ConfigAncillaryItem.java
@@ -80,6 +80,13 @@ public class ConfigAncillaryItem implements Serializable {
     @TableField(typeHandler = StringListTypeHandler.class)
     private List<String> callOutQuestion;
 
+    @ApiModelProperty("检查类型排序")
+    private Integer typePriority;
+
+    @ApiModelProperty("item排序")
+    private Integer itemPriority;
+
+
     /**
      * 创建人ID
      */
diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigAncillaryItemServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigAncillaryItemServiceImpl.java
index fceadbe4..3ad3f609 100644
--- a/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigAncillaryItemServiceImpl.java
+++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigAncillaryItemServiceImpl.java
@@ -16,10 +16,7 @@ import com.supervision.vo.result.ConfigAncillaryItemVo;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -62,7 +59,9 @@ public class ConfigAncillaryItemServiceImpl extends ServiceImpl<ConfigAncillaryI
 
         List<ConfigAncillaryItemVo> list = this.queryVoList(ancillaryItemReqVo);
         return list.stream().collect(Collectors.groupingBy(ConfigAncillaryItem::getType)).entrySet().stream().
-                map(ConfigAncillaryItemServiceImpl::getConfigAncillaryItemResVO).collect(Collectors.toList());
+                map(ConfigAncillaryItemServiceImpl::getConfigAncillaryItemResVO)
+                .sorted(Comparator.comparingInt(ConfigAncillaryItemResVO::getPriority))
+                .collect(Collectors.toList());
     }
 
     private static ConfigAncillaryItemResVO getConfigAncillaryItemResVO(Map.Entry<String, List<ConfigAncillaryItemVo>> e) {
@@ -72,9 +71,17 @@ public class ConfigAncillaryItemServiceImpl extends ServiceImpl<ConfigAncillaryI
         item.setItemIdPath(CollUtil.newArrayList(item.getId()));
         item.setItemList(e.getValue());
         if (CollUtil.isNotEmpty(item.getItemList())){
-            for (ConfigAncillaryItemVo itemVo : item.getItemList()) {
-                itemVo.setItemIdPath(CollUtil.newArrayList(item.getId(),itemVo.getId()));
-            }
+            Integer typePriority = CollUtil.getFirst(e.getValue()).getTypePriority();
+            item.setPriority(null == typePriority ? 9999 : typePriority);
+            // 对itemList进行排序
+            List<ConfigAncillaryItemVo> itemVoListSorted = item.getItemList().stream().peek(itemVo -> {
+                        if (null == itemVo.getItemPriority()) {
+                            itemVo.setItemPriority(9999);
+                        }
+                        itemVo.setItemIdPath(CollUtil.newArrayList(item.getId(),itemVo.getId()));
+                    })
+                    .sorted(Comparator.comparingInt(ConfigAncillaryItem::getItemPriority)).collect(Collectors.toList());
+            item.setItemList(itemVoListSorted);
         }
         return item;
     }
diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/ask/ConfigAncillaryItemResVO.java b/virtual-patient-model/src/main/java/com/supervision/vo/ask/ConfigAncillaryItemResVO.java
index 3dee8c80..2c6f7e34 100644
--- a/virtual-patient-model/src/main/java/com/supervision/vo/ask/ConfigAncillaryItemResVO.java
+++ b/virtual-patient-model/src/main/java/com/supervision/vo/ask/ConfigAncillaryItemResVO.java
@@ -20,6 +20,8 @@ public class ConfigAncillaryItemResVO {
     @ApiModelProperty("标识 true:已选择 false:未选择")
     private boolean flag;
 
+    private int priority;
+
     private List<ConfigAncillaryItemVo> itemList;
 
     @ApiModelProperty("检查项id路径")
diff --git a/virtual-patient-model/src/main/resources/mapper/ConfigAncillaryItemMapper.xml b/virtual-patient-model/src/main/resources/mapper/ConfigAncillaryItemMapper.xml
index 6ed491c4..5c109270 100644
--- a/virtual-patient-model/src/main/resources/mapper/ConfigAncillaryItemMapper.xml
+++ b/virtual-patient-model/src/main/resources/mapper/ConfigAncillaryItemMapper.xml
@@ -14,6 +14,8 @@
         <result property="info" column="info" jdbcType="VARCHAR"/>
         <result column="call_out_question" jdbcType="ARRAY" property="callOutQuestion"
                 typeHandler="com.supervision.handler.StringListTypeHandler"/>
+        <result property="typePriority" column="type_priority" jdbcType="VARCHAR"/>
+        <result property="itemPriority" column="item_priority" jdbcType="VARCHAR"/>
         <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
         <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
         <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
@@ -23,7 +25,7 @@
     <sql id="Base_Column_List">
         id
         ,type,item_class,item_name,location_name,
-        info,create_user_id,create_time,
+        info,call_out_question,type_priority,item_priority,create_user_id,create_time,
         update_user_id,update_time
     </sql>
 </mapper>