dengsixing 2 hónapja
szülő
commit
59b5f0ae77

+ 12 - 3
src/main/java/com/fdkankan/scene/service/impl/SceneEvidenceServiceImpl.java

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