dengsixing 2 tháng trước cách đây
mục cha
commit
cd9d6f8373

+ 9 - 2
src/main/java/com/fdkankan/scene/service/impl/SceneEvidenceServiceImpl.java

@@ -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());