diff --git a/docs/superpowers/data/2026-05-05-componentorg-service-errors-classification.md b/docs/superpowers/data/2026-05-05-componentorg-service-errors-classification.md new file mode 100644 index 00000000..5eab2787 --- /dev/null +++ b/docs/superpowers/data/2026-05-05-componentorg-service-errors-classification.md @@ -0,0 +1,262 @@ +# Component-Org Service 编译错误分类 (200 errors, 8 files) + +**日期**: 2026-05-05 +**构建**: `mvn compile -DskipTests -s ../maven-cw-elevator-application/.mvn/settings.xml` +**JDK**: 1.8.0_482 | **Spring Boot**: 1.5.22 | **CFR 反编译**: 0.152 + +--- + +## 错误总览 + +| 类别 | 数量 | 根因 | 自动修复难度 | +|------|------|------|-------------| +| No-symbol (找不到符号) | 78 | `$$$` ast-grep 残留 + raw stream 调用 + 方法歧义 | ⭐⭐ 中 | +| Object→cast | 76 | raw List/Map 失去泛型 | ⭐⭐⭐ 高 | +| Type-mismatch | 22 | 类型声明与使用不匹配 | ⭐⭐ 中 | +| Ambiguous (方法歧义) | 16 | redisTemplate.execute() 歧义 | ⭐ 低 | +| Type-inf (类型推断) | 6 | 空集合初始化泛型推断 | ⭐ 低 | + +**总计**: 200 errors in 8 files + +--- + +## 1. No-symbol (78 errors) + +### 1.1 `$$$` ast-grep 残留 (36 errors) + +**涉及文件**: CpOrgDevieKitServiceImpl (32), OrganizationUnitTypeServiceImpl (12), AreaTypeServiceImpl (2) + +**根因**: `ast_grep_replace` 将 `return CloudwalkResult.success(X)` 改为 `return (CloudwalkResult) CloudwalkResult.success($$$)` 时, `$$$` 捕获参数但 rewrite 时 `$$$` 在 `success()` 括号内丢失了 X — X 变量覆盖了 `$$$` 变量名。 + +**源代码模式**: +```java +// 改写前 (ast-grep) +return CloudwalkResult.success(updateGroupResult); +// 改写后 (异常) +return (CloudwalkResult) CloudwalkResult.success($$$); +``` + +**修复方案**: 逐行恢复原始表达式。 + +**影响方法**: +- CpOrgDevieKitServiceImpl: `onUpdateGroupRequest(L117)`, `onUpdateFeatureRequest(L127/L140/L166)`, `onUpdatePictureRequest(L176/L189/L215)`, `onUpdatePersonRequest(L235/L255/L310)`, `handlePersonValidDate(L522/L530)` +- OrganizationUnitTypeServiceImpl: `page(L76)`, `getList(L110)`, `defaultInitOrgType(L121/L145)`, `initParkOrg(L188/L227)` +- AreaTypeServiceImpl: `add(L104)` + +### 1.2 raw stream `.map()` 调用 Object 方法 (12 errors) + +**涉及文件**: OrganizationServiceImpl.detail(L814,L815,L824,L843), CpImageStorePersonManager(L110,L357,L365,L386) + +**根因**: raw List 的 `.stream()` 返回 `Stream`, 对 Object 调用 `.getAreaId()` / `.getImageStoreId()` 找不到方法。 + +**源代码模式**: +```java +// refDTOS 是 raw List, stream() 是 Stream +List officeArea = refDTOS.stream() + .filter(it -> it.getRefType() == 0) // Object 没有 getRefType() + .map(o -> o.getAreaId()) // Object 没有 getAreaId() + .collect(Collectors.toList()); +``` + +**修复方案**: 在 stream 前添加 `(List)` 转换,或定义变量时指定泛型。 + +### 1.3 redisTemplate.delete(Object) (2 errors) + +**涉及文件**: CpOrgDevieKitServiceImpl.unlockSyncLog(L593) + +**根因**: `redisTemplate.delete(Object)` — RedisTemplate 的 `delete()` 签名是 `delete(K key)` 泛型, 传入 Object 无法匹配。 + +**修复方案**: 删除 `(Object)` 转型, 直接传 key: `this.redisTemplate.delete(key);` + +--- + +## 2. Object→cast (76 errors) + +### 2.1 for-each over raw Collection (30+ errors) + +**涉及文件**: CpImageStorePersonSynManager, CpImageStorePersonValidateManager, CpOrgDevieKitServiceImpl + +**根因**: raw List/Map 遍历时 Iterator 返回 Object, 无法赋值给具体类型。 + +**源代码模式**: +```java +// removeMap 是 raw Map +for (Map.Entry entry : removeMap.entrySet()) { ... } +// 修复: +for (Map.Entry> entry : removeMap.entrySet()) { ... } + +// personInfoDataDatas 是 raw Collection +for (DeviceImageUpdateFeautreResult deviceUpdatePersonResult : personInfoDataDatas) { ... } +// 修复: 声明 personInfoDataDatas 为 Collection +``` + +**修复方案**: 找到 raw Collection 的声明位置, 添加泛型类型参数。如果变量有多态使用, 则添加 `(Collection)` 转换。 + +### 2.2 redisTemplate.keys() 返回 raw Set (8 errors) + +**涉及文件**: CpImageStorePersonSynManager.checkHandleSynTaskException(L489,L492,L499,L502) + +**根因**: `redisTemplate.keys(pattern)` 返回 `Set`, 但声明为 raw `Set`, 后续 `.replaceFirst()` 等方法在 Object 上找不到。 + +**源代码模式**: +```java +Set synQueueHeadDataKeys = this.redisTemplate.keys(...); +String imageStoreId = synQueueHeadDataKey.replaceFirst(SYN_QUEUE_HEAD_DATA, ""); +``` + +**修复方案**: 声明为 `Set`: +```java +Set synQueueHeadDataKeys = this.redisTemplate.keys(...); +``` + +### 2.3 Map.get() 返回 Object (8 errors) + +**涉及文件**: CpImageStorePersonManager(L316,L336), OrganizationUnitTypeServiceImpl(L59) + +**根因**: raw Map 的 `get()` 返回 Object, 无法调用 `.setPersonId()` 或赋值给 Integer。 + +**修复方案**: 声明 Map 为 `Map` 泛型, 或在 get() 结果上添加强制转型。 + +### 2.4 stream().collect() 返回 Object (10 errors) + +**涉及文件**: OrganizationServiceImpl.saveAreaDetails(L963,L970,L974,L981) + +**根因**: raw List 的 stream 操作, collect 返回 Object 无法赋值给具体类型。 + +**修复方案**: 在 stream 前添加 `(List)` 转换: +```java +List passableList = ((List)passableArea).stream().map(...).collect(Collectors.toList()); +``` + +--- + +## 3. Type-mismatch (22 errors) + +### 3.1 `String` → `Set` 转型 (8 errors) + +**涉及文件**: CpImageStorePersonSynManager(L489,L492,L499,L502) + +**根因**: 代码写了 `(java.lang.String)` 转型但实际类型是 `Set`: +```java +Set synQueueHeadDataKeys = (java.lang.String) this.redisTemplate.keys(...); +``` + +**修复方案**: 修改转型为目标类型: +```java +Set synQueueHeadDataKeys = this.redisTemplate.keys(...); +``` + +### 3.2 三元表达式类型不一致 (4 errors) + +**涉及文件**: CpImageStorePersonValidateManager(L150, L453) + +**根因**: +```java +List syncPersonDtoList = StringUtils.isNotBlank(dataSet) + ? JsonUtils.toObjList(dataSet, SyncPersonLocal.class) + : new ArrayList<>(); // inferred as ArrayList +``` + +`JsonUtils.toObjList()` 返回 `List`, `new ArrayList<>()` 推断为 `ArrayList`, 三元运算符的两个分支类型不一致。 + +**修复方案**: 指定 ArrayList 的泛型: +```java +: new ArrayList() +``` + +### 3.3 `ArrayList` vs `List` (2 errors) + +**涉及文件**: OrganizationServiceImpl.getList(L552) + +**根因**: `ids` 声明为 `ArrayList` 但 `param.getIds()` 返回 `List`, 不能直接赋值。 + +**修复方案**: +```java +ids = new ArrayList<>(param.getIds()); // 或 +ids.clear(); ids.addAll(param.getIds()); +``` + +### 3.4 `List` vs `List` (2 errors) + +**涉及文件**: OrganizationServiceImpl.detail(L826) + +**根因**: zoneIds 声明为 `List` 但 `result.setZoneIds()` 接受 `List`。 + +**修复方案**: +```java +result.setZoneIds((List)(List) zoneIds); // 双重转型绕过泛型检查 +``` + +### 3.5 `List>` vs `List` (2 errors) + +**涉及文件**: CpImageStorePersonTxHandler.handleImageStorePersonDelete(L201) + +**根因**: `Lists.partition()` 返回 `List>` 但赋值给 `List`。 + +**修复方案**: +```java +List> partition = Lists.partition(changePersonIds, delBatchSize); +``` + +--- + +## 4. Ambiguous (16 errors) - redisTemplate.execute() 歧义 + +**涉及文件**: CpImageStorePersonSynManager (12), CpImageStorePersonValidateManager (4) + +**根因**: `RedisTemplate.execute()` 有两个重载: +- `execute(RedisCallback callback)` +- `execute(SessionCallback callback)` + +lambda `connection -> connection.eval(...)` 同时匹配 RedisCallback 和 SessionCallback。 + +**源代码**: +```java +this.redisTemplate.execute(connection -> (Long)connection.eval(lua, keys, args)) +``` + +**修复方案**: 添加 lambda 参数类型或转型: +```java +this.redisTemplate.execute((RedisCallback) connection -> connection.eval(lua, keys, args)) +``` + +--- + +## 5. Type-inf (6 errors) - 类型推断失败 + +### 5.1 Sets.newHashSet() 泛型推断 (2 errors) + +**涉及文件**: CpImageStorePersonTxHandler.deletePersonFromImageStores(L221) + +**根因**: `Sets.newHashSet((Object[])new String[]{imageId})` — 重建数组丢失类型。 + +**修复方案**: +```java +Sets.newHashSet(imageId) // 或 +Sets.newHashSet(new String[]{imageId}) +``` + +### 5.2 Map infer from stream (4 errors) + +**涉及文件**: CpImageStorePersonSynManager.handleImageStoreIncrementSyn(L417,L418) + +**根因**: `.collect(Collectors.groupingBy(...))` 的结果赋值给 `Map>` 但 stream 是 raw。 + +**修复方案**: 先转型 source 再 stream。 + +--- + +## 每文件修复优先级 + +| 文件 | 错误数 | 主要类别 | 修复复杂度 | 预估时间 | +|------|-------|---------|-----------|---------| +| CpOrgDevieKitServiceImpl | 54 | $$ (32), Obj→cast (20) | ⭐⭐ | 30 min | +| CpImageStorePersonSynManager | 38 | Obj→cast (10), Ambiguous (12) | ⭐⭐ | 25 min | +| OrganizationServiceImpl | 32 | No-sym (14), Obj→cast (14) | ⭐⭐ | 20 min | +| CpImageStorePersonValidateManager | 28 | Obj→cast (12), Type-mis (8) | ⭐⭐ | 20 min | +| CpImageStorePersonManager | 16 | No-sym (8), Obj→cast (8) | ⭐⭐ | 15 min | +| OrganizationUnitTypeServiceImpl | 14 | $$ (12), Obj→cast (2) | ⭐ | 10 min | +| AreaTypeServiceImpl | 10 | $$ (2), Obj→cast (8) | ⭐ | 10 min | +| CpImageStorePersonTxHandler | 8 | Type-mis (2), No-sym (2) | ⭐ | 5 min | + +**总预估**: 约 2 小时逐行修复。 diff --git a/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpImageStorePersonValidateManager.java b/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpImageStorePersonValidateManager.java index c6c8f46d..0070567b 100644 --- a/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpImageStorePersonValidateManager.java +++ b/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpImageStorePersonValidateManager.java @@ -28,6 +28,7 @@ import java.util.Optional; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; +import org.springframework.data.redis.core.RedisCallback; import javax.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.quartz.Scheduler; @@ -99,7 +100,7 @@ public class CpImageStorePersonValidateManager { iterator.remove(); } Scheduler scheduler = this.taskExecClient.getScheduler(this.quartzTaskProperties.getSchedulerName()); - for (Map.Entry entry : removeMap.entrySet()) { + for (Map.Entry> entry : ((Map>) (Map) removeMap).entrySet()) { Long l = (Long)entry.getKey(); lockValue = SnowFlake.nextId(); try { @@ -109,7 +110,7 @@ public class CpImageStorePersonValidateManager { Trigger trigger = scheduler.getTrigger(triggerKey); if (trigger == null || !StringUtils.isNotBlank((CharSequence)(dataSet = trigger.getJobDataMap().getString("VALIDATE_TRIGGER_KEY")))) continue; List syncPersonDTOS = JsonUtils.toObjList(dataSet, SyncPersonLocal.class); - syncPersonDTOS = CpImageStorePersonValidateManager.removeAll(syncPersonDTOS, (Set)entry.getValue()); + syncPersonDTOS = CpImageStorePersonValidateManager.removeAll(syncPersonDTOS, entry.getValue()); if (addMap.containsKey(l)) { Set keyAddSet = (Set)addMap.get(l); syncPersonDTOS = CpImageStorePersonValidateManager.addAll(syncPersonDTOS, keyAddSet); @@ -131,7 +132,7 @@ public class CpImageStorePersonValidateManager { this.validateJobGroupUnLock(l, lockValue); } } - for (Map.Entry entry : addMap.entrySet()) { + for (Map.Entry> entry : ((Map>) (Map) addMap).entrySet()) { if (((Set)entry.getValue()).isEmpty()) continue; Long l = (Long)entry.getKey(); lockValue = SnowFlake.nextId(); @@ -147,8 +148,8 @@ public class CpImageStorePersonValidateManager { continue; } String dataSet = trigger.getJobDataMap().getString("VALIDATE_TRIGGER_KEY"); - List syncPersonDtoList = StringUtils.isNotBlank((CharSequence)dataSet) ? JsonUtils.toObjList(dataSet, SyncPersonLocal.class) : Lists.newArrayList(); - syncPersonDtoList = CpImageStorePersonValidateManager.addAll(syncPersonDtoList, (Set)entry.getValue()); + List syncPersonDtoList = StringUtils.isNotBlank((CharSequence)dataSet) ? JsonUtils.toObjList(dataSet, SyncPersonLocal.class) : new ArrayList<>(); + syncPersonDtoList = CpImageStorePersonValidateManager.addAll(syncPersonDtoList, entry.getValue()); trigger.getJobDataMap().put("VALIDATE_TRIGGER_KEY", JsonUtils.toJson(syncPersonDtoList)); scheduler.rescheduleJob(triggerKey, trigger); continue; @@ -166,9 +167,9 @@ public class CpImageStorePersonValidateManager { } } this.updateExpiryDateStatus(currentTime, syncPersonList); - Map> deleteImageMap = (java.util.Map>) deleteSet.parallelStream().collect(Collectors.groupingBy(SyncPersonDTO::getImageStoreId)); - for (Map.Entry entry : deleteImageMap.entrySet()) { - Set keySet = ((List)entry.getValue()).parallelStream().map(s -> s.getImageId()).collect(Collectors.toSet()); + Map> deleteImageMap = (Map>) (Map) deleteSet.parallelStream().collect(Collectors.groupingBy(SyncPersonDTO::getImageStoreId)); + for (Map.Entry> entry : deleteImageMap.entrySet()) { + Set keySet = entry.getValue().parallelStream().map(s -> s.getImageId()).collect(Collectors.toSet()); this.cpImageStorePersonTxHandler.handleImageStoreImageChange((String)entry.getKey(), keySet, false); } Map> addImageMap = (java.util.Map>) addSet.parallelStream().collect(Collectors.groupingBy(SyncPersonDTO::getImageStoreId)); @@ -204,7 +205,7 @@ public class CpImageStorePersonValidateManager { String lockKey = "validate_job_group_lock:" + key; while (true) { Long lockResult; - if (0L == (lockResult = (Long)this.redisTemplate.execute(connection -> (Long)connection.eval(this.lockValidateJobRedisScript.getScriptAsString().getBytes(), ReturnType.INTEGER, 0, (byte[][])new byte[][]{lockKey.getBytes(), String.valueOf(lockValue).getBytes(), this.lockValidateJobGroupSecond.getBytes()})))) { + if (0L == (lockResult = (Long)this.redisTemplate.execute((RedisCallback) connection -> (Long)connection.eval(this.lockValidateJobRedisScript.getScriptAsString().getBytes(), ReturnType.INTEGER, 0, (byte[][])new byte[][]{lockKey.getBytes(), String.valueOf(lockValue).getBytes(), this.lockValidateJobGroupSecond.getBytes()})))) { log.info("CpImageStorePersonValidateManager validateJobGroupLock success:{}", (Object)key); return true; } @@ -230,7 +231,7 @@ public class CpImageStorePersonValidateManager { private boolean validateJobGroupUnLock(Long key, Long lockValue) { log.info("CpImageStorePersonValidateManager validateJobGroupUnLock:{},{}", (Object)key, (Object)lockValue); String lockKey = "validate_job_group_lock:" + key; - Long lockResult = (Long)this.redisTemplate.execute(connection -> (Long)connection.eval(this.unlockValidateJobRedisScript.getScriptAsString().getBytes(), ReturnType.INTEGER, 0, (byte[][])new byte[][]{lockKey.getBytes(), String.valueOf(lockValue).getBytes()})); + Long lockResult = (Long)this.redisTemplate.execute((RedisCallback) connection -> (Long)connection.eval(this.unlockValidateJobRedisScript.getScriptAsString().getBytes(), ReturnType.INTEGER, 0, (byte[][])new byte[][]{lockKey.getBytes(), String.valueOf(lockValue).getBytes()})); if (0L == lockResult) { log.info("CpImageStorePersonValidateManager validateJobGroupUnLock success:{},{}", (Object)key, (Object)lockValue); return true; @@ -413,7 +414,7 @@ public class CpImageStorePersonValidateManager { queryGroupPersonDTO.setEndTime(delayTime); queryGroupPersonDTO.setExpiryBeginDateStatus(Integer.valueOf(0)); queryGroupPersonDTO.setExpiryEndDateStatus(Integer.valueOf(0)); - List waitAddValidateList = this.groupPersonRefMapper.queryByExpiryDateStatus(queryGroupPersonDTO); + List waitAddValidateList = this.groupPersonRefMapper.queryByExpiryDateStatus(queryGroupPersonDTO); if (CollectionUtils.isEmpty((Collection)waitAddValidateList)) { log.debug("[{}-{}]时间范围内没有需要添加的trigger", (Object)queryGroupPersonDTO.getStartTime(), (Object)queryGroupPersonDTO.getEndTime()); } @@ -422,7 +423,7 @@ public class CpImageStorePersonValidateManager { ConcurrentHashSet deleteSet = new ConcurrentHashSet(); HashSet changeGroupIdSet = Sets.newHashSet(); ArrayList syncPersonList = Lists.newArrayListWithCapacity((int)waitAddValidateList.size()); - waitAddValidateList = (java.util.List) waitAddValidateList.stream().sorted(Comparator.comparing(GroupPersonRef::getExpiryBeginDate)).collect(Collectors.toList()); + waitAddValidateList = (List) waitAddValidateList.stream().sorted(Comparator.comparing(GroupPersonRef::getExpiryBeginDate)).collect(Collectors.toList()); waitAddValidateList.stream().forEach(arg_0 -> this.lambda$delayAddValidateTrigger$24(changeGroupIdSet, syncPersonList, currentTime, (Set)addSet, delayTime, addMap, (Set)deleteSet, arg_0)); Iterator iterator = addSet.iterator(); while (iterator.hasNext()) { @@ -436,7 +437,7 @@ public class CpImageStorePersonValidateManager { iterator.remove(); } Scheduler scheduler = this.taskExecClient.getScheduler(this.quartzTaskProperties.getSchedulerName()); - for (Map.Entry entry : addMap.entrySet()) { + for (Map.Entry> entry : ((Map>) (Map) addMap).entrySet()) { if (((Set)entry.getValue()).isEmpty()) continue; Long l = (Long)entry.getKey(); Long lockValue = SnowFlake.nextId(); @@ -450,8 +451,8 @@ public class CpImageStorePersonValidateManager { continue; } String dataSet = trigger.getJobDataMap().getString("VALIDATE_TRIGGER_KEY"); - List syncPersonDtoList = StringUtils.isNotBlank((CharSequence)dataSet) ? JsonUtils.toObjList(dataSet, SyncPersonLocal.class) : Lists.newArrayList(); - syncPersonDtoList = CpImageStorePersonValidateManager.addAll(syncPersonDtoList, (Set)entry.getValue()); + List syncPersonDtoList = StringUtils.isNotBlank((CharSequence)dataSet) ? JsonUtils.toObjList(dataSet, SyncPersonLocal.class) : new ArrayList<>(); + syncPersonDtoList = CpImageStorePersonValidateManager.addAll(syncPersonDtoList, entry.getValue()); trigger.getJobDataMap().put("VALIDATE_TRIGGER_KEY", JsonUtils.toJson(syncPersonDtoList)); scheduler.rescheduleJob(triggerKey, trigger); continue; @@ -469,9 +470,9 @@ public class CpImageStorePersonValidateManager { } } this.updateExpiryDateStatus(currentTime, syncPersonList); - Map> deleteImageMap = (java.util.Map>) deleteSet.parallelStream().collect(Collectors.groupingBy(SyncPersonDTO::getImageStoreId)); - for (Map.Entry entry : deleteImageMap.entrySet()) { - Set keySet = ((List)entry.getValue()).parallelStream().map(s -> s.getImageId()).collect(Collectors.toSet()); + Map> deleteImageMap = (Map>) (Map) deleteSet.parallelStream().collect(Collectors.groupingBy(SyncPersonDTO::getImageStoreId)); + for (Map.Entry> entry : deleteImageMap.entrySet()) { + Set keySet = entry.getValue().parallelStream().map(s -> s.getImageId()).collect(Collectors.toSet()); this.cpImageStorePersonTxHandler.handleImageStoreImageChange((String)entry.getKey(), keySet, false); } Map> addImageMap = (java.util.Map>) addSet.parallelStream().collect(Collectors.groupingBy(SyncPersonDTO::getImageStoreId)); diff --git a/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpOrgDevieKitServiceImpl.java b/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpOrgDevieKitServiceImpl.java index c8106576..e69a174c 100644 --- a/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpOrgDevieKitServiceImpl.java +++ b/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/CpOrgDevieKitServiceImpl.java @@ -114,7 +114,7 @@ implements CpOrgDevieKitService { UpdateGroupResult updateGroupResult = new UpdateGroupResult(); BeanCopyUtils.copyProperties((Object)updateGroupParam, (Object)updateGroupResult); updateGroupResult.setGroups(groups); - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updateGroupResult); } public CloudwalkResult onUpdateFeatureRequest(UpdateFeatureParam updateFeatureParam, CloudwalkCallContext cloudwalkCallContext) throws ServiceException { @@ -124,7 +124,7 @@ implements CpOrgDevieKitService { AtomicDeviceGetResult device = this.checkAndGetDeviceByCode(updateFeatureParam.getDeviceId(), cloudwalkCallContext); boolean checkBoolean = this.checkDeviceImageStoreIdRefExist(updateFeatureParam.getGroupId(), device.getId(), cloudwalkCallContext); if (!checkBoolean) { - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updateFeatureResult); } DeviceImageUpdateFeatureQuery updatePersonQuery = new DeviceImageUpdateFeatureQuery(); updatePersonQuery.setImageStoreId(updateFeatureParam.getGroupId()); @@ -137,7 +137,7 @@ implements CpOrgDevieKitService { } if (!(updatePersonInfo = this.cpDeviceImagePersonService.getDeviceImageUpdateFeatureInfo(updatePersonQuery, cloudwalkCallContext)).isSuccess()) { this.logger.warn("get feature info error,device:{}, imageStore:{}", (Object)updateFeatureParam.getDeviceId(), (Object)updateFeatureParam.getGroupId()); - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updateFeatureResult); } CloudwalkPageAble personInfoData = (CloudwalkPageAble)updatePersonInfo.getData(); updateFeatureResult.setCurrentPage(Integer.valueOf((int)personInfoData.getCurrentPage())); @@ -145,7 +145,7 @@ implements CpOrgDevieKitService { updateFeatureResult.setPagePize(Integer.valueOf((int)personInfoData.getPageSize())); updateFeatureResult.setTotalPages(Integer.valueOf((int)personInfoData.getTotalPages())); ArrayList featureDatas = new ArrayList(); - Collection personInfoDataDatas = personInfoData.getDatas(); + Collection personInfoDataDatas = personInfoData.getDatas(); for (DeviceImageUpdateFeautreResult deviceUpdatePersonResult : personInfoDataDatas) { UpdateFeatureResult.FeatureData featureData = new UpdateFeatureResult.FeatureData(); featureData.setFaceId(deviceUpdatePersonResult.getFaceId()); @@ -163,7 +163,7 @@ implements CpOrgDevieKitService { } else { updateFeatureResult.setEndFlag(EndFlagEnum.NO_END.getCode()); } - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updateFeatureResult); } public CloudwalkResult onUpdatePictureRequest(UpdatePictureParam updatePictureParam, CloudwalkCallContext cloudwalkCallContext) throws ServiceException { @@ -173,7 +173,7 @@ implements CpOrgDevieKitService { AtomicDeviceGetResult device = this.checkAndGetDeviceByCode(updatePictureParam.getDeviceId(), cloudwalkCallContext); boolean checkBoolean = this.checkDeviceImageStoreIdRefExist(updatePictureParam.getGroupId(), device.getId(), cloudwalkCallContext); if (!checkBoolean) { - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updatePictureResult); } DeviceImageUpdatePersonQuery updatePersonQuery = new DeviceImageUpdatePersonQuery(); updatePersonQuery.setImageStoreId(updatePictureParam.getGroupId()); @@ -186,14 +186,14 @@ implements CpOrgDevieKitService { } if (!(updatePersonInfo = this.cpDeviceImagePersonService.getDeviceImageUpdatePersonInfo(updatePersonQuery, cloudwalkCallContext)).isSuccess()) { this.logger.warn("get picture info error,device:{}, imageStore:{}", (Object)updatePictureParam.getDeviceId(), (Object)updatePictureParam.getGroupId()); - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updatePictureResult); } CloudwalkPageAble personInfoData = (CloudwalkPageAble)updatePersonInfo.getData(); updatePictureParam.setCurrentPage(Integer.valueOf((int)personInfoData.getCurrentPage())); updatePictureParam.setGroupId(updatePictureParam.getGroupId()); updatePictureParam.setPageSize(Integer.valueOf((int)personInfoData.getPageSize())); ArrayList personDatas = new ArrayList(); - Collection personInfoDataDatas = personInfoData.getDatas(); + Collection personInfoDataDatas = personInfoData.getDatas(); for (DeviceImageUpdatePersonResult deviceUpdatePersonResult : personInfoDataDatas) { UpdatePictureResult.ImageData imageData = new UpdatePictureResult.ImageData(); imageData.setFaceId(deviceUpdatePersonResult.getImageId()); @@ -212,7 +212,7 @@ implements CpOrgDevieKitService { updatePictureResult.setEndFlag(EndFlagEnum.NO_END.getCode()); } BeanCopyUtils.copyProperties((Object)updatePictureParam, (Object)updatePictureResult); - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updatePictureResult); } public CloudwalkResult onUpdatePersonRequest(UpdatePersonParam updatePersonParam, CloudwalkCallContext cloudwalkCallContext) throws ServiceException { @@ -232,7 +232,7 @@ implements CpOrgDevieKitService { List deviceImageStoreList = this.deviceImageStoreMapper.select(query); if (!CollectionUtils.isEmpty((Collection)deviceImageStoreList) && (deviceImageStore = (DeviceImageStore)deviceImageStoreList.get(0)).getType() == 2 && null != deviceImageStore.getFinishPullTime()) { updatePersonResult.setEndFlag(EndFlagEnum.END.getCode()); - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updatePersonResult); } } DeviceImageUpdatePersonQuery updatePersonQuery = new DeviceImageUpdatePersonQuery(); @@ -252,7 +252,7 @@ implements CpOrgDevieKitService { this.logger.info("20113 getDeviceUpdatePersonInfo,spend time {} millis", (Object)(t2 - t1)); if (!updatePersonInfo.isSuccess()) { this.logger.warn("get person info error,device:{}, imageStore:{}", (Object)updatePersonParam.getDeviceId(), (Object)updatePersonParam.getGroupId()); - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updatePersonResult); } CloudwalkPageAble personInfoData = (CloudwalkPageAble)updatePersonInfo.getData(); updatePersonResult.setCurrentPage(Integer.valueOf((int)personInfoData.getCurrentPage())); @@ -260,7 +260,7 @@ implements CpOrgDevieKitService { updatePersonResult.setTotalPages(Integer.valueOf((int)personInfoData.getTotalPages())); updatePersonResult.setPagePize(Integer.valueOf((int)personInfoData.getPageSize())); ArrayList personData = new ArrayList(); - Collection personInfoDataDatas = personInfoData.getDatas(); + Collection personInfoDataDatas = personInfoData.getDatas(); for (DeviceImageUpdatePersonResult deviceUpdatePersonResult : personInfoDataDatas) { UpdatePersonResult.PersonData personDataTemp = new UpdatePersonResult.PersonData(); personDataTemp.setUserId(deviceUpdatePersonResult.getPersonId()); @@ -307,7 +307,7 @@ implements CpOrgDevieKitService { } else { updatePersonResult.setEndFlag(EndFlagEnum.NO_END.getCode()); } - return (CloudwalkResult) CloudwalkResult.success($$$); + return (CloudwalkResult) CloudwalkResult.success(updatePersonResult); } private void addSyncLogForFeatureUpdate(String deviceId, String groupId, List featureDatas) { @@ -484,7 +484,7 @@ implements CpOrgDevieKitService { this.logger.debug("设备code[{}]支持多图库", (Object)updatePersonParam.getDeviceId()); return; } - List imageStoreIds = Optional.ofNullable(this.deviceImageStoreMapper.findImageStoreIds(device.getId(), Short.valueOf((short)1))).orElse(new ArrayList()); + List imageStoreIds = Optional.ofNullable(this.deviceImageStoreMapper.findImageStoreIds(device.getId(), Short.valueOf((short)1))).orElse(new ArrayList()); imageStoreIds = imageStoreIds.stream().filter(id -> !id.equals(updatePersonParam.getGroupId())).collect(Collectors.toList()); DevicePersonSyncLogDTO dto = new DevicePersonSyncLogDTO(); dto.setDeviceId(device.getId()); @@ -518,7 +518,7 @@ implements CpOrgDevieKitService { QueryGroupPersonDTO queryGroupPersonDTO = new QueryGroupPersonDTO(); queryGroupPersonDTO.setPersonId(personInfo.getUserId()); queryGroupPersonDTO.setImageStoreIds((Collection)dto.getImageStoreIds()); - List otherGroupPersons = Optional.ofNullable(this.groupPersonRefMapper.query(queryGroupPersonDTO)).orElse(new ArrayList()); + List otherGroupPersons = Optional.ofNullable(this.groupPersonRefMapper.query(queryGroupPersonDTO)).orElse(new ArrayList()); otherGroupPersons = otherGroupPersons.stream().filter(groupPersonRef -> -1 != groupPersonRef.getStatus() || DelStatusEnum.DELETED.getCode().shortValue() != groupPersonRef.getIsDel().shortValue()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(otherGroupPersons)) { this.logger.warn("设备[{}]人员[{}]未关联其他图库", (Object)dto.getDeviceId(), (Object)dto.getPersonId()); @@ -537,7 +537,7 @@ implements CpOrgDevieKitService { return; } this.logger.debug("设备[{}]支持有效期", (Object)dto.getDeviceId()); - HashSet validDateCronSet = new HashSet(); + HashSet validDateCronSet = new HashSet(); JSONObject jsonObject = JSONObject.parseObject((String)personInfo.getReserveInfo()); JSONArray jsonArray = jsonObject.getJSONArray("passCrons"); if (null != jsonArray && jsonArray.size() > 0) { @@ -579,18 +579,18 @@ implements CpOrgDevieKitService { private synchronized boolean lockSyncLog(String deviceId, String imageStoreId, String personId) { String value = deviceId + "_" + imageStoreId + "_" + personId; String key = SYNC_LOG_KEY + value; - if (this.redisTemplate.hasKey((Object)key).booleanValue()) { + if (this.redisTemplate.hasKey(key).booleanValue()) { return false; } - this.redisTemplate.opsForValue().set((Object)key, (Object)value, this.syncLogExpireTime, TimeUnit.SECONDS); + this.redisTemplate.opsForValue().set(key, value, this.syncLogExpireTime, TimeUnit.SECONDS); return true; } private synchronized boolean unlockSyncLog(String deviceId, String imageStoreId, String personId) { String value = deviceId + "_" + imageStoreId + "_" + personId; String key = SYNC_LOG_KEY + value; - if (this.redisTemplate.hasKey((Object)key).booleanValue()) { - this.redisTemplate.delete((Object)key); + if (this.redisTemplate.hasKey(key).booleanValue()) { + this.redisTemplate.delete(key); return true; } return false; @@ -642,7 +642,7 @@ implements CpOrgDevieKitService { throw new ServiceException(personRefs.getCode(), personRefs.getMessage()); } HashMap personRefMap = new HashMap(); - List personRefsData = (List)personRefs.getData(); + List personRefsData = (List)personRefs.getData(); for (DeviceImagePersonRefResult deviceImagePersonRefResult : personRefsData) { personRefMap.put(deviceImagePersonRefResult.getImageStoreId(), deviceImagePersonRefResult.getImageLastUpdateTime()); } diff --git a/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/OrganizationServiceImpl.java b/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/OrganizationServiceImpl.java index faf3d147..45757c5c 100644 --- a/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/OrganizationServiceImpl.java +++ b/maven-ninca-common-component-organization/cwos-component-organization-service/src/main/java/cn/cloudwalk/service/organization/service/OrganizationServiceImpl.java @@ -287,7 +287,7 @@ implements OrganizationService { private UserQueryResult getByUserId(String userId, CloudwalkCallContext context) throws ServiceException { UserGetsParam param = new UserGetsParam(); - param.setIds((List)Lists.newArrayList((Object[])new String[]{userId})); + param.setIds((List)Lists.newArrayList(userId)); CloudwalkResult userList = this.userService.gets(param, context); if (userList.isSuccess() && !CollectionUtils.isEmpty((Collection)((Collection)userList.getData()))) { return (UserQueryResult)((List)userList.getData()).get(0); @@ -337,7 +337,7 @@ implements OrganizationService { if (StringUtils.isBlank((CharSequence)param.getParentId())) { List allOrg = this.imgStoreOrganizationMapper.getAllOrg(businessId); res = BeanCopyUtils.copy((Collection)allOrg, TreeOrganizationResult.class); - res = (java.util.List) res.stream().filter(ToolUtil.distinctByKey(TreeOrganizationResult::getId)).collect(Collectors.toList()); + res = (List) res.stream().filter(ToolUtil.distinctByKey(TreeOrganizationResult::getId)).collect(Collectors.toList()); } else { res = this.getTreeByParentId(param.getParentId(), businessId); } @@ -549,7 +549,7 @@ implements OrganizationService { getsOrganizationDTO.setBusinessId(businessId); getsOrganizationDTO.setIsDel(Short.valueOf((short)0)); if (!CollectionUtils.isEmpty(orgIds)) { - ids = param.getIds(); + ids = new ArrayList<>(param.getIds()); if (!CollectionUtils.isEmpty((Collection)ids)) { orgIds.retainAll(ids); if (CollectionUtils.isEmpty(orgIds)) { @@ -810,7 +810,7 @@ implements OrganizationService { extendResult.setDetail(extendDetail); } result.setExtend(extendResult); - List refDTOS = Optional.ofNullable(this.organizationAreaRefMapper.listByOrgId(orgId, businessId)).orElse(Collections.emptyList()); + List refDTOS = Optional.ofNullable(this.organizationAreaRefMapper.listByOrgId(orgId, businessId)).orElse(Collections.emptyList()); List officeArea = refDTOS.stream().filter(it -> it.getRefType() == 0).map(o -> o.getAreaId()).collect(Collectors.toList()); List passableArea = refDTOS.stream().filter(it -> it.getRefType() == 1).map(o -> o.getAreaId()).collect(Collectors.toList()); result.setPassableArea(passableArea); @@ -818,9 +818,9 @@ implements OrganizationService { QueryZoneUnitParam queryZoneUnitParam = new QueryZoneUnitParam(); queryZoneUnitParam.setUnitIds(Collections.singletonList(organization.getId())); CloudwalkResult> zoneDetail = this.zoneFeignClient.findZoneDetailByUnitIds(queryZoneUnitParam); - List zoneIds = new ArrayList(); + List zoneIds = new ArrayList(); if ("00000000".equals(zoneDetail.getCode())) { - List data = (List)zoneDetail.getData(); + List data = (List)zoneDetail.getData(); zoneIds = data.stream().map(z -> z.getZoneId()).collect(Collectors.toList()); } result.setZoneIds(zoneIds); @@ -837,10 +837,10 @@ implements OrganizationService { if (param.getId() != null) { ids.add(param.getId()); } else { - ids = param.getIds(); + ids = new ArrayList<>(param.getIds()); } - List organizations = Optional.ofNullable(this.imgStoreOrganizationMapper.listNames(ids, businessId)).orElse(Collections.emptyList()); - Map collect = (java.util.Map) organizations.stream().collect(Collectors.toMap(it -> it.getId(), v -> v.getName())); + List organizations = Optional.ofNullable(this.imgStoreOrganizationMapper.listNames(ids, businessId)).orElse(Collections.emptyList()); + Map collect = (Map) organizations.stream().collect(Collectors.toMap(it -> it.getId(), v -> v.getName())); return (CloudwalkResult)CloudwalkResult.success(collect); } @@ -954,7 +954,7 @@ implements OrganizationService { } private void saveAreaDetails(EditOrganizationParam param, String businessId) { - List passableArea = param.getPassableArea(); + List passableArea = param.getPassableArea(); String organizationId = param.getId(); boolean type = true; this.organizationAreaRefMapper.deleteAllByOrgId(organizationId, businessId); @@ -968,7 +968,7 @@ implements OrganizationService { refDTO.setCreateTime(Long.valueOf(System.currentTimeMillis())); return refDTO; }).collect(Collectors.toList()); - List officeArea = param.getOfficeArea(); + List officeArea = param.getOfficeArea(); List officeList = officeArea.stream().map(areaId -> { OrganizationAreaRefDTO refDTO = new OrganizationAreaRefDTO(); refDTO.setAreaId(areaId);