|  |  | 
 |  |  | @Data | 
 |  |  | public class DetlDto { | 
 |  |  |  | 
 |  |  |     private String orderNo; | 
 |  |  |  | 
 |  |  |     private String matnr; | 
 |  |  |  | 
 |  |  |     private String batch; | 
 |  |  |  | 
 |  |  |     private Double anfme; | 
 |  |  |     private String matnr; //物料编码 | 
 |  |  |     private String maktx; //物料名称 | 
 |  |  |     private String batch; //批次 | 
 |  |  |     private Double anfme; //数量 | 
 |  |  |     private String orderNo; //订单号 | 
 |  |  |     private String fromOrderNo; //来源单号 | 
 |  |  |     private String memo; //备注 | 
 |  |  |     private String mark; | 
 |  |  |     private String customer = ""; //客户名称 | 
 |  |  |     private String suppName = ""; //供应商 | 
 |  |  |     private String temp1 = ""; | 
 |  |  |     private String temp2 = ""; | 
 |  |  |     private String temp3 = ""; | 
 |  |  |     private String temp4 = ""; | 
 |  |  |  | 
 |  |  |     public DetlDto() { | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, String batch, Double anfme,String fromOrderNo,String mark,String customer,String suppName,String temp1,String temp2,String temp3,String temp4) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.anfme = anfme; | 
 |  |  |         this.fromOrderNo = fromOrderNo; | 
 |  |  |         this.mark = mark; | 
 |  |  |         this.customer = customer; | 
 |  |  |         this.suppName = suppName; | 
 |  |  |         this.temp1 = temp1; | 
 |  |  |         this.temp2 = temp2; | 
 |  |  |         this.temp3 = temp3; | 
 |  |  |         this.temp4 = temp4; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, Double anfme) { | 
 |  |  | 
 |  |  |         this.anfme = anfme; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, String batch) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String matnr, String batch, Double anfme) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.anfme = anfme; | 
 |  |  |     } | 
 |  |  |     public DetlDto(String matnr, String batch, Double anfme,String mark) { | 
 |  |  |         this.matnr = matnr; | 
 |  |  |         this.batch = batch; | 
 |  |  |         this.anfme = anfme; | 
 |  |  |         this.mark = mark; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DetlDto(String orderNo, String matnr, String batch, Double anfme) { | 
 |  |  | 
 |  |  |  | 
 |  |  |     public static boolean has(List<DetlDto> detlDtos, DetlDto detlDto) { | 
 |  |  |         for (DetlDto dto : detlDtos) { | 
 |  |  |             if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(detlDto.getBatch())) { | 
 |  |  |                 if (dto.getMatnr().equals(detlDto.getMatnr())) { | 
 |  |  |                     return true; | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(detlDto.getBatch())) { | 
 |  |  |                     if (dto.getMatnr().equals(detlDto.getMatnr()) && dto.getBatch().equals(detlDto.getBatch())) { | 
 |  |  |                         return true; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) { | 
 |  |  |                 return true; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         for (DetlDto detlDto : detlDtos) { | 
 |  |  |             if (!matnr.equals(detlDto.getMatnr())) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             if (Cools.isEmpty(batch) && Cools.isEmpty(detlDto.getBatch())) { | 
 |  |  |                 return detlDto; | 
 |  |  |             } | 
 |  |  |             if (Cools.isEmpty(batch) && !Cools.isEmpty(detlDto.getBatch())) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             if (Cools.isEmpty(detlDto.getBatch()) && !Cools.isEmpty(batch)) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             if (batch.equals(detlDto.getBatch())) { | 
 |  |  |             if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())) { | 
 |  |  |                 return detlDto; | 
 |  |  |             } | 
 |  |  |         } |