Bladeren bron

feat: 文件列表查询功能开发

chenjianhua 6 maanden geleden
bovenliggende
commit
ac54e00ca9

+ 19 - 0
service-base/src/main/java/com/simuwang/base/common/conts/FileSourceType.java

@@ -0,0 +1,19 @@
+package com.simuwang.base.common.conts;
+
+/**
+ * FileName: FileSourceType
+ * Author:   chenjianhua
+ * Date:     2024/12/19 11:28
+ * Description: ${DESCRIPTION}
+ */
+public class FileSourceType {
+    /**
+     * 系统自动分类
+     */
+    public final static Integer SYSTEM_SOURCE = 0;
+
+    /**
+     * 人工分类
+     */
+    public final static Integer CUSTOM_SOURCE = 1;
+}

+ 1 - 1
service-base/src/main/java/com/simuwang/base/common/util/EmailUtil.java

@@ -241,7 +241,7 @@ public class EmailUtil {
         }
         for (Map.Entry<Integer, List<String>> emailTypeEntry : emailTypeMap.entrySet()) {
             for (String field : emailTypeEntry.getValue()) {
-                if (subject.contains(field)) {
+                if (StringUtil.isNotEmpty(field) && subject.contains(field)) {
                     return emailTypeEntry.getKey();
                 }
             }

+ 27 - 0
service-base/src/main/java/com/simuwang/base/mapper/daq/FileManageMapper.java

@@ -0,0 +1,27 @@
+package com.simuwang.base.mapper.daq;
+
+import com.simuwang.base.pojo.dos.FileManageDO;
+import com.simuwang.base.pojo.dto.query.FileManagePageQuery;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * FileName: FileManageMapper
+ * Author:   chenjianhua
+ * Date:     2024/12/18 17:18
+ * Description: ${DESCRIPTION}
+ */
+@Mapper
+public interface FileManageMapper {
+    FileManageDO getFileInfoByFileId(@Param("fileId") Integer fileId);
+
+    void saveFileManage(FileManageDO fileManageDO);
+
+    void updateFileManage(FileManageDO fileManageDO);
+
+    List<FileManageDO> searchFileManage(FileManagePageQuery fileManagePageQuery);
+
+    long countFileManage(FileManagePageQuery fileManagePageQuery);
+}

+ 102 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/FileManageDO.java

@@ -0,0 +1,102 @@
+package com.simuwang.base.pojo.dos;
+
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.pojo.vo.FileManageVO;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * FileName: FileManageDO
+ * Author:   chenjianhua
+ * Date:     2024/12/18 17:01
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class FileManageDO {
+    /**
+     * ID
+     */
+    private Integer id;
+    /**
+     * 文件ID
+     */
+    private Integer fileId;
+    /**
+     *  文件名称
+     */
+    private String fileName;
+    /**
+     *  文件路径
+     */
+    private String filePath;
+    /**
+     *  基金ID
+     */
+    private String fundId;
+    /**
+     *  基金名称
+     */
+    private String fundName;
+    /**
+     *  备案编码
+     */
+    private String registerNumber;
+    /**
+     * 公司ID
+     */
+    private String companyId;
+    /**
+     * 公司名称
+     */
+    private String companyName;
+    /**
+     *  文件日期
+     */
+    private Date fileDate;
+    /**
+     *  文件类别,1-净值规模,2-估值表,3-月度报告,4-季度报告,5-年度报告,6-基金合同,7分红公告,8-变更过公告
+     */
+    private Integer fileType;
+    /**
+     * 分类来源,0-系统分类,1-人工分类
+     */
+    private Integer sourceType;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     *  修改时间
+     */
+    private Date updateTime;
+    /**
+     *  创建人ID
+     */
+    private Integer creatorId;
+    /**
+     *  修改人ID
+     */
+    private Integer updaterId;
+    /**
+     *  有效标识,1-有效,0-无效
+     */
+    private Integer isvalid;
+
+    public FileManageVO toVO() {
+        FileManageVO vo = new FileManageVO();
+        vo.setId(id);
+        vo.setFileId(fileId);
+        vo.setFilePath(filePath);
+        vo.setFileName(fileName);
+        vo.setCompanyName(companyName);
+        vo.setCompanyId(companyId);
+        vo.setFileDate(DateUtils.format(fileDate,DateUtils.YYYY_MM_DD));
+        vo.setFundId(fundId);
+        vo.setFundName(fundName);
+        vo.setFileType(fileType);
+        vo.setSourceType(sourceType);
+        vo.setRegisterNumber(registerNumber);
+        return vo;
+    }
+}

+ 96 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/query/FileManagePageQuery.java

@@ -0,0 +1,96 @@
+package com.simuwang.base.pojo.dto.query;
+
+
+import com.simuwang.base.common.support.query.PageQuery;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/13 13:38
+ * @description 角色用户关联的分页接口请求参数
+ */
+public class FileManagePageQuery extends PageQuery {
+    /**
+     * 基金ID
+     */
+    private String fundId;
+    /**
+     * 基金名称
+     */
+    private String fundName;
+    /**
+     * 管理人名称
+     */
+    private String companyName;
+    /**
+     * 文件类型
+     */
+    private Integer fileType;
+    /**
+     * 文件名称
+     */
+    private String fileName;
+    /**
+     * 文件开始日期
+     */
+    private String startDate;
+    /**
+     * 文件结束日期
+     */
+    private String endDate;
+
+    public String getFundId() {
+        return fundId;
+    }
+
+    public void setFundId(String fundId) {
+        this.fundId = fundId;
+    }
+
+    public String getFundName() {
+        return fundName;
+    }
+
+    public void setFundName(String fundName) {
+        this.fundName = fundName;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public Integer getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(Integer fileType) {
+        this.fileType = fileType;
+    }
+
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+
+    public String getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
+}

+ 63 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/FileManageVO.java

@@ -0,0 +1,63 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * FileName: FileManageDO
+ * Author:   chenjianhua
+ * Date:     2024/12/18 17:01
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class FileManageVO {
+    /**
+     * ID
+     */
+    private Integer id;
+    /**
+     * 文件ID
+     */
+    private Integer fileId;
+    /**
+     *  文件名称
+     */
+    private String fileName;
+    /**
+     *  文件路径
+     */
+    private String filePath;
+    /**
+     *  基金ID
+     */
+    private String fundId;
+    /**
+     *  基金名称
+     */
+    private String fundName;
+    /**
+     *  备案编码
+     */
+    private String registerNumber;
+    /**
+     * 公司ID
+     */
+    private String companyId;
+    /**
+     * 公司名称
+     */
+    private String companyName;
+    /**
+     *  文件日期
+     */
+    private String fileDate;
+    /**
+     *  文件类别,1-净值规模,2-估值表,3-月度报告,4-季度报告,5-年度报告,6-基金合同,7分红公告,8-变更过公告
+     */
+    private Integer fileType;
+    /**
+     * 分类来源,0-系统分类,1-人工分类
+     */
+    private Integer sourceType;
+}

+ 100 - 0
service-base/src/main/resources/mapper/daq/FileManageMapper.xml

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.simuwang.base.mapper.daq.FileManageMapper">
+    <resultMap id="BaseResultMap" type="com.simuwang.base.pojo.dos.FileManageDO">
+        <id column="id" property="id"/>
+        <result column="file_id" property="fileId"/>
+        <result column="file_path" property="filePath"/>
+        <result column="file_name" property="fileName"/>
+        <result column="fund_id" property="fundId"/>
+        <result column="fund_name" property="fundName"/>
+        <result column="register_number" property="registerNumber"/>
+        <result column="company_id" property="companyId"/>
+        <result column="company_name" property="companyName"/>
+        <result column="file_date" property="fileDate"/>
+        <result column="file_type" property="fileType"/>
+        <result column="source_type" property="sourceType"/>
+        <result column="isvalid" property="isvalid"/>
+        <result column="creatorid" property="creatorId"/>
+        <result column="createtime" property="createTime"/>
+        <result column="updaterid" property="updaterId"/>
+        <result column="updatetime" property="updateTime"/>
+    </resultMap>
+    <insert id="saveFileManage" parameterType="com.simuwang.base.pojo.dos.FileManageDO">
+        insert into file_manage(source_type,file_id,file_path,file_name,fund_id,fund_name,register_number,file_date,file_type,isvalid,creatorid,updaterid,createtime,updatetime)
+        values (#{sourceType},#{fileId},#{filePath},#{fileName},#{fundId},#{fundName},#{registerNumber},#{fileDate},#{fileType},#{isvalid},#{creatorId},#{updaterId},#{createTime},#{updateTime})
+    </insert>
+    <update id="updateFileManage" parameterType="com.simuwang.base.pojo.dos.FileManageDO">
+        update file_manage set
+            file_path=#{filePath},file_name=#{fileName},fund_id=#{fundId},fund_name=#{fundName},register_number=#{registerNumber},file_type=#{fileType},updatetime=#{updateTime},source_type=#{sourceType}
+        where isvalid=1 and file_id=#{fileId}
+    </update>
+    <select id="getFileInfoByFileId" resultMap="BaseResultMap"
+            parameterType="java.lang.Integer">
+        select id,file_id,file_path,file_name,fund_id,fund_name,register_number,file_date,file_type,source_type,isvalid,creatorid,updaterid,createtime,updatetime
+        from file_manage where isvalid=1 and file_id=#{fileId}
+    </select>
+    <select id="searchFileManage" resultMap="BaseResultMap"
+            parameterType="com.simuwang.base.pojo.dto.query.FileManagePageQuery">
+        select f.id,f.file_id,f.file_path,f.file_name,f.fund_id,f.fund_name,f.register_number,f.file_date,f.file_type,f.source_type,
+               f.isvalid,f.creatorid,f.updaterid,f.createtime,f.updatetime,c.company_id,c.company_name
+        from file_manage f
+        left join pvn_fund_info fi on fi.fund_id = f.fund_id and fi.isvalid=1
+        left join pvn_company_info c on fi.trust_id=c.company_id and c.isvalid=1
+        where f.isvalid=1
+        <if test="fundId != null and fundId != ''">
+            and f.fund_id like concat('%',#{fundId},'%')
+        </if>
+        <if test="fundName != null and fundName != ''">
+            and (f.fund_name like concat('%',#{fundName},'%') or f.register_number like concat('%',#{fundName},'%'))
+        </if>
+        <if test="companyName != null and companyName != ''">
+            and (c.company_name like concat('%',#{companyName},'%') or c.register_number like concat('%',#{companyName},'%'))
+        </if>
+        <if test="fileType != null and fileType != ''">
+            and f.file_type=#{fileType}
+        </if>
+        <if test="fileName != null and fileName != ''">
+            and f.file_name=#{fileName}
+        </if>
+        <if test="startDate != null and startDate != ''">
+            and f.file_date <![CDATA[ >= ]]> #{startDate}
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and f.file_date <![CDATA[ <= ]]> #{endDate}
+        </if>
+        order by f.file_date desc
+        limit #{offset},#{pageSize}
+    </select>
+    <select id="countFileManage" resultType="java.lang.Long"
+            parameterType="com.simuwang.base.pojo.dto.query.FileManagePageQuery">
+        select count(f.id)
+        from file_manage f
+        left join pvn_fund_info fi on fi.fund_id = f.fund_id and fi.isvalid=1
+        left join pvn_company_info c on fi.trust_id=c.company_id and c.isvalid=1
+        where f.isvalid=1
+        <if test="fundId != null and fundId != ''">
+            and f.fund_id like concat('%',#{fundId},'%')
+        </if>
+        <if test="fundName != null and fundName != ''">
+            and (f.fund_name like concat('%',#{fundName},'%') or f.register_number like concat('%',#{fundName},'%'))
+        </if>
+        <if test="companyName != null and companyName != ''">
+            and (c.company_name like concat('%',#{companyName},'%') or c.register_number like concat('%',#{companyName},'%'))
+        </if>
+        <if test="fileType != null and fileType != ''">
+            and f.file_type=#{fileType}
+        </if>
+        <if test="fileName != null and fileName != ''">
+            and f.file_name=#{fileName}
+        </if>
+        <if test="startDate != null and startDate != ''">
+            and f.file_date <![CDATA[ >= ]]> #{startDate}
+        </if>
+        <if test="endDate != null and endDate != ''">
+            and f.file_date <![CDATA[ <= ]]> #{endDate}
+        </if>
+    </select>
+
+
+</mapper>

+ 62 - 3
service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

@@ -79,7 +79,7 @@ public class EmailParseService {
     private final FundPositionDetailMapper fundPositionDetailMapper;
     private final DistributionMapper distributionMapper;
     private final CompanyInformationMapper companyInformationMapper;
-    @Autowired
+    private final FileManageMapper fileManageMapper;
     private FundInfoMapper fundInfoMapper;
 
     @Value("${email.file.path}")
@@ -101,7 +101,7 @@ public class EmailParseService {
                              AssetMapper assetMapper, NavMapper navMapper, FundService fundService,
                              FundAliasMapper fundAliasMapper,
                              ValuationTableMapper valuationTableMapper, ValuationTableAttributeMapper valuationTableAttributeMapper,
-                             FundPositionDetailMapper fundPositionDetailMapper, DistributionMapper distributionMapper, CompanyInformationMapper companyInformationMapper) {
+                             FundPositionDetailMapper fundPositionDetailMapper, DistributionMapper distributionMapper, CompanyInformationMapper companyInformationMapper, FileManageMapper fileManageMapper, FundInfoMapper fundInfoMapper) {
         this.emailTypeRuleMapper = emailTypeRuleMapper;
         this.emailRuleConfig = emailRuleConfig;
         this.emailFieldMapper = emailFieldMapper;
@@ -121,6 +121,8 @@ public class EmailParseService {
         this.fundPositionDetailMapper = fundPositionDetailMapper;
         this.distributionMapper = distributionMapper;
         this.companyInformationMapper = companyInformationMapper;
+        this.fileManageMapper = fileManageMapper;
+        this.fundInfoMapper = fundInfoMapper;
     }
 
     /**
@@ -214,7 +216,6 @@ public class EmailParseService {
                 continue;
             }
             Integer fileId = saveEmailFileInfo(emailId, emailContentInfoDTO.getFileId(), fileName, emailContentInfoDTO.getFilePath(), parseDate);
-
             List<EmailFundNavDTO> fundNavDTOList = fileNameNavEntry.getValue();
             //记录采集表
             if(CollUtil.isNotEmpty(fundNavDTOList)){
@@ -243,6 +244,12 @@ public class EmailParseService {
                 // 设置净值数据的解析状态
                 setNavParseStatus(fundNavDTO, emailTitle);
             }
+            //需要写入到文件管理
+            try{
+                saveFileManage(fileId,emailType,emailContentInfoDTO,fundNavDTOList,parseDate);
+            }catch (Exception e){
+                log.error("保存文件管理信息报错:"+e.getMessage(),e);
+            }
             // 保存净值表和规模表
             saveNavAndAssetNet(fileId, fundNavDTOList, parseDate);
             saveValuationInfo(fileId, fundNavDTOList);
@@ -285,6 +292,58 @@ public class EmailParseService {
         emailParseInfoMapper.updateParseStatus(emailId, emailParseStatus, failReason);
     }
 
+    private void saveFileManage(Integer fileId,Integer emailType, EmailContentInfoDTO emailContentInfoDTO,List<EmailFundNavDTO> fundNavDTOList, Date parseDate) {
+        try{
+            //HTML不保存
+            if(ExcelUtil.isHTML(emailContentInfoDTO.getFilePath())){
+                return;
+            }
+            FileManageDO fileManageDO = new FileManageDO();
+            fileManageDO.setFileId(fileId);
+            fileManageDO.setFileType(emailType);
+            fileManageDO.setSourceType(FileSourceType.SYSTEM_SOURCE);
+            fileManageDO.setFileDate(parseDate);
+            fileManageDO.setFileName(emailContentInfoDTO.getFileName());
+            fileManageDO.setFilePath(emailContentInfoDTO.getFilePath());
+            fileManageDO.setCreateTime(DateUtils.getNowDate());
+            fileManageDO.setUpdateTime(DateUtils.getNowDate());
+            fileManageDO.setIsvalid(1);
+            if(CollUtil.isNotEmpty(fundNavDTOList)){
+                List<EmailFundNavDTO> fundIdNavList = fundNavDTOList.stream().filter(e -> CollUtil.isNotEmpty(e.getFundIdList())).collect(Collectors.toList());
+                if(CollUtil.isNotEmpty(fundIdNavList)){
+                    //取第一个有基金ID作为附件关联的基金
+                    String fundId = fundIdNavList.get(0).getFundIdList().get(0);
+                    fileManageDO.setFundId(fundId);
+                    FundInfoDO fundInfoDO = fundInfoMapper.searchFundDetail(fundId);
+                    fileManageDO.setRegisterNumber(fundInfoDO.getRegisterNumber());
+                    fileManageDO.setFundName(fundInfoDO.getFundName());
+                }else{
+                    //说明是未匹配基金或者存在数据缺失,取附件上的基金名称和备案编码
+                    List<EmailFundNavDTO> fundNameNavList = fundNavDTOList.stream().filter(e -> StringUtil.isNotEmpty(e.getFundName())).collect(Collectors.toList());
+                    if(CollUtil.isNotEmpty(fundNameNavList)){
+                        EmailFundNavDTO emailFundNavDTO = fundNameNavList.get(0);
+                        fileManageDO.setRegisterNumber(emailFundNavDTO.getRegisterNumber());
+                        fileManageDO.setFundName(emailFundNavDTO.getFundName());
+                    }else{
+                        List<EmailFundNavDTO> registerNumbereNavList = fundNavDTOList.stream().filter(e -> StringUtil.isNotEmpty(e.getRegisterNumber())).collect(Collectors.toList());
+                        if(CollUtil.isNotEmpty(registerNumbereNavList)){
+                            EmailFundNavDTO registerNumbereNav = registerNumbereNavList.get(0);
+                            fileManageDO.setRegisterNumber(registerNumbereNav.getRegisterNumber());
+                        }
+                    }
+                }
+            }
+            FileManageDO oldFileManageDO = fileManageMapper.getFileInfoByFileId(fileId);
+            if(oldFileManageDO == null){
+                fileManageMapper.saveFileManage(fileManageDO);
+            }else{
+                fileManageMapper.updateFileManage(fileManageDO);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
+        }
+    }
+
     private void batchSaveEmailFundNavCollection(List<EmailFundNavCollectionDO> emailFundNavCollectionVOList) {
         //过滤空数据
         emailFundNavCollectionVOList = emailFundNavCollectionVOList.stream().filter(e -> (StringUtil.isNotEmpty(e.getNav())||

+ 55 - 0
service-manage/src/main/java/com/simuwang/manage/api/file/FileManageController.java

@@ -0,0 +1,55 @@
+package com.simuwang.manage.api.file;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dos.FileManageDO;
+import com.simuwang.base.pojo.dto.query.FileManagePageQuery;
+import com.simuwang.base.pojo.vo.FileManageVO;
+import com.simuwang.logging.SystemLog;
+import com.simuwang.manage.service.FileMangeService;
+import com.smppw.common.pojo.ResultVo;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * FileName: FileManageController
+ * Author:   chenjianhua
+ * Date:     2024/12/19 13:57
+ * Description: ${DESCRIPTION}
+ */
+@SystemLog(value = "基金别名管理")
+@RestController
+@RequestMapping("/v1/file-manage")
+public class FileManageController {
+
+    @Autowired
+    private FileMangeService fileMangeService;
+    /**
+     * 文件管理列表查询
+     * @param fileManagePageQuery
+     * @return
+     */
+    @SystemLog(value = "文件管理列表")
+    @GetMapping("/list")
+    public MybatisPage<FileManageVO> searchFileManage(FileManagePageQuery fileManagePageQuery){
+        MybatisPage<FileManageVO> result = fileMangeService.searchFileManage(fileManagePageQuery);
+        return result;
+    }
+
+    /**
+     * 上传文件
+     *
+     * @param file
+     * @return
+     */
+    @SystemLog(value = "上传文件", type = SystemLog.Type.UPLOAD_OR_IMPORT)
+    @PostMapping("upload-file")
+    public ResultVo uploadFile(@RequestPart(value = "file") MultipartFile file,
+                                       @RequestParam("fundId") String fundId,
+                                       @RequestParam("fileType") String fileType,
+                                       @RequestParam("fileDate") String fileDate) {
+        ResultVo vo = fileMangeService.uploadFile(file,fundId, fileType,fileDate);
+        return vo;
+    }
+}

+ 19 - 0
service-manage/src/main/java/com/simuwang/manage/service/FileMangeService.java

@@ -0,0 +1,19 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.pojo.dto.query.FileManagePageQuery;
+import com.simuwang.base.pojo.vo.FileManageVO;
+import com.smppw.common.pojo.ResultVo;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * FileName: FileMangeService
+ * Author:   chenjianhua
+ * Date:     2024/12/19 14:03
+ * Description: ${DESCRIPTION}
+ */
+public interface FileMangeService {
+    MybatisPage<FileManageVO> searchFileManage(FileManagePageQuery fileManagePageQuery);
+
+    ResultVo uploadFile(MultipartFile file, String fundId, String fileType, String fileDate);
+}

+ 41 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/FileMangeServiceImpl.java

@@ -0,0 +1,41 @@
+package com.simuwang.manage.service.impl;
+
+import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.mapper.daq.FileManageMapper;
+import com.simuwang.base.pojo.dos.FileManageDO;
+import com.simuwang.base.pojo.dto.query.FileManagePageQuery;
+import com.simuwang.base.pojo.vo.FileManageVO;
+import com.simuwang.manage.service.FileMangeService;
+import com.smppw.common.pojo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * FileName: FileMangeServiceImpl
+ * Author:   chenjianhua
+ * Date:     2024/12/19 14:03
+ * Description: ${DESCRIPTION}
+ */
+@Service
+public class FileMangeServiceImpl implements FileMangeService {
+
+    @Autowired
+    private FileManageMapper fileManageMapper;
+
+    @Override
+    public MybatisPage<FileManageVO> searchFileManage(FileManagePageQuery fileManagePageQuery) {
+        List<FileManageDO> fileManageDOList = fileManageMapper.searchFileManage(fileManagePageQuery);
+        List<FileManageVO> fileManageVOList = fileManageDOList.stream().map(FileManageDO::toVO).collect(Collectors.toList());
+        long total = fileManageMapper.countFileManage(fileManagePageQuery);
+        return MybatisPage.of(total,fileManageVOList);
+    }
+
+    @Override
+    public ResultVo uploadFile(MultipartFile file, String fundId, String fileType, String fileDate) {
+        return null;
+    }
+}