From cf7f2a00eb4e5fbfe90a403f6543d67daf447ff8 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期四, 21 七月 2022 09:51:36 +0800
Subject: [PATCH] 更新工作流

---
 src/main/java/com/whyc/service/WorksheetMainService.java |   97 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 86 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/whyc/service/WorksheetMainService.java b/src/main/java/com/whyc/service/WorksheetMainService.java
index 3599481..989bd7b 100644
--- a/src/main/java/com/whyc/service/WorksheetMainService.java
+++ b/src/main/java/com/whyc/service/WorksheetMainService.java
@@ -11,14 +11,14 @@
 import com.whyc.pojo.WorksheetLink;
 import com.whyc.pojo.WorksheetMain;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import sun.print.PSPrinterJob;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class WorksheetMainService {
@@ -28,6 +28,10 @@
 
     @Resource
     private WorksheetLinkMapper linkMapper;
+
+    @Autowired
+    @Lazy
+    private WorksheetLinkService linkService;
 
     @Resource
     private DocUserMapper userMapper;
@@ -104,36 +108,107 @@
         mainMapper.updateById(main);
     }
 
-    /**鐢ㄦ埛瀵瑰簲鐨勫伐浣滃彴鏁版嵁鍒嗙被
-     * @param user TODO*/
-    public Map<String, WorksheetMain> getList(DocUser user) {
-        Map<String,WorksheetMain> map = new HashMap<>();
+    /**
+     * 鐢ㄦ埛瀵瑰簲鐨勫伐浣滃彴鏁版嵁鍒嗙被
+     * @param user
+     * */
+    public Map<String, List<WorksheetMain>> getList(DocUser user) {
+        Map<String,List<WorksheetMain>> map = new HashMap<>();
         switch (user.getRoleId()){
             //鏅�氬憳宸�
             case "1001":
                 {
-                    //鏈鐞�/宸查┏鍥�/宸插鎵�
+                    //鏈鐞�(瀹℃壒涓�)/宸查┏鍥�/宸插鎵�
                     QueryWrapper<WorksheetMain> query = Wrappers.query();
                     query.eq("create_user_id",user.getId());
                     List<WorksheetMain> worksheetMainList = mainMapper.selectList(query);
+                    Map<Integer, List<WorksheetMain>> groupingList = worksheetMainList.stream().collect(Collectors.groupingBy(WorksheetMain::getStatus));
+                    groupingList.forEach((status,mainList)->{
+                        switch (status){
+                            case 0:{
+                                map.put("rejected",mainList);
+                            }break;
+                            case 1:
+                            case 2:{
+                                List<WorksheetMain> addedMainList = map.get("approving");
+                                if(addedMainList ==null){
+                                    map.put("approving",mainList);
+                                }else{
+                                    addedMainList.addAll(mainList);
+                                    map.put("approving",addedMainList);
+                                }
+                            }break;
+                            case 5:{
+                                map.put("approved",mainList);
+                            }break;
+                        }
+                    });
                 }
                 break;
             //椤圭洰缁忕悊
             case "1002":
                 {
-                    //寰呭鐞�/鏈鐞�/宸查┏鍥�/宸插鎵�
-
+                    //寰呭鐞�/宸插鐞�/灞炰簬鑷繁-瀹℃壒涓�/宸查┏鍥�/宸插鎵�
+                    //灞炰簬鑷繁-瀹℃壒涓�/宸查┏鍥�/宸插鎵�
+                    QueryWrapper<WorksheetMain> query = Wrappers.query();
+                    query.eq("create_user_id",user.getId());
+                    List<WorksheetMain> worksheetMainList = mainMapper.selectList(query);
+                    Map<Integer, List<WorksheetMain>> groupingList = worksheetMainList.stream().collect(Collectors.groupingBy(WorksheetMain::getStatus));
+                    groupingList.forEach((status,mainList)->{
+                        switch (status){
+                            case 0:{
+                                map.put("rejected",mainList);
+                            }break;
+                            case 2:{
+                                map.put("approving",mainList);
+                            }break;
+                            case 5:{
+                                map.put("approved",mainList);
+                            }break;
+                        }
+                    });
+                    //寰呭鐞�/宸插鐞�
+                    List<WorksheetLink> WorksheetLinkList = linkService.getInfoList(user.getId());
+                    Map<Integer, List<WorksheetLink>> groupingLinkList = WorksheetLinkList.stream().collect(Collectors.groupingBy(WorksheetLink::getLinkStatus));
+                    groupingLinkList.forEach((linkStatus,linkList)->{
+                        List<WorksheetMain> mainList = new LinkedList<>();
+                        linkList.forEach(link -> {mainList.add(link.getMain());});
+                        switch (linkStatus){
+                            case 0:{
+                                map.put("handling",mainList);
+                            }break;
+                            case 1:
+                            case 2:{
+                                map.put("handled",mainList);
+                            }break;
+                        }
+                    });
                 }
                 break;
             //鎬荤粡鐞�
             case "1003":
                 {
                     //寰呭鐞�/宸插鎵�
+                    List<WorksheetLink> WorksheetLinkList = linkService.getInfoList(user.getId());
+                    Map<Integer, List<WorksheetLink>> groupingLinkList = WorksheetLinkList.stream().collect(Collectors.groupingBy(WorksheetLink::getLinkStatus));
+                    groupingLinkList.forEach((linkStatus,linkList)->{
+                        List<WorksheetMain> mainList = new LinkedList<>();
+                        linkList.forEach(link -> {mainList.add(link.getMain());});
+                        switch (linkStatus){
+                            case 0:{
+                                map.put("handling",mainList);
+                            }break;
+                            case 1:
+                            case 2:{
+                                map.put("handled",mainList);
+                            }break;
+                        }
+                    });
                 }
                 break;
         }
 
-        return null;
+        return map;
     }
 
     public WorksheetMain getLinkList(int id) {

--
Gitblit v1.9.1