package com.ruoyi.sales.pojo; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Date; /** * 销售台账对象 sales_ledger * * @author ruoyi * @date 2025-05-08 */ @TableName(value = "sales_ledger") @Data public class SalesLedger { private static final long serialVersionUID = 1L; /** * 销售台账主键 */ @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 销售合同号 */ @Excel(name = "销售合同号") private String salesContractNo; /** * 客户合同号 */ @Excel(name = "客户合同号", type = Excel.Type.IMPORT) private String customerContractNo; /** * 项目名称 */ @Excel(name = "项目名称") private String projectName; /** * 录入日期 */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "录入日期", width = 30, dateFormat = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date entryDate; /** * 业务员 */ @Excel(name = "业务员") private String salesman; /** * 客户名称 */ private Long customerId; /** * 客户名称 */ @Excel(name = "客户名称") private String customerName; /** * 录入人 */ private String entryPerson; @TableField(exist = false) @Schema(description = "录入人") @Excel(name = "录入人") private String entryPersonName; /** * 备注 */ @Excel(name = "备注") private String remarks; /** * 附件材料,存储文件名等相关信息 */ private String attachmentMaterials; @TableField(fill = FieldFill.INSERT) private Long tenantId; /** * 合同金额(产品含税总价) */ @Excel(name = "合同金额") private BigDecimal contractAmount; @Schema(description = "签订日期") private LocalDate executionDate; @Schema(description = "付款方式") private String paymentMethod; @Schema(description = "实际合同金额") private BigDecimal netContractAmount; @TableField(exist = false) @Schema(description = "生产状态") private String productionStatus = "未开始"; //交货日期 @Schema(description = "交货日期") @TableField(value = "delivery_date") private LocalDate deliveryDate; @TableField(exist = false) @Schema(description = "交货天数差") private Integer deliveryDaysDiff; @TableField(exist = false) //是否发货(台账页面颜色控制) private Boolean isFh; @TableField(exist = false) //是否可编辑 private Boolean isEdit; @Schema(description = "创建用户") @TableField(fill = FieldFill.INSERT) private Integer createUser; @TableField(fill = FieldFill.INSERT) private Long deptId; @Schema(description = "是否有生产记录") @TableField(exist = false) private Boolean hasProductionRecord; /** * 销售类型:卖油 / 代储(卖存储位置) * 注意:不要与子表行的 SaleEnum(type) 混用,那是销售/采购/项目 */ @Schema(description = "销售类型:卖油/代储") @Excel(name = "销售类型") private String ledgerType; @Schema(description = "油库id(类型=代储时使用)") private Long oilDepotId; @Schema(description = "油库名称") @Excel(name = "油库") private String oilDepotName; @Schema(description = "储罐id(类型=代储时使用)") private Long tankId; @Schema(description = "储罐号") @Excel(name = "储罐号") private String tankNo; @Schema(description = "审批状态:待审批/审核中/通过/拒绝") @Excel(name = "审批状态") private String approvalStatus; /** * 客户信托基金(查询时由服务层按 customerId 回填,不是本表字段) */ @Schema(description = "客户信托基金") @TableField(exist = false) @Excel(name = "客户信托基金") private BigDecimal trustFund; /** * 本笔合同金额是否超出客户信托基金(超出则前端标红,不是本表字段) */ @Schema(description = "本笔合同金额是否超出客户信托基金") @TableField(exist = false) private Boolean exceedsTrustFund; }