package doumeemes.dao.business.model; 
 | 
  
 | 
import com.baomidou.mybatisplus.annotation.TableField; 
 | 
import doumeemes.core.annotation.excel.ExcelColumn; 
 | 
import doumeemes.core.utils.Constants; 
 | 
import io.swagger.annotations.ApiModel; 
 | 
import io.swagger.annotations.ApiModelProperty; 
 | 
import com.baomidou.mybatisplus.annotation.IdType; 
 | 
import com.baomidou.mybatisplus.annotation.TableId; 
 | 
import com.baomidou.mybatisplus.annotation.TableName; 
 | 
import lombok.Data; 
 | 
import com.fasterxml.jackson.annotation.JsonFormat; 
 | 
  
 | 
import java.io.Serializable; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 仓库管理-出入库单信息表 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2022/04/20 09:37 
 | 
 */ 
 | 
@Data 
 | 
@ApiModel("仓库管理-出入库单信息表") 
 | 
@TableName("`w_outbound`") 
 | 
public class WOutbound implements Serializable { 
 | 
     @TableId(value = "id",type = IdType.AUTO) 
 | 
    @ApiModelProperty(value = "主键", example = "1") 
 | 
    @ExcelColumn(name="主键") 
 | 
    private Integer id; 
 | 
  
 | 
    @ApiModelProperty(value = "是否已删除 0未删除 1已删除", example = "1") 
 | 
    @ExcelColumn(name="是否已删除 0未删除 1已删除") 
 | 
    private Integer deleted; 
 | 
  
 | 
    @ApiModelProperty(value = "创建人编码", example = "1") 
 | 
    @ExcelColumn(name="创建人编码") 
 | 
    private Integer createUser; 
 | 
  
 | 
    @ApiModelProperty(value = "创建时间") 
 | 
    @ExcelColumn(name="创建时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 
 | 
    private Date createTime; 
 | 
  
 | 
    @ApiModelProperty(value = "更新人编码", example = "1") 
 | 
    @ExcelColumn(name="更新人编码") 
 | 
    private Integer updateUser; 
 | 
  
 | 
    @ApiModelProperty(value = "更新时间") 
 | 
    @ExcelColumn(name="更新时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 
 | 
    private Date updateTime; 
 | 
  
 | 
    @ApiModelProperty(value = "备注") 
 | 
    @ExcelColumn(name="备注") 
 | 
    private String remark; 
 | 
  
 | 
    @ApiModelProperty(value = "主组织编码(关联department表根组织)", example = "1") 
 | 
    @ExcelColumn(name="主组织编码(关联department表根组织)") 
 | 
    private Integer rootDepartId; 
 | 
  
 | 
    @ApiModelProperty(value = "公司级组织编码(关联department表)", example = "1") 
 | 
    @ExcelColumn(name="公司级组织编码(关联department表)") 
 | 
    private Integer departId; 
 | 
  
 | 
    @ApiModelProperty(value = "单据号码,系统自动编号") 
 | 
    @ExcelColumn(name="单据号码,系统自动编号") 
 | 
    private String code; 
 | 
  
 | 
    @ApiModelProperty(value = "单据来源 0手工创建、1系统创建", example = "1") 
 | 
    @ExcelColumn(name="单据来源 0手工创建、1系统创建") 
 | 
    private Integer origin; 
 | 
  
 | 
    @ApiModelProperty(value = "来源单据日期") 
 | 
    @ExcelColumn(name="来源单据日期") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd") 
 | 
    private Date validDate; 
 | 
  
 | 
    @ApiModelProperty(value = "出入库类型 0出库单 1入库单", example = "1") 
 | 
    @ExcelColumn(name="出入库类型 0出库单 1入库单") 
 | 
    private Integer type; 
 | 
  
 | 
    @ApiModelProperty(value = "来源单据类型 0采购订单、1生产工单、2销售订单、3转库单、4盘点单", example = "1") 
 | 
    @ExcelColumn(name="来源单据类型 0采购订单、1生产工单、2销售订单、3转库单、4盘点单") 
 | 
    private Integer originType; 
 | 
  
 | 
    @ApiModelProperty(value = "来源单据号码") 
 | 
    @ExcelColumn(name="来源单据号码") 
 | 
    private String originCode; 
 | 
  
 | 
    @ApiModelProperty(value = "来源单据ID(根据ORIGIN_TYPE确定关联关系)", example = "1") 
 | 
    @ExcelColumn(name="来源单据ID(根据ORIGIN_TYPE确定关联关系)") 
 | 
    private Integer originId; 
 | 
  
 | 
    @ApiModelProperty(value = "单据摘要信息") 
 | 
    @ExcelColumn(name="单据摘要信息") 
 | 
    private String abstracts; 
 | 
  
 | 
    @ApiModelProperty(value = "仓管员编码(关联system_user表)", example = "1") 
 | 
    @ExcelColumn(name="仓管员编码(关联system_user表)") 
 | 
    private Integer userId; 
 | 
  
 | 
    @ApiModelProperty(value = "仓库编码(关联warehouse表)", example = "1") 
 | 
    @ExcelColumn(name="仓库编码(关联warehouse表)") 
 | 
    private Integer warehouseId; 
 | 
  
 | 
    @ApiModelProperty(value = "处理时间") 
 | 
    @ExcelColumn(name="处理时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd") 
 | 
    private Date dealDate; 
 | 
  
 | 
    @ApiModelProperty(value = "单据状态 0已生成、1已处理、2已取消", example = "1") 
 | 
    @ExcelColumn(name="单据状态 0已生成、1已处理、2已取消") 
 | 
    private Integer status; 
 | 
  
 | 
    @ApiModelProperty(value = "计划出入库时间") 
 | 
    @ExcelColumn(name="计划出入库时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd") 
 | 
    private Date planDate; 
 | 
  
 | 
    @ApiModelProperty(value = "工序编码(关联procedures表)", example = "1") 
 | 
    @ExcelColumn(name="工序编码(关联procedures表)") 
 | 
    private Integer procedureId; 
 | 
  
 | 
    @ApiModelProperty(value = "取消人员编码(关联system_user表)", example = "1") 
 | 
    @ExcelColumn(name="取消人员编码(关联system_user表)") 
 | 
    private Integer cancelUserId; 
 | 
  
 | 
    @ApiModelProperty(value = "取消时间") 
 | 
    @ExcelColumn(name="取消时间") 
 | 
    @JsonFormat(pattern = "yyyy-MM-dd") 
 | 
    private Date cancelDate; 
 | 
  
 | 
    @ApiModelProperty(value = "取消备注") 
 | 
    @ExcelColumn(name="取消备注") 
 | 
    private String cancelInfo; 
 | 
  
 | 
    @ApiModelProperty(value = "单据类型:1、车间领料;2、机台备料;3、 车间转库;4、完工入库;5、计划领料;6、外协领料  ;7、外协完工转库;8、成品入库  ;9、成品转库  ;10、让步放行入库 ;11、让步放行转库;12、客返返修领料;13、客返返修领料;14、客返返修领料;15、工单投料(出库),工单产出(入);16、销售出库;17、让步销售") 
 | 
    @ExcelColumn(name="单据类型") 
 | 
    private Integer billType; 
 | 
  
 | 
    @ApiModelProperty(value = "待出库物料明细信息") 
 | 
    @TableField(exist = false) 
 | 
    private List<WOutboundDetail> wOutboundDetailsWait; 
 | 
  
 | 
  
 | 
    @ApiModelProperty(value = "已出库物料明细信息") 
 | 
    @TableField(exist = false) 
 | 
    private List<WOutboundDetail> wOutboundDetailsOut; 
 | 
  
 | 
    @ApiModelProperty(value = "仓库名称") 
 | 
    @TableField(exist = false) 
 | 
    private String warehouseName; 
 | 
    @ApiModelProperty(value = "仓库编号") 
 | 
    @TableField(exist = false) 
 | 
    private String warehouseCode; 
 | 
    @ApiModelProperty(value = "申领人名称") 
 | 
    @TableField(exist = false) 
 | 
    private String userName; 
 | 
    @ApiModelProperty(value = "申领人部门") 
 | 
    @TableField(exist = false) 
 | 
    private String userDepartName; 
 | 
    @ApiModelProperty(value = "创建人名称") 
 | 
    @TableField(exist = false) 
 | 
    private String createName; 
 | 
    @ApiModelProperty(value = "最后操作人电话") 
 | 
    @TableField(exist = false) 
 | 
    private String updateMobile; 
 | 
    @ApiModelProperty(value = "最后操作人电话") 
 | 
    @TableField(exist = false) 
 | 
    private String updateName; 
 | 
    @ApiModelProperty(value = "工序名称") 
 | 
    @TableField(exist = false) 
 | 
    private String procedureName; 
 | 
    @ApiModelProperty(value = "质量属性字典值编码",example = "0") 
 | 
    @TableField(exist = false) 
 | 
    private Integer warehouseQualityType; 
 | 
    @ApiModelProperty(value = "明细集合",hidden = true) 
 | 
    @TableField(exist = false) 
 | 
    private List<WOutboundDetail> detailList; 
 | 
  
 | 
  
 | 
    public WHistory toWHistory(Integer userId){ 
 | 
        WHistory wHistory = new WHistory(); 
 | 
        wHistory.setCreateTime(new Date()); 
 | 
        wHistory.setDeleted(Constants.ZERO); 
 | 
        wHistory.setCreateUser(userId); 
 | 
        wHistory.setRootDepartId(this.getRootDepartId()); 
 | 
        wHistory.setDepartId(this.getDepartId()); 
 | 
        wHistory.setOrderType(Constants.TWO); 
 | 
        wHistory.setOrderId(this.getId()); 
 | 
        wHistory.setUserId(userId); 
 | 
        if(this.getStatus()==Constants.ZERO){ 
 | 
            wHistory.setTitle("出入库单创建"); 
 | 
            wHistory.setInfo("出入库单创建"); 
 | 
        }else if(this.getStatus()==Constants.ONE){ 
 | 
            wHistory.setTitle("出入库单完成"); 
 | 
            wHistory.setInfo("出入库单完成"); 
 | 
        }else{ 
 | 
            wHistory.setTitle("出入库单已取消"); 
 | 
            wHistory.setInfo("出入库单已取消"); 
 | 
        } 
 | 
        return wHistory; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
} 
 |