package doumeemes.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import doumeemes.core.annotation.excel.ExcelColumn; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.utils.Constants; import doumeemes.dao.ext.bean.WTransferWarehouse; 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_transfer`") public class WTransfer 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") private Date updateTime; @ApiModelProperty(value = "备注") @ExcelColumn(name="备注") private String remark; @ApiModelProperty(value = "主组织编码(关联department表根组织)", example = "1") @ExcelColumn(name="主组织编码(关联department表根组织)") private Integer rootDepartId; @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生产工单 2其他 3申请单", example = "1") @ExcelColumn(name="来源单据类型 0销售订单 1生产工单 2其他 3申请单") private Integer originType; @ApiModelProperty(value = "来源单据号码") @ExcelColumn(name="来源单据号码") private String originCode; @ApiModelProperty(value = "来源单据ID(根据ORIGIN_TYPE确定关联关系)", example = "1") @ExcelColumn(name="来源单据ID(根据ORIGIN_TYPE确定关联关系)") private String originId; @ApiModelProperty(value = "单据摘要信息") @ExcelColumn(name="单据摘要信息") private String abstracts; @ApiModelProperty(value = "转出公司级组织编码(关联department表)", example = "1") @ExcelColumn(name="转出公司级组织编码(关联department表)") private Integer outDepartId; @ApiModelProperty(value = "转出仓管员编码(关联system_user表)", example = "1") @ExcelColumn(name="转出仓管员编码(关联system_user表)") private Integer outUserId; @ApiModelProperty(value = "转出仓库编码", example = "1") @ExcelColumn(name="转出仓库编码") private Integer outWarehouseId; @ApiModelProperty(value = "计划转出时间") @ExcelColumn(name="计划转出时间") @JsonFormat(pattern = "yyyy-MM-dd") private Date outPlandate; @ApiModelProperty(value = "实际转出时间") @ExcelColumn(name="实际转出时间") @JsonFormat(pattern = "yyyy-MM-dd") private Date outActdate; @ApiModelProperty(value = "转入公司级组织编码(关联department表)", example = "1") @ExcelColumn(name="转入公司级组织编码(关联department表)") private Integer inDepartId; @ApiModelProperty(value = "转入仓管员编码(关联system_user表)", example = "1") @ExcelColumn(name="转入仓管员编码(关联system_user表)") private Integer inUserId; @ApiModelProperty(value = "转入仓库编码", example = "1") @ExcelColumn(name="转入仓库编码") private Integer inWarehouseId; @ApiModelProperty(value = "计划转入时间") @ExcelColumn(name="计划转入时间") @JsonFormat(pattern = "yyyy-MM-dd") private Date inPlandate; @ApiModelProperty(value = "实际转入时间") @ExcelColumn(name="实际转入时间") @JsonFormat(pattern = "yyyy-MM-dd") private Date inActdate; @ApiModelProperty(value = "单据状态 0已计划、1已转出、2已转入、3已取消、4已退回", example = "1") @ExcelColumn(name="单据状态 0已计划、1已转出、2已转入、3已取消、4已退回") private Integer status; @ApiModelProperty(value = "1车间领料,3机台备料,2计划领料,4完工入库,5车间转库,6外协领料转库,7外协完工转库,8成品入库,9成品转库,10让步放行入库,11让步放行转库,12客返品返修领料,13客返返修入库,14跨组织转库,15工序报废,16客退品返修领料,17客退品返修入库", example = "1") @ExcelColumn(name="类型") private Integer type; @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 = "返修申请单号(关联backorder表)", example = "1") @ExcelColumn(name="返修申请单号(关联backorder表)") private Integer backorderId; @ApiModelProperty(value = "物料信息") @TableField(exist = false) private List wTransferDetailList; @ApiModelProperty(value = "转出组织名称") @TableField(exist = false) private String outDepartName; @ApiModelProperty(value = "转出仓库名称") @TableField(exist = false) private String outWarehouseName; @ApiModelProperty(value = "转出仓管员名称") @TableField(exist = false) private String outUserName; @ApiModelProperty(value = "出库单号") @TableField(exist = false) private String outBillCode; @ApiModelProperty(value = "转入组织名称") @TableField(exist = false) private String inDepartName; @ApiModelProperty(value = "转入仓库名称") @TableField(exist = false) private String inWarehouseName; @ApiModelProperty(value = "转入仓管员名称") @TableField(exist = false) private String inUserName; @ApiModelProperty(value = "入库单号") @TableField(exist = false) private String inBillCode; @ApiModelProperty(value = "取消人员名称") @TableField(exist = false) private String cancelUserName; @ApiModelProperty(value = "取消人员名称") @TableField(exist = false) private String cancelUserMobile; @ApiModelProperty(value = "明细仓库信息") @TableField(exist = false) private List wTransferWarehouseList; public WOutbound toWOutbound(Integer billType){ WOutbound wOutbound = new WOutbound(); wOutbound.setDeleted(Constants.ZERO); wOutbound.setCreateTime(new Date()); wOutbound.setRootDepartId(this.getRootDepartId()); wOutbound.setOrigin(Constants.ONE); wOutbound.setPlanDate(this.getOutPlandate()); wOutbound.setValidDate(new Date()); wOutbound.setType(billType); wOutbound.setBillType(this.getType()); wOutbound.setOriginType(3); wOutbound.setOriginCode(this.getCode()); wOutbound.setOriginId(this.getId()); wOutbound.setDealDate(new Date()); wOutbound.setStatus(Constants.ONE); return wOutbound; } public WHistory toWHistory(LoginUserInfo userInfo){ WHistory wHistory = new WHistory(); wHistory.setCreateTime(new Date()); wHistory.setDeleted(Constants.ZERO); wHistory.setCreateUser(userInfo.getId()); wHistory.setRootDepartId(this.getRootDepartId()); wHistory.setDepartId(userInfo.getComDepartment().getId()); wHistory.setOrderType(Constants.ZERO); wHistory.setOrderId(this.getId()); wHistory.setUserId(userInfo.getId()); if(this.getStatus()==Constants.ZERO){ wHistory.setTitle("转库单创建"); wHistory.setInfo("转库单创建"); }else if(this.getStatus()==Constants.ONE){ wHistory.setTitle("转库单出库完成"); wHistory.setInfo("转库单出库完成"); }else if(this.getStatus()==Constants.TWO){ wHistory.setTitle("转库单入库完成"); wHistory.setInfo("转库单入库完成"); }else{ wHistory.setTitle("转库单已取消"); wHistory.setInfo("转库单已取消"); } return wHistory; } }