浏览代码

feat:新增部门设备查询接口

zhuyapeng 2 年之前
父节点
当前提交
3c64df7352

+ 13 - 0
smsb-customer-manager-adapter/src/main/java/com/inspur/customer/web/controller/keyclaok/KeycloakDepartmentController.java

@@ -111,4 +111,17 @@ public class KeycloakDepartmentController {
         if(departmentCmd.getActivate() == null){departmentCmd.setActivate(true);}
         return SingleResponse.of(departmentService.listDepartmentDevice(departmentCmd));
     }
+
+    /**
+     * 部门携带设备信息列表展示
+     *
+     * @param departmentCmd
+     * @return 部门设备列表
+     */
+    @SysLogIgnore
+    @GetMapping("/tenant/department/device/list")
+    public Response listDepartmentDeviceSimple(DeviceDepartmentCmd departmentCmd){
+        if(departmentCmd.getActivate() == null){departmentCmd.setActivate(true);}
+        return SingleResponse.of(departmentService.listDepartmentDeviceSimple(departmentCmd));
+    }
 }

+ 40 - 0
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/org/SmsbDepartmentServiceImpl.java

@@ -351,6 +351,46 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
         return deviceDepartmentDto;
     }
 
+    @Override
+    public DeviceDepartmentSimpleDto listDepartmentDeviceSimple(DeviceDepartmentCmd departmentCmd) {
+        // 1. 获取对应部门树
+        SmsbDepartmentCO department = this.queryDepartment(departmentCmd.getTenant() , departmentCmd.getOrg());
+        DeviceDepartmentSimpleDto deviceDepartmentSimpleDto = new DeviceDepartmentSimpleDto();
+        // 2. 获取部门-List<设备id> map
+        if(StringUtils.isEmpty(departmentCmd.getOrg()) && department.getId() == null){
+            // 根节点为租户,该租户下未被分配的设备
+            deviceDepartmentSimpleDto.setDevices(deviceService.ListDeviceUnboundSimple(departmentCmd.getTenant() , departmentCmd.getActivate()));
+        }else {
+            // 根节点为部门
+            deviceDepartmentSimpleDto.setDevices(deviceService.ListDeviceBindSimple(department.getPath() , departmentCmd.getActivate()));
+        }
+        deviceDepartmentSimpleDto.setChildren(childRecurrenceHandleSimple(department.getChildren() , departmentCmd.getActivate()));
+        // 3. 组装设备信息并返回
+        deviceDepartmentSimpleDto.setTenant(department.getTenant());
+        return deviceDepartmentSimpleDto;
+    }
+
+    /**
+     * 简易参数
+     * @param children
+     * @param activate
+     * @return
+     */
+    private List<DeviceDepartmentSimpleDto> childRecurrenceHandleSimple(List<SmsbDepartmentCO> children , Boolean activate){
+        List<DeviceDepartmentSimpleDto> childrenList = Lists.newArrayList();
+        if(!CollectionUtils.isEmpty(children)){
+            children.forEach(child->{
+                DeviceDepartmentSimpleDto deviceDepartmentSimpleDto = new DeviceDepartmentSimpleDto();
+                BeanUtils.copyProperties(child , deviceDepartmentSimpleDto);
+                deviceDepartmentSimpleDto.setDevices(deviceService.ListDeviceBind(child.getPath() , activate));
+                deviceDepartmentSimpleDto.setChildren(childRecurrenceHandleSimple(child.getChildren() , activate));
+                childrenList.add(deviceDepartmentSimpleDto);
+            });
+        }
+        return childrenList;
+    }
+
+
     private List<DeviceDepartmentDto> chaildRecurrenceHandle(List<SmsbDepartmentCO> children , Boolean activate){
         List<DeviceDepartmentDto> childrenList = Lists.newArrayList();
         if(!CollectionUtils.isEmpty(children)){

+ 8 - 0
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/org/SmsbDepartmentService.java

@@ -121,6 +121,14 @@ public interface SmsbDepartmentService {
      */
     DeviceDepartmentDto listDepartmentDevice(DeviceDepartmentCmd departmentCmd);
 
+    /**
+     * 简化获取携带设备信息部门列表
+     *
+     * @param departmentCmd
+     * @return
+     */
+    DeviceDepartmentSimpleDto listDepartmentDeviceSimple(DeviceDepartmentCmd departmentCmd);
+
     /**
      * 冒泡获取上级部门列表
      *

+ 40 - 0
smsb-customer-manager-client/src/main/java/com/inspur/customer/object/org/DeviceDepartmentSimpleDto.java

@@ -0,0 +1,40 @@
+package com.inspur.customer.object.org;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author wangbo13
+ * @Date 2023/3/20 16:25
+ * @Version 1.0
+ */
+@Data
+public class DeviceDepartmentSimpleDto implements Serializable {
+    private static final long serialVersionUID = -5239662670498601014L;
+
+    private Long id;
+    /**
+     * 部门中文名称
+     */
+    private String name;
+
+    /**
+     * 路径
+     */
+    private String path;
+    /**
+     * 租户
+     */
+    private String tenant;
+
+    private Object devices;
+
+
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private List<DeviceDepartmentSimpleDto> children = new ArrayList<>();
+}