|
|
@@ -425,8 +425,15 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
|
|
|
|
|
|
//检验重复导入,一个痕迹物证在同一场景不能被多次导入
|
|
|
- List<Long> midList = param.getDataList().stream().map(v -> v.getData().getLong("mid")).collect(Collectors.toList());
|
|
|
- long count = sceneMidService.count(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, param.getNum()).in(SceneMid::getMid, midList));
|
|
|
+ Set<Long> mids = new HashSet<>();
|
|
|
+ for (EvidenceParamVO evidenceParamVO : param.getDataList()) {
|
|
|
+ JSONArray media = evidenceParamVO.getData().getJSONArray("media");
|
|
|
+ for (Object o : media) {
|
|
|
+ JSONObject mediaObj = (JSONObject) o;
|
|
|
+ mids.add(mediaObj.getLong("mid"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ long count = sceneMidService.count(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, param.getNum()).in(SceneMid::getMid, mids));
|
|
|
if(count > 0)
|
|
|
throw new BusinessException(JMErrorCode.FAILURE_CODE_20000.code(), JMErrorCode.FAILURE_CODE_20000.message());
|
|
|
|