xiangpei
2025-02-25 257ab33f3c19325d07d08240404e34fd34c21bbe
business/src/main/java/com/ycl/domain/form/ProjectInfoForm.java
@@ -1,19 +1,23 @@
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 javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * 项目管理基础信息表表单
@@ -29,139 +33,157 @@
    @ApiModelProperty("项目名称")
    private String projectName;
    @NotBlank(message = "项目代码不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("文件")
    private List<File> fileList;
    @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其他)")
    @ApiModelProperty("建设性质")
    private String constructionNature;
    @ApiModelProperty("项目类型")
    private String projectType;
    @NotBlank(message = "项目状态  (0未开工,1已开工,2已竣工,3暂停)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("项目子类型")
    private String projectSubType;
    @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;
    private List<String> fundTypeList;
    @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竣工投用阶段)")
    @ApiModelProperty("项目阶段(1储备规划阶段,  2项目前期阶段,  3实施阶段,  4竣工投用阶段)")
    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;
    private List<Long> competentDepartmentList;
    @NotBlank(message = "行政区域不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("行政区域")
    private String areaCode;
    private String area;
    @NotBlank(message = "管理归口  (0基本建设(发改),  1更新改造(经信),  2单纯购置(发改),  3信息化(发改),  4其他投资)不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("管理归口  (0基本建设(发改),  1更新改造(经信),  2单纯购置(发改),  3信息化(发改),  4其他投资)")
    private String managementCentralization;
    private List<String> managementCentralizationList;
    @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;
    private List<String> importanceTypeList;
    @NotBlank(message = "年度投资计划不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("年度投资计划")
    private String year;
    @NotNull(message = "年度投资金额不能为空", groups = {Add.class, Update.class})
//    @ApiModelProperty("年度投资计划")
//    private String year;
//
//    @ApiModelProperty("年度投资金额")
//    private BigDecimal yearInvestAmount;
    @ApiModelProperty("年度投资金额")
    private BigDecimal yearInvestAmount;
    private List<ProjectInfoYearPlanForm> yearPlanList;
    @NotNull(message = "立项时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("立项时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createProjectTime;
    @NotNull(message = "计划开工时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("计划开工时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planStartTime;
    @NotNull(message = "计划竣工时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("计划竣工时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planCompleteTime;
    @NotBlank(message = "中标单位不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("中标单位")
    private String winUnit;
//    @ApiModelProperty("中标单位")
//    private String winUnit;
//
//    @ApiModelProperty("中标金额")
//    private String winAmount;
//
//    @ApiModelProperty("中标时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    private Date winTime;
    @ApiModelProperty("中标单位信息")
    private List<ProjectInfoWinUnitForm> winUnitList;
    @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;
    private Long projectOwnerUnit;
    @NotBlank(message = "项目联系人不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("是否招商引资项目:0 不是  1 是")
    private String attractInvestment;
    @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;
    @ApiModelProperty("使用状态")
    private Integer usedStatus;
    @NotNull(message = "更新时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("更新时间")
    private Date gmtUpdateTime;
    @ApiModelProperty("赋码")
    private String coding;
    @NotNull(message = "更新人不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("更新人")
    private Long updateBy;
    @ApiModelProperty("行业主管部门")
    private Long industryCompetentDepartment;
    @ApiModelProperty("行业主管部门联系人")
    private Long industryCompetentDepartmentPerson;
    @ApiModelProperty("行业主管部门联系方式")
    private String departmentPersonPhone;
    @NotNull(message = "创建人不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("创建人")
    private Long createBy;
    private String remark;
    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, ","));
        } else {
            entity.setCompetentDepartment("");
        }
        //资金类型转换
        List<String> fundTypeList = form.getFundTypeList();
        if(!CollectionUtils.isEmpty(fundTypeList)){
            entity.setFundType(StringUtils.join(fundTypeList, ","));
        } else {
            entity.setFundType("");
        }
        //重点分类转换
        List<String> importanceTypeList = form.getImportanceTypeList();
        if(!CollectionUtils.isEmpty(importanceTypeList)){
            entity.setImportanceType(StringUtils.join(importanceTypeList, ","));
        } else {
            entity.setImportanceType("");
        }
        //管理归口转换
        List<String> managementCentralizationList = form.getManagementCentralizationList();
        if(!CollectionUtils.isEmpty(managementCentralizationList)){
            entity.setManagementCentralization(StringUtils.join(managementCentralizationList, ","));
        } else {
            entity.setManagementCentralization("");
        }
        return entity;
    }