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