|
|
@@ -440,14 +440,23 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
idMap.put(bgm.getLong("mid"), bgm.getString("sid"));
|
|
|
}
|
|
|
}
|
|
|
- Set<Long> repeatMids = null;
|
|
|
+ Set<Long> addMids = new HashSet<>();
|
|
|
+ Set<Long> repeatMids = new HashSet<>();
|
|
|
List<SceneMid> list = sceneMidService.list(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, param.getNum()).in(SceneMid::getMid, idMap.keySet()));
|
|
|
- if(CollUtil.isNotEmpty(list)){
|
|
|
- if(list.size() == idMap.size()) {//如果数据库中的mid和参数中的mid数量完全一样,代表完全重复,直接返回
|
|
|
+ if(CollUtil.isNotEmpty(list)){//查出来不为空,就肯定是有重复的
|
|
|
+ Set<Long> dbMids = list.stream().map(v -> v.getMid()).collect(Collectors.toSet());
|
|
|
+ //过滤出重复的和不重复的
|
|
|
+ for (Long mid : idMap.keySet()) {
|
|
|
+ if(dbMids.contains(mid)){
|
|
|
+ repeatMids.add(mid);
|
|
|
+ }else{
|
|
|
+ addMids.add(mid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(CollUtil.isNotEmpty(addMids)){//如果没有新增,那就是完全重复,直接终止程序
|
|
|
throw new BusinessException(JMErrorCode.FAILURE_CODE_20000.code(), JMErrorCode.FAILURE_CODE_20000.message());
|
|
|
- } else{//否则可以导入不重复的mid部分
|
|
|
+ }else{//如果有新增,又有重复,那就是部分导入
|
|
|
resCode = JMErrorCode.FAILURE_CODE_20001.code();
|
|
|
- Set<Long> dbMids = list.stream().map(v -> v.getMid()).collect(Collectors.toSet());
|
|
|
repeatMids = idMap.keySet().stream().filter(mid -> dbMids.contains(mid)).collect(Collectors.toSet());
|
|
|
dataList : for (int i = 0; i < param.getDataList().size(); i++) {
|
|
|
EvidenceParamVO evidenceParamVO = param.getDataList().get(i);
|
|
|
@@ -467,6 +476,7 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
Map<String, Long> importMap = new HashMap<>();
|