xiongzhu 2 年之前
父节点
当前提交
ad269545ad
共有 1 个文件被更改,包括 39 次插入38 次删除
  1. 39 38
      src/main/java/com/izouma/zhirongip/service/resource/CompanyService.java

+ 39 - 38
src/main/java/com/izouma/zhirongip/service/resource/CompanyService.java

@@ -20,10 +20,7 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -39,13 +36,13 @@ public class CompanyService {
 
     public Page<Company> all(PageQuery pageQuery) {
         Map<Long, String> settingMap = settingRepo.findAll().stream()
-                .collect(Collectors.toMap(Setting::getId, Setting::getName));
+                                                  .collect(Collectors.toMap(Setting::getId, Setting::getName));
         return companyRepo.findAll(JpaUtils.toSpecification(pageQuery, Company.class), JpaUtils.toPageRequest(pageQuery))
-                .map(cd -> {
-                    cd.setFieldName(settingMap.get(cd.getField()));
-                    cd.setSettingName(settingMap.get(cd.getSettingId()));
-                    return cd;
-                });
+                          .map(cd -> {
+                              cd.setFieldName(settingMap.get(cd.getField()));
+                              cd.setSettingName(settingMap.get(cd.getSettingId()));
+                              return cd;
+                          });
     }
 
     public Company get(Long id) {
@@ -54,8 +51,8 @@ public class CompanyService {
         ids.add(company.getField());
         ids.add(company.getSettingId());
         Map<Long, String> settingMap = settingRepo.findAllById(ids)
-                .stream()
-                .collect(Collectors.toMap(Setting::getId, Setting::getName));
+                                                  .stream()
+                                                  .collect(Collectors.toMap(Setting::getId, Setting::getName));
         company.setFieldName(settingMap.get(company.getField()));
         company.setSettingName(settingMap.get(company.getSettingId()));
         return company;
@@ -64,7 +61,7 @@ public class CompanyService {
     public List<CompanyDTO> toDtoList(List<Company> companies) {
         List<CompanyDTO> dtos = new ArrayList<>();
         Map<Long, String> settingMap = settingRepo.findAll().stream()
-                .collect(Collectors.toMap(Setting::getId, Setting::getName));
+                                                  .collect(Collectors.toMap(Setting::getId, Setting::getName));
         companies.forEach(company -> {
             CompanyDTO dto = new CompanyDTO(company);
             dto.setSettingName(settingMap.get(company.getSettingId()));
@@ -75,17 +72,17 @@ public class CompanyService {
             dto.setProductionLevelName(settingMap.get(company.getProductionLevel()));
             dto.setIntegrationLevelName(settingMap.get(company.getIntegrationLevel()));
             dto.setNumOfIpsName(company.getNumOfIps()
-                    .stream()
-                    .map(num -> num.getContent(settingMap.get(num.getIp())))
-                    .collect(Collectors.joining()));
+                                       .stream()
+                                       .map(num -> num.getContent(settingMap.get(num.getIp())))
+                                       .collect(Collectors.joining()));
             dto.setStandardizationLevelName(company.getStandardizationLevel()
-                    .stream()
-                    .map(settingMap::get)
-                    .collect(Collectors.joining(",")));
+                                                   .stream()
+                                                   .map(settingMap::get)
+                                                   .collect(Collectors.joining(",")));
             dto.setQualificationLevelName(company.getQualificationLevel()
-                    .stream()
-                    .map(settingMap::get)
-                    .collect(Collectors.joining(",")));
+                                                 .stream()
+                                                 .map(settingMap::get)
+                                                 .collect(Collectors.joining(",")));
             dtos.add(dto);
         });
         return dtos;
@@ -116,7 +113,7 @@ public class CompanyService {
                 .collect(Collectors.groupingBy(Setting::getFlag));
         Map<Integer, Map<String, Long>> mapMap = settings
                 .stream()
-                .collect(Collectors.groupingBy(Setting::getFlag, Collectors.toMap(Setting::getName, Setting::getId)));
+                .collect(Collectors.groupingBy(Setting::getFlag, Collectors.toMap(Setting::getName, Setting::getId, (k1, k2) -> k1)));
 
         dtos.forEach(dto -> {
             Company company = new Company(dto);
@@ -128,10 +125,11 @@ public class CompanyService {
             company.setSettingId(mapMap.get(11).get(dto.getSettingName()));
 
             company.setNetwork(listMap.get(16)
-                    .stream()
-                    .filter(list -> sc.convertToEntityAttribute(dto.getNetworkName()).contains(list.getName()))
-                    .map(Setting::getId)
-                    .collect(Collectors.toList()));
+                                      .stream()
+                                      .filter(list -> sc.convertToEntityAttribute(dto.getNetworkName())
+                                                        .contains(list.getName()))
+                                      .map(Setting::getId)
+                                      .collect(Collectors.toList()));
 
             company.setConfidentialityLevel(mapMap.get(17).get(dto.getConfidentialityLevelName()));
 
@@ -141,10 +139,11 @@ public class CompanyService {
 
             company.setIntegrationLevel(mapMap.get(20).get(dto.getIntegrationLevelName()));
 
-            List<String> nums = Arrays.asList(dto.getNumOfIpsName().split(";"));
+            List<String> nums = Arrays.asList(Optional.ofNullable(dto.getNumOfIpsName()).map(s -> s.split(";"))
+                                                      .orElse(new String[0]));
             Map<String, Long> ipMap = listMap.get(21)
-                    .stream()
-                    .collect(Collectors.toMap(Setting::getName, Setting::getId));
+                                             .stream()
+                                             .collect(Collectors.toMap(Setting::getName, Setting::getId));
             List<NumOfIp> numOfIps = new ArrayList<>();
             nums.forEach(num -> {
                 String[] split = num.split(":");
@@ -154,16 +153,18 @@ public class CompanyService {
             company.setNumOfIps(numOfIps);
 
             company.setStandardizationLevel(listMap.get(22)
-                    .stream()
-                    .filter(list -> sc.convertToEntityAttribute(dto.getStandardizationLevelName()).contains(list.getName()))
-                    .map(Setting::getId)
-                    .collect(Collectors.toList()));
+                                                   .stream()
+                                                   .filter(list -> sc.convertToEntityAttribute(dto.getStandardizationLevelName())
+                                                                     .contains(list.getName()))
+                                                   .map(Setting::getId)
+                                                   .collect(Collectors.toList()));
 
             company.setQualificationLevel(listMap.get(23)
-                    .stream()
-                    .filter(list -> sc.convertToEntityAttribute(dto.getQualificationLevelName()).contains(list.getName()))
-                    .map(Setting::getId)
-                    .collect(Collectors.toList()));
+                                                 .stream()
+                                                 .filter(list -> sc.convertToEntityAttribute(dto.getQualificationLevelName())
+                                                                   .contains(list.getName()))
+                                                 .map(Setting::getId)
+                                                 .collect(Collectors.toList()));
 
             records.add(company);
         });