瀏覽代碼

修改装置系统、用户管理的增删改

丁治程 10 月之前
父節點
當前提交
dcd812e6f7

+ 2 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/base/convert/InterlockBaseConvert.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.base.convert;
 import org.jeecg.modules.base.entity.InterlockBase;
 import org.jeecg.modules.base.entity.InterlockBaseHy;
 import org.jeecg.modules.base.vo.InterlockBaseTreeVO;
+import org.jeecg.modules.base.vo.InterlockBaseVo;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.ReportingPolicy;
@@ -51,4 +52,5 @@ public interface InterlockBaseConvert {
     @Mapping(target = "controlSystemStatusName", source ="controlSystemStatusName")
     InterlockBaseHy toInterlockBaseHy(String interlockSystemId, String interlockStatus, String interlockStatusName, String bypass, String bypassName, String instrumentStatus, String instrumentStatusName, String controlSystemStatus, String controlSystemStatusName);
 
+    InterlockBase toInterlockBase(InterlockBaseVo interlockBaseVo);
 }

+ 16 - 0
jeecg-module-interlock/src/main/java/org/jeecg/modules/base/vo/InterlockBaseVo.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.base.vo;
+
+import lombok.Data;
+import org.jeecg.modules.base.entity.InterlockBase;
+
+/**
+ * @author dzc
+ * @date 2024/8/8 16:04
+ * @package org.jeecg.modules.base.vo
+ * @project interlock_server
+ * @des
+ */
+@Data
+public class InterlockBaseVo extends InterlockBase {
+    private java.lang.String groupName;
+}

+ 97 - 90
jeecg-module-interlock/src/main/java/org/jeecg/modules/interlockUser/service/impl/InterlockUserServiceImpl.java

@@ -60,9 +60,6 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
     @SuppressWarnings("all")
     private RestClientService restClientService;
 
-    @Autowired
-    @SuppressWarnings("all")
-    private IIotedgeCollectDataService iotedgeCollectDataService;
 
     @Autowired
     @SuppressWarnings("all")
@@ -110,45 +107,48 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         SysUserRole userRole = new SysUserRole(userId, interlockUserAdd.getRoleId());
         sysUserRoleService.save(userRole);
 
-        //try {
-        //    restClientService.addSSOUser(interlockUserAdd.getUsername());
-        //} catch (Exception e) {
-        //    log.info("SSO新增用户报错:{}",e.getMessage());
-        //} finally {
-        //    JSONObject jsonObject = restClientService.invitationSSOUserInIoTEdge(interlockUserAdd.getUsername(), eiToken);
-        //    String code = (String) jsonObject.get("code");
-        //    String iotUserId = (String) jsonObject.get("userId");
-        //
-        //    interlockUser.setIotUserid(iotUserId);
-        //    this.updateById(interlockUser);
-        //
-        //    if (ObjectUtil.isNotNull(code)){
-        //        log.info("IoTEdge邀请SSO用户失败: {}"+jsonObject.get("message").toString());
-        //        return Result.error("IoTEdge邀请SSO用户失败:"+jsonObject.get("message").toString());
-        //    }
-        //    String rloe = "";
-        //    if ("0".equals(interlockUserAdd.getRole())){
-        //        rloe = "systemAdmin";
-        //        restClientService.setUserRole(iotUserId,"",rloe,eiToken);
-        //    }else {
-        //        for (InterlockSystemLimit item : interlockUserAdd.getSystemLimitList()) {
-        //            //InterlockBase base = baseService.getById(item.getId());
-        //            if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "0".equals(item.getLimitType())){
-        //                rloe = "groupAdmin";
-        //                restClientService.setUserRole(iotUserId,item.getIotedgeGroupId(),rloe,eiToken);
-        //            }else if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "1".equals(item.getLimitType())){
-        //                rloe = "groupView";
-        //                restClientService.setUserRole(iotUserId,item.getIotedgeGroupId(),rloe,eiToken);
-        //            }
-        //        }
-        //    }
-        //
-        //}
+        addSSOIoTEdgeUser(interlockUserAdd,interlockUser,eiToken);
 
 
         return Result.OK("用户添加成功!");
     }
 
+    private void addSSOIoTEdgeUser(InterlockUserAdd interlockUserAdd, InterlockUser interlockUser, String eiToken) {
+        try {
+            restClientService.addSSOUser(interlockUserAdd.getUsername());
+        } catch (Exception e) {
+            log.info("SSO新增用户报错:{}",e.getMessage());
+        } finally {
+            JSONObject jsonObject = restClientService.invitationSSOUserInIoTEdge(interlockUserAdd.getUsername(), eiToken);
+            String code = (String) jsonObject.get("code");
+            String iotUserId = (String) jsonObject.get("userId");
+
+            interlockUser.setIotUserid(iotUserId);
+            this.updateById(interlockUser);
+
+            if (ObjectUtil.isNotNull(code)){
+                log.info("IoTEdge邀请SSO用户失败: {}"+jsonObject.get("message").toString());
+            }
+            String rloe = "";
+            if ("0".equals(interlockUserAdd.getRole())){
+                rloe = "systemAdmin";
+                restClientService.setUserRole(iotUserId,"",rloe,eiToken);
+            }else {
+                for (InterlockSystemLimit item : interlockUserAdd.getSystemLimitList()) {
+                    //InterlockBase base = baseService.getById(item.getId());
+                    if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "0".equals(item.getLimitType())){
+                        rloe = "groupAdmin";
+                        restClientService.setUserRole(iotUserId,item.getIotedgeGroupId(),rloe,eiToken);
+                    }else if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "1".equals(item.getLimitType())){
+                        rloe = "groupView";
+                        restClientService.setUserRole(iotUserId,item.getIotedgeGroupId(),rloe,eiToken);
+                    }
+                }
+            }
+
+        }
+    }
+
     /**
      *   author: sl
      *   version: 1.0
@@ -180,7 +180,6 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         interlockUser.setUsername(interlockUserAdd.getUsername());//登陆账户名
         interlockUser.setRemark(interlockUserAdd.getRemark());//描述
         interlockUser.setRole(interlockUserAdd.getRole());//角色(0管理员1其他角色)
-        this.updateById(interlockUser);//更新用户表
         //创建一个用户权限列表,用来存放系统权限信息 填充权限信息列表
         List<InterlockSystemLimit> interlockSystemLimitList = new ArrayList<>(interlockUserAdd.getSystemLimitList());
         for(InterlockSystemLimit interlockSystemLimit:interlockSystemLimitList){
@@ -188,39 +187,9 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
             interlockSystemLimit.setInterlockUserId(userId);
         }
 
-        //InterlockUser user = this.getById(interlockUser);
-        //
-        //String rloe = "";
-        //if ("0".equals(interlockUserAdd.getRole())){
-        //    rloe = "systemAdmin";
-        //    restClientService.setUserRole(user.getIotUserid(),"",rloe,eiToken);
-        //}else {
-        //    if ("1".equals(user.getRole())){
-        //        List<InterlockSystemLimit> list = interlockSystemLimitService.selectListByUserId(user.getId());
-        //        for (InterlockSystemLimit limit : list) {
-        //            if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "0".equals(limit.getLimitType())){
-        //                rloe = "groupAdmin";
-        //                restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
-        //            }else if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "1".equals(limit.getLimitType())){
-        //                rloe = "groupView";
-        //                restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
-        //            }
-        //        }
-        //    }
-        //
-        //    for (InterlockSystemLimit item : interlockUserAdd.getSystemLimitList()) {
-        //        //InterlockBase base = baseService.getById(item.getId());
-        //        if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "0".equals(item.getLimitType())){
-        //            rloe = "groupAdmin";
-        //            restClientService.setUserRole(user.getIotUserid(),item.getIotedgeGroupId(),rloe,eiToken);
-        //        }else if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "1".equals(item.getLimitType())){
-        //            rloe = "groupView";
-        //            restClientService.setUserRole(user.getIotUserid(),item.getIotedgeGroupId(),rloe,eiToken);
-        //        }
-        //    }
-        //}
-
+        updateSSOIoTEdegUser(interlockUserAdd,interlockUser,eiToken);
 
+        this.updateById(interlockUser);//更新用户表
         //先删后加  系统权限表
         interlockSystemLimitService.remove(new QueryWrapper<InterlockSystemLimit>().lambda().eq(InterlockSystemLimit::getInterlockUserId, userId));
         interlockSystemLimitService.saveBatch(interlockSystemLimitList);
@@ -234,6 +203,41 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         return Result.OK("用户编辑成功!");
     }
 
+    private void updateSSOIoTEdegUser(InterlockUserAdd interlockUserAdd, InterlockUser interlockUser,String eiToken) {
+
+        InterlockUser user = this.getById(interlockUser);
+
+        String rloe = "";
+        if ("0".equals(interlockUserAdd.getRole())){
+            rloe = "systemAdmin";
+            restClientService.setUserRole(user.getIotUserid(),"",rloe,eiToken);
+        }else {
+            if ("1".equals(user.getRole())){
+                List<InterlockSystemLimit> list = interlockSystemLimitService.selectListByUserId(user.getId());
+                for (InterlockSystemLimit limit : list) {
+                    if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "0".equals(limit.getLimitType())){
+                        rloe = "groupAdmin";
+                        restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+                    }else if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "1".equals(limit.getLimitType())){
+                        rloe = "groupView";
+                        restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+                    }
+                }
+            }
+
+            for (InterlockSystemLimit item : interlockUserAdd.getSystemLimitList()) {
+                //InterlockBase base = baseService.getById(item.getId());
+                if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "0".equals(item.getLimitType())){
+                    rloe = "groupAdmin";
+                    restClientService.setUserRole(user.getIotUserid(),item.getIotedgeGroupId(),rloe,eiToken);
+                }else if ("1".equals(interlockUserAdd.getRole()) && ObjectUtil.isNotNull(item.getLimitType()) && "1".equals(item.getLimitType())){
+                    rloe = "groupView";
+                    restClientService.setUserRole(user.getIotUserid(),item.getIotedgeGroupId(),rloe,eiToken);
+                }
+            }
+        }
+    }
+
     /**
      *   author: sl
      *   version: 1.0
@@ -252,26 +256,7 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         }
 
 
-        //InterlockUser user = this.getById(id);
-        ////restClientService.deleteIoTEdgeUser(user.getIotUserid(),eiToken);
-        //
-        //String rloe = "";
-        //if ("0".equals(user.getRole())){
-        //    rloe = "systemAdmin";
-        //    restClientService.deleteUserRole(user.getIotUserid(),"",rloe,eiToken);
-        //}else {
-        //    List<InterlockSystemLimit> list = interlockSystemLimitService.selectListByUserId(user.getId());
-        //    for (InterlockSystemLimit limit : list) {
-        //        if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "0".equals(limit.getLimitType())){
-        //            rloe = "groupAdmin";
-        //            restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
-        //        }else if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "1".equals(limit.getLimitType())){
-        //            rloe = "groupView";
-        //            restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
-        //        }
-        //    }
-        //}
-
+       deleteSSOIoTEdgeUser(id,eiToken);
 
         this.removeById(id);
         //删除方法1  删除用户权限
@@ -289,6 +274,28 @@ public class InterlockUserServiceImpl extends ServiceImpl<InterlockUserMapper, I
         return Result.OK("用户删除成功!");
     }
 
+    private void deleteSSOIoTEdgeUser(String id, String eiToken) {
+        InterlockUser user = this.getById(id);
+        //restClientService.deleteIoTEdgeUser(user.getIotUserid(),eiToken);
+        String rloe = "";
+        if ("0".equals(user.getRole())){
+            rloe = "systemAdmin";
+            restClientService.deleteUserRole(user.getIotUserid(),"",rloe,eiToken);
+        }else {
+            List<InterlockSystemLimit> list = interlockSystemLimitService.selectListByUserId(user.getId());
+            for (InterlockSystemLimit limit : list) {
+                if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "0".equals(limit.getLimitType())){
+                    rloe = "groupAdmin";
+                    restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+                }else if (ObjectUtil.isNotNull(limit.getLimitType()) && ObjectUtil.isNotNull(limit.getIotedgeGroupId()) && "1".equals(limit.getLimitType())){
+                    rloe = "groupView";
+                    restClientService.deleteUserRole(user.getIotUserid(),limit.getIotedgeGroupId(),rloe,eiToken);
+                }
+            }
+        }
+
+    }
+
     /**
      *   author: sl
      *   version: 1.0

File diff suppressed because it is too large
+ 9 - 8
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/controller/IotedgeCollectDataController.java


+ 7 - 2
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/IIotedgeCollectDataService.java

@@ -2,6 +2,9 @@ package org.jeecg.modules.iotedgeCollectData.service;
 
 import com.alibaba.fastjson.JSONObject;
 import org.jeecg.modules.base.entity.InterlockBase;
+import org.jeecg.modules.base.vo.InterlockBaseVo;
+import org.jeecg.modules.interlockUser.entity.InterlockUser;
+import org.jeecg.modules.interlockUser.entity.InterlockUserAdd;
 import org.jeecg.modules.iotedgeCollectData.entity.IoTEdgeDevices;
 import org.jeecg.modules.iotedgeCollectData.entity.IotedgeCollectData;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -22,11 +25,13 @@ public interface IIotedgeCollectDataService extends IService<IotedgeCollectData>
 
     IotedgeCollectData getOneInfo(String deviceId, String moduleName, String tagName, String beginDate);
 
-    String addGroup(InterlockBase interlockBase, String groupName, HttpServletRequest request);
+    String addGroup(InterlockBaseVo interlockBaseVo, HttpServletRequest request);
 
     String deleteGroup(String interlockId, HttpServletRequest request);
 
-    String updateGroup(InterlockBase interlockBase, String groupName, HttpServletRequest request);
+    String updateGroup(InterlockBaseVo interlockBaseVo, HttpServletRequest request);
 
     Map<String, Object> getAllGroup();
+
+    String addIoTedgeUser(String userName,String ssoRole,InterlockUser interlockUser, String elToken);
 }

+ 6 - 3
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/RestClientService.java

@@ -448,11 +448,14 @@ public class RestClientService {
     public JSONObject invitationSSOUserInIoTEdge(String userName,String elToken){
         //String url = "http://127.0.0.1:8082/v1/users/username"+"/"+userName;
         String url = configService.getConfigValue(ConfigInfo.IOTEDGE_ADDUSER)+"/"+userName;
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("groupId","");
+        jsonObject.put("role","");
         HttpHeaders headers = new HttpHeaders();
         MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
         headers.setContentType(type);
         headers.add("Authorization", "Bearer " + elToken);
-        HttpEntity<String> httpEntity = new HttpEntity<String>(null, headers);
+        HttpEntity<String> httpEntity = new HttpEntity<String>(jsonObject.toString(), headers);
         ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST,httpEntity, JSONObject.class);
         return response.getBody();
     }
@@ -502,7 +505,7 @@ public class RestClientService {
     /**
     *   author: dzc
     *   version: 1.0
-    *   des: 调用 SSO 的接口,删除用户
+    *   des: 调用 SSO 的接口,删除(禁用)用户 (暂时没有使用,删除用户的时候,删除iotedge中的用户权限,不删用户)
     *   date: 2024/8/7
     */
     public JSONObject deleteSSOUser(String userName){
@@ -521,7 +524,7 @@ public class RestClientService {
     /**
     *   author: dzc
     *   version: 1.0
-    *   des: 调用 IoTEdge 的接口,删除用户
+    *   des: 调用 IoTEdge 的接口,删除用户 (暂时没有使用,删除用户的时候,删除iotedge中的用户权限,不删用户)
     *   date: 2024/8/7
     */
     public JSONObject deleteIoTEdgeUser(String userId,String elToken){

+ 48 - 2
jeecg-module-interlock/src/main/java/org/jeecg/modules/iotedgeCollectData/service/impl/IotedgeCollectDataServiceImpl.java

@@ -8,8 +8,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import lombok.extern.slf4j.Slf4j;
 import net.sf.saxon.expr.Component;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.base.convert.InterlockBaseConvert;
 import org.jeecg.modules.base.entity.InterlockBase;
 import org.jeecg.modules.base.service.IInterlockBaseService;
+import org.jeecg.modules.base.vo.InterlockBaseVo;
+import org.jeecg.modules.interlockSystemLimit.entity.InterlockSystemLimit;
+import org.jeecg.modules.interlockUser.entity.InterlockUser;
+import org.jeecg.modules.interlockUser.entity.InterlockUserAdd;
+import org.jeecg.modules.interlockUser.service.IInterlockUserService;
 import org.jeecg.modules.iotedgeCollectData.entity.IoTEdgeDevices;
 import org.jeecg.modules.iotedgeCollectData.entity.IotedgeCollectData;
 import org.jeecg.modules.iotedgeCollectData.entity.IotedgeTag;
@@ -50,6 +57,10 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
     @SuppressWarnings("all")
     private IInterlockBaseService baseService;
 
+    @Autowired
+    @SuppressWarnings("all")
+    private IInterlockUserService interlockUserService;
+
     private static final String SUCCESS_CODE = "200";
     private static final String ERROR_CODE_ONE = "400";
     private static final String ERROR_CODE_TWO = "500";
@@ -125,10 +136,14 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
     }
 
     @Override
-    public String addGroup(InterlockBase interlockBase, String groupName, HttpServletRequest request) {
+    public String addGroup(InterlockBaseVo interlockBaseVo, HttpServletRequest request) {
 
         String resultCode = SUCCESS_CODE;
 
+        String groupName = interlockBaseVo.getGroupName();
+
+        InterlockBase interlockBase = InterlockBaseConvert.INSTANCE.toInterlockBase(interlockBaseVo);
+
         baseService.addInterlockBase(interlockBase);
 
         if ("1".equals(interlockBase.getInterlockType())){
@@ -245,7 +260,7 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
 
 
     @Override
-    public String updateGroup(InterlockBase interlockBase, String groupName, HttpServletRequest request) {
+    public String updateGroup(InterlockBaseVo interlockBaseVo, HttpServletRequest request) {
         String resultCode = SUCCESS_CODE;
 
         String eiToken = "";
@@ -259,6 +274,10 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
             }
         }
 
+        String groupName = interlockBaseVo.getGroupName();
+
+        InterlockBase interlockBase = InterlockBaseConvert.INSTANCE.toInterlockBase(interlockBaseVo);
+
         InterlockBase base = baseService.getById(interlockBase);
 
         baseService.updateInterlockBase(interlockBase);
@@ -305,4 +324,31 @@ public class IotedgeCollectDataServiceImpl extends ServiceImpl<IotedgeCollectDat
 
         return groupMap;
     }
+
+    @Override
+    public String addIoTedgeUser(String userName, String ssoRole, InterlockUser interlockUser, String elToken) {
+        String result = "";
+
+        try {
+            JSONObject jsonObject = restClientService.invitationSSOUserInIoTEdge(userName, elToken);
+            String code = (String) jsonObject.get("code");
+            String iotUserId = (String) jsonObject.get("userId");
+
+            interlockUser.setIotUserid(iotUserId);
+            interlockUserService.updateById(interlockUser);
+
+            String rloe = "";
+            if ("globalAdmin".equals(ssoRole)){
+                rloe = "systemAdmin";
+                restClientService.setUserRole(iotUserId,"",rloe,elToken);
+            }else {
+
+            }
+        } catch (Exception e) {
+            log.info("IoTEdge邀请SSO用户失败: {}"+e.getMessage());
+        }
+
+
+        return null;
+    }
 }