/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
 * not liable for any claims arising from secondary or illegal development.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
package org.springblade.modules.fitting.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 服务商向平台备件申请领用记录表 实体类
 *
 * @author lzp
 * @since 2024-08-24
 */
@Data
@TableName("crm_platform_fitting_apply")
@Schema(description = "PlatformFittingApply对象")
public class PlatformFittingApplyEntity implements Serializable {
	@Schema(
		description = "主键id"
	)
	@TableId(
		value = "id",
		type = IdType.ASSIGN_UUID
	)
	private String id;
	/**
	 * 申请编号，生成规则：yyMMddHHmmssSSS
	 */
	@Schema(description = "申请编号，生成规则：yyMMddHHmmssSSS")
	private String number;
	/**
	 * 运维商id
	 */
	@Schema(description = "运维商id")
	private String siteId;
	/**
	 * 运维商名称
	 */
	@Schema(description = "运维商名称")
	private String siteName;
	/**
	 * 申请人id
	 */
	@Schema(description = "申请人id")
	private String applicantId;
	/**
	 * 申请人姓名
	 */
	@Schema(description = "申请人姓名")
	private String applicantName;
	/**
	 * 申请人角色类型：0服务商
	 */
	@Schema(description = "申请人角色类型：0服务商 ")
	private String applicantType;
	/**
	 * 申请备注
	 */
	@Schema(description = "申请备注")
	private String applyMarks;
	/**
	 * 审核备注
	 */
	@Schema(description = "审核备注（运维商审核）")
	private String factoryMarks;

	@Schema(description = "申请状态：0.待运营商审核 1.待一级审核 2.待二级审核 3.待平台发货 4.运维商待收件 5.已完成 6.申请已取消 7.审核驳回 8.待出库 9.待领取 默认0")
	private String status;
	/**
	 * 出库备注
	 */
	@Schema(description = "出库备注")
	private String outFittingMarks;
	/**
	 * 出库确认人
	 */
	@Schema(description = "出库确认人")
	private String confirmor;
	/**
	 * 出库确认人 user_id
	 */
	@Schema(description = "出库确认人 user_id")
	private String confirmorId;
	/**
	 * 旧件返还标记：0无需返还 1需要返还，默认0
	 */
	@Schema(description = "旧件返还标记：0无需返还 1需要返还，默认0")
	private String oldFittingFlag;
	/**
	 * 申请备件id
	 */
	@Schema(description = "申请备件id")
	private String fittingId;
	/**
	 * 备件条码
	 */
	@Schema(description = "备件条码")
	private String fittingCode;
	/**
	 * 备件型号
	 */
	@Schema(description = "备件类型名称")
	private String fittingVersion;
	/**
	 * 备件名称
	 */
	@Schema(description = "备件名称")
	private String fittingName;

	/**
	 * 物料单位
	 */
	@Schema(description = "物料单位")
	private String fittingUnit;
	/**
	 * 物料品牌
	 */
	@Schema(description = "物料品牌")
	private String fittingBrand;
	/**
	 * 物料规格
	 */
	@Schema(description = "物料规格")
	private String fittingPower;
	/**
	 * 业主姓名
	 */
	@Schema(description = "业主姓名")
	private String customerName;



	/**
	 * 申请的备件描述图片地址
	 */
	@Schema(description = "申请的备件描述图片地址")
	private String fittingImg;
	/**
	 * 备件申请数目
	 */
	@Schema(description = "备件申请数目")
	private Integer applyNum;
	/**
	 * 备件审核数量
	 */
	@Schema(description = "备件审核数量")
	private BigDecimal fittingAuditNum;

	/**
	 * 运维商审核时间
	 */
	@Schema(description = "运维商审核时间")
	private Date confirmSiteTime;
	/**
	 * 审核时间
	 */
	@Schema(description = "一级审核时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date confirmTime;

	@Schema(description = "二级审核时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date confirmTimeTwo;
	/**
	 * 出库时间
	 */
	@Schema(description = "出库时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date outFittingTime;
	/**
	 * 确认收货时间（入库时间）
	 */
	@Schema(description = "确认收货时间（入库时间）")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date sendTime;
	/**
	 * 确认入库人id
	 */
	@Schema(description = "确认入库人id")
	private String confirmStorageId;
	/**
	 * 确认入库人
	 */
	@Schema(description = "确认入库人")
	private String confirmStorage;
	/**
	 * 物流名称
	 */
	@Schema(description = "物流名称")
	private String logisticsNames;
	/**
	 * 物流单号
	 */
	@Schema(description = "物流单号")
	private String logisticsNumber;
	/**
	 * 备件签收时间/取消时间/删除时间
	 */
	@Schema(description = "备件签收时间/取消时间/删除时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date endTime;
	/**
	 * 创建人姓名
	 */
	@Schema(description = "创建人姓名")
	private String creator;
	/**
	 * 更新人
	 */
	@Schema(description = "更新人")
	private String updateName;

	@Schema(description = "更新时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	/**
	 * 收货人姓名
	 */
	@Schema(description = "收货人姓名")
	private String deliveryName;
	/**
	 * 收货联系方式
	 */
	@Schema(description = "收货联系方式")
	private String deliveryMobile;
	/**
	 * 收货详细地址
	 */
	@Schema(description = "收货详细地址")
	private String deliveryAddress;
	/**
	 * 拒绝理由
	 */
	@Schema(description = "审核备注")
	private String refuseReason;

	@Schema(description = "二级审核备注")
	private String refuseReasonTwo;
	/**
	 * 审核人
	 */
	@Schema(description = "审核人")
	private String auditor;
	@Schema(description = "一级审核人")
	private String auditorOne;
	@Schema(description = "二审核人")
	private String auditorTwo;
	/**
	 * 审核人   user_id
	 */
	@Schema(description = "审核人   user_id")
	private String auditorId;
	/**
	 * 适用机型
	 */
	@Schema(description = "适用机型")
	private String suitPrinter;

	private Date createTime;
	/**
	 * 服务商价格
	 */
	@Schema(description = "服务商价格")
	private BigDecimal sitePrice;
	/**
	 * 零售价格（用户价格）
	 */
	@Schema(description = "零售价格（用户价格）")
	private BigDecimal customerPrice;

	@Schema(description = "是否提交平台审核 1.是 2.否")
	private String isPlatform;

	@Schema(description = "提交类型 1.工程师 2.运维商")
	private String submitType;
	@Schema(description = "电站编码")
	private String powerStationCode;
	@Schema(description = "电站内网id")
	private String entryId;
	@Schema(description = "工单编码")
	private String orderNumber;


}
