fde5ff67 by 荆蔚杰

上传接口优化.卷内目录查询优化

1 parent ee87ffa5
...@@ -63,7 +63,7 @@ public class DgArchivesCatalogController { ...@@ -63,7 +63,7 @@ public class DgArchivesCatalogController {
63 } 63 }
64 64
65 @PostMapping("search") 65 @PostMapping("search")
66 @ApiOperation(value = "根据条件进行列表查询") 66 @ApiOperation(value = "获取档案目录和不动产信息")
67 public Result<List<DgArchivesCatalogListVO>> searchDgArchivesCatalogList(@ApiParam("档案标识码集合") @RequestParam List<String> bsmArchives) { 67 public Result<List<DgArchivesCatalogListVO>> searchDgArchivesCatalogList(@ApiParam("档案标识码集合") @RequestParam List<String> bsmArchives) {
68 return Result.ok(dgarchivescatalogService.searchDgArchivesCatalogList(bsmArchives)); 68 return Result.ok(dgarchivescatalogService.searchDgArchivesCatalogList(bsmArchives));
69 } 69 }
......
1 package com.pashanhoo.catalog.entity.vo;
2
3 import com.pashanhoo.file.entity.DgFileDO;
4 import io.swagger.annotations.ApiModel;
5 import io.swagger.annotations.ApiModelProperty;
6 import lombok.Data;
7 import lombok.EqualsAndHashCode;
8
9 import java.io.Serializable;
10 import java.util.List;
11
12 @Data
13 @EqualsAndHashCode(callSuper = false)
14 @ApiModel(value = "档案目录信息列表对应附件列表VO")
15 public class DgArchivesCatalogWithFileVO implements Serializable {
16
17 private static final long serialVersionUID = 1L;
18
19 /**
20 * 目录标识码
21 */
22 @ApiModelProperty(name = "bsmCatalog", value = "目录标识码")
23 private String bsmCatalog;
24
25 /**
26 * 档案标识码
27 */
28 @ApiModelProperty(name = "bsmArchives", value = "档案标识码")
29 private String bsmArchives;
30
31 /**
32 * 序号
33 */
34 @ApiModelProperty(name = "xh", value = "序号")
35 private Integer xh;
36
37 /**
38 * 材料编码
39 */
40 @ApiModelProperty(name = "wjbm", value = "材料编码")
41 private String wjbm;
42
43 /**
44 * 材料名称
45 */
46 @ApiModelProperty(name = "wjmc", value = "材料名称")
47 private String wjmc;
48
49 /**
50 * 材料类型编码
51 */
52 @ApiModelProperty(name = "cllxbm", value = "材料类型编码")
53 private String cllxbm;
54
55 /**
56 * 材料类型名称
57 */
58 @ApiModelProperty(name = "cllxmc", value = "材料类型名称")
59 private String cllxmc;
60
61 /**
62 * 页数
63 */
64 @ApiModelProperty(name = "ys", value = "页数")
65 private String ys;
66
67 /**
68 * 页号
69 */
70 @ApiModelProperty(name = "yh", value = "页号")
71 private String yh;
72
73 /**
74 * 份数
75 */
76 @ApiModelProperty(name = "fs", value = "份数")
77 private String fs;
78
79 /**
80 * 文号
81 */
82 @ApiModelProperty(name = "wh", value = "文号")
83 private String wh;
84
85 /**
86 * 备注
87 */
88 @ApiModelProperty(name = "bz", value = "备注")
89 private String bz;
90
91 /**
92 * 附件对象集合
93 */
94 @ApiModelProperty(name = "dgFileDOS", value = "附件对象集合")
95 private List<DgFileDO> dgFileDOS;
96 }
1 package com.pashanhoo.common.util.fileupload; 1 package com.pashanhoo.common.util.fileupload;
2 2
3 import com.pashanhoo.file.entity.vo.FileAttribute;
3 import io.minio.MinioClient; 4 import io.minio.MinioClient;
4 import io.minio.errors.*; 5 import io.minio.errors.*;
5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Autowired;
...@@ -38,7 +39,7 @@ public class MinioUtil { ...@@ -38,7 +39,7 @@ public class MinioUtil {
38 * @return minio文件路径 39 * @return minio文件路径
39 * @throws IOException 40 * @throws IOException
40 */ 41 */
41 public String upload(MultipartFile file) throws IOException { 42 public FileAttribute upload(MultipartFile file) throws IOException {
42 Assert.notNull(file, "上传文件为空"); 43 Assert.notNull(file, "上传文件为空");
43 // 上传地址 44 // 上传地址
44 String savePath = FileAttachmentUtil.getSavePath(UUID.randomUUID().toString()); 45 String savePath = FileAttachmentUtil.getSavePath(UUID.randomUUID().toString());
...@@ -60,8 +61,12 @@ public class MinioUtil { ...@@ -60,8 +61,12 @@ public class MinioUtil {
60 } catch (Exception e) { 61 } catch (Exception e) {
61 e.printStackTrace(); 62 e.printStackTrace();
62 } 63 }
63 64 FileAttribute fileAttribute = new FileAttribute();
64 return saveUrl; 65 fileAttribute.setFileName(fileName);
66 fileAttribute.setFileSize(Long.toString(file.getSize()));
67 fileAttribute.setSaveUrl(saveUrl);
68 fileAttribute.setPreviewUrl(pUrl);
69 return fileAttribute;
65 } 70 }
66 71
67 /** 72 /**
...@@ -71,12 +76,12 @@ public class MinioUtil { ...@@ -71,12 +76,12 @@ public class MinioUtil {
71 * @return 76 * @return
72 * @throws IOException 77 * @throws IOException
73 */ 78 */
74 public List<String> batchUpload(MultipartFile[] files) throws IOException { 79 public List<FileAttribute> batchUpload(MultipartFile[] files) throws IOException {
75 Assert.notNull(files, "上传文件为空"); 80 Assert.notNull(files, "上传文件为空");
76 List<String> list = new ArrayList<>(); 81 List<FileAttribute> list = new ArrayList<>();
77 for (MultipartFile file : files) { 82 for (MultipartFile file : files) {
78 String saveUrl = this.upload(file); 83 FileAttribute result = this.upload(file);
79 list.add(saveUrl); 84 list.add(result);
80 } 85 }
81 return list; 86 return list;
82 } 87 }
......
...@@ -38,7 +38,19 @@ public class SysDictController { ...@@ -38,7 +38,19 @@ public class SysDictController {
38 @GetMapping("getSysDictByTypeId") 38 @GetMapping("getSysDictByTypeId")
39 public Result<List<SysDict>> getSysDictByTypeId(@ApiParam("类型ID") @RequestParam String typeId) { 39 public Result<List<SysDict>> getSysDictByTypeId(@ApiParam("类型ID") @RequestParam String typeId) {
40 List<SysDict> dicts = sysDictService.getSysDictByTypeId(typeId); 40 List<SysDict> dicts = sysDictService.getSysDictByTypeId(typeId);
41 TreeUtil.setRule((o1, o2) -> 0, SysDict.class,"DictId"); 41 // TreeUtil.setRule((o1, o2) -> 0, SysDict.class,"DictId");
42 TreeUtil.setRule(new Comparator<SysDict>() {
43 @Override
44 public int compare(SysDict o1, SysDict o2) {
45 if (o1.getSort() == null) {
46 o1.setSort((short) 0);
47 }
48 if (o2.getSort() == null) {
49 o2.setSort((short) 0);
50 }
51 return o1.getSort() - o2.getSort();
52 }
53 },SysDict.class,"DictId");
42 List<SysDict> tree = TreeUtil.listToTree(dicts, typeId); 54 List<SysDict> tree = TreeUtil.listToTree(dicts, typeId);
43 return Result.ok(tree); 55 return Result.ok(tree);
44 } 56 }
......
1 package com.pashanhoo.file.controller; 1 package com.pashanhoo.file.controller;
2 2
3 3
4 import com.pashanhoo.catalog.entity.vo.DgArchivesCatalogWithFileVO;
4 import com.pashanhoo.common.Result; 5 import com.pashanhoo.common.Result;
5 import com.pashanhoo.file.entity.vo.AddDgFileRequest; 6 import com.pashanhoo.file.entity.vo.AddDgFileRequest;
6 import com.pashanhoo.file.entity.vo.DgFileListVO; 7 import com.pashanhoo.file.entity.vo.DgFileListVO;
...@@ -32,7 +33,7 @@ public class DgFileController { ...@@ -32,7 +33,7 @@ public class DgFileController {
32 33
33 @PostMapping("insertDgFile") 34 @PostMapping("insertDgFile")
34 @ApiOperation("新增档案文件信息") 35 @ApiOperation("新增档案文件信息")
35 public Result insertDgFile(@RequestBody AddDgFileRequest request){ 36 public Result insertDgFile(@RequestBody List<AddDgFileRequest> request){
36 if(dgfileService.insertDgFile(request)){ 37 if(dgfileService.insertDgFile(request)){
37 return Result.ok(); 38 return Result.ok();
38 } 39 }
...@@ -64,8 +65,8 @@ public class DgFileController { ...@@ -64,8 +65,8 @@ public class DgFileController {
64 } 65 }
65 66
66 @PostMapping("search") 67 @PostMapping("search")
67 @ApiOperation(value = "根据条件进行列表查询") 68 @ApiOperation(value = "查询档案目录和对应的附件")
68 public Result<List<DgFileListVO>> searchDgFileList(@RequestBody DgFileSearchRequest request) { 69 public Result<List<DgArchivesCatalogWithFileVO>> searchDgFileList(@RequestBody DgFileSearchRequest request) {
69 70
70 return Result.ok(dgfileService.searchDgFileList(request)); 71 return Result.ok(dgfileService.searchDgFileList(request));
71 } 72 }
......
...@@ -23,4 +23,6 @@ public interface DgFileConverter{ ...@@ -23,4 +23,6 @@ public interface DgFileConverter{
23 DgFileListVO do2ListVO(DgFileDO dgfileDO); 23 DgFileListVO do2ListVO(DgFileDO dgfileDO);
24 24
25 List<DgFileListVO> doList2ListVOList(List<DgFileDO> dgfileDOList); 25 List<DgFileListVO> doList2ListVOList(List<DgFileDO> dgfileDOList);
26
27 List<DgFileDO> voList2ListDO(List<AddDgFileRequest> addDgFileRequestList);
26 } 28 }
......
1 package com.pashanhoo.file.entity.vo;
2
3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data;
6 import lombok.EqualsAndHashCode;
7
8 import java.io.Serializable;
9
10 @Data
11 @EqualsAndHashCode(callSuper = false)
12 @ApiModel(value="文件上传实体")
13 public class FileAttribute implements Serializable {
14
15 private static final long serialVersionUID = 1L;
16
17 /**
18 * 文件名
19 */
20 @ApiModelProperty(name = "fileName", value = "文件名")
21 private String fileName;
22
23 /**
24 * 文件大小
25 */
26 @ApiModelProperty(name = "fileSize", value = "文件大小")
27 private String fileSize;
28
29 /**
30 * 文件存储url
31 */
32 @ApiModelProperty(name = "saveUrl", value = "文件url")
33 private String saveUrl;
34
35 /**
36 * 下载URL
37 */
38 @ApiModelProperty(name = "previewUrl", value = "下载URL")
39 private String previewUrl;
40
41 /**
42 * 扩展名
43 */
44 @ApiModelProperty(name = "expandName", value = "扩展名")
45 private String expandName;
46 }
...@@ -2,6 +2,7 @@ package com.pashanhoo.file.mapper; ...@@ -2,6 +2,7 @@ package com.pashanhoo.file.mapper;
2 2
3 3
4 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 import com.pashanhoo.catalog.entity.vo.DgArchivesCatalogWithFileVO;
5 import com.pashanhoo.file.entity.DgFileDO; 6 import com.pashanhoo.file.entity.DgFileDO;
6 import com.pashanhoo.file.entity.vo.DgFileListVO; 7 import com.pashanhoo.file.entity.vo.DgFileListVO;
7 import com.pashanhoo.file.entity.vo.DgFileSearchRequest; 8 import com.pashanhoo.file.entity.vo.DgFileSearchRequest;
...@@ -24,5 +25,5 @@ public interface DgFileMapper extends BaseMapper<DgFileDO> { ...@@ -24,5 +25,5 @@ public interface DgFileMapper extends BaseMapper<DgFileDO> {
24 * @param request 25 * @param request
25 * @return 26 * @return
26 */ 27 */
27 List<DgFileListVO> selectFileWithNameAndSort(@Param("request") DgFileSearchRequest request); 28 List<DgArchivesCatalogWithFileVO> selectCatalogWithFile(@Param("request") DgFileSearchRequest request);
28 } 29 }
......
...@@ -2,6 +2,7 @@ package com.pashanhoo.file.service; ...@@ -2,6 +2,7 @@ package com.pashanhoo.file.service;
2 2
3 import com.baomidou.mybatisplus.core.metadata.IPage; 3 import com.baomidou.mybatisplus.core.metadata.IPage;
4 import com.baomidou.mybatisplus.extension.service.IService; 4 import com.baomidou.mybatisplus.extension.service.IService;
5 import com.pashanhoo.catalog.entity.vo.DgArchivesCatalogWithFileVO;
5 import com.pashanhoo.file.entity.DgFileDO; 6 import com.pashanhoo.file.entity.DgFileDO;
6 import com.pashanhoo.file.entity.vo.*; 7 import com.pashanhoo.file.entity.vo.*;
7 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 8 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -22,7 +23,7 @@ public interface DgFileService extends IService<DgFileDO> { ...@@ -22,7 +23,7 @@ public interface DgFileService extends IService<DgFileDO> {
22 * @param request 23 * @param request
23 * @return 24 * @return
24 */ 25 */
25 boolean insertDgFile(AddDgFileRequest request); 26 boolean insertDgFile(List<AddDgFileRequest> request);
26 27
27 /** 28 /**
28 * 根据主键查询记录详情 29 * 根据主键查询记录详情
...@@ -43,5 +44,5 @@ public interface DgFileService extends IService<DgFileDO> { ...@@ -43,5 +44,5 @@ public interface DgFileService extends IService<DgFileDO> {
43 * @param request 44 * @param request
44 * @return 45 * @return
45 */ 46 */
46 List<DgFileListVO> searchDgFileList(DgFileSearchRequest request); 47 List<DgArchivesCatalogWithFileVO> searchDgFileList(DgFileSearchRequest request);
47 } 48 }
......
1 package com.pashanhoo.file.service.impl; 1 package com.pashanhoo.file.service.impl;
2 2
3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 import com.pashanhoo.catalog.entity.vo.DgArchivesCatalogWithFileVO;
4 import com.pashanhoo.common.util.fileupload.MinioUtil; 5 import com.pashanhoo.common.util.fileupload.MinioUtil;
5 import com.pashanhoo.file.entity.DgFileConverter; 6 import com.pashanhoo.file.entity.DgFileConverter;
6 import com.pashanhoo.file.entity.DgFileDO; 7 import com.pashanhoo.file.entity.DgFileDO;
...@@ -10,7 +11,6 @@ import com.pashanhoo.file.service.DgFileService; ...@@ -10,7 +11,6 @@ import com.pashanhoo.file.service.DgFileService;
10 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
12 13
13 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
14 14
15 import java.util.List; 15 import java.util.List;
16 16
...@@ -40,9 +40,9 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple ...@@ -40,9 +40,9 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple
40 * @return 40 * @return
41 */ 41 */
42 @Override 42 @Override
43 public boolean insertDgFile(AddDgFileRequest request) { 43 public boolean insertDgFile(List<AddDgFileRequest> request) {
44 DgFileDO dgfileDO = dgfileConverter.addRequest2DO(request); 44 List<DgFileDO> dgFileDOS = dgfileConverter.voList2ListDO(request);
45 return this.save(dgfileDO); 45 return this.saveBatch(dgFileDOS);
46 } 46 }
47 47
48 /** 48 /**
...@@ -53,7 +53,10 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple ...@@ -53,7 +53,10 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple
53 @Override 53 @Override
54 public DgFileDetailVO getDgFileDetailById(String id) { 54 public DgFileDetailVO getDgFileDetailById(String id) {
55 DgFileDO dgfileDO = this.getById(id); 55 DgFileDO dgfileDO = this.getById(id);
56 return dgfileConverter.do2DetailVO(dgfileDO); 56 DgFileDetailVO dgFileDetailVO = dgfileConverter.do2DetailVO(dgfileDO);
57 String previewUrl = minioUtil.getPreviewUrl(dgFileDetailVO.getFjurl());
58 dgFileDetailVO.setFjurl(previewUrl);
59 return dgFileDetailVO;
57 } 60 }
58 61
59 /** 62 /**
...@@ -73,14 +76,16 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple ...@@ -73,14 +76,16 @@ public class DgFileServiceImpl extends ServiceImpl<DgFileMapper, DgFileDO> imple
73 * @return 76 * @return
74 */ 77 */
75 @Override 78 @Override
76 public List<DgFileListVO> searchDgFileList(DgFileSearchRequest request) { 79 public List<DgArchivesCatalogWithFileVO> searchDgFileList(DgFileSearchRequest request) {
77 80
78 List<DgFileListVO> fileListVOS = dgfileMapper.selectFileWithNameAndSort(request); 81 List<DgArchivesCatalogWithFileVO> fileListVOS = dgfileMapper.selectCatalogWithFile(request);
79 82
80 for (DgFileListVO fileListVO : fileListVOS) { 83 for (DgArchivesCatalogWithFileVO fileListVO : fileListVOS) {
81 if (fileListVO.getFjurl() != null) { 84 for (DgFileDO dgFileDO : fileListVO.getDgFileDOS()) {
82 String previewUrl = minioUtil.getPreviewUrl(fileListVO.getFjurl()); 85 if (dgFileDO.getFjurl() != null) {
83 fileListVO.setFjurl(previewUrl); 86 String previewUrl = minioUtil.getPreviewUrl(dgFileDO.getFjurl());
87 dgFileDO.setFjurl(previewUrl);
88 }
84 } 89 }
85 } 90 }
86 return fileListVOS; 91 return fileListVOS;
......
...@@ -23,8 +23,32 @@ ...@@ -23,8 +23,32 @@
23 FJSIZE 23 FJSIZE
24 </sql> 24 </sql>
25 25
26 <select id="selectFileWithNameAndSort" resultType="com.pashanhoo.file.entity.vo.DgFileListVO"> 26 <resultMap id="CatalogWithFile" type="com.pashanhoo.catalog.entity.vo.DgArchivesCatalogWithFileVO">
27 select DF.*, DAC.WJMC, DAC.XH 27 <result column="bsm_catalog" property="bsmCatalog"/>
28 <result column="bsm_archives" property="bsmArchives"/>
29 <result column="xh" property="xh"/>
30 <result column="wjbm" property="wjbm"/>
31 <result column="wjmc" property="wjmc"/>
32 <result column="cllxbm" property="cllxbm"/>
33 <result column="cllxmc" property="cllxmc"/>
34 <result column="ys" property="ys"/>
35 <result column="yh" property="yh"/>
36 <result column="fs" property="fs"/>
37 <result column="wh" property="wh"/>
38 <result column="bz" property="bz"/>
39 <collection property="dgFileDOS" ofType="com.pashanhoo.file.entity.DgFileDO">
40 <result column="BSM_FILE" property="bsmFile"/>
41 <result column="DF_BSM_CATALOG" property="bsmCatalog"/>
42 <result column="KZM" property="kzm"/>
43 <result column="SCRQ" property="scrq"/>
44 <result column="SCR" property="scr"/>
45 <result column="FJURL" property="fjurl"/>
46 <result column="FJSIZE" property="fjsize"/>
47 </collection>
48 </resultMap>
49
50 <select id="selectCatalogWithFile" resultMap="CatalogWithFile">
51 select DAC.*, DF.BSM_FILE as BSM_FILE, DF.BSM_CATALOG as DF_BSM_CATALOG, DF.KZM as KZM,DF.SCRQ as SCRQ,DF.SCR as SCR,DF.FJURL as FJURL,DF.FJSIZE as FJSIZE
28 from DG_FILE DF 52 from DG_FILE DF
29 left join DG_ARCHIVES_CATALOG DAC on DAC.BSM_CATALOG = 53 left join DG_ARCHIVES_CATALOG DAC on DAC.BSM_CATALOG =
30 DF.BSM_CATALOG 54 DF.BSM_CATALOG
...@@ -33,6 +57,6 @@ ...@@ -33,6 +57,6 @@
33 BSM_ARCHIVES = #{request.bsmArchives,jdbcType=VARCHAR} 57 BSM_ARCHIVES = #{request.bsmArchives,jdbcType=VARCHAR}
34 </if> 58 </if>
35 </where> 59 </where>
36 order by XH; 60 order by XH
37 </select> 61 </select>
38 </mapper> 62 </mapper>
......