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 fileList; @ApiModelProperty("项目代码") private String projectCode; @ApiModelProperty("建设内容") private String content; @ApiModelProperty("建设性质") private String constructionNature; @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 competentDepartmentList; @ApiModelProperty("行政区域") private String area; @ApiModelProperty("管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)") private List managementCentralizationList; @ApiModelProperty("项目审批类型") private String projectApprovalType; @ApiModelProperty("重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)") private String importanceType; // @ApiModelProperty("年度投资计划") // private String year; // // @ApiModelProperty("年度投资金额") // private BigDecimal yearInvestAmount; @ApiModelProperty("年度投资金额") private List yearPlanList; @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 List winUnitList; @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 Integer usedStatus; @ApiModelProperty("赋码") private String coding; private String remark; public static ProjectInfo getEntityByForm(@NonNull ProjectInfoForm form, ProjectInfo entity) { if(entity == null) { entity = new ProjectInfo(); } BeanUtils.copyProperties(form, entity); //审核部门转换 List competentDepartmentList = form.getCompetentDepartmentList(); if(!CollectionUtils.isEmpty(competentDepartmentList)){ entity.setCompetentDepartment(StringUtils.join(competentDepartmentList, ",")); } //管理归口转换 List managementCentralizationList = form.getManagementCentralizationList(); if(!CollectionUtils.isEmpty(managementCentralizationList)){ entity.setManagementCentralization(StringUtils.join(managementCentralizationList, ",")); } return entity; } }