From d4776113950b58d447bc3cfc5ed57ab4d8e1ee3e Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Tue, 24 Sep 2024 14:35:51 +0800
Subject: [PATCH] 1、大厅来访登记,添加当事人法人信息,选择企业接口2
---
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/web/FileInfoWebController.java | 152 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 112 insertions(+), 40 deletions(-)
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/web/FileInfoWebController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/web/FileInfoWebController.java
index a093e16..866127d 100644
--- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/web/FileInfoWebController.java
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/web/FileInfoWebController.java
@@ -1,6 +1,7 @@
package cn.huge.module.file.controller.web;
import cn.huge.base.common.exception.ClientException;
+import cn.huge.module.file.domain.dto.IdFileDTO;
import cn.huge.module.utils.BaiduOcrUtils;
import cn.huge.base.common.utils.ContentTypeUtils;
import cn.huge.base.common.utils.ReturnFailUtils;
@@ -33,10 +34,10 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
/**
* @title: 附件信息表接口api-web端
@@ -63,19 +64,20 @@
/**
* 页面附件上传-文件流方式
- * @url {ctx}/api/web/fileInfo/upload?mainId=&ownerId=&ownerType=
- * @param mainId 所属业务主体编号
- * @param ownerId 所属业务编号
+ *
+ * @param mainId 所属业务主体编号
+ * @param ownerId 所属业务编号
* @param ownerType 所属业务类型
- * @param request 请求头
+ * @param request 请求头
* @return Object
+ * @url {ctx}/api/web/fileInfo/upload?mainId=&ownerId=&ownerType=
*/
@PostMapping("/upload")
public Object upload(@RequestParam(value = "mainId") String mainId,
@RequestParam(value = "ownerId") String ownerId,
@RequestParam(value = "ownerType") String ownerType,
@CurrentUser String userId, MultipartHttpServletRequest request) {
- try{
+ try {
CtUserDTO loginUser = custClient.clientGetUser(userId);
UploaderDTO uploaderDTO = new UploaderDTO();
uploaderDTO.setUploaderId(loginUser.getId());
@@ -84,12 +86,12 @@
uploaderDTO.setCustId(loginUser.getCustId());
List<FileInfoBaseDTO> files = new ArrayList<>();
Iterator<String> itr = request.getFileNames();
- int fileCount = fileRelateService.countByOwnerIdAndType(ownerId, ownerType)+1;
+ int fileCount = fileRelateService.countByOwnerIdAndType(ownerId, ownerType) + 1;
while (itr.hasNext()) {
MultipartFile file = request.getFile(itr.next());
- if(file.getSize() > 30000000){
+ if (file.getSize() > 30000000) {
return ReturnFailUtils.getRepInfo("您上传的文件已超过30M大小限制!");
- }else {
+ } else {
String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
if (FileUtils.checkFileSuffix(fileSuffix)) {
if (StringUtils.isEmpty(ownerType)) {
@@ -100,7 +102,7 @@
BeanUtils.copyProperties(fileInfo, fileInfoBaseDTO);
// 如果是身份证,就调用ocr识别
- if (FileOwnerTypeBaseEnum.OWNER_TYPE_202.getIndex().equals(ownerType)){
+ if (FileOwnerTypeBaseEnum.OWNER_TYPE_202.getIndex().equals(ownerType)) {
fileInfoBaseDTO.setIdcardOcrResult(BaiduOcrUtils.ocrIdcard(file.getBytes()));
}
@@ -111,7 +113,7 @@
}
}
}
- return ReturnSucUtils.getRepInfo( "上传成功!", files);
+ return ReturnSucUtils.getRepInfo("上传成功!", files);
} catch (Exception e) {
return ReturnFailUtils.getRepInfo();
}
@@ -119,13 +121,14 @@
/**
* 在线查附件-文件流方式
- * @url {ctx}/api/web/fileInfo/show/{id}
- * @param id 附件编号
+ *
+ * @param id 附件编号
* @param response 响应头
* @throws Exception
+ * @url {ctx}/api/web/fileInfo/show/{id}
*/
@GetMapping("/show/{id}")
- public void show(@PathVariable(value = "id") String id, HttpServletResponse response){
+ public void show(@PathVariable(value = "id") String id, HttpServletResponse response) {
try {
FileInfo fileInfo = service.getById(id);
response.reset();
@@ -151,19 +154,20 @@
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
} catch (Exception e) {
- log.error("controller接口[FileInfoWebController.show]请求失败,异常信息:"+e, e);
+ log.error("controller接口[FileInfoWebController.show]请求失败,异常信息:" + e, e);
throw new ClientException("FileInfoWebController.show", e);
}
}
/**
* 在线下载附件-文件流方式
- * @url {ctx}/api/web/fileInfo/down/{id}
- * @param id 附件编号
+ *
+ * @param id 附件编号
* @param response 响应头
+ * @url {ctx}/api/web/fileInfo/down/{id}
*/
@GetMapping("/down/{id}")
- public void down(@PathVariable(value = "id") String id, HttpServletResponse response){
+ public void down(@PathVariable(value = "id") String id, HttpServletResponse response) {
try {
FileInfo fileInfo = service.getById(id);
String contentType = ContentTypeUtils.getContentType(fileInfo.getSuffix());
@@ -178,80 +182,123 @@
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
} catch (Exception e) {
- log.error("controller接口[FileInfoWebController.down]请求失败,异常信息:"+e, e);
+ log.error("controller接口[FileInfoWebController.down]请求失败,异常信息:" + e, e);
+ throw new ClientException("FileInfoWebController.down", e);
+ }
+ }
+
+ @GetMapping("/down/batch")
+ public void downBatch(@RequestParam(value = "ids") String ids, HttpServletResponse response) {
+ try {
+ String[] id = ids.split(",");
+ // 设置ZIP文件响应类型
+ response.setContentType("application/zip");
+ response.setHeader("Content-Disposition", "attachment;filename=files.zip");
+
+ ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream());
+ for (String s : id) {
+ FileInfo fileInfo = service.getById(s);
+ FtpUtils ftpUtil = new FtpUtils();
+ InputStream inputStream = ftpUtil.retrieveFileStream(fileInfo.getFullPath());
+
+ // 每个文件写入到ZIP包中
+ zipOutputStream.putNextEntry(new ZipEntry(fileInfo.getName() + BaseConsts.DOT + fileInfo.getSuffix()));
+ IOUtils.copy(inputStream, zipOutputStream);
+ zipOutputStream.closeEntry();
+ IOUtils.closeQuietly(inputStream);
+ }
+ IOUtils.closeQuietly(zipOutputStream);
+ } catch (Exception e) {
+ log.error("controller接口[FileInfoWebController.down]请求失败,异常信息:" + e, e);
throw new ClientException("FileInfoWebController.down", e);
}
}
/**
* ocr识别文字
- * @url {ctx}/api/web/fileInfo/recognitionText?ownerId=&ownerType=
+ *
* @param request
* @return Object
+ * @url {ctx}/api/web/fileInfo/recognitionText?ownerId=&ownerType=
*/
@PostMapping(value = "/recognitionText")
- public Object recognitionText(MultipartHttpServletRequest request){
- try{
- Map<String , Object> result = Maps.newHashMap();
+ public Object recognitionText(MultipartHttpServletRequest request) {
+ try {
+ Map<String, Object> result = Maps.newHashMap();
Iterator<String> itr = request.getFileNames();
while (itr.hasNext()) {
MultipartFile file = request.getFile(itr.next());
- try{
- Map<String , Object> map = BaiduOcrUtils.ocrText(file.getBytes());
+ try {
+ Map<String, Object> map = BaiduOcrUtils.ocrText(file.getBytes());
result.put("ocrResult", map);
- }catch (Exception e){
- log.error("Controller接口[FileInfoController.recognitionText]请求异常:"+e, e);
+ } catch (Exception e) {
+ log.error("Controller接口[FileInfoController.recognitionText]请求异常:" + e, e);
return ReturnFailUtils.getRepInfo("OCR失败!");
}
}
return ReturnSucUtils.getRepInfo("识别成功", result);
- }catch (Exception e){
+ } catch (Exception e) {
return ReturnFailUtils.getRepInfo(e.getMessage());
}
}
/**
* 查看附件组件-分类查询附件
- * @url {ctx}/api/web/fileInfo/listFileByCat
+ *
* @param mainId 所属业务主体编号
* @return Object
+ * @url {ctx}/api/web/fileInfo/listFileByCat
*/
@GetMapping("/listFileByCat")
public Object listFileByCat(@RequestParam(value = "mainId") String mainId, @CurrentUser String userId) {
- try{
+ try {
Map<String, Object> terms = Maps.newHashMap();
// 材料大类
String fileOwnerCat = request.getParameter("fileOwnerCat");
- if (StringUtils.isNotBlank(fileOwnerCat)){
+ if (StringUtils.isNotBlank(fileOwnerCat)) {
terms.put("ownerCat", fileOwnerCat);
}
// 上传时间区间
String createStart = request.getParameter("createStart");
String createEnd = request.getParameter("createEnd");
- if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+ if (StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
terms.put("createStart", createStart);
terms.put("createEnd", createEnd);
}
// 上传人类型
String uploaderType = request.getParameter("uploaderType");
- if (StringUtils.isNotBlank(uploaderType)){
+ if (StringUtils.isNotBlank(uploaderType)) {
terms.put("uploaderType", uploaderType);
}
// 所属主体编号
terms.put("mainId", mainId);
return ReturnSucUtils.getRepInfo(service.webListFileByCat(terms));
} catch (Exception e) {
- log.error("service方法[FileInfoWebController.listFileByCat]请求失败,异常信息:"+e, e);
+ log.error("service方法[FileInfoWebController.listFileByCat]请求失败,异常信息:" + e, e);
return ReturnFailUtils.getRepInfo();
}
}
/**
* 删除附件
- * @url {ctx}/api/web/fileInfo/deleteFileById?id=
- * @param id 附件编号
+ *
+ * @param ids 附件编号集合
* @return Object
+ * @url {ctx}/api/web/fileInfo/deleteFileById?id=
*/
+ @GetMapping("/deleteFileByIds")
+ public Object deleteFileByIds(@RequestParam(value = "ids") String ids) {
+ try {
+ String[] id = ids.split(",");
+ for (String s : id) {
+ service.deleteFileById(s);
+ }
+ return ReturnSucUtils.getRepInfo();
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
+
@GetMapping("/deleteFileById")
public Object deleteFileById(@RequestParam(value = "id") String id) {
try {
@@ -262,5 +309,30 @@
}
}
-
+ /**
+ * 根据多个所属编号查询附件并根据先根据ownerId再根据附件类型分组
+ *
+ * @return Object
+ * @url {ctx}/api/web/fileInfo/listIdTypeInfo
+ */
+ @PostMapping("/listIdTypeInfo")
+ public Object listIdTypeInfo(@RequestBody IdFileDTO idFileDTO) {
+ try {
+ Map<String, Object> term = new HashMap<>();
+ String ownerIds = idFileDTO.getOwnerIdList().stream().map(String::valueOf).collect(Collectors.joining("','"));
+ String types = idFileDTO.getTypeList().stream().map(String::valueOf).collect(Collectors.joining("','"));
+ if (StringUtils.isNotBlank(ownerIds)) {
+ ownerIds = "'" + ownerIds + "'";
+ }
+ if (StringUtils.isNotBlank(types)) {
+ types = "'" + types + "'";
+ }
+ term.put("ownerIds", ownerIds);
+ term.put("types", types);
+ term.put("mainId", idFileDTO.getMainId());
+ return ReturnSucUtils.getRepInfo(service.listIdTypeInfoByOwnerIdList(term));
+ } catch (Exception e) {
+ return ReturnFailUtils.getRepInfo();
+ }
+ }
}
--
Gitblit v1.8.0