Browse Source

改动

master
吴远 2 months ago
parent
commit
d60ea79e27
  1. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceMapper.java
  2. 21
      dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceProMapper.java
  3. 16
      dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceProUserMapper.java
  4. 7
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java
  5. 47
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceProDTO.java
  6. 3
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java
  7. 51
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProEntity.java
  8. 41
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProUserEntity.java
  9. 37
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java
  10. 28
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProUserService.java
  11. 131
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java
  12. 10
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java
  13. 8
      dk-modules/sample/src/main/resources/mapper/DeviceProUserMapper.xml
  14. 11
      dk-modules/sample/src/main/resources/mapper/IDeviceMapper.xml
  15. 56
      dk-modules/sample/src/main/resources/mapper/IDeviceProMapper.xml

2
dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceMapper.java

@ -1,6 +1,7 @@
package org.dromara.sample.manage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.sample.manage.model.entity.DeviceEntity;
@ -11,5 +12,6 @@ import org.dromara.sample.manage.model.entity.DeviceEntity;
* @version 0.1
*/
public interface IDeviceMapper extends BaseMapper<DeviceEntity> {
int updatePor(@Param("id") Integer id, @Param("proId") Integer proId);
}

21
dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceProMapper.java

@ -0,0 +1,21 @@
package org.dromara.sample.manage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.sample.manage.model.dto.DeviceProDTO;
import org.dromara.sample.manage.model.dto.DeviceQrtzDTO;
import org.dromara.sample.manage.model.entity.DeviceProEntity;
import java.util.List;
/**
* @auther yq
* @data 2025/3/20
*/
public interface IDeviceProMapper extends BaseMapper<DeviceProEntity> {
List<DeviceProEntity> listDeviceProEntityMap(Page page, @Param("condition") DeviceProDTO deviceProDTO);
}

16
dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/IDeviceProUserMapper.java

@ -0,0 +1,16 @@
package org.dromara.sample.manage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.dromara.sample.manage.model.entity.DeviceProEntity;
import org.dromara.sample.manage.model.entity.DeviceProUserEntity;
/**
* @auther yq
* @data 2025/3/20
*/
public interface IDeviceProUserMapper extends BaseMapper<DeviceProUserEntity> {
}

7
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java

@ -6,6 +6,7 @@ import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceSubTypeEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceTypeEnum;
import org.dromara.common.sdk.cloudapi.tsa.DeviceIconUrl;
import org.dromara.sample.manage.model.entity.DeviceProEntity;
import org.dromara.sample.manage.model.enums.DeviceFirmwareStatusEnum;
import lombok.AllArgsConstructor;
@ -100,6 +101,12 @@ public class DeviceDTO {
@Schema(description = "租户ID")
private String tenantId;
@Schema(description = "项目ID")
private String proId;
@Schema(description = "项目ID")
private DeviceProEntity deviceProEntity;
private String videoId;
private Float latitude;

47
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceProDTO.java

@ -0,0 +1,47 @@
package org.dromara.sample.manage.model.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity;
import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @auther yq
* @data 2025/3/20
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DeviceProDTO {
/**
机场sn
*/
private String deviceSn;
/**
机场名称
*/
private String deviceName;
/**
机场昵称
*/
private String nickname;
/**
分配人员姓名
*/
private String realname;
/**
分配人员
*/
private Integer userId;
}

3
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java

@ -89,4 +89,7 @@ public class DeviceEntity implements Serializable {
@TableField(value = "login_time")
private LocalDateTime loginTime;
@TableField(value = "pro_id")
private Integer proId;
}

51
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProEntity.java

@ -0,0 +1,51 @@
package org.dromara.sample.manage.model.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* The entity class of the device
*
* @author sean.zhou
* @version 0.1
* @date 2021/11/10
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "manage_device_pro")
public class DeviceProEntity extends BaseEntity implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField(value = "pro_name")
private String proName;
@TableField(value = "bind_code")
private String bindCode;
@TableField(value = "bind_type")
private Integer bindType;
@TableField(value = "workspace_id")
private Integer workspaceId;
@TableField(exist = false)
private List<DeviceProUserEntity> deviceProUserEntityList = new ArrayList<>();
@TableField(exist = false)
private List<DeviceEntity> deviceEntityList = new ArrayList<>();
}

41
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProUserEntity.java

@ -0,0 +1,41 @@
package org.dromara.sample.manage.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serializable;
/**
* The entity class of the device
*
* @author sean.zhou
* @version 0.1
* @date 2021/11/10
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "manage_device_pro_user")
public class DeviceProUserEntity extends BaseEntity implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField(value = "pro_id")
private Integer proId;
@TableField(value = "user_id")
private String userId;
@TableField(value = "realname")
private String realname;
}

37
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java

@ -0,0 +1,37 @@
package org.dromara.sample.manage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.JsonNode;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.sdk.cloudapi.device.ControlSourceEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceOsdHost;
import org.dromara.common.sdk.cloudapi.device.DockModeCodeEnum;
import org.dromara.common.sdk.cloudapi.device.DroneModeCodeEnum;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.common.sdk.common.PaginationData;
import org.dromara.common.sdk.config.version.GatewayManager;
import org.dromara.common.websocket.dto.BizCodeEnum;
import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
import org.dromara.sample.manage.model.dto.DeviceProDTO;
import org.dromara.sample.manage.model.dto.TopologyDeviceDTO;
import org.dromara.sample.manage.model.entity.DeviceProEntity;
import org.dromara.sample.manage.model.param.DeviceQueryParam;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
/**
* @author sean.zhou
* @date 2021/11/10
* @version 0.1
*/
public interface IDeviceProService {
List<DeviceProEntity> listDeviceProEntityMap(Page page, DeviceProDTO deviceProDTO);
Boolean saveAndUpdate(DeviceProEntity deviceProEntity);
Boolean deleteIds(Collection<Long> ids);
}

28
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProUserService.java

@ -0,0 +1,28 @@
package org.dromara.sample.manage.service;
import com.fasterxml.jackson.databind.JsonNode;
import org.dromara.common.sdk.cloudapi.device.ControlSourceEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceOsdHost;
import org.dromara.common.sdk.cloudapi.device.DockModeCodeEnum;
import org.dromara.common.sdk.cloudapi.device.DroneModeCodeEnum;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.common.sdk.common.PaginationData;
import org.dromara.common.sdk.config.version.GatewayManager;
import org.dromara.common.websocket.dto.BizCodeEnum;
import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
import org.dromara.sample.manage.model.dto.TopologyDeviceDTO;
import org.dromara.sample.manage.model.param.DeviceQueryParam;
import java.util.List;
import java.util.Optional;
/**
* @author sean.zhou
* @date 2021/11/10
* @version 0.1
*/
public interface IDeviceProUserService {
}

131
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java

@ -0,0 +1,131 @@
package org.dromara.sample.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sdk.cloudapi.device.*;
import org.dromara.common.sdk.cloudapi.firmware.*;
import org.dromara.common.sdk.cloudapi.firmware.api.AbstractFirmwareService;
import org.dromara.common.sdk.cloudapi.property.api.AbstractPropertyService;
import org.dromara.common.sdk.cloudapi.tsa.DeviceIconUrl;
import org.dromara.common.sdk.cloudapi.tsa.TopologyDeviceModel;
import org.dromara.common.sdk.common.*;
import org.dromara.common.sdk.config.version.GatewayManager;
import org.dromara.common.sdk.exception.CloudSDKException;
import org.dromara.common.sdk.mqtt.IMqttTopicService;
import org.dromara.common.sdk.mqtt.MqttGatewayPublish;
import org.dromara.common.sdk.mqtt.events.EventsSubscribe;
import org.dromara.common.sdk.mqtt.osd.OsdSubscribe;
import org.dromara.common.sdk.mqtt.property.PropertySetReplyResultEnum;
import org.dromara.common.sdk.mqtt.property.PropertySetSubscribe;
import org.dromara.common.sdk.mqtt.requests.RequestsSubscribe;
import org.dromara.common.sdk.mqtt.services.ServicesReplyData;
import org.dromara.common.sdk.mqtt.services.ServicesSubscribe;
import org.dromara.common.sdk.mqtt.services.TopicServicesResponse;
import org.dromara.common.sdk.mqtt.state.StateSubscribe;
import org.dromara.common.sdk.mqtt.status.StatusSubscribe;
import org.dromara.common.websocket.dto.BizCodeEnum;
import org.dromara.sample.common.error.CommonErrorEnum;
import org.dromara.sample.component.mqtt.model.EventsReceiver;
import org.dromara.sample.control.model.enums.DroneAuthorityEnum;
import org.dromara.sample.manage.mapper.IDeviceMapper;
import org.dromara.sample.manage.mapper.IDeviceProMapper;
import org.dromara.sample.manage.mapper.IDeviceProUserMapper;
import org.dromara.sample.manage.mapper.IDeviceQrtzMapper;
import org.dromara.sample.manage.model.dto.*;
import org.dromara.sample.manage.model.entity.DeviceEntity;
import org.dromara.sample.manage.model.entity.DeviceProEntity;
import org.dromara.sample.manage.model.entity.DeviceProUserEntity;
import org.dromara.sample.manage.model.entity.DeviceQrtzDateEntity;
import org.dromara.sample.manage.model.enums.DeviceFirmwareStatusEnum;
import org.dromara.sample.manage.model.enums.PropertySetFieldEnum;
import org.dromara.sample.manage.model.enums.UserTypeEnum;
import org.dromara.sample.manage.model.param.DeviceQueryParam;
import org.dromara.sample.manage.model.receiver.BasicDeviceProperty;
import org.dromara.sample.manage.service.*;
import org.dromara.sample.websocket.service.IWebSocketMessageService;
import org.dromara.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
*
* @author sean.zhou
* @version 0.1
* @date 2021/11/10
*/
@Service
@Slf4j
@Transactional
public class DeviceProServiceImpl implements IDeviceProService {
@Autowired
private IDeviceProMapper deviceProMapper;
@Autowired
private IDeviceMapper deviceMapper;
@Autowired
private IDeviceProUserMapper deviceProUserMapper;
@Override
public List<DeviceProEntity> listDeviceProEntityMap(Page page, DeviceProDTO deviceProDTO) {
return deviceProMapper.listDeviceProEntityMap(page,deviceProDTO);
}
@Override
public Boolean saveAndUpdate(DeviceProEntity entity) {
boolean flag = true;
//项目信息
if(entity.getId() != null){
flag = deviceProMapper.updateById(entity) > 0 ;
}else {
LoginUser loginUser = LoginHelper.getLoginUser();
entity.setCreateBy(loginUser.getUserId());
entity.setCreateTime(new Date());
entity.setCreateDept(loginUser.getDeptId());
flag = deviceProMapper.insert(entity) > 0;
}
//设备项目绑定
if(entity.getDeviceEntityList().size() >= 0 && flag == true){
for (DeviceEntity deviceEntity : deviceMapper.selectList(new QueryWrapper<DeviceEntity>().eq("pro_id", entity.getId()))) {
deviceMapper.updatePor(deviceEntity.getId(),null);
}
entity.getDeviceEntityList().stream().forEach(itme->{
itme.setProId(entity.getId());
});
flag = deviceMapper.updateById(entity.getDeviceEntityList(),100).size() > 0;;
}
//设备项目绑定
if(entity.getDeviceProUserEntityList().size() >= 0 && flag == true){
deviceProUserMapper.delete(new QueryWrapper<DeviceProUserEntity>().eq("pro_id",entity.getId()));
entity.getDeviceProUserEntityList().stream().forEach(itme->{
itme.setProId(entity.getId());
});
flag = deviceProUserMapper.insert(entity.getDeviceProUserEntityList(),100).size() > 0;
}
return flag;
}
@Override
public Boolean deleteIds(Collection<Long> ids) {
for (Long proId : ids) {
deviceProMapper.delete(new QueryWrapper<DeviceProEntity>().eq("id",proId));
}
return deviceProMapper.deleteBatchIds(ids)>0;
}
}

10
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java

@ -1,6 +1,7 @@
package org.dromara.sample.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.sdk.cloudapi.device.*;
@ -29,8 +30,10 @@ import org.dromara.sample.common.error.CommonErrorEnum;
import org.dromara.sample.component.mqtt.model.EventsReceiver;
import org.dromara.sample.control.model.enums.DroneAuthorityEnum;
import org.dromara.sample.manage.mapper.IDeviceMapper;
import org.dromara.sample.manage.mapper.IDeviceProMapper;
import org.dromara.sample.manage.model.dto.*;
import org.dromara.sample.manage.model.entity.DeviceEntity;
import org.dromara.sample.manage.model.entity.DeviceProEntity;
import org.dromara.sample.manage.model.enums.DeviceFirmwareStatusEnum;
import org.dromara.sample.manage.model.enums.PropertySetFieldEnum;
import org.dromara.sample.manage.model.enums.UserTypeEnum;
@ -125,6 +128,9 @@ public class DeviceServiceImpl implements IDeviceService {
@Autowired
private IWebSocketMessageService webSocketMessageService;
@Autowired
private IDeviceProMapper deviceProMapper;
@Override
public void subDeviceOffline(String deviceSn) {
// If no information about this device exists in the cache, the drone is considered to be offline.
@ -507,6 +513,10 @@ public class DeviceServiceImpl implements IDeviceService {
device.setChildren(child);
});
}
if(device.getProId() != null){
DeviceProEntity deviceProEntitie = deviceProMapper.selectOne(new LambdaQueryWrapper<DeviceProEntity>().eq(DeviceProEntity::getId, device.getProId()));
device.setDeviceProEntity(deviceProEntitie);
}
})
.collect(Collectors.toList());
return new PaginationData<DeviceDTO>(devicesList, new Pagination(pagination.getCurrent(), pagination.getSize(), pagination.getTotal()));

8
dk-modules/sample/src/main/resources/mapper/DeviceProUserMapper.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.sample.manage.mapper.IDeviceProUserMapper">
</mapper>

11
dk-modules/sample/src/main/resources/mapper/IDeviceMapper.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.sample.manage.mapper.IDeviceMapper">
<update id="updatePor">
update manage_device set pro_id =#{proId} where id=#{id}
</update>
</mapper>

56
dk-modules/sample/src/main/resources/mapper/IDeviceProMapper.xml

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.sample.manage.mapper.IDeviceProMapper">
<resultMap id="listDeviceProEntityMap" type="org.dromara.sample.manage.model.entity.DeviceProEntity">
<result column="id" property="id" jdbcType="VARCHAR"/>
<result column="pro_name" property="proName" jdbcType="VARCHAR"/>
<result column="bind_code" property="bindCode" jdbcType="VARCHAR"/>
<result column="bind_type" property="bindType" jdbcType="VARCHAR"/>
<result column="workspace_id" property="workspaceId" jdbcType="VARCHAR"/>
<collection property="deviceProUserEntityList" ofType="org.dromara.sample.manage.model.entity.DeviceProUserEntity">
<result column="pro_user_id" property="id"/>
<result column="pro_id" property="proId"/>
<result column="user_id" property="userId"/>
<result column="realname" property="realname"/>
</collection>
<collection property="deviceEntityList" ofType="org.dromara.sample.manage.model.entity.DeviceEntity">
<result column="device_id" property="id"/>
<result column="device_sn" property="deviceSn"/>
<result column="device_name" property="deviceName"/>
<result column="device_type" property="deviceType"/>
<result column="sub_type" property="subType"/>
<result column="domain" property="domain"/>
<result column="nickname" property="nickname"/>
<result column="child_sn" property="childSn"/>
</collection>
</resultMap>
<select id="listDeviceProEntityMap" resultMap="listDeviceProEntityMap">
SELECT
dp.*,dpu.pro_user_id,dpu.pro_id,dpu.user_id,dpu.realname,d.device_id,d.device_sn,d.device_name,d.device_type,d.sub_type,d.domain,d.nickname,d.child_sn
FROM
manage_device_pro dp
LEFT JOIN ON manage_device d ON dp.id = dp.pro_id
LEFT JOIN ON manage_device_pro_user dpu ON dp.id = dpu.pro_id
<where>
dp.id = pro_id
</where>
<if test="condition.deviceSn != null and condition.deviceSn != ''">
or device_sn like concat(concat('%',#{condition.deviceSn}),'%')
</if>
<if test="condition.deviceName != null and condition.deviceName != ''">
or device_name like concat(concat('%',#{condition.deviceName}),'%')
</if>
<if test="condition.nickname != null and condition.nickname != ''">
or nickname like concat(concat('%',#{condition.nickname}),'%')
</if>
<if test="condition.realname != null and condition.realname != ''">
or realname like concat(concat('%',#{condition.realname}),'%')
</if>
<if test="condition.userId != null and condition.userId != ''">
or user_id = #{condition.userId}
</if>
)
</select>
</mapper>
Loading…
Cancel
Save