|
|
@@ -16,6 +16,7 @@ import com.inspur.customer.infrastructure.convertor.SmsbDepartmentConvertor;
|
|
|
import com.inspur.customer.infrastructure.mapper.org.SmsbDepartmentMapper;
|
|
|
import com.inspur.customer.infrastructure.object.org.SmsbDepartmentDO;
|
|
|
import com.inspur.customer.object.org.*;
|
|
|
+import com.inspur.customer.utils.BeanCopyUtils;
|
|
|
import com.inspur.device.client.core.manage.SmsbDeviceService;
|
|
|
import com.inspur.device.client.core.manage.SmsbUsersDeviceAttentionService;
|
|
|
import com.inspur.device.client.core.relation.DeviceAllocateService;
|
|
|
@@ -377,6 +378,46 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
return deviceDepartmentSimpleDto;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 仅查询下一层级
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public DeviceDepartmentSimpleDto listNextLevelDepartmentDevice(DeviceDepartmentCmd departmentCmd) {
|
|
|
+ DeviceDepartmentSimpleDto departmentCO = new DeviceDepartmentSimpleDto();
|
|
|
+
|
|
|
+ String tenant = departmentCmd.getTenant();
|
|
|
+ String org = departmentCmd.getOrg();
|
|
|
+ departmentCO.setTenant(tenant);
|
|
|
+ //没有部门,则获取该租户下所有部门树;否则仅获取该部门
|
|
|
+ if(StringUtils.isEmpty(org)){
|
|
|
+ //初次查询, 根节点为租户,该租户下未被分配的设备, 和一级部门
|
|
|
+ LambdaQueryWrapper<SmsbDepartmentDO> queryWrapper = new LambdaQueryWrapper<>(SmsbDepartmentDO.class)
|
|
|
+ .eq(SmsbDepartmentDO::getIsDel, 0)
|
|
|
+ .eq(SmsbDepartmentDO::getTenant, tenant)
|
|
|
+ .isNull(SmsbDepartmentDO::getParentId);
|
|
|
+ departmentCO.setDevices(deviceService.ListDeviceUnboundSimple(departmentCmd.getTenant() , departmentCmd.getActivate(), departmentCmd.getOrderFlag()));
|
|
|
+ departmentCO.setChildren(BeanCopyUtils.copyList(this.list(queryWrapper), DeviceDepartmentSimpleDto.class));
|
|
|
+ }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)) {
|
|
|
+ //子部门
|
|
|
+ List<SmsbDepartmentDO> childDepartmentList = this.list(new LambdaQueryWrapper<SmsbDepartmentDO>().eq(SmsbDepartmentDO::getIsDel, 0)
|
|
|
+ .eq(SmsbDepartmentDO::getTenant, tenant)
|
|
|
+ .eq(SmsbDepartmentDO::getParentId, smsbDepartmentDO.getId()));
|
|
|
+ if (!childDepartmentList.isEmpty()) {
|
|
|
+ departmentCO.setChildren(BeanCopyUtils.copyList(childDepartmentList, DeviceDepartmentSimpleDto.class));
|
|
|
+ }
|
|
|
+ departmentCO.setDevices(deviceService.ListDeviceBindSimple(smsbDepartmentDO.getPath() , departmentCmd.getActivate(), departmentCmd.getOrderFlag()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return departmentCO;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 简易参数
|
|
|
* @param children
|
|
|
@@ -479,6 +520,25 @@ public class SmsbDepartmentServiceImpl extends ServiceImpl<SmsbDepartmentMapper
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<String> getListByParentOrg(List<String> orgList) {
|
|
|
+ List<Long> idList = this.listObjs(new LambdaQueryWrapper<SmsbDepartmentDO>()
|
|
|
+ .in(SmsbDepartmentDO::getPath, orgList)
|
|
|
+ .eq(SmsbDepartmentDO::getIsDel, 0)
|
|
|
+ .select(SmsbDepartmentDO::getId), o -> Long.valueOf(o.toString()));
|
|
|
+ //当前部门id的下一层级
|
|
|
+ List<String> temp = this.listObjs(new LambdaQueryWrapper<SmsbDepartmentDO>()
|
|
|
+ .in(SmsbDepartmentDO::getParentId, idList)
|
|
|
+ .eq(SmsbDepartmentDO::getIsDel, 0).select(SmsbDepartmentDO::getPath), Object::toString);
|
|
|
+ if (temp.isEmpty()) {
|
|
|
+ //全部都是最小部门,不用再细化了
|
|
|
+ return orgList;
|
|
|
+ } else {
|
|
|
+ orgList.addAll(getListByParentOrg(temp));
|
|
|
+ return orgList;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取当前部门及上级部门
|
|
|
*
|