/*
 * Author: wangjian
 * 生成entity
 */
package com.tofly.dzfp.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

import java.util.List;
import java.util.stream.Collectors;


/**
 * ${comments}
 *
 * @author admin
 * @date Thu Nov 14 00:00:00 GMT+08:00 2024
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "EI_FPKJ_MX", resultMap = "eiFpkjMxMap")
@KeySequence("EI_FPKJ_MX")
@ApiModel
public class EiFpkjMx extends Model<EiFpkjMx> {
    private static final long serialVersionUID = 1L;

    /**
     * 开票明细ID
     */
    @TableId(value = "MXID", type = IdType.AUTO)
    @ApiModelProperty(value = "开票明细ID")
    private String mxid;
    /**
     * 流水编号引用FPKJ_REQUEST.lsbh
     */
    @ApiModelProperty(value = "流水编号引用FPKJ_REQUEST.lsbh")
    private String lsbh;
    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String goodsname;
    /**
     * 商品编码（商品税收分类编码开发者自行填写）
     */
    @ApiModelProperty(value = "商品编码（商品税收分类编码开发者自行填写）")
    private String goodscode;
    /**
     * 自行编码（可不填）
     */
    @ApiModelProperty(value = "自行编码（可不填）")
    private String selfcode;
    /**
     * 单价含税标志：0:不含税,1:含税
     */
    @ApiModelProperty(value = "单价含税标志：0:不含税,1:含税")
    private Integer withtaxflag;
    /**
     * 单价（精确到小数点后8位），当单价(price)为空时，数量(num)也必须为空；(price)为空时，含税金额(taxIncludedAmount)、不含税金额(taxExcludedAmount)、税额(tax)都不能为空
     */
    @ApiModelProperty(value = "单价（精确到小数点后8位），当单价(price)为空时，数量(num)也必须为空；(price)为空时，含税金额(taxIncludedAmount)、不含税金额(taxExcludedAmount)、税额(tax)都不能为空")
    private Double price;
    /**
     * 数量（精确到小数点后8位，开具红票时数量为负数）
     */
    @ApiModelProperty(value = "数量（精确到小数点后8位，开具红票时数量为负数）")
    private Double num;
    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String unit;
    /**
     * 规格型号
     */
    @ApiModelProperty(value = "规格型号")
    private String spectype;
    /**
     * 税额，[不含税金额] * [税率] = [税额]；税额允许误差为 0.06。红票为负。不含税金额、税额、含税金额任何一个不传时，会根据传入的单价，数量进行计算，可能和实际数值存在误差，建议都传入
     */
    @ApiModelProperty(value = "税额，[不含税金额] * [税率] = [税额]；税额允许误差为 0.06。红票为负。不含税金额、税额、含税金额任何一个不传时，会根据传入的单价，数量进行计算，可能和实际数值存在误差，建议都传入")
    private Double tax;
    /**
     * 税率，注：1、纸票清单红票存在为null的情况；2、二手车发票税率为null或者0
     */
    @ApiModelProperty(value = "税率，注：1、纸票清单红票存在为null的情况；2、二手车发票税率为null或者0")
    private Double taxrate;
    /**
     * 不含税金额。红票为负。不含税金额、税额、含税金额任何一个不传时，会根据传入的单价，数量进行计算，可能和实际数值存在误差，建议都传入
     */
    @ApiModelProperty(value = "不含税金额。红票为负。不含税金额、税额、含税金额任何一个不传时，会根据传入的单价，数量进行计算，可能和实际数值存在误差，建议都传入")
    private Double taxexcludedamount;
    /**
     * 含税金额，[不含税金额] + [税额] = [含税金额]，红票为负。不含税金额、税额、含税金额任何一个不传时，会根据传入的单价，数量进行计算，可能和实际数值存在误差，建议都传入
     */
    @ApiModelProperty(value = "含税金额，[不含税金额] + [税额] = [含税金额]，红票为负。不含税金额、税额、含税金额任何一个不传时，会根据传入的单价，数量进行计算，可能和实际数值存在误差，建议都传入")
    private Double taxincludedamount;
    /**
     * 发票行性质：0,正常行;1,折扣行;2,被折扣行，红票只有正常行
     */
    @ApiModelProperty(value = "发票行性质：0,正常行;1,折扣行;2,被折扣行，红票只有正常行")
    private String invoicelineproperty;
    /**
     * 优惠政策标识：0,不使用;1,使用; 全电发票时： 01：简易征收 02：稀土产品 03：免税 04：不征税 05：先征后退 06：100%先征后退 07：50%先征后退 08：按3%简易征收 09：按5%简易征收 10：按5%简易征收减按1.5%计征 11：即征即退30%12：即征即退50% 13：即征即退70% 14：即征即退100% 15：超税负3%即征即退16：超税负8%即征即退 17：超税负12%即征即退 18：超税负6%即征即退
     */
    @ApiModelProperty(value = "优惠政策标识：0,不使用;1,使用; 全电发票时： 01：简易征收 02：稀土产品 03：免税 04：不征税 05：先征后退 06：100%先征后退 07：50%先征后退 08：按3%简易征收 09：按5%简易征收 10：按5%简易征收减按1.5%计征 11：即征即退30%12：即征即退50% 13：即征即退70% 14：即征即退100% 15：超税负3%即征即退16：超税负8%即征即退 17：超税负12%即征即退 18：超税负6%即征即退")
    private String favouredpolicyflag;
    /**
     * 增值税特殊管理（优惠政策名称）,当favouredPolicyFlag为1时，此项必填 （全电发票时为空）
     */
    @ApiModelProperty(value = "增值税特殊管理（优惠政策名称）,当favouredPolicyFlag为1时，此项必填 （全电发票时为空）")
    private String favouredpolicyname;
    /**
     * 扣除额，差额征收时填写，目前只支持填写一项。 注意：当传0、空或字段不传时，都表示非差额征税；传0.00才表示差额征税：0.00 （全电发票暂不支持）
     */
    @ApiModelProperty(value = "扣除额，差额征收时填写，目前只支持填写一项。 注意：当传0、空或字段不传时，都表示非差额征税；传0.00才表示差额征税：0.00 （全电发票暂不支持）")
    private Double deduction;
    /**
     * 零税率标识：空,非零税率;1,免税;2,不征税;3,普通零税率；1、当税率为：0%，且增值税特殊管理：为“免税”， 零税率标识：需传“1” 2、当税率为：0%，且增值税特殊管理：为"不征税" 零税率标识：需传“2” 3、当税率为：0%，且增值税特殊管理：为空 零税率标识：需传“3”（全电发票时为空）
     */
    @ApiModelProperty(value = "零税率标识：空,非零税率;1,免税;2,不征税;3,普通零税率；1、当税率为：0%，且增值税特殊管理：为“免税”， 零税率标识：需传“1” 2、当税率为：0%，且增值税特殊管理：为不征税 零税率标识：需传“2” 3、当税率为：0%，且增值税特殊管理：为空 零税率标识：需传“3”（全电发票时为空）")
    private String zerorateflag;
    /**
     * 备注1
     */
    @ApiModelProperty(value = "备注1")
    private String bz1;
    /**
     * 备注2
     */
    @ApiModelProperty(value = "备注2")
    private String bz2;
    /**
     * 序号
     */
    @ApiModelProperty(value = "序号")
    private BigDecimal xh;

}
