| 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<WTransferDetail> 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<WTransferWarehouse> 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; | 
|     } | 
| } |