瀏覽代碼

更新!

TRX 1 年之前
父節點
當前提交
c9fd6796b4

+ 13 - 12
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/permiss/PermissSettingConfigModel.java

@@ -1,17 +1,15 @@
 package com.zhongshu.card.client.model.devices.permiss;
 
-import com.zhongshu.card.client.model.devices.DeviceInfoSimpleModel;
 import com.zhongshu.card.client.type.Sex;
+import com.zhongshu.card.client.type.device.PermissSettingDeviceType;
 import com.zhongshu.card.client.type.device.PermissSettingType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import org.apache.commons.lang3.ObjectUtils;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @author TRX
@@ -43,18 +41,21 @@ public class PermissSettingConfigModel {
     @Schema(description = "关联的数据名称")
     private String aboutShowDataName = "";
 
-    @Schema(description = "设备列表")
-    private List<String> deviceIds = new ArrayList<>();
+    @Schema(description = "设备类型--分组、设备")
+    private PermissSettingDeviceType permissSettingDeviceType;
 
-    private List<DeviceInfoSimpleModel> deviceInfos = new ArrayList<>();
+    private String permissSettingDeviceTypeStr;
 
-    private String deviceNames = "";
-
-    public String getDeviceNames() {
-        if (ObjectUtils.isNotEmpty(deviceInfos)) {
-            List<String> names = deviceInfos.stream().map(it -> it.getDeviceName()).collect(Collectors.toUnmodifiableList());
-            return String.join(",", names);
+    public String getPermissSettingDeviceTypeStr() {
+        if (permissSettingDeviceType != null) {
+            return permissSettingDeviceType.getRemark();
         }
         return "";
     }
+
+    @Schema(description = "设备列表")
+    private List<String> deviceIds = new ArrayList<>();
+
+    private String deviceNames = "";
+
 }

+ 4 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/permiss/PermissSettingConfigParam.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.client.model.devices.permiss;
 
 import com.zhongshu.card.client.type.Sex;
+import com.zhongshu.card.client.type.device.PermissSettingDeviceType;
 import com.zhongshu.card.client.type.device.PermissSettingType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -28,6 +29,9 @@ public class PermissSettingConfigParam {
     @Schema(description = "关联配置的数据id,如:角色id集合")
     private List<String> dataIds = new ArrayList<>();
 
+    @Schema(description = "设备类型--分组、设备")
+    private PermissSettingDeviceType permissSettingDeviceType;
+
     @Schema(description = "设备列表")
     private List<String> deviceIds = new ArrayList<>();
 

+ 20 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/type/device/PermissSettingDeviceType.java

@@ -0,0 +1,20 @@
+package com.zhongshu.card.client.type.device;
+
+import lombok.Getter;
+
+/**
+ * 权限 设备-分组类型
+ */
+public enum PermissSettingDeviceType {
+    Device("设备"),
+    DeviceGroup("设备分组"),
+    Area("区域"),
+    ;
+
+    @Getter
+    private String remark;
+
+    PermissSettingDeviceType(String remark) {
+        this.remark = remark;
+    }
+}

+ 11 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/permiss/DevicePermiss.java

@@ -41,9 +41,12 @@ public class DevicePermiss extends SuperMain {
     @DBRef(lazy = true)
     private DeviceInfo deviceInfo;
 
-    @Schema(description = "设备用户权限设置方式")
+    @Schema(description = "设备用户权限设置方式--手动添加、设备权限规则配置")
     private PermissDataType permissDataType = PermissDataType.UserSetting;
 
+    @Schema(description = "关联的设备权限规则数据id")
+    private String aboutPermissSettingId = "";
+
     //------------------设备冗余数据 start-------------------
     @Schema(description = "设备ID")
     private String deviceId;
@@ -107,10 +110,15 @@ public class DevicePermiss extends SuperMain {
     @Schema(description = "用户状态")
     private UserState state = UserState.Normal;
 
-    @Schema(description = "权限是否下发")
-    private Boolean isUsed = Boolean.FALSE;
+    //----------------权限状态等信息 start-------------
 
     @Schema(description = "是否可用")
     private DataState dataState = DataState.Enable;
 
+    @Schema(description = "权限是否下发")
+    private Boolean isUsed = Boolean.FALSE;
+
+    @Schema(description = "下发时间")
+    private Long usedTime = 0L;
+
 }

+ 49 - 6
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/PermissSettingService.java

@@ -5,17 +5,22 @@ import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
 import com.zhongshu.card.client.model.devices.permiss.*;
 import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.device.PermissSettingDeviceType;
 import com.zhongshu.card.client.type.device.PermissSettingType;
+import com.zhongshu.card.server.core.dao.devices.DeviceGroupDao;
 import com.zhongshu.card.server.core.dao.devices.PermissSettingDao;
 import com.zhongshu.card.server.core.dao.devices.PermissTimeSlotDao;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.org.RoleDao;
+import com.zhongshu.card.server.core.dao.org.UserGroupDao;
 import com.zhongshu.card.server.core.dao.school.AreaDao;
+import com.zhongshu.card.server.core.domain.devices.DeviceGroup;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
 import com.zhongshu.card.server.core.domain.devices.permiss.PermissSetting;
 import com.zhongshu.card.server.core.domain.devices.permiss.PermissTimeSlot;
 import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.org.Role;
+import com.zhongshu.card.server.core.domain.org.UserGroup;
 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.devices.DeviceInfoServiceImpl;
@@ -63,6 +68,12 @@ public class PermissSettingService extends SuperService {
     @Autowired
     private AreaDao areaDao;
 
+    @Autowired
+    private UserGroupDao userGroupDao;
+
+    @Autowired
+    private DeviceGroupDao deviceGroupDao;
+
     /**
      * 保存设备权限规则数据
      *
@@ -150,18 +161,43 @@ public class PermissSettingService extends SuperService {
         return model;
     }
 
+    /**
+     * 人员 - 设备关联模型转换
+     *
+     * @param param
+     * @return
+     */
     private PermissSettingConfigModel toConfigModel(PermissSettingConfigParam param) {
         PermissSettingConfigModel model = new PermissSettingConfigModel();
         if (ObjectUtils.isNotEmpty(param)) {
             BeanUtils.copyProperties(param, model);
 
-            // 设备信息
-            List<DeviceInfo> deviceInfos = deviceInfoService.getDevicesByDeviceIds(param.getDeviceIds());
-            if (ObjectUtils.isNotEmpty(deviceInfos)) {
-                model.setDeviceInfos(deviceInfos.stream().map(it -> {
-                    return deviceInfoService.toSimpleModel(it);
-                }).toList());
+            String deviceNames = "";
+
+            if (ObjectUtils.isNotEmpty(param.getDeviceIds())) {
+                List<String> names = new ArrayList<>();
+                if (param.getPermissSettingDeviceType() == PermissSettingDeviceType.Device) {
+                    // 设备信息
+                    List<DeviceInfo> deviceInfos = deviceInfoService.getDevicesByDeviceIds(param.getDeviceIds());
+                    if (ObjectUtils.isNotEmpty(deviceInfos)) {
+                        names = deviceInfos.stream().map(it -> it.getDeviceName()).toList();
+                    }
+                } else if (param.getPermissSettingDeviceType() == PermissSettingDeviceType.DeviceGroup) {
+                    List<DeviceGroup> list = deviceGroupDao.findByIdIn(param.getDeviceIds());
+                    if (ObjectUtils.isNotEmpty(list)) {
+                        names = list.stream().map(it -> it.getName()).toList();
+                    }
+                } else if (param.getPermissSettingDeviceType() == PermissSettingDeviceType.Area) {
+                    List<Area> areas = areaDao.findByIdIn(param.getDeviceIds());
+                    if (ObjectUtils.isNotEmpty(areas)) {
+                        names = areas.stream().map(it -> it.getName()).toList();
+                    }
+                }
+                if (ObjectUtils.isNotEmpty(names)) {
+                    deviceNames = StringUtils.join(names, ",");
+                }
             }
+            model.setDeviceNames(deviceNames);
 
             String aboutShowDataName = "";
             // 关联的数据名称
@@ -191,7 +227,14 @@ public class PermissSettingService extends SuperService {
                         if (ObjectUtils.isNotEmpty(areas)) {
                             names = areas.stream().map(it -> it.getName()).toList();
                         }
+                    } else if (param.getPermissSettingType() == PermissSettingType.UserGroup) {
+                        // 用户分组
+                        List<UserGroup> userGroups = userGroupDao.findByIdIn(param.getDataIds());
+                        if (ObjectUtils.isNotEmpty(userGroups)) {
+                            names = userGroups.stream().map(it -> it.getName()).toList();
+                        }
                     }
+
                     if (ObjectUtils.isNotEmpty(names)) {
                         aboutShowDataName = String.join(",", names);
                     }

+ 21 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectDictService.java

@@ -74,8 +74,28 @@ public class ProjectDictService extends SuperService {
     }
 
     public void saveList(ProjectDict projectDict, List<ProjectDictListParam> params) {
+        // 原来的数据
         List<ProjectDictList> list = projectDictListDao.findByProjectDictOrderBySortAsc(projectDict);
-
+        List<String> ids = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(list)) {
+            ids = list.stream().map(it -> it.getId()).toList();
+        }
+        if (ObjectUtils.isNotEmpty(params)) {
+            List<ProjectDictList> saveList = new ArrayList<>();
+            for (ProjectDictListParam param : params) {
+                ProjectDictList projectDictList = new ProjectDictList();
+                BeanUtils.copyProperties(param, projectDictList);
+                saveList.add(projectDictList);
+                if (StringUtils.isNotEmpty(param.getId()) && ids.contains(param.getId())) {
+                    ids.remove(param.getId());
+                }
+            }
+            projectDictListDao.saveAll(saveList);
+        }
+        // 删除去掉的数据
+        if (ObjectUtils.isNotEmpty(ids)) {
+            projectDictListDao.deleteAllById(ids);
+        }
     }
 
     public ResultContent<Page<ProjectDictModel>> page(ProjectDictSearch param, Pageable pageable) {