diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-service/pom.xml b/casic-iot-service/pom.xml index 61dcbed..0418722 100644 --- a/casic-iot-service/pom.xml +++ b/casic-iot-service/pom.xml @@ -20,6 +20,7 @@ ${iot.version} + com.casic casic-iot-model diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-service/pom.xml b/casic-iot-service/pom.xml index 61dcbed..0418722 100644 --- a/casic-iot-service/pom.xml +++ b/casic-iot-service/pom.xml @@ -20,6 +20,7 @@ ${iot.version} + com.casic casic-iot-model diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java index 75aea72..055445a 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java @@ -15,14 +15,17 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.device.DeviceListRequest; import com.casic.missiles.dto.device.DeviceListVO; +import com.casic.missiles.dto.device.ImportDeviceDTO; import com.casic.missiles.dto.group.DeviceGroupListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.DictCodeEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.DeviceGroupMapper; import com.casic.missiles.mapper.ProductInfoMapper; import com.casic.missiles.mapper.DeviceMapper; import com.casic.missiles.mapper.common.SysCommonMapper; import com.casic.missiles.model.Device; +import com.casic.missiles.model.DeviceGroup; import com.casic.missiles.model.ProductInfo; import com.casic.missiles.service.IDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -34,9 +37,7 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,6 +53,7 @@ public class DeviceServiceImpl extends ServiceImpl implements IDeviceService, DictCodeEnum { private final ProductInfoMapper productInfoMapper; + private final DeviceGroupMapper deviceGroupMapper; private final SysCommonMapper sysCommonMapper; @Override @@ -113,10 +115,10 @@ public void importiFile(MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); //保证登录账号、部门id正确 - List list = EasyExcel.read(inputStream) + List list = EasyExcel.read(inputStream) //注册自定义监听器,字段校验可以在监听器内实现 .registerReadListener(new CommonExcelListener<>()) - .head(DeviceGroupListVO.class) //对应导入的实体类 + .head(ImportDeviceDTO.class) //对应导入的实体类 .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 @@ -124,11 +126,22 @@ saveImport(list); } - private void validImport(List list) { + private void validImport(List list) { + //去重 + list = list.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportDeviceDTO::getDevcode))), ArrayList::new)); List productInfoList = productInfoMapper.selectList(null); Map productInfoMap = productInfoList.stream().collect( Collectors.toMap(ProductInfo::getName, e -> e) ); + List deviceList = this.baseMapper.selectList(null); + Map devcodeMap = deviceList.stream().collect( + Collectors.toMap(Device::getDevcode, e -> e) + ); + List deviceGroupList = deviceGroupMapper.selectList(null); + Map deviceGroupInfoMap = deviceGroupList.stream().collect( + Collectors.toMap(DeviceGroup::getGroupName, e -> e) + ); List> deviceMapList = sysCommonMapper.getDictMapByCode(DEVICE_TYPE); Map deviceMap = deviceMapList.stream().collect(Collectors.toMap(e -> e.get("name"), e -> e.get("code"))); List> modelList = sysCommonMapper.getDictMapByCode(MODEL); @@ -136,36 +149,43 @@ //设备编号后台生成 String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { - DeviceListVO importDTO = list.get(i); + ImportDeviceDTO importDTO = list.get(i); if (StrUtil.isBlank(importDTO.getDevcode())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号不能为空")); + } else if (devcodeMap.containsKey(importDTO.getDevcode())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号在系统已存在")); } - if (ObjectUtil.isEmpty(importDTO.getProductId()) || !productInfoMap.containsKey(importDTO.getProductName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或不正确")); + if (ObjectUtil.isEmpty(importDTO.getProductName()) || !productInfoMap.containsKey(importDTO.getProductName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或系统不存在")); } else { importDTO.setProductId(productInfoMap.get(importDTO.getProductName()).getId()); } + if (ObjectUtil.isEmpty(importDTO.getGroupName()) || !deviceGroupInfoMap.containsKey(importDTO.getGroupName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "分组名称不能为空或系统不存在")); + } else { + importDTO.setGroupId(deviceGroupInfoMap.get(importDTO.getGroupName()).getId()); + } if (ObjectUtil.isEmpty(importDTO.getModelName()) || !modelMap.containsKey(importDTO.getModelName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或系统不存在")); } else { importDTO.setModel(Integer.valueOf(modelMap.get(importDTO.getModelName()))); } if (ObjectUtil.isEmpty(importDTO.getDeviceTypeName()) || !deviceMap.containsKey(importDTO.getDeviceTypeName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或系统不存在")); } else { importDTO.setDeviceType(Integer.valueOf(deviceMap.get(importDTO.getDeviceTypeName()))); } } } - private void saveImport(List list) { + private void saveImport(List list) { AuthUser authUser = ShiroKit.getUser(); String name = authUser.getName(); List deviceList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { - DeviceListVO deviceListDTO = list.get(i); + ImportDeviceDTO deviceListDTO = list.get(i); Device device = new Device(); - BeanUtil.copyProperties(device, deviceListDTO); + BeanUtil.copyProperties(deviceListDTO, device); device.setCreateUserName(name); deviceList.add(device); } diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-service/pom.xml b/casic-iot-service/pom.xml index 61dcbed..0418722 100644 --- a/casic-iot-service/pom.xml +++ b/casic-iot-service/pom.xml @@ -20,6 +20,7 @@ ${iot.version} + com.casic casic-iot-model diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java index 75aea72..055445a 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java @@ -15,14 +15,17 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.device.DeviceListRequest; import com.casic.missiles.dto.device.DeviceListVO; +import com.casic.missiles.dto.device.ImportDeviceDTO; import com.casic.missiles.dto.group.DeviceGroupListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.DictCodeEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.DeviceGroupMapper; import com.casic.missiles.mapper.ProductInfoMapper; import com.casic.missiles.mapper.DeviceMapper; import com.casic.missiles.mapper.common.SysCommonMapper; import com.casic.missiles.model.Device; +import com.casic.missiles.model.DeviceGroup; import com.casic.missiles.model.ProductInfo; import com.casic.missiles.service.IDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -34,9 +37,7 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,6 +53,7 @@ public class DeviceServiceImpl extends ServiceImpl implements IDeviceService, DictCodeEnum { private final ProductInfoMapper productInfoMapper; + private final DeviceGroupMapper deviceGroupMapper; private final SysCommonMapper sysCommonMapper; @Override @@ -113,10 +115,10 @@ public void importiFile(MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); //保证登录账号、部门id正确 - List list = EasyExcel.read(inputStream) + List list = EasyExcel.read(inputStream) //注册自定义监听器,字段校验可以在监听器内实现 .registerReadListener(new CommonExcelListener<>()) - .head(DeviceGroupListVO.class) //对应导入的实体类 + .head(ImportDeviceDTO.class) //对应导入的实体类 .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 @@ -124,11 +126,22 @@ saveImport(list); } - private void validImport(List list) { + private void validImport(List list) { + //去重 + list = list.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportDeviceDTO::getDevcode))), ArrayList::new)); List productInfoList = productInfoMapper.selectList(null); Map productInfoMap = productInfoList.stream().collect( Collectors.toMap(ProductInfo::getName, e -> e) ); + List deviceList = this.baseMapper.selectList(null); + Map devcodeMap = deviceList.stream().collect( + Collectors.toMap(Device::getDevcode, e -> e) + ); + List deviceGroupList = deviceGroupMapper.selectList(null); + Map deviceGroupInfoMap = deviceGroupList.stream().collect( + Collectors.toMap(DeviceGroup::getGroupName, e -> e) + ); List> deviceMapList = sysCommonMapper.getDictMapByCode(DEVICE_TYPE); Map deviceMap = deviceMapList.stream().collect(Collectors.toMap(e -> e.get("name"), e -> e.get("code"))); List> modelList = sysCommonMapper.getDictMapByCode(MODEL); @@ -136,36 +149,43 @@ //设备编号后台生成 String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { - DeviceListVO importDTO = list.get(i); + ImportDeviceDTO importDTO = list.get(i); if (StrUtil.isBlank(importDTO.getDevcode())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号不能为空")); + } else if (devcodeMap.containsKey(importDTO.getDevcode())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号在系统已存在")); } - if (ObjectUtil.isEmpty(importDTO.getProductId()) || !productInfoMap.containsKey(importDTO.getProductName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或不正确")); + if (ObjectUtil.isEmpty(importDTO.getProductName()) || !productInfoMap.containsKey(importDTO.getProductName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或系统不存在")); } else { importDTO.setProductId(productInfoMap.get(importDTO.getProductName()).getId()); } + if (ObjectUtil.isEmpty(importDTO.getGroupName()) || !deviceGroupInfoMap.containsKey(importDTO.getGroupName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "分组名称不能为空或系统不存在")); + } else { + importDTO.setGroupId(deviceGroupInfoMap.get(importDTO.getGroupName()).getId()); + } if (ObjectUtil.isEmpty(importDTO.getModelName()) || !modelMap.containsKey(importDTO.getModelName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或系统不存在")); } else { importDTO.setModel(Integer.valueOf(modelMap.get(importDTO.getModelName()))); } if (ObjectUtil.isEmpty(importDTO.getDeviceTypeName()) || !deviceMap.containsKey(importDTO.getDeviceTypeName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或系统不存在")); } else { importDTO.setDeviceType(Integer.valueOf(deviceMap.get(importDTO.getDeviceTypeName()))); } } } - private void saveImport(List list) { + private void saveImport(List list) { AuthUser authUser = ShiroKit.getUser(); String name = authUser.getName(); List deviceList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { - DeviceListVO deviceListDTO = list.get(i); + ImportDeviceDTO deviceListDTO = list.get(i); Device device = new Device(); - BeanUtil.copyProperties(device, deviceListDTO); + BeanUtil.copyProperties(deviceListDTO, device); device.setCreateUserName(name); deviceList.add(device); } diff --git a/casic-iot-web/pom.xml b/casic-iot-web/pom.xml index 133ecf8..c722e4b 100644 --- a/casic-iot-web/pom.xml +++ b/casic-iot-web/pom.xml @@ -27,47 +27,6 @@ sensorhub-core ${iot.version} - - - - com.casic - casic-core - ${core.version} - - - - com.casic - casic-admin-core - ${admin.version} - - - io.springfox - springfox-swagger-ui - - - - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-file-support - ${admin.version} - - - com.casic - casic-export-support - ${extension.version} - - - com.casic - casic-file - ${admin.version} - - diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-service/pom.xml b/casic-iot-service/pom.xml index 61dcbed..0418722 100644 --- a/casic-iot-service/pom.xml +++ b/casic-iot-service/pom.xml @@ -20,6 +20,7 @@ ${iot.version} + com.casic casic-iot-model diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java index 75aea72..055445a 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java @@ -15,14 +15,17 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.device.DeviceListRequest; import com.casic.missiles.dto.device.DeviceListVO; +import com.casic.missiles.dto.device.ImportDeviceDTO; import com.casic.missiles.dto.group.DeviceGroupListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.DictCodeEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.DeviceGroupMapper; import com.casic.missiles.mapper.ProductInfoMapper; import com.casic.missiles.mapper.DeviceMapper; import com.casic.missiles.mapper.common.SysCommonMapper; import com.casic.missiles.model.Device; +import com.casic.missiles.model.DeviceGroup; import com.casic.missiles.model.ProductInfo; import com.casic.missiles.service.IDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -34,9 +37,7 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,6 +53,7 @@ public class DeviceServiceImpl extends ServiceImpl implements IDeviceService, DictCodeEnum { private final ProductInfoMapper productInfoMapper; + private final DeviceGroupMapper deviceGroupMapper; private final SysCommonMapper sysCommonMapper; @Override @@ -113,10 +115,10 @@ public void importiFile(MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); //保证登录账号、部门id正确 - List list = EasyExcel.read(inputStream) + List list = EasyExcel.read(inputStream) //注册自定义监听器,字段校验可以在监听器内实现 .registerReadListener(new CommonExcelListener<>()) - .head(DeviceGroupListVO.class) //对应导入的实体类 + .head(ImportDeviceDTO.class) //对应导入的实体类 .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 @@ -124,11 +126,22 @@ saveImport(list); } - private void validImport(List list) { + private void validImport(List list) { + //去重 + list = list.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportDeviceDTO::getDevcode))), ArrayList::new)); List productInfoList = productInfoMapper.selectList(null); Map productInfoMap = productInfoList.stream().collect( Collectors.toMap(ProductInfo::getName, e -> e) ); + List deviceList = this.baseMapper.selectList(null); + Map devcodeMap = deviceList.stream().collect( + Collectors.toMap(Device::getDevcode, e -> e) + ); + List deviceGroupList = deviceGroupMapper.selectList(null); + Map deviceGroupInfoMap = deviceGroupList.stream().collect( + Collectors.toMap(DeviceGroup::getGroupName, e -> e) + ); List> deviceMapList = sysCommonMapper.getDictMapByCode(DEVICE_TYPE); Map deviceMap = deviceMapList.stream().collect(Collectors.toMap(e -> e.get("name"), e -> e.get("code"))); List> modelList = sysCommonMapper.getDictMapByCode(MODEL); @@ -136,36 +149,43 @@ //设备编号后台生成 String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { - DeviceListVO importDTO = list.get(i); + ImportDeviceDTO importDTO = list.get(i); if (StrUtil.isBlank(importDTO.getDevcode())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号不能为空")); + } else if (devcodeMap.containsKey(importDTO.getDevcode())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号在系统已存在")); } - if (ObjectUtil.isEmpty(importDTO.getProductId()) || !productInfoMap.containsKey(importDTO.getProductName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或不正确")); + if (ObjectUtil.isEmpty(importDTO.getProductName()) || !productInfoMap.containsKey(importDTO.getProductName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或系统不存在")); } else { importDTO.setProductId(productInfoMap.get(importDTO.getProductName()).getId()); } + if (ObjectUtil.isEmpty(importDTO.getGroupName()) || !deviceGroupInfoMap.containsKey(importDTO.getGroupName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "分组名称不能为空或系统不存在")); + } else { + importDTO.setGroupId(deviceGroupInfoMap.get(importDTO.getGroupName()).getId()); + } if (ObjectUtil.isEmpty(importDTO.getModelName()) || !modelMap.containsKey(importDTO.getModelName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或系统不存在")); } else { importDTO.setModel(Integer.valueOf(modelMap.get(importDTO.getModelName()))); } if (ObjectUtil.isEmpty(importDTO.getDeviceTypeName()) || !deviceMap.containsKey(importDTO.getDeviceTypeName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或系统不存在")); } else { importDTO.setDeviceType(Integer.valueOf(deviceMap.get(importDTO.getDeviceTypeName()))); } } } - private void saveImport(List list) { + private void saveImport(List list) { AuthUser authUser = ShiroKit.getUser(); String name = authUser.getName(); List deviceList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { - DeviceListVO deviceListDTO = list.get(i); + ImportDeviceDTO deviceListDTO = list.get(i); Device device = new Device(); - BeanUtil.copyProperties(device, deviceListDTO); + BeanUtil.copyProperties(deviceListDTO, device); device.setCreateUserName(name); deviceList.add(device); } diff --git a/casic-iot-web/pom.xml b/casic-iot-web/pom.xml index 133ecf8..c722e4b 100644 --- a/casic-iot-web/pom.xml +++ b/casic-iot-web/pom.xml @@ -27,47 +27,6 @@ sensorhub-core ${iot.version} - - - - com.casic - casic-core - ${core.version} - - - - com.casic - casic-admin-core - ${admin.version} - - - io.springfox - springfox-swagger-ui - - - - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-file-support - ${admin.version} - - - com.casic - casic-export-support - ${extension.version} - - - com.casic - casic-file - ${admin.version} - - diff --git a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java index e68c8bc..6ac5303 100644 --- a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java +++ b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java @@ -93,5 +93,4 @@ return ReturnUtil.success(deviceGroupService.deviceGroupDetail(idDTO.getId())); } - } diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-service/pom.xml b/casic-iot-service/pom.xml index 61dcbed..0418722 100644 --- a/casic-iot-service/pom.xml +++ b/casic-iot-service/pom.xml @@ -20,6 +20,7 @@ ${iot.version} + com.casic casic-iot-model diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java index 75aea72..055445a 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java @@ -15,14 +15,17 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.device.DeviceListRequest; import com.casic.missiles.dto.device.DeviceListVO; +import com.casic.missiles.dto.device.ImportDeviceDTO; import com.casic.missiles.dto.group.DeviceGroupListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.DictCodeEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.DeviceGroupMapper; import com.casic.missiles.mapper.ProductInfoMapper; import com.casic.missiles.mapper.DeviceMapper; import com.casic.missiles.mapper.common.SysCommonMapper; import com.casic.missiles.model.Device; +import com.casic.missiles.model.DeviceGroup; import com.casic.missiles.model.ProductInfo; import com.casic.missiles.service.IDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -34,9 +37,7 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,6 +53,7 @@ public class DeviceServiceImpl extends ServiceImpl implements IDeviceService, DictCodeEnum { private final ProductInfoMapper productInfoMapper; + private final DeviceGroupMapper deviceGroupMapper; private final SysCommonMapper sysCommonMapper; @Override @@ -113,10 +115,10 @@ public void importiFile(MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); //保证登录账号、部门id正确 - List list = EasyExcel.read(inputStream) + List list = EasyExcel.read(inputStream) //注册自定义监听器,字段校验可以在监听器内实现 .registerReadListener(new CommonExcelListener<>()) - .head(DeviceGroupListVO.class) //对应导入的实体类 + .head(ImportDeviceDTO.class) //对应导入的实体类 .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 @@ -124,11 +126,22 @@ saveImport(list); } - private void validImport(List list) { + private void validImport(List list) { + //去重 + list = list.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportDeviceDTO::getDevcode))), ArrayList::new)); List productInfoList = productInfoMapper.selectList(null); Map productInfoMap = productInfoList.stream().collect( Collectors.toMap(ProductInfo::getName, e -> e) ); + List deviceList = this.baseMapper.selectList(null); + Map devcodeMap = deviceList.stream().collect( + Collectors.toMap(Device::getDevcode, e -> e) + ); + List deviceGroupList = deviceGroupMapper.selectList(null); + Map deviceGroupInfoMap = deviceGroupList.stream().collect( + Collectors.toMap(DeviceGroup::getGroupName, e -> e) + ); List> deviceMapList = sysCommonMapper.getDictMapByCode(DEVICE_TYPE); Map deviceMap = deviceMapList.stream().collect(Collectors.toMap(e -> e.get("name"), e -> e.get("code"))); List> modelList = sysCommonMapper.getDictMapByCode(MODEL); @@ -136,36 +149,43 @@ //设备编号后台生成 String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { - DeviceListVO importDTO = list.get(i); + ImportDeviceDTO importDTO = list.get(i); if (StrUtil.isBlank(importDTO.getDevcode())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号不能为空")); + } else if (devcodeMap.containsKey(importDTO.getDevcode())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号在系统已存在")); } - if (ObjectUtil.isEmpty(importDTO.getProductId()) || !productInfoMap.containsKey(importDTO.getProductName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或不正确")); + if (ObjectUtil.isEmpty(importDTO.getProductName()) || !productInfoMap.containsKey(importDTO.getProductName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或系统不存在")); } else { importDTO.setProductId(productInfoMap.get(importDTO.getProductName()).getId()); } + if (ObjectUtil.isEmpty(importDTO.getGroupName()) || !deviceGroupInfoMap.containsKey(importDTO.getGroupName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "分组名称不能为空或系统不存在")); + } else { + importDTO.setGroupId(deviceGroupInfoMap.get(importDTO.getGroupName()).getId()); + } if (ObjectUtil.isEmpty(importDTO.getModelName()) || !modelMap.containsKey(importDTO.getModelName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或系统不存在")); } else { importDTO.setModel(Integer.valueOf(modelMap.get(importDTO.getModelName()))); } if (ObjectUtil.isEmpty(importDTO.getDeviceTypeName()) || !deviceMap.containsKey(importDTO.getDeviceTypeName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或系统不存在")); } else { importDTO.setDeviceType(Integer.valueOf(deviceMap.get(importDTO.getDeviceTypeName()))); } } } - private void saveImport(List list) { + private void saveImport(List list) { AuthUser authUser = ShiroKit.getUser(); String name = authUser.getName(); List deviceList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { - DeviceListVO deviceListDTO = list.get(i); + ImportDeviceDTO deviceListDTO = list.get(i); Device device = new Device(); - BeanUtil.copyProperties(device, deviceListDTO); + BeanUtil.copyProperties(deviceListDTO, device); device.setCreateUserName(name); deviceList.add(device); } diff --git a/casic-iot-web/pom.xml b/casic-iot-web/pom.xml index 133ecf8..c722e4b 100644 --- a/casic-iot-web/pom.xml +++ b/casic-iot-web/pom.xml @@ -27,47 +27,6 @@ sensorhub-core ${iot.version} - - - - com.casic - casic-core - ${core.version} - - - - com.casic - casic-admin-core - ${admin.version} - - - io.springfox - springfox-swagger-ui - - - - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-file-support - ${admin.version} - - - com.casic - casic-export-support - ${extension.version} - - - com.casic - casic-file - ${admin.version} - - diff --git a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java index e68c8bc..6ac5303 100644 --- a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java +++ b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java @@ -93,5 +93,4 @@ return ReturnUtil.success(deviceGroupService.deviceGroupDetail(idDTO.getId())); } - } diff --git a/pom.xml b/pom.xml index bc216f3..73addfd 100644 --- a/pom.xml +++ b/pom.xml @@ -60,35 +60,11 @@ com.alibaba - druid-spring-boot-starter - 1.1.23 - - - - - - - - - - mysql - mysql-connector-java - ${mysql.driver.version} - - - - com.alibaba fastjson ${fastjson.version} - org.apache.commons - commons-lang3 - 3.1 - - - cn.hutool hutool-core 5.7.2 @@ -100,7 +76,6 @@ 1.18.20 - diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-service/pom.xml b/casic-iot-service/pom.xml index 61dcbed..0418722 100644 --- a/casic-iot-service/pom.xml +++ b/casic-iot-service/pom.xml @@ -20,6 +20,7 @@ ${iot.version} + com.casic casic-iot-model diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java index 75aea72..055445a 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java @@ -15,14 +15,17 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.device.DeviceListRequest; import com.casic.missiles.dto.device.DeviceListVO; +import com.casic.missiles.dto.device.ImportDeviceDTO; import com.casic.missiles.dto.group.DeviceGroupListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.DictCodeEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.DeviceGroupMapper; import com.casic.missiles.mapper.ProductInfoMapper; import com.casic.missiles.mapper.DeviceMapper; import com.casic.missiles.mapper.common.SysCommonMapper; import com.casic.missiles.model.Device; +import com.casic.missiles.model.DeviceGroup; import com.casic.missiles.model.ProductInfo; import com.casic.missiles.service.IDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -34,9 +37,7 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,6 +53,7 @@ public class DeviceServiceImpl extends ServiceImpl implements IDeviceService, DictCodeEnum { private final ProductInfoMapper productInfoMapper; + private final DeviceGroupMapper deviceGroupMapper; private final SysCommonMapper sysCommonMapper; @Override @@ -113,10 +115,10 @@ public void importiFile(MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); //保证登录账号、部门id正确 - List list = EasyExcel.read(inputStream) + List list = EasyExcel.read(inputStream) //注册自定义监听器,字段校验可以在监听器内实现 .registerReadListener(new CommonExcelListener<>()) - .head(DeviceGroupListVO.class) //对应导入的实体类 + .head(ImportDeviceDTO.class) //对应导入的实体类 .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 @@ -124,11 +126,22 @@ saveImport(list); } - private void validImport(List list) { + private void validImport(List list) { + //去重 + list = list.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportDeviceDTO::getDevcode))), ArrayList::new)); List productInfoList = productInfoMapper.selectList(null); Map productInfoMap = productInfoList.stream().collect( Collectors.toMap(ProductInfo::getName, e -> e) ); + List deviceList = this.baseMapper.selectList(null); + Map devcodeMap = deviceList.stream().collect( + Collectors.toMap(Device::getDevcode, e -> e) + ); + List deviceGroupList = deviceGroupMapper.selectList(null); + Map deviceGroupInfoMap = deviceGroupList.stream().collect( + Collectors.toMap(DeviceGroup::getGroupName, e -> e) + ); List> deviceMapList = sysCommonMapper.getDictMapByCode(DEVICE_TYPE); Map deviceMap = deviceMapList.stream().collect(Collectors.toMap(e -> e.get("name"), e -> e.get("code"))); List> modelList = sysCommonMapper.getDictMapByCode(MODEL); @@ -136,36 +149,43 @@ //设备编号后台生成 String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { - DeviceListVO importDTO = list.get(i); + ImportDeviceDTO importDTO = list.get(i); if (StrUtil.isBlank(importDTO.getDevcode())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号不能为空")); + } else if (devcodeMap.containsKey(importDTO.getDevcode())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号在系统已存在")); } - if (ObjectUtil.isEmpty(importDTO.getProductId()) || !productInfoMap.containsKey(importDTO.getProductName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或不正确")); + if (ObjectUtil.isEmpty(importDTO.getProductName()) || !productInfoMap.containsKey(importDTO.getProductName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或系统不存在")); } else { importDTO.setProductId(productInfoMap.get(importDTO.getProductName()).getId()); } + if (ObjectUtil.isEmpty(importDTO.getGroupName()) || !deviceGroupInfoMap.containsKey(importDTO.getGroupName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "分组名称不能为空或系统不存在")); + } else { + importDTO.setGroupId(deviceGroupInfoMap.get(importDTO.getGroupName()).getId()); + } if (ObjectUtil.isEmpty(importDTO.getModelName()) || !modelMap.containsKey(importDTO.getModelName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或系统不存在")); } else { importDTO.setModel(Integer.valueOf(modelMap.get(importDTO.getModelName()))); } if (ObjectUtil.isEmpty(importDTO.getDeviceTypeName()) || !deviceMap.containsKey(importDTO.getDeviceTypeName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或系统不存在")); } else { importDTO.setDeviceType(Integer.valueOf(deviceMap.get(importDTO.getDeviceTypeName()))); } } } - private void saveImport(List list) { + private void saveImport(List list) { AuthUser authUser = ShiroKit.getUser(); String name = authUser.getName(); List deviceList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { - DeviceListVO deviceListDTO = list.get(i); + ImportDeviceDTO deviceListDTO = list.get(i); Device device = new Device(); - BeanUtil.copyProperties(device, deviceListDTO); + BeanUtil.copyProperties(deviceListDTO, device); device.setCreateUserName(name); deviceList.add(device); } diff --git a/casic-iot-web/pom.xml b/casic-iot-web/pom.xml index 133ecf8..c722e4b 100644 --- a/casic-iot-web/pom.xml +++ b/casic-iot-web/pom.xml @@ -27,47 +27,6 @@ sensorhub-core ${iot.version} - - - - com.casic - casic-core - ${core.version} - - - - com.casic - casic-admin-core - ${admin.version} - - - io.springfox - springfox-swagger-ui - - - - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-file-support - ${admin.version} - - - com.casic - casic-export-support - ${extension.version} - - - com.casic - casic-file - ${admin.version} - - diff --git a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java index e68c8bc..6ac5303 100644 --- a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java +++ b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java @@ -93,5 +93,4 @@ return ReturnUtil.success(deviceGroupService.deviceGroupDetail(idDTO.getId())); } - } diff --git a/pom.xml b/pom.xml index bc216f3..73addfd 100644 --- a/pom.xml +++ b/pom.xml @@ -60,35 +60,11 @@ com.alibaba - druid-spring-boot-starter - 1.1.23 - - - - - - - - - - mysql - mysql-connector-java - ${mysql.driver.version} - - - - com.alibaba fastjson ${fastjson.version} - org.apache.commons - commons-lang3 - 3.1 - - - cn.hutool hutool-core 5.7.2 @@ -100,7 +76,6 @@ 1.18.20 - diff --git a/sensorhub-core/pom.xml b/sensorhub-core/pom.xml index 39bc3b2..af9af9b 100644 --- a/sensorhub-core/pom.xml +++ b/sensorhub-core/pom.xml @@ -59,6 +59,12 @@ com.casic casic-iot-service ${iot.version} + + + com.google.guava + guava + + diff --git a/casic-iot-common/pom.xml b/casic-iot-common/pom.xml index 75e6e82..8cc8bc3 100644 --- a/casic-iot-common/pom.xml +++ b/casic-iot-common/pom.xml @@ -32,17 +32,6 @@ - com.casic - casic-core - ${core.version} - - - com.casic - casic-admin-support - ${admin.version} - - - com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} @@ -70,24 +59,6 @@ 2.4.5 - - - cn.afterturn - easypoi-base - 4.4.0 - - - cn.afterturn - easypoi-web - 4.4.0 - - - - cn.afterturn - easypoi-annotation - 4.4.0 - - diff --git a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml index 0b308f2..f6cf453 100644 --- a/casic-iot-dao/src/resource/mapper/DeviceMapper.xml +++ b/casic-iot-dao/src/resource/mapper/DeviceMapper.xml @@ -25,8 +25,8 @@ diff --git a/casic-iot-model/pom.xml b/casic-iot-model/pom.xml index 817ff19..51d28c8 100644 --- a/casic-iot-model/pom.xml +++ b/casic-iot-model/pom.xml @@ -35,6 +35,13 @@ + + + com.casic + casic-area-starter + ${admin.version} + + com.casic casic-admin-support @@ -51,14 +58,10 @@ ${extension.version} - com.casic - casic-file - ${admin.version} - - javax.validation validation-api + \ No newline at end of file diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java index 4bd575d..8bf485f 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/DeviceListVO.java @@ -28,6 +28,9 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称") + private String deviceName; + @ExcelProperty(value = "设备最新数据", order = 2) @ApiModelProperty(value = "设备最新数据", dataType = "String") @TableField(exist = false) @@ -43,7 +46,7 @@ @TableField(exist = false) private String deviceTypeName; - @ApiModelProperty(value = "型号", dataType = "String") + @ApiModelProperty(value = "设备型号", dataType = "Integer") @DictCodeField(message = "型号类型不合法", cacheName = MODEL) @TableField("model") private Integer model; @@ -53,6 +56,7 @@ @TableField(exist = false) private String modelName; + @ExcelProperty(value = "IMEI", order = 4) @ApiModelProperty(value = "IMEI", dataType = "String") @TableField(exist = false) @@ -87,7 +91,7 @@ @ExcelProperty(value = "最新上线时间", order = 7) @ApiModelProperty(value = "最新上线时间", dataType = "String") @TableField(exist = false) - private String uptime; + private String logtime; @ExcelProperty(value = "创建时间", order = 7) @ApiModelProperty(value = "创建时间", dataType = "String") diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java index 8ae2684..a64837d 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/device/ImportDeviceDTO.java @@ -25,22 +25,25 @@ @TableField("devcode") private String devcode; + @ExcelProperty(value = "设备名称", order = 2) + @TableField("name") + private String name; @TableField("device_type") - private String deviceType; + private Integer deviceType; - @ExcelProperty(value = "设备类型", order = 2) + @ExcelProperty(value = "设备类型", order = 3) @TableField(exist = false) private String deviceTypeName; @TableField("model") - private String model; + private Integer model; - @ExcelProperty(value = "设备型号", order = 3) + @ExcelProperty(value = "设备型号", order = 4) @TableField(exist = false) private String modelName; - @ExcelProperty(value = "IMEI", order = 4) + @ExcelProperty(value = "IMEI", order = 5) @TableField(exist = false) private String imei; @@ -48,10 +51,19 @@ private Long productId; - @ExcelProperty(value = "所属产品", order = 5) + @ExcelProperty(value = "所属产品", order = 6) private String productName; - @ExcelProperty(value = "创建时间", order = 7) + + @TableField(exist = false) + private Long groupId; + + @ExcelProperty(value = "分组名称", order = 7) + @ApiModelProperty(value = "分组名称", dataType = "String") + @TableField(exist = false) + private String groupName; + + @ExcelProperty(value = "创建时间", order = 8) @ApiModelProperty(value = "创建时间", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java index 2dbe415..4174048 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/dto/group/DeviceGroupListRequest.java @@ -3,7 +3,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import springfox.documentation.schema.Model; import java.util.List; diff --git a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java index 1b44a3d..704e1b5 100644 --- a/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java +++ b/casic-iot-model/src/main/java/com/casic/missiles/model/Device.java @@ -97,7 +97,7 @@ * 设备在线状态 0在线/1离线 */ @TableField("status") - @ApiModelProperty(value = "设备在线状态 0在线/1离线", dataType = "Integer") + @ApiModelProperty(value = "设备在线状态 1在线/0离线", dataType = "Integer") private Integer status; /** diff --git a/casic-iot-service/pom.xml b/casic-iot-service/pom.xml index 61dcbed..0418722 100644 --- a/casic-iot-service/pom.xml +++ b/casic-iot-service/pom.xml @@ -20,6 +20,7 @@ ${iot.version} + com.casic casic-iot-model diff --git a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java index 75aea72..055445a 100644 --- a/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java +++ b/casic-iot-service/src/main/java/com/casic/missiles/service/impl/DeviceServiceImpl.java @@ -15,14 +15,17 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.device.DeviceListRequest; import com.casic.missiles.dto.device.DeviceListVO; +import com.casic.missiles.dto.device.ImportDeviceDTO; import com.casic.missiles.dto.group.DeviceGroupListVO; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.DictCodeEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.DeviceGroupMapper; import com.casic.missiles.mapper.ProductInfoMapper; import com.casic.missiles.mapper.DeviceMapper; import com.casic.missiles.mapper.common.SysCommonMapper; import com.casic.missiles.model.Device; +import com.casic.missiles.model.DeviceGroup; import com.casic.missiles.model.ProductInfo; import com.casic.missiles.service.IDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -34,9 +37,7 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -52,6 +53,7 @@ public class DeviceServiceImpl extends ServiceImpl implements IDeviceService, DictCodeEnum { private final ProductInfoMapper productInfoMapper; + private final DeviceGroupMapper deviceGroupMapper; private final SysCommonMapper sysCommonMapper; @Override @@ -113,10 +115,10 @@ public void importiFile(MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); //保证登录账号、部门id正确 - List list = EasyExcel.read(inputStream) + List list = EasyExcel.read(inputStream) //注册自定义监听器,字段校验可以在监听器内实现 .registerReadListener(new CommonExcelListener<>()) - .head(DeviceGroupListVO.class) //对应导入的实体类 + .head(ImportDeviceDTO.class) //对应导入的实体类 .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 @@ -124,11 +126,22 @@ saveImport(list); } - private void validImport(List list) { + private void validImport(List list) { + //去重 + list = list.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportDeviceDTO::getDevcode))), ArrayList::new)); List productInfoList = productInfoMapper.selectList(null); Map productInfoMap = productInfoList.stream().collect( Collectors.toMap(ProductInfo::getName, e -> e) ); + List deviceList = this.baseMapper.selectList(null); + Map devcodeMap = deviceList.stream().collect( + Collectors.toMap(Device::getDevcode, e -> e) + ); + List deviceGroupList = deviceGroupMapper.selectList(null); + Map deviceGroupInfoMap = deviceGroupList.stream().collect( + Collectors.toMap(DeviceGroup::getGroupName, e -> e) + ); List> deviceMapList = sysCommonMapper.getDictMapByCode(DEVICE_TYPE); Map deviceMap = deviceMapList.stream().collect(Collectors.toMap(e -> e.get("name"), e -> e.get("code"))); List> modelList = sysCommonMapper.getDictMapByCode(MODEL); @@ -136,36 +149,43 @@ //设备编号后台生成 String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { - DeviceListVO importDTO = list.get(i); + ImportDeviceDTO importDTO = list.get(i); if (StrUtil.isBlank(importDTO.getDevcode())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号不能为空")); + } else if (devcodeMap.containsKey(importDTO.getDevcode())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备编号在系统已存在")); } - if (ObjectUtil.isEmpty(importDTO.getProductId()) || !productInfoMap.containsKey(importDTO.getProductName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或不正确")); + if (ObjectUtil.isEmpty(importDTO.getProductName()) || !productInfoMap.containsKey(importDTO.getProductName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "产品名称不能为空或系统不存在")); } else { importDTO.setProductId(productInfoMap.get(importDTO.getProductName()).getId()); } + if (ObjectUtil.isEmpty(importDTO.getGroupName()) || !deviceGroupInfoMap.containsKey(importDTO.getGroupName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "分组名称不能为空或系统不存在")); + } else { + importDTO.setGroupId(deviceGroupInfoMap.get(importDTO.getGroupName()).getId()); + } if (ObjectUtil.isEmpty(importDTO.getModelName()) || !modelMap.containsKey(importDTO.getModelName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备型号不能为空或系统不存在")); } else { importDTO.setModel(Integer.valueOf(modelMap.get(importDTO.getModelName()))); } if (ObjectUtil.isEmpty(importDTO.getDeviceTypeName()) || !deviceMap.containsKey(importDTO.getDeviceTypeName())) { - throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或不正确")); + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空或系统不存在")); } else { importDTO.setDeviceType(Integer.valueOf(deviceMap.get(importDTO.getDeviceTypeName()))); } } } - private void saveImport(List list) { + private void saveImport(List list) { AuthUser authUser = ShiroKit.getUser(); String name = authUser.getName(); List deviceList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { - DeviceListVO deviceListDTO = list.get(i); + ImportDeviceDTO deviceListDTO = list.get(i); Device device = new Device(); - BeanUtil.copyProperties(device, deviceListDTO); + BeanUtil.copyProperties(deviceListDTO, device); device.setCreateUserName(name); deviceList.add(device); } diff --git a/casic-iot-web/pom.xml b/casic-iot-web/pom.xml index 133ecf8..c722e4b 100644 --- a/casic-iot-web/pom.xml +++ b/casic-iot-web/pom.xml @@ -27,47 +27,6 @@ sensorhub-core ${iot.version} - - - - com.casic - casic-core - ${core.version} - - - - com.casic - casic-admin-core - ${admin.version} - - - io.springfox - springfox-swagger-ui - - - - - - com.casic - casic-admin-support - ${admin.version} - - - com.casic - casic-file-support - ${admin.version} - - - com.casic - casic-export-support - ${extension.version} - - - com.casic - casic-file - ${admin.version} - - diff --git a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java index e68c8bc..6ac5303 100644 --- a/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java +++ b/casic-iot-web/src/main/java/com/casic/missiles/controller/DeviceGroupController.java @@ -93,5 +93,4 @@ return ReturnUtil.success(deviceGroupService.deviceGroupDetail(idDTO.getId())); } - } diff --git a/pom.xml b/pom.xml index bc216f3..73addfd 100644 --- a/pom.xml +++ b/pom.xml @@ -60,35 +60,11 @@ com.alibaba - druid-spring-boot-starter - 1.1.23 - - - - - - - - - - mysql - mysql-connector-java - ${mysql.driver.version} - - - - com.alibaba fastjson ${fastjson.version} - org.apache.commons - commons-lang3 - 3.1 - - - cn.hutool hutool-core 5.7.2 @@ -100,7 +76,6 @@ 1.18.20 - diff --git a/sensorhub-core/pom.xml b/sensorhub-core/pom.xml index 39bc3b2..af9af9b 100644 --- a/sensorhub-core/pom.xml +++ b/sensorhub-core/pom.xml @@ -59,6 +59,12 @@ com.casic casic-iot-service ${iot.version} + + + com.google.guava + guava + + diff --git a/sensorhub-support/pom.xml b/sensorhub-support/pom.xml index ff24f09..c81f684 100644 --- a/sensorhub-support/pom.xml +++ b/sensorhub-support/pom.xml @@ -20,6 +20,18 @@ + mysql + mysql-connector-java + ${mysql.driver.version} + + + + org.apache.commons + commons-lang3 + 3.1 + + + org.springframework.boot spring-boot-starter-test ${boot.version}