瀏覽代碼

巡检点巡检路线查询优化

丁治程 1 年之前
父節點
當前提交
70f3728d2d

+ 20 - 4
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectLine/service/impl/CmmsInspectLineServiceImpl.java

@@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * @Description: 巡检路线
@@ -273,12 +274,27 @@ public class CmmsInspectLineServiceImpl extends ServiceImpl<CmmsInspectLineMappe
     public List<CmmsInspectLineVo> getCmmsInspectLineListDetails(Page<CmmsInspectLineVo> page, CmmsInspectLine cmmsInspectLine) {
         List<CmmsInspectLineVo> lineList = inspectLineMapper.getCmmsInspectLineListDetails(page, cmmsInspectLine);
         ArrayList<CmmsInspectLineVo> list = new ArrayList<>();
-
-        for (CmmsInspectLineVo vo : lineList) {
-            CmmsInspectLineVo inspectLine = this.getCmmsInspectLineById(vo.getId());
-            list.add(inspectLine);
+        ArrayList<CompletableFuture<CmmsInspectLineVo>> completableFutureList = new ArrayList<>();
+
+        for (CmmsInspectLineVo vo:lineList) {
+            CompletableFuture<CmmsInspectLineVo> getInspectListFuture = CompletableFuture.supplyAsync(() -> {
+                CmmsInspectLineVo inspectLine = this.getCmmsInspectLineById(vo.getId());
+                return inspectLine;
+            });
+            completableFutureList.add(getInspectListFuture);
         }
 
+        CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[0])).thenRun(() -> {
+            for (CompletableFuture<CmmsInspectLineVo> future:completableFutureList) {
+                CmmsInspectLineVo join = future.join();
+                list.add(join);
+            }
+        }).join();
+        //for (CmmsInspectLineVo vo : lineList) {
+        //    CmmsInspectLineVo inspectLine = this.getCmmsInspectLineById(vo.getId());
+        //    list.add(inspectLine);
+        //}
+
         return list;
     }
 

+ 28 - 10
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectSpot/service/impl/CmmsInspectSpotServiceImpl.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * @Description: 巡检点
@@ -196,18 +197,35 @@ public class CmmsInspectSpotServiceImpl extends ServiceImpl<CmmsInspectSpotMappe
     @Override
     public List<CmmsInspectSpotVo> getCmmsInspectSpotListDetails(Page<CmmsInspectSpotVo> page, CmmsInspectSpot cmmsInspectSpot) {
         List<CmmsInspectSpotVo> cmmsInspectSpotList = inspectSpotMapper.getCmmsInspectSpotList(page, cmmsInspectSpot);
-        for (int i = 0; i < cmmsInspectSpotList.size(); i++) {
-            String id = cmmsInspectSpotList.get(i).getId();
-            List<CmmsInspectSpotEquip> list = inspectSpotEquipService.getInspectSpotEquipBySprtId(id);
-            ArrayList<CmmsInspectContentVo> contentList = new ArrayList<>();
-            for (CmmsInspectSpotEquip spot:list) {
-                CmmsInspectContentVo inspectContent = iCmmsInspectContentService.getCmmsInspectContentById(spot.getInspectcontid());
-                contentList.add(inspectContent);
-            }
-            cmmsInspectSpotList.get(i).setInspectContentList(contentList);
+        ArrayList<CmmsInspectSpotVo> list = new ArrayList<>();
+        ArrayList<CompletableFuture<CmmsInspectSpotVo>> completableFutureList = new ArrayList<>();
+        for (CmmsInspectSpot vo:cmmsInspectSpotList) {
+            CompletableFuture<CmmsInspectSpotVo> getInspectSpotFuture = CompletableFuture.supplyAsync(() -> {
+                CmmsInspectSpotVo cmmsInspectSpotVo = this.getCmmsInspectSpotListById(vo.getId());
+                return cmmsInspectSpotVo;
+            });
+            completableFutureList.add(getInspectSpotFuture);
         }
+        CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[0])).thenRun(() -> {
+            for (CompletableFuture<CmmsInspectSpotVo> future : completableFutureList) {
+                CmmsInspectSpotVo join = future.join();
+                list.add(join);
+            }
+        }).join();
+
+
+        //for (int i = 0; i < cmmsInspectSpotList.size(); i++) {
+        //    String id = cmmsInspectSpotList.get(i).getId();
+        //    List<CmmsInspectSpotEquip> list = inspectSpotEquipService.getInspectSpotEquipBySprtId(id);
+        //    ArrayList<CmmsInspectContentVo> contentList = new ArrayList<>();
+        //    for (CmmsInspectSpotEquip spot:list) {
+        //        CmmsInspectContentVo inspectContent = iCmmsInspectContentService.getCmmsInspectContentById(spot.getInspectcontid());
+        //        contentList.add(inspectContent);
+        //    }
+        //    cmmsInspectSpotList.get(i).setInspectContentList(contentList);
+        //}
 
-        return cmmsInspectSpotList;
+        return list;
     }
 
     @Override