From eb845e8be695ed1280a7cbf854a4d1dedf9db30d Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 30 十月 2026 15:02:55 +0800
Subject: [PATCH] 【丽水】/smartor/serviceSubtask/getSfStatisticsHyperlink 和 /smartor/serviceSubtask/getSfStatistics 统计的时候,对于 service_subtask.current_preachForm 为空的数据 当成 service_subtask.preachform 字符串的第一个执行方式、首次待随访全部(visitCount = 1 && sendstate in (1、2、3、7)) 区别于原先的待随访,这个是给市一使用的                                                                                                                                                                                            再次待随访全部(visitCount > 1 && sendstate in (1、2、3、7)) 区别于原先的待随访,这个是给市一使用的                                                                                                                                                                                            首次待随访待发送(visitCount = 1 && sendstate in (1、2))                                                                                                                                                                                            再次待随访待发送(visitCount > 1 && sendstate in (1、2))                                                                                                                                                                                            首次待随访已发送(visitCount = 1 && sendstate = in (3、7))                                                                                                                                                                                            再次待随访已发送(visitCount > 1 && sendstate = in (3、7))                                                                                                                                                                                            首次已发送(visitCount = 1 && sendstate = 3)                                                                                                                                                                                            再次已发送(visitCount > 1 && sendstate = 3)

---
 smartor/src/main/java/com/smartor/service/impl/HeLibraryAssortServiceImpl.java |   41 ++++++++++++++++++++---------------------
 1 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/HeLibraryAssortServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/HeLibraryAssortServiceImpl.java
index d7e66af..496694b 100644
--- a/smartor/src/main/java/com/smartor/service/impl/HeLibraryAssortServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/HeLibraryAssortServiceImpl.java
@@ -49,31 +49,30 @@
     @Override
     public List<HeLibraryAssortVO> selectHeLibraryAssortList(HeLibraryAssort heLibraryAssort) {
         List<HeLibraryAssort> heLibraryAssorts = heLibraryAssortMapper.selectHeLibraryAssortList(heLibraryAssort);
-        //灏唒id涓虹┖鐨勶紝杩囨护鎺�
-        List<HeLibraryAssort> heLibraryAssortList2 = new ArrayList<>();
-        for (HeLibraryAssort heLibraryAssort1 : heLibraryAssorts) {
-//            if (heLibraryAssort1.getPid() != null) {
-                heLibraryAssortList2.add(heLibraryAssort1);
-//            }
+        List<HeLibraryAssortVO> heLibraryAssortVOS = DtoConversionUtils.sourceToTarget(heLibraryAssorts, HeLibraryAssortVO.class);
+
+        List<HeLibraryAssortVO> rootList = new ArrayList<>();
+        Map<Long, HeLibraryAssortVO> categoryMap = new HashMap<>();
+
+        // 寤虹珛id->瀵硅薄鐨勬槧灏�
+        for (HeLibraryAssortVO category : heLibraryAssortVOS) {
+            categoryMap.put(category.getId(), category);
         }
 
-        List<HeLibraryAssortVO> heLibraryAssortVOS = DtoConversionUtils.sourceToTarget(heLibraryAssortList2, HeLibraryAssortVO.class);
-        //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁
-        List<HeLibraryAssortVO> heLibraryAssortVOArrayList = new ArrayList<>();
-        for (HeLibraryAssortVO heLibraryAssortVO : heLibraryAssortVOS) {
-            if (heLibraryAssortVO.getPid() != null) {
-                continue;
+        for (HeLibraryAssortVO category : heLibraryAssortVOS) {
+            if (category.getPid() == null || category.getPid() == -1) {
+                // 椤跺眰鑺傜偣
+                rootList.add(category);
+            } else {
+                // 鎵惧埌鐖惰妭鐐癸紝骞舵坊鍔犲埌鍏跺瓙鑺傜偣鍒楄〃
+                HeLibraryAssortVO parent = categoryMap.get(category.getPid());
+                if (parent != null) {
+                    HeLibraryAssort sc = DtoConversionUtils.sourceToTarget(category, HeLibraryAssort.class);
+                    parent.getHeLibraryAssortList().add(sc);
+                }
             }
-            HeLibraryAssort heLibraryAssort1 = new HeLibraryAssort();
-            heLibraryAssort1.setPid(heLibraryAssortVO.getId());
-            List<HeLibraryAssort> heLibraryAssortList = heLibraryAssortMapper.selectHeLibraryAssortList(heLibraryAssort1);
-
-            if (!Collections.isEmpty(heLibraryAssortList)) {
-                heLibraryAssortVO.setHeLibraryAssortList(heLibraryAssortList);
-            }
-            heLibraryAssortVOArrayList.add(heLibraryAssortVO);
         }
-        return heLibraryAssortVOArrayList;
+        return rootList;
     }
 
     /**

--
Gitblit v1.9.3