报价结构化
This commit is contained in:
@ -0,0 +1,76 @@
|
|||||||
|
package com.chinaunicom.mall.ebtp.project.bidratio.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.entity.BidRatio;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.service.IBidRatioService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "中标/中选分配比例")
|
||||||
|
@RequestMapping("/v1/expert/bidratio")
|
||||||
|
public class BidRatioController{
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IBidRatioService ibidRatioService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入新数据
|
||||||
|
*
|
||||||
|
* @param bidRatio
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation("插入新数据")
|
||||||
|
@PostMapping("/insert")
|
||||||
|
public BaseResponse<Boolean> insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid BidRatio bidRatio){
|
||||||
|
|
||||||
|
boolean save = ibidRatioService.save(bidRatio);
|
||||||
|
|
||||||
|
return BaseResponse.success(save);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改数据
|
||||||
|
*
|
||||||
|
* @param bidRatio
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation("修改数据")
|
||||||
|
@PostMapping("/update")
|
||||||
|
public BaseResponse<Boolean> update(@ApiParam(value = "对象数据", required = true) @RequestBody BidRatio bidRatio){
|
||||||
|
|
||||||
|
Boolean i = ibidRatioService.updateById(bidRatio);
|
||||||
|
|
||||||
|
return BaseResponse.success(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation("查询数据")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public BaseResponse<BidRatio> get(@ApiParam(value = "主键id", required = true) @PathVariable String id){
|
||||||
|
|
||||||
|
BidRatio bidRatio = ibidRatioService.getById(id);
|
||||||
|
|
||||||
|
return BaseResponse.success(bidRatio);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.chinaunicom.mall.ebtp.project.bidratio.dao;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.entity.BidRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @auto.generated
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface BidRatioMapper extends BaseMapper<BidRatio> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
<?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.chinaunicom.mall.ebtp.project.bidratio.dao.BidRatioMapper">
|
||||||
|
<resultMap id="BaseResultMap"
|
||||||
|
type="com.chinaunicom.mall.ebtp.project.bidratio.entity.BidRatio">
|
||||||
|
<result column="id" jdbcType="VARCHAR" property="id"/>
|
||||||
|
<result column="intended_bid_rank" jdbcType="INTEGER" property="intendedBidRank"/>
|
||||||
|
<result column="intended_bid_ratio" jdbcType="DECIMAL" property="intendedBidRatio"/>
|
||||||
|
<result column="project_id" jdbcType="VARCHAR" property="projectId"/>
|
||||||
|
<result column="section_id" jdbcType="VARCHAR" property="sectionId"/>
|
||||||
|
<result column="create_by" jdbcType="VARCHAR" property="createBy"/>
|
||||||
|
<result column="create_date" jdbcType="TIMESTAMP" property="createDate"/>
|
||||||
|
<result column="update_by" jdbcType="VARCHAR" property="updateBy"/>
|
||||||
|
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/>
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
a.id id,
|
||||||
|
a.intended_bid_rank intendedBidRank,
|
||||||
|
a.intended_bid_ratio intendedBidRatio,
|
||||||
|
a.project_id projectId,
|
||||||
|
a.section_id sectionId,
|
||||||
|
a.create_by createBy,
|
||||||
|
a.create_date createDate,
|
||||||
|
a.update_by updateBy,
|
||||||
|
a.update_date updateDate,
|
||||||
|
</sql>
|
||||||
|
<!--逻辑删除方法 此方法为代码生成器生成 不允许修改 如有特殊需求 请自行新建SQL语句-->
|
||||||
|
<update id="deleteOff" parameterType="java.lang.Long">
|
||||||
|
update biz_project_bid_ratio
|
||||||
|
set
|
||||||
|
delete_flag="deleted"
|
||||||
|
where ID=#{id,jdbcType=BIGINT}
|
||||||
|
</update>
|
||||||
|
</mapper>
|
@ -0,0 +1,92 @@
|
|||||||
|
package com.chinaunicom.mall.ebtp.project.bidratio.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实体类 BidRatio
|
||||||
|
*
|
||||||
|
* @auto.generated
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@TableName(value = "biz_project_bid_ratio", autoResultMap = true)
|
||||||
|
public class BidRatio implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拟中标候选人排名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "拟中标候选人排名")
|
||||||
|
private Integer intendedBidRank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拟分配比例
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "拟分配比例")
|
||||||
|
private BigDecimal intendedBidRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "项目ID")
|
||||||
|
private String projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分包标段id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "分包标段id")
|
||||||
|
private String sectionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建者
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "创建者")
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@TableField(typeHandler = CustomLocalDateTimeTypeHandler.class)
|
||||||
|
private java.time.LocalDateTime createDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新者
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "更新者")
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "更新时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||||
|
@TableField(typeHandler = CustomLocalDateTimeTypeHandler.class)
|
||||||
|
private java.time.LocalDateTime updateDate;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.chinaunicom.mall.ebtp.project.bidratio.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.entity.BidRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对数据表 biz_project_bid_ratio 操作的 service
|
||||||
|
* @author Auto create
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface IBidRatioService extends IService<BidRatio>{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.chinaunicom.mall.ebtp.project.bidratio.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.dao.BidRatioMapper;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.entity.BidRatio;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.service.IBidRatioService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
/**
|
||||||
|
* 对数据表 biz_project_bid_ratio 操作的 serviceImpl
|
||||||
|
* @auto.generated
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class BidRatioServiceImpl extends ServiceImpl<BidRatioMapper,BidRatio> implements IBidRatioService {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package com.chinaunicom.mall.ebtp.project.projectentrust.entity.ebpentity;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ProjBidRatioInfoVO{
|
||||||
|
|
||||||
|
@ApiModelProperty("主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("方案id")
|
||||||
|
private Long projId;
|
||||||
|
|
||||||
|
@ApiModelProperty("拟中标候选人排名")
|
||||||
|
private Integer intendedBidRank;
|
||||||
|
|
||||||
|
@ApiModelProperty("拟分配比例")
|
||||||
|
private BigDecimal intendedBidRatio;
|
||||||
|
|
||||||
|
@ApiModelProperty("租户名称")
|
||||||
|
private String tenantName;
|
||||||
|
|
||||||
|
@ApiModelProperty("备用字段1")
|
||||||
|
private String attribute1;
|
||||||
|
|
||||||
|
@ApiModelProperty("备用字段2")
|
||||||
|
private String attribute2;
|
||||||
|
|
||||||
|
@ApiModelProperty("备用字段3")
|
||||||
|
private String attribute3;
|
||||||
|
|
||||||
|
@ApiModelProperty("备用字段4")
|
||||||
|
private String attribute4;
|
||||||
|
|
||||||
|
@ApiModelProperty("备用字段5")
|
||||||
|
private String attribute5;
|
||||||
|
}
|
@ -11,6 +11,7 @@ import lombok.Data;
|
|||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -167,6 +168,30 @@ public class PurpBaseInfoVO {
|
|||||||
@ApiModelProperty(value = "附件列表")
|
@ApiModelProperty(value = "附件列表")
|
||||||
private List<BaseFileNoPageVO> baseFileVOList;
|
private List<BaseFileNoPageVO> baseFileVOList;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "最高限价")
|
||||||
|
private BigDecimal priceCeiling;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "最高限价说明")
|
||||||
|
private String priceCeilingExplain;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否启用结构化报价 0否;1是")
|
||||||
|
private String isStructureQuote;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "结构化报价模型 001普通报价模型")
|
||||||
|
private String structureQuoteModel;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "结构化报价限价类型 001总价限制;002单价+总价限制")
|
||||||
|
private String structureQuoteLimitType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "中标/中选人数量是否明确 0否;1是")
|
||||||
|
private String bidNumberIsDefinite;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "中标/中选分配比例")
|
||||||
|
private List<ProjBidRatioInfoVO> projBidRatioInfoVoList = new ArrayList<>();
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "中标/中选人数量")
|
||||||
|
private Integer bidDefiniteNumber;
|
||||||
|
|
||||||
@ApiModelProperty(value = "采购内容")
|
@ApiModelProperty(value = "采购内容")
|
||||||
private List<PurpMaterialVO> purpMaterialVOList;
|
private List<PurpMaterialVO> purpMaterialVOList;
|
||||||
|
|
||||||
|
@ -153,6 +153,9 @@ public class PurpMaterialVO {
|
|||||||
@ApiModelProperty(value = "资产价值")
|
@ApiModelProperty(value = "资产价值")
|
||||||
private BigDecimal assetVal;
|
private BigDecimal assetVal;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "单项不含税最高限价")
|
||||||
|
private BigDecimal singlePriceCeiling;
|
||||||
|
|
||||||
@ApiModelProperty(value = "采购方式")
|
@ApiModelProperty(value = "采购方式")
|
||||||
private String purcMode;
|
private String purcMode;
|
||||||
|
|
||||||
|
@ -17,6 +17,8 @@ import com.chinaunicom.mall.ebtp.common.constant.EbtpRoleEnum;
|
|||||||
import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
|
import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
|
||||||
import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
|
import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
|
||||||
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
|
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.entity.BidRatio;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.service.IBidRatioService;
|
||||||
import com.chinaunicom.mall.ebtp.project.checkSpecialCharacters.CheckUtil;
|
import com.chinaunicom.mall.ebtp.project.checkSpecialCharacters.CheckUtil;
|
||||||
import com.chinaunicom.mall.ebtp.project.common.EbpProjectCommonUtil;
|
import com.chinaunicom.mall.ebtp.project.common.EbpProjectCommonUtil;
|
||||||
import com.chinaunicom.mall.ebtp.project.common.InquiryCommonUtil;
|
import com.chinaunicom.mall.ebtp.project.common.InquiryCommonUtil;
|
||||||
@ -127,6 +129,9 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
@Resource
|
@Resource
|
||||||
private CheckUtil checkUtil;
|
private CheckUtil checkUtil;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IBidRatioService bidRatioService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询条件拼接
|
* 查询条件拼接
|
||||||
* @param projectRecordVO 项目建档信息
|
* @param projectRecordVO 项目建档信息
|
||||||
@ -372,6 +377,10 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
BaseResponse<Boolean> result = ebtpMallProcessApi.initialize(id,sectionMaps,isReviewMethod);
|
BaseResponse<Boolean> result = ebtpMallProcessApi.initialize(id,sectionMaps,isReviewMethod);
|
||||||
ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_SECTION_INIT_ERROR.customValid(!result.isSuccess());
|
ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_SECTION_INIT_ERROR.customValid(!result.isSuccess());
|
||||||
log.info("初始化流程返回 projectID:"+id + " 返回结果:"+JsonUtils.objectToJson(result));
|
log.info("初始化流程返回 projectID:"+id + " 返回结果:"+JsonUtils.objectToJson(result));
|
||||||
|
if(result.isSuccess()&&!isReviewMethod){
|
||||||
|
//只有有评审室并且是后审才能初始化应答格式
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -600,6 +609,11 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
List<ProjectSection> sectionList = (List<ProjectSection>)resultMap.get("sectionList");
|
List<ProjectSection> sectionList = (List<ProjectSection>)resultMap.get("sectionList");
|
||||||
projectSectionService.saveBatch(sectionList);
|
projectSectionService.saveBatch(sectionList);
|
||||||
|
|
||||||
|
List<BidRatio> bidRatioList = (List<BidRatio>)resultMap.get("bidRatioList");
|
||||||
|
if(null != bidRatioList){
|
||||||
|
bidRatioService.saveBatch(bidRatioList);
|
||||||
|
}
|
||||||
|
|
||||||
List<SectionMaterial> materialList = (List<SectionMaterial>)resultMap.get("materialList");
|
List<SectionMaterial> materialList = (List<SectionMaterial>)resultMap.get("materialList");
|
||||||
if(null != materialList){
|
if(null != materialList){
|
||||||
sectionMaterialService.saveBatch(materialList);
|
sectionMaterialService.saveBatch(materialList);
|
||||||
@ -744,6 +758,7 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
List<ProjectSection> sectionList = new ArrayList<>();
|
List<ProjectSection> sectionList = new ArrayList<>();
|
||||||
List<SectionMaterial> materialList = new ArrayList<>();
|
List<SectionMaterial> materialList = new ArrayList<>();
|
||||||
List<SectionSupplier> supplierList = new ArrayList<>();
|
List<SectionSupplier> supplierList = new ArrayList<>();
|
||||||
|
List<BidRatio> bidRatioList = new ArrayList<>();
|
||||||
|
|
||||||
//项目标段序号
|
//项目标段序号
|
||||||
int sectionOrderNumber = 1;
|
int sectionOrderNumber = 1;
|
||||||
@ -784,9 +799,26 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
section.setBidSectContractPrice(purpBaseInfoVo.getBudgetAmount());
|
section.setBidSectContractPrice(purpBaseInfoVo.getBudgetAmount());
|
||||||
//评价方法
|
//评价方法
|
||||||
section.setEvalMethodDict(EbpProjectCommonUtil.EVAL_METHOD_MAP.get(projBaseInfoVO.getScoreType()));
|
section.setEvalMethodDict(EbpProjectCommonUtil.EVAL_METHOD_MAP.get(projBaseInfoVO.getScoreType()));
|
||||||
|
//最高限价
|
||||||
|
section.setPriceCeiling(purpBaseInfoVo.getPriceCeiling());
|
||||||
|
//最高限价说明
|
||||||
|
section.setPriceCeilingExplain(purpBaseInfoVo.getPriceCeilingExplain());
|
||||||
|
//是否启用结构化报价 0否;1是
|
||||||
|
section.setIsStructureQuote(purpBaseInfoVo.getIsStructureQuote());
|
||||||
|
//结构化报价模型 001普通报价模型
|
||||||
|
section.setStructureQuoteModel(purpBaseInfoVo.getStructureQuoteModel());
|
||||||
|
//结构化报价限价类型 001总价限制;002单价+总价限制
|
||||||
|
section.setStructureQuoteLimitType(purpBaseInfoVo.getStructureQuoteLimitType());
|
||||||
|
//中标/中选人数量是否明确 0否;1是
|
||||||
|
section.setBidNumberIsDefinite(purpBaseInfoVo.getBidNumberIsDefinite());
|
||||||
|
//中标/中选人数量
|
||||||
|
section.setBidDefiniteNumber(purpBaseInfoVo.getBidDefiniteNumber());
|
||||||
|
|
||||||
|
//中标/中选分配比例
|
||||||
|
bidRatioList.addAll(assembleBidRatio(record.getId(),section.getId(),purpBaseInfoVo.getProjBidRatioInfoVoList()));
|
||||||
//物资
|
//物资
|
||||||
materialList.addAll(assembleMaterial(record.getId(),section.getId(),purpBaseInfoVo.getPurpMaterialVOList()));
|
section.setMaterialList(assembleMaterial(record.getId(),section.getId(),purpBaseInfoVo.getPurpMaterialVOList()));
|
||||||
|
materialList.addAll(section.getMaterialList());
|
||||||
|
|
||||||
//供应商
|
//供应商
|
||||||
supplierList.addAll(assembleSupplier(record.getId(),section.getId(),projBaseInfoVO.getProjSuppRelVOList()));
|
supplierList.addAll(assembleSupplier(record.getId(),section.getId(),projBaseInfoVO.getProjSuppRelVOList()));
|
||||||
@ -794,7 +826,7 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
sectionList.add(section);
|
sectionList.add(section);
|
||||||
|
|
||||||
}
|
}
|
||||||
return getStringObjectMap(record, sectionList, materialList, supplierList);
|
return getStringObjectMap(record, sectionList, materialList, supplierList,bidRatioList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -848,6 +880,8 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
material.setProcurementCount(Optional.ofNullable(purpMaterialVO.getInRequNum()).orElseGet(purpMaterialVO::getRequNum));
|
material.setProcurementCount(Optional.ofNullable(purpMaterialVO.getInRequNum()).orElseGet(purpMaterialVO::getRequNum));
|
||||||
material.setMaterialUnit(purpMaterialVO.getUnit());
|
material.setMaterialUnit(purpMaterialVO.getUnit());
|
||||||
material.setBasePrice(purpMaterialVO.getUnitAmt());
|
material.setBasePrice(purpMaterialVO.getUnitAmt());
|
||||||
|
material.setMaterialCode(purpMaterialVO.getMaterialCode());
|
||||||
|
material.setMaxPriceCeiling(purpMaterialVO.getSinglePriceCeiling());
|
||||||
resultList.add(material);
|
resultList.add(material);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -855,6 +889,32 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 中标/中选分配比例
|
||||||
|
* @param projectId 项目ID
|
||||||
|
* @param sectionId 方案ID
|
||||||
|
* @param projBidRatioInfoVOList 中标/中选分配比例集合
|
||||||
|
* @return 返回结果
|
||||||
|
*/
|
||||||
|
private List<BidRatio> assembleBidRatio(String projectId,String sectionId,List<ProjBidRatioInfoVO> projBidRatioInfoVOList){
|
||||||
|
List<BidRatio> resultList = new ArrayList<>();
|
||||||
|
|
||||||
|
if(null != projBidRatioInfoVOList){
|
||||||
|
for(ProjBidRatioInfoVO bidRatioInfoVO:projBidRatioInfoVOList){
|
||||||
|
BidRatio bidRatio = new BidRatio();
|
||||||
|
bidRatio.setId(PropertyUtils.getSnowflakeId());
|
||||||
|
bidRatio.setProjectId(projectId);
|
||||||
|
bidRatio.setSectionId(sectionId);
|
||||||
|
bidRatio.setIntendedBidRank(bidRatioInfoVO.getIntendedBidRank());
|
||||||
|
bidRatio.setIntendedBidRatio(bidRatioInfoVO.getIntendedBidRatio());
|
||||||
|
|
||||||
|
resultList.add(bidRatio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 物理删除信息
|
* 物理删除信息
|
||||||
@ -1023,7 +1083,7 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
List<SectionMaterial> materialList = new ArrayList<>(assembleInquiryMaterial(record.getId(), section.getId(), inquiryVO.getInquiryGoodsList()));
|
List<SectionMaterial> materialList = new ArrayList<>(assembleInquiryMaterial(record.getId(), section.getId(), inquiryVO.getInquiryGoodsList()));
|
||||||
sectionList.add(section);
|
sectionList.add(section);
|
||||||
|
|
||||||
return getStringObjectMap(record, sectionList, materialList, supplierList);
|
return getStringObjectMap(record, sectionList, materialList, supplierList,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1034,12 +1094,13 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
|
|||||||
* @param supplierList 供应商集合
|
* @param supplierList 供应商集合
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
*/
|
*/
|
||||||
private Map<String, Object> getStringObjectMap(ProjectRecord record, List<ProjectSection> sectionList, List<SectionMaterial> materialList, List<SectionSupplier> supplierList) {
|
private Map<String, Object> getStringObjectMap(ProjectRecord record, List<ProjectSection> sectionList, List<SectionMaterial> materialList, List<SectionSupplier> supplierList,List<BidRatio> bidRatioList) {
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
resultMap.put("projectRecord", record);
|
resultMap.put("projectRecord", record);
|
||||||
resultMap.put("sectionList", sectionList);
|
resultMap.put("sectionList", sectionList);
|
||||||
resultMap.put("materialList", materialList);
|
resultMap.put("materialList", materialList);
|
||||||
resultMap.put("supplierList", supplierList);
|
resultMap.put("supplierList", supplierList);
|
||||||
|
resultMap.put("bidRatioList", bidRatioList);
|
||||||
//zhqbin 校验非法字符,长度
|
//zhqbin 校验非法字符,长度
|
||||||
checkUtil.checkInquiryVO(resultMap);
|
checkUtil.checkInquiryVO(resultMap);
|
||||||
return resultMap;
|
return resultMap;
|
||||||
|
@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity;
|
import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity;
|
||||||
import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler;
|
import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.bidratio.entity.BidRatio;
|
||||||
|
import com.chinaunicom.mall.ebtp.project.sectionmaterial.entity.SectionMaterial;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
@ -17,6 +19,8 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目标段信息实体类 BizProjectSection
|
* 项目标段信息实体类 BizProjectSection
|
||||||
@ -240,4 +244,31 @@ public class ProjectSection extends BaseEntity implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "是否唱标 0 否 1 是")
|
@ApiModelProperty(value = "是否唱标 0 否 1 是")
|
||||||
private Integer isAnnouncement;
|
private Integer isAnnouncement;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "最高限价")
|
||||||
|
private BigDecimal priceCeiling;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "最高限价说明")
|
||||||
|
private String priceCeilingExplain;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否启用结构化报价 0否;1是")
|
||||||
|
private String isStructureQuote;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "结构化报价模型 001普通报价模型")
|
||||||
|
private String structureQuoteModel;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "结构化报价限价类型 001总价限制;002单价+总价限制")
|
||||||
|
private String structureQuoteLimitType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "中标/中选人数量是否明确 0否;1是")
|
||||||
|
private String bidNumberIsDefinite;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "中标/中选分配比例")
|
||||||
|
private List<BidRatio> projBidRatioInfoVoList = new ArrayList<>();
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "中标/中选人数量")
|
||||||
|
private Integer bidDefiniteNumber;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "物料信息")
|
||||||
|
private List<SectionMaterial> materialList = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.chinaunicom.mall.ebtp.project.sectionmaterial.controller;
|
package com.chinaunicom.mall.ebtp.project.sectionmaterial.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
|
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
|
||||||
import com.chinaunicom.mall.ebtp.project.sectionmaterial.entity.SectionMaterial;
|
import com.chinaunicom.mall.ebtp.project.sectionmaterial.entity.SectionMaterial;
|
||||||
import com.chinaunicom.mall.ebtp.project.sectionmaterial.entity.SectionMaterialVO;
|
import com.chinaunicom.mall.ebtp.project.sectionmaterial.entity.SectionMaterialVO;
|
||||||
@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目物资信息controller
|
* 项目物资信息controller
|
||||||
@ -80,5 +83,11 @@ public class SectionMaterialController{
|
|||||||
return BaseResponse.success(sectionMaterial);
|
return BaseResponse.success(sectionMaterial);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("根据标段查询物资信息")
|
||||||
|
@PostMapping("/getSectionMaterialBySectionIds")
|
||||||
|
public BaseResponse<List<SectionMaterial>> getSectionMaterialBySectionIds(@ApiParam(value = "对象数据", required = true) @RequestBody List<String> sectionIds){
|
||||||
|
LambdaQueryWrapper<SectionMaterial> query= Wrappers.lambdaQuery();
|
||||||
|
query.in(SectionMaterial::getSectionId,sectionIds);
|
||||||
|
return BaseResponse.success(sectionMaterialService.list(query));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,9 +78,9 @@ public class SectionMaterial extends BaseEntity implements Serializable {
|
|||||||
private String materialTypeName;
|
private String materialTypeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 物资品牌
|
* 物资品牌/规格型号
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "物资品牌(品牌名称)")
|
@ApiModelProperty(value = "物资品牌(品牌名称)/规格型号")
|
||||||
private String materialBrand;
|
private String materialBrand;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -121,4 +121,17 @@ public class SectionMaterial extends BaseEntity implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "商品分类")
|
@ApiModelProperty(value = "商品分类")
|
||||||
private String categoryCode;
|
private String categoryCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物资编码
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "物资编码")
|
||||||
|
private String materialCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单项不含税最高限价
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "单项不含税最高限价")
|
||||||
|
private BigDecimal maxPriceCeiling;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user