From 11fedf1d94650cbda4751ea89371ed43432c325a Mon Sep 17 00:00:00 2001
From: chenjiantian <214228265@qq.com>
Date: 星期一, 13 十二月 2021 18:43:51 +0800
Subject: [PATCH] 基础通信
---
dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupRelationMapper.java | 17
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java | 42 +
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java | 72 +++
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java | 56 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java | 4
dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupMapper.java | 17
dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java | 17
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupRelationService.java | 42 +
dao/src/main/java/com/sandu/ximon/dao/domain/LightRemark.java | 46 ++
dao/src/main/resources/mapper/PoleMapper.xml | 31 +
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupParam.java | 16
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightRemarkService.java | 15
dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java | 96 ++++
ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java | 13
dao/src/main/java/com/sandu/ximon/dao/mapper/LightReportDataMapper.java | 17
dao/src/main/resources/mapper/LightReportDataMapper.xml | 32 +
dao/src/main/resources/mapper/PoleGroupMapper.xml | 20
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleParam.java | 62 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java | 31 +
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java | 87 +++
dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroup.java | 51 ++
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java | 93 ++++
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupRelationParam.java | 17
dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroupRelation.java | 46 ++
/dev/null | 43 -
dao/src/main/resources/mapper/LightRemarkMapper.xml | 19
dao/src/main/java/com/sandu/ximon/dao/domain/Pole.java | 92 ++++
dao/src/main/java/com/sandu/ximon/dao/mapper/LightRemarkMapper.java | 17
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java | 20
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/IMessageProcessor.java | 12
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java | 20
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5LightHeartbeatReportInnerFrame.java | 79 +-
ximon-admin/src/main/java/com/sandu/ximon/admin/redis/LightKey.java | 28 +
dao/src/main/resources/mapper/PoleGroupRelationMapper.xml | 19
34 files changed, 1,178 insertions(+), 111 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/Light.java b/dao/src/main/java/com/sandu/ximon/dao/domain/Light.java
deleted file mode 100644
index c2ee665..0000000
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/Light.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.sandu.ximon.dao.domain;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import lombok.Data;
-import org.apache.ibatis.annotations.Lang;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-/**
- * 璺伅
- */
-@Data
-public class Light implements Serializable {
-
- @TableId(type = IdType.AUTO)
- private Long id;
-
- private Long userId;
-
- /*绉嶇被*/
- private String kind;
-
- /*鍨嬪彿*/
- private String size;
-
- /*鍚嶇О*/
- private String name;
-
- /*鏈哄櫒鐮�*/
- private String macId;
-
- /*鐘舵��*/
- private String state;
-
- /*鐏潌ID*/
- private Long lampId;
-
- private LocalDateTime createTime;
-
-
-}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LightRemark.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LightRemark.java
new file mode 100644
index 0000000..beba73c
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LightRemark.java
@@ -0,0 +1,46 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 璺伅澶囨敞琛�
+ * @TableName light_remark
+ */
+@TableName(value ="light_remark")
+@Data
+public class LightRemark implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 璁惧璇嗗埆鐮�
+ */
+ private String deviceMac;
+
+ /**
+ * 澶囨敞淇℃伅
+ */
+ private String remark;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ *
+ */
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java
new file mode 100644
index 0000000..f2fa8f6
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java
@@ -0,0 +1,96 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 鐏笂鎶ユ暟鎹〃
+ * @TableName light_report_data
+ */
+@TableName(value ="light_report_data")
+@Data
+public class LightReportData implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Long lightReportDataId;
+
+ /**
+ * 璁惧mac
+ */
+ private String deviceMac;
+
+ /**
+ * 甯傜數鐢靛帇
+ */
+ private Double voltage;
+
+ /**
+ * 甯傜數鐢垫祦
+ */
+ private Double electricCurrent;
+
+ /**
+ * 璁惧娓╁害
+ */
+ private Double deviceTemperature;
+
+ /**
+ * 鍔熺巼鍥犵礌
+ */
+ private Double powerFactor;
+
+ /**
+ * 鏈夊姛鍔熺巼
+ */
+ private Double activePower;
+
+ /**
+ * 鏃犲姛鍔熺巼
+ */
+ private Double reactivePower;
+
+ /**
+ * 浜害鐧惧垎姣旓紝0-100
+ */
+ private Integer lightPercent;
+
+ /**
+ * 鏈�杩戜竴娆′寒鐏椂闂�
+ */
+ private Long recentlyLightSec;
+
+ /**
+ * 鎬讳寒鐏椂闂�
+ */
+ private Long totalLightSec;
+
+ /**
+ * 鏈�杩戜竴娆$敤鐢甸噺
+ */
+ private Double recentlyUsingPower;
+
+ /**
+ * 鎬荤敤鐢甸噺
+ */
+ private Double totalUsingPower;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ *
+ */
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/Pole.java b/dao/src/main/java/com/sandu/ximon/dao/domain/Pole.java
new file mode 100644
index 0000000..d6723b7
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/Pole.java
@@ -0,0 +1,92 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 鐏潌琛�
+ * @TableName pole
+ */
+@TableName(value ="pole")
+@Data
+public class Pole implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 鐏潌缂栧彿
+ */
+ private Long poleCode;
+
+ /**
+ * 鐏潌鍚嶇О
+ */
+ private String poleName;
+
+ /**
+ * 瀹㈡埛id
+ */
+ private Long clientId;
+
+ /**
+ * 鐪�
+ */
+ private String province;
+
+ /**
+ * 甯�
+ */
+ private String city;
+
+ /**
+ * 鍖�
+ */
+ private String region;
+
+ /**
+ * 璇︾粏鍦板潃
+ */
+ private String address;
+
+ /**
+ * 缁忓害
+ */
+ private BigDecimal lon;
+
+ /**
+ * 绾害
+ */
+ private BigDecimal lat;
+
+ /**
+ * 鏈哄櫒鐮�
+ */
+ private String deviceCode;
+
+ /**
+ * 缁戝畾璁惧鏁伴噺
+ */
+ private Integer bindingCount;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ *
+ */
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroup.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroup.java
new file mode 100644
index 0000000..e7c9253
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroup.java
@@ -0,0 +1,51 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 鍒嗙粍琛�
+ * @TableName pole_group
+ */
+@TableName(value ="pole_group")
+@Data
+public class PoleGroup implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Long groupId;
+
+ /**
+ * 瀹㈡埛id
+ */
+ private Long clientId;
+
+ /**
+ * 鍒嗙粍鍚嶇О
+ */
+ private String groupName;
+
+ /**
+ * 鐏潌鏁伴噺
+ */
+ private Integer poleCount;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ *
+ */
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroupRelation.java b/dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroupRelation.java
new file mode 100644
index 0000000..d68f0fb
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/PoleGroupRelation.java
@@ -0,0 +1,46 @@
+package com.sandu.ximon.dao.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Data;
+
+/**
+ * 鐏潌鍒嗙粍鍏崇郴琛�
+ * @TableName pole_group_relation
+ */
+@TableName(value ="pole_group_relation")
+@Data
+public class PoleGroupRelation implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 鐏潌id
+ */
+ private Long poleId;
+
+ /**
+ * 鍒嗙粍id
+ */
+ private Long poleGroupId;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ *
+ */
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/LightRemarkMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/LightRemarkMapper.java
new file mode 100644
index 0000000..325fb2e
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/LightRemarkMapper.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.LightRemark;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.LightRemark
+ */
+@Mapper
+public interface LightRemarkMapper extends BaseMapper<LightRemark> {
+
+}
+
+
+
+
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/LightReportDataMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/LightReportDataMapper.java
new file mode 100644
index 0000000..fada183
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/LightReportDataMapper.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.LightReportData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.LightReportData
+ */
+@Mapper
+public interface LightReportDataMapper extends BaseMapper<LightReportData> {
+
+}
+
+
+
+
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupMapper.java
new file mode 100644
index 0000000..ca0d89a
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupMapper.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.PoleGroup;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.PoleGroup
+ */
+@Mapper
+public interface PoleGroupMapper extends BaseMapper<PoleGroup> {
+
+}
+
+
+
+
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupRelationMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupRelationMapper.java
new file mode 100644
index 0000000..38e55c4
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleGroupRelationMapper.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.PoleGroupRelation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.PoleGroupRelation
+ */
+@Mapper
+public interface PoleGroupRelationMapper extends BaseMapper<PoleGroupRelation> {
+
+}
+
+
+
+
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java
new file mode 100644
index 0000000..c709aeb
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.dao.mapper;
+
+import com.sandu.ximon.dao.domain.Pole;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.sandu.ximon.dao.domain.Pole
+ */
+@Mapper
+public interface PoleMapper extends BaseMapper<Pole> {
+
+}
+
+
+
+
diff --git a/dao/src/main/resources/mapper/LightRemarkMapper.xml b/dao/src/main/resources/mapper/LightRemarkMapper.xml
new file mode 100644
index 0000000..830b576
--- /dev/null
+++ b/dao/src/main/resources/mapper/LightRemarkMapper.xml
@@ -0,0 +1,19 @@
+<?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.sandu.ximon.dao.mapper.LightRemarkMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LightRemark">
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="deviceMac" column="device_mac" jdbcType="VARCHAR"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,device_mac,remark,
+ create_time,update_time
+ </sql>
+</mapper>
diff --git a/dao/src/main/resources/mapper/LightReportDataMapper.xml b/dao/src/main/resources/mapper/LightReportDataMapper.xml
new file mode 100644
index 0000000..360d7cc
--- /dev/null
+++ b/dao/src/main/resources/mapper/LightReportDataMapper.xml
@@ -0,0 +1,32 @@
+<?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.sandu.ximon.dao.mapper.LightReportDataMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.LightReportData">
+ <id property="lightReportDataId" column="light_report_data_id" jdbcType="BIGINT"/>
+ <result property="deviceMac" column="device_mac" jdbcType="VARCHAR"/>
+ <result property="voltage" column="voltage" jdbcType="FLOAT"/>
+ <result property="electricCurrent" column="electric_current" jdbcType="FLOAT"/>
+ <result property="deviceTemperature" column="device_temperature" jdbcType="FLOAT"/>
+ <result property="powerFactor" column="power_factor" jdbcType="FLOAT"/>
+ <result property="activePower" column="active_power" jdbcType="FLOAT"/>
+ <result property="reactivePower" column="reactive_power" jdbcType="FLOAT"/>
+ <result property="lightPercent" column="light_percent" jdbcType="INTEGER"/>
+ <result property="recentlyLightSec" column="recently_light_sec" jdbcType="BIGINT"/>
+ <result property="totalLightSec" column="total_light_sec" jdbcType="BIGINT"/>
+ <result property="recentlyUsingPower" column="recently_using_power" jdbcType="DOUBLE"/>
+ <result property="totalUsingPower" column="total_using_power" jdbcType="DOUBLE"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ light_report_data_id,device_mac,voltage,
+ electric_current,device_temperature,power_factor,
+ active_power,reactive_power,light_percent,
+ recently_light_sec,total_light_sec,recently_using_power,
+ total_using_power,create_time,update_time
+ </sql>
+</mapper>
diff --git a/dao/src/main/resources/mapper/PoleGroupMapper.xml b/dao/src/main/resources/mapper/PoleGroupMapper.xml
new file mode 100644
index 0000000..687bdf7
--- /dev/null
+++ b/dao/src/main/resources/mapper/PoleGroupMapper.xml
@@ -0,0 +1,20 @@
+<?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.sandu.ximon.dao.mapper.PoleGroupMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PoleGroup">
+ <id property="groupId" column="group_id" jdbcType="BIGINT"/>
+ <result property="clientId" column="client_id" jdbcType="BIGINT"/>
+ <result property="groupName" column="group_name" jdbcType="VARCHAR"/>
+ <result property="poleCount" column="pole_count" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ group_id,client_id,group_name,
+ pole_count,create_time,update_time
+ </sql>
+</mapper>
diff --git a/dao/src/main/resources/mapper/PoleGroupRelationMapper.xml b/dao/src/main/resources/mapper/PoleGroupRelationMapper.xml
new file mode 100644
index 0000000..5b6fa8c
--- /dev/null
+++ b/dao/src/main/resources/mapper/PoleGroupRelationMapper.xml
@@ -0,0 +1,19 @@
+<?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.sandu.ximon.dao.mapper.PoleGroupRelationMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PoleGroupRelation">
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="poleId" column="pole_id" jdbcType="BIGINT"/>
+ <result property="poleGroupId" column="pole_group_id" jdbcType="BIGINT"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,pole_id,pole_group_id,
+ create_time,update_time
+ </sql>
+</mapper>
diff --git a/dao/src/main/resources/mapper/PoleMapper.xml b/dao/src/main/resources/mapper/PoleMapper.xml
new file mode 100644
index 0000000..fd96807
--- /dev/null
+++ b/dao/src/main/resources/mapper/PoleMapper.xml
@@ -0,0 +1,31 @@
+<?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.sandu.ximon.dao.mapper.PoleMapper">
+
+ <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.Pole">
+ <id property="id" column="id" jdbcType="BIGINT"/>
+ <result property="poleCode" column="pole_code" jdbcType="BIGINT"/>
+ <result property="poleName" column="pole_name" jdbcType="VARCHAR"/>
+ <result property="clientId" column="client_id" jdbcType="BIGINT"/>
+ <result property="province" column="province" jdbcType="VARCHAR"/>
+ <result property="city" column="city" jdbcType="VARCHAR"/>
+ <result property="region" column="region" jdbcType="VARCHAR"/>
+ <result property="address" column="address" jdbcType="VARCHAR"/>
+ <result property="lon" column="lon" jdbcType="DECIMAL"/>
+ <result property="lat" column="lat" jdbcType="DECIMAL"/>
+ <result property="deviceCode" column="device_code" jdbcType="VARCHAR"/>
+ <result property="bindingCount" column="binding_count" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,pole_code,pole_name,
+ client_id,province,city,
+ region,address,lon,
+ lat,device_code,binding_count,
+ create_time,update_time
+ </sql>
+</mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java
new file mode 100644
index 0000000..1791b47
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/RedisConfig.java
@@ -0,0 +1,13 @@
+package com.sandu.ximon.admin.config;
+
+import com.sandu.common.config.BaseRedisConfig;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/13 11:54
+ * 鍚姩redis
+ */
+@Configuration
+public class RedisConfig extends BaseRedisConfig {
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
index d0051da..c69a6a9 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
@@ -1,12 +1,8 @@
package com.sandu.ximon.admin.controller;
-import cn.hutool.core.util.RadixUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.pagehelper.PageHelper;
import com.sandu.common.domain.ResponseVO;
-import com.sandu.common.object.BaseConditionVO;
-import com.sandu.common.security.annotation.AnonymousAccess;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.GroupParam;
import com.sandu.ximon.admin.param.LampPostParam;
@@ -26,28 +22,28 @@
@RequestMapping("/v1/LampPost")
public class LampPostController {
- private final LampPostService lampPostService;
+ private final LampPostService poleService;
@GetMapping("/add")
public ResponseVO<Object> addLampPost(@RequestBody LampPostParam lampPostParam){
- return ResponseUtil.success( lampPostService.addLamp(lampPostParam));
+ return ResponseUtil.success( poleService.addLamp(lampPostParam));
}
@GetMapping("/update/{id}")
public ResponseVO<Object> updateLampPost(@PathVariable Long id, @RequestBody LampPostParam lampPostParam){
- return ResponseUtil.success( lampPostService.updateLamp(id,lampPostParam));
+ return ResponseUtil.success( poleService.updateLamp(id,lampPostParam));
}
@GetMapping("/delete/{id}")
public ResponseVO<Object> deleteLampPost(@PathVariable Long id){
- return ResponseUtil.success(lampPostService.deleteLampPost(id));
+ return ResponseUtil.success(poleService.deleteLampPost(id));
}
@PostMapping("/setGroup")
public ResponseVO<Object> setGroup(@RequestBody GroupParam groupParam){
- lampPostService.setGroup(groupParam.getGroup(), groupParam.getId());
+ poleService.setGroup(groupParam.getGroup(), groupParam.getId());
return ResponseUtil.success("鍒嗙粍璁剧疆鎴愬姛");
}
@@ -65,7 +61,7 @@
*/
@PostMapping("/list")
public ResponseVO<Object> listLamp(){
- return ResponseUtil.success(lampPostService.queryStates());
+ return ResponseUtil.success(poleService.queryStates());
}
/**
@@ -75,7 +71,7 @@
*/
@GetMapping("/lightReset/{id}")
public ResponseVO<Object> LightReset(@PathVariable Long id){
- return ResponseUtil.success(lampPostService.LightReset(id));
+ return ResponseUtil.success(poleService.LightReset(id));
}
@@ -89,7 +85,7 @@
lampPostLambdaQueryWrapper.like(LampPost::getName,receiveParam.getKeyWord());
});
}
- List<LampPost> lsit=lampPostService.list(wrapper);
+ List<LampPost> lsit= poleService.list(wrapper);
return ResponseUtil.success(lsit);
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
new file mode 100644
index 0000000..fc0776e
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -0,0 +1,93 @@
+package com.sandu.ximon.admin.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.util.ResponseUtil;
+import com.sandu.ximon.admin.param.GroupParam;
+import com.sandu.ximon.admin.param.LampPostParam;
+import com.sandu.ximon.admin.param.ReceiveParam;
+import com.sandu.ximon.admin.service.LampPostService;
+import com.sandu.ximon.dao.domain.LampPost;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 鐏潌妯″潡浠ュ強璁剧疆鍒嗙粍鍒板搴旂伅鏉�
+ * @author chenjiantian
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/v1/pole")
+public class PoleController {
+
+ private final LampPostService poleService;
+
+ @GetMapping("/add")
+ public ResponseVO<Object> addLampPost(@RequestBody LampPostParam lampPostParam){
+ return ResponseUtil.success( poleService.addLamp(lampPostParam));
+ }
+
+ @GetMapping("/update/{id}")
+ public ResponseVO<Object> updateLampPost(@PathVariable Long id, @RequestBody LampPostParam lampPostParam){
+ return ResponseUtil.success( poleService.updateLamp(id,lampPostParam));
+ }
+
+ @GetMapping("/delete/{id}")
+ public ResponseVO<Object> deleteLampPost(@PathVariable Long id){
+ return ResponseUtil.success(poleService.deleteLampPost(id));
+ }
+
+
+
+ @PostMapping("/setGroup")
+ public ResponseVO<Object> setGroup(@RequestBody GroupParam groupParam){
+ poleService.setGroup(groupParam.getGroup(), groupParam.getId());
+ return ResponseUtil.success("鍒嗙粍璁剧疆鎴愬姛");
+ }
+
+ // @AnonymousAccess
+ //@PostMapping("/list")
+ /* public ResponseVO<Object> listLamp(){
+ //List<LampPost> list = lampPostService.list();
+ return ResponseUtil.success(lampPostService.list());
+ //return ResponseUtil.success(lampPostService.listLamp());
+ }*/
+
+ /**
+ * 鏌ヨ鐏潌鍒楄〃骞舵惡甯﹀湪绾跨姸鎬�
+ * @return
+ */
+ @PostMapping("/list")
+ public ResponseVO<Object> listLamp(){
+ return ResponseUtil.success(poleService.queryStates());
+ }
+
+ /**
+ * 鎭㈠鍑哄巶璁剧疆
+ * @param id
+ * @return
+ */
+ @GetMapping("/lightReset/{id}")
+ public ResponseVO<Object> LightReset(@PathVariable Long id){
+ return ResponseUtil.success(poleService.LightReset(id));
+ }
+
+
+
+ @GetMapping("/lsitLike")
+ public ResponseVO<Object> list( @RequestBody ReceiveParam receiveParam){
+ LambdaQueryWrapper<LampPost> wrapper = Wrappers.lambdaQuery(LampPost.class);
+ if(receiveParam.getKeyWord()!=null){
+ wrapper.like(LampPost::getLampId,receiveParam.getKeyWord())
+ .or(lampPostLambdaQueryWrapper -> {
+ lampPostLambdaQueryWrapper.like(LampPost::getName,receiveParam.getKeyWord());
+ });
+ }
+ List<LampPost> lsit= poleService.list(wrapper);
+ return ResponseUtil.success(lsit);
+ }
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java
new file mode 100644
index 0000000..7b976bb
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleGroupController.java
@@ -0,0 +1,42 @@
+package com.sandu.ximon.admin.controller;
+
+import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.util.ResponseUtil;
+import com.sandu.ximon.admin.param.PoleGroupParam;
+import com.sandu.ximon.admin.service.PoleGroupService;
+import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 鍒嗙粍鍒楄〃鍔熻兘
+ *
+ * @author chenjiantian
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/v1/pole/group")
+public class PoleGroupController {
+
+ private final PoleGroupService poleGroupService;
+
+ @GetMapping("/add")
+ public ResponseVO<Object> addGroup(@RequestBody @Validated PoleGroupParam param) {
+ return ResponseUtil.success(poleGroupService.addGroup(param));
+ }
+
+ @PostMapping("/update/{groupId}")
+ public ResponseVO<Object> updateGroup(@PathVariable Long groupId, @RequestBody @Validated PoleGroupParam param) {
+ return ResponseUtil.success(poleGroupService.updateGroup(groupId, param));
+ }
+
+ @GetMapping("/delete/{groupId}")
+ public ResponseVO<Object> delGroup(@PathVariable Long groupId) {
+ return ResponseUtil.success(poleGroupService.deleteGroup(groupId));
+ }
+
+ @PostMapping("/list")
+ public ResponseVO<Object> listGroup() {
+ return ResponseUtil.success(poleGroupService.groupList());
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java
index 4d77102..4b26106 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java
@@ -1,6 +1,7 @@
package com.sandu.ximon.admin.manager.iot.amqp;
import com.alibaba.fastjson.JSON;
+import com.sandu.ximon.admin.manager.iot.amqp.processor.LightDataProcessor;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.*;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonReportMessage;
@@ -92,7 +93,7 @@
log.info(frame.toString());
if (frame.getOrderType().equals(A5OrderEnum.RESPONSE_LIGHT_DATA.getCode())) {
// 鍗曠伅鏁版嵁涓婃姤澶勭悊
- lightDataReportAnalysis(productKey, deviceName, frame);
+ LightDataProcessor.getInstance().process(productKey,deviceName,frame);
} else if (frame.getOrderType().equals(A5OrderEnum.RESPONSE_C3_DATA.getCode())) {
// C3鍏呯數妗╀笂鎶ュ鐞�
c3ChargingReportAnalysis(productKey, deviceName, frame);
@@ -126,22 +127,5 @@
A5AtmosphereHeartbeatReportInnerFrame transformFrame = new A5AtmosphereHeartbeatReportInnerFrame().transformFrame(frame.getPayload());
log.info("澶ф皵蹇冭烦涓婃姤");
log.info(transformFrame.toString());
- }
-
- private void lightDataReportAnalysis(String productKey, String deviceName, CommonFrame frame) {
- String functionCode = frame.getPayload().substring(2, 4);
- if (A5LightReportEnum.HeartBeat_Data.getCode().equals(functionCode)) {
-// log.info("蹇冭烦鐩稿簲");
- A5LightHeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5LightHeartbeatReportInnerFrame().transformFrame(frame.getPayload());
-// log.info(heartbeatReportInnerFrame.toString());
- } else if (A5LightReportEnum.Time_Synchronized.getCode().equals(functionCode)) {
-// log.info("璇锋眰鏃堕棿鍚屾");
- A5LightTimeSyncReportInnerFrame syncRespInnerFrame = new A5LightTimeSyncReportInnerFrame().transformFrame(frame.getPayload());
-// log.info(syncRespInnerFrame.toString());
- } else if (A5LightReportEnum.Error_Code.getCode().equals(functionCode)) {
-// log.info("鏁呴殰鐮佷笂鎶�");
- A5LightErrorCodeReportInnerFrame codeRespInnerFrame = new A5LightErrorCodeReportInnerFrame().transformFrame(frame.getPayload());
-// log.info(codeRespInnerFrame.toString());
- }
}
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java
index 9899d8f..8060b8a 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java
@@ -13,12 +13,12 @@
@AllArgsConstructor
public class InitAmqpListener {
- /* private final MqttMainBoardConfig mqttMainBoardConfig;
+ private final MqttMainBoardConfig mqttMainBoardConfig;
@PostConstruct
public void initListener() throws Exception {
new AmqpClient(
mqttMainBoardConfig
).execute();
- }*/
+ }
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/IMessageProcessor.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/IMessageProcessor.java
new file mode 100644
index 0000000..849f94e
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/IMessageProcessor.java
@@ -0,0 +1,12 @@
+package com.sandu.ximon.admin.manager.iot.amqp.processor;
+
+import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/13 11:57
+ */
+public interface IMessageProcessor {
+
+ void process(String productKey, String deviceName, CommonFrame frame);
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
new file mode 100644
index 0000000..dfeaae7
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/LightDataProcessor.java
@@ -0,0 +1,56 @@
+package com.sandu.ximon.admin.manager.iot.amqp.processor;
+
+import com.sandu.common.util.SpringContextHolder;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightErrorCodeReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightTimeSyncReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5LightReportEnum;
+import com.sandu.ximon.admin.service.LightReportDataService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ArrayList;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/13 11:58
+ * 鍗曠伅鏁版嵁涓婃姤澶勭悊
+ */
+@Slf4j
+public class LightDataProcessor implements IMessageProcessor {
+
+ private LightDataProcessor() {
+ }
+
+ public static LightDataProcessor getInstance() {
+ return LightDataProcessorHolder.INSTANCE;
+ }
+
+ private static class LightDataProcessorHolder {
+
+ private static final LightDataProcessor INSTANCE = new LightDataProcessor();
+ }
+
+ @Override
+ public void process(String productKey, String deviceName, CommonFrame frame) {
+ String functionCode = frame.getPayload().substring(2, 4);
+ if (A5LightReportEnum.HeartBeat_Data.getCode().equals(functionCode)) {
+ log.info("蹇冭烦鐩稿簲");
+ A5LightHeartbeatReportInnerFrame heartbeatReportInnerFrame = new A5LightHeartbeatReportInnerFrame().transformFrame(frame.getPayload());
+ log.info(heartbeatReportInnerFrame.toString());
+
+ SpringContextHolder.getBean(LightReportDataService.class).saveReportData(deviceName,heartbeatReportInnerFrame.getHeartBeatDataPackage());
+
+// SpringContextHolder.getBean(LightService.class).saveLight(deviceName,heartbeatReportInnerFrame.getHeartBeatDataPackage());
+
+ } else if (A5LightReportEnum.Time_Synchronized.getCode().equals(functionCode)) {
+// log.info("璇锋眰鏃堕棿鍚屾");
+ A5LightTimeSyncReportInnerFrame syncRespInnerFrame = new A5LightTimeSyncReportInnerFrame().transformFrame(frame.getPayload());
+// log.info(syncRespInnerFrame.toString());
+ } else if (A5LightReportEnum.Error_Code.getCode().equals(functionCode)) {
+// log.info("鏁呴殰鐮佷笂鎶�");
+ A5LightErrorCodeReportInnerFrame codeRespInnerFrame = new A5LightErrorCodeReportInnerFrame().transformFrame(frame.getPayload());
+// log.info(codeRespInnerFrame.toString());
+ }
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5LightHeartbeatReportInnerFrame.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5LightHeartbeatReportInnerFrame.java
index 9b28ccd..566ce55 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5LightHeartbeatReportInnerFrame.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/report/A5LightHeartbeatReportInnerFrame.java
@@ -1,5 +1,7 @@
package com.sandu.ximon.admin.manager.iot.frame.inner.report;
+import cn.hutool.core.util.HexUtil;
+import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.sandu.ximon.admin.manager.iot.frame.inner.BaseResponseInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.IResponseInnerFrame;
@@ -54,41 +56,41 @@
@Data
public static class HeartBeatDataPackage implements IResponseInnerFrame<HeartBeatDataPackage> {
// 骞碦TC 1
- private String year;
+ private Integer year;
// 鏈圧TC 1
- private String month;
+ private Integer month;
// 鏃TC 1
- private String day;
+ private Integer day;
// 鏃禦TC 1
- private String hour;
+ private Integer hour;
// 鍒哛TC 1
- private String min;
+ private Integer min;
// 绉扲TC 1
- private String sec;
+ private Integer sec;
// 璁惧娓╁害 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
- private String deviceTemperature;
+ private Double deviceTemperature;
// 浜害鐧惧垎姣� 1
- private String lightPercent;
+ private Integer lightPercent;
// 鐢电綉鐢靛帇 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
- private String gridVol;
+ private Double voltage;
// 鐢电綉鐢垫祦 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
- private String gridCur;
+ private Double electricCurrent;
// 璧吂 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
- private String hertz;
+ private Double hertz;
// 鍔熺巼鍥犵礌 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
- private String powerFactor;
+ private Double powerFactor;
// 鏈夊姛鍔熺巼 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
- private String activePower;
+ private Double activePower;
// 鏃犲姛鍔熺巼 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
- private String reactivePower;
+ private Double reactivePower;
// 鏈�杩戜竴娆′寒鐏椂闂� 4 绉�
- private String recentlyLightSec;
+ private Long recentlyLightSec;
// 绱浜伅鏃堕棿 4
- private String totalLightTime;
+ private Long totalLightSec;
// 鏈�杩戜竴娆$敤鐢电數閲� 4
- private String recentlyUsingPower;
+ private Double recentlyUsingPower;
// 绱鐢ㄧ數鐢甸噺 4
- private String totalUsingPower;
+ private Double totalUsingPower;
// 淇濈暀 11
private String retain;
// 鍘熷抚
@@ -97,27 +99,32 @@
@Override
public HeartBeatDataPackage transformFrame(String hex) {
this.originFrame = hex;
- this.year = hex.substring(0, 2);
- this.month = hex.substring(2, 4);
- this.day = hex.substring(4, 6);
- this.hour = hex.substring(6, 8);
- this.min = hex.substring(8, 10);
- this.sec = hex.substring(10, 12);
+ this.year = HexUtil.hexToInt(hex.substring(0, 2));
+ this.month = HexUtil.hexToInt(hex.substring(2, 4));
+ this.day = HexUtil.hexToInt(hex.substring(4, 6));
+ this.hour = HexUtil.hexToInt(hex.substring(6, 8));
+ this.min = HexUtil.hexToInt(hex.substring(8, 10));
+ this.sec = HexUtil.hexToInt(hex.substring(10, 12));
- this.deviceTemperature = hex.substring(12, 16);
- this.lightPercent = hex.substring(16, 18);
- this.gridVol = hex.substring(18, 22);
- this.gridCur = hex.substring(22, 26);
- this.hertz = hex.substring(26, 30);
- this.powerFactor = hex.substring(30, 34);
- this.activePower = hex.substring(34, 38);
- this.reactivePower = hex.substring(38, 42);
- this.recentlyLightSec = hex.substring(42, 50);
- this.totalLightTime = hex.substring(50, 58);
- this.recentlyUsingPower = hex.substring(58, 66);
- this.totalUsingPower = hex.substring(66, 74);
+ this.deviceTemperature = NumberUtil.round(HexUtil.hexToInt(hex.substring(12, 16)) * 0.01, 2).doubleValue();
+ this.lightPercent = HexUtil.hexToInt(hex.substring(16, 18));
+ this.voltage = NumberUtil.round(HexUtil.hexToInt(hex.substring(18, 22)) * 0.1, 1).doubleValue();
+ this.electricCurrent = NumberUtil.round(HexUtil.hexToInt(hex.substring(22, 26)) * 0.001, 3).doubleValue();
+ this.hertz = NumberUtil.round(HexUtil.hexToInt(hex.substring(26, 30)) * 0.01, 2).doubleValue();
+ this.powerFactor = NumberUtil.round(HexUtil.hexToInt(hex.substring(30, 34)) * 0.001, 3).doubleValue();
+ this.activePower = NumberUtil.round(HexUtil.hexToInt(hex.substring(34, 38)) * 0.01, 2).doubleValue();
+ this.reactivePower = NumberUtil.round(HexUtil.hexToInt(hex.substring(38, 42)) * 0.01, 2).doubleValue();
+ this.recentlyLightSec = HexUtil.hexToLong(hex.substring(42, 50));
+ this.totalLightSec = HexUtil.hexToLong(hex.substring(50, 58));
+ this.recentlyUsingPower = NumberUtil.round(HexUtil.hexToInt(hex.substring(58, 66)) * (double) 0.001, 3).doubleValue();
+ this.totalUsingPower = NumberUtil.round(HexUtil.hexToInt(hex.substring(66, 74)) * (double) 0.001, 3).doubleValue();
this.retain = hex.substring(74, 96);
return this;
}
}
+
+ public static void main(String[] args) {
+ System.out.println(HexUtil.hexToLong("F64D020F"));
+ System.out.println(5 * (float) 0.001);
+ }
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupParam.java
new file mode 100644
index 0000000..e3e7a5d
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupParam.java
@@ -0,0 +1,16 @@
+package com.sandu.ximon.admin.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/13 18:22
+ */
+@Data
+public class PoleGroupParam {
+
+ @NotEmpty(message = "鍒嗙粍鍚嶇О涓嶈兘涓虹┖")
+ private String groupName;
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupRelationParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupRelationParam.java
new file mode 100644
index 0000000..6174849
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleGroupRelationParam.java
@@ -0,0 +1,17 @@
+package com.sandu.ximon.admin.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/13 18:22
+ */
+@Data
+public class PoleGroupRelationParam {
+
+ @NotEmpty(message = "鐏潌id涓嶈兘涓虹┖")
+ private List<Long> poleId;
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleParam.java
new file mode 100644
index 0000000..cddc442
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PoleParam.java
@@ -0,0 +1,62 @@
+package com.sandu.ximon.admin.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * @author chenjiantian
+ */
+@Data
+public class PoleParam {
+
+ @NotEmpty(message = "鐏潌鍚嶇О涓嶈兘涓虹┖")
+ private String poleName;
+
+ /**
+ * 瀹㈡埛id
+ */
+ @NotNull(message = "瀹㈡埛id涓嶈兘涓虹┖")
+ private Long clientId;
+
+ /**
+ * 鐪�
+ */
+ @NotEmpty(message = "鐪佷笉鑳戒负绌�")
+ private String province;
+
+ /**
+ * 甯�
+ */
+ @NotEmpty(message = "甯備笉鑳戒负绌�")
+ private String city;
+
+ /**
+ * 鍖�
+ */
+ private String region;
+
+ /**
+ * 璇︾粏鍦板潃
+ */
+ @NotEmpty(message = "璇︾粏鍦板潃涓嶈兘涓虹┖")
+ private String address;
+
+ /**
+ * 缁忓害
+ */
+ @NotNull(message = "缁忓害涓嶈兘涓虹┖")
+ private BigDecimal lon;
+
+ /**
+ * 绾害
+ */
+ @NotNull(message = "绾害涓嶈兘涓虹┖")
+ private BigDecimal lat;
+
+
+
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/redis/LightKey.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/redis/LightKey.java
new file mode 100644
index 0000000..c5f7bea
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/redis/LightKey.java
@@ -0,0 +1,28 @@
+package com.sandu.ximon.admin.redis;
+
+import com.sandu.common.redis.BasePrefix;
+
+/**
+ * @author chenjiantian
+ * @date 2021/9/3 16:40
+ * 鐏浉鍏崇殑key
+ */
+public class LightKey extends BasePrefix {
+ public LightKey(int expireSeconds, String prefix) {
+ super(expireSeconds, prefix);
+ }
+
+ @Override
+ public String getModelName() {
+ return "Light";
+ }
+
+
+ /**
+ * 鍗曠伅涓婃姤鐨刴ac锛屽鏋滄湁璇存槑璇ヤ笂鎶ョ殑鍗曠伅浠ュ墠宸茬粡涓婃姤杩�
+ */
+ public static LightKey REPORT_MAC = new LightKey(0, "ReportMac");
+
+ public static LightKey POLE_SN = new LightKey(300, "PoleSn");
+
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightRemarkService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightRemarkService.java
new file mode 100644
index 0000000..7d92ed2
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightRemarkService.java
@@ -0,0 +1,15 @@
+package com.sandu.ximon.admin.service;
+
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.dao.domain.LightRemark;
+import com.sandu.ximon.dao.mapper.LightRemarkMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/13 16:00
+ * 鐏澶噑ervice
+ */
+@Service
+public class LightRemarkService extends BaseServiceImpl<LightRemarkMapper, LightRemark> {
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
new file mode 100644
index 0000000..213eaeb
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
@@ -0,0 +1,31 @@
+package com.sandu.ximon.admin.service;
+
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame;
+import com.sandu.ximon.dao.domain.LightReportData;
+import com.sandu.ximon.dao.mapper.LightReportDataMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/13 16:00
+ * 鐏笂鎶ユ暟鎹� service
+ */
+@Service
+public class LightReportDataService extends BaseServiceImpl<LightReportDataMapper, LightReportData> {
+
+ /**
+ * 淇濆瓨涓婃姤鐨勭伅蹇冭烦鏁版嵁
+ *
+ * @return 鏄惁鎴愬姛
+ */
+ public boolean saveReportData(String deviceName, A5LightHeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage) {
+
+ LightReportData lightReportData = new LightReportData();
+ BeanUtils.copyProperties(heartBeatDataPackage, lightReportData);
+ lightReportData.setDeviceMac(deviceName);
+
+ return save(lightReportData);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupRelationService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupRelationService.java
new file mode 100644
index 0000000..be15d0b
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupRelationService.java
@@ -0,0 +1,42 @@
+package com.sandu.ximon.admin.service;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.param.PoleGroupParam;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.dao.domain.PoleGroup;
+import com.sandu.ximon.dao.domain.PoleGroupRelation;
+import com.sandu.ximon.dao.mapper.GroupMapper;
+import com.sandu.ximon.dao.mapper.PoleGroupMapper;
+import com.sandu.ximon.dao.mapper.PoleGroupRelationMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鍒嗙粍鎿嶄綔
+ *
+ * @author chenjiantian
+ */
+@Service
+@AllArgsConstructor
+public class PoleGroupRelationService extends BaseServiceImpl<PoleGroupRelationMapper, PoleGroupRelation> {
+
+ /**
+ * 缁戝畾鐏潌
+ */
+ public boolean saveBinding(Long groupId,List<Long> poleIdList) {
+ remove(Wrappers.lambdaQuery(PoleGroupRelation.class).eq(PoleGroupRelation::getPoleGroupId,groupId));
+ List<PoleGroupRelation> batchList = new ArrayList<>();
+ for (Long poleId : poleIdList) {
+ PoleGroupRelation poleGroupRelation = new PoleGroupRelation();
+ poleGroupRelation.setPoleGroupId(groupId);
+ poleGroupRelation.setPoleId(poleId);
+ batchList.add(poleGroupRelation);
+ }
+ return saveBatch(batchList);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java
new file mode 100644
index 0000000..c788391
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleGroupService.java
@@ -0,0 +1,72 @@
+package com.sandu.ximon.admin.service;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.param.PoleGroupParam;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.dao.domain.PoleGroup;
+import com.sandu.ximon.dao.mapper.GroupMapper;
+import com.sandu.ximon.dao.mapper.PoleGroupMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鍒嗙粍鎿嶄綔
+ *
+ * @author chenjiantian
+ */
+@Service
+@AllArgsConstructor
+public class PoleGroupService extends BaseServiceImpl<PoleGroupMapper, PoleGroup> {
+
+ private final PoleGroupRelationService poleGroupRelationService;
+
+ public boolean addGroup(PoleGroupParam param) {
+ PoleGroup group = new PoleGroup();
+ group.setClientId(SecurityUtils.getClientId());
+ group.setGroupName(param.getGroupName());
+ return save(group);
+ }
+
+ public boolean updateGroup(Long groupId, PoleGroupParam param) {
+ PoleGroup poleGroup = getById(groupId);
+ if (poleGroup == null) {
+ throw new BusinessException("鏈壘鍒拌鍒嗙粍");
+ }
+ PoleGroup update = new PoleGroup();
+ update.setGroupId(groupId);
+ update.setGroupName(param.getGroupName());
+ return updateById(update);
+ }
+
+ public boolean deleteGroup(Long groupId) {
+ PoleGroup poleGroup = getById(groupId);
+ if (poleGroup == null) {
+ throw new BusinessException("鏈壘鍒拌鍒嗙粍");
+ }
+ return removeById(groupId);
+ }
+
+ public List<PoleGroup> groupList() {
+ Long clientId = SecurityUtils.getClientId();
+ if (clientId == null) {
+ return list();
+ } else {
+ return list(Wrappers.lambdaQuery(PoleGroup.class).eq(PoleGroup::getClientId, clientId));
+ }
+ }
+
+ /**
+ * 缁戝畾鐏潌
+ */
+ public boolean bindPole(Long groupId,List<Long> poleList) {
+ PoleGroup poleGroup = getById(groupId);
+ if (poleGroup == null) {
+ throw new BusinessException("鏈壘鍒拌鍒嗙粍");
+ }
+ return poleGroupRelationService.saveBinding(groupId,poleList);
+ }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
new file mode 100644
index 0000000..5129b9c
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -0,0 +1,87 @@
+package com.sandu.ximon.admin.service;
+
+import com.sandu.common.execption.BusinessException;
+import com.sandu.common.redis.RedisService;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.param.LampPostParam;
+import com.sandu.ximon.admin.param.PoleParam;
+import com.sandu.ximon.admin.redis.LightKey;
+import com.sandu.ximon.admin.security.CountSet;
+import com.sandu.ximon.dao.domain.LampPost;
+import com.sandu.ximon.dao.domain.Pole;
+import com.sandu.ximon.dao.mapper.ClientMapper;
+import com.sandu.ximon.dao.mapper.LampPostMapper;
+import com.sandu.ximon.dao.mapper.PoleMapper;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 鐏潌鐩稿叧
+ *
+ * @author chenjiantian
+ */
+@Service
+@Slf4j
+@AllArgsConstructor
+public class PoleService extends BaseServiceImpl<PoleMapper, Pole> {
+ private final CountSet countSet;
+ private final LampCountService lampCountService;
+ private final ClientMapper clientMapper;
+ private final LampPostMapper lampPostMapper;
+ private final RedisService redisService;
+
+ public boolean addPole(PoleParam param) {
+ Pole pole = new Pole();
+ BeanUtils.copyProperties(param, pole);
+ pole.setPoleCode(generatePoleCode());
+ return save(pole);
+ }
+
+ public boolean updatePole(Long poleId, PoleParam param) {
+ Pole pole = getById(poleId);
+ if (pole == null) {
+ throw new BusinessException("鏈壘鍒拌鐏潌");
+ }
+ Pole update = new Pole();
+ BeanUtils.copyProperties(param, update);
+ update.setId(poleId);
+ return updateById(update);
+ }
+
+ /**
+ * 鍒犻櫎鐏潌
+ */
+ public boolean deletePole(Long poleId){
+ Pole pole = getById(poleId);
+ if (pole == null) {
+ throw new BusinessException("鏈壘鍒拌鐏潌");
+ }
+ return removeById(poleId);
+ }
+
+
+
+ /**
+ * 鐢熸垚鐏潌缂栧彿
+ */
+ private Long generatePoleCode() {
+ StringBuilder sb = new StringBuilder();
+ String date = new SimpleDateFormat("yyMMdd").format(new Date());
+ sb.append(date);
+ String key = LightKey.POLE_SN.key(null);
+ Long increment = redisService.incr(key, 1);
+ String incrementStr = increment.toString();
+ if (incrementStr.length() <= 4) {
+ sb.append(String.format("%04d", increment));
+ } else {
+ sb.append(incrementStr);
+ }
+ return Long.parseLong(sb.toString());
+ }
+
+}
--
Gitblit v1.9.3