Просмотр исходного кода

佰穗莱单据工具类封装、转换单/多类型单据方法封装

zhangxin 1 год назад
Родитель
Сommit
f371900a91

+ 7 - 13
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/doc/service/impl/BionutritionDocHeaderServiceImpl.java

@@ -102,18 +102,10 @@ public class BionutritionDocHeaderServiceImpl extends CrudServiceImpl<Bionutriti
     private List<BionutritionDocBaseDTO> buildBionutritionDocSameTypeList(List<BionutritionDocHeaderDTO> bionutritionDocHeaderDTOList){
         List<BionutritionDocHeaderBaseDTO> bionutritionDocHeaderBaseDTOList = BionutritionDocUtil.buildBionutritionDocHeaderDTOList(bionutritionDocHeaderDTOList);
         List<BionutritionDocDetailsDTO> bionutritionDocDetailsDTOList = bionutritionDocDetailsService.getBionutritionDocDetailsDTOList(
-                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getDocNo).collect(Collectors.toList()));
+                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getDocNo).distinct().collect(Collectors.toList()));
         List<BionutritionDocDetailsBaseDTO> bionutritionDocDetailsBaseDTOList = BionutritionDocUtil.buildBionutritionDocDetailsDTOList(
                 bionutritionDocHeaderDTOList.stream().findFirst().get().getDocType(), bionutritionDocDetailsDTOList);
-        List<BionutritionDocBaseDTO> bionutritionDocBaseDTOList = new ArrayList<>();
-        bionutritionDocHeaderBaseDTOList.forEach(item -> {
-            BionutritionDocBaseDTO bionutritionDocBaseDTO = new BionutritionDocBaseDTO();
-            bionutritionDocBaseDTO.setBionutritionDocHeaderBaseDTO(item);
-            bionutritionDocBaseDTO.setBionutritionDocDetailsBaseDTOList(bionutritionDocDetailsBaseDTOList.stream()
-                    .filter(bionutritionDocDetailsBaseDTO -> StringUtils.equals(item.getId(), bionutritionDocDetailsBaseDTO.getDocHeaderId())).collect(Collectors.toList()));
-            bionutritionDocBaseDTOList.add(bionutritionDocBaseDTO);
-        });
-        return bionutritionDocBaseDTOList;
+        return getBionutritionDocBaseDTOList(bionutritionDocDetailsBaseDTOList, bionutritionDocHeaderBaseDTOList);
     }
 
     /**
@@ -124,13 +116,17 @@ public class BionutritionDocHeaderServiceImpl extends CrudServiceImpl<Bionutriti
     private List<BionutritionDocBaseDTO> buildBionutritionDocDifferentTypeList(List<BionutritionDocHeaderDTO> bionutritionDocHeaderDTOList){
         Map<String, List<BionutritionDocHeaderBaseDTO>> bionutritionDocHeaderMap = BionutritionDocUtil.buildBionutritionDocHeaderDTOByDocTypeMap(bionutritionDocHeaderDTOList);
         List<BionutritionDocDetailsDTO> bionutritionDocDetailsDTOList = bionutritionDocDetailsService.getBionutritionDocDetailsDTOList(
-                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getDocNo).collect(Collectors.toList()));
+                bionutritionDocHeaderDTOList.stream().map(BionutritionDocHeaderDTO::getDocNo).distinct().collect(Collectors.toList()));
         Map<String, List<BionutritionDocDetailsDTO>> bionutritionDocDetailsMap = bionutritionDocHeaderMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,
                 item -> bionutritionDocDetailsDTOList.stream().filter(detail -> item.getValue().stream().anyMatch(header ->
                         StringUtils.equals(header.getId(), detail.getDocHeaderId()))).collect(Collectors.toList())));
         List<BionutritionDocDetailsBaseDTO> bionutritionDocDetailsList = BionutritionDocUtil.buildBionutritionDocDetailsDTOList(bionutritionDocDetailsMap);
         List<BionutritionDocHeaderBaseDTO> bionutritionDocHeaderList = new ArrayList<>();
         bionutritionDocHeaderMap.forEach((key, value) -> bionutritionDocHeaderList.addAll(value));
+        return getBionutritionDocBaseDTOList(bionutritionDocDetailsList, bionutritionDocHeaderList);
+    }
+
+    private List<BionutritionDocBaseDTO> getBionutritionDocBaseDTOList(List<BionutritionDocDetailsBaseDTO> bionutritionDocDetailsList, List<BionutritionDocHeaderBaseDTO> bionutritionDocHeaderList) {
         return bionutritionDocHeaderList.stream().map(item -> {
             BionutritionDocBaseDTO bionutritionDocBaseDTO = new BionutritionDocBaseDTO();
             bionutritionDocBaseDTO.setBionutritionDocHeaderBaseDTO(item);
@@ -140,8 +136,6 @@ public class BionutritionDocHeaderServiceImpl extends CrudServiceImpl<Bionutriti
         }).collect(Collectors.toList());
     }
 
-
-
     public BionutritionDocHeaderDTO getBionutritionDocHeaderDTOListByDocNo(String docNo) {
         return getBionutritionDocHeaderDTOList(null, Lists.newArrayList(docNo), null)
                 .stream().findFirst().orElseGet(() -> new BionutritionDocHeaderDTO());