package com.bonus.material.clz.domain.back;

import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 退料任务对象 back_apply_info
 * 
 * @author xsheng
 * @date 2024-10-16
 */

@Accessors(chain = true)
@Data
@ToString
public class MaterialBackApplyTotalInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    private int isExport;

    /** ID */
    private Long id;

    @ApiModelProperty(value = "工器具名称")
    @Excel(name = "工器具名称")
    private String materialName;

    @ApiModelProperty(value = "规格型号")
    @Excel(name = "规格型号")
    private String typeName;

    @ApiModelProperty(value = "协议id")
    private Long agreementId;

    @ApiModelProperty(value = "任务类型")
    private Integer taskType;

    @ApiModelProperty(value = "单位id")
    private Long unitId;

    @ApiModelProperty(value = "班组id")
    private Long teamId;

    @ApiModelProperty(value = "计量单位")
    @Excel(name = "计量单位")
    private String unitName;

    /** 退料数量 */
    @ApiModelProperty(value = "退料数量")
    @Excel(name = "退料数量", align = HorizontalAlignment.RIGHT)
    private BigDecimal backNum;

    @ApiModelProperty(value = "退料日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "退料日期", width = 20, dateFormat = "yyyy-MM-dd")
    private Date backTime;

    @ApiModelProperty(value = "单位名称")
    @Excel(name = "退料班组")
    private String teamName;

    @ApiModelProperty(value="工程id")
    private Long proId;

    @ApiModelProperty(value="工程名称")
    @Excel(name = "退料工程")
    private String proName;

    /** 退料人 */
    @Excel(name = "班组长")
    @ApiModelProperty(value = "退料人")
    private String backPerson;

    @Excel(name = "操作人")
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /** 退料单号 */
    @Excel(name = "退料单号")
    @ApiModelProperty(value = "退料单号")
    private String code;

    @ApiModelProperty(value = "类型id")
    private String typeId;

    @ApiModelProperty(value = "物资类型")
    private String materialType;

    /** 任务ID */
    @ApiModelProperty(value = "任务ID")
    private Long taskId;


    private String backSignUrl;

    private Byte backSignType;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "任务状态")
    private Integer taskStatus;

    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty(value = "打印状态")
    private String printStatus;

    @ApiModelProperty(value = "机具id")
    private Long maId;

    /** 任务ID */
    @ApiModelProperty(value = "任务ID")
    private Long parentId;

    /** 直转id */
    @ApiModelProperty(value = "直转id")
    private Long directId;

    @ApiModelProperty(value="开始时间")
    private String startTime;

    @ApiModelProperty(value="结束时间")
    private String endTime;

    @ApiModelProperty(value="关键字")
    private String keyWord;

    @ApiModelProperty(value="设备编码")
    private String maCode;

    @ApiModelProperty(value = "app退料任务状态，0 未审核 1已审核（包含通过和驳回）")
    private Integer appTaskStatus;

    @ApiModelProperty(value = "管理方式(0编号 1计数)")
    private String manageType;

    @ApiModelProperty(value = "i8工程id")
    private String externalId;

    @ApiModelProperty(value = "身份证号码")
    private String idCard;

    @ApiModelProperty(value = "实施单位id")
    private String impUnit;

    /**
     * i8工程id集合
     */
    private List<String> projectIdList;

    @ApiModelProperty(value = "分包单位")
    @Excel(name = "分包单位",sort = 5)
    private String subUnitName;

    @ApiModelProperty(value = "项目部")
    @Excel(name = "项目部",sort = 4)
    private String departName;

    @Excel(name = "分公司",sort = 3)
    @ApiModelProperty(value = "实施单位" )
    private String impUnitName;

}
