From f979442f4b8fe80e58a348121711bddc4ab16268 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Tue, 25 Jan 2022 13:25:59 +0800
Subject: [PATCH] 通过服务范围查询设备及站点

---
 screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java
index 4dbe38a..e76122a 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java
@@ -1,10 +1,24 @@
 package com.moral.api.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
+import com.moral.api.entity.Device;
+import com.moral.api.entity.MonitorPoint;
 import com.moral.api.entity.ServicesScopeDevice;
+import com.moral.api.mapper.DeviceMapper;
+import com.moral.api.mapper.MonitorPointMapper;
 import com.moral.api.mapper.ServicesScopeDeviceMapper;
 import com.moral.api.service.ServicesScopeDeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +31,44 @@
 @Service
 public class ServicesScopeDeviceServiceImpl extends ServiceImpl<ServicesScopeDeviceMapper, ServicesScopeDevice> implements ServicesScopeDeviceService {
 
+    @Autowired
+    private ServicesScopeDeviceMapper servicesScopeDeviceMapper;
+
+    @Autowired
+    private DeviceMapper deviceMapper;
+
+    @Autowired
+    private MonitorPointMapper monitorPointMapper;
+
+    @Override
+    public List<Map<String, Object>> getDevicesAndMonitorPoint(Map<String, Object> map) {
+        int servicesScopeId = Integer.parseInt(map.get("servicesScopeId").toString());
+        QueryWrapper<ServicesScopeDevice> servicesScopeDeviceQueryWrapper = new QueryWrapper<>();
+        servicesScopeDeviceQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+        servicesScopeDeviceQueryWrapper.eq("services_scope_id",servicesScopeId);
+        List<ServicesScopeDevice> servicesScopeDevices = servicesScopeDeviceMapper.selectList(servicesScopeDeviceQueryWrapper);
+        List<Integer> deviceIds = servicesScopeDevices.stream().map(p -> p.getDeviceId()).collect(Collectors.toList());
+        QueryWrapper<Device> deviceQueryWrapper = new QueryWrapper<>();
+        deviceQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+        deviceQueryWrapper.in("id",deviceIds);
+        List<Device> devices = deviceMapper.selectList(deviceQueryWrapper);
+        List<Integer> monitorPointIds = devices.stream().map(p -> p.getMonitorPointId()).collect(Collectors.toList());
+        QueryWrapper<MonitorPoint> monitorPointQueryWrapper = new QueryWrapper<>();
+        monitorPointQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+        monitorPointQueryWrapper.in("id",monitorPointIds);
+        List<MonitorPoint> monitorPointList = monitorPointMapper.selectList(monitorPointQueryWrapper);
+        List resultList = new ArrayList();
+        for (MonitorPoint monitorPoint:monitorPointList) {
+            Map monitorPointMap = JSON.parseObject(JSON.toJSONString(monitorPoint), Map.class);
+            List deviceList = new ArrayList();
+            for (Device device:devices) {
+                if (device.getMonitorPointId().equals(monitorPoint.getId())){
+                    deviceList.add(device);
+                }
+            }
+            monitorPointMap.put("devices",deviceList);
+            resultList.add(monitorPointMap);
+        }
+        return resultList;
+    }
 }

--
Gitblit v1.8.0