forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-02 c8d79abfc012de3d5cd6749866067b04613276c8
dyh-service/dyh-sys/src/main/java/cn/huge/module/file/controller/web/FileInfoWebController.java
@@ -1,6 +1,8 @@
package cn.huge.module.file.controller.web;
import cn.huge.base.common.exception.ClientException;
import cn.huge.module.sys.dto.IdcardOcrResultDTO;
import cn.huge.module.utils.BaiduOcrUtils;
import cn.huge.base.common.utils.ContentTypeUtils;
import cn.huge.base.common.utils.ReturnFailUtils;
import cn.huge.base.common.utils.ReturnSucUtils;
@@ -23,9 +25,6 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -39,8 +38,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @title: 附件信息表接口api-web端
@@ -102,6 +99,12 @@
                        FileInfo fileInfo = service.webUploadFile(file, mainId, ownerId, ownerType, fileCount, uploaderDTO);
                        FileInfoBaseDTO fileInfoBaseDTO = new FileInfoBaseDTO();
                        BeanUtils.copyProperties(fileInfo, fileInfoBaseDTO);
                        // 如果是身份证,就调用ocr识别
                        if (FileOwnerTypeBaseEnum.OWNER_TYPE_202.getIndex().equals(ownerType)){
                            fileInfoBaseDTO.setIdcardOcrResult(BaiduOcrUtils.ocrIdcard(file.getBytes()));
                        }
                        files.add(fileInfoBaseDTO);
                        fileCount++;
                    } else {
@@ -116,7 +119,7 @@
    }
    /**
     * 在线查附件
     * 在线查附件-文件流方式
     * @url {ctx}/api/web/fileInfo/show/{id}
     * @param id 附件编号
     * @param response 响应头
@@ -149,7 +152,7 @@
            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);
        }
    }
@@ -176,12 +179,62 @@
            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);
        }
    }
    /**
     * 查看附件组件-分类查询附件
     * @url {ctx}/api/web/fileInfo/listFileByCat
     * @param mainId 所属业务主体编号
     * @return Object
     */
    @GetMapping("/listFileByCat")
    public Object listFileByCat(@RequestParam(value = "mainId") String mainId, @CurrentUser String userId) {
        try{
            Map<String, Object> terms = Maps.newHashMap();
            // 材料大类
            String fileOwnerCat = request.getParameter("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)) {
                terms.put("createStart", createStart);
                terms.put("createEnd", createEnd);
            }
            // 上传人类型
            String uploaderType = request.getParameter("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);
            return ReturnFailUtils.getRepInfo();
        }
    }
    /**
     * 删除附件
     * @url {ctx}/api/web/fileInfo/deleteFileById?id=
     * @param id 附件编号
     * @return Object
     */
    @GetMapping("/deleteFileById")
    public Object deleteFileById(@RequestParam(value = "id") String id) {
        try {
            service.deleteFileById(id);
            return ReturnSucUtils.getRepInfo();
        } catch (Exception e) {
            return ReturnFailUtils.getRepInfo();
        }
    }
}