diff --git a/src/main/java/com/supervision/police/domain/AttributeGwzs.java b/src/main/java/com/supervision/police/domain/AttributeGwzs.java new file mode 100644 index 0000000..158862e --- /dev/null +++ b/src/main/java/com/supervision/police/domain/AttributeGwzs.java @@ -0,0 +1,82 @@ +package com.supervision.police.domain; + +import com.baomidou.mybatisplus.annotation.*; + +import java.io.Serializable; +import java.time.LocalDateTime; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * + * @TableName attribute_gwzs + */ +@TableName(value ="attribute_gwzs") +@Data +public class AttributeGwzs implements Serializable { + /** + * + */ + private String id; + + /** + * 证据id + */ + private String evidenceId; + + /** + * 项目名称 + */ + @Schema(description = "项目名称", type = "1") + private String projectName; + + /** + * 项目状态 + */ + @Schema(description = "项目状态", type = "1") + private String projectStatus; + + /** + * 发布单位 + */ + @Schema(description = "发布单位", type = "1") + private String publishingUnit; + + /** + * 结论 + */ + @Schema(description = "结论", type = "1") + private String conclusion; + + /** + * 发文时间 + */ + @Schema(description = "发文时间", type = "3") + private String publicationTime; + + /** + * + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * + */ + private String createUserId; + + /** + * + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + /** + * + */ + private String updateUserId; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/supervision/police/domain/AttributeMmht.java b/src/main/java/com/supervision/police/domain/AttributeMmht.java index 28f466b..36e4268 100644 --- a/src/main/java/com/supervision/police/domain/AttributeMmht.java +++ b/src/main/java/com/supervision/police/domain/AttributeMmht.java @@ -1,9 +1,7 @@ package com.supervision.police.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; + import java.io.Serializable; import java.time.LocalDateTime; @@ -114,6 +112,7 @@ public class AttributeMmht implements Serializable { /** * */ + @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** @@ -124,6 +123,7 @@ public class AttributeMmht implements Serializable { /** * */ + @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; /** diff --git a/src/main/java/com/supervision/police/domain/AttributeXmht.java b/src/main/java/com/supervision/police/domain/AttributeXmht.java new file mode 100644 index 0000000..2cd4d09 --- /dev/null +++ b/src/main/java/com/supervision/police/domain/AttributeXmht.java @@ -0,0 +1,100 @@ +package com.supervision.police.domain; + +import com.baomidou.mybatisplus.annotation.*; + +import java.io.Serializable; +import java.time.LocalDateTime; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * + * @TableName attribute_xmht + */ +@TableName(value ="attribute_xmht") +@Data +public class AttributeXmht implements Serializable { + /** + * 主键 + */ + private String id; + + /** + * 证据id + */ + private String evidenceId; + + /** + * 项目名称 + */ + @Schema(description = "项目名称", type = "1") + private String projectName; + + /** + * 甲方 + */ + @Schema(description = "甲方", type = "1") + private String partA; + + /** + * 乙方 + */ + @Schema(description = "乙方", type = "1") + private String partB; + + /** + * 项目范围 + */ + @Schema(description = "项目范围", type = "1") + private String scope; + + /** + * 项目开始时间 + */ + @Schema(description = "项目开始时间", type = "3") + private String projectStartTime; + + /** + * 项目结束时间 + */ + @Schema(description = "项目结束时间", type = "3") + private String projectEndTime; + + /** + * 签订日期 + */ + @Schema(description = "签订日期", type = "3") + private String signingTime; + + /** + * 项目状态 + */ + @Schema(description = "项目状态", type = "1") + private String projectStatus; + + /** + * + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * + */ + private String createUserId; + + /** + * + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + /** + * + */ + private String updateUserId; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/supervision/police/domain/AttributeYhls.java b/src/main/java/com/supervision/police/domain/AttributeYhls.java index 6e16ecb..d06e589 100644 --- a/src/main/java/com/supervision/police/domain/AttributeYhls.java +++ b/src/main/java/com/supervision/police/domain/AttributeYhls.java @@ -1,9 +1,7 @@ package com.supervision.police.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; + import java.io.Serializable; import java.time.LocalDateTime; @@ -66,6 +64,7 @@ public class AttributeYhls implements Serializable { /** * */ + @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** @@ -76,6 +75,7 @@ public class AttributeYhls implements Serializable { /** * */ + @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; /** diff --git a/src/main/java/com/supervision/police/domain/AttributeZfpz.java b/src/main/java/com/supervision/police/domain/AttributeZfpz.java index 8f3e7d0..4d3dc0e 100644 --- a/src/main/java/com/supervision/police/domain/AttributeZfpz.java +++ b/src/main/java/com/supervision/police/domain/AttributeZfpz.java @@ -1,9 +1,7 @@ package com.supervision.police.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; + import java.io.Serializable; import java.time.LocalDateTime; @@ -60,6 +58,7 @@ public class AttributeZfpz implements Serializable { /** * 创建时间 */ + @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** @@ -70,6 +69,7 @@ public class AttributeZfpz implements Serializable { /** * */ + @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; /** diff --git a/src/main/java/com/supervision/police/mapper/AttributeGwzsMapper.java b/src/main/java/com/supervision/police/mapper/AttributeGwzsMapper.java new file mode 100644 index 0000000..02ee832 --- /dev/null +++ b/src/main/java/com/supervision/police/mapper/AttributeGwzsMapper.java @@ -0,0 +1,18 @@ +package com.supervision.police.mapper; + +import com.supervision.police.domain.AttributeGwzs; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author Administrator +* @description 针对表【attribute_gwzs】的数据库操作Mapper +* @createDate 2024-11-21 10:09:13 +* @Entity com.supervision.police.domain.AttributeGwzs +*/ +public interface AttributeGwzsMapper extends BaseMapper<AttributeGwzs> { + +} + + + + diff --git a/src/main/java/com/supervision/police/mapper/AttributeXmhtMapper.java b/src/main/java/com/supervision/police/mapper/AttributeXmhtMapper.java new file mode 100644 index 0000000..f8bf309 --- /dev/null +++ b/src/main/java/com/supervision/police/mapper/AttributeXmhtMapper.java @@ -0,0 +1,18 @@ +package com.supervision.police.mapper; + +import com.supervision.police.domain.AttributeXmht; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author Administrator +* @description 针对表【attribute_xmht】的数据库操作Mapper +* @createDate 2024-11-21 10:09:13 +* @Entity com.supervision.police.domain.AttributeXmht +*/ +public interface AttributeXmhtMapper extends BaseMapper<AttributeXmht> { + +} + + + + diff --git a/src/main/java/com/supervision/police/mapper/CasePersonMapper.java b/src/main/java/com/supervision/police/mapper/CasePersonMapper.java index 04d66e8..e5e044b 100644 --- a/src/main/java/com/supervision/police/mapper/CasePersonMapper.java +++ b/src/main/java/com/supervision/police/mapper/CasePersonMapper.java @@ -3,6 +3,8 @@ package com.supervision.police.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.supervision.police.domain.CasePerson; +import java.util.List; + /** * 案件人物表(CasePerson)表数据库访问层 * @@ -11,5 +13,6 @@ import com.supervision.police.domain.CasePerson; */ public interface CasePersonMapper extends BaseMapper<CasePerson> { + List<CasePerson> listByEvidenceId(String evidenceId); } diff --git a/src/main/java/com/supervision/police/service/AttributeGwzsService.java b/src/main/java/com/supervision/police/service/AttributeGwzsService.java new file mode 100644 index 0000000..af3344c --- /dev/null +++ b/src/main/java/com/supervision/police/service/AttributeGwzsService.java @@ -0,0 +1,13 @@ +package com.supervision.police.service; + +import com.supervision.police.domain.AttributeGwzs; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author Administrator +* @description 针对表【attribute_gwzs】的数据库操作Service +* @createDate 2024-11-21 10:09:13 +*/ +public interface AttributeGwzsService extends IService<AttributeGwzs> { + +} diff --git a/src/main/java/com/supervision/police/service/AttributeXmhtService.java b/src/main/java/com/supervision/police/service/AttributeXmhtService.java new file mode 100644 index 0000000..c7c6a55 --- /dev/null +++ b/src/main/java/com/supervision/police/service/AttributeXmhtService.java @@ -0,0 +1,13 @@ +package com.supervision.police.service; + +import com.supervision.police.domain.AttributeXmht; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author Administrator +* @description 针对表【attribute_xmht】的数据库操作Service +* @createDate 2024-11-21 10:09:13 +*/ +public interface AttributeXmhtService extends IService<AttributeXmht> { + +} diff --git a/src/main/java/com/supervision/police/service/CaseEvidenceService.java b/src/main/java/com/supervision/police/service/CaseEvidenceService.java index e866bb7..7c7749a 100644 --- a/src/main/java/com/supervision/police/service/CaseEvidenceService.java +++ b/src/main/java/com/supervision/police/service/CaseEvidenceService.java @@ -161,4 +161,6 @@ public interface CaseEvidenceService extends IService<CaseEvidence> { void updateEvidenceAppendProcessingNewTransaction(String evidenceId, String status,String appendProcessing); + + void redoExtractAttributes(String caseId, List<CaseEvidence> caseEvidences); } diff --git a/src/main/java/com/supervision/police/service/CasePersonService.java b/src/main/java/com/supervision/police/service/CasePersonService.java index f57d843..087d594 100644 --- a/src/main/java/com/supervision/police/service/CasePersonService.java +++ b/src/main/java/com/supervision/police/service/CasePersonService.java @@ -3,6 +3,8 @@ package com.supervision.police.service; import com.baomidou.mybatisplus.extension.service.IService; import com.supervision.police.domain.CasePerson; +import java.util.List; + public interface CasePersonService extends IService<CasePerson> { @@ -14,4 +16,7 @@ public interface CasePersonService extends IService<CasePerson> { * @return 插入结果 true 成功 false 失败 */ boolean saveCaseActor(String caseId,String caseActorName,String caseActorIdCard); + + + List<CasePerson> listByEvidenceId(String evidenceId); } diff --git a/src/main/java/com/supervision/police/service/impl/AttributeGwzsServiceImpl.java b/src/main/java/com/supervision/police/service/impl/AttributeGwzsServiceImpl.java new file mode 100644 index 0000000..575cb6d --- /dev/null +++ b/src/main/java/com/supervision/police/service/impl/AttributeGwzsServiceImpl.java @@ -0,0 +1,22 @@ +package com.supervision.police.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.police.domain.AttributeGwzs; +import com.supervision.police.service.AttributeGwzsService; +import com.supervision.police.mapper.AttributeGwzsMapper; +import org.springframework.stereotype.Service; + +/** +* @author Administrator +* @description 针对表【attribute_gwzs】的数据库操作Service实现 +* @createDate 2024-11-21 10:09:13 +*/ +@Service +public class AttributeGwzsServiceImpl extends ServiceImpl<AttributeGwzsMapper, AttributeGwzs> + implements AttributeGwzsService{ + +} + + + + diff --git a/src/main/java/com/supervision/police/service/impl/AttributeXmhtServiceImpl.java b/src/main/java/com/supervision/police/service/impl/AttributeXmhtServiceImpl.java new file mode 100644 index 0000000..4f4efcf --- /dev/null +++ b/src/main/java/com/supervision/police/service/impl/AttributeXmhtServiceImpl.java @@ -0,0 +1,22 @@ +package com.supervision.police.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.police.domain.AttributeXmht; +import com.supervision.police.service.AttributeXmhtService; +import com.supervision.police.mapper.AttributeXmhtMapper; +import org.springframework.stereotype.Service; + +/** +* @author Administrator +* @description 针对表【attribute_xmht】的数据库操作Service实现 +* @createDate 2024-11-21 10:09:13 +*/ +@Service +public class AttributeXmhtServiceImpl extends ServiceImpl<AttributeXmhtMapper, AttributeXmht> + implements AttributeXmhtService{ + +} + + + + diff --git a/src/main/java/com/supervision/police/service/impl/CaseEvidencePropertyServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CaseEvidencePropertyServiceImpl.java index 7d55358..2523abe 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidencePropertyServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidencePropertyServiceImpl.java @@ -9,8 +9,10 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; +import com.supervision.police.domain.CasePerson; import com.supervision.police.dto.NotePromptExtractAttributesDto; import com.supervision.police.service.CaseEvidencePropertyService; +import com.supervision.police.service.CasePersonService; import com.supervision.police.service.ComDictionaryService; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.annotation.PostConstruct; @@ -32,23 +34,27 @@ public class CaseEvidencePropertyServiceImpl implements CaseEvidencePropertyServ private final ApplicationContext applicationContext; private final ComDictionaryService comDictionaryService; + + private final CasePersonService casePersonService; private final Map<String, IService<?>> evidencePropertyServiceMap = new HashMap<>(); private final Map<String, BeanDesc> beanDescMap = new HashMap<>(); @Override public List<NotePromptExtractAttributesDto> findExtractAttributes(String categoryId) { if (StrUtil.isEmpty(categoryId)){ - return new ArrayList<>(); + return new ArrayList<>(1); } String beanName = getEntityNameIfExist(categoryId); if (StrUtil.isEmpty(beanName)){ - return new ArrayList<>(); + return new ArrayList<>(1); } BeanDesc beanDesc = beanDescMap.get(beanName); - Assert.notNull(beanDesc, "字典表evidence_property_bean中不存在"+beanName+"对应的属性"); + if (beanDesc == null){ + return new ArrayList<>(1); + } return beanDesc.getProps().stream() .filter(prop -> null != prop.getField().getAnnotation(Schema.class)).map(prop -> { NotePromptExtractAttributesDto attributesDto = new NotePromptExtractAttributesDto(); @@ -81,6 +87,8 @@ public class CaseEvidencePropertyServiceImpl implements CaseEvidencePropertyServ log.warn("保存证据属性时,属性为空,不保存任何数据,证据id:{}", evidenceId); return; } + extendPerson(entityJson, evidenceId); + iService.save(JSONUtil.toBean(entityJson, iService.getEntityClass())); } @@ -101,9 +109,12 @@ public class CaseEvidencePropertyServiceImpl implements CaseEvidencePropertyServ JSONObject entityJson = mapToEntityJson(entityName, attributes); if (entityJson.isEmpty()){ + log.warn("保存证据属性时,属性为空,不保存任何数据,证据id:{}", evidenceId); return; } + extendPerson(entityJson, evidenceId); + iService.update(entityJson, new QueryWrapper<>().eq("evidence_id", evidenceId)); } @@ -162,6 +173,31 @@ public class CaseEvidencePropertyServiceImpl implements CaseEvidencePropertyServ + private void extendPerson(JSONObject entityJson, String evidenceId){ + + List<String> partKey = entityJson.keySet().stream().filter(k -> k.startsWith("part")).toList(); + if (partKey.isEmpty()){ + return; + } + List<CasePerson> casePersonList = casePersonService.listByEvidenceId(evidenceId); + if (CollUtil.isEmpty(casePersonList)){ + return; + } + + for (String key : partKey) { + String partName = entityJson.getStr(key); + if (StrUtil.isEmpty(partName)){ + continue; + } + for (CasePerson casePerson : casePersonList) { + if (StrUtil.equals(casePerson.getName(),partName)){ + entityJson.set(key+"Id", casePerson.getId()); + break; + } + } + } + } + @PostConstruct public void init(){ diff --git a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java index 42010f0..586f19f 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -905,6 +905,8 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas List<CaseEvidence> caseEvidenceList = this.lambdaQuery().eq(CaseEvidence::getCaseId, caseId).list(); + this.redoExtractAttributes(caseId, caseEvidenceList); + EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(evidenceDirectoryDTOS); // 强行翻译 @@ -928,6 +930,32 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas return evidenceDirectoryDTOS; } + public void redoExtractAttributes(String caseId, List<CaseEvidence> caseEvidences) { + + EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(evidenceDirectoryService.listDirectoryTree(caseId)); + Map<String, List<String>> categoryMapEvidence = new HashMap<>(); + for (CaseEvidence caseEvidence : caseEvidences) { + EvidenceDirectoryDTO directory = rootDirectory.findDirectory(caseEvidence.getDirectoryId()); + if (null != directory && StrUtil.isNotEmpty(directory.getCategoryId())){ + List<String> evidenceIds = categoryMapEvidence.getOrDefault(directory.getCategoryId(), new ArrayList<>()); + evidenceIds.add(caseEvidence.getId()); + categoryMapEvidence.put(directory.getCategoryId(), evidenceIds); + } + } + + Map<String, List<NotePromptExtractAttributesDto>> map = new HashMap<>(); + for (Map.Entry<String, List<String>> entry : categoryMapEvidence.entrySet()) { + map.putAll(caseEvidencePropertyService.listEvidenceProperty(entry.getKey(), entry.getValue())); + } + for (CaseEvidence caseEvidence : caseEvidences) { + List<NotePromptExtractAttributesDto> attributesDtos = map.get(caseEvidence.getId()); + // 兼容老数据 + if (CollUtil.isNotEmpty(attributesDtos)){ + caseEvidence.setProperty(attributesDtos); + } + } + } + /** * 重新构建证据属性数据 * @param rootDirectory 根目录 diff --git a/src/main/java/com/supervision/police/service/impl/CasePersonServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CasePersonServiceImpl.java index dce463a..81bec7f 100644 --- a/src/main/java/com/supervision/police/service/impl/CasePersonServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CasePersonServiceImpl.java @@ -10,6 +10,9 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + @Slf4j @Service @RequiredArgsConstructor @@ -46,4 +49,13 @@ public class CasePersonServiceImpl extends ServiceImpl<CasePersonMapper, CasePer return save; } + + @Override + public List<CasePerson> listByEvidenceId(String evidenceId) { + if (StrUtil.isEmpty(evidenceId)){ + return new ArrayList<>(1); + } + + return super.getBaseMapper().listByEvidenceId(evidenceId); + } } diff --git a/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java index bc14bd2..bb4b51d 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java @@ -94,6 +94,8 @@ public class ModelServiceImpl implements ModelService { private final EvidenceCategoryService evidenceCategoryService; + private final CaseEvidencePropertyService caseEvidencePropertyService; + @Override @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) public R<?> analyseCase(AnalyseCaseDTO analyseCaseDTO) { @@ -207,12 +209,20 @@ public class ModelServiceImpl implements ModelService { log.error("未找到提示词信息:【{}】", TYPE_STRUCTURAL_REASONING); return R.fail("未找到提示词信息"); } + // 查询提示词对应的属性 + for (NotePrompt notePrompt : notePrompts) { + notePrompt.setExtractAttributes(caseEvidencePropertyService.findExtractAttributes(notePrompt.getEvidenceCategoryId())); + } + List<EvidenceDirectory> evidenceDirectories = evidenceDirectoryService.list(new LambdaQueryWrapper<EvidenceDirectory>().eq(EvidenceDirectory::getCaseId, caseId)); if (evidenceDirectories.isEmpty()) { log.error("未找到证据目录信息:【{}】", caseId); return R.fail("未找到证据目录信息"); } List<CaseEvidence> caseEvidences = caseEvidenceService.list(new LambdaQueryWrapper<CaseEvidence>().eq(CaseEvidence::getCaseId, caseId)); + caseEvidenceService.redoExtractAttributes(caseId, caseEvidences); + + List<ModelIndexAtomicRelation> modelIndexAtomicRelations = modelIndexAtomicRelationService.list(); if (modelIndexAtomicRelations.isEmpty()) { log.error("未找到指标原子关系信息"); @@ -317,6 +327,8 @@ public class ModelServiceImpl implements ModelService { return R.ok(); } + + private void removeAtomicResultWithNoReference(String modelIndexId, List<ModelIndexAtomicRelation> modelIndexAtomicRelations, List<ModelAtomicResult> modelAtomicResultList) { List<String> atomicIds = modelIndexAtomicRelations.stream() diff --git a/src/main/java/com/supervision/police/service/impl/NotePromptServiceImpl.java b/src/main/java/com/supervision/police/service/impl/NotePromptServiceImpl.java index fb9ad24..8433770 100644 --- a/src/main/java/com/supervision/police/service/impl/NotePromptServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/NotePromptServiceImpl.java @@ -15,6 +15,7 @@ import com.supervision.minio.service.MinioService; import com.supervision.police.domain.*; import com.supervision.police.dto.LLMExtractDto; import com.supervision.police.dto.NotePromptDTO; +import com.supervision.police.dto.NotePromptExtractAttributesDto; import com.supervision.police.mapper.NotePromptMapper; import com.supervision.police.service.*; import com.supervision.thread.TripleExtractTask; @@ -63,6 +64,8 @@ public class NotePromptServiceImpl extends ServiceImpl<NotePromptMapper, NotePro @Autowired private EvidenceCategoryService evidenceCategoryService; + private final CaseEvidencePropertyService caseEvidencePropertyService; + @Override public List<NotePrompt> listPromptBySplitId(String recordSplitId) { @@ -116,7 +119,14 @@ public class NotePromptServiceImpl extends ServiceImpl<NotePromptMapper, NotePro @Override public IPage<NotePromptDTO> listPrompt(NotePromptDTO notePromptDTO) { - return notePromptMapper.selectNotePromptWithMatchNum(new Page<>(notePromptDTO.getPage(), notePromptDTO.getSize()), notePromptDTO); + Page<NotePromptDTO> notePromptDTOPage = notePromptMapper.selectNotePromptWithMatchNum(new Page<>(notePromptDTO.getPage(), notePromptDTO.getSize()), notePromptDTO); + for (NotePromptDTO record : notePromptDTOPage.getRecords()) { + if (StrUtil.isEmpty(record.getEvidenceCategoryId())){ + continue; + } + record.setExtractAttributes(caseEvidencePropertyService.findExtractAttributes(record.getEvidenceCategoryId())); + } + return notePromptDTOPage; } @Override @@ -186,6 +196,11 @@ public class NotePromptServiceImpl extends ServiceImpl<NotePromptMapper, NotePro @Override public NotePromptDTO getById(String id) { NotePrompt notePrompt = super.getById(id); + + if (null != notePrompt && StrUtil.isNotEmpty(notePrompt.getEvidenceCategoryId())){ + notePrompt.setExtractAttributes(caseEvidencePropertyService.findExtractAttributes(notePrompt.getEvidenceCategoryId())); + } + NotePromptDTO notePromptDTO = new NotePromptDTO(); BeanUtils.copyProperties(notePrompt, notePromptDTO); diff --git a/src/main/resources/mapper/AttributeGwzsMapper.xml b/src/main/resources/mapper/AttributeGwzsMapper.xml new file mode 100644 index 0000000..7966a32 --- /dev/null +++ b/src/main/resources/mapper/AttributeGwzsMapper.xml @@ -0,0 +1,27 @@ +<?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.AttributeGwzsMapper"> + + <resultMap id="BaseResultMap" type="com.supervision.police.domain.AttributeGwzs"> + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="evidenceId" column="evidence_id" jdbcType="VARCHAR"/> + <result property="projectName" column="project_name" jdbcType="VARCHAR"/> + <result property="projectStatus" column="project_status" jdbcType="VARCHAR"/> + <result property="publishingUnit" column="publishing_unit" jdbcType="VARCHAR"/> + <result property="conclusion" column="conclusion" jdbcType="VARCHAR"/> + <result property="publicationTime" column="publication_time" jdbcType="VARCHAR"/> + <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> + <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> + <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> + <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> + </resultMap> + + <sql id="Base_Column_List"> + id,evidence_id,project_name, + project_status,publishing_unit,conclusion, + publication_time,create_time,create_user_id, + update_time,update_user_id + </sql> +</mapper> diff --git a/src/main/resources/mapper/AttributeXmhtMapper.xml b/src/main/resources/mapper/AttributeXmhtMapper.xml new file mode 100644 index 0000000..475f23e --- /dev/null +++ b/src/main/resources/mapper/AttributeXmhtMapper.xml @@ -0,0 +1,31 @@ +<?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.AttributeXmhtMapper"> + + <resultMap id="BaseResultMap" type="com.supervision.police.domain.AttributeXmht"> + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="evidenceId" column="evidence_id" jdbcType="VARCHAR"/> + <result property="projectName" column="project_name" jdbcType="VARCHAR"/> + <result property="partA" column="part_a" jdbcType="VARCHAR"/> + <result property="partB" column="part_b" jdbcType="VARCHAR"/> + <result property="scope" column="scope" jdbcType="VARCHAR"/> + <result property="projectStartTime" column="project_start_time" jdbcType="VARCHAR"/> + <result property="projectEndTime" column="project_end_time" jdbcType="VARCHAR"/> + <result property="signingTime" column="signing_time" jdbcType="VARCHAR"/> + <result property="projectStatus" column="project_status" jdbcType="VARCHAR"/> + <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> + <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> + <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> + <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> + </resultMap> + + <sql id="Base_Column_List"> + id,evidence_id,project_name, + part_a,part_b,scope, + project_start_time,project_end_time,signing_time, + project_status,create_time,create_user_id, + update_time,update_user_id + </sql> +</mapper> diff --git a/src/main/resources/mapper/CasePersonMapper.xml b/src/main/resources/mapper/CasePersonMapper.xml index 455aa78..836f782 100644 --- a/src/main/resources/mapper/CasePersonMapper.xml +++ b/src/main/resources/mapper/CasePersonMapper.xml @@ -2,4 +2,10 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.supervision.police.mapper.CasePersonMapper"> + <select id="listByEvidenceId" resultType="com.supervision.police.domain.CasePerson"> + select cp.* + from case_evidence ce + join case_person cp on ce.case_id = cp.case_id + where ce.id = #{evidenceId} + </select> </mapper> \ No newline at end of file