jiangping
2023-08-14 c90003b80ba6e29eb2a45c1028a09789bad5dc20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
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;
    }
}