Переглянути джерело

1、创建门禁系统模块;2、添加新增或删除门禁设备同步iot设备信息表数据的逻辑;

james 4 місяців тому
батько
коміт
90413f7c5a
21 змінених файлів з 257 додано та 44 видалено
  1. 3 0
      pom.xml
  2. 32 0
      service-eg/service-eg-biz/src/main/java/com/usky/eg/domain/MeetingFaceDevice.java
  3. 39 0
      service-eg/service-eg-biz/src/main/java/com/usky/eg/service/vo/EgDeviceRequestVO.java
  4. 42 0
      service-eg/service-eg-biz/src/main/java/com/usky/eg/service/vo/EgRecordRequestVO.java
  5. 8 0
      service-iot/service-iot-api/src/main/java/com/usky/iot/RemoteIotTaskService.java
  6. 11 0
      service-iot/service-iot-api/src/main/java/com/usky/iot/factory/RemoteIotTaskFactory.java
  7. 30 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/api/ServiceIotTaskApi.java
  8. 2 2
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DeviceHttpController.java
  9. 1 1
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDeviceInfoService.java
  10. 10 8
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java
  11. 5 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/DmpDeviceInfoRequest.java
  12. 5 0
      service-meeting/service-meeting-biz/pom.xml
  13. 10 3
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingFaceController.java
  14. 17 17
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/EgDevice.java
  15. 5 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingDevice.java
  16. 2 2
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/mapper/EgDeviceMapper.java
  17. 2 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/mapper/MeetingFaceMapper.java
  18. 21 5
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingDeviceServiceImpl.java
  19. 5 0
      service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingDeviceRequestVO.java
  20. 6 6
      service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/EgDeviceMapper.xml
  21. 1 0
      service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/MeetingDeviceMapper.xml

+ 3 - 0
pom.xml

@@ -84,6 +84,9 @@
 
     <module>service-job</module>
 
+
+    <module>service-eg</module>
+
   </modules>
           
   

+ 32 - 0
service-eg/service-eg-biz/src/main/java/com/usky/eg/domain/MeetingFaceDevice.java

@@ -0,0 +1,32 @@
+package com.usky.eg.domain;
+
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 人脸设备关联表
+ * </p>
+ *
+ * @author zyj
+ * @since 2024-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class MeetingFaceDevice implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 人脸主键ID
+     */
+    private Integer faceId;
+
+    /**
+     * 设备主键ID
+     */
+    private Integer deviceId;
+
+
+}

+ 39 - 0
service-eg/service-eg-biz/src/main/java/com/usky/eg/service/vo/EgDeviceRequestVO.java

@@ -0,0 +1,39 @@
+package com.usky.eg.service.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class EgDeviceRequestVO implements Serializable {
+
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 安装位置
+     */
+    private String installAddress;
+
+    /**
+     * 业务状态;1:未激活,2:已激活,3:禁用
+     */
+    private Integer serviceStatus;
+
+    /**
+     * 表主键Id
+     */
+    private Integer id;
+
+}

+ 42 - 0
service-eg/service-eg-biz/src/main/java/com/usky/eg/service/vo/EgRecordRequestVO.java

@@ -0,0 +1,42 @@
+package com.usky.eg.service.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class EgRecordRequestVO implements Serializable {
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 用户姓名
+     */
+    private String userName;
+
+    /**
+     * 通行方式(1、人脸 2、刷卡)
+     */
+    private Integer passType;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 开始时间
+     */
+    private String startTime;
+
+    /**
+     * 结束时间
+     */
+    private String endTime;
+}

+ 8 - 0
service-iot/service-iot-api/src/main/java/com/usky/iot/RemoteIotTaskService.java

@@ -3,8 +3,10 @@ package com.usky.iot;
 
 import com.usky.iot.factory.RemoteIotTaskFactory;
 import com.usky.iot.factory.RemotePmFactory;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
 @FeignClient(contextId = "RemoteIotTaskService", value = "service-iot" , fallbackFactory = RemoteIotTaskFactory.class)
 public interface RemoteIotTaskService {
@@ -17,4 +19,10 @@ public interface RemoteIotTaskService {
 
     @GetMapping("/customInfoStatus")
     void customInfoStatus();
+
+    @GetMapping("/addDeviceInfo")
+    void addDeviceInfo(@RequestParam("productCode") String productCode, @RequestParam(value = "deviceUuid") String deviceUuid, @RequestParam(value = "deviceId") String deviceId, @RequestParam(value = "deviceName") String deviceName, @RequestParam(value = "installAddress") String installAddress, @RequestParam(value = "serviceStatus") Integer serviceStatus);
+
+    @GetMapping("/deleteDeviceInfo")
+    void deleteDeviceInfo(@RequestParam(value = "deviceUuid") String deviceUuid);
 }

+ 11 - 0
service-iot/service-iot-api/src/main/java/com/usky/iot/factory/RemoteIotTaskFactory.java

@@ -3,6 +3,7 @@ package com.usky.iot.factory;
 import com.usky.common.core.exception.FeignBadRequestException;
 import com.usky.iot.RemoteIotTaskService;
 import com.usky.iot.RemotePmService;
+import org.apache.ibatis.annotations.Param;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -40,6 +41,16 @@ public class RemoteIotTaskFactory implements FallbackFactory<RemoteIotTaskServic
                 throw new FeignBadRequestException(500,"定时同步客户信息状态异常"+throwable.getMessage());
             }
 
+            @Override
+            public void addDeviceInfo(String productCode, String deviceUuid, String deviceId, String deviceName, String installAddress, Integer serviceStatus) {
+                throw new FeignBadRequestException(500,"新增设备信息异常"+throwable.getMessage());
+            }
+
+            @Override
+            public void deleteDeviceInfo(String deviceUuid) {
+                throw new FeignBadRequestException(500,"删除设备信息异常"+throwable.getMessage());
+            }
+
         };
     }
 }

+ 30 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/api/ServiceIotTaskApi.java

@@ -1,9 +1,14 @@
 package com.usky.iot.controller.api;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.iot.RemoteIotTaskService;
+import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.service.BaseAlarmService;
 import com.usky.iot.service.CrmCustomInfoService;
+import com.usky.iot.service.DmpDeviceInfoService;
 import com.usky.iot.service.job.DmpDataOverviewJob;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.RestController;
@@ -20,6 +25,9 @@ public class ServiceIotTaskApi implements RemoteIotTaskService {
     @Autowired
     private CrmCustomInfoService crmCustomInfoService;
 
+    @Autowired
+    private DmpDeviceInfoService dmpDeviceInfoService;
+
     @Override
     public void dataOverviewJobData () {
         dmpDataOverviewJob.execute();
@@ -34,4 +42,26 @@ public class ServiceIotTaskApi implements RemoteIotTaskService {
     public void customInfoStatus() {
         crmCustomInfoService.updateStatus();
     }
+
+    @Override
+    public void addDeviceInfo(String productCode, String deviceUuid, String deviceId, String deviceName, String installAddress, Integer serviceStatus){
+        DmpDeviceInfo dmpDeviceInfo = new DmpDeviceInfo();
+        dmpDeviceInfo.setProductCode(productCode);
+        dmpDeviceInfo.setDeviceUuid(deviceUuid);
+        dmpDeviceInfo.setDeviceId(deviceId);
+        dmpDeviceInfo.setDeviceName(deviceName);
+        dmpDeviceInfo.setInstallAddress(installAddress);
+        dmpDeviceInfo.setServiceStatus(serviceStatus);
+
+        dmpDeviceInfoService.add(dmpDeviceInfo);
+    }
+
+    @Override
+    public void deleteDeviceInfo(String deviceUuid){
+        LambdaQueryWrapper<DmpDeviceInfo> deviceQueryWrapper = Wrappers.lambdaQuery();
+        deviceQueryWrapper.eq(DmpDeviceInfo::getDeviceUuid,deviceUuid);
+        DmpDeviceInfo dmpDeviceInfo = dmpDeviceInfoService.getOne(deviceQueryWrapper);
+
+        dmpDeviceInfoService.remove(dmpDeviceInfo.getId());
+    }
 }

+ 2 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DeviceHttpController.java

@@ -62,13 +62,13 @@ public class DeviceHttpController {
      */
     @GetMapping("/control")
     public ApiResult<Map<String,Object>> control(@RequestParam("productCode") String productCode,
-                                                 @RequestParam("deviceId") String deviceId,
+                                                 @RequestParam("deviceUuid") String deviceUuid,
                                                  @RequestParam("commandCode") String commandCode,
                                                  @RequestParam("commandValue") String commandValue,
                                                  @RequestParam(value = "domain",required = false) String domain,
                                                  @RequestParam(value = "userId",required = false) Long userId,
                                                  @RequestParam(value = "userName",required = false) String userName){
-        return ApiResult.success(dmpDeviceInfoService.control(productCode,deviceId,commandCode,commandValue,domain,userId,userName));
+        return ApiResult.success(dmpDeviceInfoService.control(productCode,deviceUuid,commandCode,commandValue,domain,userId,userName));
     }
 
 

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

@@ -72,5 +72,5 @@ public interface DmpDeviceInfoService extends CrudService<DmpDeviceInfo> {
     List<DataAverageResponseVO> deviceDataAverage(DataAverageRequestVO requestVO);
     List<DataAverageExportVO> DataAverageExport(DataAverageRequestVO requestVO);
 
-    Map<String,Object> control(String productCode, String deviceId, String commandCode, String commandValue, String domain, Long userId, String userName);
+    Map<String,Object> control(String productCode, String deviceUuid, String commandCode, String commandValue, String domain, Long userId, String userName);
 }

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

@@ -82,7 +82,7 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
     private RemoteTransferService remoteTransferService;
 
     @Override
-    public Map<String,Object> control(String productCode, String deviceId, String commandCode, String commandValue, String domain, Long userId, String userName){
+    public Map<String,Object> control(String productCode, String deviceUuid, String commandCode, String commandValue, String domain, Long userId, String userName){
         Integer tenantId;
         long commandUserId;
         String commandUserName;
@@ -108,8 +108,7 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
 
         LambdaQueryWrapper<DmpDeviceInfo> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(DmpDeviceInfo::getId)
-                .eq(DmpDeviceInfo::getProductCode,productCode)
-                .eq(DmpDeviceInfo::getDeviceId,deviceId)
+                .eq(DmpDeviceInfo::getDeviceId,deviceUuid)
                 .eq(DmpDeviceInfo::getDeleteFlag,0);
         DmpDeviceInfo one = this.getOne(queryWrapper);
         if(one != null){
@@ -125,12 +124,11 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
         Map<String,Object> map = new HashMap<>();
         map.put("method","control");
         Map<String,Object> map1 = new HashMap<>();
-        map1.put("deviceId",deviceId);
         map1.put("commandCode",commandCode);
         map1.put("commandValue",commandValue);
         map.put("params",map1);
 
-        return remoteTransferService.deviceControl(productCode,deviceId, JSON.toJSONString(map),tenantId,commandUserId,commandUserName);
+        return remoteTransferService.deviceControl(productCode,deviceUuid, JSON.toJSONString(map),tenantId,commandUserId,commandUserName);
     }
 
     @Override
@@ -145,8 +143,10 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
             dmpDeviceInfo.setCreatedBy(SecurityUtils.getUsername());
             dmpDeviceInfo.setCreatedTime(LocalDateTime.now());
             dmpDeviceInfo.setTenantId(SecurityUtils.getTenantId());
-            dmpDeviceInfo.setServiceStatus(1);
-            dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+//            dmpDeviceInfo.setServiceStatus(1);
+            if(StringUtils.isBlank(dmpDeviceInfo.getDeviceUuid())){
+                dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+            }
             this.save(dmpDeviceInfo);
 
             DmpDeviceStatus dmpDeviceStatus = new DmpDeviceStatus();
@@ -207,9 +207,10 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
         IPage<DmpDeviceInfo> page = new Page<>(pageCurrent,pageSize);
 
         if(diRequest.getDeviceStatus() != null){
-            if(StringUtils.isNotBlank(diRequest.getDeviceId()) || StringUtils.isNotBlank(diRequest.getDeviceName()) || diRequest.getProductId() != null || StringUtils.isNotBlank(diRequest.getProductCode()) || diRequest.getServiceStatus() != null){
+            if(StringUtils.isNotBlank(diRequest.getDeviceId()) || StringUtils.isNotBlank(diRequest.getDeviceUuid()) || StringUtils.isNotBlank(diRequest.getDeviceName()) || diRequest.getProductId() != null || StringUtils.isNotBlank(diRequest.getProductCode()) || diRequest.getServiceStatus() != null){
                 LambdaQueryWrapper<DmpDeviceInfo> queryWrapper = Wrappers.lambdaQuery();
                 queryWrapper.eq(StringUtils.isNotBlank(diRequest.getDeviceId()),DmpDeviceInfo::getDeviceId,diRequest.getDeviceId())
+                        .eq(StringUtils.isNotBlank(diRequest.getDeviceUuid()),DmpDeviceInfo::getDeviceUuid,diRequest.getDeviceUuid())
                         .like(StringUtils.isNotBlank(diRequest.getDeviceName()),DmpDeviceInfo::getDeviceName,diRequest.getDeviceName())
                         .eq(diRequest.getProductId() != null,DmpDeviceInfo::getProductId,diRequest.getProductId())
                         .like(StringUtils.isNotBlank(diRequest.getProductCode()),DmpDeviceInfo::getProductCode,diRequest.getProductCode())
@@ -319,6 +320,7 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
         }else{
             LambdaQueryWrapper<DmpDeviceInfo> queryWrapper = Wrappers.lambdaQuery();
             queryWrapper.eq(StringUtils.isNotBlank(diRequest.getDeviceId()),DmpDeviceInfo::getDeviceId,diRequest.getDeviceId())
+                    .eq(StringUtils.isNotBlank(diRequest.getDeviceUuid()),DmpDeviceInfo::getDeviceUuid,diRequest.getDeviceUuid())
                     .like(StringUtils.isNotBlank(diRequest.getDeviceName()),DmpDeviceInfo::getDeviceName,diRequest.getDeviceName())
                     .eq(diRequest.getProductId() != null,DmpDeviceInfo::getProductId,diRequest.getProductId())
                     .like(StringUtils.isNotBlank(diRequest.getProductCode()),DmpDeviceInfo::getProductCode,diRequest.getProductCode())

+ 5 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/DmpDeviceInfoRequest.java

@@ -51,4 +51,9 @@ public class DmpDeviceInfoRequest {
      */
     private String domain;
 
+    /**
+     * 设备Uuid
+     */
+    private String deviceUuid;
+
 }

+ 5 - 0
service-meeting/service-meeting-biz/pom.xml

@@ -22,6 +22,11 @@
             <artifactId>data-transfer-api</artifactId>
             <version>0.0.1</version>
         </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>service-iot-api</artifactId>
+            <version>0.0.1</version>
+        </dependency>
         <dependency>
             <groupId>com.usky</groupId>
             <artifactId>common-cloud-starter</artifactId>

+ 10 - 3
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingFaceController.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.ApiResult;
@@ -82,7 +83,7 @@ public class MeetingFaceController {
                 .eq("tenant_id", SecurityUtils.getTenantId()));
         if(page.getRecords().size() > 0){
             for (int i = 0; i < page.getRecords().size(); i++) {
-                if(Objects.nonNull(page.getRecords().get(i).getBindDevice())){
+                if(Objects.nonNull(page.getRecords().get(i).getBindDevice()) || StringUtils.isNotBlank(page.getRecords().get(i).getBindDevice())){
                     String[] deviceIdStr = page.getRecords().get(i).getBindDevice().split(",");
                     Integer[] deviceIds = Arrays.stream(deviceIdStr).map(Integer::parseInt).toArray(Integer[]::new);
                     List<DmpDeviceInfoVO> list = meetingFaceMapper.getDeviceInfo(Arrays.asList(deviceIds));
@@ -124,7 +125,10 @@ public class MeetingFaceController {
         face.setVefNum(0);
         face.setCreateTime(LocalDateTime.now());
         face.setTenantId(SecurityUtils.getTenantId());
-        String[] devicefids = face.getBindDevice().split(",");
+        String[] devicefids = new String[0];
+        if(Objects.nonNull(face.getBindDevice()) || StringUtils.isNotBlank(face.getBindDevice())){
+            devicefids = face.getBindDevice().split(",");
+        }
         faceService.save(face);
         if(devicefids.length > 0){
             for (int i = 0; i < devicefids.length; i++) {
@@ -139,7 +143,10 @@ public class MeetingFaceController {
     public FaceResultVO update(@RequestBody MeetingFace face){
         faceService.updateById(face);
         meetingInfoRepository.delMeetingFaceDevice(face.getFid());
-        String[] devicefids = face.getBindDevice().split(",");
+        String[] devicefids = new String[0];
+        if(Objects.nonNull(face.getBindDevice()) || StringUtils.isNotBlank(face.getBindDevice())){
+            devicefids = face.getBindDevice().split(",");
+        }
         if(devicefids.length > 0){
             for (int i = 0; i < devicefids.length; i++) {
                 meetingInfoRepository.insertMeetingFaceDevice(face.getFid(),Integer.parseInt(devicefids[i]));

+ 17 - 17
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/EgDevice.java

@@ -9,11 +9,11 @@ import lombok.EqualsAndHashCode;
 
 /**
  * <p>
- * 门禁设备表
+ * 门禁_设备信息
  * </p>
  *
  * @author zyj
- * @since 2024-11-22
+ * @since 2024-11-27
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -30,42 +30,42 @@ public class EgDevice implements Serializable {
     /**
      * 设备uuid
      */
-    private Long deviceUuid;
+    private String deviceUuid;
 
     /**
-     * 设备名称
+     * 设备ID
      */
-    private String deviceName;
+    private String deviceId;
 
     /**
-     * 设备图片
+     * 设备名称
      */
-    private String imgPath;
+    private String deviceName;
 
     /**
-     * 设备铭牌
+     * 安装位置
      */
-    private String nameplate;
+    private String installAddress;
 
     /**
-     * 登记时间
+     * 业务状态;1:未激活,2:已激活,3:禁用
      */
-    private LocalDateTime registerDate;
+    private Integer serviceStatus;
 
     /**
-     * 维护人
+     * IP
      */
-    private String maintainer;
+    private String deviceIp;
 
     /**
-     * 联系方式
+     * 端口
      */
-    private String contacts;
+    private Integer devicePort;
 
     /**
-     * 备注
+     * 门禁号
      */
-    private String remark;
+    private String egNumber;
 
     /**
      * 创建者

+ 5 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingDevice.java

@@ -82,6 +82,11 @@ public class MeetingDevice implements Serializable {
      */
     private String remark;
 
+    /**
+     * 安装位置
+     */
+    private String installAddress;
+
     /**
      * 创建者
      */

+ 2 - 2
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/mapper/EgDeviceMapper.java

@@ -6,11 +6,11 @@ import org.springframework.stereotype.Repository;
 
 /**
  * <p>
- * 门禁设备表 Mapper 接口
+ * 门禁_设备信息表 Mapper 接口
  * </p>
  *
  * @author zyj
- * @since 2024-11-22
+ * @since 2024-11-27
  */
 @Repository
 public interface EgDeviceMapper extends CrudMapper<EgDevice> {

+ 2 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/mapper/MeetingFaceMapper.java

@@ -5,6 +5,7 @@ import com.usky.common.mybatis.core.CrudMapper;
 import com.usky.meeting.service.vo.DmpDeviceInfoVO;
 import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
@@ -16,6 +17,7 @@ import java.util.List;
  * @author zyj
  * @since 2024-03-08
  */
+@Repository
 public interface MeetingFaceMapper extends CrudMapper<MeetingFace> {
     List<DmpDeviceInfoVO> getDeviceInfo(@Param("deviceIdList") List<Integer> deviceIdList);
 }

+ 21 - 5
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingDeviceServiceImpl.java

@@ -10,7 +10,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.UUIDUtils;
 import com.usky.common.security.utils.SecurityUtils;
+import com.usky.iot.RemoteIotTaskService;
 import com.usky.meeting.domain.EgDevice;
 import com.usky.meeting.domain.MeetingDevice;
 import com.usky.meeting.domain.MeetingFloor;
@@ -18,6 +20,7 @@ import com.usky.meeting.domain.MeetingRoom;
 import com.usky.meeting.mapper.EgDeviceMapper;
 import com.usky.meeting.mapper.MeetingDeviceMapper;
 import com.usky.meeting.mapper.MeetingRoomMapper;
+import com.usky.meeting.repository.MeetingRoomRepository;
 import com.usky.meeting.service.MeetingDeviceService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.meeting.service.MeetingRoomService;
@@ -51,19 +54,30 @@ public class MeetingDeviceServiceImpl extends AbstractCrudService<MeetingDeviceM
     private MeetingRoomMapper meetingRoomMapper;
     @Autowired
     private EgDeviceMapper egDeviceMapper;
+    @Autowired
+    private RemoteIotTaskService remoteIotTaskService;
+    @Autowired
+    private MeetingRoomRepository dmMeetingRoomRepository;
 
     @Override
     public CommonPage<MeetingDevice> meetingDeviceList(MeetingDeviceRequestVO requestVO){
         Integer current = requestVO.getCurrent();
         Integer size = requestVO.getSize();
         IPage<MeetingDevice> page = new Page<>(current,size);
+        Integer tenantId ;
+
+        if(StringUtils.isNotBlank(requestVO.getDomain())){
+            tenantId = dmMeetingRoomRepository.getTenantIdByDomain(requestVO.getDomain());
+        }else{
+            tenantId = SecurityUtils.getTenantId();
+        }
 
         //根据输入所属会议室名称刷选
         List<Long> roomIdList = new ArrayList<>();
         List<MeetingRoom> meetingRoomsList = null;
         LambdaQueryWrapper<MeetingRoom> queryWrapper = Wrappers.lambdaQuery();
         if(StringUtils.isNotBlank(requestVO.getRoomName())){
-            queryWrapper.like(MeetingRoom::getRoomName,requestVO.getRoomName()).eq(MeetingRoom::getTenantId,SecurityUtils.getTenantId());
+            queryWrapper.like(MeetingRoom::getRoomName,requestVO.getRoomName()).eq(MeetingRoom::getTenantId,tenantId);
             meetingRoomsList = meetingRoomMapper.selectList(queryWrapper);
             if(CollectionUtils.isNotEmpty(meetingRoomsList)){
                 for (int i = 0; i < meetingRoomsList.size(); i++) {
@@ -71,7 +85,7 @@ public class MeetingDeviceServiceImpl extends AbstractCrudService<MeetingDeviceM
                 }
             }
         }else{
-            queryWrapper.eq(MeetingRoom::getTenantId,SecurityUtils.getTenantId());
+            queryWrapper.eq(MeetingRoom::getTenantId,tenantId);
             meetingRoomsList = meetingRoomMapper.selectList(queryWrapper);
         }
         //根据输入所属门禁设备名称刷选
@@ -79,7 +93,7 @@ public class MeetingDeviceServiceImpl extends AbstractCrudService<MeetingDeviceM
         List<EgDevice> egDeviceList = null;
         LambdaQueryWrapper<EgDevice> queryWrapper1 = Wrappers.lambdaQuery();
         if(StringUtils.isNotBlank(requestVO.getEgDeviceName())){
-            queryWrapper1.like(EgDevice::getDeviceName,requestVO.getEgDeviceName()).eq(EgDevice::getTenantId,SecurityUtils.getTenantId());
+            queryWrapper1.like(EgDevice::getDeviceName,requestVO.getEgDeviceName()).eq(EgDevice::getTenantId,tenantId);
             egDeviceList = egDeviceMapper.selectList(queryWrapper1);
             if(CollectionUtils.isNotEmpty(egDeviceList)){
                 for (int i = 0; i < egDeviceList.size(); i++) {
@@ -87,7 +101,7 @@ public class MeetingDeviceServiceImpl extends AbstractCrudService<MeetingDeviceM
                 }
             }
         }else{
-            queryWrapper1.eq(EgDevice::getTenantId,SecurityUtils.getTenantId());
+            queryWrapper1.eq(EgDevice::getTenantId,tenantId);
             egDeviceList = egDeviceMapper.selectList(queryWrapper1);
         }
 
@@ -100,7 +114,7 @@ public class MeetingDeviceServiceImpl extends AbstractCrudService<MeetingDeviceM
                 .like(requestVO.getRoomId() != null,MeetingDevice::getRoomId,requestVO.getRoomId())
                 .in(CollectionUtils.isNotEmpty(roomIdList),MeetingDevice::getRoomId,roomIdList)
                 .in(CollectionUtils.isNotEmpty(egDeviceIdList),MeetingDevice::getEgDeviceId,egDeviceIdList)
-                .eq(MeetingDevice::getTenantId,SecurityUtils.getTenantId())
+                .eq(MeetingDevice::getTenantId,tenantId)
                 .orderByAsc(MeetingDevice::getDeviceUuid);
         page = this.page(page,queryWrapper3);
         if(page.getRecords().size()>0){
@@ -151,6 +165,7 @@ public class MeetingDeviceServiceImpl extends AbstractCrudService<MeetingDeviceM
         meetingDevice.setTenantId(SecurityUtils.getTenantId());
         this.save(meetingDevice);
 
+        remoteIotTaskService.addDeviceInfo("505_USKY", meetingDevice.getDeviceUuid().toString(),"",meetingDevice.getDeviceName(),meetingDevice.getInstallAddress(),1);
     }
 
     @Override
@@ -170,6 +185,7 @@ public class MeetingDeviceServiceImpl extends AbstractCrudService<MeetingDeviceM
         Optional.ofNullable(meetingDevice).orElseThrow(() -> new BusinessException("该会议室设备不存在"));
         this.removeById(deviceId);
 
+        remoteIotTaskService.deleteDeviceInfo(deviceId.toString());
     }
 
     public boolean checkNameUnique(MeetingDevice meetingDevice){

+ 5 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingDeviceRequestVO.java

@@ -58,4 +58,9 @@ public class MeetingDeviceRequestVO {
      * 所属门禁设备名称
      */
     private String egDeviceName;
+
+    /**
+     * 域名
+     */
+    private String domain;
 }

+ 6 - 6
service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/EgDeviceMapper.xml

@@ -6,13 +6,13 @@
     <resultMap id="BaseResultMap" type="com.usky.meeting.domain.EgDevice">
         <id column="id" property="id" />
         <result column="device_uuid" property="deviceUuid" />
+        <result column="device_id" property="deviceId" />
         <result column="device_name" property="deviceName" />
-        <result column="img_path" property="imgPath" />
-        <result column="nameplate" property="nameplate" />
-        <result column="register_date" property="registerDate" />
-        <result column="maintainer" property="maintainer" />
-        <result column="contacts" property="contacts" />
-        <result column="remark" property="remark" />
+        <result column="install_address" property="installAddress" />
+        <result column="service_status" property="serviceStatus" />
+        <result column="device_ip" property="deviceIp" />
+        <result column="device_port" property="devicePort" />
+        <result column="eg_number" property="egNumber" />
         <result column="create_by" property="createBy" />
         <result column="update_by" property="updateBy" />
         <result column="create_time" property="createTime" />

+ 1 - 0
service-meeting/service-meeting-biz/src/main/resources/mapper/meeting/MeetingDeviceMapper.xml

@@ -13,6 +13,7 @@
         <result column="register_date" property="registerDate" />
         <result column="maintainer" property="maintainer" />
         <result column="contacts" property="contacts" />
+        <result column="install_address" property="installAddress" />
         <result column="remark" property="remark" />
         <result column="create_by" property="createBy" />
         <result column="update_by" property="updateBy" />