Explorar el Código

项目管理-采购执行

suntianwu hace 2 años
padre
commit
76af0e4a0f

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

@@ -28,8 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
 public class PmContractInfoController extends BaseController {
     @Autowired
     private IPmDemandService pmDemandService;
-    @Autowired
-    private TokenService tokenService;
+
 
     /**
      * 合同信息查询列表

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

@@ -66,7 +66,7 @@ public class PmDemandController extends BaseController {
     /**
      * 需求建档
      */
-    @ApiOperation(value = "需求建档", notes = "必传demandId,根据项目类型必传pmDemandEngineeringResponseVo、pmDemandEquipResponseVo、pmDemandMaterialsResponseVo、pmDemandServeResponseVo")
+    @ApiOperation(value = "需求建档", notes = "必传demandId,根据项目类型必传pmDemandEngineeringResponseVo(3:工程类)、pmDemandEquipResponseVo(0:装备类)、pmDemandMaterialsResponseVo(1:物资类)、pmDemandServeResponseVo(2:服务类)其中之一")
     @PostMapping("/bookBuilding")
     public AjaxResult bookBuilding(@RequestBody PmBookBuildingReqVo pmBookBuildingReqVo, HttpServletRequest request) {
         if(pmBookBuildingReqVo.getDemandId() == null){

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

@@ -1,20 +1,36 @@
 package com.ozs.web.controller.pm;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ozs.base.domain.BaseAgency;
+import com.ozs.base.service.BaseAgencyService;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.constant.ModularConstans;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
-import com.ozs.framework.web.service.TokenService;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.enums.SysFileRefEnum;
+import com.ozs.pm.doman.PmDemand;
+import com.ozs.pm.doman.PmReleaseAnnouncement;
 import com.ozs.pm.doman.vo.requestVo.PmDemandReqVo;
+import com.ozs.pm.doman.vo.requestVo.PmPurchaseExecutionReqVo;
+import com.ozs.pm.doman.vo.requestVo.PmReleaseAnnouncementReqVo;
 import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.service.IPmDemandService;
+import com.ozs.pm.service.PmReleaseAnnouncementService;
+import com.ozs.system.domain.SysFileRef;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+
+import org.springframework.util.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
 
 /**
  * 采购执行Controller
@@ -29,7 +45,8 @@ public class PmPurchaseExecutionController extends BaseController {
     @Autowired
     private IPmDemandService pmDemandService;
     @Autowired
-    private TokenService tokenService;
+    private BaseAgencyService baseAgencyService;
+
 
     /**
      * 采购执行查询列表
@@ -40,4 +57,113 @@ public class PmPurchaseExecutionController extends BaseController {
         IPage<PmDemandResVo> page  = pmDemandService.selectPmDemandList(pmDemandReqVo,3);
         return success(page);
     }
+
+    /**
+     * 查询代理机构列表
+     */
+    @ApiOperation(value = "查询代理机构列表", notes = "采购需求ID必传")
+    @PostMapping("/getAgencyList")
+    public AjaxResult getAgencyList(@NotEmpty(message = "采购需求ID不能为空")
+                               @RequestParam(value = "demandId", required = true) Long demandId) {
+        PmDemand pmDemand = pmDemandService.getById(demandId);
+        if(ObjectUtils.isEmpty(pmDemand)){
+            return error("参数错误");
+        }
+        LambdaQueryWrapper<BaseAgency> lw = new LambdaQueryWrapper<>();
+        lw.eq(BaseAgency::getCompanyType,pmDemand.getProjectType());
+        lw.eq(BaseAgency::getStatus,0);
+        List<BaseAgency> agencyList = baseAgencyService.list(lw);
+        return success(agencyList);
+    }
+
+    /**
+     * 选取代理-选择填写招标代理机构信息
+     */
+    @ApiOperation(value = "选取代理-选择填写招标代理机构信息",notes = "采购需求ID和代理机构ID必传")
+    @PostMapping("/selectAgency")
+    public AjaxResult selectAgency(@NotEmpty(message = "采购需求ID不能为空")
+                                   @RequestParam(value = "demandId", required = true) Long demandId,
+                                   @NotEmpty(message = "代理机构ID不能为空")
+                                   @RequestParam(value = "agencyId", required = true) Long agencyId) {
+
+        PmDemand pmDemand = pmDemandService.getById(demandId);
+        if(ObjectUtils.isEmpty(pmDemand)){
+            return error("参数错误");
+        }
+        BaseAgency baseAgency = baseAgencyService.getById(agencyId);
+        if(ObjectUtils.isEmpty(baseAgency)){
+            return error("参数错误");
+        }
+        PmDemand pmDemandUpdate = new PmDemand();
+        pmDemandUpdate.setDemandId(demandId);
+        pmDemandUpdate.setAgencyId(agencyId);
+        pmDemandUpdate.setExtractAgencyTime(new Date());
+        pmDemandUpdate.setUpdateTime(pmDemandUpdate.getExtractAgencyTime());
+        pmDemandUpdate.setUpdateBy(getUserId().toString());
+        return success(pmDemandService.updateById(pmDemandUpdate));
+    }
+
+    /**
+     * 选取代理-抽取招标代理机构信息
+     */
+    @ApiOperation(value = "选取代理-抽取招标代理机构信息",notes = "采购需求ID必传")
+    @PostMapping("/extractAgency")
+    public AjaxResult extractAgency(@NotEmpty(message = "采购需求id不能为空")
+                                     @RequestParam(value = "demandId", required = true) Long demandId) {
+
+        PmDemand pmDemand = pmDemandService.getById(demandId);
+        if(ObjectUtils.isEmpty(pmDemand)){
+            return error("参数错误");
+        }
+        LambdaQueryWrapper<BaseAgency> lw = new LambdaQueryWrapper<>();
+        lw.eq(BaseAgency::getCompanyType,pmDemand.getProjectType());
+        lw.eq(BaseAgency::getStatus,0);
+        Optional<BaseAgency> any = baseAgencyService.list(lw).stream().findAny();
+        if(ObjectUtils.isEmpty(any)){
+            return error("没有符合的招标代理机构,抽取失败!");
+        }
+        PmDemand pmDemandUpdate = new PmDemand();
+        pmDemandUpdate.setDemandId(demandId);
+        pmDemandUpdate.setAgencyId(any.get().getId());
+        pmDemandUpdate.setExtractAgencyTime(new Date());
+        pmDemandUpdate.setUpdateTime(pmDemandUpdate.getExtractAgencyTime());
+        pmDemandUpdate.setUpdateBy(getUserId().toString());
+        return success(pmDemandService.updateById(pmDemandUpdate));
+    }
+
+    @ApiOperation(value = "上传招标文件",notes = "采购需求ID和上传附件必传")
+    @PostMapping("/upLoadBidFile")
+    public AjaxResult upLoadBidFile(@NotEmpty(message = "数据为空") @RequestBody PmPurchaseExecutionReqVo pmPurchaseExecutionReqVo) {
+        Long demandId = pmPurchaseExecutionReqVo.getDemandId();
+        if(ObjectUtils.isEmpty(demandId)){
+            return error("参数错误");
+        }
+
+        PmDemand pmDemand = pmDemandService.getById(demandId);
+        if(ObjectUtils.isEmpty(pmDemand)){
+            return error("参数错误");
+        }
+
+        List<SysFileRef> sysFileRefs = pmPurchaseExecutionReqVo.getSysFileRefs();
+        if(ObjectUtils.isEmpty(sysFileRefs)){
+            return error("参数错误");
+        }
+        if (pmDemandService.uploadFile(demandId, SysFileRefEnum.PM_BID_FILE.getType(),sysFileRefs,getUserId().toString())) {
+            return AjaxResult.success();
+        } else {
+            return error("上传失败");
+        }
+    }
+
+    @ApiOperation(value = "发布公告")
+    @PostMapping("/insertBaseAgency")
+    public AjaxResult insertBaseAgency(@NotEmpty(message = "数据为空")
+                                       @RequestBody PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo) {
+        pmReleaseAnnouncementReqVo.setCreateBy(getUserId().toString());
+        pmReleaseAnnouncementReqVo.setCreateTime(new Date());
+        pmReleaseAnnouncementReqVo.setUpdateBy(pmReleaseAnnouncementReqVo.getCreateBy());
+        pmReleaseAnnouncementReqVo.setUpdateTime(pmReleaseAnnouncementReqVo.getCreateTime());
+        return toAjax(pmDemandService.insertBaseAgency(pmReleaseAnnouncementReqVo));
+    }
+
 }

+ 2 - 1
purchase-common/src/main/java/com/ozs/common/enums/SysFileRefEnum.java

@@ -18,7 +18,8 @@ public enum SysFileRefEnum {
     PM_DEMAND_SERVE(7, "采购需求服务类附件"),
     PM_DEMAND_ENGINEERING(8, "采购需求工程类附件"),
     PM_DEMAND_EXAMINE(9, "采购需求审核文件"),
-    PM_TAST_RELEASE(10, "任务下达文件")
+    PM_TAST_RELEASE(10, "任务下达文件"),
+    PM_BID_FILE(11, "招标文件")
     ;
 
     private Integer type;

+ 36 - 0
purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmPurchaseExecutionReqVo.java

@@ -0,0 +1,36 @@
+package com.ozs.pm.doman.vo.requestVo;
+
+
+import com.ozs.system.domain.SysFileRef;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+/**
+ * 采购执行查询对象
+ *
+ * @author ruoyi
+ * @date 2023-01-16
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("采购执行查询对象")
+public class PmPurchaseExecutionReqVo {
+    /** 采购需求ID */
+    @ApiModelProperty("采购需求ID")
+    private Long demandId;
+
+    /**
+     * 上传附件
+     */
+    @ApiModelProperty("上传附件")
+    private List<SysFileRef> sysFileRefs;
+}

+ 82 - 0
purchase-system/src/main/java/com/ozs/pm/doman/vo/requestVo/PmReleaseAnnouncementReqVo.java

@@ -0,0 +1,82 @@
+package com.ozs.pm.doman.vo.requestVo;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 发布公告表(PmReleaseAnnouncement)实体类
+ *
+ * @author makejava
+ * @since 2023-02-02 00:47:23
+ */
+
+@Data
+@ApiModel(value = "发布公告表", description = "")
+public class PmReleaseAnnouncementReqVo implements Serializable {
+    private static final long serialVersionUID = 403614463746791218L;
+
+    @TableId(value = "ID", type = IdType.AUTO)
+    private Long id;
+
+
+    @ApiModelProperty("需求ID")
+    private Long demandId;
+
+
+    @ApiModelProperty("发布公告平台,1:军队采购网,2:全军武器装备采购网")
+    private String announcementPlatform;
+
+
+    @ApiModelProperty("发布时间 yyyy-MM-dd")
+    private String releaseTime;
+
+
+    @ApiModelProperty("开标地点")
+    private String bidOpenPlace;
+
+
+    @ApiModelProperty("报名截止时间 yyyy-MM-dd")
+    private String enrollCloseTime;
+
+
+    @ApiModelProperty("开标时间 yyyy-MM-dd")
+    private String tenderOpenTime;
+
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    /** 创建者 */
+    @ApiModelProperty("创建者")
+    private String createBy;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /** 更新者 */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    /**
+     * 上传附件
+     */
+    @ApiModelProperty("上传附件")
+    private List<SysFileRef> sysFileRefs;
+}

+ 7 - 0
purchase-system/src/main/java/com/ozs/pm/service/IPmDemandService.java

@@ -6,9 +6,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.pm.doman.PmDemand;
 import com.ozs.pm.doman.vo.requestVo.PmBookBuildingReqVo;
 import com.ozs.pm.doman.vo.requestVo.PmDemandReqVo;
+import com.ozs.pm.doman.vo.requestVo.PmReleaseAnnouncementReqVo;
 import com.ozs.pm.doman.vo.responseVo.PmDemandResVo;
 import com.ozs.pm.doman.vo.responseVo.PmFlowChartResVo;
+import com.ozs.system.domain.SysFileRef;
 
+import java.util.List;
 
 
 /**
@@ -106,4 +109,8 @@ public interface IPmDemandService extends IService<PmDemand>
      * @return 结果
      */
     public int releaseTask(PmDemandReqVo pmDemandReqVo);
+
+    boolean uploadFile(Long redId,Integer fileType, List<SysFileRef> sysFileRefs,String upateBy);
+
+    boolean insertBaseAgency(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo);
 }

+ 45 - 125
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -61,6 +61,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
     private SysFileRefService sysFileRefService;
     @Autowired
     private IPmFlowChartService iPmFlowChartService;
+    @Autowired
+    private PmReleaseAnnouncementService pmReleaseAnnouncementService;
+
     /**
      * 查询采购需求
      *
@@ -439,33 +442,13 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 pmDemandEquip.setCreateBy(vo.getUpdateBy());
                 pmDemandEquip.setCreateTime(new Date());
                 pmDemandEquip.setUpdateBy(vo.getUpdateBy());
-                pmDemandEquip.setUpdateTime(new Date());
+                pmDemandEquip.setUpdateTime(pmDemandEquip.getCreateTime());
                 iPmDemandEquipService.insertPmDemandEquip(pmDemandEquip);
             }
 
             List<SysFileRef> sysFileRefs = pmDemandEquipReqVo.getSysFileRefs();
-            if (!ObjectUtils.isEmpty(sysFileRefs)) {
-                for (SysFileRef ref : sysFileRefs) {
-                    if(ref.getFileId() == null){
-                        continue;
-                    }
-                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
-                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
-                            .eq(SysFileRef::getRedId,pmDemandEquip.getDemandEquipId())
-                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_EQUIP.getType());
-                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
-                    if(!CollectionUtils.isEmpty(sysFileRefList)){
-                        sysFileRefService.remove(queryWrapper);
-                    }
-                    ref.setRedId(pmDemandEquip.getDemandEquipId());
-                    ref.setType(SysFileRefEnum.PM_DEMAND_EQUIP.getType());
-                    ref.setCreated(vo.getUpdateBy());
-                    ref.setCreateTime(new Date());
-                    ref.setUpdated(vo.getUpdateBy());
-                    ref.setUpdateTime(new Date());
-                    sysFileRefService.save(ref);
-                }
-            }
+            uploadFile(pmDemandEquip.getDemandEquipId(),SysFileRefEnum.PM_DEMAND_EQUIP.getType(),sysFileRefs,vo.getUpdateBy());
+
         } else if(ProjectTypes.MATERIALTYPE.getCode().equals(projectType)) { //物资类
             PmDemandMaterialsReqVo pmDemandMaterialsReqVo =  vo.getPmDemandMaterialsReqVo();
             PmDemandMaterials pmDemandMaterialsReq = new PmDemandMaterials();
@@ -485,33 +468,13 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 pmDemandMaterials.setCreateBy(vo.getUpdateBy());
                 pmDemandMaterials.setCreateTime(new Date());
                 pmDemandMaterials.setUpdateBy(vo.getUpdateBy());
-                pmDemandMaterials.setUpdateTime(new Date());
+                pmDemandMaterials.setUpdateTime(pmDemandMaterials.getCreateTime());
                 iPmDemandMaterialsService.insertPmDemandMaterials(pmDemandMaterials);
             }
 
             List<SysFileRef> sysFileRefs = pmDemandMaterialsReqVo.getSysFileRefs();
-            if (!ObjectUtils.isEmpty(sysFileRefs)) {
-                for (SysFileRef ref : sysFileRefs) {
-                    if(ref.getFileId() == null){
-                        continue;
-                    }
-                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
-                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
-                            .eq(SysFileRef::getRedId,pmDemandMaterials.getDemandMaterialsId())
-                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
-                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
-                    if(!CollectionUtils.isEmpty(sysFileRefList)){
-                        sysFileRefService.remove(queryWrapper);
-                    }
-                    ref.setRedId(pmDemandMaterials.getDemandMaterialsId());
-                    ref.setType(SysFileRefEnum.PM_DEMAND_MATERIALS.getType());
-                    ref.setCreated(vo.getUpdateBy());
-                    ref.setCreateTime(new Date());
-                    ref.setUpdated(vo.getUpdateBy());
-                    ref.setUpdateTime(new Date());
-                    sysFileRefService.save(ref);
-                }
-            }
+            uploadFile(pmDemandMaterials.getDemandMaterialsId(),SysFileRefEnum.PM_DEMAND_MATERIALS.getType(),sysFileRefs,vo.getUpdateBy());
+
         } else if(ProjectTypes.SERVICESTYPE.getCode().equals(projectType)) { //服务类
             PmDemandServeReqVo pmDemandServeReqVo =  vo.getPmDemandServeReqVo();
             PmDemandServe pmDemandServeReq = new PmDemandServe();
@@ -531,32 +494,12 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 pmDemandServe.setCreateBy(vo.getUpdateBy());
                 pmDemandServe.setCreateTime(new Date());
                 pmDemandServe.setUpdateBy(vo.getUpdateBy());
-                pmDemandServe.setUpdateTime(new Date());
+                pmDemandServe.setUpdateTime(pmDemandServe.getCreateTime());
                 iPmDemandServeService.insertPmDemandServe(pmDemandServe);
             }
             List<SysFileRef> sysFileRefs = pmDemandServeReqVo.getSysFileRefs();
-            if (!ObjectUtils.isEmpty(sysFileRefs)) {
-                for (SysFileRef ref : sysFileRefs) {
-                    if(ref.getFileId() == null){
-                        continue;
-                    }
-                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
-                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
-                            .eq(SysFileRef::getRedId,pmDemandServe.getDemandServeId())
-                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_SERVE.getType());
-                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
-                    if(!CollectionUtils.isEmpty(sysFileRefList)){
-                        sysFileRefService.remove(queryWrapper);
-                    }
-                    ref.setRedId(pmDemandServe.getDemandServeId());
-                    ref.setType(SysFileRefEnum.PM_DEMAND_SERVE.getType());
-                    ref.setCreated(vo.getUpdateBy());
-                    ref.setCreateTime(new Date());
-                    ref.setUpdated(vo.getUpdateBy());
-                    ref.setUpdateTime(new Date());
-                    sysFileRefService.save(ref);
-                }
-            }
+            uploadFile(pmDemandServe.getDemandServeId(),SysFileRefEnum.PM_DEMAND_SERVE.getType(),sysFileRefs,vo.getUpdateBy());
+
         } else if(ProjectTypes.PLANTOEXAMINETYPE.getCode().equals(projectType)) { //工程类
             PmDemandEngineeringReqVo pmDemandEngineeringReqVo =  vo.getPmDemandEngineeringReqVo();
             PmDemandEngineering pmDemandEngineeringReq = new PmDemandEngineering();
@@ -576,32 +519,12 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 pmDemandEngineering.setCreateBy(vo.getUpdateBy());
                 pmDemandEngineering.setCreateTime(new Date());
                 pmDemandEngineering.setUpdateBy(vo.getUpdateBy());
-                pmDemandEngineering.setUpdateTime(new Date());
+                pmDemandEngineering.setUpdateTime(pmDemandEngineering.getCreateTime());
                 iPmDemandEngineeringService.insertPmDemandEngineering(pmDemandEngineering);
             }
             List<SysFileRef> sysFileRefs = pmDemandEngineeringReqVo.getSysFileRefs();
-            if (!ObjectUtils.isEmpty(sysFileRefs)) {
-                for (SysFileRef ref : sysFileRefs) {
-                    if(ref.getFileId() == null){
-                        continue;
-                    }
-                    QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
-                    queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
-                            .eq(SysFileRef::getRedId,pmDemandEngineering.getDemandEngineeringId())
-                            .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
-                    List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
-                    if(!CollectionUtils.isEmpty(sysFileRefList)){
-                        sysFileRefService.remove(queryWrapper);
-                    }
-                    ref.setRedId(pmDemandEngineering.getDemandEngineeringId());
-                    ref.setType(SysFileRefEnum.PM_DEMAND_ENGINEERING.getType());
-                    ref.setCreated(vo.getUpdateBy());
-                    ref.setCreateTime(new Date());
-                    ref.setUpdated(vo.getUpdateBy());
-                    ref.setUpdateTime(new Date());
-                    sysFileRefService.save(ref);
-                }
-            }
+            uploadFile(pmDemandEngineering.getDemandEngineeringId(),SysFileRefEnum.PM_DEMAND_ENGINEERING.getType(),sysFileRefs,vo.getUpdateBy());
+
         }
 
         pmDemand.setUpdateBy(vo.getUpdateBy());
@@ -770,28 +693,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         pmDemand.setDemandId(pmDemandReqVo.getDemandId());
         pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.TASK_WAIT_RELEASE.getCode()));
         List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
-        if (!ObjectUtils.isEmpty(sysFileRefs)) {
-            for (SysFileRef ref : sysFileRefs) {
-                if(ref.getFileId() == null){
-                    continue;
-                }
-                QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
-                queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
-                        .eq(SysFileRef::getRedId,pmDemandReqVo.getDemandId())
-                        .eq(SysFileRef::getType,SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
-                List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
-                if(!CollectionUtils.isEmpty(sysFileRefList)){
-                    sysFileRefService.remove(queryWrapper);
-                }
-                ref.setRedId(pmDemandReqVo.getDemandId());
-                ref.setType(SysFileRefEnum.PM_DEMAND_EXAMINE.getType());
-                ref.setCreated(pmDemandReqVo.getUpdateBy());
-                ref.setCreateTime(new Date());
-                ref.setUpdated(pmDemandReqVo.getUpdateBy());
-                ref.setUpdateTime(new Date());
-                sysFileRefService.save(ref);
-            }
-        }
+        uploadFile(pmDemandReqVo.getDemandId(),SysFileRefEnum.PM_DEMAND_EXAMINE.getType(),sysFileRefs,pmDemandReqVo.getUpdateBy());
+
         pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         pmDemand.setAuditTime(DateUtils.getNowDate());
@@ -828,6 +731,17 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         pmDemand.setDemandId(pmDemandReqVo.getDemandId());
         pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_SELECT_AGENT.getCode()));
         List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
+
+        uploadFile(pmDemandReqVo.getDemandId(),SysFileRefEnum.PM_TAST_RELEASE.getType(),sysFileRefs,pmDemandReqVo.getUpdateBy());
+        pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
+        pmDemand.setUpdateTime(DateUtils.getNowDate());
+        pmDemand.setAuditTime(DateUtils.getNowDate());
+        return pmDemandMapper.updatePmDemand(pmDemand);
+    }
+
+
+    public boolean uploadFile(Long redId,Integer fileType, List<SysFileRef> sysFileRefs,String upateBy){
+
         if (!ObjectUtils.isEmpty(sysFileRefs)) {
             for (SysFileRef ref : sysFileRefs) {
                 if(ref.getFileId() == null){
@@ -835,25 +749,31 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 }
                 QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
                 queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
-                        .eq(SysFileRef::getRedId,pmDemandReqVo.getDemandId())
-                        .eq(SysFileRef::getType,SysFileRefEnum.PM_TAST_RELEASE.getType());
+                        .eq(SysFileRef::getRedId,redId)
+                        .eq(SysFileRef::getType,fileType);
                 List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
                 if(!CollectionUtils.isEmpty(sysFileRefList)){
                     sysFileRefService.remove(queryWrapper);
                 }
-                ref.setRedId(pmDemandReqVo.getDemandId());
-                ref.setType(SysFileRefEnum.PM_TAST_RELEASE.getType());
-                ref.setCreated(pmDemandReqVo.getUpdateBy());
+                ref.setRedId(redId);
+                ref.setType(fileType);
+                ref.setCreated(upateBy);
                 ref.setCreateTime(new Date());
-                ref.setUpdated(pmDemandReqVo.getUpdateBy());
-                ref.setUpdateTime(new Date());
+                ref.setUpdated(upateBy);
+                ref.setUpdateTime(ref.getCreateTime());
                 sysFileRefService.save(ref);
             }
+            return true;
+        } else {
+            return false;
         }
-        pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
-        pmDemand.setUpdateTime(DateUtils.getNowDate());
-        pmDemand.setAuditTime(DateUtils.getNowDate());
-        return pmDemandMapper.updatePmDemand(pmDemand);
+
     }
 
+    public boolean insertBaseAgency(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo){
+        uploadFile(pmReleaseAnnouncementReqVo.getDemandId(), SysFileRefEnum.PM_BID_FILE.getType(),pmReleaseAnnouncementReqVo.getSysFileRefs(),pmReleaseAnnouncementReqVo.getUpdateBy());
+        PmReleaseAnnouncement pmReleaseAnnouncement = new PmReleaseAnnouncement();
+        BeanUtils.copyProperties(pmReleaseAnnouncementReqVo,pmReleaseAnnouncement);
+        return pmReleaseAnnouncementService.save(pmReleaseAnnouncement);
+    }
 }