From 409f0402dff511e8d04effc04d4f59cdfec55513 Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Fri, 2 Apr 2021 11:21:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/vo/PluginVo.java | 9 +- .../ccsens/tall/service/InputDocService.java | 6 ++ .../ccsens/tall/service/SysPluginService.java | 95 +++++++++++++++---- .../resources/mapper_dao/TaskPluginDao.xml | 14 ++- .../main/java/com/ccsens/util/CodeEnum.java | 1 + 5 files changed, 99 insertions(+), 26 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java index 5c579a65..1f7597df 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java @@ -1,5 +1,6 @@ package com.ccsens.tall.bean.vo; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -130,7 +131,7 @@ public class PluginVo { @ApiModelProperty("插件图标") private Long pluginIcon; @ApiModelProperty("插件图标") - private String iconUrl; + private FileVo.FilePosition iconUrl; @ApiModelProperty("插件id") private Long pluginId; @ApiModelProperty("插件描述") @@ -138,10 +139,10 @@ public class PluginVo { @ApiModelProperty("插件作者") private Long pluginAuthor; @ApiModelProperty("插件预览图片") - private List previewImgs = new ArrayList<>(); + private List previewImgs = new ArrayList<>(); + @JsonIgnore + private String fileIdList; - public PluginByTaskAdded() { - } } @Data @ApiModel("插件预览图信息(已添加)") diff --git a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java index 37e99a99..e27f4d0c 100644 --- a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java @@ -238,6 +238,9 @@ public class InputDocService implements IInputDocService { if (ArrayUtil.isEmpty(param.getFileIds()) && StrUtil.isBlank(param.getRemark())){ throw new BaseException("请上传文件或填写备注信息"); } + if (ObjectUtil.isNull(proTaskInputDocMapper.selectByPrimaryKey(param.getDocId()))){ + throw new BaseException("输入文档不存在或已删除"); + } //多文件添加 if (!ArrayUtil.isEmpty(param.getFileIds())){ String fileIds = ""; @@ -333,6 +336,9 @@ public class InputDocService implements IInputDocService { public void updateDoc(InputDocDto.UpdateDoc param) { //判断是否有重复 ProTaskInputDoc proTaskInputDoc = proTaskInputDocMapper.selectByPrimaryKey(param.getDocId()); + if (ObjectUtil.isNull(proTaskInputDoc)){ + throw new BaseException(CodeEnum.DOC_NONE); + } ProTaskInputDocExample proTaskInputDocExample = new ProTaskInputDocExample(); proTaskInputDocExample.createCriteria().andTaskDetailIdEqualTo(proTaskInputDoc.getTaskDetailId()); List proTaskInputDocs = proTaskInputDocMapper.selectByExample(proTaskInputDocExample); diff --git a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java b/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java index 6f5d5a92..820249d2 100644 --- a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java +++ b/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java @@ -4,10 +4,16 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.ccsens.tall.bean.dto.PluginDto; import com.ccsens.tall.bean.po.*; +import com.ccsens.tall.bean.vo.FileVo; import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.persist.dao.*; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.PropUtil; +import com.ccsens.util.RestTemplateUtil; import com.ccsens.util.WebConstant; import com.ccsens.util.exception.BaseException; import com.github.pagehelper.PageHelper; @@ -21,6 +27,7 @@ import org.springframework.web.context.ContextLoaderListener; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @Slf4j @@ -90,15 +97,41 @@ public class SysPluginService implements ISysPluginService{ public List findPluginOfAdded(PluginDto.FindPluginByTask param) { List plugins = taskPluginDao.findPluginOfAdded(param.getTaskId(),param.getRoleId(),param.getPluginName(),param.getPluginType()); plugins.forEach(plugin -> { - ProPluginPreviewFileExample example = new ProPluginPreviewFileExample(); - example.createCriteria().andPluginIdEqualTo(plugin.getPluginId()).andRecStatusEqualTo((byte)0); - List proPluginPreviewFiles = proPluginPreviewFileDao.selectByExample(example); - proPluginPreviewFiles.forEach(previewFile -> { - PluginVo.ImgByTaskAdded img = new PluginVo.ImgByTaskAdded(); - img.setPreviewId(previewFile.getId()); - img.setPreviewDescription(previewFile.getPreviewDescription()); - plugin.getPreviewImgs().add(img); - }); + if (plugin.getFileIdList().contains(",")){ + String[] split = plugin.getFileIdList().split(","); + List splits =new ArrayList<>(Arrays.asList(split)); + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl,splits); + JsonResponse a = JSONObject.parseObject(c, JsonResponse.class); + //遍历区分是图标还是预览图 + List filePositions = JSONArray.parseArray(a.getData().toString(), FileVo.FilePosition.class); + if(ObjectUtil.isNotNull(filePositions) && ObjectUtil.isNotNull(filePositions)){ + for (int i = 0; i < filePositions.size(); i++) { + if (filePositions.get(i).getId().equals(plugin.getPluginIcon())){ + plugin.setIconUrl(filePositions.get(i)); + filePositions.remove(filePositions.get(i)); + } + } + plugin.setPreviewImgs(filePositions); + } + }else{ + //不包含逗号说明没有预览图,只有图标 + List id = new ArrayList<>(); + id.add(plugin.getFileIdList()); + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl,id); + JsonResponse a = JSONObject.parseObject(c, JsonResponse.class); + + List filePositions = JSONArray.parseArray(a.getData().toString(), FileVo.FilePosition.class); + if(ObjectUtil.isNotNull(filePositions) && ObjectUtil.isNotNull(filePositions) && !filePositions.isEmpty()){ + plugin.setIconUrl(filePositions.get(0)); + } + + } }); return plugins; } @@ -113,15 +146,41 @@ public class SysPluginService implements ISysPluginService{ PageHelper.startPage(param.getPageNum(),param.getPageSize()); List plugins = taskPluginDao.findPluginOfNoAdded(param.getTaskId(),param.getRoleId(),param.getPluginName(),param.getPluginType()); plugins.forEach(plugin -> { - ProPluginPreviewFileExample example = new ProPluginPreviewFileExample(); - example.createCriteria().andPluginIdEqualTo(plugin.getPluginId()).andRecStatusEqualTo((byte)0); - List proPluginPreviewFiles = proPluginPreviewFileDao.selectByExample(example); - proPluginPreviewFiles.forEach(previewFile -> { - PluginVo.ImgByTaskAdded img = new PluginVo.ImgByTaskAdded(); - img.setPreviewId(previewFile.getId()); - img.setPreviewDescription(previewFile.getPreviewDescription()); - plugin.getPreviewImgs().add(img); - }); + if (plugin.getFileIdList().contains(",")){ + String[] split = plugin.getFileIdList().split(","); + List splits =new ArrayList<>(Arrays.asList(split)); + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl,splits); + JsonResponse a = JSONObject.parseObject(c, JsonResponse.class); + //遍历区分是图标还是预览图 + List filePositions = JSONArray.parseArray(a.getData().toString(), FileVo.FilePosition.class); + if(ObjectUtil.isNotNull(filePositions) && ObjectUtil.isNotNull(filePositions)){ + for (int i = 0; i < filePositions.size(); i++) { + if (filePositions.get(i).getId().equals(plugin.getPluginIcon())){ + plugin.setIconUrl(filePositions.get(i)); + filePositions.remove(filePositions.get(i)); + } + } + plugin.setPreviewImgs(filePositions); + } + }else{ + //不包含逗号说明没有预览图,只有图标 + List id = new ArrayList<>(); + id.add(plugin.getFileIdList()); + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl,id); + JsonResponse a = JSONObject.parseObject(c, JsonResponse.class); + + List filePositions = JSONArray.parseArray(a.getData().toString(), FileVo.FilePosition.class); + if(ObjectUtil.isNotNull(filePositions) && ObjectUtil.isNotNull(filePositions) && !filePositions.isEmpty()){ + plugin.setIconUrl(filePositions.get(0)); + } + + } }); return new PageInfo<>(plugins); } diff --git a/tall/src/main/resources/mapper_dao/TaskPluginDao.xml b/tall/src/main/resources/mapper_dao/TaskPluginDao.xml index dac81809..b75acc90 100644 --- a/tall/src/main/resources/mapper_dao/TaskPluginDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskPluginDao.xml @@ -11,11 +11,13 @@ sp.description AS description, sp.plugin_author AS pluginAuthor, ptp.task_detail_id, - ptp.member_role_id + ptp.member_role_id, + CONCAT_WS(',',GROUP_CONCAT(DISTINCT sp.plugin_icon),GROUP_CONCAT(DISTINCT pppf.file_id)) AS fileIdList FROM t_pro_task_plugin AS ptp - LEFT JOIN t_sys_plugin AS sp ON ptp.plugin_id = sp.id - LEFT JOIN t_file AS tf ON sp.plugin_icon = tf.id + LEFT JOIN t_sys_plugin AS sp ON ptp.plugin_id = sp.id AND sp.rec_status = 0 + LEFT JOIN t_file AS tf ON sp.plugin_icon = tf.id AND tf.rec_status = 0 + LEFT JOIN t_pro_plugin_preview_file AS pppf ON sp.id = pppf.plugin_id AND pppf.rec_status = 0 AND sp.rec_status = 0 WHERE ptp.rec_status = 0 @@ -27,6 +29,7 @@ AND sp.plugin_class = #{pluginType} + Group by ptp.plugin_id \ No newline at end of file diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index b7817af2..c397cc21 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -187,6 +187,7 @@ public enum CodeEnum { MEIYOUGAIYISHENG(156,"该医生信息查询不正确",true), QINGTIJIAOSHITI(157,"未做出修改答案,修改后再提交",true), DOC_REPEAT(158,"输入文档已存在",true), + DOC_NONE(161,"输入文档不存在",true), NOTNAME(159,"未找到该列",true), CHONGFU(160,"该成员在项目下有多个成员角色",true), ;