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