|
|
|
@ -1,11 +1,11 @@
|
|
|
|
|
package com.supervision.police.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
@ -17,6 +17,7 @@ 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.CasePersonMapper;
|
|
|
|
|
import com.supervision.police.mapper.ModelAtomicResultMapper;
|
|
|
|
|
import com.supervision.police.mapper.ModelIndexMapper;
|
|
|
|
|
import com.supervision.police.service.ComDictionaryService;
|
|
|
|
@ -54,6 +55,8 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
private final ModelCaseService modelCaseService;
|
|
|
|
|
|
|
|
|
|
private final ModelAtomicResultMapper modelAtomicResultMapper;
|
|
|
|
|
|
|
|
|
|
private final CasePersonMapper casePersonMapper;
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager",rollbackFor = Exception.class)
|
|
|
|
|
public R<?> selectAll(ModelIndex modelIndex, Integer page, Integer size) {
|
|
|
|
@ -174,7 +177,10 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
Assert.notNull(modelCase, "案件不存在");
|
|
|
|
|
String caseType = modelCase.getCaseType();
|
|
|
|
|
Assert.notEmpty(caseType, "案件类型不能为空");
|
|
|
|
|
|
|
|
|
|
List<CasePerson> casePersonList = casePersonMapper.selectList(Wrappers.lambdaQuery(CasePerson.class)
|
|
|
|
|
.eq(CasePerson::getCaseId, caseId).eq(CasePerson::getRoleCode, "1"));
|
|
|
|
|
Assert.notEmpty(casePersonList, "案件行为人不能为空!");
|
|
|
|
|
String actorId = CollUtil.getFirst(casePersonList).getId();
|
|
|
|
|
// 获取案件类型对应的指标
|
|
|
|
|
List<ModelIndex> modelIndexList = modelIndexMapper.selectList(
|
|
|
|
|
Wrappers.lambdaQuery(ModelIndex.class)
|
|
|
|
@ -203,10 +209,11 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
// 查询判定结果数据
|
|
|
|
|
List<ModelAtomicResult> modelAtomicResults = modelAtomicResultMapper.selectList(
|
|
|
|
|
Wrappers.lambdaQuery(ModelAtomicResult.class).eq(ModelAtomicResult::getCaseId, caseId)
|
|
|
|
|
.eq(ModelAtomicResult::getCasePersonId, actorId)
|
|
|
|
|
.in(ModelAtomicResult::getAtomicId, automicIndexIds));
|
|
|
|
|
|
|
|
|
|
Map<String, ModelAtomicResult> modelAtomicResultMap = modelAtomicResults.stream()
|
|
|
|
|
.filter(modelAtomicResult -> StrUtil.isEmpty(modelAtomicResult.getAtomicId())).collect(Collectors.toMap(ModelAtomicResult::getAtomicId, v -> v, (v1, v2) -> v1));
|
|
|
|
|
.filter(modelAtomicResult -> StrUtil.isNotEmpty(modelAtomicResult.getAtomicId())).collect(Collectors.toMap(ModelAtomicResult::getAtomicId, v -> v, (v1, v2) -> v1));
|
|
|
|
|
// 以指标为基础数据,组装原子指标的值。然后把数据进行平铺
|
|
|
|
|
return modelIndexList.stream().flatMap(modelIndex -> {
|
|
|
|
|
String judgeLogic = modelIndex.getJudgeLogic();
|
|
|
|
@ -220,10 +227,15 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
@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, "案件不存在!");
|
|
|
|
|
// 设置行为人id
|
|
|
|
|
List<CasePerson> casePersonList = casePersonMapper.selectList(Wrappers.lambdaQuery(CasePerson.class)
|
|
|
|
|
.eq(CasePerson::getCaseId, modelCase.getId()).eq(CasePerson::getRoleCode, "1"));
|
|
|
|
|
Assert.notEmpty(casePersonList, "案件行为人不能为空!");
|
|
|
|
|
caseAtomicResultWrapper.setActorId(CollUtil.getFirst(casePersonList).getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//清空人工评估结果
|
|
|
|
|
removeCaseAtomicResult(caseAtomicResultWrapper.getCaseId(),modelCase.getCaseType(),
|
|
|
|
|