diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
new file mode 100644
index 0000000..6350671
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskDTO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String upgradeVersionName;
+
+ @ApiModelProperty(value = "任务状态", dataType = "Integer")
+ private Integer status;
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
new file mode 100644
index 0000000..6350671
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskDTO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String upgradeVersionName;
+
+ @ApiModelProperty(value = "任务状态", dataType = "Integer")
+ private Integer status;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
new file mode 100644
index 0000000..4125dcb
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
@@ -0,0 +1,40 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskListVO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String versionDscn;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String status;
+
+ @ApiModelProperty(value = "创建人id", dataType = "Long")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "创建人名称", dataType = "String")
+ private String createUserName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ private String createTime;
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
new file mode 100644
index 0000000..6350671
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskDTO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String upgradeVersionName;
+
+ @ApiModelProperty(value = "任务状态", dataType = "Integer")
+ private Integer status;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
new file mode 100644
index 0000000..4125dcb
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
@@ -0,0 +1,40 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskListVO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String versionDscn;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String status;
+
+ @ApiModelProperty(value = "创建人id", dataType = "Long")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "创建人名称", dataType = "String")
+ private String createUserName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
new file mode 100644
index 0000000..dd17617
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
@@ -0,0 +1,17 @@
+package com.casic.missiles.dto.version;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionDTO {
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
new file mode 100644
index 0000000..6350671
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskDTO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String upgradeVersionName;
+
+ @ApiModelProperty(value = "任务状态", dataType = "Integer")
+ private Integer status;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
new file mode 100644
index 0000000..4125dcb
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
@@ -0,0 +1,40 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskListVO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String versionDscn;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String status;
+
+ @ApiModelProperty(value = "创建人id", dataType = "Long")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "创建人名称", dataType = "String")
+ private String createUserName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
new file mode 100644
index 0000000..dd17617
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
@@ -0,0 +1,17 @@
+package com.casic.missiles.dto.version;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionDTO {
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
new file mode 100644
index 0000000..2aa5ae7
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
@@ -0,0 +1,39 @@
+package com.casic.missiles.dto.version;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionListVO {
+
+ @ApiModelProperty(value = "产品名称", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String dscn;
+
+ @ApiModelProperty(value = "负责人Id", dataType = "String")
+ private Long owner;
+
+ @ApiModelProperty(value = "负责人", dataType = "String")
+ private String ownerName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private String createTime;
+
+}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
new file mode 100644
index 0000000..6350671
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskDTO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String upgradeVersionName;
+
+ @ApiModelProperty(value = "任务状态", dataType = "Integer")
+ private Integer status;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
new file mode 100644
index 0000000..4125dcb
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
@@ -0,0 +1,40 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskListVO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String versionDscn;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String status;
+
+ @ApiModelProperty(value = "创建人id", dataType = "Long")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "创建人名称", dataType = "String")
+ private String createUserName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
new file mode 100644
index 0000000..dd17617
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
@@ -0,0 +1,17 @@
+package com.casic.missiles.dto.version;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionDTO {
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
new file mode 100644
index 0000000..2aa5ae7
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
@@ -0,0 +1,39 @@
+package com.casic.missiles.dto.version;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionListVO {
+
+ @ApiModelProperty(value = "产品名称", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String dscn;
+
+ @ApiModelProperty(value = "负责人Id", dataType = "String")
+ private Long owner;
+
+ @ApiModelProperty(value = "负责人", dataType = "String")
+ private String ownerName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
index 92465e5..131b927 100644
--- a/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
+++ b/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
@@ -10,8 +10,9 @@
public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum {
HANDLE_FAILED(500, "操作失败"),
- GROUP_BIND_DEVICE(2023, "删除失败,设备组绑定的有设备");
-
+ PARAMS_ILLEGALITY(2021, "参数不合法"),
+ GROUP_BIND_DEVICE(2023, "删除失败,设备组绑定的有设备"),
+ VERSION_BIND_TASK(2024, "删除失败,升级包绑定的有任务");
private Integer code;
private String message;
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
new file mode 100644
index 0000000..6350671
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskDTO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String upgradeVersionName;
+
+ @ApiModelProperty(value = "任务状态", dataType = "Integer")
+ private Integer status;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
new file mode 100644
index 0000000..4125dcb
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
@@ -0,0 +1,40 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskListVO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String versionDscn;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String status;
+
+ @ApiModelProperty(value = "创建人id", dataType = "Long")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "创建人名称", dataType = "String")
+ private String createUserName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
new file mode 100644
index 0000000..dd17617
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
@@ -0,0 +1,17 @@
+package com.casic.missiles.dto.version;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionDTO {
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
new file mode 100644
index 0000000..2aa5ae7
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
@@ -0,0 +1,39 @@
+package com.casic.missiles.dto.version;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionListVO {
+
+ @ApiModelProperty(value = "产品名称", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String dscn;
+
+ @ApiModelProperty(value = "负责人Id", dataType = "String")
+ private Long owner;
+
+ @ApiModelProperty(value = "负责人", dataType = "String")
+ private String ownerName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
index 92465e5..131b927 100644
--- a/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
+++ b/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
@@ -10,8 +10,9 @@
public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum {
HANDLE_FAILED(500, "操作失败"),
- GROUP_BIND_DEVICE(2023, "删除失败,设备组绑定的有设备");
-
+ PARAMS_ILLEGALITY(2021, "参数不合法"),
+ GROUP_BIND_DEVICE(2023, "删除失败,设备组绑定的有设备"),
+ VERSION_BIND_TASK(2024, "删除失败,升级包绑定的有任务");
private Integer code;
private String message;
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java b/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java
index da221ae..7647466 100644
--- a/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java
+++ b/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java
@@ -65,5 +65,9 @@
*/
String ALARM_TYPE = "alarmType";
+ /**
+ * 报警类别
+ */
+ String ALARM_CATEGORY = "alarmCategory";
}
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") UpgradeTaskDTO request,
+ @Param("dataScope") DataScope dataScope);
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
index 339ca9b..07c2285 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceVersionMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.version.DeviceVersionDTO;
+import com.casic.missiles.dto.version.DeviceVersionListVO;
import com.casic.missiles.model.DeviceVersion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceVersionMapper extends BaseMapper {
+ List listPage(@Param("page") Page page, @Param("request") DeviceVersionDTO request,@Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
index 4aee44a..ea44fb5 100644
--- a/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/AlarmDataMapper.xml
@@ -4,15 +4,16 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -20,4 +21,84 @@
id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
index a5bf5e7..a2edc7f 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceUpgradeTaskMapper.xml
@@ -4,12 +4,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -17,4 +17,50 @@
id, version_id, device_id, status, create_time, create_user_id
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
+
+
+
diff --git a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
index e39ec1f..661f2d5 100644
--- a/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
+++ b/casic-iot-dao/src/main/resources/mapper/DeviceVersionMapper.xml
@@ -2,22 +2,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ ${paramStr}
+
+
+
+ TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
+
+
+
+ TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
+
+
Id, product_id, version_file, version, owner, dscn, create_time, create_user_id
+
+
diff --git a/casic-iot-job/pom.xml b/casic-iot-job/pom.xml
new file mode 100644
index 0000000..f1782b0
--- /dev/null
+++ b/casic-iot-job/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ casic-iot
+ com.casic
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ casic-iot-job
+
+
+
+ com.xuxueli
+ xxl-job-core
+ ${xxl-job.version}
+
+
+
+
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
new file mode 100644
index 0000000..cd564d3
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/config/XxlJobConfig.java
@@ -0,0 +1,58 @@
+package com.casic.missiles.job.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Description:
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+@Slf4j
+@Configuration
+@Data
+public class XxlJobConfig {
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+// @Value("${xxl.job.executor.address}")
+// private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ log.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+// xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
new file mode 100644
index 0000000..1f77931
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/DemoJobHandler.java
@@ -0,0 +1,42 @@
+package com.casic.missiles.job.handler;
+
+/**
+ * @Description: JobHandler
+ * @Author: cz
+ * @Date: 2024/5/6
+ */
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ *
+ * 开发步骤:
+ * 1、任务开发:在Spring Bean实例中,开发Job方法;
+ * 2、注解配置:为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobHelper.log" 打印执行日志;
+ * 4、任务结果:默认任务结果为 "成功" 状态,不需要主动设置;如有诉求,比如设置任务结果为失败,可以通过 "XxlJobHelper.handleFail/handleSuccess" 自主设置任务结果;
+ */
+@Slf4j
+@Component
+public class DemoJobHandler {
+
+ @XxlJob(value = "demoHandler")
+ public ReturnT execute(String param) throws Exception {
+ System.out.println("调度任务Demo执行");
+ XxlJobHelper.log("XXL-JOB-DEMO, Hello World.");
+
+// for (int i = 0; i < 5; i++) {
+// XxlJobLogger.log("beat at:" + i);
+// TimeUnit.SECONDS.sleep(2);
+// }
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
new file mode 100644
index 0000000..1762f6e
--- /dev/null
+++ b/casic-iot-job/src/main/java/com/casic/missiles/job/handler/SystemOperationHandler.java
@@ -0,0 +1,52 @@
+package com.casic.missiles.job.handler;
+
+import com.sun.management.OperatingSystemMXBean;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryMXBean;
+import java.lang.management.ThreadMXBean;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+/**
+ * 系统运行情况
+ * cpu占用,线程、内存使用情况
+ *
+ * @author cz
+ * @date 2024/5/6
+ */
+public class SystemOperationHandler {
+
+ /**
+ * 计划每十分钟进行一次计算,仅用于问题排查
+ * 保留最新三个小时内
+ *
+ * @param param
+ * @return
+ * @throws Exception
+ */
+ @XxlJob(value = "systemOperation")
+ public ReturnT execute(String param) throws Exception {
+ // 获取内存MXBean
+ MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
+
+ // 获取线程MXBean
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+
+ // 获取操作系统MXBean
+ OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+
+ // 获取当前内存使用情况
+ long totalMemory = osMXBean.getTotalPhysicalMemorySize();
+ long freeMemory = osMXBean.getFreePhysicalMemorySize();
+ // 获取CPU使用情况(需要更多代码)
+
+ // 获取线程信息
+ int threadCount = threadMXBean.getThreadCount();
+ int daemonThreadCount = threadMXBean.getDaemonThreadCount();
+ return SUCCESS;
+ }
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
new file mode 100644
index 0000000..852b037
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataDTO.java
@@ -0,0 +1,36 @@
+package com.casic.missiles.dto.alarm;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class AlarmDataDTO {
+
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ private Long groupId;
+
+ @ApiModelProperty(value = "设备类型(字典值)", dataType = "Integer")
+ private Integer deviceType;
+
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ private String devcode;
+
+ @ApiModelProperty(value = "报警类别", dataType = "Integer")
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警开始时间", dataType = "String")
+ private String beginTime;
+
+ @ApiModelProperty(value = "报警结束时间", dataType = "String")
+ private String endTime;
+
+ @ApiModelProperty(value = "ids列表(导出用)", dataType = "String")
+ private List ids;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
new file mode 100644
index 0000000..8f0c322
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/alarm/AlarmDataListVO.java
@@ -0,0 +1,130 @@
+package com.casic.missiles.dto.alarm;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.BorderStyleEnum;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.casic.missiles.annotation.DictCodeField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_CATEGORY;
+import static com.casic.missiles.enums.DictCodeEnum.ALARM_TYPE;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@ColumnWidth(30)
+@HeadRowHeight(15)
+@ContentRowHeight(20)
+@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
+@ExcelIgnoreUnannotated
+@Data
+public class AlarmDataListVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId("id")
+ private Long id;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组id", dataType = "Long")
+ @TableField(exist = false)
+ private Long groupId;
+
+ /**
+ * 分组名称
+ */
+ @ApiModelProperty(value = "分组名称", dataType = "String")
+ @ExcelProperty(value = "分组名称", order = 1)
+ @TableField(exist = false)
+ private String groupName;
+
+ /**
+ * 设备编号
+ */
+ @TableField("devcode")
+ @ApiModelProperty(value = "设备编号", dataType = "String")
+ @ExcelProperty(value = "设备编号", order = 2)
+ private String devcode;
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_type")
+ @DictCodeField(message = "报警类型不合法", cacheName = ALARM_TYPE)
+ private Integer alarmType;
+
+ @ApiModelProperty(value = "报警类型", dataType = "String")
+ @ExcelProperty(value = "报警类型", order = 3)
+ @TableField(exist = false)
+ private String alarmTypeName;
+
+
+ /**
+ * 报警类型
+ */
+ @TableField("alarm_category")
+ @DictCodeField(message = "报警类别不合法", cacheName = ALARM_CATEGORY)
+ private Integer alarmCategory;
+
+ @ApiModelProperty(value = "报警类别", dataType = "String")
+ @ExcelProperty(value = "报警类别", order = 4)
+ @TableField(exist = false)
+ private String alarmCategoryName;
+
+ /**
+ * 报警内容
+ */
+ @TableField("alarm_content")
+ @ApiModelProperty(value = "报警内容", dataType = "String")
+ @ExcelProperty(value = "报警内容", order = 5)
+ private String alarmContent;
+
+ /**
+ * 报警时间
+ */
+ @TableField("alarm_time")
+ @ApiModelProperty(value = "报警时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value = "报警时间", order = 6)
+ private LocalDateTime alarmTime;
+
+ /**
+ * 报警数值
+ */
+ @TableField("alarm_value")
+ @ApiModelProperty(value = "报警数值", dataType = "String")
+ private String alarmValue;
+
+ /**
+ * 报警状态
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "报警状态", dataType = "Integer")
+ private Integer status;
+
+ /**
+ * 创建日期 默认为当前时间
+ */
+ @TableField("create_time")
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
new file mode 100644
index 0000000..6350671
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskDTO.java
@@ -0,0 +1,26 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Value;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskDTO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String upgradeVersionName;
+
+ @ApiModelProperty(value = "任务状态", dataType = "Integer")
+ private Integer status;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
new file mode 100644
index 0000000..4125dcb
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/upgrade/UpgradeTaskListVO.java
@@ -0,0 +1,40 @@
+package com.casic.missiles.dto.upgrade;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class UpgradeTaskListVO {
+
+ @ApiModelProperty(value = "任务名称", dataType = "String")
+ private String taskName;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String versionDscn;
+
+ @ApiModelProperty(value = "升级包版本号", dataType = "String")
+ private String status;
+
+ @ApiModelProperty(value = "创建人id", dataType = "Long")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "创建人名称", dataType = "String")
+ private String createUserName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
new file mode 100644
index 0000000..dd17617
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionDTO.java
@@ -0,0 +1,17 @@
+package com.casic.missiles.dto.version;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionDTO {
+
+ @ApiModelProperty(value = "产品名称id", dataType = "Long")
+ private Long productId;
+
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
new file mode 100644
index 0000000..2aa5ae7
--- /dev/null
+++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/version/DeviceVersionListVO.java
@@ -0,0 +1,39 @@
+package com.casic.missiles.dto.version;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author cz
+ * @date 2024/5/6
+ */
+@Data
+public class DeviceVersionListVO {
+
+ @ApiModelProperty(value = "产品名称", dataType = "Long")
+ private Long productId;
+
+ @ApiModelProperty(value = "产品名称", dataType = "String")
+ private String productName;
+
+ @ApiModelProperty(value = "升级包名称", dataType = "String")
+ private String versionName;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String version;
+
+ @ApiModelProperty(value = "版本号", dataType = "String")
+ private String dscn;
+
+ @ApiModelProperty(value = "负责人Id", dataType = "String")
+ private Long owner;
+
+ @ApiModelProperty(value = "负责人", dataType = "String")
+ private String ownerName;
+
+ @ApiModelProperty(value = "创建时间", dataType = "String")
+ @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+ private String createTime;
+
+}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
index 92465e5..131b927 100644
--- a/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
+++ b/casic-iot-model/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java
@@ -10,8 +10,9 @@
public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum {
HANDLE_FAILED(500, "操作失败"),
- GROUP_BIND_DEVICE(2023, "删除失败,设备组绑定的有设备");
-
+ PARAMS_ILLEGALITY(2021, "参数不合法"),
+ GROUP_BIND_DEVICE(2023, "删除失败,设备组绑定的有设备"),
+ VERSION_BIND_TASK(2024, "删除失败,升级包绑定的有任务");
private Integer code;
private String message;
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java b/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java
index da221ae..7647466 100644
--- a/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java
+++ b/casic-iot-model/src/main/java/com/casic/missiles/enums/DictCodeEnum.java
@@ -65,5 +65,9 @@
*/
String ALARM_TYPE = "alarmType";
+ /**
+ * 报警类别
+ */
+ String ALARM_CATEGORY = "alarmCategory";
}
diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/AlarmData.java b/casic-iot-model/src/main/java/com/casic/missiles/model/AlarmData.java
index 06ee5d0..2f28b39 100644
--- a/casic-iot-model/src/main/java/com/casic/missiles/model/AlarmData.java
+++ b/casic-iot-model/src/main/java/com/casic/missiles/model/AlarmData.java
@@ -4,8 +4,10 @@
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.Getter;
import lombok.Setter;
@@ -27,7 +29,7 @@
/**
* 编号
*/
- @TableId("id")
+ @TableId("id")
private Long id;
/**
@@ -37,6 +39,13 @@
private Integer alarmType;
/**
+ * 报警类别
+ */
+ @TableField("alarm_category")
+ private Integer alarmCategory;
+
+
+ /**
* 报警内容
*/
@TableField("alarm_content")
diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml
index 8cc8bc3..d454732 100644
--- a/casic-iot-common/pom.xml
+++ b/casic-iot-common/pom.xml
@@ -56,7 +56,7 @@
org.springframework.boot
spring-boot-starter-websocket
- 2.4.5
+ ${spring.version}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
index b0c2933..a5dc4ef 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/AlarmDataMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.alarm.AlarmDataDTO;
+import com.casic.missiles.dto.alarm.AlarmDataListVO;
import com.casic.missiles.model.AlarmData;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,8 @@
*/
public interface AlarmDataMapper extends BaseMapper {
+ List listPage(@Param("page") Page page,
+ @Param("request") AlarmDataDTO request,
+ @Param("dataScope") DataScope dataScope);
+
}
diff --git a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
index f83aa6e..24fa5ad 100644
--- a/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
+++ b/casic-iot-dao/src/main/java/com/casic/missiles/mapper/DeviceUpgradeTaskMapper.java
@@ -1,7 +1,14 @@
package com.casic.missiles.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.dto.upgrade.UpgradeTaskDTO;
+import com.casic.missiles.dto.upgrade.UpgradeTaskListVO;
import com.casic.missiles.model.DeviceUpgradeTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +20,6 @@
*/
public interface DeviceUpgradeTaskMapper extends BaseMapper {
+ List listPage(@Param("page") Page