|
@@ -83,7 +83,7 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
if (scenePlus == null)
|
|
if (scenePlus == null)
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
|
|
|
|
|
|
|
|
- this.addOrUpdateData(param.getNum(), param.getDataList());
|
|
|
|
|
|
|
+ this.addOrUpdateData(param.getNum(), scenePlus.getKNo(), token, param.getDataList());
|
|
|
|
|
|
|
|
//设置应用到全部数据
|
|
//设置应用到全部数据
|
|
|
this.generalConfig(param.getNum(), param.getGeneralConfig());
|
|
this.generalConfig(param.getNum(), param.getGeneralConfig());
|
|
@@ -95,29 +95,35 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
this.saveEvidenceToSceneEditInfo(param.getNum(), sceneEditInfo);
|
|
this.saveEvidenceToSceneEditInfo(param.getNum(), sceneEditInfo);
|
|
|
sceneEditInfoService.updateById(sceneEditInfo);
|
|
sceneEditInfoService.updateById(sceneEditInfo);
|
|
|
|
|
|
|
|
|
|
+ this.reviseSceneMid(param.getNum());
|
|
|
|
|
+
|
|
|
//推送媒体库
|
|
//推送媒体库
|
|
|
- Set<Long> newMids = this.batchPushMedia(param, token, scenePlus);
|
|
|
|
|
-
|
|
|
|
|
- Set<Long> dbMids = param.getDataList().stream()
|
|
|
|
|
- .filter(v -> v.getData().containsKey("mid") && v.getData().getLong("mid") != null)
|
|
|
|
|
- .map(v -> v.getData().getLong("mid")).collect(Collectors.toSet());
|
|
|
|
|
- Set<Long> mids = new HashSet<>();
|
|
|
|
|
- if(CollUtil.isNotEmpty(newMids)){
|
|
|
|
|
- mids.addAll(newMids);
|
|
|
|
|
- }
|
|
|
|
|
- if(CollUtil.isNotEmpty(dbMids)){
|
|
|
|
|
- mids.addAll(dbMids);
|
|
|
|
|
- }
|
|
|
|
|
- if(CollUtil.isNotEmpty(mids)){
|
|
|
|
|
- //保存场景码与媒体库id关系
|
|
|
|
|
- List<SceneMid> sms = mids.stream().map(v -> {
|
|
|
|
|
- SceneMid sm = new SceneMid();
|
|
|
|
|
- sm.setNum(param.getNum());
|
|
|
|
|
- sm.setMid(v);
|
|
|
|
|
- return sm;
|
|
|
|
|
- }).collect(Collectors.toList());
|
|
|
|
|
- sceneMidService.saveBatch(sms);
|
|
|
|
|
|
|
+// this.batchPushMedia(param, token, scenePlus);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void reviseSceneMid(String num){
|
|
|
|
|
+ List<SceneEvidence> sceneEvidences = this.listByNum(num);
|
|
|
|
|
+ Set<String> sids = new HashSet<>();
|
|
|
|
|
+ sceneEvidences.stream().forEach(v->{
|
|
|
|
|
+ JSONArray media = v.getEvidenceContent().getJSONArray("media");
|
|
|
|
|
+ if(CollUtil.isNotEmpty(media)){
|
|
|
|
|
+ media.stream().forEach(m -> {
|
|
|
|
|
+ JSONObject mediaObj = JSON.parseObject(JSON.toJSONString(m));
|
|
|
|
|
+ sids.add(mediaObj.getString("sid"));
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONObject bgm = v.getEvidenceContent().getJSONObject("bgm");
|
|
|
|
|
+ if(Objects.nonNull(bgm)){
|
|
|
|
|
+ sids.add(bgm.getString("sid"));
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ if(CollUtil.isEmpty(sids)){
|
|
|
|
|
+ sceneMidService.remove(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, num));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ sceneMidService.remove(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, num).notIn(SceneMid::getSid, sids));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void generalConfig(String num, JSONObject generalConfig){
|
|
private void generalConfig(String num, JSONObject generalConfig){
|
|
@@ -137,10 +143,10 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
this.updateBatchById(sceneEvidences);
|
|
this.updateBatchById(sceneEvidences);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private Set<Long> batchPushMedia(SaveEvidenceParamVO param, String token, ScenePlus scenePlus){
|
|
|
|
|
|
|
+ private void batchPushMedia(SaveEvidenceParamVO param, String token, ScenePlus scenePlus){
|
|
|
log.info("--------------SaveEvidenceParamVO:{}", JSON.toJSONString(param));
|
|
log.info("--------------SaveEvidenceParamVO:{}", JSON.toJSONString(param));
|
|
|
- SSOUser ssoUser = jmgaSSOLoginHelper.getSsoUser(token);
|
|
|
|
|
List<JSONObject> params = new ArrayList<>();
|
|
List<JSONObject> params = new ArrayList<>();
|
|
|
|
|
+ List<SceneMid> sms = new ArrayList<>();
|
|
|
for (EvidenceParamVO evidenceParamVO : param.getDataList()) {
|
|
for (EvidenceParamVO evidenceParamVO : param.getDataList()) {
|
|
|
//media
|
|
//media
|
|
|
JSONArray medias = evidenceParamVO.getData().getJSONArray("media");
|
|
JSONArray medias = evidenceParamVO.getData().getJSONArray("media");
|
|
@@ -169,6 +175,12 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
.feature(evidenceParamVO.getData().getString("feature"))
|
|
.feature(evidenceParamVO.getData().getString("feature"))
|
|
|
.leftPosition(evidenceParamVO.getData().getString("leftPosition"))
|
|
.leftPosition(evidenceParamVO.getData().getString("leftPosition"))
|
|
|
.status(evidenceParamVO.getData().getInteger("status")).build());
|
|
.status(evidenceParamVO.getData().getInteger("status")).build());
|
|
|
|
|
+ ResultData<JSONObject> resultData = manageHttpClient.addMediaLibrary(basePath, token, item);
|
|
|
|
|
+ SceneMid sm = new SceneMid();
|
|
|
|
|
+ sms.add(sm);
|
|
|
|
|
+ sm.setNum(param.getNum());
|
|
|
|
|
+ sm.setSid(media.getString("sid"));
|
|
|
|
|
+ sm.setMid(resultData.getData().getLong("id"));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -194,20 +206,29 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
.feature(evidenceParamVO.getData().getString("feature"))
|
|
.feature(evidenceParamVO.getData().getString("feature"))
|
|
|
.leftPosition(evidenceParamVO.getData().getString("leftPosition"))
|
|
.leftPosition(evidenceParamVO.getData().getString("leftPosition"))
|
|
|
.status(evidenceParamVO.getData().getInteger("status")).build());
|
|
.status(evidenceParamVO.getData().getInteger("status")).build());
|
|
|
|
|
+ ResultData<JSONObject> resultData = manageHttpClient.addMediaLibrary(basePath, token, item);
|
|
|
|
|
+ SceneMid sm = new SceneMid();
|
|
|
|
|
+ sms.add(sm);
|
|
|
|
|
+ sm.setNum(param.getNum());
|
|
|
|
|
+ sm.setSid(bgm.getString("sid"));
|
|
|
|
|
+ sm.setMid(resultData.getData().getLong("id"));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ if(CollUtil.isNotEmpty(sms)){
|
|
|
|
|
+ sceneMidService.saveBatch(sms);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
//调用案件系统接口,进行推送
|
|
//调用案件系统接口,进行推送
|
|
|
- if(CollUtil.isEmpty(params)){
|
|
|
|
|
- return null;
|
|
|
|
|
- }
|
|
|
|
|
- JSONObject playLoad = new JSONObject();
|
|
|
|
|
- playLoad.put("params", params);
|
|
|
|
|
- ResultData<List<JSONObject>> resultData = manageHttpClient.addMediaLibrarys(basePath, token, playLoad);
|
|
|
|
|
- return resultData.getData().stream().map(v -> v.getLong("id")).collect(Collectors.toSet());
|
|
|
|
|
|
|
+// if(CollUtil.isEmpty(params)){
|
|
|
|
|
+// return null;
|
|
|
|
|
+// }
|
|
|
|
|
+// JSONObject playLoad = new JSONObject();
|
|
|
|
|
+// playLoad.put("params", params);
|
|
|
|
|
+// ResultData<List<JSONObject>> resultData = manageHttpClient.addMediaLibrarys(basePath, token, playLoad);
|
|
|
|
|
+// return resultData.getData().stream().map(v -> v.getLong("id")).collect(Collectors.toSet());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void addOrUpdateData(String num, List<EvidenceParamVO> dataList) throws Exception{
|
|
|
|
|
|
|
+ private void addOrUpdateData(String num, String kno, String token, List<EvidenceParamVO> dataList) throws Exception{
|
|
|
Set<String> sidList = dataList.stream().map(v->v.getSid()).collect(Collectors.toSet());
|
|
Set<String> sidList = dataList.stream().map(v->v.getSid()).collect(Collectors.toSet());
|
|
|
List<SceneEvidence> sceneEvidences = this.listByNumAndSids(num, sidList);
|
|
List<SceneEvidence> sceneEvidences = this.listByNumAndSids(num, sidList);
|
|
|
Map<String, SceneEvidence> dbMap = new HashMap<>();
|
|
Map<String, SceneEvidence> dbMap = new HashMap<>();
|
|
@@ -217,12 +238,11 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
Map<String, SceneEvidence> finalDbMap = dbMap;
|
|
Map<String, SceneEvidence> finalDbMap = dbMap;
|
|
|
List<SceneEvidence> collect = dataList.stream().map(v -> {
|
|
List<SceneEvidence> collect = dataList.stream().map(v -> {
|
|
|
SceneEvidence sceneEvidence = finalDbMap.get(v.getSid());
|
|
SceneEvidence sceneEvidence = finalDbMap.get(v.getSid());
|
|
|
- Long mid = v.getData().getLong("mid");
|
|
|
|
|
if (Objects.isNull(sceneEvidence)) {
|
|
if (Objects.isNull(sceneEvidence)) {
|
|
|
sceneEvidence = new SceneEvidence();
|
|
sceneEvidence = new SceneEvidence();
|
|
|
sceneEvidence.setNum(num);
|
|
sceneEvidence.setNum(num);
|
|
|
sceneEvidence.setSid(v.getSid());
|
|
sceneEvidence.setSid(v.getSid());
|
|
|
- sceneEvidence.setMid(mid);
|
|
|
|
|
|
|
+// sceneEvidence.setMid(mid);
|
|
|
}
|
|
}
|
|
|
sceneEvidence.setUpdateTime(null);
|
|
sceneEvidence.setUpdateTime(null);
|
|
|
JSONObject evidenceContent = JSON.parseObject(v.getData().toString());
|
|
JSONObject evidenceContent = JSON.parseObject(v.getData().toString());
|
|
@@ -230,11 +250,19 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
if(CollUtil.isNotEmpty(medias)){
|
|
if(CollUtil.isNotEmpty(medias)){
|
|
|
for (Object o : medias) {
|
|
for (Object o : medias) {
|
|
|
JSONObject media = (JSONObject) o;
|
|
JSONObject media = (JSONObject) o;
|
|
|
|
|
+ int isAddMedia = media.getIntValue("isAddMedia");
|
|
|
|
|
+ if(isAddMedia == 1){//如果标识是1,需要推送到媒体库
|
|
|
|
|
+ this.pushMedia(num, kno, v.getData(), media, token);
|
|
|
|
|
+ }
|
|
|
media.remove("isAddMedia");
|
|
media.remove("isAddMedia");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
JSONObject bgm = evidenceContent.getJSONObject("bgm");
|
|
JSONObject bgm = evidenceContent.getJSONObject("bgm");
|
|
|
if(bgm != null){
|
|
if(bgm != null){
|
|
|
|
|
+ int isAddMedia = bgm.getIntValue("isAddMedia");
|
|
|
|
|
+ if(isAddMedia == 1){//如果标识是1,需要推送到媒体库
|
|
|
|
|
+ this.pushMedia(num, kno, v.getData(), bgm, token);
|
|
|
|
|
+ }
|
|
|
bgm.remove("isAddMedia");
|
|
bgm.remove("isAddMedia");
|
|
|
}
|
|
}
|
|
|
sceneEvidence.setEvidenceContent(evidenceContent);
|
|
sceneEvidence.setEvidenceContent(evidenceContent);
|
|
@@ -243,6 +271,34 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
this.saveOrUpdateBatch(collect);
|
|
this.saveOrUpdateBatch(collect);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private void pushMedia(String num, String kNo, JSONObject data, JSONObject media, String token){
|
|
|
|
|
+ String ossPath = String.format(UploadFilePath.USER_EDIT_PATH, num) + media.getString("src");
|
|
|
|
|
+ JSONObject item = new JSONObject();
|
|
|
|
|
+ item.put("num", num);
|
|
|
|
|
+ item.put("kno", kNo);
|
|
|
|
|
+ item.put("filePath", ossPath);
|
|
|
|
|
+ item.put("fileName", media.getString("name"));
|
|
|
|
|
+ item.put("fileSize", fYunFileServiceInterface.getSpace("4dkankan", ossPath));
|
|
|
|
|
+ item.put("delSource", 0);
|
|
|
|
|
+ item.put("toHaixin", 0);
|
|
|
|
|
+ item.put("dictId", data.getInteger("dictId"));
|
|
|
|
|
+ item.put("content", EvidenceBean.builder().
|
|
|
|
|
+ title(data.getString("title"))
|
|
|
|
|
+ .collectedTime(data.getString("collectedTime"))
|
|
|
|
|
+ .collectionModeName(data.getString("collectionModeName"))
|
|
|
|
|
+ .createAccount(data.getString("createAccount"))
|
|
|
|
|
+ .feature(data.getString("feature"))
|
|
|
|
|
+ .leftPosition(data.getString("leftPosition"))
|
|
|
|
|
+ .status(data.getInteger("status")).build());
|
|
|
|
|
+ ResultData<JSONObject> resultData = manageHttpClient.addMediaLibrary(basePath, token, item);
|
|
|
|
|
+ SceneMid sm = new SceneMid();
|
|
|
|
|
+ sm.setNum(num);
|
|
|
|
|
+ sm.setSid(media.getString("sid"));
|
|
|
|
|
+ sm.setMid(resultData.getData().getLong("id"));
|
|
|
|
|
+ sceneMidService.save(sm);
|
|
|
|
|
+ media.put("mid", sm.getMid());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private void addOrUpdateIcons(String num, List<String> icons) throws Exception{
|
|
private void addOrUpdateIcons(String num, List<String> icons) throws Exception{
|
|
|
if(CollUtil.isEmpty(icons)){
|
|
if(CollUtil.isEmpty(icons)){
|
|
|
return;
|
|
return;
|
|
@@ -293,6 +349,8 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
|
|
SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
|
|
|
this.saveEvidenceToSceneEditInfo(param.getNum(), sceneEditInfo);
|
|
this.saveEvidenceToSceneEditInfo(param.getNum(), sceneEditInfo);
|
|
|
sceneEditInfoService.updateById(sceneEditInfo);
|
|
sceneEditInfoService.updateById(sceneEditInfo);
|
|
|
|
|
+
|
|
|
|
|
+ this.reviseSceneMid(param.getNum());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -368,7 +426,7 @@ public class SceneEvidenceServiceImpl extends ServiceImpl<ISceneEvidenceMapper,
|
|
|
|
|
|
|
|
//检验重复导入,一个痕迹物证在同一场景不能被多次导入
|
|
//检验重复导入,一个痕迹物证在同一场景不能被多次导入
|
|
|
List<Long> midList = param.getDataList().stream().map(v -> v.getData().getLong("mid")).collect(Collectors.toList());
|
|
List<Long> midList = param.getDataList().stream().map(v -> v.getData().getLong("mid")).collect(Collectors.toList());
|
|
|
- long count = this.count(new LambdaQueryWrapper<SceneEvidence>().eq(SceneEvidence::getNum, param.getNum()).in(SceneEvidence::getMid, midList));
|
|
|
|
|
|
|
+ long count = sceneMidService.count(new LambdaQueryWrapper<SceneMid>().eq(SceneMid::getNum, param.getNum()).in(SceneMid::getMid, midList));
|
|
|
if(count > 0)
|
|
if(count > 0)
|
|
|
throw new BusinessException(JMErrorCode.FAILURE_CODE_20000.code(), JMErrorCode.FAILURE_CODE_20000.message());
|
|
throw new BusinessException(JMErrorCode.FAILURE_CODE_20000.code(), JMErrorCode.FAILURE_CODE_20000.message());
|
|
|
|
|
|