mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
fix(v0.11): 兼容优先的走查整改——SnowFlake/BeanCopy 卫生与电梯编码批量查询
- 不改 AES 模式、不重命名 KafkaProducter,避免影响旧客户端与二进制兼容。
- SnowFlakeSerialCode:中断等待改恢复中断标志 + Slf4j 替代 printStackTrace。
- BeanCopyUtils:实例化仅捕获 ReflectiveOperationException,copyProperties 异常仍按运行时上抛,对外行为与旧版一致。
- 电梯 39202:新增 MyBatis listByZoneIds 与 AcsElevatorCodeService.mapByZoneIds(增量 API),树接口仍逐条组装 DTO,仅将循环内多次 get 合并为一次 IN 查询,HTTP 契约不变。
验证:maven-cloudwalk-legacy-public 全量 compile;cw-elevator-application-data 单模块 compile 通过。
Made-with: Cursor
Former-commit-id: 57270a7ac5
This commit is contained in:
+6
-7
@@ -34,12 +34,11 @@ public static <T> T copyProperties(Object source, Class<T> targetClazz) {
|
|||||||
/* 34 */ T target = null;
|
/* 34 */ T target = null;
|
||||||
try {
|
try {
|
||||||
/* 36 */ target = targetClazz.getDeclaredConstructor().newInstance();
|
/* 36 */ target = targetClazz.getDeclaredConstructor().newInstance();
|
||||||
/* 37 */ BeanUtils.copyProperties(source, target);
|
/* 37 */ } catch (ReflectiveOperationException e) {
|
||||||
/* 38 */ } catch (Exception e) {
|
/* 38 */ throw new RuntimeException(e);
|
||||||
/* 39 */ throw new RuntimeException(e);
|
|
||||||
}
|
}
|
||||||
|
/* 40 */ BeanUtils.copyProperties(source, target);
|
||||||
/* 42 */ return target;
|
/* 41 */ return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -102,10 +101,10 @@ for (V source : list) {
|
|||||||
E target = null;
|
E target = null;
|
||||||
try {
|
try {
|
||||||
target = clazz.getDeclaredConstructor().newInstance();
|
target = clazz.getDeclaredConstructor().newInstance();
|
||||||
BeanUtils.copyProperties(source, target);
|
} catch (ReflectiveOperationException e) {
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
|
||||||
result.add(target);
|
result.add(target);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -13,6 +13,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
|
||||||
|
|
||||||
@@ -39,6 +41,7 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|||||||
public class SnowFlakeSerialCode
|
public class SnowFlakeSerialCode
|
||||||
implements UUIDSerial
|
implements UUIDSerial
|
||||||
{
|
{
|
||||||
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private static final int LOCK_TRY_MAX_TIME = 5;
|
private static final int LOCK_TRY_MAX_TIME = 5;
|
||||||
private static final int THREAD_SLEEP_TIME = 5;
|
private static final int THREAD_SLEEP_TIME = 5;
|
||||||
/* 44 */ private static final Integer MAX_NODE_ID = Integer.valueOf(31);
|
/* 44 */ private static final Integer MAX_NODE_ID = Integer.valueOf(31);
|
||||||
@@ -218,7 +221,8 @@ return true;
|
|||||||
try {
|
try {
|
||||||
TimeUnit.SECONDS.sleep(5L);
|
TimeUnit.SECONDS.sleep(5L);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
Thread.currentThread().interrupt();
|
||||||
|
this.log.warn("获取雪花 Redis 锁等待被中断", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
@@ -3,6 +3,7 @@ package cn.cloudwalk.elevator.codeElevatorArea.dao;
|
|||||||
import cn.cloudwalk.cloud.exception.ServiceException;
|
import cn.cloudwalk.cloud.exception.ServiceException;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface AcsElevatorCodeDao {
|
public interface AcsElevatorCodeDao {
|
||||||
Integer insertNew(AcsElevatorCodeDTO paramAcsElevatorCodeDTO) throws ServiceException;
|
Integer insertNew(AcsElevatorCodeDTO paramAcsElevatorCodeDTO) throws ServiceException;
|
||||||
@@ -12,4 +13,6 @@ public interface AcsElevatorCodeDao {
|
|||||||
AcsElevatorCodeResultDTO get(AcsElevatorCodeDTO paramAcsElevatorCodeDTO);
|
AcsElevatorCodeResultDTO get(AcsElevatorCodeDTO paramAcsElevatorCodeDTO);
|
||||||
|
|
||||||
AcsElevatorCodeResultDTO getFirstByParentId(String paramString);
|
AcsElevatorCodeResultDTO getFirstByParentId(String paramString);
|
||||||
|
|
||||||
|
List<AcsElevatorCodeResultDTO> listByZoneIds(List<String> zoneIds);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -5,6 +5,7 @@ import cn.cloudwalk.elevator.codeElevatorArea.dao.AcsElevatorCodeDao;
|
|||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.mapper.AcsElevatorCodeMapper;
|
import cn.cloudwalk.elevator.codeElevatorArea.mapper.AcsElevatorCodeMapper;
|
||||||
|
import java.util.List;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@@ -28,4 +29,8 @@ public class AcsElevatorCodeDaoImpl implements AcsElevatorCodeDao {
|
|||||||
public AcsElevatorCodeResultDTO getFirstByParentId(String parentId) {
|
public AcsElevatorCodeResultDTO getFirstByParentId(String parentId) {
|
||||||
return this.acsElevatorCodeMapper.getFirstByParentId(parentId);
|
return this.acsElevatorCodeMapper.getFirstByParentId(parentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AcsElevatorCodeResultDTO> listByZoneIds(List<String> zoneIds) {
|
||||||
|
return this.acsElevatorCodeMapper.listByZoneIds(zoneIds);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -2,6 +2,8 @@ package cn.cloudwalk.elevator.codeElevatorArea.mapper;
|
|||||||
|
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
||||||
|
import java.util.List;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
public interface AcsElevatorCodeMapper {
|
public interface AcsElevatorCodeMapper {
|
||||||
AcsElevatorCodeResultDTO get(AcsElevatorCodeDTO paramAcsElevatorCodeDTO);
|
AcsElevatorCodeResultDTO get(AcsElevatorCodeDTO paramAcsElevatorCodeDTO);
|
||||||
@@ -11,4 +13,6 @@ public interface AcsElevatorCodeMapper {
|
|||||||
int updateOld(AcsElevatorCodeDTO paramAcsElevatorCodeDTO);
|
int updateOld(AcsElevatorCodeDTO paramAcsElevatorCodeDTO);
|
||||||
|
|
||||||
AcsElevatorCodeResultDTO getFirstByParentId(String paramString);
|
AcsElevatorCodeResultDTO getFirstByParentId(String paramString);
|
||||||
|
|
||||||
|
List<AcsElevatorCodeResultDTO> listByZoneIds(@Param("zoneIds") List<String> zoneIds);
|
||||||
}
|
}
|
||||||
|
|||||||
+9
@@ -25,6 +25,15 @@
|
|||||||
and is_first = 1
|
and is_first = 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="listByZoneIds" resultType="cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO">
|
||||||
|
SELECT zone_id AS zoneId, code, is_first AS isFirst
|
||||||
|
FROM code_elevator_area
|
||||||
|
WHERE zone_id IN
|
||||||
|
<foreach collection="zoneIds" item="id" open="(" separator="," close=")">
|
||||||
|
#{id,jdbcType=VARCHAR}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<update id="updateOld" parameterType="cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO">
|
<update id="updateOld" parameterType="cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO">
|
||||||
update code_elevator_area
|
update code_elevator_area
|
||||||
|
|||||||
+21
@@ -7,6 +7,10 @@ import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeDTO;
|
|||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.param.AcsElevatorCodeParam;
|
import cn.cloudwalk.elevator.codeElevatorArea.param.AcsElevatorCodeParam;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.service.AcsElevatorCodeService;
|
import cn.cloudwalk.elevator.codeElevatorArea.service.AcsElevatorCodeService;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -46,4 +50,21 @@ public class AcsElevatorCodeServiceImpl implements AcsElevatorCodeService {
|
|||||||
public AcsElevatorCodeResultDTO getFirstByParentId(String parentId) throws ServiceException {
|
public AcsElevatorCodeResultDTO getFirstByParentId(String parentId) throws ServiceException {
|
||||||
return this.acsElevatorCodeDao.getFirstByParentId(parentId);
|
return this.acsElevatorCodeDao.getFirstByParentId(parentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, AcsElevatorCodeResultDTO> mapByZoneIds(List<String> zoneIds) throws ServiceException {
|
||||||
|
if (zoneIds == null || zoneIds.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
List<AcsElevatorCodeResultDTO> list = this.acsElevatorCodeDao.listByZoneIds(zoneIds);
|
||||||
|
if (list == null || list.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
Map<String, AcsElevatorCodeResultDTO> map = new HashMap<>(list.size() * 2);
|
||||||
|
for (AcsElevatorCodeResultDTO row : list) {
|
||||||
|
if (row != null && row.getZoneId() != null) {
|
||||||
|
map.put(row.getZoneId(), row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -3,6 +3,8 @@ package cn.cloudwalk.elevator.codeElevatorArea.service;
|
|||||||
import cn.cloudwalk.cloud.exception.ServiceException;
|
import cn.cloudwalk.cloud.exception.ServiceException;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.param.AcsElevatorCodeParam;
|
import cn.cloudwalk.elevator.codeElevatorArea.param.AcsElevatorCodeParam;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface AcsElevatorCodeService {
|
public interface AcsElevatorCodeService {
|
||||||
Integer insertNew(AcsElevatorCodeParam paramAcsElevatorCodeParam) throws ServiceException;
|
Integer insertNew(AcsElevatorCodeParam paramAcsElevatorCodeParam) throws ServiceException;
|
||||||
@@ -12,4 +14,10 @@ public interface AcsElevatorCodeService {
|
|||||||
AcsElevatorCodeResultDTO get(AcsElevatorCodeParam paramAcsElevatorCodeParam) throws ServiceException;
|
AcsElevatorCodeResultDTO get(AcsElevatorCodeParam paramAcsElevatorCodeParam) throws ServiceException;
|
||||||
|
|
||||||
AcsElevatorCodeResultDTO getFirstByParentId(String paramString) throws ServiceException;
|
AcsElevatorCodeResultDTO getFirstByParentId(String paramString) throws ServiceException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 按区域 ID 批量查询电梯编码,供树形接口一次拉取,避免循环内逐条查询。
|
||||||
|
* 不改变 {@link #get} 语义;入参去重由调用方控制。
|
||||||
|
*/
|
||||||
|
Map<String, AcsElevatorCodeResultDTO> mapByZoneIds(List<String> zoneIds) throws ServiceException;
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-13
@@ -7,7 +7,6 @@ import cn.cloudwalk.cloud.result.CloudwalkResult;
|
|||||||
import cn.cloudwalk.cloud.utils.BeanCopyUtils;
|
import cn.cloudwalk.cloud.utils.BeanCopyUtils;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeQueryDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeQueryDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
import cn.cloudwalk.elevator.codeElevatorArea.dto.AcsElevatorCodeResultDTO;
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.param.AcsElevatorCodeParam;
|
|
||||||
import cn.cloudwalk.elevator.codeElevatorArea.service.AcsElevatorCodeService;
|
import cn.cloudwalk.elevator.codeElevatorArea.service.AcsElevatorCodeService;
|
||||||
import cn.cloudwalk.elevator.common.AbstractCloudwalkController;
|
import cn.cloudwalk.elevator.common.AbstractCloudwalkController;
|
||||||
import cn.cloudwalk.elevator.device.dto.AcsElevatorDeviceQueryFoDTO;
|
import cn.cloudwalk.elevator.device.dto.AcsElevatorDeviceQueryFoDTO;
|
||||||
@@ -25,7 +24,10 @@ import cn.cloudwalk.elevator.zone.param.ZoneNextTreeParam;
|
|||||||
import cn.cloudwalk.elevator.zone.result.ZoneTreeResult;
|
import cn.cloudwalk.elevator.zone.result.ZoneTreeResult;
|
||||||
import cn.cloudwalk.elevator.zone.service.ZoneService;
|
import cn.cloudwalk.elevator.zone.service.ZoneService;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
@@ -90,6 +92,10 @@ public class AcsElevatorDeviceGetWayController extends AbstractCloudwalkControll
|
|||||||
CloudwalkResult<List<ZoneTreeResult>> query =
|
CloudwalkResult<List<ZoneTreeResult>> query =
|
||||||
this.zoneService.tree(zoneNextTreeParam, getCloudwalkContext());
|
this.zoneService.tree(zoneNextTreeParam, getCloudwalkContext());
|
||||||
List<ZoneTreeResult> treeList = (List<ZoneTreeResult>)query.getData();
|
List<ZoneTreeResult> treeList = (List<ZoneTreeResult>)query.getData();
|
||||||
|
LinkedHashSet<String> zoneIdsForCode = new LinkedHashSet<>();
|
||||||
|
collectZoneTreeNodeIds(treeList, zoneIdsForCode);
|
||||||
|
Map<String, AcsElevatorCodeResultDTO> codeByZoneId =
|
||||||
|
this.elevatorCodeService.mapByZoneIds(new ArrayList<>(zoneIdsForCode));
|
||||||
List<AcsElevatorCodeQueryDTO> treeResultList = new ArrayList<>();
|
List<AcsElevatorCodeQueryDTO> treeResultList = new ArrayList<>();
|
||||||
if (treeList != null && treeList.size() > 0) {
|
if (treeList != null && treeList.size() > 0) {
|
||||||
for (ZoneTreeResult zoneTreeResult : treeList) {
|
for (ZoneTreeResult zoneTreeResult : treeList) {
|
||||||
@@ -106,9 +112,7 @@ public class AcsElevatorDeviceGetWayController extends AbstractCloudwalkControll
|
|||||||
querydTO.setId(floor.getId());
|
querydTO.setId(floor.getId());
|
||||||
querydTO.setZoneName(floor.getName());
|
querydTO.setZoneName(floor.getName());
|
||||||
querydTO.setZoneType(floor.getType());
|
querydTO.setZoneType(floor.getType());
|
||||||
AcsElevatorCodeParam paramCode = new AcsElevatorCodeParam();
|
AcsElevatorCodeResultDTO code = codeByZoneId.get(floor.getId());
|
||||||
paramCode.setZoneId(floor.getId());
|
|
||||||
AcsElevatorCodeResultDTO code = this.elevatorCodeService.get(paramCode);
|
|
||||||
if (!ObjectUtils.isEmpty(code)) {
|
if (!ObjectUtils.isEmpty(code)) {
|
||||||
querydTO.setCode(code.getCode());
|
querydTO.setCode(code.getCode());
|
||||||
querydTO.setIsFirst(code.getIsFirst());
|
querydTO.setIsFirst(code.getIsFirst());
|
||||||
@@ -123,9 +127,7 @@ public class AcsElevatorDeviceGetWayController extends AbstractCloudwalkControll
|
|||||||
querydTO.setZoneName(building.getName());
|
querydTO.setZoneName(building.getName());
|
||||||
querydTO.setZoneType("FLOOR");
|
querydTO.setZoneType("FLOOR");
|
||||||
querydTO.setId(building.getId());
|
querydTO.setId(building.getId());
|
||||||
AcsElevatorCodeParam paramCode = new AcsElevatorCodeParam();
|
AcsElevatorCodeResultDTO code = codeByZoneId.get(zoneTreeResult.getId());
|
||||||
paramCode.setZoneId(zoneTreeResult.getId());
|
|
||||||
AcsElevatorCodeResultDTO code = this.elevatorCodeService.get(paramCode);
|
|
||||||
if (!ObjectUtils.isEmpty(code)) {
|
if (!ObjectUtils.isEmpty(code)) {
|
||||||
querydTO.setCode(code.getCode());
|
querydTO.setCode(code.getCode());
|
||||||
querydTO.setIsFirst(code.getIsFirst());
|
querydTO.setIsFirst(code.getIsFirst());
|
||||||
@@ -144,9 +146,7 @@ public class AcsElevatorDeviceGetWayController extends AbstractCloudwalkControll
|
|||||||
querydTO.setZoneName(floor.getName());
|
querydTO.setZoneName(floor.getName());
|
||||||
querydTO.setZoneType(floor.getType());
|
querydTO.setZoneType(floor.getType());
|
||||||
querydTO.setId(floor.getId());
|
querydTO.setId(floor.getId());
|
||||||
AcsElevatorCodeParam paramCode = new AcsElevatorCodeParam();
|
AcsElevatorCodeResultDTO code = codeByZoneId.get(floor.getId());
|
||||||
paramCode.setZoneId(floor.getId());
|
|
||||||
AcsElevatorCodeResultDTO code = this.elevatorCodeService.get(paramCode);
|
|
||||||
if (!ObjectUtils.isEmpty(code)) {
|
if (!ObjectUtils.isEmpty(code)) {
|
||||||
querydTO.setCode(code.getCode());
|
querydTO.setCode(code.getCode());
|
||||||
querydTO.setIsFirst(code.getIsFirst());
|
querydTO.setIsFirst(code.getIsFirst());
|
||||||
@@ -161,9 +161,7 @@ public class AcsElevatorDeviceGetWayController extends AbstractCloudwalkControll
|
|||||||
querydTO.setZoneName(zoneTreeResult.getName());
|
querydTO.setZoneName(zoneTreeResult.getName());
|
||||||
querydTO.setZoneType("FLOOR");
|
querydTO.setZoneType("FLOOR");
|
||||||
querydTO.setId(zoneTreeResult.getId());
|
querydTO.setId(zoneTreeResult.getId());
|
||||||
AcsElevatorCodeParam paramCode = new AcsElevatorCodeParam();
|
AcsElevatorCodeResultDTO code = codeByZoneId.get(zoneTreeResult.getId());
|
||||||
paramCode.setZoneId(zoneTreeResult.getId());
|
|
||||||
AcsElevatorCodeResultDTO code = this.elevatorCodeService.get(paramCode);
|
|
||||||
if (!ObjectUtils.isEmpty(code)) {
|
if (!ObjectUtils.isEmpty(code)) {
|
||||||
querydTO.setCode(code.getCode());
|
querydTO.setCode(code.getCode());
|
||||||
querydTO.setIsFirst(code.getIsFirst());
|
querydTO.setIsFirst(code.getIsFirst());
|
||||||
@@ -228,4 +226,17 @@ public class AcsElevatorDeviceGetWayController extends AbstractCloudwalkControll
|
|||||||
this.LOGGER.warn("getKey(39204) 已停用明文密钥下发,调用方应迁移至安全鉴权方式");
|
this.LOGGER.warn("getKey(39204) 已停用明文密钥下发,调用方应迁移至安全鉴权方式");
|
||||||
return CloudwalkResult.success(result);
|
return CloudwalkResult.success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 收集树节点 id,用于与 {@code code_elevator_area.zone_id} 批量对齐查询。 */
|
||||||
|
private static void collectZoneTreeNodeIds(List<ZoneTreeResult> nodes, Set<String> out) {
|
||||||
|
if (nodes == null || out == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (ZoneTreeResult n : nodes) {
|
||||||
|
if (StringUtils.isNotBlank(n.getId())) {
|
||||||
|
out.add(n.getId());
|
||||||
|
}
|
||||||
|
collectZoneTreeNodeIds(n.getChildren(), out);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user