Parcourir la source

综合云图设备统计

hanzhengyi il y a 1 an
Parent
commit
9780af5bf0
19 fichiers modifiés avec 416 ajouts et 9 suppressions
  1. 21 0
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/controller/web/BaseAlarmStatisticController.java
  2. 61 0
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/domain/BaseAlarmStatistic.java
  3. 16 0
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/mapper/BaseAlarmStatisticMapper.java
  4. 16 0
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/BaseAlarmStatisticService.java
  5. 20 0
      service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/impl/BaseAlarmStatisticServiceImpl.java
  6. 16 0
      service-alarm/service-alarm-biz/src/main/resources/mapper/alarm/BaseAlarmStatisticMapper.xml
  7. 1 1
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/MybatisGeneratorUtils.java
  8. 1 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpDeviceInfoController.java
  9. 10 3
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpProductInfoController.java
  10. 22 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/SysDeptController.java
  11. 101 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/SysDept.java
  12. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/SysDeptMapper.java
  13. 6 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpProductInfoService.java
  14. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/SysDeptService.java
  15. 1 1
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java
  16. 35 4
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpProductInfoServiceImpl.java
  17. 20 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/SysDeptServiceImpl.java
  18. 13 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpDeviceInfoMapper.xml
  19. 24 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/SysDeptMapper.xml

+ 21 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/controller/web/BaseAlarmStatisticController.java

@@ -0,0 +1,21 @@
+package com.usky.alarm.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 告警统计表 前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-24
+ */
+@Controller
+@RequestMapping("/baseAlarmStatistic")
+public class BaseAlarmStatisticController {
+
+}
+

+ 61 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/domain/BaseAlarmStatistic.java

@@ -0,0 +1,61 @@
+package com.usky.alarm.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 告警统计表
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseAlarmStatistic implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 告警数量
+     */
+    private Integer alarmNum;
+
+    /**
+     * 隐患数量
+     */
+    private Integer pitfallNum;
+
+    /**
+     * 统计维度;1、日 2、月
+     */
+    private Integer statisticDimen;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 组织机构ID
+     */
+    private Integer deptId;
+
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+
+
+}

+ 16 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/mapper/BaseAlarmStatisticMapper.java

@@ -0,0 +1,16 @@
+package com.usky.alarm.mapper;
+
+import com.usky.alarm.domain.BaseAlarmStatistic;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 告警统计表 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-24
+ */
+public interface BaseAlarmStatisticMapper extends CrudMapper<BaseAlarmStatistic> {
+
+}

+ 16 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/BaseAlarmStatisticService.java

@@ -0,0 +1,16 @@
+package com.usky.alarm.service;
+
+import com.usky.alarm.domain.BaseAlarmStatistic;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 告警统计表 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-24
+ */
+public interface BaseAlarmStatisticService extends CrudService<BaseAlarmStatistic> {
+
+}

+ 20 - 0
service-alarm/service-alarm-biz/src/main/java/com/usky/alarm/service/impl/BaseAlarmStatisticServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.alarm.service.impl;
+
+import com.usky.alarm.domain.BaseAlarmStatistic;
+import com.usky.alarm.mapper.BaseAlarmStatisticMapper;
+import com.usky.alarm.service.BaseAlarmStatisticService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 告警统计表 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-24
+ */
+@Service
+public class BaseAlarmStatisticServiceImpl extends AbstractCrudService<BaseAlarmStatisticMapper, BaseAlarmStatistic> implements BaseAlarmStatisticService {
+
+}

+ 16 - 0
service-alarm/service-alarm-biz/src/main/resources/mapper/alarm/BaseAlarmStatisticMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.alarm.mapper.BaseAlarmStatisticMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.alarm.domain.BaseAlarmStatistic">
+        <id column="id" property="id" />
+        <result column="alarm_num" property="alarmNum" />
+        <result column="pitfall_num" property="pitfallNum" />
+        <result column="statistic_dimen" property="statisticDimen" />
+        <result column="create_time" property="createTime" />
+        <result column="dept_id" property="deptId" />
+        <result column="tenant_id" property="tenantId" />
+    </resultMap>
+
+</mapper>

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/MybatisGeneratorUtils.java

@@ -71,7 +71,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("base_alarm_notice_result");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("sys_dept");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 1 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpDeviceInfoController.java

@@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 设备信息表

+ 10 - 3
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpProductInfoController.java

@@ -84,8 +84,15 @@ public class DmpProductInfoController {
         return ApiResult.success(dmpProductInfoService.collect());
     }
 
-
-
-
+    /**
+     * 综合云图-设备统计接口
+     *
+     * @param deptId 部门ID
+     * @return
+     */
+    @PostMapping("deviceStatistic")
+    public ApiResult<List<Map<String,Object>>> deviceStatistic(@RequestParam(value = "deptId", required = false) Integer deptId){
+        return ApiResult.success(dmpProductInfoService.deviceCollect(deptId));
+    }
 }
 

+ 22 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/SysDeptController.java

@@ -0,0 +1,22 @@
+package com.usky.iot.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 部门表 前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-27
+ */
+@RestController
+@RequestMapping("/sysDept")
+public class SysDeptController {
+
+}
+

+ 101 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/SysDept.java

@@ -0,0 +1,101 @@
+package com.usky.iot.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 部门表
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysDept implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 部门id
+     */
+    @TableId(value = "dept_id", type = IdType.AUTO)
+    private Long deptId;
+
+    /**
+     * 父部门id
+     */
+    private Long parentId;
+
+    /**
+     * 祖级列表
+     */
+    private String ancestors;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNum;
+
+    /**
+     * 负责人
+     */
+    private String leader;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 邮箱
+     */
+    private String email;
+
+    /**
+     * 部门状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    private String delFlag;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+
+
+}

+ 16 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/SysDeptMapper.java

@@ -0,0 +1,16 @@
+package com.usky.iot.mapper;
+
+import com.usky.iot.domain.SysDept;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 部门表 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-27
+ */
+public interface SysDeptMapper extends CrudMapper<SysDept> {
+
+}

+ 6 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpProductInfoService.java

@@ -30,4 +30,10 @@ public interface DmpProductInfoService extends CrudService<DmpProductInfo> {
     boolean remove(Integer id);
 
     List<Map<String,Object>> collect();
+
+    /**
+     * 设备状态统计
+     * @return
+     */
+    List<Map<String,Object>> deviceCollect(Integer deptId);
 }

+ 16 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/SysDeptService.java

@@ -0,0 +1,16 @@
+package com.usky.iot.service;
+
+import com.usky.iot.domain.SysDept;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 部门表 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-27
+ */
+public interface SysDeptService extends CrudService<SysDept> {
+
+}

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java

@@ -311,7 +311,7 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
     @Override
     public List<Map<String, Object>> deviceCollect(List<Integer> productIds) {
         QueryWrapper<DmpDeviceInfo> query = Wrappers.query();
-        query.select("product_id as productId","count(*) as count","count(service_status != 1 or null) as serviceCount")
+        query.select("product_id as productId")
                 .in(CollectionUtil.isNotEmpty(productIds),"product_id",productIds)
                 .eq("delete_flag",0)
                 .eq("tenant_id",SecurityUtils.getTenantId())

+ 35 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpProductInfoServiceImpl.java

@@ -1,10 +1,12 @@
 package com.usky.iot.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.shaded.com.google.gson.JsonArray;
 import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -14,10 +16,7 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.common.security.utils.SecurityUtils;
-import com.usky.iot.domain.BaseAlarm;
-import com.usky.iot.domain.DmpDeviceType;
-import com.usky.iot.domain.DmpProductAttribute;
-import com.usky.iot.domain.DmpProductInfo;
+import com.usky.iot.domain.*;
 import com.usky.iot.mapper.DmpProductInfoMapper;
 import com.usky.iot.service.*;
 import com.usky.iot.service.vo.DmpProductInfoRequest;
@@ -251,4 +250,36 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf
     public List<Map<String, Object>> collect() {
         return baseMapper.selectCollect();
     }
+
+    @Override
+    public List<Map<String, Object>> deviceCollect(Integer deptId) {
+        List<Integer> productIds2 = new ArrayList<>();
+        QueryWrapper<DmpProductInfo> query2 = Wrappers.query();
+        query2.select("id as productId","product_name as productName")
+                .eq("delete_flag",0)
+                .eq("tenant_id",SecurityUtils.getTenantId());
+        List<Map<String, Object>> productIds1 = this.listMaps(query2);
+        if (productIds1.size()>0){
+            for (int i = 0; i < productIds1.size(); i++) {
+                productIds2.add(Integer.valueOf(productIds1.get(i).get("productId").toString()));
+            }
+        }
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(productIds2)){
+            QueryWrapper<DmpDeviceStatus> query1 = Wrappers.query();
+            query1.select("product_id as productId","count(*) as count","count(device_status != 1) as " +
+                    "faultCount")
+                    .in("product_id",productIds2)
+                    .groupBy("product_id");
+            list = dmpDeviceStatusService.listMaps(query1);
+            for (int l = 0; l < productIds1.size(); l++) {
+                for (int j = 0; j < list.size(); j++){
+                    if (productIds1.get(l).get("productId").equals(list.get(j).get("productId"))){
+                        list.get(j).put("productName",productIds1.get(l).get("productName"));
+                    }
+                }
+            }
+        }
+        return list;
+    }
 }

+ 20 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/SysDeptServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.iot.service.impl;
+
+import com.usky.iot.domain.SysDept;
+import com.usky.iot.mapper.SysDeptMapper;
+import com.usky.iot.service.SysDeptService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 部门表 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-11-27
+ */
+@Service
+public class SysDeptServiceImpl extends AbstractCrudService<SysDeptMapper, SysDept> implements SysDeptService {
+
+}

+ 13 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpDeviceInfoMapper.xml

@@ -57,4 +57,17 @@
         </where>
     </select>
 
+    <select id="getProductInfo" resultType="com.usky.iot.domain.DmpProductInfo">
+        select dpi.*
+        from dmp_product dpi
+        <where>
+            <if test="productCode != null">
+                and dpi.product_code = #{productCode}
+            </if>
+            <if test="1 == 1">
+                and dpi.delete_flag = 0
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 24 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/SysDeptMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.iot.mapper.SysDeptMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.iot.domain.SysDept">
+        <id column="dept_id" property="deptId" />
+        <result column="parent_id" property="parentId" />
+        <result column="ancestors" property="ancestors" />
+        <result column="dept_name" property="deptName" />
+        <result column="order_num" property="orderNum" />
+        <result column="leader" property="leader" />
+        <result column="phone" property="phone" />
+        <result column="email" property="email" />
+        <result column="status" property="status" />
+        <result column="del_flag" property="delFlag" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="tenant_id" property="tenantId" />
+    </resultMap>
+
+</mapper>