dcs 5 kuukautta sitten
vanhempi
commit
33e9ccdc9d

+ 27 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/test/controller/TestCont.java

@@ -52,6 +52,33 @@ public class TestCont {
         return Response.ok(testService.save(data));
     }
 
+    @ApiOperation("设备层级统计获取")
+    @RequestMapping(value = "/deviceLevelCount/{projectId}", method = RequestMethod.GET)
+    public Response getDeviceLevelCount(@PathVariable long projectId) {
+        return Response.ok(testService.getDeviceLevelCount(projectId));
+    }
+
+    @ApiOperation("设备层级统计新增")
+    @RequestMapping(value = "/deviceLevelCount", method = RequestMethod.POST)
+    public Response saveDeviceLevelCount(@RequestBody DeviceLevelCount deviceLevelCount) {
+        testService.save(deviceLevelCount);
+        return Response.ok();
+    }
+
+    @ApiOperation("设备层级统计修改")
+    @RequestMapping(value = "/deviceLevelCount", method = RequestMethod.PUT)
+    public Response updateDeviceLevelCount(@RequestBody DeviceLevelCount deviceLevelCount) {
+        testService.update(deviceLevelCount);
+        return Response.ok();
+    }
+
+    @ApiOperation("设备层级统计删除")
+    @RequestMapping(value = "/deviceLevelCount/{id}", method = RequestMethod.DELETE)
+    public Response deleteDeviceLevelCount(@PathVariable long id) {
+        testService.deleteDeviceLevelCount(id);
+        return Response.ok();
+    }
+
     //-----------------------------------------------------------------------------------------
 
     @ApiOperation("视频监控分页查询")

+ 20 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/test/dao/DeviceLevelCountDao.java

@@ -0,0 +1,20 @@
+package com.bosshand.virgo.api.test.dao;
+
+import com.bosshand.virgo.api.test.model.DeviceLevelCount;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface DeviceLevelCountDao {
+
+    public List<DeviceLevelCount> getList(long projectId);
+
+    public int save(DeviceLevelCount deviceLevelCount);
+
+    public int update(DeviceLevelCount deviceLevelCount);
+
+    public int delete(long id);
+
+    public List<DeviceLevelCount> getRoot(long projectId);
+}

+ 104 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/test/model/DeviceLevelCount.java

@@ -0,0 +1,104 @@
+package com.bosshand.virgo.api.test.model;
+
+import java.util.List;
+
+/**
+ * 模拟设备层级统计
+ */
+public class DeviceLevelCount {
+
+    private long id;
+    private long projectId;
+    private long parentId;
+    private String name;
+    /**
+     * 总数
+     */
+    private int totalNumber;
+    /**
+     * 开启数
+     */
+    private int openNumber;
+    /**
+     * 故障数
+     */
+    private int faultNumber;
+    /**
+     * 关闭数
+     */
+    private int closeNumber;
+
+    private List<DeviceLevelCount> children;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(long projectId) {
+        this.projectId = projectId;
+    }
+
+    public long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(long parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getTotalNumber() {
+        return totalNumber;
+    }
+
+    public void setTotalNumber(int totalNumber) {
+        this.totalNumber = totalNumber;
+    }
+
+    public int getOpenNumber() {
+        return openNumber;
+    }
+
+    public void setOpenNumber(int openNumber) {
+        this.openNumber = openNumber;
+    }
+
+    public int getFaultNumber() {
+        return faultNumber;
+    }
+
+    public void setFaultNumber(int faultNumber) {
+        this.faultNumber = faultNumber;
+    }
+
+    public int getCloseNumber() {
+        return closeNumber;
+    }
+
+    public void setCloseNumber(int closeNumber) {
+        this.closeNumber = closeNumber;
+    }
+
+    public List<DeviceLevelCount> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<DeviceLevelCount> children) {
+        this.children = children;
+    }
+}

+ 61 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/test/service/TestService.java

@@ -70,6 +70,9 @@ public class TestService {
     @Autowired
     DeviceCountDao deviceCountDao;
 
+    @Autowired
+    DeviceLevelCountDao deviceLevelCountDao;
+
     private static Logger logger = LoggerFactory.getLogger(TestService.class);
 
     public List<AccessControl> get(AccessControl data) {
@@ -274,6 +277,64 @@ public class TestService {
         return data;
     }
 
+    //===================================================模拟设备层级统计======================================================
+
+    public List<DeviceLevelCount> getDeviceLevelCount(long projectId) {
+        List<DeviceLevelCount> rootList = deviceLevelCountDao.getRoot(projectId);
+        List<DeviceLevelCount> ls = deviceLevelCountDao.getList(projectId);
+        List<DeviceLevelCount> list = new ArrayList<>();
+        if (rootList != null && rootList.size() > 0) {
+            for (DeviceLevelCount d : rootList) {
+                list.add(this.getNodeTreeById(d.getId(), ls));
+            }
+        }
+        return list;
+    }
+
+    public int save(DeviceLevelCount deviceLevelCount) {
+        return deviceLevelCountDao.save(deviceLevelCount);
+    }
+
+    public int update(DeviceLevelCount deviceLevelCount) {
+        return deviceLevelCountDao.update(deviceLevelCount);
+    }
+
+    public int deleteDeviceLevelCount(long id) {
+        return deviceLevelCountDao.delete(id);
+    }
+
+    private DeviceLevelCount getNodeTreeById(long id, List<DeviceLevelCount> list) {
+        DeviceLevelCount node = null;
+        List<DeviceLevelCount> deviceLevelCountList = list;
+        for (DeviceLevelCount data : deviceLevelCountList) {
+            if (data.getId() == id) {
+                node = data;
+                break;
+            }
+        }
+        if (node != null) {
+            node.setChildren(getChildNode(node.getId(), deviceLevelCountList));
+        }
+        return node;
+    }
+
+    private List<DeviceLevelCount> getChildNode(long parentId, List<DeviceLevelCount> list) {
+        List<DeviceLevelCount> nodeList = new ArrayList<>();
+        nodeList.clear();
+        for (DeviceLevelCount data : list) {
+            if (data.getParentId() == parentId) {
+                nodeList.add(data);
+            }
+        }
+        if (nodeList.size() > 0) {
+            for (DeviceLevelCount data : nodeList) {
+                List<DeviceLevelCount> childList = getChildNode(data.getId(), list);
+                data.setChildren(childList);
+            }
+        }
+        return nodeList;
+    }
+
     //=========================================================================================================
 
     public List<Region> get(Region data) {

+ 48 - 0
virgo.api/src/main/resources/mapper/DeviceLevelConuntMapper.xml

@@ -0,0 +1,48 @@
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.bosshand.virgo.api.test.dao.DeviceLevelCountDao">
+
+    <resultMap type="com.bosshand.virgo.api.test.model.DeviceLevelCount" id="result" >
+        <id column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="parentId" property="parentId"/>
+        <result column="projectId" property="projectId"/>
+        <result column="totalNumber" property="totalNumber"/>
+        <result column="openNumber" property="openNumber"/>
+        <result column="faultNumber" property="faultNumber"/>
+        <result column="closeNumber" property="closeNumber"/>
+    </resultMap>
+
+    <select id="getRoot" resultMap="result">
+        select * from test_q where projectId = #{projectId} and parentId = -1
+    </select>
+
+    <select id="getList" resultMap="result">
+        select * from test_q where projectId = #{projectId}
+    </select>
+
+    <insert id="save" parameterType="com.bosshand.virgo.api.test.model.DeviceLevelCount" useGeneratedKeys="true" keyProperty="id">
+        INSERT into test_q(name, parentId, projectId, totalNumber, openNumber, faultNumber, closeNumber)
+        values(#{name}, #{parentId}, #{projectId}, #{totalNumber}, #{openNumber}, #{faultNumber}, #{closeNumber})
+    </insert>
+
+    <update id="update" parameterType="com.bosshand.virgo.api.test.model.DeviceLevelCount">
+        UPDATE test_q
+        <trim prefix="set" suffixOverrides=",">
+            <if test="name!=null">name=#{name},</if>
+            <if test="projectId!=0">projectId=#{projectId},</if>
+            <if test="totalNumber!=0">totalNumber=#{totalNumber},</if>
+            <if test="openNumber!=0">openNumber=#{openNumber},</if>
+            <if test="faultNumber!=0">faultNumber=#{faultNumber},</if>
+            <if test="closeNumber!=0">closeNumber=#{closeNumber},</if>
+        </trim>
+        WHERE id=#{id}
+    </update>
+
+    <delete id="delete">
+        DELETE FROM test_q where id = #{id}
+    </delete>
+
+</mapper>