package com.yh.saas.plugin.yiliangyiyun.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.annotations.Version;

import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yh.saas.common.support.entity.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 付款管理
 * </p>
 *
 * @author Gdc
 * @since 2021-09-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("payment_management")
public class PaymentManagement extends BaseModel<PaymentManagement> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.UUID)
    private String id;
    /**
     * 关联id
     */
    private String relationId;
    /**
     * 公司id
     */
    private String compId;
    /**
     * 类型
     */
    private String type;
    /**
     * 质量扣款
     */
    private Double qualityDeduction;
    /**
     * 扣单价
     */
    private Double unitDeduction;
    /**
     * 编号
     */
    private String paymentNo;
    /**
     * 合同编号
     */
    private String contractNo;
    /**
     * 客户
     */
    private String customerName;
    /**
     * 客户电话
     */
    private String customerPhone;
    /**
     * 身份证号码
     */
    private String customerNumberCard;
    /**
     * 银行卡附件地址
     */
    private String payeeAddressUrl;
    /**
     * 银行卡账号
     */
    private String bankCard;
    /**
     * 开户行
     */
    private String bankDeposit;
    /**
     * 开户支行
     */
    private String bankDepositBranch;
    /**
     * 车牌号
     */
    private String carNo;
    /**
     * 货名
     */
    private String goodsName;
    /**
     * 潮粮单价（元/公斤）
     */
    private Double tidalGrainPrice;
    /**
     * 干粮单价（元/公斤）
     */
    private Double solidGrainPrice;
    /**
     * 净重（公斤）
     */
    private Float netWeight;
    /**
     * 毛重（公斤）
     */
    private Float grossWeight;
    /**
     * 皮重（公斤）
     */
    private Float tare;
    /**
     * 管理类型
     */
    private String managementType;
    /**
     * 纯重（公斤）
     */
    private Float pureWeight;
    /**
     * 应付金额（元/吨）
     */
    private Double amountIngPayable;
    /**
     * 已付金额（元/吨）
     */
    private Double amountEdPayable;
    /**
     * 已收金额（元/吨）
     */
    private Double amountEdCollectionable;
    /**
     * 未付金额
     */
    private Double amountNotPayable;
    /**
     * 未收金额
     */
    private Double amountNotCollectable;
    /**
     * 付款截图
     */
    private String paymentScreenshot;
    /**
     * 收款截图
     */
    private String collectionScreenshot;
    /**
     * 图片地址
     */
    private String pictureAddress;
    /**
     * 付款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date paymentDate;
    /**
     * 结算日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date settlementDate;
    /**
     * 收款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date collectionDate;
    /**
     * 扣重比
     */
    private Float buckleWeightRatio;
    /**
     * 扣重
     */
    private Float weightDeduction;
    /**
     * 基数
     */
    private Float base;
    /**
     * 粮款
     */
    private Float grainMoney;
    /**
     * 称重补助
     */
    private Float weighingSubsidy;
    /**
     * 运费补助
     */
    private Float freightSubsidy;
    /**
     * 卸车补助
     */
    private Float unloadSubsidy;
    /**
     * 其他补助
     */
    private Float otherSubsidy;
    /**
     * 称重扣款
     */
    private Float weighingDeduction;
    /**
     * 运费扣款
     */
    private Float freightDeduction;
    /**
     * 卸车扣款
     */
    private Float unloadDeduction;
    /**
     * 其他扣款
     */
    private Float otherDeduction;
    /**
     * 计算应付
     */
    private Double calculationPayable;
    /**
     * 计算应收
     */
    private Double calculationCollectable;
    /**
     * 实际付款
     */
    private Double actualPayment;
    /**
     * 实际收款
     */
    private Double actualCollectionment;
    /**
     * 运费
     */
    private Float freight;
    /**
     * 人民币大写
     */
    private String capitalize;
    /**
     * 记事
     */
    private String remarks;
    /**
     * 状态标识
     */
    private String statusFlag;
    /**
     * 状态
     */
    private String status;
    /**
     * 状态英文
     */
    private String statusEn;
    /**
     * 仓库名称
     */
    private String warehouseName;
    /**
     * 结算员
     */
    private String settlementClerk;
    /**
     * 付款员
     */
    private String cashier;
    /**
     * 审核状态
     */
    private String approveStatus;
    /**
     * 审核流id
     */
    private String workflowId;
    /**
     * 是否开票(0未开1已开)
     */
    private String invoicing;
    /**
     * 潮粮水分
     */
    private String tidalGrainWater;
    /**
     * 干粮水分
     */
    private String solidGrainWater;
    /**
     * 掉水
     */
    private String dropWaterContent;
    /**
     * 出库净重(公斤)
     */
    private Float outNetWeight;
    /**
     * 净重单价（元/公斤）
     */
    private Float netWeightPrice;
    /**
     * 纯重单价（元/公斤）
     */
    private Float pureWeightPrice;
    /**
     * 扣杂
     */
    private Float buckleMiscellaneous;
    /**
     * 反结算标识
     */
    private String reverseFlag;
    /**
     * 模糊查询
     */
    @TableField(exist = false)
    private String searchKeyWord;
    /**
     * 备注
     */
    @TableField(exist = false)
    private String remarkss;

    /**
     * 单号
     */
    @TableField(exist = false)
    private String oddNumbers;

    @TableField(exist = false)
    private String codeUrl;
    /**
     *查询类型
     */
    @TableField(exist = false)
    private String searchType;
    /**
     *付款金额
     */
    @TableField(exist = false)
    private Double money;

    @TableField(exist = false)
    private String taskId;
    /**
     *质检对象
     */
    @TableField(exist = false)
    private QualityInspectionManagement qualityInspectionManagement;
    /**
     *检斤对象
     */
    @TableField(exist = false)
    private WeighingManagement weighingManagement;
    @TableField(exist = false)
    private List<PaymentManagement> paymentManagementList;
    @TableField(exist = false)
    private IdentityAuthenticationInfo identityAuthenticationInfo;
    /**
     * 公司名
     */
    @TableField(exist = false)
    private String compName;
    /**
     * 联系人
     */
    @TableField(exist = false)
    private String contacts;
    /**
     * 联系人电话
     */
    @TableField(exist = false)
    private String contactsPhone;
    /**
     * 税务登记号
     */
    @TableField(exist = false)
    private String taxRegistrationNo;
    /**
     * app端传1
     */
    @TableField(exist = false)
    private String pcFlag;
    /**
     * 合同价格/移库任务价格
     */
    @TableField(exist = false)
    private Float contractPrice;
    /**
     * 检斤单
     */
    @TableField(exist = false)
    private String weighingPictureAddress;
    /**
     * 质检单
     */
    @TableField(exist = false)
    private String qualityInspectionPictureAddress;

    /**
     * 纯重计算参数
     */
    @TableField(exist = false)
    private Float param;
    /**
     * 客户id
     */
    @TableField(exist = false)
    private String identityId;
    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date startDate;
    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date endDate;

    /**
     * 等级
     */
    @TableField(exist = false)
    private String grade;
    /**
     * 容重
     */
    @TableField(exist = false)
    private String bulkDensity;
    /**
     * 水分
     */
    @TableField(exist = false)
    private String waterContent;
    /**
     * 霉变粒
     */
    @TableField(exist = false)
    private String mildewGrain;
    /**
     * 杂质
     */
    @TableField(exist = false)
    private String impurity;
    /**
     * 不完善粒
     */
    @TableField(exist = false)
    private String imperfectGrain;
    /**
     * 热损伤
     */
    @TableField(exist = false)
    private String jiaorenli;
    /**
     * 仓位编号
     */
    @TableField(exist = false)
    private String binNumber;
    /**
     * 所属供应商
     */
    @TableField(exist = false)
    private String supplier;
    /**
     * 质检员（初检员）
     */
    @TableField(exist = false)
    private String qualityInspector;
    /**
     * 复检员
     */
    @TableField(exist = false)
    private String reInspector;
    /**
     * 皮检员
     */
    @TableField(exist = false)
    private String skinInspector;
//    /**
//     * 银行卡账号
//     */
//    @TableField(exist = false)
//    private String bankCard;
//    /**
//     * 开户行
//     */
//    @TableField(exist = false)
//    private String bankDeposit;
//    /**
//     * 开户支行
//     */
//    @TableField(exist = false)
//    private String bankDepositBranch;
    /**
     * app端传1
     */
    @TableField(exist = false)
    private String appFlag;
    /**
     * 实收卸车过磅费
     */
    @TableField(exist = false)
    private Double actualWeighingFee;
    /**
     * 发票标识（1航天信息2百旺）
     */
    @TableField(exist = false)
    private String invoiceFlag;
    /**
     *合同对象
     */
    @TableField(exist = false)
    private ContractManagementInfo contractManagement;

    /**
     * 毛重（公斤）
     */
    @TableField(exist = false)
    private String grossWeightStr;
    /**
     * 皮重（公斤）
     */
    @TableField(exist = false)
    private String tareStr;
    /**
     * 银行信息
     */
//    @TableField(exist = false)
//    private String banckDetail;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
