lizijie
2022-01-25 f979442f4b8fe80e58a348121711bddc4ab16268
通过服务范围查询设备及站点
1 files added
2 files modified
118 ■■■■■ changed files
screen-manage/src/main/java/com/moral/api/controller/ServicesScopeDeviceController.java 52 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/ServicesScopeDeviceService.java 12 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java 54 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/ServicesScopeDeviceController.java
New file
@@ -0,0 +1,52 @@
package com.moral.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.moral.api.entity.Organization;
import com.moral.api.entity.ServicesScope;
import com.moral.api.mapper.OrganizationMapper;
import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
import com.moral.api.service.OrganizationService;
import com.moral.api.service.ServicesScopeDeviceService;
import com.moral.api.service.ServicesScopeService;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.WebUtils;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
 * @program: screen
 * @description: 服务范围
 * @author: lizijie
 * @create: 2022-01-12 15:42
 **/
@Slf4j
@Api(tags = {"服务范围"})
@RestController
@RequestMapping("/servicesScopeDevice")
public class ServicesScopeDeviceController {
    @Resource
    private ServicesScopeDeviceService servicesScopeDeviceService;
    @RequestMapping(value = "getDevicesAndMonitorPoint", method = RequestMethod.GET)
    @ResponseBody
    public ResultMessage getDevicesAndMonitorPoint(HttpServletRequest request){
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null);
        Object servicesScopeId = parameters.get("servicesScopeId");
        if (ObjectUtils.isEmpty(servicesScopeId)){
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        List<Map<String, Object>> resultList = servicesScopeDeviceService.getDevicesAndMonitorPoint(parameters);
        return ResultMessage.ok(resultList);
    }
}
screen-manage/src/main/java/com/moral/api/service/ServicesScopeDeviceService.java
@@ -3,6 +3,9 @@
import com.moral.api.entity.ServicesScopeDevice;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  服务类
@@ -12,5 +15,14 @@
 * @since 2022-01-17
 */
public interface ServicesScopeDeviceService extends IService<ServicesScopeDevice> {
    /**
      *@Description: 获取服务范围绑定设备及站点
      *@Param: [map]
      *@return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
      *@Author: lizijie
      *@Date: 2022/1/25 9:56
     **/
    List<Map<String,Object>> getDevicesAndMonitorPoint(Map<String,Object> map);
}
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;
    }
}