|
|
@@ -23,6 +23,7 @@ import com.inspur.device.client.core.relation.DeviceAllocateService;
|
|
|
import com.inspur.service.media.MinioDataProviderService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.math3.analysis.function.Sin;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
@@ -36,9 +37,9 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
- * @Author wangbo13
|
|
|
- * @Date 2022/11/25 14:58
|
|
|
- * @Version 1.0
|
|
|
+ * @author wangbo13
|
|
|
+ * @date 2022/11/25 14:58
|
|
|
+ * @version 1.0
|
|
|
*/
|
|
|
@Slf4j
|
|
|
@DubboService(interfaceClass = SmsbDepartmentService.class)
|
|
|
@@ -71,6 +72,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
SmsbDepartmentDO department = SmsbDepartmentConvertor.toDataObjectForCreate(userId, smsbDepartmentAdd);
|
|
|
department.setPath(smsbDepartmentAdd.getTenant()+pathFactory(smsbDepartmentAdd.getParentId(),smsbDepartmentAdd.getMark()));
|
|
|
department.setOrderNo(orderNmFactory(smsbDepartmentAdd.getParentId()));
|
|
|
+ department.setPriority(smsbDepartmentAdd.getPriority());
|
|
|
super.save(department);
|
|
|
return SingleResponse.of(department);
|
|
|
}
|
|
|
@@ -98,7 +100,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
List<SmsbDepartmentDO> nextDepartment = super.list(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
|
|
|
.in(SmsbDepartmentDO::getParentId, ids));
|
|
|
if(!CollectionUtils.isEmpty(nextDepartment)){
|
|
|
- removeDepartment(userId , nextDepartment.stream().map(i -> i.getId()).collect(Collectors.toList()));
|
|
|
+ removeDepartment(userId , nextDepartment.stream().map(SmsbDepartmentDO::getId).collect(Collectors.toList()));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -106,6 +108,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
public Response updateDepartment(String userId, SmsbDepartmentUpdate departmentUpdate) {
|
|
|
boolean flag = super.update(new LambdaUpdateWrapper<>(SmsbDepartmentDO.class)
|
|
|
.set(StringUtils.isNotBlank(departmentUpdate.getName()), SmsbDepartmentDO::getName, departmentUpdate.getName())
|
|
|
+ .set(departmentUpdate.getPriority() != null, SmsbDepartmentDO::getPriority, departmentUpdate.getPriority())
|
|
|
.set(SmsbDepartmentDO::getUpdateBy, userId)
|
|
|
.set(SmsbDepartmentDO::getUpdateTime, LocalDateTime.now())
|
|
|
.eq(SmsbDepartmentDO::getId, departmentUpdate.getId()));
|
|
|
@@ -130,17 +133,16 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
|
|
|
/**
|
|
|
* 获取序号
|
|
|
- *
|
|
|
- * @param parentId
|
|
|
- * @return
|
|
|
*/
|
|
|
private Integer orderNmFactory(Long parentId){
|
|
|
- if(Objects.isNull(parentId)) return 1;
|
|
|
+ if (Objects.isNull(parentId)) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
SmsbDepartmentDO department = super.getOne(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
|
|
|
.eq(SmsbDepartmentDO::getParentId, parentId)
|
|
|
.orderByDesc(SmsbDepartmentDO::getOrderNo)
|
|
|
.last("limit 1"));
|
|
|
- return Objects.isNull(department)?1:department.getOrderNo()+1;
|
|
|
+ return Objects.isNull(department) ? 1 : department.getOrderNo() + 1;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -247,16 +249,12 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
|
|
|
/**
|
|
|
* 鉴权
|
|
|
- *
|
|
|
- * @param tenant
|
|
|
- * @param userId
|
|
|
- * @return
|
|
|
*/
|
|
|
@Override
|
|
|
public Response checkOperationAuthority(String userId , String tenant){
|
|
|
try {
|
|
|
String real = service.queryUserTenant(userId);
|
|
|
- if(service.isExitTargetRole(userId ,Constant.SUPER_ADMIN) ||
|
|
|
+ if(Boolean.TRUE.equals(service.isExitTargetRole(userId ,Constant.SUPER_ADMIN)) ||
|
|
|
(StringUtils.isNotEmpty(real) && real.equals(tenant) && service.isExitTargetRole(userId , Constant.ROLE_ADMIN))){
|
|
|
return Response.buildSuccess();
|
|
|
}
|
|
|
@@ -284,7 +282,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
log.info("new user id:{}",addUserId);
|
|
|
// 2、是否传递所属部门,不传递不做处理
|
|
|
if(Objects.nonNull(smsbUserAdd.getDepartmentId())){
|
|
|
- // 3、将部门信息写入keucloak的attibute中
|
|
|
+ // 3、将部门信息写入 keycloak 的 attribute 中
|
|
|
smsbUserAdd.setPath(super.getById(smsbUserAdd.getDepartmentId()).getPath());
|
|
|
service.addAttributesByUserId(addUserId , "org" , Collections.singletonList(smsbUserAdd.getPath()));
|
|
|
}
|
|
|
@@ -307,9 +305,9 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
result = departmentUserService.updateRelation(smsbRegrouping.getUserId(), null ,null);
|
|
|
}
|
|
|
// 2、关注设备权限判断
|
|
|
- Response attentionResul = attentionService.userRegroupHandle(smsbRegrouping.getUserId(), path);
|
|
|
+ Response attentionResult = attentionService.userRegroupHandle(smsbRegrouping.getUserId(), path);
|
|
|
// 3、更新attribute
|
|
|
- if(result && attentionResul.isSuccess()){
|
|
|
+ if(Boolean.TRUE.equals(result) && attentionResult.isSuccess()){
|
|
|
service.addAttributesByUserId(smsbRegrouping.getUserId() , "org" ,
|
|
|
Collections.singletonList(path));
|
|
|
return Response.buildSuccess();
|
|
|
@@ -418,11 +416,19 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
return departmentCO;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public SingleResponse<SmsbDepartmentCO> getDepartmentByPath(String tenant, String departmentPath) {
|
|
|
+ SmsbDepartmentDO department = this.getOne(Wrappers.<SmsbDepartmentDO>lambdaQuery()
|
|
|
+ .eq(SmsbDepartmentDO::getPath, departmentPath)
|
|
|
+ .last("Limit 1"));
|
|
|
+ if (department != null) {
|
|
|
+ return SingleResponse.of(BeanCopyUtils.copy(department, SmsbDepartmentCO.class));
|
|
|
+ }
|
|
|
+ return SingleResponse.buildFailure("400", "not such department");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 简易参数
|
|
|
- * @param children
|
|
|
- * @param activate
|
|
|
- * @return
|
|
|
*/
|
|
|
private List<DeviceDepartmentSimpleDto> childRecurrenceHandleSimple(List<SmsbDepartmentCO> children , Boolean activate, Integer orderFlag){
|
|
|
List<DeviceDepartmentSimpleDto> childrenList = Lists.newArrayList();
|
|
|
@@ -456,16 +462,18 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
private SmsbDepartmentCO queryDepartment(String tenant , String org){
|
|
|
SmsbDepartmentCO departmentCO = new SmsbDepartmentCO();
|
|
|
departmentCO.setTenant(tenant);
|
|
|
- if(StringUtils.isEmpty(org)){
|
|
|
+ if (StringUtils.isEmpty(org)) {
|
|
|
departmentCO.setChildren(queryDepartmentList(tenant , null));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
SmsbDepartmentDO smsbDepartmentDO = super.getOne(new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
|
|
|
.eq(SmsbDepartmentDO::getIsDel, 0)
|
|
|
.eq(SmsbDepartmentDO::getTenant, tenant)
|
|
|
.eq(SmsbDepartmentDO::getPath, org)
|
|
|
.last("LIMIT 1"));
|
|
|
- if(Objects.nonNull(smsbDepartmentDO)){BeanUtils.copyProperties(smsbDepartmentDO , departmentCO);}
|
|
|
- departmentCO.setChildren(this.getChilde(smsbDepartmentDO.getId()));
|
|
|
+ if (Objects.nonNull(smsbDepartmentDO)) {
|
|
|
+ BeanUtils.copyProperties(smsbDepartmentDO , departmentCO);
|
|
|
+ departmentCO.setChildren(this.getChilde(smsbDepartmentDO.getId()));
|
|
|
+ }
|
|
|
}
|
|
|
return departmentCO;
|
|
|
}
|
|
|
@@ -542,9 +550,7 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
/**
|
|
|
* 获取当前部门及上级部门
|
|
|
*
|
|
|
- * @param allDepartments
|
|
|
* @param present 当前部门
|
|
|
- * @return
|
|
|
*/
|
|
|
private List<SmsbDepartmentDO> getParentNodes(List<SmsbDepartmentDO> allDepartments , SmsbDepartmentDO present){
|
|
|
List<SmsbDepartmentDO> parents = Lists.newArrayList();
|