From 45cdf98e0446d7c5144f1ab39077e9475ff83d64 Mon Sep 17 00:00:00 2001 From: wangfs <15029758498@163.com> Date: Sat, 17 Jan 2026 13:45:09 +0800 Subject: [PATCH] 用户设备提交 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceDeptTreeRespVO.java | 11 +++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java | 3 +++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/deviceuser/DeviceUserDO.java | 2 ++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java | 1 + urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java | 6 ++++++ urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/util/tree/UserDO.java | 2 ++ 7 files changed, 84 insertions(+), 0 deletions(-) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceDeptTreeRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceDeptTreeRespVO.java index 6930a85..85db1a6 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceDeptTreeRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceDeptTreeRespVO.java @@ -50,6 +50,17 @@ public class DeviceDeptTreeRespVO { * 节点类型:1部门 3设备 */ private Integer nodeType; + + /** + * 节点类型为设备时,该值有值 + * 产品名称 + */ + private String productName; + /** + * 节点类型为设备时,该值有值 + * 产品编码 + */ + private String productCode; /** * 子节点,和当前一样的结构 */ diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java index f85dfb9..002d604 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/deviceuser/vo/DeviceUserSaveReqVO.java @@ -35,6 +35,9 @@ public class DeviceUserSaveReqVO { @Data public static class DeviceInfoDO { + + private String productCode; + @Schema(description = "产品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") private String productName; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/deviceuser/DeviceUserDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/deviceuser/DeviceUserDO.java index 5abf0bb..6db3ef1 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/deviceuser/DeviceUserDO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/deviceuser/DeviceUserDO.java @@ -43,6 +43,8 @@ public class DeviceUserDO extends BaseDO { * 提交人用户 */ private String userName; + + private String productCode; /** * 产品名称 */ diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java index e8db66c..9dd92ad 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/deviceuser/DeviceUserServiceImpl.java @@ -51,6 +51,7 @@ public class DeviceUserServiceImpl implements DeviceUserService { DeviceUserDO deviceUser = new DeviceUserDO(); deviceUser.setDeviceNo(deviceInfo.getDeviceNo()); deviceUser.setDeviceName(deviceInfo.getDeviceName()); + deviceUser.setProductCode(deviceInfo.getProductCode()); deviceUser.setProductName(deviceInfo.getProductName()); deviceUser.setCompanyId(createReqVO.getCompanyId()); deviceUser.setDeptId(createReqVO.getDeptId()); diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java index 45973ba..0ea13d0 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptService.java @@ -158,4 +158,10 @@ public interface DeptService { * @return */ List getDeptAllList(); + /** + * 获取部门父级部门id(公司) + * @param deptId + * @return + */ + Long getParentDeptId(Long deptId); } diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java index 3bbcabe..f12767c 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/service/dept/DeptServiceImpl.java @@ -51,6 +51,7 @@ public class DeptServiceImpl implements DeptService { @Resource private AdminUserMapper userMapper; + @Override @CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST, allEntries = true) // allEntries 清空所有缓存,因为操作一个部门,涉及到多个缓存 @@ -318,6 +319,7 @@ public class DeptServiceImpl implements DeptService { UserDO userDO = new UserDO(); userDO.setUserId(adminUserDO.getId()); userDO.setUsername(adminUserDO.getUsername()); + userDO.setCompanyId(getParentDeptId(adminUserDO.getDeptId())); userDO.setDeptId(adminUserDO.getDeptId()); userDOList.add(userDO); } @@ -336,4 +338,61 @@ public class DeptServiceImpl implements DeptService { sql.lambda().eq(DeptDO::getDeleted, 0); return deptMapper.selectList(sql); } + + @Override + public Long getParentDeptId(Long deptId) { + if (deptId == null) { + return null; + } + + DeptDO dept = getDept(deptId); + if (dept == null) { + return null; + } + + // 顶级部门ID (parentId=0) + if (dept.getParentId().equals(0L)) { + return dept.getId(); + } + + // 直接是二级部门 (parentId=100) + if (dept.getParentId().equals(100L)) { + return dept.getId(); + } + + // 递归查找父部门链中parentId=100的部门 + Long result = findParentDeptWithParentId(dept.getParentId(), 100L); + // 如果找不到parentId=100的部门,返回当前部门的id作为默认值 + return result != null ? result : dept.getParentId(); + } + + /** + * 递归查找父部门链中parentId等于目标值的部门ID + * @param currentDeptId 当前部门ID + * @param targetParentId 目标parentId + * @return 匹配的部门ID,无则返回null + */ + private Long findParentDeptWithParentId(Long currentDeptId, Long targetParentId) { + if (currentDeptId == null) { + return null; + } + + DeptDO dept = getDept(currentDeptId); + if (dept == null) { + return null; + } + + // 找到目标父部门 + if (dept.getParentId().equals(targetParentId)) { + return dept.getId(); + } + + // 达到顶级部门,停止递归 + if (dept.getParentId().equals(0L)) { + return dept.getId(); // 改为返回顶级部门ID,而不是null + } + + // 继续向上查找 + return findParentDeptWithParentId(dept.getParentId(), targetParentId); + } } diff --git a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/util/tree/UserDO.java b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/util/tree/UserDO.java index 6c4de34..eaf3837 100644 --- a/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/util/tree/UserDO.java +++ b/urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/util/tree/UserDO.java @@ -10,4 +10,6 @@ public class UserDO { private String username; private Long deptId; + + private Long companyId; } -- libgit2 0.21.4