瀏覽代碼

更新!

TRX 1 年之前
父節點
當前提交
beaa417489
共有 34 個文件被更改,包括 187 次插入50 次删除
  1. 28 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindAreaParam.java
  2. 2 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindModel.java
  3. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindParam.java
  4. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindSearch.java
  5. 18 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoModel.java
  6. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoMoreModel.java
  7. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoParam.java
  8. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoSearch.java
  9. 2 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/GateWayInfoModel.java
  10. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/GateWayInfoParam.java
  11. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/GateWayInfoSearch.java
  12. 3 3
      FullCardClient/src/main/java/com/zhongshu/card/client/service/school/DeviceBindService.java
  13. 10 1
      FullCardClient/src/main/java/com/zhongshu/card/client/service/school/DeviceInfoService.java
  14. 3 3
      FullCardClient/src/main/java/com/zhongshu/card/client/service/school/GateWayInfoService.java
  15. 16 8
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/devices/DeviceInfoController.java
  16. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/devices/DeviceSyncController.java
  17. 4 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/devices/GateWayInfoController.java
  18. 3 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/school/DeviceBindController.java
  19. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceBindDaoExtend.java
  20. 3 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceInfoDaoExtend.java
  21. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/GateWayInfoDaoExtend.java
  22. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceBindDaoImpl.java
  23. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceInfoDaoImpl.java
  24. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/GateWayInfoDaoImpl.java
  25. 15 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/DeviceInfo.java
  26. 49 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceInfoServiceImpl.java
  27. 1 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceSyncFromIotService.java
  28. 5 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/GateWayInfoServiceImpl.java
  29. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/ProjectSyncIotCenterService.java
  30. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/fix/FixDataService.java
  31. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java
  32. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/orgManager/OrganizationManagerServiceImpl.java
  33. 4 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/AreaServiceImpl.java
  34. 4 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/DeviceBindServiceImpl.java

+ 28 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindAreaParam.java

@@ -0,0 +1,28 @@
+package com.zhongshu.card.client.model.devices;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 设备绑定区域的参数
+ *
+ * @author TRX
+ * @date 2024/10/10
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DeviceBindAreaParam {
+
+    @Schema(description = "数据id")
+    private String id;
+
+    @Schema(description = "区域ID")
+    private String areaId;
+
+    @Schema(description = "所属机构信息")
+    private String oid;
+
+}

+ 2 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindModel.java

@@ -1,8 +1,9 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.model.base.SuperModel;
 import com.zhongshu.card.client.model.org.OrganizationSimpleModel;
+import com.zhongshu.card.client.model.school.AreaModel;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.client.type.OnLineState;
 import com.zhongshu.card.client.type.PaymentModeType;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindParam.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindParam.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.zhongshu.card.client.model.base.SuperParam;
 import com.zhongshu.card.client.type.PaymentModeType;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceBindSearch.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceBindSearch.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.model.base.SuperSearch;

+ 18 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceInfoModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoModel.java

@@ -1,7 +1,8 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.model.base.SuperModel;
+import com.zhongshu.card.client.model.org.OrganizationMiniModel;
 import com.zhongshu.card.client.model.org.OrganizationSimpleModel;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.client.type.OnLineState;
@@ -14,6 +15,7 @@ import lombok.Data;
  */
 @Data
 public class DeviceInfoModel extends SuperModel {
+
     @Schema(description = "设备ID、设备编号")
     private String deviceId;
 
@@ -35,6 +37,9 @@ public class DeviceInfoModel extends SuperModel {
     @Schema(description = "网关号")
     private String gateWayId;
 
+    @Schema(description = "设备名称")
+    private String gateWayName;
+
     @Schema(description = "关联的项目code")
     private String projectInfoCode;
 
@@ -44,6 +49,18 @@ public class DeviceInfoModel extends SuperModel {
     @Schema(description = "关联的项目信息")
     private OrganizationSimpleModel projectInfo;
 
+    @Schema(description = "")
+    private OrganizationMiniModel organization;
+
+    private String organizationName;
+
+    public String getOrganizationName() {
+        if (organization != null) {
+            return organization.getName();
+        }
+        return "";
+    }
+
     @Schema(description = "是否在线")
     private OnLineState onLineState = OnLineState.OnLine;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceInfoMoreModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoMoreModel.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import lombok.Data;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceInfoParam.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoParam.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.model.base.SuperParam;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/DeviceInfoSearch.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoSearch.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.model.base.SuperSearch;

+ 2 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/GateWayInfoModel.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/GateWayInfoModel.java

@@ -1,6 +1,7 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.zhongshu.card.client.model.base.SuperModel;
+import com.zhongshu.card.client.model.school.AreaModel;
 import com.zhongshu.card.client.type.OnLineState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/GateWayInfoParam.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/GateWayInfoParam.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/GateWayInfoSearch.java → FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/GateWayInfoSearch.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.model.school;
+package com.zhongshu.card.client.model.devices;
 
 import com.zhongshu.card.client.model.base.SuperSearch;
 import com.zhongshu.card.client.type.OnLineState;

+ 3 - 3
FullCardClient/src/main/java/com/zhongshu/card/client/service/school/DeviceBindService.java

@@ -1,8 +1,8 @@
 package com.zhongshu.card.client.service.school;
 
-import com.zhongshu.card.client.model.school.DeviceBindModel;
-import com.zhongshu.card.client.model.school.DeviceBindParam;
-import com.zhongshu.card.client.model.school.DeviceBindSearch;
+import com.zhongshu.card.client.model.devices.DeviceBindModel;
+import com.zhongshu.card.client.model.devices.DeviceBindParam;
+import com.zhongshu.card.client.model.devices.DeviceBindSearch;
 import com.github.microservice.net.ResultContent;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;

+ 10 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/service/school/DeviceInfoService.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.client.service.school;
 
 import com.github.microservice.models.device.DeviceInfoSyncParam;
-import com.zhongshu.card.client.model.school.*;
+import com.zhongshu.card.client.model.devices.*;
 import com.github.microservice.net.ResultContent;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -39,4 +39,13 @@ public interface DeviceInfoService {
      * @return
      */
     ResultContent<List<DeviceInfoMoreModel>> getDeviceDetailByDeviceIdLike(String deviceId);
+
+    /**
+     * 设备绑定区域
+     *
+     * @param param
+     * @return
+     */
+    ResultContent updateDevice(DeviceBindAreaParam param);
+
 }

+ 3 - 3
FullCardClient/src/main/java/com/zhongshu/card/client/service/school/GateWayInfoService.java

@@ -1,9 +1,9 @@
 package com.zhongshu.card.client.service.school;
 
 import com.github.microservice.models.device.GateWaySyncParam;
-import com.zhongshu.card.client.model.school.GateWayInfoModel;
-import com.zhongshu.card.client.model.school.GateWayInfoParam;
-import com.zhongshu.card.client.model.school.GateWayInfoSearch;
+import com.zhongshu.card.client.model.devices.GateWayInfoModel;
+import com.zhongshu.card.client.model.devices.GateWayInfoParam;
+import com.zhongshu.card.client.model.devices.GateWayInfoSearch;
 import com.github.microservice.net.ResultContent;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;

+ 16 - 8
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/DeviceInfoController.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/devices/DeviceInfoController.java

@@ -1,12 +1,9 @@
-package com.zhongshu.card.server.core.controller.org;
+package com.zhongshu.card.server.core.controller.devices;
 
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.base.IDParam;
-import com.zhongshu.card.client.model.school.DeviceInfoModel;
-import com.zhongshu.card.client.model.school.DeviceInfoMoreModel;
-import com.zhongshu.card.client.model.school.DeviceInfoParam;
-import com.zhongshu.card.client.model.school.DeviceInfoSearch;
+import com.zhongshu.card.client.model.devices.*;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.service.school.DeviceInfoService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -16,8 +13,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.web.PageableDefault;
+import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -32,7 +31,7 @@ import java.util.List;
 public class DeviceInfoController {
 
     @Autowired
-    DeviceInfoService deviceInfoService;
+    private DeviceInfoService deviceInfoService;
 
     //----------------------------设备基础信息 start------------------------
 
@@ -71,14 +70,23 @@ public class DeviceInfoController {
         return this.deviceInfoService.deleteDeviceInfo(param.getId());
     }
 
-
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "设备列表-分页查询", description = "设备列表-分页查询")
     @RequestMapping(value = {"page"}, method = {RequestMethod.POST})
-    public ResultContent<Page<DeviceInfoModel>> page(@Parameter(hidden = true) @PageableDefault(page = 0, size = 10) Pageable pageable, @Parameter(required = false) DeviceInfoSearch param) {
+    public ResultContent<Page<DeviceInfoModel>> page(
+            @Parameter(hidden = true) @PageableDefault(page = 0, size = 10) Pageable pageable,
+            @Parameter(required = false) DeviceInfoSearch param) {
+        Assert.hasText(param.getProjectOid(), "projectOid不能为空");
         return deviceInfoService.page(param, pageable);
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "修改设备信息", description = "修改设备信息")
+    @RequestMapping(value = "updateDevice", method = {RequestMethod.POST})
+    public ResultContent updateDevice(@RequestBody @Valid DeviceBindAreaParam param) {
+        return this.deviceInfoService.updateDevice(param);
+    }
+
     //----------------------------设备基础信息 end--------------------------
 
 }

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/devices/DeviceSyncController.java

@@ -4,7 +4,7 @@ import com.github.microservice.models.device.DeviceSyncListParam;
 import com.github.microservice.models.device.GateWaySyncParam;
 import com.github.microservice.models.hxz.DevicePingInfoParam;
 import com.github.microservice.net.ResultContent;
-import com.zhongshu.card.server.core.service.sync.DeviceSyncFromIotService;
+import com.zhongshu.card.server.core.service.devices.DeviceSyncFromIotService;
 import io.swagger.v3.oas.annotations.Hidden;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;

+ 4 - 4
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/GateWayInfoController.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/devices/GateWayInfoController.java

@@ -1,10 +1,10 @@
-package com.zhongshu.card.server.core.controller.org;
+package com.zhongshu.card.server.core.controller.devices;
 
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
-import com.zhongshu.card.client.model.school.GateWayInfoModel;
-import com.zhongshu.card.client.model.school.GateWayInfoParam;
-import com.zhongshu.card.client.model.school.GateWayInfoSearch;
+import com.zhongshu.card.client.model.devices.GateWayInfoModel;
+import com.zhongshu.card.client.model.devices.GateWayInfoParam;
+import com.zhongshu.card.client.model.devices.GateWayInfoSearch;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.service.school.GateWayInfoService;
 import io.swagger.v3.oas.annotations.Operation;

+ 3 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/school/DeviceBindController.java

@@ -4,7 +4,9 @@ import com.github.microservice.auth.client.constant.AuthConstant;
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.base.IDParam;
-import com.zhongshu.card.client.model.school.*;
+import com.zhongshu.card.client.model.devices.DeviceBindModel;
+import com.zhongshu.card.client.model.devices.DeviceBindParam;
+import com.zhongshu.card.client.model.devices.DeviceBindSearch;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.service.school.DeviceBindService;
 import io.swagger.v3.oas.annotations.Operation;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceBindDaoExtend.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.dao.school.extend;
 
-import com.zhongshu.card.client.model.school.DeviceBindSearch;
+import com.zhongshu.card.client.model.devices.DeviceBindSearch;
 import com.zhongshu.card.server.core.domain.devices.DeviceBind;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;

+ 3 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/DeviceInfoDaoExtend.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.dao.school.extend;
 
-import com.zhongshu.card.client.model.school.DeviceInfoSearch;
+import com.zhongshu.card.client.model.devices.DeviceInfoSearch;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -13,5 +13,7 @@ import org.springframework.data.domain.Pageable;
  * @Version: 1.0
  */
 public interface DeviceInfoDaoExtend {
+
     Page<DeviceInfo> page(Pageable pageable, DeviceInfoSearch param);
+
 }

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/extend/GateWayInfoDaoExtend.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.dao.school.extend;
 
-import com.zhongshu.card.client.model.school.GateWayInfoSearch;
+import com.zhongshu.card.client.model.devices.GateWayInfoSearch;
 import com.zhongshu.card.server.core.domain.devices.GateWayInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceBindDaoImpl.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.server.core.dao.school.impl;
 
 import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
-import com.zhongshu.card.client.model.school.DeviceBindSearch;
+import com.zhongshu.card.client.model.devices.DeviceBindSearch;
 import com.zhongshu.card.server.core.dao.BaseImpl;
 import com.zhongshu.card.server.core.dao.school.extend.DeviceBindDaoExtend;
 import com.zhongshu.card.server.core.domain.school.Area;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/DeviceInfoDaoImpl.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.server.core.dao.school.impl;
 
 import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
-import com.zhongshu.card.client.model.school.DeviceInfoSearch;
+import com.zhongshu.card.client.model.devices.DeviceInfoSearch;
 import com.zhongshu.card.server.core.dao.BaseImpl;
 import com.zhongshu.card.server.core.dao.school.extend.DeviceInfoDaoExtend;
 import com.zhongshu.card.server.core.domain.school.Area;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/school/impl/GateWayInfoDaoImpl.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.server.core.dao.school.impl;
 
 import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
-import com.zhongshu.card.client.model.school.GateWayInfoSearch;
+import com.zhongshu.card.client.model.devices.GateWayInfoSearch;
 import com.zhongshu.card.server.core.dao.BaseImpl;
 import com.zhongshu.card.server.core.dao.school.extend.GateWayInfoDaoExtend;
 import com.zhongshu.card.server.core.domain.school.Area;

+ 15 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/DeviceInfo.java

@@ -4,10 +4,13 @@ import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.client.type.OnLineState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
+import com.zhongshu.card.server.core.domain.org.Organization;
+import com.zhongshu.card.server.core.domain.school.Area;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.mapping.DBRef;
 import org.springframework.data.mongodb.core.mapping.Document;
 
 /**
@@ -34,12 +37,19 @@ public class DeviceInfo extends SuperMain {
     @Schema(description = "关联的项目Name")
     private String projectInfoName;
 
+    @Schema(description = "所属机构")
+    @DBRef(lazy = true)
+    private Organization organization;
+
     @Schema(description = "设备类型,如 消费机 门禁机")
     private DeviceType deviceType;
 
     @Schema(description = "网关号")
     private String gateWayId;
 
+    @Schema(description = "网关名称")
+    private String gateWayName;
+
     @Schema(description = "是否在线")
     private OnLineState onLineState = OnLineState.OnLine;
 
@@ -51,4 +61,9 @@ public class DeviceInfo extends SuperMain {
 
     @Schema(description = "数据状态")
     private DataState state = DataState.Enable;
+
+    @Schema(description = "区域信息")
+    @DBRef(lazy = true)
+    private Area area;
+
 }

+ 49 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/DeviceInfoServiceImpl.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceInfoServiceImpl.java

@@ -1,16 +1,21 @@
-package com.zhongshu.card.server.core.service.org;
+package com.zhongshu.card.server.core.service.devices;
 
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.models.device.DeviceInfoSyncParam;
-import com.zhongshu.card.client.model.school.*;
+import com.zhongshu.card.client.model.devices.*;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
+import com.zhongshu.card.client.model.org.OrganizationMiniModel;
 import com.zhongshu.card.client.service.school.DeviceInfoService;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.school.AreaDao;
 import com.zhongshu.card.server.core.dao.school.DeviceInfoDao;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
+import com.zhongshu.card.server.core.domain.org.Organization;
+import com.zhongshu.card.server.core.domain.school.Area;
 import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
+import com.zhongshu.card.server.core.service.orgManager.OrganizationManagerServiceImpl;
 import com.zhongshu.card.server.core.service.school.AreaServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -49,6 +54,9 @@ public class DeviceInfoServiceImpl extends SuperService implements DeviceInfoSer
     @Autowired
     OrganizationDao organizationDao;
 
+    @Autowired
+    OrganizationManagerServiceImpl organizationManagerService;
+
     /**
      * 同步设备 (设备基础信息)
      *
@@ -68,6 +76,7 @@ public class DeviceInfoServiceImpl extends SuperService implements DeviceInfoSer
         }
         BeanUtils.copyProperties(param, deviceInfo, "id");
         deviceInfo.setProjectInfoName(organizationServiceImpl.getOrgNameByCode(param.getProjectInfoCode()));
+
         deviceInfoDao.save(deviceInfo);
         return ResultContent.buildSuccess();
     }
@@ -104,7 +113,13 @@ public class DeviceInfoServiceImpl extends SuperService implements DeviceInfoSer
      */
     @Override
     public ResultContent<Page<DeviceInfoModel>> page(DeviceInfoSearch param, Pageable pageable) {
-        initOidSearchParam(param);
+        // 完善所属项目
+        String projectOid = param.getProjectOid();
+        Organization organization = organizationDao.findTopByOid(projectOid);
+        if (ObjectUtils.isEmpty(organization)) {
+            return ResultContent.buildFail("projectOid不存在");
+        }
+        param.setProjectInfoCode(organization.getCode());
         Page<DeviceInfo> page = deviceInfoDao.page(pageable, param);
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }
@@ -173,6 +188,33 @@ public class DeviceInfoServiceImpl extends SuperService implements DeviceInfoSer
         return model;
     }
 
+    /**
+     * @param param
+     * @return
+     */
+    public ResultContent updateDevice(DeviceBindAreaParam param) {
+        DeviceInfo deviceInfo = deviceInfoDao.findTopById(param.getId());
+        if (ObjectUtils.isEmpty(deviceInfo)) {
+            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
+        }
+        // 修改设备 只能绑定 区域 所属机构等信息
+        if (StringUtils.isNotEmpty(deviceInfo.getDeviceId())) {
+            Area area = areaDao.findTopById(param.getAreaId());
+            if (ObjectUtils.isEmpty(area)) {
+                return ResultContent.buildFail("区域信息不存在");
+            }
+            deviceInfo.setArea(area);
+        }
+
+        Organization organization = null;
+        if (StringUtils.isNotEmpty(param.getOid())) {
+            organization = organizationDao.findTopByOid(param.getOid());
+        }
+        deviceInfo.setOrganization(organization);
+        deviceInfoDao.save(deviceInfo);
+        return ResultContent.buildSuccess();
+    }
+
     /**
      * 设备基础信息
      *
@@ -184,6 +226,10 @@ public class DeviceInfoServiceImpl extends SuperService implements DeviceInfoSer
         if (ObjectUtils.isNotEmpty(entity)) {
             model = new DeviceInfoModel();
             BeanUtils.copyProperties(entity, model);
+            model.setProjectInfoName(organizationServiceImpl.getOrgNameByCode(entity.getProjectInfoCode()));
+
+            OrganizationMiniModel miniModel = organizationManagerService.toMiniModel(entity.getOrganization());
+            model.setOrganization(miniModel);
         }
         return model;
     }

+ 1 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/sync/DeviceSyncFromIotService.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceSyncFromIotService.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.server.core.service.sync;
+package com.zhongshu.card.server.core.service.devices;
 
 import com.github.microservice.models.device.DeviceInfoSyncParam;
 import com.github.microservice.models.device.DeviceSyncListParam;
@@ -13,7 +13,6 @@ import com.zhongshu.card.server.core.dao.org.OrganizationRelationDao;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
 import com.zhongshu.card.server.core.domain.devices.DeviceBind;
 import com.zhongshu.card.server.core.service.base.CommonService;
-import com.zhongshu.card.server.core.service.org.GateWayInfoServiceImpl;
 import com.zhongshu.card.server.core.service.user.OperationLogsService;
 import com.zhongshu.card.server.core.util.CommonUtil;
 import com.zhongshu.card.client.utils.DateUtils;

+ 5 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/GateWayInfoServiceImpl.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/GateWayInfoServiceImpl.java

@@ -1,8 +1,10 @@
-package com.zhongshu.card.server.core.service.org;
+package com.zhongshu.card.server.core.service.devices;
 
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.models.device.GateWaySyncParam;
-import com.zhongshu.card.client.model.school.*;
+import com.zhongshu.card.client.model.devices.GateWayInfoModel;
+import com.zhongshu.card.client.model.devices.GateWayInfoParam;
+import com.zhongshu.card.client.model.devices.GateWayInfoSearch;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.service.school.GateWayInfoService;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
@@ -11,6 +13,7 @@ import com.zhongshu.card.server.core.dao.school.GateWayInfoDao;
 import com.zhongshu.card.server.core.domain.school.Area;
 import com.zhongshu.card.server.core.domain.devices.GateWayInfo;
 import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
 import com.zhongshu.card.server.core.service.school.AreaServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/sync/ProjectSyncIotCenterService.java → FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/ProjectSyncIotCenterService.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.server.core.service.sync;
+package com.zhongshu.card.server.core.service.devices;
 
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.models.project.ProjectSyncParam;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/fix/FixDataService.java

@@ -4,7 +4,7 @@ import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.domain.org.Organization;
-import com.zhongshu.card.server.core.service.sync.ProjectSyncIotCenterService;
+import com.zhongshu.card.server.core.service.devices.ProjectSyncIotCenterService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java

@@ -29,7 +29,7 @@ import com.zhongshu.card.server.core.service.orgManager.ProjectBindOrgServiceImp
 import com.zhongshu.card.server.core.service.projectAbout.ProjectCommonConfigService;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectIotInfoService;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectWeChatInfoService;
-import com.zhongshu.card.server.core.service.sync.ProjectSyncIotCenterService;
+import com.zhongshu.card.server.core.service.devices.ProjectSyncIotCenterService;
 import com.zhongshu.card.server.core.service.user.DepartmentServiceImpl;
 import com.zhongshu.card.server.core.service.user.RoleServiceImpl;
 import com.zhongshu.card.server.core.service.user.UserAccountServiceImpl;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/orgManager/OrganizationManagerServiceImpl.java

@@ -18,7 +18,7 @@ import com.zhongshu.card.server.core.service.org.*;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectCommonConfigService;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectIotInfoService;
 import com.zhongshu.card.server.core.service.projectAbout.ProjectWeChatInfoService;
-import com.zhongshu.card.server.core.service.sync.ProjectSyncIotCenterService;
+import com.zhongshu.card.server.core.service.devices.ProjectSyncIotCenterService;
 import com.zhongshu.card.server.core.service.user.DepartmentServiceImpl;
 import com.zhongshu.card.server.core.service.user.RoleServiceImpl;
 import com.zhongshu.card.server.core.service.user.UserAccountServiceImpl;

+ 4 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/AreaServiceImpl.java

@@ -68,6 +68,10 @@ public class AreaServiceImpl extends SuperService implements AreaService {
                 return ResultContent.buildFail(String.format("上级数据ID不存在:%s", param.getParentId()));
             }
         }
+        if (StringUtils.isNotEmpty(param.getId()) && param.getId().equals(param.getParentId())) {
+            return ResultContent.buildFail("parentId不能为当前节点");
+        }
+
         if (param.getState() == null) {
             param.setState(DataState.Enable);
         }

+ 4 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/school/DeviceBindServiceImpl.java

@@ -2,7 +2,9 @@ package com.zhongshu.card.server.core.service.school;
 
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.components.data.base.util.PageEntityUtil;
-import com.zhongshu.card.client.model.school.*;
+import com.zhongshu.card.client.model.devices.DeviceBindModel;
+import com.zhongshu.card.client.model.devices.DeviceBindParam;
+import com.zhongshu.card.client.model.devices.DeviceBindSearch;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
 import com.zhongshu.card.client.service.school.DeviceBindService;
@@ -15,7 +17,7 @@ import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.school.Area;
 import com.zhongshu.card.server.core.domain.devices.DeviceBind;
 import com.zhongshu.card.server.core.service.base.SuperService;
-import com.zhongshu.card.server.core.service.org.DeviceInfoServiceImpl;
+import com.zhongshu.card.server.core.service.devices.DeviceInfoServiceImpl;
 import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import lombok.extern.slf4j.Slf4j;