package com.ycl.domain.vo;
|
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.ycl.domain.entity.File;
|
import com.ycl.domain.entity.ProjectInfo;
|
import com.ycl.system.domain.base.AbsVo;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.lang.NonNull;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 项目管理基础信息表展示
|
*
|
* @author flq
|
* @since 2024-11-22
|
*/
|
@Data
|
@ApiModel(value = "项目管理基础信息表响应数据", description = "项目管理基础信息表响应数据")
|
public class ProjectInfoVO extends AbsVo {
|
|
/** 项目名称 */
|
@ApiModelProperty("项目名称")
|
private String projectName;
|
|
/** 项目代码 */
|
@ApiModelProperty("项目代码")
|
private String projectCode;
|
|
/** 建设内容 */
|
@ApiModelProperty("建设内容")
|
private String content;
|
|
/** 项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他) */
|
@ApiModelProperty("项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)")
|
private String projectType;
|
|
/** 项目状态 (0未开工,1已开工,2已竣工,3暂停) */
|
@ApiModelProperty("项目状态 (0未开工,1已开工,2已竣工,3暂停)")
|
private String projectStatus;
|
|
/** 资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债) */
|
@ApiModelProperty("资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)")
|
private String fundType;
|
|
/** 投资类别(0企业投资,1政府投资,2外商投资,3境外投资) */
|
@ApiModelProperty("投资类别(0企业投资,1政府投资,2外商投资,3境外投资)")
|
private String investType;
|
|
/** 项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段) */
|
@ApiModelProperty("项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)")
|
private String projectPhase;
|
|
/** 标签 */
|
@ApiModelProperty("标签")
|
private String tag;
|
|
/** 主管部门(对应审批部门id) */
|
@ApiModelProperty("主管部门(对应审批部门id)")
|
private List<Long> competentDepartmentList;
|
private String competentDepartment;
|
/** 行政区域 */
|
@ApiModelProperty("行政区域")
|
private String area;
|
|
/** 管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资) */
|
@ApiModelProperty("管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)")
|
private List<String> managementCentralizationList;
|
private String managementCentralization;
|
/** 项目审批类型 */
|
@ApiModelProperty("项目审批类型")
|
private String projectApprovalType;
|
|
|
/** 重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目) */
|
@ApiModelProperty("重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)")
|
private String importanceType;
|
|
/** 年度投资计划 */
|
@ApiModelProperty("年度投资计划")
|
private String year;
|
|
/** 年度投资金额 */
|
@ApiModelProperty("年度投资金额")
|
private BigDecimal yearInvestAmount;
|
|
/** 立项时间 */
|
@ApiModelProperty("立项时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private Date createProjectTime;
|
|
/** 计划开工时间 */
|
@ApiModelProperty("计划开工时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private Date planStartTime;
|
|
/** 计划竣工时间 */
|
@ApiModelProperty("计划竣工时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private Date planCompleteTime;
|
|
/** 中标单位 */
|
@ApiModelProperty("中标单位")
|
private String winUnit;
|
|
/** 中标金额 */
|
@ApiModelProperty("中标金额")
|
private String winAmount;
|
|
/** 中标时间 */
|
@ApiModelProperty("中标时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private Date winTime;
|
|
/** 详细地址 */
|
@ApiModelProperty("详细地址")
|
private String projectAddress;
|
|
/** 经度 */
|
@ApiModelProperty("经度")
|
private String longitude;
|
|
/** 纬度 */
|
@ApiModelProperty("纬度")
|
private String latitude;
|
|
/** 项目业主单位 */
|
@ApiModelProperty("项目业主单位")
|
private Long projectOwnerUnit;
|
|
/** 项目联系人 */
|
@ApiModelProperty("项目联系人")
|
private String projectContactPerson;
|
|
/** 联系方式 */
|
@ApiModelProperty("联系方式")
|
private String contact;
|
|
/** 更新人 */
|
@ApiModelProperty("更新人")
|
private Long updateBy;
|
|
/** 创建人 */
|
@ApiModelProperty("创建人")
|
private Long createBy;
|
|
/** 状态码 */
|
@ApiModelProperty("状态码")
|
private String projectColorCode;
|
|
@ApiModelProperty("赋码")
|
private String coding;
|
|
@ApiModelProperty("文件")
|
private List<File> fileList;
|
private Integer usedStatus;
|
private String remark;
|
private Long processId;
|
private ProjectInvestmentInfoVO projectInvestmentInfo;
|
private ProjectInvestmentFundingVO projectInvestmentFunding;
|
private ProjectUnitRegistrationInfoVO projectUnitRegistrationInfo;
|
private ProjectInvestmentPolicyComplianceVO projectInvestmentPolicyCompliance;
|
private Boolean auditRole;
|
private String projectOwnerUnitName;
|
public static ProjectInfoVO getVoByEntity(@NonNull ProjectInfo entity, ProjectInfoVO vo) {
|
if(vo == null) {
|
vo = new ProjectInfoVO();
|
}
|
BeanUtils.copyProperties(entity, vo);
|
//主管部门转成list
|
String competentDepartment = entity.getCompetentDepartment();
|
if(!StringUtils.isBlank(competentDepartment)){
|
List<Long> list = Arrays.stream(competentDepartment.split(","))
|
.map(Long::parseLong)
|
.collect(Collectors.toList());
|
vo.setCompetentDepartmentList(list);
|
}
|
//管理归口转换
|
String managementCentralization = entity.getManagementCentralization();
|
if(!StringUtils.isBlank(managementCentralization)){
|
vo.setManagementCentralizationList(Arrays.asList(managementCentralization.split(",")));
|
}
|
return vo;
|
}
|
//转换字符串集合字段
|
public static void transform(@NonNull ProjectInfoVO vo) {
|
//主管部门转成list
|
String competentDepartment = vo.getCompetentDepartment();
|
if(!StringUtils.isBlank(competentDepartment)){
|
List<Long> list = Arrays.stream(competentDepartment.split(","))
|
.map(Long::parseLong)
|
.collect(Collectors.toList());
|
vo.setCompetentDepartmentList(list);
|
}
|
//管理归口转换
|
String managementCentralization = vo.getManagementCentralization();
|
if(!StringUtils.isBlank(managementCentralization)){
|
vo.setManagementCentralizationList(Arrays.asList(managementCentralization.split(",")));
|
}
|
}
|
}
|