package com.ruoyi.productionPlan.pojo;
|
|
import com.baomidou.mybatisplus.annotation.IdType;
|
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 org.springframework.format.annotation.DateTimeFormat;
|
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
import java.util.Date;
|
|
/**
|
* <br>
|
* 销售生产需求
|
* </br>
|
*
|
* @author deslrey
|
* @version 1.0
|
* @since 2026/03/10 9:54
|
*/
|
@Data
|
@TableName("production_plan")
|
public class ProductionPlan {
|
|
/**
|
* 主键
|
*/
|
@TableId(type = IdType.AUTO)
|
private Long id;
|
|
/**
|
* 表单实例ID
|
*/
|
@ApiModelProperty("表单实例ID")
|
private String formInstanceId;
|
|
/**
|
* 流水号
|
*/
|
@ApiModelProperty("流水号")
|
private String serialNo;
|
|
/**
|
* 申请单编号
|
*/
|
@ApiModelProperty("申请单编号")
|
@Excel(name = "申请单编号")
|
private String applyNo;
|
|
/**
|
* 客户名称
|
*/
|
@ApiModelProperty("客户名称")
|
@Excel(name = "客户名称")
|
private String customerName;
|
|
/**
|
* 关联物料信息表ID
|
*/
|
@ApiModelProperty("关联物料信息表ID")
|
private Long productMaterialSkuId;
|
|
/**
|
* 长
|
*/
|
@ApiModelProperty("长")
|
@Excel(name = "长")
|
private Integer length;
|
|
/**
|
* 宽
|
*/
|
@ApiModelProperty("宽")
|
@Excel(name = "宽")
|
private Integer width;
|
|
/**
|
* 高
|
*/
|
@ApiModelProperty("高")
|
@Excel(name = "高")
|
private Integer height;
|
|
/**
|
* 块数
|
*/
|
@ApiModelProperty("块数")
|
@Excel(name = "块数")
|
private Integer quantity;
|
|
/**
|
* 方数
|
*/
|
@ApiModelProperty("方数")
|
@Excel(name = "方数")
|
private BigDecimal volume;
|
|
/**
|
* 强度
|
*/
|
@ApiModelProperty("强度")
|
@Excel(name = "强度")
|
private String strength;
|
|
@ApiModelProperty("状态 0未下发 1部分下发 2已下发")
|
@Excel(name = "状态", readConverterExp = "0=未下发,1=部分下发,2=已下发")
|
private Integer status;
|
|
/**
|
* 开始日期
|
*/
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
@ApiModelProperty("开始日期")
|
@Excel(name = "开始日期", width = 20, dateFormat = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
private Date startDate;
|
|
/**
|
* 结束日期
|
*/
|
@ApiModelProperty("结束日期")
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
@Excel(name = "结束日期", width = 20, dateFormat = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
private Date endDate;
|
|
/**
|
* 提交人
|
*/
|
@ApiModelProperty("提交人")
|
@Excel(name = "提交人")
|
private String submitter;
|
|
/**
|
* 提交人组织
|
*/
|
@ApiModelProperty("提交人组织")
|
@Excel(name = "提交人组织")
|
private String submitOrg;
|
|
/**
|
* 备注1
|
*/
|
@ApiModelProperty("备注1")
|
@Excel(name = "备注1")
|
private String remarkOne;
|
|
/**
|
* 备注2
|
*/
|
@ApiModelProperty("备注2")
|
@Excel(name = "备注2")
|
private String remarkTwo;
|
|
/**
|
* 创建人
|
*/
|
@ApiModelProperty("创建人")
|
@Excel(name = "创建人")
|
private String creatorName;
|
|
/**
|
* 修改人
|
*/
|
@ApiModelProperty("修改人")
|
@Excel(name = "修改人")
|
private String modifierName;
|
|
/**
|
* 表单创建时间
|
*/
|
@ApiModelProperty("表单创建时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
private LocalDateTime formCreatedTime;
|
|
/**
|
* 表单修改时间
|
*/
|
@ApiModelProperty("表单修改时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
private LocalDateTime formModifiedTime;
|
|
|
/**
|
* 数据来源类型:1=钉钉同步 2=手动新增
|
*/
|
@ApiModelProperty("数据来源类型:1=钉钉同步 2=手动新增")
|
private Integer dataSourceType;
|
|
/**
|
* 数据库创建时间
|
*/
|
@ApiModelProperty("数据库创建时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
private LocalDateTime createTime;
|
|
/**
|
* 数据库更新时间
|
*/
|
@ApiModelProperty("数据库更新时间")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
private LocalDateTime updateTime;
|
|
/**
|
* 当前更新数量
|
*/
|
@ApiModelProperty("totalCount")
|
private Integer totalCount;
|
|
@ApiModelProperty(value = "下发数量")
|
@Excel(name = "下发数量")
|
private BigDecimal assignedQuantity;
|
|
/**
|
* 计算剩余方数
|
*
|
* @return 剩余方数
|
*/
|
@ApiModelProperty(value = "剩余方数")
|
public BigDecimal getRemainingVolume() {
|
if (volume == null) {
|
return BigDecimal.ZERO;
|
}
|
if (assignedQuantity == null) {
|
return volume;
|
}
|
return volume.subtract(assignedQuantity);
|
}
|
}
|