package cn.iocoder.yudao.module.pms.dal.dataobject.iotprojectinfo;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;

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

/**
 * 项目信息 DO
 *
 * @author 超级管理员
 */
@TableName(value="rq_iot_project_info", autoResultMap = true)
@KeySequence("rq_iot_project_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class IotProjectInfoDO extends BaseDO {

    /**
     * 主键id
     */
    @TableId
    private Long id;
    /**
     * 组织id
     */
    private Long deptId;
    /**
     * 专业公司项目部id
     */
    private Long projectDeptId;
    /**
     * 部门名称
     */
    private String deptName;
    /**
     * 海外项目标识 1国内项目 2海外项目
     */
    private Integer overseas;
    /**
     * 海外所属区域
     */
    private String overseasArea;
    /**
     * 合同名称
     */
    private String contractName;
    /**
     * 合同编号
     */
    private String contractCode;
    /**
     * 合同标的
     */
    private String contractSubject;
    /**
     * 合同金额
     */
    private BigDecimal contractAmount;
    /**
     * 币种
     */
    private String currency;
    /**
     * 责任人([123,234])
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Set<Long> responsiblePerson;
    /**
     * 工作量总数
     */
    private String workloadTotal;
    /**
     * 工作量已完成
     */
    private String workloadFinish;
    /**
     * 工作量单位(段/层/方/井深/进尺)
     */
    private String workloadUnit;
    /**
     * 开始时间
     */
    private LocalDateTime startTime;
    /**
     * 完成时间
     */
    private LocalDateTime endTime;
    /**
     * 施工地点
     */
    private String location;
    /**
     * 施工工艺
     */
    private String technique;
    /**
     * 结算方式
     */
    private String payment;
    /**
     * 项目状态 1待开始 2进行中 3已完成
     */
    private Integer status;
    /**
     * 用户名
     */
    private String userName;
    /**
     * 用户id
     */
    private Long userId;

    private String remark;
    /**
     * 客户ID
     */
    private Long manufacturerId;
    /**
     * 客户名称
     */
    private String manufactureName;

}