lishuangjiang@potevio.com 1 anno fa
parent
commit
df14659753

+ 5 - 0
iot-dao/iot-data-model/src/main/java/cc/iotkit/model/device/DeviceInfo.java

@@ -91,6 +91,11 @@ public class DeviceInfo implements Owned<String> {
 
     private Long createAt;
 
+    /**
+     * 创建部门
+     */
+    private Long createDept;
+
     @Data
     @NoArgsConstructor
     @AllArgsConstructor

+ 2 - 1
iot-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java

@@ -147,7 +147,8 @@ public interface IDeviceInfoData extends IOwnedData<DeviceInfo, String> {
 
     Long countTodayAdd(String tenantId);
 
-    Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state, String keyword, Integer pageNum, Integer pageSize, String tenantId);
+    Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state,
+                                                   String keyword, Integer pageNum, Integer pageSize, String tenantId,Long deptId);
 
     Long countByTenantId(String tenantId);
 }

+ 4 - 2
iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java

@@ -334,8 +334,10 @@ public class DeviceInfoDataCache implements IDeviceInfoData, SmartInitializingSi
     }
 
     @Override
-    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state, String keyword, Integer pageNum, Integer pageSize, String tenantId) {
-        return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group, state, keyword, pageNum, pageSize, tenantId);
+    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group,
+                                                          String state, String keyword, Integer pageNum, Integer pageSize,
+                                                          String tenantId,Long deptId) {
+        return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group, state, keyword, pageNum, pageSize, tenantId,deptId);
     }
 
     @Override

+ 3 - 2
iot-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java

@@ -208,8 +208,9 @@ public class DeviceInfoPropertyDataCache implements IDeviceInfoData {
     }
 
     @Override
-    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state, String keyword, Integer pageNum, Integer pageSize, String tenantId) {
-        return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group, state, keyword, pageNum, pageSize, tenantId);
+    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String pk, String group, String state,
+                                                          String keyword, Integer pageNum, Integer pageSize, String tenantId,Long deptId) {
+        return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group, state, keyword, pageNum, pageSize, tenantId,deptId);
     }
 
     @Override

+ 4 - 2
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java

@@ -547,7 +547,9 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
 
 
     @Override
-    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String productKey, String group, String state, String keyword, Integer page, Integer size, String tenantId) {
+    public Paging<DeviceInfo> findByConditionsAndTenantId(String uid, String subUid, String productKey,
+                                                          String group, String state, String keyword, Integer page,
+                                                          Integer size, String tenantId,Long deptId) {
         if(StringUtils.isBlank(tenantId)){
             return new Paging<>(0, Collections.emptyList());
         }
@@ -579,7 +581,7 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
 //        }
         if (StringUtils.isNotBlank(tenantId)){
             query.where(tbDeviceInfo.tenantId.eq(tenantId));
-            List<Long> finalDeptList = PredicateBuilder.queryCacheChildDeptIds(tenantId);
+            List<Long> finalDeptList = PredicateBuilder.queryCacheChildDeptsByDeptId(tenantId,deptId);
             if(CollectionUtil.isNotEmpty(finalDeptList)){
                 query.where(tbDeviceInfo.createDept.in(finalDeptList));
             }

+ 19 - 4
iot-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/util/PredicateBuilder.java

@@ -9,10 +9,7 @@ import com.querydsl.core.types.Predicate;
 import com.querydsl.core.types.dsl.BooleanExpression;
 import com.querydsl.core.types.dsl.Expressions;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
@@ -142,4 +139,22 @@ public class PredicateBuilder {
     System.out.println("##########################"+deptList);
     return deptList;
   }
+
+  public static List<Long> queryCacheChildDeptsByDeptId(String tenantId,Long deptId){
+    if(Objects.isNull(deptId)){
+      deptId = LoginHelper.getDeptId();
+    }
+    List<Long> deptList = new ArrayList<>();
+    if(ObjectUtil.isNotNull(deptId)){
+      String ChildDept = RedisUtils.getCacheObject(GlobalConstants.DEPT_CHILD_PREFIX+tenantId+":"+deptId);
+      if(StringUtils.isNotEmpty(ChildDept)){
+        deptList= Arrays.stream(StringUtils.split(ChildDept,",")).map(Long::parseLong).collect(Collectors.toList());
+        deptList.add(deptId);
+      }else{
+        deptList = Collections.singletonList(deptId);
+      }
+    }
+    System.out.println("##########################"+deptList);
+    return deptList;
+  }
 }

+ 2 - 1
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceManagerServiceImpl.java

@@ -107,8 +107,9 @@ public class DeviceManagerServiceImpl implements IDeviceManagerService {
         String group = query.getGroup();
         String state = query.getState();
         String tenantId = TenantHelper.getTenantId();
+        Long createDept = pageRequest.getData().getCreateDept();
         return deviceInfoData.findByConditionsAndTenantId(uid, subUid, pk, group,
-                state, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(),tenantId);
+                state, keyword, pageRequest.getPageNum(), pageRequest.getPageSize(),tenantId,createDept);
 //        return deviceInfoData.findByConditions(uid, subUid, pk, group,
 //                state, keyword, pageRequest.getPageNum(), pageRequest.getPageSize());
     }