From f034060dd996088d8cf37675eeb09151870b902d Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 23 Dec 2021 15:46:50 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/ResiEventFormDTO.java | 2 +- .../epmet/dto/result/EventListResultDTO.java | 24 ++++ .../epmet/dto/result/NewEventsResultDTO.java | 2 +- .../dto/result/ResiEventListResultDTO.java | 2 +- .../dto/result/UserMentionResultDTO.java | 2 +- .../service/impl/ResiEventServiceImpl.java | 110 ++++++++++-------- .../src/main/resources/bootstrap.yml | 2 + .../main/resources/mapper/ResiEventDao.xml | 83 +++++++------ .../resources/mapper/ResiEventMentionDao.xml | 2 + 9 files changed, 138 insertions(+), 91 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventFormDTO.java index 0a8929b0dd..e297f4f153 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventFormDTO.java @@ -34,7 +34,7 @@ public class ResiEventFormDTO implements Serializable { /** * 事件内容,最多1000 */ - @Length(min = 1, max = 1000, message = "请填写内容,最多输入1000字", groups = AddUserShowGroup.class) + @Length(max = 1000, message = "请填写内容,最多输入1000字", groups = AddUserShowGroup.class) private String eventContent; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventListResultDTO.java index 23ecd11982..47fc45c7c6 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventListResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventListResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -45,4 +46,27 @@ public class EventListResultDTO implements Serializable { */ private List eventImgs; + /** + * 语音附件url集合 + */ + private List voiceList; + /** + * 事件附件 + */ + @JsonIgnore + private List attachmentList; + + @Data + public static class Attachment { + /** + * url + */ + private String url; + + /** + * 附件类型 + */ + private String type; + } + } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/NewEventsResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/NewEventsResultDTO.java index 580d9da12d..68e0ba99ca 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/NewEventsResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/NewEventsResultDTO.java @@ -40,7 +40,7 @@ public class NewEventsResultDTO implements Serializable { * 事件附件 */ @JsonIgnore - private List attachmentList; + private List attachmentList; @Data public static class Attachment { diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ResiEventListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ResiEventListResultDTO.java index 44dc457a59..3fa8432bab 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ResiEventListResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ResiEventListResultDTO.java @@ -69,7 +69,7 @@ public class ResiEventListResultDTO implements Serializable { * 事件附件 */ @JsonIgnore - private List attachmentList; + private List attachmentList; @Data public static class Attachment { diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/UserMentionResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/UserMentionResultDTO.java index 4be78b5d64..0abae1961f 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/UserMentionResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/UserMentionResultDTO.java @@ -68,7 +68,7 @@ public class UserMentionResultDTO implements Serializable { * 事件附件 */ @JsonIgnore - private List attachmentList; + private List attachmentList; @Data public static class Attachment { diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java index 626b058f2d..72c2a5529f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java @@ -125,6 +125,20 @@ public class ResiEventServiceImpl extends BaseServiceImpl result = baseDao.eventUnDisposedList(formDTO.getOrgId(), formDTO.getEventType()); if (!CollectionUtils.isEmpty(result)){ + //附件按类型分组【图片、语音】 + result.forEach(re->{ + List eventImgs = new ArrayList<>(); + List voiceList = new ArrayList<>(); + re.getAttachmentList().forEach(file->{ + if ("image".equals(file.getType())) { + eventImgs.add(file.getUrl()); + } else if ("voice".equals(file.getType())) { + voiceList.add(file.getUrl()); + } + }); + re.setEventImgs(eventImgs); + re.setVoiceList(voiceList); + }); return result; } return new ArrayList<>(); @@ -322,7 +336,50 @@ public class ResiEventServiceImpl extends BaseServiceImpl voiceDTOList = new ArrayList<>(); + int sort = 1;//原本下标从0开始 图片的用了1就保持一致从1开始 + for (FileCommonDTO file : formDTO.getVoiceList()) { + ResiEventAttachmentEntity entity = new ResiEventAttachmentEntity(); + entity.setCustomerId(formDTO.getCustomerId()); + entity.setResiEventId(resiEventEntity.getId()); + entity.setAttachmentName(file.getName()); + entity.setAttachmentFormat(file.getFormat()); + entity.setAttachmentType(file.getType()); + entity.setAttachmentUrl(file.getUrl()); + entity.setSort(sort); + entity.setStatus(TopicConstant.AUDITING); + sort++; + resiEventAttachmentDao.insert(entity); + + VoiceTaskDTO task = new VoiceTaskDTO(); + task.setDataId(entity.getId()); + task.setUrl(file.getUrl()); + voiceDTOList.add(task); + } + //5-2-2.语音创建审核任务【定时任务会处理待审核语音后修改数据库数据】 + VoiceScanParamDTO voiceScanParamDTO = new VoiceScanParamDTO(); + voiceScanParamDTO.setTasks(voiceDTOList); + voiceScanParamDTO.setOpenCallBack(false); + Result voiceScanResult = ScanContentUtils.voiceAsyncScan(scanApiUrl.concat(voiceAsyncScanMethod), voiceScanParamDTO); + if (!voiceScanResult.success() || !voiceScanResult.getData().isAllSuccess()) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + List taskList = voiceScanResult.getData().getSuccessTasks(); + //提交记录存入task表 + List scanTaskEntityList = taskList.stream().map(item -> { + ResiEventScanTaskEntity taskEntity = new ResiEventScanTaskEntity(); + taskEntity.setCustomerId(formDTO.getCustomerId()); + taskEntity.setResiEventId(resiEventEntity.getId()); + taskEntity.setResiEventAttachmentId(item.getDataId()); + taskEntity.setTaskId(item.getTaskId()); + taskEntity.setStatus(TopicConstant.AUDITING); + taskEntity.setAttachmentType(TopicConstant.VOICE); + return taskEntity; + }).collect(Collectors.toList()); + resiEventScanTaskService.insertBatch(scanTaskEntityList); + } } //6、插入组织表 List orgEntityList=getOrgList(formDTO.getCustomerId(),resiEventEntity.getId(),formDTO.getOrgList()); @@ -401,62 +458,13 @@ public class ResiEventServiceImpl extends BaseServiceImpl voiceList) { - //1.语音附件存入表中 - List voiceDTOList = new ArrayList<>(); - int sort = 0; - for (FileCommonDTO file : voiceList) { - ResiEventAttachmentEntity entity = new ResiEventAttachmentEntity(); - entity.setCustomerId(customerId); - entity.setResiEventId(resiEventId); - entity.setAttachmentName(file.getName()); - entity.setAttachmentFormat(file.getFormat()); - entity.setAttachmentType(file.getType()); - entity.setAttachmentUrl(file.getUrl()); - entity.setSort(sort); - sort++; - resiEventAttachmentDao.insert(entity); - - VoiceTaskDTO task = new VoiceTaskDTO(); - task.setDataId(entity.getId()); - task.setUrl(file.getUrl()); - voiceDTOList.add(task); - } - //2.语音创建审核任务【定时任务会处理待审核语音后修改数据库数据】 - VoiceScanParamDTO voiceScanParamDTO = new VoiceScanParamDTO(); - voiceScanParamDTO.setTasks(voiceDTOList); - voiceScanParamDTO.setOpenCallBack(false); - Result voiceScanResult = ScanContentUtils.voiceAsyncScan(scanApiUrl.concat(voiceAsyncScanMethod), voiceScanParamDTO); - if (!voiceScanResult.success() || !voiceScanResult.getData().isAllSuccess()) { - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } else { - List taskList = voiceScanResult.getData().getSuccessTasks(); - List taskIds = taskList.stream().map(AsyncScanTaskDTO::getTaskId).collect(Collectors.toList()); - //提交记录存入task表 - List scanTaskEntityList = taskList.stream().map(item -> { - ResiEventScanTaskEntity taskEntity = new ResiEventScanTaskEntity(); - taskEntity.setCustomerId(customerId); - taskEntity.setResiEventId(resiEventId); - taskEntity.setResiEventAttachmentId(item.getDataId()); - taskEntity.setTaskId(item.getTaskId()); - taskEntity.setStatus(TopicConstant.AUDITING); - taskEntity.setAttachmentType(TopicConstant.VOICE); - return taskEntity; - }).collect(Collectors.toList()); - resiEventScanTaskService.insertBatch(scanTaskEntityList); - } - } - private void scanContent(String eventContent, List attachmentList) { //事件内容 if (StringUtils.isNotBlank(eventContent)) { diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml b/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml index 2800f5ad1c..7821e73e53 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml @@ -122,6 +122,8 @@ openapi: method: imgSyncScan: /imgSyncScan textSyncScan: /textSyncScan + voiceAsyncScan: /voiceAsyncScan + voiceResults: /voiceResults #pageHelper分页插件 pagehelper: diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml index 72a83c1e6a..ff32d40a97 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventDao.xml @@ -10,46 +10,51 @@ - - + + + +