Browse Source

项目管理

suntianwu 2 years ago
parent
commit
1c5c8f0ff2

+ 0 - 1
purchase-admin/src/main/java/com/ozs/web/controller/pm/PmDemandController.java

@@ -12,7 +12,6 @@ import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.service.IPmDemandService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.poi.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.PostMapping;

+ 2 - 2
purchase-admin/src/main/java/com/ozs/web/controller/pm/PmPurchaseExecutionController.java

@@ -85,7 +85,7 @@ public class PmPurchaseExecutionController extends BaseController {
         }
         LambdaQueryWrapper<BaseAgency> lw = new LambdaQueryWrapper<>();
         lw.eq(BaseAgency::getCompanyType,pmDemand.getProjectType());
-        lw.eq(BaseAgency::getStatus,0);
+        lw.eq(BaseAgency::getStatus,0);//白名单
         List<BaseAgency> agencyList = baseAgencyService.list(lw);
         return success(agencyList);
     }
@@ -132,7 +132,7 @@ public class PmPurchaseExecutionController extends BaseController {
         }
         LambdaQueryWrapper<BaseAgency> lw = new LambdaQueryWrapper<>();
         lw.eq(BaseAgency::getCompanyType,pmDemand.getProjectType());
-        lw.eq(BaseAgency::getStatus,0);
+        lw.eq(BaseAgency::getStatus,0); //白名单
         List<BaseAgency> baseAgencyList = baseAgencyService.list(lw);
         if (ObjectUtils.isEmpty(baseAgencyList)){
             return error("没有符合的招标代理机构,抽取失败!");

+ 5 - 4
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmBidFailureResVo.java

@@ -3,12 +3,13 @@ package com.ozs.pm.doman.vo.responseVo;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.HashMap;
+import java.util.List;
 
 /**
  * 流标基本情况表(PmBidFailure)实体类
@@ -52,8 +53,8 @@ public class PmBidFailureResVo implements Serializable {
     private Date updateTime;
 
     /**
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 }

+ 4 - 5
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmBidWinningResVo.java

@@ -2,14 +2,13 @@ package com.ozs.pm.doman.vo.responseVo;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -65,8 +64,8 @@ public class PmBidWinningResVo implements Serializable {
     private List<Long> pmBidOpeningIdList;
 
     /**
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 }

+ 4 - 5
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmBookBuildingResVo.java

@@ -2,13 +2,12 @@ package com.ozs.pm.doman.vo.responseVo;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 
@@ -44,10 +43,10 @@ public class PmBookBuildingResVo
 
 
     /**
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 
 
     @ApiModelProperty("创建者")

+ 5 - 5
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmContractInfoResVo.java

@@ -2,13 +2,14 @@ package com.ozs.pm.doman.vo.responseVo;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.HashMap;
+import java.util.List;
 
 
 /**
@@ -65,10 +66,9 @@ public class PmContractInfoResVo implements Serializable {
     @ApiModelProperty("更新时间")
     private Date updateTime;
 
-
     /**
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 }

+ 14 - 10
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandResVo.java

@@ -3,6 +3,7 @@ package com.ozs.pm.doman.vo.responseVo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.annotation.Excel;
 import com.ozs.common.core.domain.BaseEntity;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -12,7 +13,7 @@ import lombok.NoArgsConstructor;
 
 
 import java.util.Date;
-import java.util.HashMap;
+import java.util.List;
 
 /**
  * 采购需求对象 pm_demand
@@ -218,23 +219,26 @@ public class PmDemandResVo extends BaseEntity
     @ApiModelProperty("项目建设对象")
     private  PmProjectConstructionResVo pmProjectConstructionResVo;
 
+
     /**
-     * 采购需求附件
+     * 采购需求的已上传的关联附件信息
      */
-    @ApiModelProperty("采购需求附件")
-    HashMap<String, String> demandFileMap;
+    @ApiModelProperty("采购需求的已上传的关联附件信息")
+    private List<SysFileInfo>demandFileInfos;
+
 
     /**
-     * 采购需求审核文件
+     * 采购需求审核的已上传的关联附件信息
      */
-    @ApiModelProperty("采购需求审核文件")
-    HashMap<String, String> auditFileMap;
+    @ApiModelProperty("采购需求审核的已上传的关联附件信息")
+    private List<SysFileInfo> auditFileInfos;
 
     /**
-     * 任务下达文件
+     * 任务下达的已上传的关联附件信息
      */
-    @ApiModelProperty("任务下达文件")
-    HashMap<String, String> taskReleaseFileMap;
+    @ApiModelProperty("任务下达的已上传的关联附件信息")
+    private List<SysFileInfo> taskReleaseFileInfos;
+
     /**
      * 待办事项提示信息
      */

+ 5 - 6
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmFlowChartResVo.java

@@ -1,7 +1,7 @@
 package com.ozs.pm.doman.vo.responseVo;
 
 import com.ozs.common.annotation.Excel;
-import com.ozs.common.core.domain.BaseEntity;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -9,7 +9,6 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -46,10 +45,10 @@ public class PmFlowChartResVo
     @ApiModelProperty("提示文案")
     private String promptWords;
 
+
     /**
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
-
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 }

+ 5 - 5
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmProjectConstructionResVo.java

@@ -2,13 +2,12 @@ package com.ozs.pm.doman.vo.responseVo;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -61,9 +60,10 @@ public class PmProjectConstructionResVo implements Serializable {
     @ApiModelProperty("更新时间")
     private Date updateTime;
 
+
     /**
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 }

+ 10 - 8
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmPurchaseExecutionResVo.java

@@ -2,7 +2,7 @@ package com.ozs.pm.doman.vo.responseVo;
 
 
 import com.ozs.base.domain.BaseAgency;
-import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -44,23 +44,25 @@ public class PmPurchaseExecutionResVo {
 
     @ApiModelProperty("中标信息列表")
     private List<PmBidWinningResVo> pmBidWinningResVoList;
+
     /**
-     *
      * 质疑情况附件
      */
     @ApiModelProperty("质疑情况附件")
-    HashMap<String, String> callRequestFileMap;
+    private List<SysFileInfo> callRequestFileInfos;
 
     @ApiModelProperty("流标信息列表")
     private List<PmBidFailureResVo> pmBidFailureResVoList;
 
+    /**
+     * 中标通知书
+     */
     @ApiModelProperty("中标通知书")
-    HashMap<String, String> pmBidWinningNotificationFileMap;
+    private List<SysFileInfo> pmBidWinningNotificationFileInfos;
 
     /**
-     *
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 }

+ 5 - 5
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmReleaseAnnouncementResVo.java

@@ -3,14 +3,13 @@ package com.ozs.pm.doman.vo.responseVo;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ozs.system.domain.SysFileRef;
+import com.ozs.system.domain.SysFileInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 
 
@@ -75,9 +74,10 @@ public class PmReleaseAnnouncementResVo implements Serializable {
     @ApiModelProperty("更新时间")
     private Date updateTime;
 
+
     /**
-     * 上传附件的URL
+     * 已上传的关联附件信息
      */
-    @ApiModelProperty("上传附件的URL")
-    HashMap<String, String> fileMap;
+    @ApiModelProperty("已上传的关联附件信息")
+    private List<SysFileInfo> fileInfos;
 }

+ 82 - 81
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -128,9 +128,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 }
 
                 //采购需求附件
-                HashMap<String, String> demandFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND.getType());
-                if(demandFileMap != null){
-                    vo.setDemandFileMap(demandFileMap);
+                List<SysFileInfo> demandFileInfos = getSysFileInfoList(vo.getDemandId(),SysFileRefEnum.PM_DEMAND.getType());
+                if(!ObjectUtils.isEmpty(demandFileInfos)){
+                    vo.setDemandFileInfos(demandFileInfos);
                 }
 
                 //项目类型
@@ -181,9 +181,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             } else if("2".equals(detailType)) { //需求建档
 
                 //采购需求审核文件
-                HashMap<String, String> auditFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
-                if(auditFileMap != null){
-                    vo.setAuditFileMap(auditFileMap);
+                List<SysFileInfo> auditFileInfos = getSysFileInfoList(vo.getDemandId(),SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
+                if(!ObjectUtils.isEmpty(auditFileInfos)){
+                    vo.setAuditFileInfos(auditFileInfos);
                 }
 
                 LambdaQueryWrapper<PmBookBuilding> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -193,18 +193,17 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     PmBookBuildingResVo responseVo = new PmBookBuildingResVo();
                     BeanUtils.copyProperties(pmBookBuilding,responseVo);
 
-                    HashMap<String, String> fileMap1 = getFileMap(demandId,SysFileRefEnum.PM_BOOK_BUILDING.getType());
-                    if(fileMap1 != null){
-                        responseVo.setFileMap(fileMap1);
+                    List<SysFileInfo> fileInfos = getSysFileInfoList(pmBookBuilding.getId(),SysFileRefEnum.PM_BOOK_BUILDING.getType());
+                    if(!ObjectUtils.isEmpty(fileInfos)){
+                        responseVo.setFileInfos(fileInfos);
                     }
-
                     vo.setPmBookBuildingResVo(responseVo);
                 }
             } else if("3".equals(detailType)) { //任务下达
                 //任务下达文件
-                HashMap<String, String> taskReleaseFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_TAST_RELEASE.getType());
-                if(taskReleaseFileMap != null){
-                    vo.setTaskReleaseFileMap(taskReleaseFileMap);
+                List<SysFileInfo> taskReleaseFileInfos = getSysFileInfoList(vo.getDemandId(),SysFileRefEnum.PM_TAST_RELEASE.getType());
+                if(!ObjectUtils.isEmpty(taskReleaseFileInfos)){
+                    vo.setTaskReleaseFileInfos(taskReleaseFileInfos);
                 }
             } else if("4".equals(detailType)) { //中标信息
                 PmPurchaseExecutionResVo pmPurchaseExecutionResVo = new PmPurchaseExecutionResVo();
@@ -222,9 +221,10 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     for (PmReleaseAnnouncement pmReleaseAnnouncement : pmReleaseAnnouncementList) {
                         PmReleaseAnnouncementResVo pmReleaseAnnouncementResVo = new PmReleaseAnnouncementResVo();
                         BeanUtils.copyProperties(pmReleaseAnnouncement,pmReleaseAnnouncementResVo);
-                        HashMap<String, String> fileMap = getFileMap(pmReleaseAnnouncement.getId(),SysFileRefEnum.PM_ANNOUNCEMENT_FILE.getType());
-                        if(fileMap != null){
-                            pmReleaseAnnouncementResVo.setFileMap(fileMap);
+
+                        List<SysFileInfo> fileInfos = getSysFileInfoList(pmReleaseAnnouncement.getId(),SysFileRefEnum.PM_ANNOUNCEMENT_FILE.getType());
+                        if(!ObjectUtils.isEmpty(fileInfos)){
+                            pmReleaseAnnouncementResVo.setFileInfos(fileInfos);
                         }
                         pmReleaseAnnouncementResVoList.add(pmReleaseAnnouncementResVo);
                     }
@@ -248,9 +248,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     for(PmBidWinning pmBidWinning : pmBidWinningList) {
                         PmBidWinningResVo pmBidWinningResVo = new PmBidWinningResVo();
                         BeanUtils.copyProperties(pmBidWinning, pmBidWinningResVo);
-                        HashMap<String, String> fileMap = getFileMap(pmBidWinning.getId(),SysFileRefEnum.PM_BID_WINNING_FILE.getType());
-                        if(fileMap != null){
-                            pmBidWinningResVo.setFileMap(fileMap);
+                        List<SysFileInfo> fileInfos = getSysFileInfoList(pmBidWinning.getId(),SysFileRefEnum.PM_BID_WINNING_FILE.getType());
+                        if(!ObjectUtils.isEmpty(fileInfos)){
+                            pmBidWinningResVo.setFileInfos(fileInfos);
                         }
                         pmBidWinningResVoList.add(pmBidWinningResVo);
                     }
@@ -258,11 +258,10 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 }
 
                 //质疑情况
-                HashMap<String, String> callRequestFileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_CALL_QEUSTION_FILE.getType());
-                if(callRequestFileMap != null){
-                    pmPurchaseExecutionResVo.setCallRequestFileMap(callRequestFileMap);
+                List<SysFileInfo> callRequestFileInfos = getSysFileInfoList(vo.getDemandId(),SysFileRefEnum.PM_BID_CALL_QEUSTION_FILE.getType());
+                if(!ObjectUtils.isEmpty(callRequestFileInfos)){
+                    pmPurchaseExecutionResVo.setCallRequestFileInfos(callRequestFileInfos);
                 }
-
                 //流标情况
                 LambdaQueryWrapper<PmBidFailure> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
                 lambdaQueryWrapper2.eq(PmBidFailure::getDemandId,demandId).orderByDesc(PmBidFailure::getBidFailureTime);
@@ -272,9 +271,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     for(PmBidFailure pmBidFailure : pmBidFailureList) {
                         PmBidFailureResVo pmBidFailureResVo = new PmBidFailureResVo();
                         BeanUtils.copyProperties(pmBidFailure, pmBidFailureResVo);
-                        HashMap<String, String> fileMap = getFileMap(pmBidFailure.getId(),SysFileRefEnum.PM_BID_FAILURE_FILE.getType());
-                        if(fileMap != null){
-                            pmBidFailureResVo.setFileMap(fileMap);
+                        List<SysFileInfo> fileInfos = getSysFileInfoList(pmBidFailure.getId(),SysFileRefEnum.PM_BID_FAILURE_FILE.getType());
+                        if(!ObjectUtils.isEmpty(fileInfos)){
+                            pmPurchaseExecutionResVo.setFileInfos(fileInfos);
                         }
                         pmBidFailureResVoList.add(pmBidFailureResVo);
                     }
@@ -282,9 +281,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 }
 
                 //中标通知书
-                HashMap<String, String> pmBidWinningNotificationFileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_WINNING_NOTIFICATION.getType());
-                if(pmBidWinningNotificationFileMap != null){
-                    pmPurchaseExecutionResVo.setPmBidWinningNotificationFileMap(pmBidWinningNotificationFileMap);
+                List<SysFileInfo> pmBidWinningNotificationFileInfos = getSysFileInfoList(vo.getDemandId(),SysFileRefEnum.PM_BID_WINNING_NOTIFICATION.getType());
+                if(!ObjectUtils.isEmpty(pmBidWinningNotificationFileInfos)){
+                    pmPurchaseExecutionResVo.setPmBidWinningNotificationFileInfos(pmBidWinningNotificationFileInfos);
                 }
 
                 vo.setPmPurchaseExecutionResVo(pmPurchaseExecutionResVo);
@@ -298,9 +297,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     BeanUtils.copyProperties(pmContractInfo,pmContractInfoResVo);
 
                      //合同信息文件
-                    HashMap<String, String> pmContractInfoFileMap = getFileMap(pmContractInfo.getId(),SysFileRefEnum.PM_CONTRACT_INFO.getType());
-                    if(pmContractInfoFileMap != null){
-                        pmContractInfoResVo.setFileMap(pmContractInfoFileMap);
+                    List<SysFileInfo> fileInfos = getSysFileInfoList(pmContractInfo.getId(),SysFileRefEnum.PM_CONTRACT_INFO.getType());
+                    if(!ObjectUtils.isEmpty(fileInfos)){
+                        pmContractInfoResVo.setFileInfos(fileInfos);
                     }
                     vo.setPmContractInfoResVo(pmContractInfoResVo);
                 }
@@ -313,9 +312,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     BeanUtils.copyProperties(pmProjectConstruction,pmProjectConstructionResVo);
 
                     //建设情况文件
-                    HashMap<String, String> projectConstructionFileMap = getFileMap(pmProjectConstruction.getId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
-                    if(projectConstructionFileMap != null){
-                        pmProjectConstructionResVo.setFileMap(projectConstructionFileMap);
+                    List<SysFileInfo> fileInfos = getSysFileInfoList(pmProjectConstruction.getId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
+                    if(!ObjectUtils.isEmpty(fileInfos)){
+                        pmProjectConstructionResVo.setFileInfos(fileInfos);
                     }
                     vo.setPmProjectConstructionResVo(pmProjectConstructionResVo);
                 }
@@ -422,18 +421,19 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
 
     }
 
-    private HashMap<String, String> getFileMap(Long redId,Integer type){
+    private List<SysFileInfo> getSysFileInfoList(Long redId,Integer type){
         HashMap<String, Object> map = new HashMap<>();
         map.put("red_id", redId);
         map.put("type", type);
         List<SysFileRef> fileRefs = sysFileRefService.listByMap(map);
         if (!ObjectUtils.isEmpty(fileRefs)) {
-            HashMap<String, String> fileMap = new HashMap<>();
+            List<SysFileInfo> fileInfos = new ArrayList<>();
             for (SysFileRef ref : fileRefs) {
                 SysFileInfo fileInfo = fileService.getById(ref.getFileId());
-                fileMap.put(fileInfo.getFileUrl(), fileInfo.getFileName());
+                fileInfos.add(fileInfo);
             }
-            return fileMap;
+
+            return fileInfos;
         } else {
             return null;
         }
@@ -495,52 +495,53 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         BeanUtils.copyProperties(pmFlowChart, vo);
 
         if("需求填制".equals(moduleName)) {
-            HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_DEMAND.getType());
-            if(fileMap != null){
-                vo.setFileMap(fileMap);
+            List<SysFileInfo> fileInfos = getSysFileInfoList(demandId,SysFileRefEnum.PM_DEMAND.getType());
+            if(!ObjectUtils.isEmpty(fileInfos)){
+                vo.setFileInfos(fileInfos);
             }
         } else if("需求提交".equals(moduleName)) {
             LambdaQueryWrapper<PmBookBuilding> pmBookBuildingLambdaQueryWrapper = new LambdaQueryWrapper<>();
             pmBookBuildingLambdaQueryWrapper.eq(PmBookBuilding::getDemandId,demandId);
             PmBookBuilding pmBookBuilding = pmBookBuildingService.getOne(pmBookBuildingLambdaQueryWrapper);
             if(pmBookBuilding != null){
-                HashMap<String, String> fileMap = getFileMap(pmBookBuilding.getId(),SysFileRefEnum.PM_BOOK_BUILDING.getType());
-                if(fileMap != null){
-                    vo.setFileMap(fileMap);
+                List<SysFileInfo> fileInfos = getSysFileInfoList(pmBookBuilding.getId(),SysFileRefEnum.PM_BOOK_BUILDING.getType());
+                if(!ObjectUtils.isEmpty(fileInfos)){
+                    vo.setFileInfos(fileInfos);
                 }
             }
 
         } else if("需求审核".equals(moduleName)) {
-            HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
-            if(fileMap != null){
-                vo.setFileMap(fileMap);
+            List<SysFileInfo> fileInfos = getSysFileInfoList(demandId,SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
+            if(!ObjectUtils.isEmpty(fileInfos)){
+                vo.setFileInfos(fileInfos);
             }
         } else if("任务下达".equals(moduleName)) {
-            HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_TAST_RELEASE.getType());
-            if(fileMap != null){
-                vo.setFileMap(fileMap);
+            List<SysFileInfo> fileInfos = getSysFileInfoList(demandId,SysFileRefEnum.PM_TAST_RELEASE.getType());
+            if(!ObjectUtils.isEmpty(fileInfos)){
+                vo.setFileInfos(fileInfos);
             }
         } else if("选取代理".equals(moduleName)) {
            //do nothing
         } else if("上传招标文件".equals(moduleName)) {
-            HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_FILE.getType());
-            if(fileMap != null){
-                vo.setFileMap(fileMap);
+            List<SysFileInfo> fileInfos = getSysFileInfoList(demandId,SysFileRefEnum.PM_BID_FILE.getType());
+            if(!ObjectUtils.isEmpty(fileInfos)){
+                vo.setFileInfos(fileInfos);
             }
         } else if("发布公告".equals(moduleName)) {
             LambdaQueryWrapper<PmReleaseAnnouncement> pmReleaseAnnouncementLambdaQueryWrapper = new LambdaQueryWrapper<>();
             pmReleaseAnnouncementLambdaQueryWrapper.eq(PmReleaseAnnouncement::getDemandId,demandId);
             List<PmReleaseAnnouncement> pmReleaseAnnouncementList = pmReleaseAnnouncementService.list(pmReleaseAnnouncementLambdaQueryWrapper);
             if(!ObjectUtils.isEmpty(pmReleaseAnnouncementList)) {
-                HashMap<String, String> fileMapAll = new HashMap<>();
+                List<SysFileInfo> listAll = new ArrayList<>();
                 for(PmReleaseAnnouncement pmReleaseAnnouncement :pmReleaseAnnouncementList ){
-                    HashMap<String, String> fileMap = getFileMap(pmReleaseAnnouncement.getId(), SysFileRefEnum.PM_ANNOUNCEMENT_FILE.getType());
-                    if(!ObjectUtils.isEmpty(fileMap)){
-                        fileMap.forEach((k, v) -> fileMapAll.merge(k, v, (v1, v2) -> v2));
+
+                    List<SysFileInfo> fileInfos = getSysFileInfoList(pmReleaseAnnouncement.getId(),SysFileRefEnum.PM_ANNOUNCEMENT_FILE.getType());
+                    if(!ObjectUtils.isEmpty(fileInfos)){
+                        listAll.addAll(fileInfos);
                     }
                 }
-                if (fileMapAll != null) {
-                    vo.setFileMap(fileMapAll);
+                if (!ObjectUtils.isEmpty(listAll)) {
+                    vo.setFileInfos(listAll);
                 }
             }
         } else if("填写专家信息".equals(moduleName)) {
@@ -548,16 +549,16 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         } else if("填写开标信息".equals(moduleName)) {
             //do nothing
         } else if("填写中标信息".equals(moduleName)) {
-            HashMap<String, String> fileMapAll = new HashMap<>();
+            List<SysFileInfo> listAll = new ArrayList<>();
 
             LambdaQueryWrapper<PmBidWinning> pmBidWinningLambdaQueryWrapper = new LambdaQueryWrapper<>();
             pmBidWinningLambdaQueryWrapper.eq(PmBidWinning::getDemandId,demandId);
             List<PmBidWinning> pmBidWinningList = pmBidWinningService.list(pmBidWinningLambdaQueryWrapper);
             if(!ObjectUtils.isEmpty(pmBidWinningList)) {
                 for(PmBidWinning pmBidWinning : pmBidWinningList) {
-                    HashMap<String, String> fileMap = getFileMap(pmBidWinning.getId(),SysFileRefEnum.PM_BID_WINNING_FILE.getType());
-                    if(!ObjectUtils.isEmpty(fileMap)){
-                        fileMap.forEach((k, v) -> fileMapAll.merge(k, v, (v1, v2) -> v2));
+                    List<SysFileInfo> fileInfos = getSysFileInfoList(pmBidWinning.getId(),SysFileRefEnum.PM_BID_WINNING_FILE.getType());
+                    if(!ObjectUtils.isEmpty(fileInfos)){
+                        listAll.addAll(fileInfos);
                     }
                 }
             }
@@ -567,35 +568,35 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             List<PmBidFailure> pmBidFailureList = pmBidFailureService.list(pmBidFailureLambdaQueryWrapper);
             if(!ObjectUtils.isEmpty(pmBidFailureService)) {
                 for(PmBidFailure pmBidFailure : pmBidFailureList) {
-                    HashMap<String, String> fileMap = getFileMap(pmBidFailure.getId(),SysFileRefEnum.PM_BID_FAILURE_FILE.getType());
-                    if(!ObjectUtils.isEmpty(fileMap)){
-                        fileMap.forEach((k, v) -> fileMapAll.merge(k, v, (v1, v2) -> v2));
+                    List<SysFileInfo> fileInfos = getSysFileInfoList(pmBidFailure.getId(),SysFileRefEnum.PM_BID_FAILURE_FILE.getType());
+                    if(!ObjectUtils.isEmpty(fileInfos)){
+                        listAll.addAll(fileInfos);
                     }
                 }
             }
 
-            if(!ObjectUtils.isEmpty(fileMapAll)){
-                vo.setFileMap(fileMapAll);
+            if(!ObjectUtils.isEmpty(listAll)){
+                vo.setFileInfos(listAll);
             }
 
         } else if("质疑处理".equals(moduleName)) {
-            HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_CALL_QEUSTION_FILE.getType());
-            if(fileMap != null){
-                vo.setFileMap(fileMap);
+            List<SysFileInfo> fileInfos = getSysFileInfoList(demandId,SysFileRefEnum.PM_BID_CALL_QEUSTION_FILE.getType());
+            if(!ObjectUtils.isEmpty(fileInfos)){
+                vo.setFileInfos(fileInfos);
             }
         } else if("上传中标通知书".equals(moduleName)) {
-            HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_WINNING_NOTIFICATION.getType());
-            if(fileMap != null){
-                vo.setFileMap(fileMap);
+            List<SysFileInfo> fileInfos = getSysFileInfoList(demandId,SysFileRefEnum.PM_BID_WINNING_NOTIFICATION.getType());
+            if(!ObjectUtils.isEmpty(fileInfos)){
+                vo.setFileInfos(fileInfos);
             }
         } else if("合同填制".equals(moduleName)) {
             LambdaQueryWrapper<PmContractInfo> pmContractInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             pmContractInfoLambdaQueryWrapper.eq(PmContractInfo::getDemandId,demandId);
             PmContractInfo pmContractInfo = pmContractInfoService.getOne(pmContractInfoLambdaQueryWrapper);
             if(pmContractInfo != null){
-                HashMap<String, String> fileMap = getFileMap(pmContractInfo.getId(),SysFileRefEnum.PM_CONTRACT_INFO.getType());
-                if(fileMap != null){
-                    vo.setFileMap(fileMap);
+                List<SysFileInfo> fileInfos = getSysFileInfoList(pmContractInfo.getId(),SysFileRefEnum.PM_CONTRACT_INFO.getType());
+                if(!ObjectUtils.isEmpty(fileInfos)){
+                    vo.setFileInfos(fileInfos);
                 }
             }
 
@@ -604,9 +605,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             pmProjectConstructionLambdaQueryWrapper.eq(PmProjectConstruction::getDemandId,demandId);
             PmProjectConstruction pmProjectConstruction = pmProjectConstructionService.getOne(pmProjectConstructionLambdaQueryWrapper);
             if(pmProjectConstruction != null){
-                HashMap<String, String> fileMap = getFileMap(pmProjectConstruction.getId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
-                if(fileMap != null){
-                    vo.setFileMap(fileMap);
+                List<SysFileInfo> fileInfos = getSysFileInfoList(pmProjectConstruction.getId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
+                if(!ObjectUtils.isEmpty(fileInfos)){
+                    vo.setFileInfos(fileInfos);
                 }
             }