自动化立体仓库 - WMS系统
dubin
1 天以前 4315c959d95e106ff9e18c28398087aeee7d077d
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
package com.zy.asrs.entity.param;
 
import com.core.common.Cools;
import lombok.AllArgsConstructor;
import lombok.Data;
 
import java.util.Date;
import java.util.List;
 
@Data
public class OpenOrderParam {
 
    /**
     * 订单编码
     */
    private String orderNo;
 
    /**
     * 单据内码 唯一标识 若没有可以补充订单编码
     */
    private String orderInternalCode;
 
    /**
     * 订单类型 1 出库单 2 入库单 3 调拨单
     */
    private long orderType;
 
    /**
     * 业务类型 枚举类型 采购入库单 销售退货单 销售出库单 调拨申请单
     */
    private String wkType;
 
    /**
     * 业务日期 时间戳 精确到秒
     */
    private Date businessTime;
 
    /**
     * 创建日期
     */
    private Date createTime;
 
    /**
     * 订单明细
     */
    private List<OrderItem> orderItems;
 
    /**
     * 入/出库接驳站点 (出库时将物料出库后运输至该站点 入库时从该站点将物料运回库中) 需要则补充 否则不用补充
     */
    private String stationId;
 
    /**
     * 操作类型 1 新增(默认) 2 修改 3 取消
     */
    private Integer operateType;
 
    @Data
    @AllArgsConstructor
    public static class OrderItem {
        /**
         * 行内码 唯一标识
         */
        private String lineId;
 
        /**
         * 物料编码
         */
        private String matNr;
 
        /**
         * 物料名称
         */
        private String makTx;
 
        /**
         * 数量 小数点默认4位
         */
        private Double anfme;
 
        /**
         * 规格
         */
        private String spec;
 
        /**
         * 型号
         */
        private String model;
 
        /**
         * 单位
         */
        private String unit;
 
        /**
         * 批次号
         */
        private String batch;
 
        /**
         * 托盘码 若订单类型为出库单时 则指定该托盘出库
         */
        private String palletId;
 
        /**
         * 计划跟踪号
         */
        private String planNo;
 
        /**
         * 建议入库仓库
         */
        private String targetWareHouseId;
 
        /**
         * 建议出库仓库
         */
        private String sourceWareHouseId;
 
        public static boolean hasLineNumber(List<OrderItem> list, OrderItem orderItem) {
            for (OrderItem item : list) {
                if (item.getLineId().equals(orderItem.getLineId()) && item.getMatNr().equals(orderItem.getMatNr()) && Cools.eq(item.getModel(),orderItem.getModel()) &&
                Cools.eq(item.getBatch(),orderItem.getBatch()) && Cools.eq(item.getPalletId(),orderItem.getPalletId()) && Cools.eq(item.getPlanNo(),orderItem.getPlanNo()) &&
                Cools.eq(item.getSourceWareHouseId(),orderItem.getSourceWareHouseId()) && Cools.eq(item.getSpec(),orderItem.getSpec()) && Cools.eq(item.getUnit(),orderItem.getUnit()) &&
                Cools.eq(item.getTargetWareHouseId(),orderItem.getTargetWareHouseId())){
                    return true;
                }
            }
            return false;
        }
 
        public static OrderItem findLineNumber(List<OrderItem> list, String lineId, String matNr, String makTx, Double anfme, String spec, String model, String unit, String batch, String palletId, String planNo, String targetWarehouseId, String sourceWarehouseId) {
            for (OrderItem orderItem : list) {
                if (orderItem.getLineId().equals(lineId) && orderItem.getMatNr().equals(matNr) && Cools.eq(orderItem.getModel(),model) &&
                Cools.eq(orderItem.getBatch(),batch) && Cools.eq(orderItem.getPalletId(),palletId) && Cools.eq(orderItem.getPlanNo(),planNo) &&
                Cools.eq(orderItem.getSourceWareHouseId(),sourceWarehouseId) && Cools.eq(orderItem.getSpec(),spec) && Cools.eq(orderItem.getUnit(),unit) &&
                Cools.eq(orderItem.getTargetWareHouseId(),targetWarehouseId)){
                    return orderItem;
                }
            }
            return null;
        }
    }
}