浏览代码

feat :竞争管理-竞争对手管理

孙海博 4 月之前
父节点
当前提交
ad429a77c7
共有 21 个文件被更改,包括 563 次插入84 次删除
  1. 16 4
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCompetitorController.java
  2. 36 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCompetitorFormerNameDO.java
  3. 23 31
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCompetitorProjectDO.java
  4. 64 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCompetitorProjectOfferDO.java
  5. 22 34
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCompetitorProjectDTO.java
  6. 65 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCompetitorProjectOfferDTO.java
  7. 1 1
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCompetitorQualificationDTO.java
  8. 14 1
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/qry/BlinkCompetitorProjectQry.java
  9. 65 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCompetitorProjectOfferServiceImpl.java
  10. 43 2
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCompetitorProjectServiceImpl.java
  11. 36 3
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCompetitorServiceImpl.java
  12. 24 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkCompetitorProjectOfferMapper.java
  13. 29 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCompetitorProjectOfferRepository.java
  14. 19 1
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCompetitorProjectRepository.java
  15. 6 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCompetitorRepository.java
  16. 30 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCompetitorProjectOfferService.java
  17. 15 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCompetitorProjectService.java
  18. 7 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCompetitorService.java
  19. 10 0
      bound-link-api/blink-backend/src/main/resources/mapper/BlinkCompetitorProjectOfferRepository.xml
  20. 34 7
      bound-link-api/blink-backend/src/main/resources/mapper/BlinkCompetitorProjectRepositoryMapper.xml
  21. 4 0
      bound-link-api/blink-backend/src/main/resources/mapper/BlinkCompetitorRepositoryMapper.xml

+ 16 - 4
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCompetitorController.java

@@ -43,6 +43,12 @@ public class BlinkCompetitorController {
         return competitorService.supportsCompetitorCreate(dto);
     }
 
+    @Operation(summary = "编辑竞争对手")
+    @PostMapping("/supports/competitor/update")
+    public ResponseDTO<String> supportsCompetitorUpdate(@RequestBody @Valid BlinkCompetitorDTO dto) {
+        return competitorService.supportsCompetitorUpdate(dto);
+    }
+
     @Operation(summary = "分页查询竞争对手列表")
     @PostMapping("/supports/competitor/queryPage")
     public ResponseDTO<PageResult<BlinkCompetitorDTO>> supportsCompetitorQueryPage(@RequestBody @Valid BlinkCompetitorQry qry) {
@@ -72,30 +78,36 @@ public class BlinkCompetitorController {
 
     @Operation(summary = "获取信息资料信息")
     @GetMapping("/supports/competitor/data/{id}")
-    @NoNeedLogin
     public ResponseDTO<BlinkCompetitorDataDTO> supportsCompetitorDataQuery(@PathVariable("id") String id) {
         return dataService.supportsCompetitorDataQuery(id);
     }
 
     @Operation(summary = "删除信息资料")
     @GetMapping("/supports/competitor/data/delete/{id}")
-    @NoNeedLogin
     public ResponseDTO<String> supportsCompetitorDataDeleteById(@PathVariable("id") String id) {
         return dataService.supportsCompetitorDataDeleteById(id);
     }
     @Operation(summary = "新增项目情况")
     @PostMapping("/supports/competitor/project/create")
-    @NoNeedLogin
     public ResponseDTO<String> supportsCompetitorProjectCreate(@RequestBody @Valid BlinkCompetitorProjectDTO dto) {
         return projectService.supportsCompetitorProjectCreate(dto);
     }
 
     @Operation(summary = "分页查询项目情况列表")
     @PostMapping("/supports/competitor/project/queryPage")
-    @NoNeedLogin
     public ResponseDTO<PageResult<BlinkCompetitorProjectDTO>> supportsCompetitorProjectQueryPage(@RequestBody @Valid BlinkCompetitorProjectQry qry) {
         return projectService.supportsCompetitorProjectQueryPage(qry);
     }
+    @Operation(summary = "分页查询项目情况列表(根据竞争对手)")
+    @PostMapping("/supports/competitor/projectByCompetitorId/queryPage")
+    public ResponseDTO<PageResult<BlinkCompetitorProjectDTO>> supportsCompetitorProjectByCompetitorIdQueryPage(@RequestBody @Valid BlinkCompetitorProjectQry qry) {
+        return projectService.supportsCompetitorProjectByCompetitorIdQueryPage(qry);
+    }
+    @Operation(summary = "查询单项目情况")
+    @GetMapping("/supports/competitor/project/query/{id}")
+    public ResponseDTO<BlinkCompetitorProjectDTO> supportsCompetitorProjectQuery(@PathVariable("id") String id) {
+        return projectService.supportsCompetitorProjectQuery(id);
+    }
     @Operation(summary = "新增企业资质")
     @PostMapping("/supports/competitor/qualification/create")
     public ResponseDTO<String> supportsCompetitorQualificationCreate(@RequestBody @Valid BlinkCompetitorQualificationDTO dto) {

+ 36 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCompetitorFormerNameDO.java

@@ -0,0 +1,36 @@
+package com.wx.blink.backend.domain.dataobject;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.wx.blink.base.common.domain.BaseEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("blink_competitor_former_name")
+public class BlinkCompetitorFormerNameDO extends BaseEntity {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private Long id;
+
+    /**
+     * 竞争对手id
+     */
+    private String competitorId;
+
+
+    /**
+     * 曾用名
+     */
+    private String formerName;
+
+
+
+}

+ 23 - 31
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCompetitorProjectDO.java

@@ -3,12 +3,18 @@ package com.wx.blink.backend.domain.dataobject;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectOfferDTO;
 import com.wx.blink.base.common.annoation.DataAdaptorMapping;
 import com.wx.blink.base.common.domain.BaseEntity;
 import com.wx.blink.base.common.json.deserializer.DictValueVoDeserializer;
 import lombok.Data;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
 @Data
 @TableName("blink_competitor_project_situation")
 public class BlinkCompetitorProjectDO extends BaseEntity {
@@ -16,18 +22,14 @@ public class BlinkCompetitorProjectDO extends BaseEntity {
     /**
      * id
      */
-    @TableId(type = IdType.AUTO)
-    private Long id;
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
 
     /**
      * 项目名称
      */
     private String projectName;
 
-    /**
-     * 竞争对手ID
-     */
-    private Long competitorId;
 
     /**
      * 项目ID
@@ -35,50 +37,40 @@ public class BlinkCompetitorProjectDO extends BaseEntity {
     private String projectId;
 
     /**
-     * 项目报价
+     * 是否参标
      */
-    private String projectQuote;
+    private Integer isOffer;
 
     /**
-     * 合同金额(元)
+     * 标段名称
      */
-    private String contractAmount;
+    private String sectionName;
 
     /**
-     * 补充协议金额(元)
+     * 投标日期
      */
-    private String additionalAmount;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date tenderDate;
 
     /**
-     * 合同总金额(元)
+     * 是否中标
      */
-    private String contractTotalAmount;
-
-//    /**
-//     * 项目类型
-//     */
-//    private String projectType;
-
+    private Integer isAward;
 
     /**
-     * 投标类型
+     * 报价金额
      */
-    private String tenderType;
+    private BigDecimal offerAmount;
 
-    /**
-     * 产品类型
-     */
-    private String productType;
 
     /**
-     * 项目来源
+     * 客户id
      */
-    private String projectSource;
-
+    private String customerId;
     /**
-     * 归属营销人员
+     * 客户名称
      */
-    private String marketer;
+    private String customerName;
 
 
 }

+ 64 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCompetitorProjectOfferDO.java

@@ -0,0 +1,64 @@
+package com.wx.blink.backend.domain.dataobject;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.wx.blink.base.common.annoation.DataAdaptorMapping;
+import com.wx.blink.base.common.domain.BaseEntity;
+import com.wx.blink.base.common.json.deserializer.DictValueVoDeserializer;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("blink_competitor_project_situation_offer")
+public class BlinkCompetitorProjectOfferDO extends BaseEntity {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private Long id;
+
+    /**
+     * 报价情况id
+     */
+    private String situationId;
+
+
+    /**
+     * 竞争对手ID
+     */
+    private String competitorId;
+
+    /**
+     * 竞争对手
+     */
+    private String competitor;
+
+    /**
+     * 报价轮次
+     */
+    private String quotationRounds;
+
+    /**
+     * 报价日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date tenderDate;
+
+    /**
+     * 是否中标
+     */
+    private Integer isAward;
+
+    /**
+     * 报价金额
+     */
+    private BigDecimal offerAmount;
+
+
+}

+ 22 - 34
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCompetitorProjectDTO.java

@@ -1,5 +1,6 @@
 package com.wx.blink.backend.domain.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.wx.blink.base.common.annoation.DataAdaptorMapping;
 import com.wx.blink.base.common.domain.BaseEntity;
@@ -7,6 +8,8 @@ import com.wx.blink.base.common.json.deserializer.DictValueVoDeserializer;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 @Data
 public class BlinkCompetitorProjectDTO extends BaseEntity {
@@ -14,17 +17,13 @@ public class BlinkCompetitorProjectDTO extends BaseEntity {
     /**
      * id
      */
-    private Long id;
+    private String id;
 
     /**
      * 项目名称
      */
     private String projectName;
 
-    /**
-     * 竞争对手ID
-     */
-    private String competitorId;
 
     /**
      * 项目ID
@@ -32,57 +31,46 @@ public class BlinkCompetitorProjectDTO extends BaseEntity {
     private String projectId;
 
     /**
-     * 项目报价
+     * 是否参标
      */
-    private String projectQuote;
+    private Integer isOffer;
 
     /**
-     * 合同金额(元)
+     * 标段名称
      */
-    private BigDecimal contractAmount;
+    private String sectionName;
 
     /**
-     * 补充协议金额(元)
+     * 投标日期
      */
-    private BigDecimal additionalAmount;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date tenderDate;
 
     /**
-     * 合同总金额(元)
+     * 是否中标
      */
-    private BigDecimal contractTotalAmount;
+    private Integer isAward;
 
     /**
-     * 投标类型
+     * 报价金额
      */
-    @JsonDeserialize(using = DictValueVoDeserializer.class)
-    @DataAdaptorMapping(type = "dict", value = "TENDER_TYPE")
-    private String tenderType;
-
+    private BigDecimal offerAmount;
 
-//    /**
-//     * 项目类型
-//     */
-//    @JsonDeserialize(using = DictValueVoDeserializer.class)
-//    private String projectType;
 
     /**
-     * 产品类型
+     * 客户id
      */
-    @JsonDeserialize(using = DictValueVoDeserializer.class)
-    @DataAdaptorMapping(type = "dict", value = "PRODUCT_TYPE")
-    private String productType;
-
+    private String customerId;
     /**
-     * 项目来源
+     * 客户名称
      */
-    @JsonDeserialize(using = DictValueVoDeserializer.class)
-    @DataAdaptorMapping(type = "dict", value = "PROJECT_SOURCE")
-    private String projectSource;
+    private String customerName;
+
 
     /**
-     * 归属营销人员
+     * 项目报价列表
      */
-    private String marketer;
+    private List<BlinkCompetitorProjectOfferDTO> competitorProjectOfferList;
 
 
 }

+ 65 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCompetitorProjectOfferDTO.java

@@ -0,0 +1,65 @@
+package com.wx.blink.backend.domain.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.wx.blink.base.common.annoation.DataAdaptorMapping;
+import com.wx.blink.base.common.domain.BaseEntity;
+import com.wx.blink.base.common.json.deserializer.DictValueVoDeserializer;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+//项目报价
+public class BlinkCompetitorProjectOfferDTO extends BaseEntity {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 报价情况id
+     */
+    private String situationId;
+
+
+    /**
+     * 竞争对手ID
+     */
+    private String competitorId;
+
+    /**
+     * 竞争对手
+     */
+    private String competitor;
+
+    /**
+     * 报价轮次
+     */
+    @JsonDeserialize(using = DictValueVoDeserializer.class)
+    @DataAdaptorMapping(type = "dict", value = "QUOTATION_ROUNDS")
+    private String quotationRounds;
+
+    /**
+     * 报价日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date tenderDate;
+
+    /**
+     * 是否中标
+     */
+    private Integer isAward;
+
+    /**
+     * 报价金额
+     */
+    private BigDecimal offerAmount;
+
+
+
+
+
+}

+ 1 - 1
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCompetitorQualificationDTO.java

@@ -30,6 +30,6 @@ public class BlinkCompetitorQualificationDTO extends BaseEntity {
     /**
      * 竞争对手ID
      */
-    private Integer competitorId;
+    private String competitorId;
 
 }

+ 14 - 1
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/qry/BlinkCompetitorProjectQry.java

@@ -9,11 +9,24 @@ public class BlinkCompetitorProjectQry extends PageParam {
     /**
      * 竞争对手ID
      */
-    private Long competitorId;
+    private String competitorId;
 
     /**
      * 项目名称
      */
     private String projectName;
+    /**
+     * 客户名称
+     */
+    private String customerName;
+
+    /**
+     * 是否参标
+     */
+    private Integer isOffer;
+    /**
+     * 是否中标
+     */
+    private Integer isAward;
 
 }

+ 65 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCompetitorProjectOfferServiceImpl.java

@@ -0,0 +1,65 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectOfferDO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectDTO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectOfferDTO;
+import com.wx.blink.backend.domain.qry.BlinkCompetitorProjectQry;
+import com.wx.blink.backend.objectmapper.BlinkCompetitorProjectMapper;
+import com.wx.blink.backend.objectmapper.BlinkCompetitorProjectOfferMapper;
+import com.wx.blink.backend.repository.BlinkCompetitorProjectOfferRepository;
+import com.wx.blink.backend.repository.BlinkCompetitorProjectRepository;
+import com.wx.blink.backend.service.IBlinkCompetitorProjectOfferService;
+import com.wx.blink.backend.service.IBlinkCompetitorProjectService;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import com.wx.blink.base.common.util.BlinkPageUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class BlinkCompetitorProjectOfferServiceImpl extends ServiceImpl<BlinkCompetitorProjectOfferRepository, BlinkCompetitorProjectOfferDO> implements IBlinkCompetitorProjectOfferService {
+
+    @Resource
+    private BlinkCompetitorProjectOfferRepository repository;
+    @Resource
+    private BlinkCompetitorProjectOfferMapper mapper;
+
+    /**
+     * 新增项目情况-项目报价
+     *
+     * @param dto
+     * @return
+     */
+    @Override
+    public ResponseDTO<String> supportsCompetitorProjectOfferCreate(BlinkCompetitorProjectOfferDTO dto) {
+        // 生成DO
+        BlinkCompetitorProjectOfferDO competitorProjectOfferDO = new BlinkCompetitorProjectOfferDO();
+        mapper.toBlinkCompetitorProjectOfferDO(dto, competitorProjectOfferDO);
+        // 创建人赋值
+        BlinkEntityUtil.setCreateInfo(competitorProjectOfferDO);
+        // 执行新增
+        this.save(competitorProjectOfferDO);
+        return ResponseDTO.ok();
+    }
+
+    /**
+     * 查看项目情况-项目报价
+     *
+     * @return
+     */
+    @Override
+    public List<BlinkCompetitorProjectOfferDTO> supportsCompetitorProjectOfferBySituationId(String situationId) {
+        List<BlinkCompetitorProjectOfferDTO> projectDTOS = repository.supportsCompetitorProjectOfferBySituationId(situationId);
+        return projectDTOS;
+    }
+
+
+
+}

+ 43 - 2
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCompetitorProjectServiceImpl.java

@@ -3,10 +3,13 @@ package com.wx.blink.backend.manager;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectDO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorDTO;
 import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectDTO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectOfferDTO;
 import com.wx.blink.backend.domain.qry.BlinkCompetitorProjectQry;
 import com.wx.blink.backend.objectmapper.BlinkCompetitorProjectMapper;
 import com.wx.blink.backend.repository.BlinkCompetitorProjectRepository;
+import com.wx.blink.backend.service.IBlinkCompetitorProjectOfferService;
 import com.wx.blink.backend.service.IBlinkCompetitorProjectService;
 import com.wx.blink.base.common.domain.PageResult;
 import com.wx.blink.base.common.domain.ResponseDTO;
@@ -26,7 +29,8 @@ public class BlinkCompetitorProjectServiceImpl extends ServiceImpl<BlinkCompetit
     private BlinkCompetitorProjectRepository repository;
     @Resource
     private BlinkCompetitorProjectMapper mapper;
-
+    @Resource
+    private IBlinkCompetitorProjectOfferService blinkCompetitorProjectOfferService;
     /**
      * 新增项目情况
      *
@@ -36,7 +40,7 @@ public class BlinkCompetitorProjectServiceImpl extends ServiceImpl<BlinkCompetit
     @Override
     public ResponseDTO<String> supportsCompetitorProjectCreate(BlinkCompetitorProjectDTO dto) {
         // 验证项目情况是否重复
-        BlinkCompetitorProjectDO projectDO = repository.queryByProjectName(dto.getProjectName(), dto.getCompetitorId(),null, Boolean.FALSE);
+        BlinkCompetitorProjectDO projectDO = repository.queryByProjectName(dto.getProjectName(),null, Boolean.FALSE);
         if (Objects.nonNull(projectDO)) {
             return ResponseDTO.dataErrorParam("项目情况重复!请检查");
         }
@@ -47,6 +51,14 @@ public class BlinkCompetitorProjectServiceImpl extends ServiceImpl<BlinkCompetit
         BlinkEntityUtil.setCreateInfo(competitorProjectDO);
         // 执行新增
         this.save(competitorProjectDO);
+        String situationId = competitorProjectDO.getId();
+        List<BlinkCompetitorProjectOfferDTO> competitorProjectOfferDTOS = dto.getCompetitorProjectOfferList();
+        if(competitorProjectOfferDTOS.size()>0 && competitorProjectOfferDTOS!=null){
+            for (BlinkCompetitorProjectOfferDTO blinkCompetitorProjectOfferDTO:competitorProjectOfferDTOS) {
+                blinkCompetitorProjectOfferDTO.setSituationId(situationId);
+                blinkCompetitorProjectOfferService.supportsCompetitorProjectOfferCreate(blinkCompetitorProjectOfferDTO);
+            }
+        }
         return ResponseDTO.ok();
     }
 
@@ -64,4 +76,33 @@ public class BlinkCompetitorProjectServiceImpl extends ServiceImpl<BlinkCompetit
         return ResponseDTO.ok(pageResult);
     }
 
+    /**
+     * 分页查询项目情况列表(根据竞争对手)
+     *
+     * @param qry
+     * @return
+     */
+    @Override
+    public ResponseDTO<PageResult<BlinkCompetitorProjectDTO>> supportsCompetitorProjectByCompetitorIdQueryPage(BlinkCompetitorProjectQry qry){
+        Page<?> page = BlinkPageUtil.convert2PageQuery(qry);
+        List<BlinkCompetitorProjectDTO> projectDTOS = repository.supportsCompetitorProjectByCompetitorIdQueryPage(page, qry);
+        PageResult<BlinkCompetitorProjectDTO> pageResult = BlinkPageUtil.convert2PageResult(page, projectDTOS);
+        return ResponseDTO.ok(pageResult);
+    }
+
+    @Override
+    public ResponseDTO<BlinkCompetitorProjectDTO> supportsCompetitorProjectQuery(String id) {
+        BlinkCompetitorProjectDO projectDO = repository.getById(id);
+        if (!Objects.nonNull(projectDO)) {
+            return ResponseDTO.userErrorParam("项目情况不存在!请检查");
+        }
+        BlinkCompetitorProjectDTO dto = new BlinkCompetitorProjectDTO();
+        mapper.toBlinkCompetitorProjectDTO(projectDO, dto);
+        //查询项目报价情况
+        List<BlinkCompetitorProjectOfferDTO> projectOfferDTOS = blinkCompetitorProjectOfferService.supportsCompetitorProjectOfferBySituationId(id);
+        dto.setCompetitorProjectOfferList(projectOfferDTOS);
+        return ResponseDTO.ok(dto);
+    }
+
+
 }

+ 36 - 3
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCompetitorServiceImpl.java

@@ -3,6 +3,8 @@ package com.wx.blink.backend.manager;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.wx.blink.backend.domain.dataobject.BlinkCompetitorDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorFormerNameDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorQualificationDO;
 import com.wx.blink.backend.domain.dto.BlinkCompetitorDTO;
 import com.wx.blink.backend.domain.dto.BlinkCompetitorQualificationDTO;
 import com.wx.blink.backend.domain.qry.BlinkCompetitorQry;
@@ -72,9 +74,40 @@ public class BlinkCompetitorServiceImpl extends ServiceImpl<BlinkCompetitorRepos
         List<BlinkCompetitorQualificationDTO> qualificationList = dto.getQualificationList();
         if(qualificationList.size()>0 && qualificationList != null){
             for (BlinkCompetitorQualificationDTO qualificationDTO: qualificationList) {
+                qualificationDTO.setCompetitorId(generatedId);
                 blinkCompetitorQualificationService.supportsCompetitorQualificationCreate(qualificationDTO);
             }
         }
+        //曾用名
+        BlinkCompetitorFormerNameDO formerNameDO = new BlinkCompetitorFormerNameDO();
+        formerNameDO.setCompetitorId(generatedId);
+        formerNameDO.setFormerName(dto.getCompetitorName());
+        BlinkEntityUtil.setCreateInfo(formerNameDO);
+        repository.saveCompetitorFormerName(formerNameDO);
+        return ResponseDTO.ok();
+    }
+
+    /**
+     * 编辑竞争对手
+     *
+     * @param dto
+     * @return
+     */
+    @Override
+    public ResponseDTO<String> supportsCompetitorUpdate(BlinkCompetitorDTO dto) {
+        // 生成DO
+        BlinkCompetitorDO competitor = new BlinkCompetitorDO();
+        mapper.toBlinkCompetitorDO(dto, competitor);
+        // 创建人赋值
+        BlinkEntityUtil.setUpdatedInfo(competitor);
+        // 执行新增
+        this.updateById(competitor);
+        //曾用名
+        BlinkCompetitorFormerNameDO formerNameDO = new BlinkCompetitorFormerNameDO();
+        formerNameDO.setCompetitorId(dto.getId());
+        formerNameDO.setFormerName(dto.getCompetitorName());
+        BlinkEntityUtil.setCreateInfo(formerNameDO);
+        repository.saveCompetitorFormerName(formerNameDO);
         return ResponseDTO.ok();
     }
 
@@ -100,10 +133,10 @@ public class BlinkCompetitorServiceImpl extends ServiceImpl<BlinkCompetitorRepos
                     blinkCompetitorDTO.setQualificationManage("/");
                 }
                 //已登记参标数量
-                blinkCompetitorDTO.setBiddingNumber(projectRepository.supportsCompetitorProjectQtyByCompetitorId(blinkCompetitorDTO.getId()));
-
-                //已登记中标数量
+                //blinkCompetitorDTO.setBiddingNumber(projectRepository.supportsCompetitorProjectQtyByCompetitorId(blinkCompetitorDTO.getId()));
                 blinkCompetitorDTO.setBiddingNumber(0);
+                //已登记中标数量
+                blinkCompetitorDTO.setWinningNumber(0);
             }
         }
 

+ 24 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkCompetitorProjectOfferMapper.java

@@ -0,0 +1,24 @@
+package com.wx.blink.backend.objectmapper;
+
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectOfferDO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectDTO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectOfferDTO;
+import com.wx.blink.base.common.util.BlinkStringUtil;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+
+@Mapper(componentModel = "spring", imports = {BlinkStringUtil.class})
+public interface BlinkCompetitorProjectOfferMapper {
+
+    /**
+     * 竞争对手-项目情况主数据dto转do
+     *
+     * @param dto
+     * @return
+     */
+    void toBlinkCompetitorProjectOfferDO(BlinkCompetitorProjectOfferDTO dto, @MappingTarget BlinkCompetitorProjectOfferDO competitorDO);
+
+
+
+}

+ 29 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCompetitorProjectOfferRepository.java

@@ -0,0 +1,29 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectOfferDO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectDTO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectOfferDTO;
+import com.wx.blink.backend.domain.qry.BlinkCompetitorProjectQry;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface BlinkCompetitorProjectOfferRepository extends BaseMapper<BlinkCompetitorProjectOfferDO> {
+
+
+    /**
+     * 根据项目情况id,获取对应项目报价
+     *
+     * @param situationId
+     * @return
+     */
+    List<BlinkCompetitorProjectOfferDTO> supportsCompetitorProjectOfferBySituationId( @Param("situationId") String situationId);
+
+
+
+}

+ 19 - 1
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCompetitorProjectRepository.java

@@ -21,7 +21,7 @@ public interface BlinkCompetitorProjectRepository extends BaseMapper<BlinkCompet
      * @param deletedFlag
      * @return
      */
-    BlinkCompetitorProjectDO queryByProjectName(@Param("projectName") String projectName,@Param("competitorId") String competitorId,  @Param("id") Long id, @Param("deletedFlag") Boolean deletedFlag);
+    BlinkCompetitorProjectDO queryByProjectName(@Param("projectName") String projectName,  @Param("id") Long id, @Param("deletedFlag") Boolean deletedFlag);
 
 
     /**
@@ -34,6 +34,16 @@ public interface BlinkCompetitorProjectRepository extends BaseMapper<BlinkCompet
     List<BlinkCompetitorProjectDTO> supportsCompetitorProjectQueryPage(Page<?> page, @Param("query") BlinkCompetitorProjectQry qry);
 
 
+    /**
+     * 分页查询项目情况列表(根据竞争对手id)
+     *
+     * @param page
+     * @param qry
+     * @return
+     */
+    List<BlinkCompetitorProjectDTO> supportsCompetitorProjectByCompetitorIdQueryPage(Page<?> page, @Param("query") BlinkCompetitorProjectQry qry);
+
+
     /**
      * 根据竞争对手id获取项目情况列表
      *
@@ -42,4 +52,12 @@ public interface BlinkCompetitorProjectRepository extends BaseMapper<BlinkCompet
      */
     Integer supportsCompetitorProjectQtyByCompetitorId(@Param("competitorId") String competitorId);
 
+    /**
+     * 查询单项目报价情况
+     *
+     * @param id 数量
+     * @return
+     */
+    BlinkCompetitorProjectDO getById(@Param("id") String id);
+
 }

+ 6 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCompetitorRepository.java

@@ -3,6 +3,7 @@ package com.wx.blink.backend.repository;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.wx.blink.backend.domain.dataobject.BlinkCompetitorDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCompetitorFormerNameDO;
 import com.wx.blink.backend.domain.dto.BlinkCompetitorDTO;
 import com.wx.blink.backend.domain.qry.BlinkCompetitorQry;
 import org.apache.ibatis.annotations.Mapper;
@@ -33,5 +34,10 @@ public interface BlinkCompetitorRepository extends BaseMapper<BlinkCompetitorDO>
      */
     List<BlinkCompetitorDTO> supportsCompetitorQueryPage(Page<?> page, @Param("query") BlinkCompetitorQry qry);
 
+    /**
+     * 新增曾用名
+     */
+    Integer saveCompetitorFormerName(BlinkCompetitorFormerNameDO formerNameDO);
+
 
 }

+ 30 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCompetitorProjectOfferService.java

@@ -0,0 +1,30 @@
+package com.wx.blink.backend.service;
+
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectDTO;
+import com.wx.blink.backend.domain.dto.BlinkCompetitorProjectOfferDTO;
+import com.wx.blink.backend.domain.qry.BlinkCompetitorProjectQry;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+import java.util.List;
+
+public interface IBlinkCompetitorProjectOfferService {
+
+    /**
+     * 新增项目报价
+     *
+     * @param dto
+     * @return
+     */
+    ResponseDTO<String> supportsCompetitorProjectOfferCreate(BlinkCompetitorProjectOfferDTO dto);
+
+    /**
+     * 根据项目情况,查询报价
+     *
+     * @param situationId
+     * @return
+     */
+    List<BlinkCompetitorProjectOfferDTO> supportsCompetitorProjectOfferBySituationId(String situationId);
+
+
+}

+ 15 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCompetitorProjectService.java

@@ -23,4 +23,19 @@ public interface IBlinkCompetitorProjectService {
      */
     ResponseDTO<PageResult<BlinkCompetitorProjectDTO>> supportsCompetitorProjectQueryPage(BlinkCompetitorProjectQry qry);
 
+    /**
+     * 分页查询项目情况列表(根据竞争对手)
+     *
+     * @param qry
+     * @return
+     */
+    ResponseDTO<PageResult<BlinkCompetitorProjectDTO>> supportsCompetitorProjectByCompetitorIdQueryPage(BlinkCompetitorProjectQry qry);
+
+    /**
+     * 查询单项目情况
+     *
+     * @param id
+     * @return
+     */
+    ResponseDTO<BlinkCompetitorProjectDTO> supportsCompetitorProjectQuery(String id);
 }

+ 7 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCompetitorService.java

@@ -15,6 +15,13 @@ public interface IBlinkCompetitorService {
      */
     ResponseDTO<String> supportsCompetitorCreate(BlinkCompetitorDTO dto);
 
+    /**
+     * 编辑竞争对手
+     *
+     * @param dto
+     * @return
+     */
+    ResponseDTO<String> supportsCompetitorUpdate(BlinkCompetitorDTO dto);
     /**
      * 分页查询竞争对手列表
      *

+ 10 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkCompetitorProjectOfferRepository.xml

@@ -0,0 +1,10 @@
+<?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.wx.blink.backend.repository.BlinkCompetitorProjectOfferRepository">
+    <select id="supportsCompetitorProjectOfferBySituationId"
+            resultType="com.wx.blink.backend.domain.dto.BlinkCompetitorProjectOfferDTO">
+        select * from blink_competitor_project_situation_offer
+        where deleted_flag=0
+          and situation_id=#{situationId}
+    </select>
+</mapper>

+ 34 - 7
bound-link-api/blink-backend/src/main/resources/mapper/BlinkCompetitorProjectRepositoryMapper.xml

@@ -9,9 +9,6 @@
         <if test="projectName != null and projectName != ''">
             AND project_name = #{projectName}
         </if>
-        <if test="competitorId != null and competitorId != ''">
-            AND competitor_id = #{competitorId}
-        </if>
         <if test="id != null">
             AND id = #{id}
         </if>
@@ -25,16 +22,46 @@
         <if test="query.projectName != null and query.qualificationprojectName != ''">
             AND project_name LIKE concat('%', #{query.projectName}, '%')
         </if>
-        <if test="query.competitorId != null">
-            AND competitor_id = #{query.competitorId}
-        </if>
+<!--        <if test="query.competitorId != null">-->
+<!--            AND competitor_id = #{query.competitorId}-->
+<!--        </if>-->
         order by create_time desc
     </select>
     <select id="supportsCompetitorProjectQtyByCompetitorId" resultType="java.lang.Integer">
         select COUNT(1) cnt
         from blink_competitor_project_situation
         where deleted_flag = 0
-        and competitor_id=#{competitorId}
+       -- and competitor_id=#{competitorId}
+    </select>
+    <select id="supportsCompetitorProjectByCompetitorIdQueryPage"
+            resultType="com.wx.blink.backend.domain.dto.BlinkCompetitorProjectDTO">
+        select si.*
+        from blink_competitor_project_situation si
+                 inner join blink_competitor_project_situation_offer offer
+                            on si.id=offer.situation_id and offer.deleted_flag = 0
+        where si.deleted_flag = 0
+        <if test="query.competitorId != null">
+            and offer.competitor_id = #{query.competitorId}
+        </if>
+        <if test="query.projectName != null and query.projectName != ''">
+            and si.project_name LIKE concat('%', #{query.projectName}, '%')
+        </if>
+        <if test="query.customerName != null and query.customerName != ''">
+            and si.customer_name LIKE concat('%', #{query.customerName}, '%')
+        </if>
+          <if test="query.isOffer != null">
+              and si.is_offer = #{query.isOffer}
+          </if>
+          <if test="query.isAward != null">
+              and si.is_award = #{query.isAward}
+          </if>
+    </select>
+    <select id="getById"
+            resultType="com.wx.blink.backend.domain.dataobject.BlinkCompetitorProjectDO">
+        select *
+        from blink_competitor_project_situation
+        where deleted_flag = 0
+          and id = #{id}
     </select>
 
 </mapper>

+ 4 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkCompetitorRepositoryMapper.xml

@@ -1,6 +1,10 @@
 <?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.wx.blink.backend.repository.BlinkCompetitorRepository">
+    <insert id="saveCompetitorFormerName">
+        insert into blink_competitor_former_name(competitor_id, former_name, deleted_flag, create_user_id,create_time,update_user_id,update_time)
+        values (#{competitorId}, #{formerName},0,#{createUserId},#{createTime},#{updateUserId},#{updateTime})
+    </insert>
     <!--    查询单个竞争对手-->
     <select id="queryByCompetitorName" resultType="com.wx.blink.backend.domain.dataobject.BlinkCompetitorDO">
         select *