From 076b7bd362b9f8be29b4884e84eeaeb032d07fc5 Mon Sep 17 00:00:00 2001 From: ajaxfan <909938737@qq.com> Date: Tue, 16 Feb 2021 12:11:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BizServiceEbtpProjectApplication.java | 16 +- .../baseoperlog/aop/OperLogAspect.java | 25 ++- .../project/common/ProjectCommonUtil.java | 30 ++++ .../project/common/ProjectExceptionEnum.java | 10 ++ .../mall/ebtp/project/feign/EbtpRespsApi.java | 10 +- .../ebtp/project/feign/entity/TdocVO.java | 16 ++ .../controller/ProjectEntrustController.java | 16 ++ .../projectentrust/entity/ProjectEntrust.java | 2 +- .../entity/inquiryentity/AttachmentVO.java | 5 +- .../InquiryResponseFormatVO.java | 7 +- .../ProjectEntrustInquiryServiceImpl.java | 165 +++++++++++++----- .../impl/ProjectEntrustServiceImpl.java | 37 +++- .../controller/ProjectRecordController.java | 35 +++- .../dao/ProjectRecordMapper.java | 11 ++ .../dao/mapper/ProjectRecordMapper.xml | 8 + .../projectrecord/entity/ProjectRecord.java | 4 +- .../projectrecord/entity/ProjectRecordVO.java | 6 + .../service/IProjectRecordService.java | 14 ++ .../impl/ProjectRecordServiceImpl.java | 135 +++++++++----- .../impl/ProjectReEvaluationServiceImpl.java | 23 ++- .../controller/ProjectSectionController.java | 14 +- .../dao/mapper/ProjectSectionMapper.xml | 1 + .../projectsection/entity/ProjectSection.java | 2 +- .../service/IProjectSectionService.java | 8 + .../impl/ProjectSectionServiceImpl.java | 27 ++- 25 files changed, 498 insertions(+), 129 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/BizServiceEbtpProjectApplication.java b/src/main/java/com/chinaunicom/mall/ebtp/project/BizServiceEbtpProjectApplication.java index e2b1ea1..76f05ab 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/BizServiceEbtpProjectApplication.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/BizServiceEbtpProjectApplication.java @@ -1,5 +1,6 @@ package com.chinaunicom.mall.ebtp.project; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -8,17 +9,18 @@ import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; - -@SpringBootApplication(exclude = { DruidDataSourceAutoConfigure.class, DataSourceAutoConfiguration.class }) +@SpringBootApplication(exclude = { + DataSourceAutoConfiguration.class, + DruidDataSourceAutoConfigure.class +}) @EnableFeignClients @EnableEurekaClient -@MapperScan({ "com.chinaunicom.mall.ebtp.project.**.dao" }) +@MapperScan({"com.chinaunicom.mall.ebtp.project.**.dao"}) @ComponentScan("com.chinaunicom.mall.ebtp.*") public class BizServiceEbtpProjectApplication { - public static void main(String[] args) { - SpringApplication.run(BizServiceEbtpProjectApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(BizServiceEbtpProjectApplication.class, args); + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/baseoperlog/aop/OperLogAspect.java b/src/main/java/com/chinaunicom/mall/ebtp/project/baseoperlog/aop/OperLogAspect.java index fb15434..4ae7992 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/baseoperlog/aop/OperLogAspect.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/baseoperlog/aop/OperLogAspect.java @@ -1,10 +1,13 @@ package com.chinaunicom.mall.ebtp.project.baseoperlog.aop; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - +import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser; +import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService; +import com.chinaunicom.mall.ebtp.common.util.HttpContextUtils; +import com.chinaunicom.mall.ebtp.common.util.IPUtils; +import com.chinaunicom.mall.ebtp.common.util.JsonUtils; +import com.chinaunicom.mall.ebtp.project.baseoperlog.service.IBaseOperLogService; +import groovy.util.logging.Slf4j; +import io.swagger.annotations.ApiOperation; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -16,20 +19,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser; -import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService; -import com.chinaunicom.mall.ebtp.common.util.HttpContextUtils; -import com.chinaunicom.mall.ebtp.common.util.IPUtils; -import com.chinaunicom.mall.ebtp.common.util.JsonUtils; -import com.chinaunicom.mall.ebtp.project.baseoperlog.service.IBaseOperLogService; - -import io.swagger.annotations.ApiOperation; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; /** * 操作审计日志切面类 * * @author huangjl */ +@Slf4j @Aspect @Component public class OperLogAspect { diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java index 9ca83e5..cdbeabb 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectCommonUtil.java @@ -1,5 +1,8 @@ package com.chinaunicom.mall.ebtp.project.common; +import java.util.HashMap; +import java.util.Map; + /** * 项目建档辅助字段实体类 * @@ -351,6 +354,11 @@ public class ProjectCommonUtil { */ public static final String PARTAKE_TYPE_1 = "partake_type_1"; + /** + * 参与方式 发公告 + */ + public static final String PARTAKE_TYPE_2 = "partake_type_2"; + /** * 项目失败描述字典名 */ @@ -490,4 +498,26 @@ public class ProjectCommonUtil { * 是否使用简化流程 0 否 1 是 */ public static final String IS_APPROVAL_1 = "1"; + + /** + * 询价单:1询价文件,2项目需求方案或技术方案,3其他附件; + */ + public static final int INQUIRY_FILE = 1; + + /** + * 模块类型:1招募结果,2询价单,3归档单,4合同模版 + */ + public static final int MODULE_TYPE_2 = 2; + + public static Map PROCUREMENT_MODE_MAP = new HashMap(){{ + String[] biddingArray = {PROCUREMENT_MODE_1,PROCUREMENT_MODE_2}; + String[] recruitArray = {PROCUREMENT_MODE_4}; + String[] negotiationArray = {PROCUREMENT_MODE_5,PROCUREMENT_MODE_6}; + //招标 + this.put("01",biddingArray); + //招募 + this.put("03",recruitArray); + //谈判 + this.put("04",negotiationArray); + }}; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java index c4ee29b..0aac817 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java @@ -135,6 +135,16 @@ public enum ProjectExceptionEnum implements BusinessExceptionAssert { FRAME_EXCEPTION_PROJECT_EXCEPTION_CHECK_STATUS_ERROR(110058, "采购系统子项目信息版本已升级不可以发起重新评审"), FRAME_EXCEPTION_PROJECT_EXCEPTION_SECTION_BUSINESS_MODULE_ERROR(110059, "异常的标段中含有已归档标段,不可以进行异常处理!"), + + FRAME_EXCEPTION_INQUIRY_ATTACHMENT_LIST_EMPTY(110060, "询价文件不能为空"), + + FRAME_EXCEPTION_PROJECT_ENTRUST_REVIEW_NUM_EMPTY(110061, "评审次数不能为空"), + + FRAME_EXCEPTION_PROJECT_ENTRUST_SUPP_QUALIFY_EMPTY(110062, "资审方式不能为空"), + + FRAME_EXCEPTION_PROJECT_ENTRUST_COMPAR_SELECT_MODE_EMPTY(110063, "比选方式不能为空"), + + FRAME_EXCEPTION_PROJECT_SECTION_UPDATE_CHOOSE_PROCESS(110064, "标段流程信息不能为空,请选择流程!"), ; /** diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/feign/EbtpRespsApi.java b/src/main/java/com/chinaunicom/mall/ebtp/project/feign/EbtpRespsApi.java index 4ac0f80..620d352 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/feign/EbtpRespsApi.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/feign/EbtpRespsApi.java @@ -32,5 +32,13 @@ public interface EbtpRespsApi { * @return 返回应答文件信息 */ @PostMapping("/v1/tdoc/initInquiryResponseFormat") - BaseResponse> initInquiryResponseFormat(@RequestBody TdocVO tdocParam); + BaseResponse initInquiryResponseFormat(@RequestBody TdocVO tdocParam); + + /** + * 修改项目报价截止时间 + * @param tdoc 应答文件传入实体 + * @return 返回结果 + */ + @PostMapping("/v1/tdoc/updateTdocEndDateBySectionId") + BaseResponse updateTdocEndDateBySectionId(@RequestBody TdocVO tdoc); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/feign/entity/TdocVO.java b/src/main/java/com/chinaunicom/mall/ebtp/project/feign/entity/TdocVO.java index 3f20ef0..9ec5db8 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/feign/entity/TdocVO.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/feign/entity/TdocVO.java @@ -25,9 +25,25 @@ public class TdocVO implements Serializable { private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "id") + private String id; + + @ApiModelProperty(value = "项目id") + private String tpId; + + @ApiModelProperty(value = "招标项目名称") + private String projectName; + @ApiModelProperty(value = "标段id") private String sectionId; + @ApiModelProperty(value = "标段名称") + private String sectionName; + + @ApiModelProperty("项目创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createDate; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "应答截止时间") diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java index bba5a41..fe7a9dc 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/controller/ProjectEntrustController.java @@ -8,6 +8,7 @@ import com.chinaunicom.mall.ebtp.project.baseoperlog.aop.OperLog; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrust; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ebpentity.PurpImplementSendVO; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.inquiryentity.InquiryVO; import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustInquiryService; import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustService; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.inquiryentity.InquiryNoticeVO; @@ -231,5 +232,20 @@ public class ProjectEntrustController{ return BaseResponse.success(inquiryService.inquiryNotice(inquiryNoticeVO)); } + + /** + * 初始化询价信息接口 + * + * @param inquiryVO 询价返回实体 + * + * @return 返回结果 + */ + @OperLog("初始化询价信息接口") + @ApiOperation("初始化询价信息接口") + @PostMapping("/initInquiryProjectEntrust") + public BaseResponse initInquiryProjectEntrust(@ApiParam(value = "询价实体", required = true) @RequestBody @Valid InquiryVO inquiryVO){ + + return BaseResponse.success(inquiryService.initProjectEntrust(inquiryVO)); + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrust.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrust.java index a202d9d..3298628 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrust.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/ProjectEntrust.java @@ -188,7 +188,7 @@ public class ProjectEntrust extends BaseEntity implements Serializable { /** * 对应采购平台的采购方案id(项目实施ID) */ - @ApiModelProperty(value = "对应采购平台的采购方案id") + @ApiModelProperty(value = "对应采购平台的项目实施ID") private String procurementPlanId; diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/AttachmentVO.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/AttachmentVO.java index 1073af7..17df86d 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/AttachmentVO.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/AttachmentVO.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -37,9 +38,10 @@ public class AttachmentVO implements Serializable { @ApiModelProperty(value = "单据id") private String billId; - @ApiModelProperty(value = "业务类型:招募结果:1评审报告,2决策依据,3其它附件;询价单:1,2,3;归档单:1,2,3") + @ApiModelProperty(value = "业务类型:招募结果:1评审报告,2决策依据,3其它附件;1询价文件,2项目需求方案或技术方案,3其他附件;归档单:1询价文件,2项目需求方案或技术方案,3其他附件,4决策或审批依据,5定向询价依据文件,6立项文件,7其他附件(方案审批单),8评审报告,9其他附件") private Integer businessType; + @NotNull(message = "附件名称不能为空") @ApiModelProperty(value = "附件名称") private String fileName; @@ -49,6 +51,7 @@ public class AttachmentVO implements Serializable { @ApiModelProperty(value = "附件大小,B") private Long fileSize; + @NotNull(message = "文档中心附件ID不能为空") @ApiModelProperty(value = "文档中心文件id") private String fileId; diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/InquiryResponseFormatVO.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/InquiryResponseFormatVO.java index 40ff737..3d3e36b 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/InquiryResponseFormatVO.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/entity/inquiryentity/InquiryResponseFormatVO.java @@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -36,12 +37,14 @@ public class InquiryResponseFormatVO implements Serializable { @ApiModelProperty(value = "类别名称") private String categoryName; - @ApiModelProperty(value = "类别编码") - private String categoryCode; + @NotNull(message = "类别编码不能为空") + @ApiModelProperty(value = "类别编码 0-商务、1-技术、2-服务、3-报价、4-其他") + private String code; @ApiModelProperty(value = "名称") private String name; + @NotNull(message = "格式类型不能为空") @ApiModelProperty(value = "格式类型 0:rar/zip ; 1: pdf") private Integer type; diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java index db5d284..b40131f 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java @@ -2,8 +2,10 @@ package com.chinaunicom.mall.ebtp.project.projectentrust.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; +import com.chinaunicom.mall.ebtp.project.common.EbpProjectCommonUtil; import com.chinaunicom.mall.ebtp.project.common.InquiryCommonUtil; import com.chinaunicom.mall.ebtp.project.common.ProjectCommonUtil; import com.chinaunicom.mall.ebtp.project.common.ProjectExceptionEnum; @@ -16,6 +18,7 @@ import com.chinaunicom.mall.ebtp.project.projectentrust.dao.ProjectEntrustMapper import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrust; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustExpand; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO; +import com.chinaunicom.mall.ebtp.project.projectentrust.entity.inquiryentity.AttachmentVO; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.inquiryentity.InquiryNoticeVO; import com.chinaunicom.mall.ebtp.project.projectentrust.entity.inquiryentity.InquiryVO; import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustExpandService; @@ -24,13 +27,14 @@ import com.chinaunicom.mall.ebtp.project.projectentrust.service.IProjectEntrustS import com.chinaunicom.mall.ebtp.project.projectexception.service.IProjectExceptionService; import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecordVO; import com.chinaunicom.mall.ebtp.project.projectrecord.service.IProjectRecordService; +import com.chinaunicom.mall.ebtp.project.projectsection.entity.ProjectSection; import com.chinaunicom.mall.ebtp.project.projectsection.service.IProjectSectionService; +import io.seata.spring.annotation.GlobalTransactional; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.time.LocalDate; import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; @@ -58,6 +62,9 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl response = ebtpRespsApi.updateTdocEndDateBySectionId(tdocVO); + if(!response.isSuccess()){ + ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_SECTION_NOT_FIND.customValidName(response.getMessage(),!response.isSuccess()); + } + result = response.getData(); + } + + //修改评审室开始时间 + if(null != inquiryNoticeVO.getReviewStartTime()){ + Map updateProcessMap = new HashMap<>(16); + updateProcessMap.put(section.getId(),inquiryNoticeVO.getReviewStartTime()); + BaseResponse response = processApi.updateOpenTime(updateProcessMap); + if(!response.isSuccess()){ + ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_SECTION_NOT_FIND.customValidName(response.getMessage(),!response.isSuccess()); + } + result = response.getData(); + } + + return result; + } + /** * 询价返回告知结果进行初始化项目以及询价文件和投标应答格式文件信息 * @param inquiryNoticeVO 询价返回信息结果实体 @@ -145,6 +188,7 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl response = bidApi.insertTp(xjVO); + if(!response.isSuccess()){ + ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_ENTRUST_NOT_FIND.customValidName(response.getMessage(),!response.isSuccess()); + } //初始化应答文件 TdocVO tdocVO = new TdocVO(); tdocVO.setList(inquiryVO.getResponseFormatList()); tdocVO.setSectionId(sectionId); + tdocVO.setTpId(recordVO.getId()); + tdocVO.setProjectName(recordVO.getProjectName()); + tdocVO.setCreateDate(recordVO.getCreateDate()); + tdocVO.setSectionName(recordVO.getProjectName()+ "包件"); tdocVO.setEndDate(inquiryVO.getEndTime()); - ebtpRespsApi.initInquiryResponseFormat(tdocVO); - + response = ebtpRespsApi.initInquiryResponseFormat(tdocVO); + if(!response.isSuccess()){ + ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_ENTRUST_NOT_FIND.customValidName(response.getMessage(),!response.isSuccess()); + } //修改评审室开始时间 - Map updateProcessMap = new HashMap<>(); + Map updateProcessMap = new HashMap<>(16); updateProcessMap.put(sectionId,inquiryVO.getReviewStartTime()); - processApi.updateOpenTime(updateProcessMap); + response = processApi.updateOpenTime(updateProcessMap); + if(!response.isSuccess()){ + ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_ENTRUST_NOT_FIND.customValidName(response.getMessage(),!response.isSuccess()); + } } /** @@ -187,46 +243,54 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl>> getUserProjectRecordCount(@ApiParam(value = "主键id", required = true) @PathVariable String selectDate){ + + return BaseResponse.success(projectRecordService.getUserProjectRecordCount(selectDate)); + } + + /** + * 查询项目经理登录首页展示项目信息 + * @param limit 展示条数 + * @return 返回结果 <项目采购模式,项目集合> + */ + @ApiOperation("查询项目经理登录首页展示项目信息") + @PostMapping("/getUserProjectRecordListByProcurementMode/{limit}") + public BaseResponse>> getUserProjectRecordListByProcurementMode(@ApiParam(value = "主键id", required = true) @PathVariable Integer limit){ + + return BaseResponse.success(projectRecordService.getUserProjectRecordListByProcurementMode(limit)); + } + } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/ProjectRecordMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/ProjectRecordMapper.java index 997cc17..fc33de1 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/ProjectRecordMapper.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/ProjectRecordMapper.java @@ -3,8 +3,12 @@ package com.chinaunicom.mall.ebtp.project.projectrecord.dao; import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecord; +import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecordVO; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + /** * 项目建档mapper * @author daixc @@ -26,4 +30,11 @@ public interface ProjectRecordMapper extends IBaseMapper { * @return 返回结果 */ int deletePhysical(@Param(value = "id") String id); + + /** + * 项目首页查询信息 + * @param vo 实体 + * @return 返回结果 + */ + List> getUserProjectRecordCount(@Param(value = "vo") ProjectRecordVO vo); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/mapper/ProjectRecordMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/mapper/ProjectRecordMapper.xml index b568d27..70dea7a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/mapper/ProjectRecordMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/dao/mapper/ProjectRecordMapper.xml @@ -109,4 +109,12 @@ delete from biz_project_record where id = #{id} + \ No newline at end of file diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecord.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecord.java index a45e7b6..3a318e0 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecord.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecord.java @@ -324,7 +324,7 @@ public class ProjectRecord extends BaseEntity implements Serializable { @ApiModelProperty(value = "是否开标使用IPass进行解密 0 是 1 否") private String isIPassDecode; - @ApiModelProperty(value = "招募开始时间") + @ApiModelProperty(value = "招募开始时间 | 询价预计评审开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime recruitStartTime; @@ -341,7 +341,7 @@ public class ProjectRecord extends BaseEntity implements Serializable { private String isApproval; - @ApiModelProperty(value = "邀请方式(作废 和 参与方式重复)") + @ApiModelProperty(value = "询价方式(公开询价 定向询价)") private String invitationMethod; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java index c23d7cc..92289c0 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/entity/ProjectRecordVO.java @@ -63,4 +63,10 @@ public class ProjectRecordVO extends ProjectRecord implements Serializable { @ApiModelProperty(value = "采购方式集合") private List selectBidMethod; + @ApiModelProperty(value = "查询条数") + private Integer limit; + + @ApiModelProperty(value = "首页查询时间") + private String selectDate; + } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java index ce7faf4..87e470a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/IProjectRecordService.java @@ -47,6 +47,20 @@ public interface IProjectRecordService extends IBaseService{ */ boolean assent(String entrustId); + /** + * 查询当前用户登录首页展示项目信息 + * @param limit 展示条数 + * @return 返回结果 <项目采购模式,项目集合> + */ + Map> getUserProjectRecordListByProcurementMode(Integer limit); + + /** + * 查询当前项目经理参与项目分类统计 + * @param selectDate 查询条件 + * @return 返回结果 + */ + List> getUserProjectRecordCount(String selectDate); + /** * 删除项目建档信息 * @param id 项目建档ID diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java index de8b7bf..eca3fe2 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java @@ -47,15 +47,13 @@ import com.chinaunicom.mall.ebtp.project.sectionsupplier.entity.SectionSupplier; import com.chinaunicom.mall.ebtp.project.sectionsupplier.entity.SectionSupplierVO; import com.chinaunicom.mall.ebtp.project.sectionsupplier.service.ISectionSupplierService; import io.seata.spring.annotation.GlobalTransactional; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 对数据表 biz_project_record 操作的 serviceImpl @@ -63,6 +61,7 @@ import java.util.Map; * @date 2020/10/26 * */ +@Slf4j @Service public class ProjectRecordServiceImpl extends BaseServiceImpl implements IProjectRecordService { @@ -130,8 +129,8 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl 0){ query.in("bid_method_dict", projectRecordVO.getSelectBidMethod()); } + if(null != projectRecordVO.getLimit()){ + query.last("limit "+ projectRecordVO.getLimit()); + } + return query; } @Override public IPage getPage(ProjectRecordVO projectRecordVO) { + QueryWrapper query = getProjectRecordQueryWrapper(projectRecordVO); if(null == projectRecordVO.getBasePageRequest()){ @@ -230,6 +238,7 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl sectionIds.add(key)); sectionFlowService.saveSectionList(sectionIds,ProjectCommonUtil.BUSINESS_MODULE_1,businessModule); - - if(null != projectRecord){ - initInvitation(projectRecord); - } + //初始化邀请调用 + initInvitation(projectRecord); return result; } @@ -299,7 +306,7 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl result = ebtpMallProcessApi.initialize(id,sectionMaps,isReviewMethod); ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_SECTION_INIT_ERROR.customValid(!result.isSuccess()); - + log.info("初始化流程返回 projectID:"+id + " 返回结果:"+JsonUtils.objectToJson(result)); } @Override @@ -330,32 +337,36 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("project_id",id); - - //判断是否资格预审项目 - if (StringUtils.equals(projectRecord.getBiddingSignDict(), ProjectCommonUtil.EXAMINATION_METHOD_1) || - StringUtils.equals(projectRecord.getBiddingSignDict(), ProjectCommonUtil.EXAMINATION_METHOD_3) - ) { - //资格预审 大于2 资审招标 - queryWrapper.gt("business_module",ProjectCommonUtil.BUSINESS_MODULE_2); - }else{ - //不是资格预审 大于7 招标 - queryWrapper.gt("business_module",ProjectCommonUtil.BUSINESS_MODULE_7); - } - - //标段信息状态不能过招标才可以进行修改 - int count = projectSectionService.count(queryWrapper); - - if(count <= 0){ - result = true; - } + result = isMoreThanTheToBId(projectRecord); } } return result; } + /** + * 获取进行中项目标段是否大于招标环节 如果大于前端项目和标段信息不允许修改 + * @param projectRecord 项目信息 + * @return 返回结果 + */ + private boolean isMoreThanTheToBId(ProjectRecord projectRecord) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("project_id", projectRecord.getId()); + + //判断是否资格预审项目 + if (StringUtils.equals(projectRecord.getBiddingSignDict(), ProjectCommonUtil.EXAMINATION_METHOD_1) || + StringUtils.equals(projectRecord.getBiddingSignDict(), ProjectCommonUtil.EXAMINATION_METHOD_3) + ) { + //资格预审 大于2 资审招标 + queryWrapper.gt("business_module",ProjectCommonUtil.BUSINESS_MODULE_2); + }else{ + //不是资格预审 大于7 招标 + queryWrapper.gt("business_module",ProjectCommonUtil.BUSINESS_MODULE_7); + } + //标段信息状态不能过招标才可以进行修改 + int count = projectSectionService.count(queryWrapper); + return count <= 0; + } + @Override public boolean initProjectByIndependentProcurement(ProjectEntrustVO projectEntrustVO) { //1 拼装信息 @@ -411,6 +422,39 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl> getUserProjectRecordListByProcurementMode(Integer limit){ + limit = null == limit? 5:limit; + BaseCacheUser cacheUser = cacheUserService.getCacheUser(); + Map> resultMap = new HashMap<>(16); + for(String key:ProjectCommonUtil.PROCUREMENT_MODE_MAP.keySet()){ + ProjectRecordVO vo = new ProjectRecordVO(); + String[] procurementModes = ProjectCommonUtil.PROCUREMENT_MODE_MAP.get(key); + //如果当前查询采购方式大于1种 则放入list中 + if(procurementModes.length > 1){ + vo.setSelectBidMethod(new ArrayList<>(Arrays.asList(procurementModes))); + }else{ + vo.setBidMethodDict(procurementModes[0]); + } + vo.setLimit(limit); + vo.setAppManagerId(cacheUser.getUserId()); + QueryWrapper query = getProjectRecordQueryWrapper(vo); + query.orderByDesc("create_date"); + resultMap.put(key,this.list(query)); + } + return resultMap; + } + + @Override + public List> getUserProjectRecordCount(String selectDate){ + BaseCacheUser cacheUser = cacheUserService.getCacheUser(); + ProjectRecordVO vo = new ProjectRecordVO(); + vo.setAppManagerId(cacheUser.getUserId()); + vo.setSelectDate(selectDate); + List> result = projectRecordMapper.getUserProjectRecordCount(vo); + return result; + } + /** * 校验项目提交时前置条件 * @param id 项目ID @@ -496,8 +540,8 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl implements IProjectReEvaluationService { @@ -325,31 +328,49 @@ public class ProjectReEvaluationServiceImpl extends BaseServiceImpl response = mallProcessApi.againinitialize(evaluation.getProjectId(), evaluation.getSectionId(), roomSort); ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(response.getMessage(),!response.isSuccess()); - + log.info("初始化评审 返回结果:"+ JsonUtils.objectToJson(response)); AgainRoomVO againRoomVO = response.getData(); + //复制招标信息 + log.info("复制招标信息 请求参数:"+ JsonUtils.objectToJson(againRoomVO)); response = ebtpMallBidApi.copyDocument(againRoomVO); ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(response.getMessage(),!response.isSuccess()); + log.info("复制招标信息 返回结果:"+ JsonUtils.objectToJson(response)); //复制投标信息 + log.info("复制投标信息 请求参数:"+ JsonUtils.objectToJson(response.getData()),evaluation.getAssessId()); response = ebtpTenderApi.reviewAgain(response.getData(),evaluation.getAssessId()); ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(response.getMessage(),!response.isSuccess()); + log.info("复制投标信息 返回结果:"+ JsonUtils.objectToJson(response)); //复制应答信息 + log.info("复制应答信息 请求参数:"+ JsonUtils.objectToJson(response.getData())); response = ebtpRespsApi.copyTdocByAgainRoom(response.getData()); ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(response.getMessage(),!response.isSuccess()); + log.info("复制应答信息 返回结果:"+ JsonUtils.objectToJson(response)); //复制评审设置信息 + log.info("复制评审设置信息 请求参数:"+ JsonUtils.objectToJson(response.getData())); BaseResponse rsmsResponse = ebtpRsmsApi.again(response.getData()); ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(rsmsResponse.getMessage(),!rsmsResponse.isSuccess()); + log.info("复制评审设置信息 返回结果:"+ JsonUtils.objectToJson(rsmsResponse)); //是否专家与上次一致 如果 是 进行复制 if(StringUtils.equals(ProjectCommonUtil.IS_AGREEMENT_YES,evaluation.getIsAgreement())){ BaseResponse juryResponse = ebtpRsmsApi.copyJury(evaluation.getAssessId(),againRoomVO.getRoomId()); ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(juryResponse.getMessage(),!juryResponse.isSuccess()); } + + //修改评审开始时间 + Map updateProcessMap = new HashMap<>(16); + updateProcessMap.put(evaluation.getSectionId(),evaluation.getEvaluationStartTime()); + log.info("修改评审开始时间 请求参数:"+ JsonUtils.objectToJson(updateProcessMap)); + rsmsResponse = mallProcessApi.updateOpenTime(updateProcessMap); + ProjectExceptionEnum.FRAME_EXCEPTION_ERROR.customValidName(rsmsResponse.getMessage(),!rsmsResponse.isSuccess()); + log.info("修改评审开始时间 返回结果:"+ JsonUtils.objectToJson(rsmsResponse)); sectionService.calibrationToEvaluation(evaluation.getSectionId()); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java index ce08b1c..fb4468f 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/controller/ProjectSectionController.java @@ -235,7 +235,7 @@ public class ProjectSectionController{ * @param sectionId 项目标段ID * @return 返回结果 */ - @ApiOperation("标段修改业务模块 定标到归档") + @ApiOperation("标段修改业务模块 修改标段到归档") @PostMapping("/calibrationToArchive") public BaseResponse calibrationToArchive(@ApiParam(value = "项目标段ID", required = true) @RequestParam(name = "sectionId") String sectionId){ @@ -254,6 +254,18 @@ public class ProjectSectionController{ return BaseResponse.success(projectSectionService.calibrationToEvaluation(sectionId)); } + /** + * 标段修改业务模块 定标到评标 + * @param sectionId 项目标段ID + * @return 返回结果 + */ + @ApiOperation("标段修改业务模块 定标到投标 招募多轮专用") + @PostMapping("/calibrationToTender") + public BaseResponse calibrationToTender(@ApiParam(value = "项目标段ID集合", required = true) @RequestParam(name = "sectionId") String sectionId){ + + return BaseResponse.success(projectSectionService.calibrationToTender(sectionId)); + } + /** * 项目标段信息查询数据(项目标段和项目拼装数据) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml index 3a9387c..ae86bcc 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectsection/dao/mapper/ProjectSectionMapper.xml @@ -160,6 +160,7 @@ from biz_project_section t left join biz_project_section_exception e on e.section_id = t.id and e.exception_id = ${exceptionId} where t.project_id = ${projectId} and t.status != '9' + and exists (select e.* from biz_project_section_exception e,biz_project_section s where s.id = e.section_id and s.project_id = ${projectId} and e.exception_id != ${exceptionId})