|
@@ -60,11 +60,16 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
public void addNew(StructureAddNewDTO structureAddNewDTO, List<MultipartFile> files) {
|
|
public void addNew(StructureAddNewDTO structureAddNewDTO, List<MultipartFile> files) {
|
|
log.info("开始处理【新增架构】的业务,参数为:{}, {}", structureAddNewDTO, files);
|
|
log.info("开始处理【新增架构】的业务,参数为:{}, {}", structureAddNewDTO, files);
|
|
|
|
|
|
|
|
+ PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
+ Integer createPersonId = personnelVO.getId();
|
|
|
|
+ String createPersonName = personnelVO.getName();
|
|
|
|
+ Integer tenantId = personnelVO.getTenantId();
|
|
|
|
+
|
|
Integer parentId = structureAddNewDTO.getParentId();
|
|
Integer parentId = structureAddNewDTO.getParentId();
|
|
String structureName = structureAddNewDTO.getStructureName();
|
|
String structureName = structureAddNewDTO.getStructureName();
|
|
//检查名称是否被占用(检查当前架构父级下是否有同名架构)
|
|
//检查名称是否被占用(检查当前架构父级下是否有同名架构)
|
|
log.info("检查名称是否被占用(检查当前父级下是否有同名架构)");
|
|
log.info("检查名称是否被占用(检查当前父级下是否有同名架构)");
|
|
- int count = structureMapper.countByparentIdAndStructureName(parentId, structureName, null);
|
|
|
|
|
|
+ int count = structureMapper.countByparentIdAndStructureName(parentId, structureName, null, tenantId);
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
String message = "新增架构失败,当前父级下已存在【" + structureName + "】,请尝试更换名称";
|
|
String message = "新增架构失败,当前父级下已存在【" + structureName + "】,请尝试更换名称";
|
|
log.info("{}", message);
|
|
log.info("{}", message);
|
|
@@ -75,10 +80,10 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
Structure structure = new Structure();
|
|
Structure structure = new Structure();
|
|
BeanUtils.copyProperties(structureAddNewDTO, structure);
|
|
BeanUtils.copyProperties(structureAddNewDTO, structure);
|
|
|
|
|
|
- PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
structure
|
|
structure
|
|
- .setCreatePersonId(personnelVO.getId())
|
|
|
|
- .setCreatePersonName(personnelVO.getName());
|
|
|
|
|
|
+ .setCreatePersonId(createPersonId)
|
|
|
|
+ .setCreatePersonName(createPersonName)
|
|
|
|
+ .setTenantId(tenantId);
|
|
|
|
|
|
//数据入架构表(此时数据暂不含路径path)
|
|
//数据入架构表(此时数据暂不含路径path)
|
|
log.info("数据入架构表");
|
|
log.info("数据入架构表");
|
|
@@ -141,6 +146,9 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
public void update(StructureUpdateDTO structureUpdateDTO, List<MultipartFile> files) {
|
|
public void update(StructureUpdateDTO structureUpdateDTO, List<MultipartFile> files) {
|
|
log.info("开始处理【修改架构】的业务,参数为:{}, {}", structureUpdateDTO, files);
|
|
log.info("开始处理【修改架构】的业务,参数为:{}, {}", structureUpdateDTO, files);
|
|
|
|
|
|
|
|
+ PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
+ Integer tenantId = personnelVO.getTenantId();
|
|
|
|
+
|
|
//检查尝试修改的数据是否存在
|
|
//检查尝试修改的数据是否存在
|
|
Integer structureId = structureUpdateDTO.getId();
|
|
Integer structureId = structureUpdateDTO.getId();
|
|
log.info("检查尝试修改的数据是否存在");
|
|
log.info("检查尝试修改的数据是否存在");
|
|
@@ -151,19 +159,18 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
throw new XiaoShiException(message);
|
|
throw new XiaoShiException(message);
|
|
}
|
|
}
|
|
|
|
|
|
- //获取该架构原父级id和原路径
|
|
|
|
|
|
+ //获取该架构原名称、父级id和原路径
|
|
Integer oldParentId = queryResult.getParentId();
|
|
Integer oldParentId = queryResult.getParentId();
|
|
String oldPath = queryResult.getPath();
|
|
String oldPath = queryResult.getPath();
|
|
- //获取DTO中该架构当前父级id和父路径
|
|
|
|
|
|
+ //获取DTO中架构现名称、父级id和父路径
|
|
Integer newParentId = structureUpdateDTO.getParentId();
|
|
Integer newParentId = structureUpdateDTO.getParentId();
|
|
- String parentPath = structureUpdateDTO.getParentPath();
|
|
|
|
- String newPath = parentPath + "," + structureId;
|
|
|
|
|
|
+ String newPath = structureUpdateDTO.getParentPath() + "," + structureId;
|
|
//获取DTO中该架构当前名称
|
|
//获取DTO中该架构当前名称
|
|
String newStructureName = structureUpdateDTO.getStructureName();
|
|
String newStructureName = structureUpdateDTO.getStructureName();
|
|
|
|
|
|
//检查名称是否被占用(检查当前尝试修改的架构父级下是否有同名架构)
|
|
//检查名称是否被占用(检查当前尝试修改的架构父级下是否有同名架构)
|
|
- log.info("检查名称是否被占用(检查当前尝试修改的架构父级下是否有同名架构)");
|
|
|
|
- int count = structureMapper.countByparentIdAndStructureName(newParentId, newStructureName, structureId);
|
|
|
|
|
|
+ log.info("检查名称是否被占用(检查当前尝试修改的架构的新父级下是否有同名架构)");
|
|
|
|
+ int count = structureMapper.countByparentIdAndStructureName(newParentId, newStructureName, structureId, tenantId);
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
String message = "修改架构失败,当前尝试修改的架构父级下已存在【" + newStructureName + "】,请尝试更换名称";
|
|
String message = "修改架构失败,当前尝试修改的架构父级下已存在【" + newStructureName + "】,请尝试更换名称";
|
|
log.info("{}", message);
|
|
log.info("{}", message);
|
|
@@ -275,6 +282,10 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
@Override
|
|
@Override
|
|
public StructureVO query(StructureQueryPageDTO structureQueryPageDTO) {
|
|
public StructureVO query(StructureQueryPageDTO structureQueryPageDTO) {
|
|
log.info("开始处理【查询架构树】的业务,参数为:{}", structureQueryPageDTO);
|
|
log.info("开始处理【查询架构树】的业务,参数为:{}", structureQueryPageDTO);
|
|
|
|
+
|
|
|
|
+ PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
+ Integer tenantId = personnelVO.getTenantId();
|
|
|
|
+
|
|
//从DTO中取出产品id、架构id
|
|
//从DTO中取出产品id、架构id
|
|
Integer productId = structureQueryPageDTO.getProductId();
|
|
Integer productId = structureQueryPageDTO.getProductId();
|
|
Integer structureId = structureQueryPageDTO.getStructureId();
|
|
Integer structureId = structureQueryPageDTO.getStructureId();
|
|
@@ -289,7 +300,7 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
}
|
|
}
|
|
|
|
|
|
//以下代码表示查询所有架构的路径和路径拼接成的架构名称并封装成map集合,从map集合中取值为后面给每一个架构的pathName中文路径赋值
|
|
//以下代码表示查询所有架构的路径和路径拼接成的架构名称并封装成map集合,从map集合中取值为后面给每一个架构的pathName中文路径赋值
|
|
- HashMap<String, String> map = getStructureIdAndStructureNameMap(productId);
|
|
|
|
|
|
+ HashMap<String, String> map = getStructureIdAndStructureNameMap(productId, tenantId);
|
|
|
|
|
|
//以下代码表示若架构名称structureName有值则要根据架构名称模糊查询树,若架构名称structureName为null则表示查询了所有架构(不受影响)
|
|
//以下代码表示若架构名称structureName有值则要根据架构名称模糊查询树,若架构名称structureName为null则表示查询了所有架构(不受影响)
|
|
LambdaQueryWrapper<Structure> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<Structure> wrapper = new LambdaQueryWrapper<>();
|
|
@@ -315,7 +326,7 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
);
|
|
);
|
|
//若ids.size == 0,则表示根据名称模糊查询不到数据,则直接返回空structureVO
|
|
//若ids.size == 0,则表示根据名称模糊查询不到数据,则直接返回空structureVO
|
|
if (structureVO != null && ids.size() != 0) {
|
|
if (structureVO != null && ids.size() != 0) {
|
|
- diGui(structureVO, map, structureId, productId, ids);
|
|
|
|
|
|
+ diGui(structureVO, map, structureId, productId, ids, tenantId);
|
|
}
|
|
}
|
|
return structureVO;
|
|
return structureVO;
|
|
}
|
|
}
|
|
@@ -329,19 +340,23 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
@Override
|
|
@Override
|
|
public List<PathStructureNameVO> queryPathStructureName(QueryPathStructureNameDTO queryPathStructureNameDTO) {
|
|
public List<PathStructureNameVO> queryPathStructureName(QueryPathStructureNameDTO queryPathStructureNameDTO) {
|
|
log.info("开始处理【查询所有架构路径和路径架构名称】的业务,参数为:{}", queryPathStructureNameDTO);
|
|
log.info("开始处理【查询所有架构路径和路径架构名称】的业务,参数为:{}", queryPathStructureNameDTO);
|
|
|
|
+
|
|
|
|
+ PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
+ Integer tenantId = personnelVO.getTenantId();
|
|
|
|
+
|
|
Integer productId = queryPathStructureNameDTO.getProductId();
|
|
Integer productId = queryPathStructureNameDTO.getProductId();
|
|
Integer structureId = queryPathStructureNameDTO.getStructureId();
|
|
Integer structureId = queryPathStructureNameDTO.getStructureId();
|
|
|
|
|
|
ArrayList<PathStructureNameVO> pathStructureNames = new ArrayList<>();
|
|
ArrayList<PathStructureNameVO> pathStructureNames = new ArrayList<>();
|
|
|
|
|
|
log.info("根据产品id查询所有架构数据");
|
|
log.info("根据产品id查询所有架构数据");
|
|
- HashMap<String, String> map = getStructureIdAndStructureNameMap(productId);
|
|
|
|
|
|
+ HashMap<String, String> map = getStructureIdAndStructureNameMap(productId, tenantId);
|
|
List<StructureVO> structures;
|
|
List<StructureVO> structures;
|
|
//若有架构id则只查该架构底下的树,若没有架构id则查整棵产品的架构树
|
|
//若有架构id则只查该架构底下的树,若没有架构id则查整棵产品的架构树
|
|
if (structureId == null) {
|
|
if (structureId == null) {
|
|
- structures = structureMapper.selectAllByProductId(productId);
|
|
|
|
|
|
+ structures = structureMapper.selectAllByProductId(productId, tenantId);
|
|
} else {
|
|
} else {
|
|
- structures = structureMapper.selectAllByStructureId(structureId);
|
|
|
|
|
|
+ structures = structureMapper.selectAllByStructureId(structureId, tenantId);
|
|
}
|
|
}
|
|
for (StructureVO structure : structures) {
|
|
for (StructureVO structure : structures) {
|
|
Integer id = structure.getId();
|
|
Integer id = structure.getId();
|
|
@@ -427,8 +442,8 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
}
|
|
}
|
|
|
|
|
|
//递归组装架构树集合
|
|
//递归组装架构树集合
|
|
- private void diGui(StructureVO structureVO, HashMap<String, String> map, Integer structureId, Integer productId, List<Integer> ids) {
|
|
|
|
- List<StructureVO> structureVOs = structureMapper.selectByParentIdAndProductId(structureId, productId, ids);
|
|
|
|
|
|
+ private void diGui(StructureVO structureVO, HashMap<String, String> map, Integer structureId, Integer productId, List<Integer> ids, Integer tenantId) {
|
|
|
|
+ List<StructureVO> structureVOs = structureMapper.selectByParentIdAndProductId(structureId, productId, ids, tenantId);
|
|
if (structureVOs != null) {
|
|
if (structureVOs != null) {
|
|
structureVO.setChildren(structureVOs);
|
|
structureVO.setChildren(structureVOs);
|
|
//给架构的路径名称pathName进行拼接赋值
|
|
//给架构的路径名称pathName进行拼接赋值
|
|
@@ -444,13 +459,13 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
|
|
}
|
|
}
|
|
for (StructureVO n : structureVOs) {
|
|
for (StructureVO n : structureVOs) {
|
|
structureId = n.getId();
|
|
structureId = n.getId();
|
|
- diGui(n, map, structureId, productId, ids);
|
|
|
|
|
|
+ diGui(n, map, structureId, productId, ids, tenantId);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private HashMap<String, String> getStructureIdAndStructureNameMap(Integer productId) {
|
|
|
|
- List<StructureVO> structures = structureMapper.selectAllByProductId(productId);
|
|
|
|
|
|
+ private HashMap<String, String> getStructureIdAndStructureNameMap(Integer productId, Integer tenantId) {
|
|
|
|
+ List<StructureVO> structures = structureMapper.selectAllByProductId(productId, tenantId);
|
|
//map存储所有架构id(key)和架构名称(value)
|
|
//map存储所有架构id(key)和架构名称(value)
|
|
HashMap<String, String> map = new HashMap<>();
|
|
HashMap<String, String> map = new HashMap<>();
|
|
for (StructureVO structure : structures) {
|
|
for (StructureVO structure : structures) {
|