|  |  | 
 |  |  |  | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.zy.asrs.entity.OrderDetl; | 
 |  |  | import com.zy.asrs.entity.OrderDetlPakin; | 
 |  |  | import com.zy.asrs.entity.OrderDetlPakout; | 
 |  |  | import lombok.Data; | 
 |  |  |  | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Set; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  |  | 
 |  |  |     private String matnr; | 
 |  |  |  | 
 |  |  |     private String batch; | 
 |  |  |     private String remark; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     private String batch = ""; | 
 |  |  |     private String brand = ""; | 
 |  |  |     private String standby1 = ""; | 
 |  |  |     private String standby2 = ""; | 
 |  |  |     private String standby3 = ""; | 
 |  |  |  | 
 |  |  |     private Long lineNumber = 1L; | 
 |  |  |  | 
 |  |  |     private String boxType1 = ""; | 
 |  |  |     private String boxType2 = ""; | 
 |  |  |     private String boxType3 = ""; | 
 |  |  |  | 
 |  |  |     private Double anfme; | 
 |  |  |  | 
 |  |  |     private Double weight; | 
 |  |  |  | 
 |  |  |     //退库组托 | 
 |  |  |     private String tkFlag; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public DetlDto() { | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, Double anfme) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.anfme = anfme; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, String batch, Double anfme) { | 
 |  |  |     public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.brand = brand; | 
 |  |  |         this.standby1 = standby1; | 
 |  |  |         this.standby2 = standby2; | 
 |  |  |         this.standby3 = standby3; | 
 |  |  |         this.boxType1 = boxType1; | 
 |  |  |         this.boxType2 = boxType2; | 
 |  |  |         this.boxType3 = boxType3; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3, Long lineNumber, String boxType1, String boxType2, String boxType3) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.brand = brand; | 
 |  |  |         this.standby1 = standby1; | 
 |  |  |         this.standby2 = standby2; | 
 |  |  |         this.standby3 = standby3; | 
 |  |  |         this.lineNumber = lineNumber; | 
 |  |  |         this.boxType1 = boxType1; | 
 |  |  |         this.boxType2 = boxType2; | 
 |  |  |         this.boxType3 = boxType3; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double anfme) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.brand = brand; | 
 |  |  |         this.standby1 = standby1; | 
 |  |  |         this.standby2 = standby2; | 
 |  |  |         this.standby3 = standby3; | 
 |  |  |         this.boxType1 = boxType1; | 
 |  |  |         this.boxType2 = boxType2; | 
 |  |  |         this.boxType3 = boxType3; | 
 |  |  |         this.anfme = anfme; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String orderNo, String matnr, String batch, Double anfme) { | 
 |  |  |     public DetlDto(String matnr, String batch, String brand, String standby1, String standby2, String standby3, Long lineNumber, String boxType1, String boxType2, String boxType3, Double anfme) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.brand = brand; | 
 |  |  |         this.standby1 = standby1; | 
 |  |  |         this.standby2 = standby2; | 
 |  |  |         this.standby3 = standby3; | 
 |  |  |         this.lineNumber = lineNumber; | 
 |  |  |         this.boxType1 = boxType1; | 
 |  |  |         this.boxType2 = boxType2; | 
 |  |  |         this.boxType3 = boxType3; | 
 |  |  |         this.anfme = anfme; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | //    public DetlDto(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double anfme) { | 
 |  |  | //        this.orderNo = orderNo; | 
 |  |  | //        this.matnr = matnr; | 
 |  |  | //        this.batch = batch; | 
 |  |  | //        this.brand = brand; | 
 |  |  | //        this.standby1 = standby1; | 
 |  |  | //        this.standby2 = standby2; | 
 |  |  | //        this.standby3 = standby3; | 
 |  |  | //        this.boxType1 = boxType1; | 
 |  |  | //        this.boxType2 = boxType2; | 
 |  |  | //        this.boxType3 = boxType3; | 
 |  |  | //        this.anfme = anfme; | 
 |  |  | //    } | 
 |  |  |  | 
 |  |  |     public DetlDto(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Long lineNumber, String boxType1, String boxType2, String boxType3, Double anfme) { | 
 |  |  |         this.orderNo = orderNo; | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.brand = brand; | 
 |  |  |         this.standby1 = standby1; | 
 |  |  |         this.standby2 = standby2; | 
 |  |  |         this.standby3 = standby3; | 
 |  |  |         this.lineNumber = lineNumber; | 
 |  |  |         this.boxType1 = boxType1; | 
 |  |  |         this.boxType2 = boxType2; | 
 |  |  |         this.boxType3 = boxType3; | 
 |  |  |         this.anfme = anfme; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static boolean hasList(Set<DetlDto> detlDtos, OrderDetl orderDetl) { | 
 |  |  |         for (DetlDto dto : detlDtos) { | 
 |  |  |             if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(orderDetl.getBatch())) { | 
 |  |  |                 if (dto.getMatnr().equals(orderDetl.getMatnr())) { | 
 |  |  | //            if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(orderDetl.getBatch())) { | 
 |  |  | //                if (dto.getMatnr().equals(orderDetl.getMatnr())) { | 
 |  |  | //                    return true; | 
 |  |  | //                } | 
 |  |  | //            } else | 
 |  |  | //            { | 
 |  |  | //                if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(orderDetl.getBatch())) { | 
 |  |  | //                    if (dto.getMatnr().equals(orderDetl.getMatnr()) && dto.getBatch().equals(orderDetl.getBatch())) { | 
 |  |  | //                        return true; | 
 |  |  | //                    } | 
 |  |  |             if (dto.getMatnr().equals(orderDetl.getMatnr()) && Cools.eq(dto.getBatch(), orderDetl.getBatch()) | 
 |  |  |                     && Cools.eq(dto.getBrand(), orderDetl.getBrand()) && Cools.eq(dto.getStandby1(), orderDetl.getStandby1()) | 
 |  |  |                     && Cools.eq(dto.getStandby2(), orderDetl.getStandby2()) && Cools.eq(dto.getStandby3(), orderDetl.getStandby3()) | 
 |  |  |                     && Cools.eq(dto.getBoxType1(), orderDetl.getBoxType1()) && Cools.eq(dto.getBoxType2(), orderDetl.getBoxType2()) | 
 |  |  |                     && Cools.eq(dto.getBoxType3(), orderDetl.getBoxType3())) { | 
 |  |  |                 return true; | 
 |  |  |             } | 
 |  |  | //                } | 
 |  |  | //            } | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static boolean hasListLineNumber(Set<DetlDto> detlDtos, OrderDetl orderDetl) { | 
 |  |  |         for (DetlDto dto : detlDtos) { | 
 |  |  | //            if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(orderDetl.getBatch())) { | 
 |  |  | //                if (dto.getMatnr().equals(orderDetl.getMatnr())) { | 
 |  |  | //                    return true; | 
 |  |  | //                } | 
 |  |  | //            } else | 
 |  |  | //            { | 
 |  |  | //                if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(orderDetl.getBatch())) { | 
 |  |  | //                    if (dto.getMatnr().equals(orderDetl.getMatnr()) && dto.getBatch().equals(orderDetl.getBatch())) { | 
 |  |  | //                        return true; | 
 |  |  | //                    } | 
 |  |  |             if (dto.getMatnr().equals(orderDetl.getMatnr()) && Cools.eq(dto.getBatch(), orderDetl.getBatch()) | 
 |  |  |                     && Cools.eq(dto.getBrand(), orderDetl.getBrand()) && Cools.eq(dto.getStandby1(), orderDetl.getStandby1()) | 
 |  |  |                     && Cools.eq(dto.getStandby2(), orderDetl.getStandby2()) && Cools.eq(dto.getStandby3(), orderDetl.getStandby3()) | 
 |  |  |                     && dto.getLineNumber().equals(orderDetl.getLineNumber()) | 
 |  |  |                     && Cools.eq(dto.getBoxType1(), orderDetl.getBoxType1()) && Cools.eq(dto.getBoxType2(), orderDetl.getBoxType2()) | 
 |  |  |                     && Cools.eq(dto.getBoxType3(), orderDetl.getBoxType3())) { | 
 |  |  |                 return true; | 
 |  |  |             } | 
 |  |  | //                } | 
 |  |  | //            } | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static boolean hasList(Set<DetlDto> detlDtos, OrderDetlPakin orderDetl) { | 
 |  |  |         for (DetlDto dto : detlDtos) { | 
 |  |  |             if (dto.getMatnr().equals(orderDetl.getMatnr()) && Cools.eq(dto.getBatch(), orderDetl.getBatch()) | 
 |  |  |                     && Cools.eq(dto.getBrand(), orderDetl.getBrand()) && Cools.eq(dto.getStandby1(), orderDetl.getStandby1()) | 
 |  |  |                     && Cools.eq(dto.getStandby2(), orderDetl.getStandby2()) && Cools.eq(dto.getStandby3(), orderDetl.getStandby3()) | 
 |  |  |                     && Cools.eq(dto.getBoxType1(), orderDetl.getBoxType1()) && Cools.eq(dto.getBoxType2(), orderDetl.getBoxType2()) | 
 |  |  |                     && Cools.eq(dto.getBoxType3(), orderDetl.getBoxType3())) { | 
 |  |  |                 return true; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static boolean hasList(Set<DetlDto> detlDtos, OrderDetlPakout orderDetl) { | 
 |  |  |         for (DetlDto dto : detlDtos) { | 
 |  |  |             if (dto.getMatnr().equals(orderDetl.getMatnr()) && Cools.eq(dto.getBatch(), orderDetl.getBatch()) | 
 |  |  |                     && Cools.eq(dto.getBrand(), orderDetl.getBrand()) && Cools.eq(dto.getStandby1(), orderDetl.getStandby1()) | 
 |  |  |                     && Cools.eq(dto.getStandby2(), orderDetl.getStandby2()) && Cools.eq(dto.getStandby3(), orderDetl.getStandby3()) | 
 |  |  |                     && Cools.eq(dto.getBoxType1(), orderDetl.getBoxType1()) && Cools.eq(dto.getBoxType2(), orderDetl.getBoxType2()) | 
 |  |  |                     && Cools.eq(dto.getBoxType3(), orderDetl.getBoxType3())) { | 
 |  |  |                 return true; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static boolean has(List<DetlDto> detlDtos, DetlDto detlDto) { | 
 |  |  |         for (DetlDto dto : detlDtos) { | 
 |  |  |             if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch()) | 
 |  |  |                     && Cools.eq(dto.getBrand(), detlDto.getBrand()) && Cools.eq(dto.getStandby1(), detlDto.getStandby1()) | 
 |  |  |                     && Cools.eq(dto.getStandby2(), detlDto.getStandby2()) && Cools.eq(dto.getStandby3(), detlDto.getStandby3()) | 
 |  |  |                     && Cools.eq(dto.getBoxType1(), detlDto.getBoxType1()) && Cools.eq(dto.getBoxType2(), detlDto.getBoxType2()) | 
 |  |  |                     && Cools.eq(dto.getBoxType3(), detlDto.getBoxType3())) { | 
 |  |  |                 if (dto.getOrderNo().equals(detlDto.getOrderNo())){ | 
 |  |  |                     return true; | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(orderDetl.getBatch())) { | 
 |  |  |                     if (dto.getMatnr().equals(orderDetl.getMatnr()) && dto.getBatch().equals(orderDetl.getBatch())) { | 
 |  |  |                         return true; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static DetlDto find(Set<DetlDto> detlDtos, String matnr, String batch) { | 
 |  |  |     public static boolean hasLineNumber(List<DetlDto> detlDtos, DetlDto detlDto) { | 
 |  |  |         for (DetlDto dto : detlDtos) { | 
 |  |  |             if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch()) | 
 |  |  |                     && Cools.eq(dto.getBrand(), detlDto.getBrand()) && Cools.eq(dto.getStandby1(), detlDto.getStandby1()) | 
 |  |  |                     && Cools.eq(dto.getStandby2(), detlDto.getStandby2()) && Cools.eq(dto.getStandby3(), detlDto.getStandby3()) | 
 |  |  |                     && dto.getLineNumber().equals(detlDto.getLineNumber()) | 
 |  |  |                     && Cools.eq(dto.getBoxType1(), detlDto.getBoxType1()) && Cools.eq(dto.getBoxType2(), detlDto.getBoxType2()) | 
 |  |  |                     && Cools.eq(dto.getBoxType3(), detlDto.getBoxType3())) { | 
 |  |  |                 return true; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) { | 
 |  |  |         if (Cools.isEmpty(matnr)) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         for (DetlDto detlDto : detlDtos) { | 
 |  |  |             if (!matnr.equals(detlDto.getMatnr())) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             if (Cools.isEmpty(batch) && Cools.isEmpty(detlDto.getBatch())) { | 
 |  |  |             if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch()) | 
 |  |  |                     && brand.equals(detlDto.getBrand()) && standby1.equals(detlDto.getStandby1()) | 
 |  |  |                     && standby2.equals(detlDto.getStandby2()) && standby3.equals(detlDto.getStandby3()) | 
 |  |  |                     && boxType1.equals(detlDto.getBoxType1()) && boxType2.equals(detlDto.getBoxType2()) | 
 |  |  |                     && boxType3.equals(detlDto.getBoxType3())) { | 
 |  |  |                 return detlDto; | 
 |  |  |             } | 
 |  |  |             if (Cools.isEmpty(batch) && !Cools.isEmpty(detlDto.getBatch())) { | 
 |  |  |                 continue; | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static DetlDto findLineNumber(List<DetlDto> detlDtos, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Long lineNumber, String boxType1, String boxType2, String boxType3) { | 
 |  |  |         if (Cools.isEmpty(matnr)) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         for (DetlDto detlDto : detlDtos) { | 
 |  |  |             if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch()) | 
 |  |  |                     && brand.equals(detlDto.getBrand()) && standby1.equals(detlDto.getStandby1()) | 
 |  |  |                     && standby2.equals(detlDto.getStandby2()) && standby3.equals(detlDto.getStandby3()) | 
 |  |  |                     && lineNumber.equals(detlDto.getLineNumber()) | 
 |  |  |                     && boxType1.equals(detlDto.getBoxType1()) && boxType2.equals(detlDto.getBoxType2()) | 
 |  |  |                     && boxType3.equals(detlDto.getBoxType3())) { | 
 |  |  |                 return detlDto; | 
 |  |  |             } | 
 |  |  |             if (Cools.isEmpty(detlDto.getBatch()) && !Cools.isEmpty(batch)) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             if (batch.equals(detlDto.getBatch())) { | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static DetlDto findDto(List<DetlDto> detlDtos, DetlDto detlDtoB) { | 
 |  |  |         if (Cools.isEmpty(detlDtoB)) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         for (DetlDto detlDto : detlDtos) { | 
 |  |  |             if (detlDtoB.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(detlDtoB.getBatch(), detlDto.getBatch()) | 
 |  |  | //                    && detlDtoB.getBrand().equals(detlDto.getBrand()) | 
 |  |  |                     && detlDtoB.getStandby1().equals(detlDto.getStandby1()) | 
 |  |  |                     && detlDtoB.getStandby2().equals(detlDto.getStandby2()) && detlDtoB.getStandby3().equals(detlDto.getStandby3()) | 
 |  |  |                     && detlDtoB.getBoxType1().equals(detlDto.getBoxType1()) && detlDtoB.getBoxType2().equals(detlDto.getBoxType2()) | 
 |  |  |                     && detlDtoB.getBoxType3().equals(detlDto.getBoxType3())) { | 
 |  |  |                 return detlDto; | 
 |  |  |             } | 
 |  |  |         } |