package com.yiqi.core.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yiqi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yiqi.common.core.domain.BaseEntity;
import lombok.Data;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

/**
 * 门店结算详情对象 settlement_manage_store
 *
 * @author ruoyi
 * @date 2024-02-15
 */
@ApiModel("门店结算详情")
@TableName("settlement_manage_store")
@Data
public class SettlementManageStore {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 账单ID
     */
    @Excel(name = "账单ID")
    @ApiModelProperty("账单ID")
    private Long billId;

    /**
     * 来源类型
     */
    @Excel(name = "来源类型")
    @ApiModelProperty("来源类型")
    private String sourceType;

    /**
     * 组织ID
     */
    @Excel(name = "组织ID")
    @ApiModelProperty("组织ID")
    private Long orgId;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("开始时间")
    private Date beginTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("结束时间")
    private Date endTime;

    /**
     * 账单标题
     */
    @Excel(name = "账单标题")
    @ApiModelProperty("账单标题")
    private String title;

    /**
     * 会员剩余金额
     */
    @Excel(name = "会员剩余金额")
    @ApiModelProperty("会员剩余金额")
    private BigDecimal memberBalance;

    /**
     * 应付押金
     */
    @Excel(name = "应付押金")
    @ApiModelProperty("应付押金")
    private BigDecimal payableDeposit;

    /**
     * 已付押金
     */
    @Excel(name = "已付押金")
    @ApiModelProperty("已付押金")
    private BigDecimal paidDeposit;

    /**
     * 福利金额
     */
    @Excel(name = "福利金额")
    @ApiModelProperty("福利金额")
    private BigDecimal welfareAmount;

    /**
     * 福利押金
     */
    @Excel(name = "福利押金")
    @ApiModelProperty("福利押金")
    private BigDecimal welfareDeposit;

    /**
     * 卡密押金
     */
    @Excel(name = "卡密押金")
    @ApiModelProperty("卡密押金")
    private BigDecimal cardPasswordDeposit;

    /**
     * 支付宝金额
     */
    @Excel(name = "支付宝金额")
    @ApiModelProperty("支付宝金额")
    private BigDecimal alipayAmount;

    /**
     * 支付宝金额
     */
    @Excel(name = "支付宝金额")
    @ApiModelProperty("支付宝金额")
    private BigDecimal alipayArriveAmount;


    /**
     * 微信金额
     */
    @Excel(name = "微信金额")
    @ApiModelProperty("微信金额")
    private BigDecimal wechatAmount;

    /**
     * 微信金额
     */
    @Excel(name = "微信金额")
    @ApiModelProperty("微信金额")
    private BigDecimal wechatArriveAmount;

    /**
     * 支付宝或微信费用
     */
    @Excel(name = "支付宝或微信费用")
    @ApiModelProperty("支付宝或微信费用")
    private BigDecimal alipayAndWechatAmount;

    /**
     * 未开卡卡密金额
     */
    @Excel(name = "未开卡卡密金额")
    @ApiModelProperty("未开卡卡密金额")
    private BigDecimal unopenedCardPasswordAmount;

    /**
     * 已付福利押金
     */
    @Excel(name = "已付福利押金")
    @ApiModelProperty("已付福利押金")
    private BigDecimal paidWelfareDeposit;

    /**
     * 原材料备用金（材料费）
     */
    @Excel(name = "原材料备用金", readConverterExp = "材=料费")
    @ApiModelProperty("原材料备用金（材料费）")
    private BigDecimal materialImprestAmount;

    /**
     * 原材料备用金 剩余金额
     */
    @Excel(name = "原材料备用金余额", readConverterExp = "材=料费")
    @ApiModelProperty("原材料备用金（材料费）")
    private BigDecimal materialImprestRemainAmount;

    /**
     * 系统维护费
     */
    @Excel(name = "系统维护费")
    @ApiModelProperty("系统维护费")
    private BigDecimal systemMaintenanceAmount;

    /**
     * 洗衣费
     */
    @Excel(name = "洗衣费")
    @ApiModelProperty("洗衣费")
    private BigDecimal washClothAmount;

    /**
     * 跨店结算金
     */
    @Excel(name = "跨店结算金")
    @ApiModelProperty("跨店结算金")
    private BigDecimal crossStoreSettlementAmount;

    /**
     * 超额订货金额
     */
    @Excel(name = "超额订货金额")
    @ApiModelProperty("超额订货金额")
    private BigDecimal overOrderingAmount;

    /**
     * 结算金额
     */
    @Excel(name = "结算金额")
    @ApiModelProperty("结算金额")
    private BigDecimal settlementAmount;

    /**
     * 现金余额
     */
    @Excel(name = "现金余额")
    @ApiModelProperty("现金余额")
    private BigDecimal cashBalance;

    /**
     * 赠送余额
     */
    @Excel(name = "赠送余额")
    @ApiModelProperty("赠送余额")
    private BigDecimal giveBalance;

    /**
     * 福利余额
     */
    @Excel(name = "福利余额")
    @ApiModelProperty("福利余额")
    private BigDecimal welfareBalance;

    /**
     * 订单金额（商品订单+洗衣订单）
     */
    @Excel(name = "订单金额", readConverterExp = "商=品订单+洗衣订单")
    @ApiModelProperty("订单金额（商品订单+洗衣订单）")
    private BigDecimal orderAmount;

    /**
     * 洗衣件数
     */
    @Excel(name = "洗衣件数")
    @ApiModelProperty("洗衣件数")
    private Integer orderClothCount;

    /**
     * 洗衣金额-去掉退款
     */
    @Excel(name = "洗衣订单金额")
    @ApiModelProperty("洗衣订单金额")
    private BigDecimal orderClothAmount;

    /**
     * 商品金额-去掉退款
     */
    @Excel(name = "商品订单金额")
    @ApiModelProperty("商品订单金额")
    private BigDecimal orderGoodsAmount;

    /**
     * 商品金额-去掉退款
     */
    @Excel(name = "商品采购金额")
    @ApiModelProperty("商品采购金额")
    private BigDecimal orderPurchaseAmount;

    /**
     * 异店金额
     */
    @Excel(name = "异店金额")
    @ApiModelProperty("异店金额")
    private BigDecimal otherStoreAmount;

    /**
     * 异卡金额
     */
    @Excel(name = "异卡金额")
    @ApiModelProperty("异卡金额")
    private BigDecimal otherCardAmount;

    /**
     * 异店金额 零售
     */
    @Excel(name = "异店金额 零售")
    @ApiModelProperty("异店金额 零售")
    private BigDecimal retailOtherStoreAmount;

    /**
     * 异卡金额 零售
     */
    @Excel(name = "异卡金额 零售")
    @ApiModelProperty("异卡金额 零售")
    private BigDecimal retailOtherCardAmount;

    /**
     * 异店金额 app订单
     */
    @Excel(name = "异店金额 app订单")
    @ApiModelProperty("异店金额 app订单")
    private BigDecimal appOtherStoreAmount;

    /**
     * 异卡金额 app订单
     */
    @Excel(name = "异卡金额 app订单")
    @ApiModelProperty("异卡金额 app订单")
    private BigDecimal appOtherCardAmount;

    /**
     * 异店金额 第三方
     */
    @Excel(name = "异店金额 第三方")
    @ApiModelProperty("异店金额 第三方")
    private BigDecimal thirdOtherStoreAmount;

    /**
     * 异卡金额 第三方
     */
    @Excel(name = "异卡金额 第三方")
    @ApiModelProperty("异卡金额 第三方")
    private BigDecimal thirdOtherCardAmount;

    /**
     * 实际结算金额
     */
    @Excel(name = "实际结算金额")
    @ApiModelProperty("实际结算金额")
    private BigDecimal realSettlementAmount;

    /**
     * 状态（0，未清算；1： 已清算 ）
     */
    @Excel(name = "状态", readConverterExp = "0=，未清算；1：,已=清算")
    @ApiModelProperty("状态（0，未清算；1： 已清算 ）")
    private String status;

    /**
     * 清算备注
     */
    @Excel(name = "清算备注")
    @ApiModelProperty("清算备注")
    private String settleRemark;

    /**
     * 清算已付押金
     */
    @Excel(name = "清算已付押金")
    @ApiModelProperty("清算已付押金")
    private BigDecimal settlePaidDeposit;

    /**
     * 清算福利金额
     */
    @Excel(name = "清算福利金额")
    @ApiModelProperty("清算福利金额")
    private BigDecimal settleWelfareDeposit;

    /**
     * 清算原材料备用金（材料费）
     */
    @Excel(name = "清算原材料备用金", readConverterExp = "材=料费")
    @ApiModelProperty("清算原材料备用金（材料费）")
    private BigDecimal settleMaterialImprestAmount;

    /**
     * 清算结算金额
     */
    @Excel(name = "清算结算金额")
    @ApiModelProperty("清算结算金额")
    private BigDecimal settleSettlementAmount;

    /**
     * 清算时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "清算时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("清算时间")
    private Date settleTime;

    /**
     * 数据是否符合 1符合 2不符合 0未检测
     */
    @Excel(name = "数据是否符合 1符合 2不符合 0未检测")
    @ApiModelProperty("数据是否符合 1符合 2不符合 0未检测")
    private String dataCheck;

    /**
     * 数据符合检测时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "数据符合检测时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("数据符合检测时间")
    private Date dataCheckTime;

    /**
     * 数据检测说明
     */
    @Excel(name = "数据检测说明")
    @ApiModelProperty("数据检测说明")
    private String dataCheckDesc;

    /**
     * 福利结算表id
     */
    @Excel(name = "福利结算表id")
    @ApiModelProperty("福利结算表id")
    private Long welfareSettleId;

    /**
     * 卡密金额
     */
    @Excel(name = "卡密金额")
    @ApiModelProperty("卡密金额")
    private BigDecimal cardPasswordAmount;

    /**
     * 顺丰快递费
     */
    @Excel(name = "顺丰快递费")
    @ApiModelProperty("顺丰快递费")
    private BigDecimal expressAmount;

    /**
     * 顺丰订单数
     */
    @Excel(name = "顺丰订单数")
    @ApiModelProperty("顺丰订单数")
    private Integer expressCount;

    /**
     * 清算收取卡密押金
     */
    @Excel(name = "清算收取卡密押金")
    @ApiModelProperty("清算收取卡密押金")
    private BigDecimal settleGetCardPasswordDeposit;

    /**
     * 已付卡密押金
     */
    @Excel(name = "已付卡密押金")
    @ApiModelProperty("已付卡密押金")
    private BigDecimal paidCardPasswordDeposit;

    @TableField(exist = false)
    private Integer storeNum;

    private String remark;
}
