代码提交

topo_dev
liu 9 months ago
parent 0a18fadb27
commit 889b41485a

@ -37,6 +37,11 @@ public class AtomicIndexDTO {
*/
private String atomicResult;
/**
* 1 2 3 4
*/
private String indexSource;
public void atomicResultToIndexResult() {
JudgeResultEnum instance = JudgeResultEnum.getInstance(this.atomicResult);

@ -32,6 +32,13 @@ public class IndexDetail {
*/
private String atomicIds;
/**
*
*/
private String preResult;
private boolean newFlag;
/**
*
*/

@ -57,6 +57,11 @@ public class NoteRecordDetailDTO {
*/
private String confessionEndTime;
/**
*
*/
private String percentage;
private List<NoteRecordDetailDTO> children = new ArrayList<>();
public NoteRecordDetailDTO() {

@ -15,5 +15,7 @@ public interface ModelIndexResultMapper extends BaseMapper<ModelIndexResult> {
ModelIndexResult selectByCaseIdAndIndexId(@Param("caseId") String caseId,
@Param("indexId") String indexId);
void updatePreResult(String caseId);
}

@ -263,6 +263,8 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
if (StringUtils.isEmpty(record.getAtomicIds())) {
continue;
}
// 是否是新的结果
record.setNewFlag(!StrUtil.equals(record.getIndexResult(), record.getPreResult()));
String judgeLogic = record.getJudgeLogic();
Map<String, String> indexJundgeLogicMap = parseLogicMap(judgeLogic);
String[] array = record.getAtomicIds().split(",");
@ -272,7 +274,9 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
// 需要和原子指标的规则判断是否一致(解决出罪和入罪冲突的问题)
String s = indexJundgeLogicMap.get(atomic.getAtomicIndexId());
atomic.judgeWithIndexResult(s);
if (StrUtil.isBlank(atomic.getRecord())){
atomic.setRecord("无");
}
}
record.setChildren(atomics);
}

@ -88,6 +88,8 @@ public class ModelServiceImpl implements ModelService {
if (ObjectUtil.isEmpty(casePerson)) {
throw new RuntimeException("未找到的行为人" + analyseCaseDTO.getLawActorName());
}
// 首先将原先的值进行赋值,设置到pre_result
modelIndexResultMapper.updatePreResult(analyseCaseDTO.getCaseId());
//原子指标
List<ModelAtomicIndex> atomicIndices = modelAtomicIndexMapper.selectByCaseType(modelCase.getCaseType());
Map<String, String> atomicResultMap = new HashMap<>();

@ -1,6 +1,7 @@
package com.supervision.police.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -214,12 +215,40 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
// LinkedHashMap 保障顺序
Map<String, List<NoteRecordDetailDTO>> nameMap = list.stream().filter(item -> StringUtils.isNotBlank(item.getName())).map(item -> new NoteRecordDetailDTO(item, fileMap))
.collect(Collectors.groupingBy(NoteRecordDetailDTO::getName, LinkedHashMap::new, Collectors.toList()));
// 获取所有的task任务
List<CaseTaskRecord> taskList = caseTaskRecordService.lambdaQuery().eq(CaseTaskRecord::getCaseId, noteRecords.getCaseId()).list();
Map<String, CaseTaskRecord> taskRecordMap = taskList.stream().collect(Collectors.toMap(CaseTaskRecord::getRecordId, Function.identity(), (k1, k2) -> k1));
List<NoteRecordDetailDTO> res = new ArrayList<>();
for (String name : nameMap.keySet()) {
NoteRecordDetailDTO noteRecordDetailDTO = new NoteRecordDetailDTO();
noteRecordDetailDTO.setName(name);
noteRecordDetailDTO.setChildren(nameMap.get(name));
noteRecordDetailDTO.setConfessionMaterial(CollUtil.size(noteRecordDetailDTO.getFileList()));
List<NoteRecordDetailDTO> noteRecordDetailDTOS = nameMap.get(name);
int fileCount = 0;
for (NoteRecordDetailDTO recordDetailDTO : noteRecordDetailDTOS) {
fileCount = fileCount + recordDetailDTO.getFileList().size();
CaseTaskRecord caseTaskRecord = taskRecordMap.get(recordDetailDTO.getId());
if (ObjectUtil.isNotEmpty(caseTaskRecord)) {
if (caseTaskRecord.getStatus() == 2) {
recordDetailDTO.setPercentage("100%");
} else if (caseTaskRecord.getStatus() == 0) {
recordDetailDTO.setPercentage("0%");
} else {
if (caseTaskRecord.getTaskCount() == 0) {
recordDetailDTO.setPercentage("0%");
} else {
// 获取执行的数量
double v = caseTaskRecord.getFinishCount() * 100.0 / caseTaskRecord.getTaskCount();
// 不能超过100%
recordDetailDTO.setPercentage(String.format("%.2f%%", Math.min(v, 100)));
}
}
}
}
noteRecordDetailDTO.setChildren(noteRecordDetailDTOS);
// 统计所有children的文件数量
noteRecordDetailDTO.setConfessionMaterial(fileCount);
res.add(noteRecordDetailDTO);
}
List<NoteRecordDetailDTO> pager = ListUtils.Pager(size, page, res);

@ -47,7 +47,7 @@
and mi.index_type = #{indexType}
</select>
<select id="getAtomicDetail" resultType="com.supervision.police.dto.AtomicIndexDTO">
select mai.id as atomicIndexId,mai.name as indexName,
select mai.id as atomicIndexId,mai.name as indexName,mai.index_source as indexSource,
mar.atomic_result as atomicResult,
concat(nrs.question, nrs.answer) as record
from model_atomic_result mar
@ -59,7 +59,7 @@
</foreach>
</select>
<select id="getIndexDetail" resultType="com.supervision.police.dto.IndexDetail">
select mi.name as indexName, mi.index_score as score, mir.index_result, mir.atomic_ids,mi.judge_logic as judgeLogic
select mi.name as indexName, mi.index_score as score, mir.index_result,mir.pre_result as preResult, mir.atomic_ids,mi.judge_logic as judgeLogic
from model_index mi
left join model_index_result mir on ( mi.id = mir.index_id and mir.case_id = #{caseId} )
WHERE mi.data_status = '1'

@ -1,8 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.police.mapper.ModelIndexResultMapper">
<select id="selectByCaseIdAndIndexId" resultType="com.supervision.police.domain.ModelIndexResult">
select * from model_index_result
where case_id = #{caseId} and index_id = #{indexId}
</select>
<update id="updatePreResult">
UPDATE model_index_result
SET pre_result = index_result
WHERE case_id = #{caseId}
</update>
</mapper>
Loading…
Cancel
Save