|
|
|
@ -15,6 +15,7 @@ import com.supervision.common.utils.StringUtils;
|
|
|
|
|
import com.supervision.police.domain.*;
|
|
|
|
|
import com.supervision.police.dto.AtomicData;
|
|
|
|
|
import com.supervision.police.dto.CaseAtomicIndexDTO;
|
|
|
|
|
import com.supervision.police.dto.CaseAtomicResultWrapper;
|
|
|
|
|
import com.supervision.police.dto.JudgeLogic;
|
|
|
|
|
import com.supervision.police.mapper.ModelAtomicResultMapper;
|
|
|
|
|
import com.supervision.police.mapper.ModelIndexMapper;
|
|
|
|
@ -25,6 +26,7 @@ import com.supervision.police.service.ModelIndexService;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
@ -53,6 +55,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
|
|
|
|
|
private final ModelAtomicResultMapper modelAtomicResultMapper;
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public R<?> selectAll(ModelIndex modelIndex, Integer page, Integer size) {
|
|
|
|
|
IPage<ModelIndex> iPage = new Page<>(page, size);
|
|
|
|
|
LambdaQueryWrapper<ModelIndex> wrapper = Wrappers.lambdaQuery();
|
|
|
|
@ -89,6 +92,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public R<?> addOrUpd(ModelIndex modelIndex) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
if (StringUtils.isEmpty(modelIndex.getId())) {
|
|
|
|
@ -104,6 +108,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public R<?> del(String id) {
|
|
|
|
|
ModelIndex index = modelIndexMapper.selectById(id);
|
|
|
|
|
index.setDataStatus(StringUtils.getUUID());
|
|
|
|
@ -116,6 +121,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public R<?> selectAllAtomic(ModelAtomicIndex modelAtomicIndex, Integer page, Integer size) {
|
|
|
|
|
IPage<ModelAtomicIndex> iPage = new Page<>(page, size);
|
|
|
|
|
iPage = modelAtomicIndexService.selectAll(iPage, modelAtomicIndex);
|
|
|
|
@ -131,6 +137,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public R<?> addOrUpdAtomic(ModelAtomicIndex modelAtomicIndex) {
|
|
|
|
|
int i = 0;
|
|
|
|
|
if (StringUtils.isEmpty(modelAtomicIndex.getId())) {
|
|
|
|
@ -146,6 +153,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public R<?> delAtomic(String id) {
|
|
|
|
|
ModelAtomicIndex index = modelAtomicIndexService.getMapper().selectById(id);
|
|
|
|
|
index.setDataStatus(StringUtils.getUUID());
|
|
|
|
@ -158,6 +166,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public List<CaseAtomicIndexDTO> listCaseAtomicIndex(String caseId, String indexSource) {
|
|
|
|
|
|
|
|
|
|
Assert.notEmpty(caseId, "案件id不能为空");
|
|
|
|
@ -207,6 +216,44 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}).toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public Boolean saveCaseAtomicResult(CaseAtomicResultWrapper caseAtomicResultWrapper) {
|
|
|
|
|
|
|
|
|
|
Assert.notEmpty(caseAtomicResultWrapper.getActorId(), "行为人不能为空!");
|
|
|
|
|
Assert.notEmpty(caseAtomicResultWrapper.getCaseId(), "案件id不能为空!");
|
|
|
|
|
ModelCase modelCase = modelCaseService.getById(caseAtomicResultWrapper.getCaseId());
|
|
|
|
|
Assert.notNull(modelCase, "案件不存在!");
|
|
|
|
|
|
|
|
|
|
//清空人工评估结果
|
|
|
|
|
removeCaseAtomicResult(caseAtomicResultWrapper.getCaseId(),modelCase.getCaseType(),
|
|
|
|
|
caseAtomicResultWrapper.getActorId(),"1");
|
|
|
|
|
|
|
|
|
|
// 保存原子评估结果
|
|
|
|
|
caseAtomicResultWrapper.getCaseAtomicIndexDTOS().stream().map(caseAtomicIndexDTO ->
|
|
|
|
|
caseAtomicIndexDTO.toModelAtomicResult(
|
|
|
|
|
caseAtomicResultWrapper.getCaseId(), caseAtomicResultWrapper.getActorId())).toList()
|
|
|
|
|
.forEach(modelAtomicResultMapper::insert);
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 清空案件下的评估结果
|
|
|
|
|
* @param caseId 案件id
|
|
|
|
|
* @param caseType 案件类型
|
|
|
|
|
* @param actorId 行为人id
|
|
|
|
|
* @param indexSource 原子指标来源
|
|
|
|
|
*/
|
|
|
|
|
private void removeCaseAtomicResult(String caseId,String caseType, String actorId,String indexSource) {
|
|
|
|
|
List<ModelAtomicIndex> modelAtomicIndexList = modelAtomicIndexService.listCaseAtomicIndex(null, caseType, indexSource);
|
|
|
|
|
List<String> automicIndexIds = modelAtomicIndexList.stream().map(ModelAtomicIndex::getId).distinct().toList();
|
|
|
|
|
modelAtomicResultMapper.delete(Wrappers.lambdaQuery(ModelAtomicResult.class)
|
|
|
|
|
.eq(ModelAtomicResult::getCaseId, caseId)
|
|
|
|
|
.eq(ModelAtomicResult::getCasePersonId, actorId)
|
|
|
|
|
.in(CollUtil.isNotEmpty(automicIndexIds),ModelAtomicResult::getAtomicId, automicIndexIds));
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 从逻辑中获取原子指标id
|
|
|
|
|
* @param judgeLogic 判断逻辑json字符串
|
|
|
|
|