package com.ycl.domain.form; import com.ycl.common.group.Add; import com.ycl.common.group.Update; 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.springframework.beans.BeanUtils; import org.springframework.lang.NonNull; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.util.Date; /** * 项目管理基础信息表表单 * * @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; @NotBlank(message = "项目代码不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目代码") private String projectCode; @NotBlank(message = "建设内容不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("建设内容") private String content; @NotBlank(message = "项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目类型(0房屋建筑,1城市基础设施,2交通运输,3水利,4能源,5非煤矿山,6其他)") private String projectType; @NotBlank(message = "项目状态 (0未开工,1已开工,2已竣工,3暂停)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目状态 (0未开工,1已开工,2已竣工,3暂停)") private String projectStatus; @NotBlank(message = "资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("资金类型(0中预资金,1国债资金,2超长期国债,3地方政府专项债)") private String fundType; @NotBlank(message = "投资类别(0企业投资,1政府投资,2外商投资,3境外投资)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("投资类别(0企业投资,1政府投资,2外商投资,3境外投资)") private String investType; @NotBlank(message = "项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目阶段(0储备规划阶段, 1项目前期阶段, 2实施阶段, 3竣工投用阶段)") private String projectPhase; @NotBlank(message = "标签不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("标签") private String tag; @NotNull(message = "主管部门(对应审批部门id)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("主管部门(对应审批部门id)") private Integer competentDepartment; @NotBlank(message = "行政区域不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("行政区域") private String areaCode; @NotBlank(message = "管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("管理归口 (0基本建设(发改), 1更新改造(经信), 2单纯购置(发改), 3信息化(发改), 4其他投资)") private String managementCentralization; @NotBlank(message = "项目审批类型不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目审批类型") private String projectApprovalType; @NotBlank(message = "投资目录(?)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("投资目录(?)") private String investmentCatalogue; @NotBlank(message = "重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("重点分类 (0省重点项目, 1遂宁市重点项目, 2.射洪市重点项目, 3.一般项目)") private String importanceType; @NotBlank(message = "年度投资计划不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("年度投资计划") private String year; @NotNull(message = "年度投资金额不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("年度投资金额") private BigDecimal yearInvestAmount; @NotNull(message = "立项时间不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("立项时间") private Date createProjectTime; @NotNull(message = "计划开工时间不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("计划开工时间") private Date planStartTime; @NotNull(message = "计划竣工时间不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("计划竣工时间") private Date planCompleteTime; @NotBlank(message = "中标单位不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("中标单位") private String winUnit; @NotBlank(message = "中标金额不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("中标金额") private String winAmount; @NotNull(message = "中标时间不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("中标时间") private Date winTime; @NotBlank(message = "详细地址不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("详细地址") private String projectAddress; @NotBlank(message = "经度不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("经度") private String longitude; @NotBlank(message = "纬度不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("纬度") private String latitude; @NotBlank(message = "项目业主单位不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目业主单位") private String projectOwnerUnit; @NotBlank(message = "项目联系人不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("项目联系人") private String projectContactPerson; @NotBlank(message = "联系方式不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("联系方式") private String contact; @NotNull(message = "创建时间不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("创建时间") private Date gmtCreateTime; @NotNull(message = "更新时间不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("更新时间") private Date gmtUpdateTime; @NotNull(message = "更新人不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("更新人") private Long updateBy; @NotNull(message = "创建人不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("创建人") private Long createBy; public static ProjectInfo getEntityByForm(@NonNull ProjectInfoForm form, ProjectInfo entity) { if(entity == null) { entity = new ProjectInfo(); } BeanUtils.copyProperties(form, entity); return entity; } }