package com.ycl.domain.form;
|
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.ycl.common.group.Add;
|
import com.ycl.common.group.Update;
|
import com.ycl.domain.entity.File;
|
import com.ycl.domain.entity.ProjectInfo;
|
import com.ycl.system.domain.base.AbsForm;
|
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 org.springframework.util.CollectionUtils;
|
|
import javax.validation.constraints.NotBlank;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 项目管理基础信息表表单
|
*
|
* @author flq
|
* @since 2024-11-22
|
*/
|
@Data
|
@ApiModel(value = "ProjectInfo表单", description = "项目管理基础信息表表单")
|
public class ProjectInfoForm extends AbsForm {
|
|
@NotBlank(message = "项目名称不能为空", groups = {Add.class, Update.class})
|
@ApiModelProperty("项目名称")
|
private String projectName;
|
|
@ApiModelProperty("文件")
|
private List<File> fileList;
|
|
@ApiModelProperty("项目代码")
|
private String projectCode;
|
|
@ApiModelProperty("建设内容")
|
private String content;
|
|
@ApiModelProperty("项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)")
|
private String projectType;
|
|
@ApiModelProperty("项目状态 (0未开工,1已开工,2已竣工,3暂停)")
|
private String projectStatus;
|
|
@ApiModelProperty("资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)")
|
private String fundType;
|
|
@ApiModelProperty("投资类别(0企业投资,1政府投资,2外商投资,3境外投资)")
|
private String investType;
|
|
@ApiModelProperty("项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)")
|
private String projectPhase;
|
|
@ApiModelProperty("标签")
|
private String tag;
|
|
@ApiModelProperty("主管部门(对应审批部门id)")
|
private List<Long> competentDepartmentList;
|
|
@ApiModelProperty("行政区域")
|
private String area;
|
|
@ApiModelProperty("管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)")
|
private List<String> managementCentralizationList;
|
|
@ApiModelProperty("项目审批类型")
|
private String projectApprovalType;
|
|
@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 String projectOwnerUnit;
|
|
@ApiModelProperty("项目联系人")
|
private String projectContactPerson;
|
|
@ApiModelProperty("联系方式")
|
private String contact;
|
|
public static ProjectInfo getEntityByForm(@NonNull ProjectInfoForm form, ProjectInfo entity) {
|
if(entity == null) {
|
entity = new ProjectInfo();
|
}
|
BeanUtils.copyProperties(form, entity);
|
//审核部门转换
|
List<Long> competentDepartmentList = form.getCompetentDepartmentList();
|
if(!CollectionUtils.isEmpty(competentDepartmentList)){
|
entity.setCompetentDepartment(StringUtils.join(competentDepartmentList, ","));
|
}
|
//管理归口转换
|
List<String> managementCentralizationList = form.getManagementCentralizationList();
|
if(!CollectionUtils.isEmpty(managementCentralizationList)){
|
entity.setManagementCentralization(StringUtils.join(managementCentralizationList, ","));
|
}
|
return entity;
|
}
|
|
}
|