package com.jeesite.modules.wms.entity; import javax.validation.constraints.Size; import java.util.Date; import com.jeesite.common.mybatis.annotation.JoinTable; import com.jeesite.common.mybatis.annotation.JoinTable.Type; import com.fasterxml.jackson.annotation.JsonFormat; import javax.validation.constraints.NotBlank; import com.jeesite.common.entity.DataEntity; import com.jeesite.common.mybatis.annotation.Column; import com.jeesite.common.mybatis.annotation.Table; import com.jeesite.common.mybatis.mapper.query.QueryType; import com.jeesite.common.utils.excel.annotation.ExcelField; import com.jeesite.common.utils.excel.annotation.ExcelField.Align; import com.jeesite.common.utils.excel.annotation.ExcelFields; /** * 采购订单Entity * @author hzd * @version 2026-03-14 */ @Table(name="wms_supplier_order", alias="a", label="采购订单信息", columns={ @Column(name="id", attrName="id", label="id", isPK=true), @Column(name="sn", attrName="sn", label="采购单号"), @Column(name="supplier_id", attrName="supplierId", label="供应商"), @Column(name="material_id", attrName="materialId", label="物料"), @Column(name="demand", attrName="demand", label="需求数"), @Column(name="arrival_date", attrName="arrivalDate", label="到货时间", isUpdateForce=true), @Column(name="nums", attrName="nums", label="每车次数量"), @Column(name="requirements", attrName="requirements", label="要求说明"), @Column(name="remark", attrName="remark", label="备注"), @Column(name="state", attrName="state", label="状态"), @Column(name="order_plan_id", attrName="orderPlanId", label="需求计划"), @Column(name="create_by", attrName="createBy", label="创建者", isUpdate=false, isQuery=false), @Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false), @Column(name="update_by", attrName="updateBy", label="更新者", isQuery=false), @Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false), @Column(name="status", attrName="status", label="状态", isUpdate=false), },joinTable={ @JoinTable(type= JoinTable.Type.LEFT_JOIN, entity= WmsSupplier.class, attrName="this", alias="b", on="b.id = a.supplier_id", columns={ @Column(name="title", attrName="supplierTitle", label="供应商名称", queryType=QueryType.LIKE), }), @JoinTable(type= JoinTable.Type.LEFT_JOIN, entity= WmsMaterial.class, attrName="this", alias="c", on="c.id = a.material_id", columns={ @Column(name="title", attrName="materialTitle", label="物料名称", queryType=QueryType.LIKE), }), }, orderBy="a.update_date DESC" ) public class WmsSupplierOrder extends DataEntity { private static final long serialVersionUID = 1L; private String sn; // 采购单号 private String supplierId; // 供应商 private String materialId; // 物料 private String demand; // 需求数 private Date arrivalDate; // 到货时间 private String nums; // 每车次数量 private String requirements; // 要求说明 private String remark; // 备注 private String state; // 状态 private String orderPlanId; // 需求计划 private String supplierTitle; // 供应商 private String materialTitle; // 物料 @ExcelFields({ @ExcelField(title="采购单号", attrName="sn", align=Align.CENTER, sort=20), @ExcelField(title="供应商", attrName="supplierId", align=Align.CENTER, sort=30), @ExcelField(title="物料", attrName="materialId", align=Align.CENTER, sort=40), @ExcelField(title="需求数", attrName="demand", align=Align.CENTER, sort=50), @ExcelField(title="到货时间", attrName="arrivalDate", align=Align.CENTER, sort=60, dataFormat="yyyy-MM-dd hh:mm"), @ExcelField(title="每车次数量", attrName="nums", align=Align.CENTER, sort=70), @ExcelField(title="要求说明", attrName="requirements", align=Align.CENTER, sort=80), @ExcelField(title="备注", attrName="remark", align=Align.CENTER, sort=90), @ExcelField(title="状态", attrName="state", dictType="wms_order_state", align=Align.CENTER, sort=100), @ExcelField(title="需求计划", attrName="orderPlanId", align=Align.CENTER, sort=110), @ExcelField(title="创建者", attrName="createBy", align=Align.CENTER, sort=120), @ExcelField(title="创建时间", attrName="createDate", align=Align.CENTER, sort=130), @ExcelField(title="更新者", attrName="updateBy", align=Align.CENTER, sort=140), @ExcelField(title="更新时间", attrName="updateDate", align=Align.CENTER, sort=150), }) public WmsSupplierOrder() { this(null); } public WmsSupplierOrder(String id){ super(id); } @Size(min=0, max=255, message="采购单号长度不能超过 255 个字符") public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } @Size(min=0, max=255, message="供应商长度不能超过 255 个字符") public String getSupplierId() { return supplierId; } public void setSupplierId(String supplierId) { this.supplierId = supplierId; } @Size(min=0, max=64, message="物料长度不能超过 64 个字符") public String getMaterialId() { return materialId; } public void setMaterialId(String materialId) { this.materialId = materialId; } @Size(min=0, max=255, message="需求数长度不能超过 255 个字符") public String getDemand() { return demand; } public void setDemand(String demand) { this.demand = demand; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getArrivalDate() { return arrivalDate; } public void setArrivalDate(Date arrivalDate) { this.arrivalDate = arrivalDate; } @Size(min=0, max=255, message="每车次数量长度不能超过 255 个字符") public String getNums() { return nums; } public void setNums(String nums) { this.nums = nums; } @Size(min=0, max=255, message="要求说明长度不能超过 255 个字符") public String getRequirements() { return requirements; } public void setRequirements(String requirements) { this.requirements = requirements; } @Size(min=0, max=255, message="备注长度不能超过 255 个字符") public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } @NotBlank(message="状态不能为空") @Size(min=0, max=1, message="状态长度不能超过 1 个字符") public String getState() { return state; } public void setState(String state) { this.state = state; } @Size(min=0, max=64, message="需求计划长度不能超过 64 个字符") public String getOrderPlanId() { return orderPlanId; } public void setOrderPlanId(String orderPlanId) { this.orderPlanId = orderPlanId; } public String getSupplierTitle() { return supplierTitle; } public void setSupplierTitle(String supplierTitle) { this.supplierTitle = supplierTitle; } public String getMaterialTitle() { return materialTitle; } public void setMaterialTitle(String materialTitle) { this.materialTitle = materialTitle; } }