|
|
@@ -425,15 +425,15 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
|
|
|
|
|
|
//检验重复导入,一个痕迹物证在同一场景不能被多次导入
|
|
|
- Set<Long> mids = new HashSet<>();
|
|
|
+ Map<String, Long> idMap = new HashMap<>();
|
|
|
for (EvidenceParamVO evidenceParamVO : param.getDataList()) {
|
|
|
JSONArray media = evidenceParamVO.getData().getJSONArray("media");
|
|
|
for (Object o : media) {
|
|
|
JSONObject mediaObj = JSON.parseObject(JSON.toJSONString(o));
|
|
|
- mids.add(mediaObj.getLong("mid"));
|
|
|
+ idMap.put(mediaObj.getString("sid"), mediaObj.getLong("mid"));
|
|
|
}
|
|
|
}
|
|
|
- long count = sceneMidService.count(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, param.getNum()).in(SceneMid::getMid, mids));
|
|
|
+ long count = sceneMidService.count(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, param.getNum()).in(SceneMid::getMid, new HashSet<>(idMap.values())));
|
|
|
if(count > 0)
|
|
|
throw new BusinessException(JMErrorCode.FAILURE_CODE_20000.code(), JMErrorCode.FAILURE_CODE_20000.message());
|
|
|
|
|
|
@@ -458,6 +458,15 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
return data;
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
+ List<SceneMid> sceneMidList = idMap.keySet().stream().map(v -> {
|
|
|
+ SceneMid sm = new SceneMid();
|
|
|
+ sm.setNum(param.getNum());
|
|
|
+ sm.setSid(v);
|
|
|
+ sm.setMid(idMap.get(v));
|
|
|
+ return sm;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ sceneMidService.saveBatch(sceneMidList);
|
|
|
+
|
|
|
this.saveEvidence(param, null);
|
|
|
|
|
|
return ResultData.ok(collect);
|