From c9d6666c03cb2952495d75d9b0e1f630359b748c Mon Sep 17 00:00:00 2001 From: "DESKTOP-DDTUS3E\\yaxin" Date: Thu, 5 Sep 2024 17:04:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=8D=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E6=9B=B4=E6=96=B0=E2=80=9C=E7=AC=94=E5=BD=95?= =?UTF-8?q?=E2=80=9D=E8=A1=A8=E2=80=9C=E6=8F=90=E7=A4=BA=E8=AF=8D=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E2=80=9D=E5=AD=97=E6=AE=B5=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/police/domain/NoteRecord.java | 34 ++++++++++--------- .../impl/ModelRecordTypeServiceImpl.java | 32 ++++++++++++----- .../impl/NoteRecordSplitServiceImpl.java | 6 ++-- 3 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/supervision/police/domain/NoteRecord.java b/src/main/java/com/supervision/police/domain/NoteRecord.java index 54504c0..213831c 100644 --- a/src/main/java/com/supervision/police/domain/NoteRecord.java +++ b/src/main/java/com/supervision/police/domain/NoteRecord.java @@ -1,18 +1,15 @@ package com.supervision.police.domain; -import java.time.LocalDateTime; - import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonSetter; -import com.fasterxml.jackson.annotation.Nulls; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -28,17 +25,17 @@ public class NoteRecord implements Serializable { @TableId private String id; - + /** * 案件id */ private String caseId; - + /** * 笔录名称 */ private String recordName; - + /** * 笔录文件id */ @@ -48,39 +45,39 @@ public class NoteRecord implements Serializable { * 案件人员id */ private String casePersonId; - + /** * 姓名 */ private String name; - + /** * 角色 */ private String role; - + /** * 供述材料 */ private Integer confessionMaterial; - + /** * 询问人 */ private String lawAsker; - + /** * 供述开始时间 */ // @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8") private String confessionStartTime; - + /** * 供述结束时间 */ // @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone = "GMT+8") private String confessionEndTime; - + /** * 排序序号 */ @@ -92,6 +89,11 @@ public class NoteRecord implements Serializable { */ private String dataStatus; + /** + * 提示词更新标记,用来判断是否需要重新提取三元组 + */ + private Boolean isPromptUpdate; + @TableField(exist = false) private List children = new ArrayList<>(); @@ -104,7 +106,7 @@ public class NoteRecord implements Serializable { * 创建时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) - @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @@ -118,7 +120,7 @@ public class NoteRecord implements Serializable { * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) - @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; diff --git a/src/main/java/com/supervision/police/service/impl/ModelRecordTypeServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelRecordTypeServiceImpl.java index 9f2fa21..6790778 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelRecordTypeServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelRecordTypeServiceImpl.java @@ -30,7 +30,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StopWatch; -import java.time.LocalDateTime; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -63,6 +62,8 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl saveType(ModelRecordType type) { String id = type.getId(); - int i = 0; + int i; if (StringUtils.isEmpty(id)) { //新增 i = modelRecordTypeMapper.insert(type); @@ -157,7 +158,6 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl modelRecordTypes = list(); + // 根据提示词id获取类型和提示词的关系表 + List relList = notePromptTypeRelService.list(new QueryWrapper().eq("prompt_id", prompt.getId())); + //根据typeId集合过滤出对应的modelRecordType的name + List typeNames = modelRecordTypes.stream().filter(e -> relList.stream().map(NotePromptTypeRel::getTypeId).toList().contains(e.getId())).map(ModelRecordType::getRecordType).toList(); + //根据typeNames模糊匹配查询note_record_split + List noteRecordSplits = noteRecordSplitService.list().stream() + .filter(record -> record != null && record.getRecordType() != null && typeNames.stream().anyMatch(typeName -> Arrays.asList(record.getRecordType().split(",")).contains(typeName))) + .toList(); + //过滤并去重涉及到的的note_record_id + Set recordIds = noteRecordSplits.stream().map(NoteRecordSplit::getNoteRecordId).collect(Collectors.toSet()); + //根据note_record_id更新note_record表的isPromptUpdate字段 + log.info("开始更新笔录表提示词更新状态【is_prompt_update】,涉及到的笔录有:{}", recordIds); + boolean updated = noteRecordService.update(new UpdateWrapper().set("is_prompt_update", true).in("id", recordIds)); + + if (save && updated) { return R.ok("保存成功"); } else { return R.fail("保存失败"); @@ -280,8 +296,8 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl allTypeList = modelRecordTypeService.lambdaQuery().list(); // 根据recordId查询所有的分割后的笔录 @@ -408,12 +424,11 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl ids, String recordId) { - if (StrUtil.isBlank(recordId)){ + if (StrUtil.isBlank(recordId)) { throw new BusinessException("记录ID不能为空"); } if (CollUtil.isNotEmpty(ids)) { List tripleInfos = tripleInfoService.listByIds(ids); - int i = 0; for (TripleInfo tripleInfo : tripleInfos) { try { //开始节点 @@ -445,7 +460,6 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl().eq("note_record_id", records.getId())); @@ -420,6 +418,8 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl().eq("record_id", records.getId())); + // 重置note_record表的isPromptUpdate字段为false + noteRecordService.lambdaUpdate().eq(NoteRecord::getId, records.getId()).set(NoteRecord::getIsPromptUpdate, false).update(); return uploadRecords(records); }