/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.manager.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springblade.core.mp.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 客户级项目表实体类
 *
 * @author liuyc
 * @since 2022-04-13
 */
@Data
@TableName("m_project_info")
@EqualsAndHashCode(callSuper = true)
public class ProjectInfo extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 项目名称
	 */
	@ApiModelProperty(value = "项目名称")
	private String projectName;
	/**
	 * 项目别名
	 */
	@ApiModelProperty(value = "项目别名")
	private String projectAlias;
	/**
	 * 项目编号
	 */
	@ApiModelProperty(value = "项目编号")
	private String projectNumber;
	/**
	 * 项目大概
	 */
	@ApiModelProperty(value = "项目大概")
	private String projectGist;
	/**
	 * 工程等级
	 */
	@ApiModelProperty(value = "工程等级")
	private String projectGrade;
	/**
	 * 计划开始时间
	 */
	@ApiModelProperty(value = "计划开始时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime planStartTime;
	/**
	 * 计划完成时间
	 */
	@ApiModelProperty(value = "计划完成时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime planEndTime;
	/**
	 * 实际开始时间
	 */
	@ApiModelProperty(value = "实际开始时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime actualStartTime;
	/**
	 * 实际完工时间
	 */
	@ApiModelProperty(value = "实际完工时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime actualEndTime;
	/**
	 * 施工期
	 */
	@ApiModelProperty(value = "施工期")
	private Integer construcetionDate;
	/**
	 * 建设合同金额
	 */
	@ApiModelProperty(value = "建设合同金额")
	private BigDecimal estimatedAmount;
	/**
	 * 项目总里程
	 */
	@ApiModelProperty(value = "项目总里程")
	private BigDecimal projectAllMileage;
	/**
	 * 项目路面
	 */
	@ApiModelProperty(value = "项目路面")
	private BigDecimal projectPavement;
	/**
	 * 项目路基
	 */
	@ApiModelProperty(value = "项目路基")
	private BigDecimal projectSubgrade;
	/**
	 * 项目备注
	 */
	@ApiModelProperty(value = "项目备注")
	private String projectRemark;
	/**
	 * 节点状态
	 */
	@ApiModelProperty(value = "节点状态")
	private Integer state;
	/**
	 * 是否开启电签
	 */
	@ApiModelProperty(value = "是否开启电签")
	private Integer isOpenSign;

	/**
	 * wbs私有树引用wbs模板id
	 */
	@ApiModelProperty(value = "wbs私有树引用wbs模板id")
	private Long referenceWbsTemplateId;
}
