package com.ruoyi.sales.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * 产品信息对象 sales_ledger_product * * @author ruoyi * @date 2025-05-08 */ @TableName("sales_ledger_product") @Data public class SalesLedgerProduct implements Serializable { private static final long serialVersionUID = 1L; /** * 产品信息主键 */ @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 关联销售台账主表主键 */ @Excel(name = "关联销售台账主表主键") private Long salesLedgerId; /** * 预警数量 */ private BigDecimal warnNum; /** * 产品大类 */ @Excel(name = "产品大类") private String productCategory; /** * 规格型号 */ @Excel(name = "规格型号") private String specificationModel; /** * 单位 */ @Excel(name = "单位") private String unit; /** * 生产炒机 */ @Excel(name = "生产炒机") private String speculativeTradingName; /** * 数量 */ @Excel(name = "数量") private BigDecimal quantity; @Excel(name = "最低库存数量") private BigDecimal minStock; /** * 税率 */ @Excel(name = "税率") private BigDecimal taxRate; /** * 含税单价 */ @Excel(name = "含税单价") private BigDecimal taxInclusiveUnitPrice; /** * 含税总价 */ @Excel(name = "含税总价") private BigDecimal taxInclusiveTotalPrice; /** * 不含税总价 */ @Excel(name = "不含税总价") private BigDecimal taxExclusiveTotalPrice; /** * 发票类型 */ @Excel(name = "发票类型") private String invoiceType; /** * 台账类型 1.销售 2,采购 */ private Integer type; /** * 本次来票数 */ private BigDecimal ticketsNum = BigDecimal.ZERO; /** * 本次来票金额(元) */ private BigDecimal ticketsAmount = BigDecimal.ZERO; /** * 未来票数 */ private BigDecimal futureTickets = BigDecimal.ZERO; /** * 未来票金额(元) */ private BigDecimal futureTicketsAmount = BigDecimal.ZERO; @ApiModelProperty(value = "开票数") private BigDecimal invoiceNum = BigDecimal.ZERO; @ApiModelProperty(value = "未开票数") private BigDecimal noInvoiceNum = BigDecimal.ZERO; @ApiModelProperty(value = "开票金额") private BigDecimal invoiceAmount = BigDecimal.ZERO; @ApiModelProperty(value = "未开票金额") private BigDecimal noInvoiceAmount = BigDecimal.ZERO; @ApiModelProperty(value = "本次开票数") @TableField(exist = false) private BigDecimal currentInvoiceNum; @TableField(exist = false) @ApiModelProperty(value = "本次开票金额") private BigDecimal currentInvoiceAmount; /** * 产品id */ private Long productId; /** * 产品规格id */ private Long productModelId; @ApiModelProperty(value = "初始未开票数") @TableField(exist = false) private BigDecimal originalNoInvoiceNum; @ApiModelProperty(value = "临时未开票数") @TableField(exist = false) private BigDecimal tempNoInvoiceNum; @ApiModelProperty(value = "临时未开票金额") @TableField(exist = false) private BigDecimal tempnoInvoiceAmount; @ApiModelProperty(value = "临时未来票数") @TableField(exist = false) private BigDecimal tempFutureTickets; @ApiModelProperty(value = "临时未来票金额") @TableField(exist = false) private BigDecimal tempFutureTicketsAmount; @ApiModelProperty("登记人") private String register; @ApiModelProperty("登记日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "登记日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime registerDate; /** * 发货车牌号 */ @Excel(name = "发货车牌号") @TableField(exist = false) private String shippingCarNumber; @ApiModelProperty("快递公司") @TableField(exist = false) private String expressCompany; @ApiModelProperty("快递单号") @TableField(exist = false) private String expressNumber; /** * 发货日期 */ @Excel(name = "发货日期", width = 30, dateFormat = "yyyy-MM-dd") @TableField(exist = false) @JsonFormat(pattern = "yyyy-MM-dd") private Date shippingDate; @TableField(exist = false) @ApiModelProperty(value = "发货状态") private String shippingStatus = "待发货"; /** * 产品状态 */ // @TableField(exist = false) @ApiModelProperty(value = "产品状态:1-充足") private Integer approveStatus; @ApiModelProperty(value = "待回款总金额") private BigDecimal pendingInvoiceTotal; @ApiModelProperty(value = "回款总金额") private BigDecimal invoiceTotal = BigDecimal.ZERO; @ApiModelProperty(value = "待付款总金额") private BigDecimal pendingTicketsTotal; @ApiModelProperty(value = "付款总金额") private BigDecimal ticketsTotal = BigDecimal.ZERO; @ApiModelProperty(value = "是否质检") private Boolean isChecked; @ApiModelProperty("宽") private BigDecimal width; @ApiModelProperty("高") private BigDecimal height; @ApiModelProperty("加工要求") private String processRequirement; @ApiModelProperty("备注") private String remark; /** * 实际单片面积(㎡) */ @ApiModelProperty("实际单片面积(㎡)") private BigDecimal actualPieceArea; /** * 实际总面积(㎡) */ @ApiModelProperty("实际总面积(㎡)") private BigDecimal actualTotalArea; /** * 结算单片面积(㎡) */ @ApiModelProperty("结算单片面积(㎡)") private BigDecimal settlePieceArea; /** * 结算总面积(㎡) */ @ApiModelProperty("结算总面积(㎡)") private BigDecimal settleTotalArea; /** * 周长 */ @ApiModelProperty("周长(cm)") private BigDecimal perimeter; /** * 重箱 */ @ApiModelProperty("重箱") private BigDecimal heavyBox; /** * 楼层编号 */ @ApiModelProperty("楼层编号") private String floorCode; @TableField(exist = false) @ApiModelProperty("销售产品额外加工") private List salesProductProcessList; @TableField(exist = false) private Integer hasSufficientStock; // 退货数量 @TableField(exist = false) private BigDecimal returnQuality; // 可用数量 quantity - returnQuality @TableField(exist = false) private BigDecimal availableQuality; }