1. 优化功能

topo_dev
xueqingkun 6 months ago
parent fc549d9fa0
commit 1370d9c18b

@ -17,6 +17,7 @@ services:
- ${WEB_HTTP_PORT}:8097
volumes:
- ./fu-hsi-web/:/data/fu-hsi/web/
- ./logs/fu-hsi-web/:/logs
command:
--spring.profiles.active=${SPRING_PROFILES_ACTIVE}
--ollama.url=${OLLAMA_URL}

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.police.domain.CaseEvidence;
import com.supervision.police.domain.EvidenceDirectory;
import com.supervision.police.domain.EvidenceFile;
import com.supervision.police.domain.ModelCase;
import com.supervision.police.dto.*;
import com.supervision.police.vo.EvidenceDirectoryReqVO;
import com.supervision.police.vo.VerifyEvidenceReqVO;
import java.util.List;
import java.util.Map;
public interface CaseEvidenceService extends IService<CaseEvidence> {
@ -96,6 +99,9 @@ public interface CaseEvidenceService extends IService<CaseEvidence> {
*/
void refreshCaseEvidence();
void doReplaceEvidence(ModelCase modelCase, List<CaseEvidence> allEvidence,
Map<String, String> catagroyMap, List<EvidenceFile> allFile);
/**
*
* @param evidenceDirectory

@ -2,6 +2,8 @@ package com.supervision.police.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
@ -413,7 +415,6 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
}
@Override
@Transactional(rollbackFor = Exception.class, transactionManager = "dataSourceTransactionManager")
public void refreshCaseEvidence() {
log.info("开始初始化案件的证据目录。=========>>>>");
@ -430,7 +431,31 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
"7", "5",/*视听资料*/
"8", "6"/*勘验笔录*/);
TimeInterval interval = DateUtil.timer();
interval.start();
int successCount = 0;
int errorCount = 0;
int index = 0;
for (ModelCase modelCase : list) {
interval.start(modelCase.getId());
log.info("开始初始化案件【{}】的目录。", modelCase.getCaseName());
try {
((CaseEvidenceService) AopContext.currentProxy()).doReplaceEvidence(modelCase, allEvidence, catagroyMap, allFile);
successCount++;
} catch (Exception e) {
log.error("案件{}的目录初始化失败。案件id:{}", modelCase.getCaseName(), modelCase.getId(),e);
errorCount++;
}
index += 1;
log.info("案件【{}】的目录初始化完成。耗时:{}秒,占总体进度:{}%", modelCase.getCaseName(),interval.intervalSecond(modelCase.getId()),index/(list.size()*1.0)*100);
}
log.info("<<<<=======初始化案件的证据目录完成。案件总条数:{},总耗时:{}秒,成功个数:{},失败个数:{}", list.size(),interval.intervalSecond(),successCount,errorCount);
}
@Transactional(rollbackFor = Exception.class, transactionManager = "dataSourceTransactionManager",propagation = Propagation.REQUIRES_NEW)
public void doReplaceEvidence(ModelCase modelCase, List<CaseEvidence> allEvidence, Map<String, String> catagroyMap, List<EvidenceFile> allFile) {
String caseType = modelCase.getCaseType();
String id = modelCase.getId();
// 开始初始化
@ -438,6 +463,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(listDirectoryTree(id));
List<CaseEvidence> evidenceList = allEvidence.stream().filter(ce -> StrUtil.equals(ce.getCaseId(), id)).toList();
log.info("案件{}证据总数:{}", modelCase.getCaseName(), evidenceList.size());
for (CaseEvidence caseEvidence : evidenceList) {
String directoryId = caseEvidence.getDirectoryId();
if (StrUtil.isNotEmpty(directoryId)){
@ -482,9 +508,6 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
}
}
log.info("<<<<=======初始化案件的证据目录完成。案件总条数:{}", list.size());
}
private EvidenceDirectoryDTO findTopDirectory(EvidenceDirectoryDTO rootDirectory, String categoryId) {
if (StrUtil.equals(rootDirectory.getCategoryId(), categoryId)){

Loading…
Cancel
Save