Parcourir la source

站点管理站点分组

jichaobo il y a 3 ans
Parent
commit
1ad926a22d

+ 12 - 0
fiveep-controller/src/main/java/com/bizmatics/controller/web/SiteController.java

@@ -3,6 +3,7 @@ package com.bizmatics.controller.web;
 
 import com.bizmatics.common.core.bean.ApiResult;
 import com.bizmatics.model.Site;
+import com.bizmatics.model.SiteList;
 import com.bizmatics.service.SiteService;
 import com.bizmatics.service.vo.DeviceCountVO;
 import com.bizmatics.service.vo.SiteVO;
@@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 站点
@@ -49,6 +51,11 @@ public class SiteController {
         return ApiResult.success(siteService.list(name));
     }
 
+    /**
+     *
+     * @param name 站点名称
+     * @return
+     */
 
     @GetMapping("listStatus")
     public ApiResult<List<SiteVO>> siteAndStatus(@RequestParam(required = false) String name){
@@ -64,5 +71,10 @@ public class SiteController {
     public ApiResult<SiteVO> getOne(@RequestParam Long siteId){
         return ApiResult.success(siteService.getOne(siteId));
     }
+
+    @GetMapping("Sitelist")
+    public ApiResult<List<Map<String,Object>>> Sitelist(@RequestParam(required = false) String name){
+        return ApiResult.success(siteService.Sitelist(name));
+    }
 }
 

+ 36 - 0
fiveep-model/src/main/java/com/bizmatics/model/GroupingList.java

@@ -0,0 +1,36 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class GroupingList implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 站点分组表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 分组名称
+     */
+    private String groupingName;
+}

+ 4 - 0
fiveep-model/src/main/java/com/bizmatics/model/Site.java

@@ -99,5 +99,9 @@ public class Site implements Serializable {
 
     private String installedCapacity;
 
+    /**
+     * 分组ID
+     */
+    private Integer groupingId;
 
 }

+ 52 - 0
fiveep-model/src/main/java/com/bizmatics/model/SiteList.java

@@ -0,0 +1,52 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SiteList implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 站点表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 用户ID
+     */
+    private Integer userId;
+
+    /**
+     * 站点名称
+     */
+    private String siteName;
+
+    /**
+     * 分组ID
+     */
+    private Integer groupingId;
+
+    /**
+     * 分组名称
+     */
+    private String groupingName;
+}

+ 10 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/SiteMapper.java

@@ -1,8 +1,10 @@
 package com.bizmatics.persistence.mapper;
 
 import com.bizmatics.model.Device;
+import com.bizmatics.model.GroupingList;
 import com.bizmatics.model.Site;
 import com.bizmatics.common.mvc.base.CrudMapper;
+import com.bizmatics.model.SiteList;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -32,6 +34,14 @@ public interface SiteMapper extends CrudMapper<Site> {
     List<Device> idList(@Param("userId") Integer userId,
                         @Param("name") String name);
 
+    List<SiteList> Sitelist(@Param("userId") Integer userId,
+                            @Param("name") String name);
+
+    List<GroupingList> GroupingList(@Param("name") String name,
+                                    @Param("creator") String creator);
+
+    List<SiteList> SiteGroupinglist(@Param("userId") Integer userId,
+                                    @Param("name") String name);
 
 
 }

+ 79 - 14
fiveep-persistence/src/main/resources/mapper/mysql/SiteMapper.xml

@@ -4,20 +4,21 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.bizmatics.model.Site">
-        <id column="id" property="id" />
-        <result column="site_name" property="siteName" />
-        <result column="site_address" property="siteAddress" />
-        <result column="company_code" property="companyCode" />
-        <result column="user_name" property="userName" />
-        <result column="phone" property="phone" />
-        <result column="station_area_id" property="stationAreaId" />
-        <result column="route_id" property="routeId" />
-        <result column="longitude" property="longitude" />
-        <result column="latitude" property="latitude" />
-        <result column="region" property="region" />
-        <result column="create_time" property="createTime" />
-        <result column="creator" property="creator" />
-        <result column="enable" property="enable" />
+        <id column="id" property="id"/>
+        <result column="site_name" property="siteName"/>
+        <result column="site_address" property="siteAddress"/>
+        <result column="company_code" property="companyCode"/>
+        <result column="user_name" property="userName"/>
+        <result column="phone" property="phone"/>
+        <result column="station_area_id" property="stationAreaId"/>
+        <result column="route_id" property="routeId"/>
+        <result column="longitude" property="longitude"/>
+        <result column="latitude" property="latitude"/>
+        <result column="region" property="region"/>
+        <result column="create_time" property="createTime"/>
+        <result column="creator" property="creator"/>
+        <result column="enable" property="enable"/>
+        <result column="grouping_id" property="groupingId"/>
     </resultMap>
     <select id="selectCount" resultType="java.lang.Integer">
         select count(*)
@@ -54,8 +55,72 @@
             <if test="name != null and name != ''">
                 and s.site_name LIKE CONCAT(CONCAT('%', #{name}), '%')
             </if>
+
+        </where>
+    </select>
+    <select id="Sitelist" resultType="com.bizmatics.model.SiteList">
+        select
+        a.user_id,
+        b.id,
+        b.grouping_id,
+        b.site_name,
+        c.grouping_name
+        from user_site as a
+        join site as b on a.site_id = b.id
+        left join site_grouping as c on b.grouping_id = c.id
+        <where>
+                b.enable=1
+            <if test="userId != null and userId != 0">
+                and a.user_id = #{userId}
+            </if>
+            <if test="name != null and name != ''">
+                and b.site_name like CONCAT(CONCAT('%', #{name}), '%')
+            </if>
+            order by b.id desc
+        </where>
+    </select>
+
+    <select id="GroupingList" resultType="com.bizmatics.model.GroupingList">
+        select
+        a.id,
+        a.grouping_name
+        from site_grouping as a
+        left join site as b on a.id = b.grouping_id
+        <where>
+            <if test="name != null and name != ''">
+                and b.site_name like CONCAT(CONCAT('%', #{name}), '%')
+            </if>
+            <if test="creator != null and creator != ''">
+                and a.creator = #{creator}
+            </if>
+            group by a.id
+            order by a.id desc
+        </where>
+    </select>
+
+    <select id="SiteGroupinglist" resultType="com.bizmatics.model.SiteList">
+        select
+        a.user_id,
+        b.id,
+        b.grouping_id,
+        b.site_name,
+        c.grouping_name
+        from user_site as a
+        join site as b on a.site_id = b.id
+        left join site_grouping as c on b.grouping_id = c.id
+        <where>
+            b.enable=1
+            and b.grouping_id=0
+            <if test="userId != null and userId != 0">
+                and a.user_id = #{userId}
+            </if>
+            <if test="name != null and name != ''">
+                and b.site_name like CONCAT(CONCAT('%', #{name}), '%')
+            </if>
+            order by b.id desc
         </where>
     </select>
+
     <select id="idList" resultType="java.lang.Integer">
         select s.id
         from user_site as us

+ 9 - 0
fiveep-service/src/main/java/com/bizmatics/service/SiteService.java

@@ -2,10 +2,12 @@ package com.bizmatics.service;
 
 import com.bizmatics.model.Site;
 import com.bizmatics.common.mvc.base.CrudService;
+import com.bizmatics.model.SiteList;
 import com.bizmatics.service.vo.DeviceCountVO;
 import com.bizmatics.service.vo.SiteVO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -32,6 +34,13 @@ public interface SiteService extends CrudService<Site> {
      */
     List<Site> list(String name);
 
+    /**
+     * 查看站点列表
+     * @param name
+     * @return
+     */
+    List<Map<String, Object>> Sitelist(String name);
+
 
     /**
      * 查看站点和状态

+ 68 - 21
fiveep-service/src/main/java/com/bizmatics/service/impl/SiteServiceImpl.java

@@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.BeanMapperUtils;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
-import com.bizmatics.model.AlarmPower;
-import com.bizmatics.model.Device;
-import com.bizmatics.model.Site;
+import com.bizmatics.model.*;
 import com.bizmatics.persistence.mapper.AlarmPowerMapper;
 import com.bizmatics.persistence.mapper.DeviceMapper;
 import com.bizmatics.persistence.mapper.SiteMapper;
@@ -23,14 +21,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author ya
@@ -55,20 +51,71 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
 //        Integer userId = UserUtil.getUserId();
         Integer userId = SessionLocal.getUserId();
         DeviceCountVO deviceCountVO = new DeviceCountVO();
-        deviceCountVO.setNormalCount(baseMapper.selectCount(userId,null,DeviceStatusCode.NORMAL.getValue()));
-        deviceCountVO.setOffLineCount(baseMapper.selectCount(userId,null,DeviceStatusCode.OFFLINE.getValue()));
-        deviceCountVO.setDeviceCount(baseMapper.selectCount(userId,null,DeviceStatusCode.DEVICE.getValue()));
-        deviceCountVO.setFaultCount(baseMapper.selectCount(userId,null,DeviceStatusCode.FAULT.getValue()));
+        deviceCountVO.setNormalCount(baseMapper.selectCount(userId, null, DeviceStatusCode.NORMAL.getValue()));
+        deviceCountVO.setOffLineCount(baseMapper.selectCount(userId, null, DeviceStatusCode.OFFLINE.getValue()));
+        deviceCountVO.setDeviceCount(baseMapper.selectCount(userId, null, DeviceStatusCode.DEVICE.getValue()));
+        deviceCountVO.setFaultCount(baseMapper.selectCount(userId, null, DeviceStatusCode.FAULT.getValue()));
         deviceCountVO.setCount(userSiteService.count(userId));
         return deviceCountVO;
     }
 
     @Override
     public List<Site> list(String name) {
-        return baseMapper.list(SessionLocal.getUserId(),name);
+        return baseMapper.list(SessionLocal.getUserId(), name);
 
     }
 
+    @Override
+    public List<Map<String, Object>> Sitelist(String name) {
+        List<Map<String, Object>> list = new ArrayList<>();
+        List<SiteList> site_list = null;
+        List<GroupingList> grouping_list = null;
+        List<SiteList> site_grouping_list = null;
+        grouping_list = baseMapper.GroupingList(name,SessionLocal.getUser().getUserName());
+        site_list = baseMapper.Sitelist(SessionLocal.getUserId(), name);
+        site_grouping_list = baseMapper.SiteGroupinglist(SessionLocal.getUserId(), name);
+        List<Map<String, Object>> list1 = new ArrayList<>();
+        if (grouping_list.size() > 0) {
+            for (int i = 0; i < grouping_list.size(); i++) {
+                GroupingList grouping_list_one = (GroupingList) grouping_list.get(i);
+                Map<String, Object> map1 = new HashMap<>();
+                List<Map<String, Object>> list2 = new ArrayList<>();
+                map1.put("id", grouping_list_one.getId());
+                map1.put("grouping_id", grouping_list_one.getId());
+                map1.put("grouping_name", grouping_list_one.getGroupingName());
+                if (site_list.size() > 0) {
+                    for (int j = 0; j < site_list.size(); j++) {
+                        SiteList site_list_one = (SiteList) site_list.get(j);
+                        Map<String, Object> map2 = new HashMap<>();
+                        if (grouping_list_one.getId().equals(site_list_one.getGroupingId())) {
+                            map2.put("site_id", site_list_one.getId());
+                            map2.put("site_name", site_list_one.getSiteName());
+//                        map2.put("grouping_id",site_list_one.getGroupingId());
+                            list2.add(map2);
+                        }
+                    }
+                    map1.put("site_list", list2);
+                }else {
+                    map1.put("site_list", list2);
+                }
+                list1.add(map1);
+            }
+        }
+        if (site_grouping_list.size() > 0) {
+            List<Map<String, Object>> list3 = new ArrayList<>();
+            for (int i = 0; i < site_grouping_list.size(); i++) {
+                SiteList site_grouping_list_one = (SiteList) site_grouping_list.get(i);
+                Map<String, Object> map3 = new HashMap<>();
+                map3.put("id", site_grouping_list_one.getId());
+                map3.put("grouping_id", 0);
+                map3.put("grouping_name", site_grouping_list_one.getSiteName());
+                map3.put("site_list", list3);
+                list1.add(map3);
+            }
+        }
+        return list1;
+    }
+
     @Override
     public List<SiteVO> siteAndStatusList(String name) {
         List<SiteVO> list = new ArrayList<>();
@@ -77,7 +124,7 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
         List<Site> sites = baseMapper.list(SessionLocal.getUserId(), name);
         List<Device> deviceList = deviceMapper.list(userId, null, null, null, null, null);
         List<AlarmPower> alarmPowers = alarmPowerMapper.list(userId, null, null, null, null, null, 1);
-        sites.forEach(site -> list.add(enhanceSite(deviceList,site,alarmPowers)));
+        sites.forEach(site -> list.add(enhanceSite(deviceList, site, alarmPowers)));
         return list;
     }
 
@@ -87,7 +134,7 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
         return Optional.ofNullable(site)
                 .map(st -> {
                     LambdaQueryWrapper<Device> deviceLambdaQueryWrapper = Wrappers.lambdaQuery();
-                    deviceLambdaQueryWrapper.eq(Device::getSiteId,site.getId());
+                    deviceLambdaQueryWrapper.eq(Device::getSiteId, site.getId());
                     List<Device> list = deviceService.list(deviceLambdaQueryWrapper);
                     Integer count = alarmPowerMapper.selectCount(null, site.getId(), null, null, null, null, 1);
                     SiteVO siteVO = enhanceSite(list, site, null);
@@ -99,7 +146,7 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
     }
 
 
-    public SiteVO enhanceSite(List<Device> list,Site site,List<AlarmPower> alarmPowers){
+    public SiteVO enhanceSite(List<Device> list, Site site, List<AlarmPower> alarmPowers) {
         SiteVO siteVo = BeanMapperUtils.map(site, SiteVO.class);
         siteVo.setDeviceCount(list.size());
         long deviceCount = list.stream()
@@ -114,18 +161,18 @@ public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> imple
                 .filter(device -> device.getSiteId().equals(site.getId()))
                 .filter(device -> DeviceStatusCode.OFFLINE.getValue().equals(device.getDeviceStatus()))
                 .count();
-        if (CollectionUtils.isNotEmpty(alarmPowers)){
+        if (CollectionUtils.isNotEmpty(alarmPowers)) {
             siteVo.setAlarmPowerCount((int) alarmPowers.stream().filter(alarmPower -> alarmPower.getSiteId().equals(site.getId())).count());
-        }else {
+        } else {
             siteVo.setAlarmPowerCount(0);
         }
-        if (deviceCount > 0){
+        if (deviceCount > 0) {
             siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
-        }else if (offCount > 0){
+        } else if (offCount > 0) {
             siteVo.setStatus(DeviceStatusCode.OFFLINE.getDescribe());
-        }else if (faultCount > 0){
+        } else if (faultCount > 0) {
             siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
-        }else {
+        } else {
             siteVo.setStatus(DeviceStatusCode.NORMAL.getDescribe());
         }
         List<String> deviceTypes = list.stream()