浏览代码

增加导入数据校验

shiyue 1 年之前
父节点
当前提交
a4762a255f

+ 15 - 8
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java

@@ -46,6 +46,7 @@ import tk.mybatis.mapper.entity.Example;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 
@@ -121,27 +122,33 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
             return ResultResp.FAIL("未读取到文件数据,请核对数据准确性!");
         }
         // 过滤空数据
-        List<WindEngineGroupExcelVo> windFieldExceVoList = windEngineGroupExcelVos.stream().filter(item ->
+        List<WindEngineGroupExcelVo> windEngineGroupExceVoList = windEngineGroupExcelVos.stream().filter(item ->
                 !StringUtils.isEmpty(item.getEngineName())).collect(Collectors.toList());
 
         // 校验数据非空
-        for (WindEngineGroupExcelVo exceVo : windFieldExceVoList) {
+        for (WindEngineGroupExcelVo exceVo : windEngineGroupExceVoList) {
             if (exceVo.getLongitude() == null || exceVo.getLatitude() == null||StringUtils.isEmpty(exceVo.getMachineTypeCode())) {
                 return ResultResp.FAIL("当前导入风机数据未填写经纬度,请核查导入数据!");
             }
         }
 
+        // 校验是否有重复的风机编号
+        Set<String> engineNames = windEngineGroupExceVoList.stream().map(item -> item.getEngineName()).collect(Collectors.toSet());
+        if(windEngineGroupExceVoList.size()!=engineNames.size()){
+            return ResultResp.FAIL("当前导入风机数据有重复风机编号,请核查导入数据!");
+        }
+
         // 处理机型编号
-        List<String> millTypeCodes = windFieldExceVoList.stream().map(item -> item.getMachineTypeCode()).collect(Collectors.toList());
+        List<String> millTypeCodes = windEngineGroupExceVoList.stream().map(item -> item.getMachineTypeCode()).collect(Collectors.toList());
         List<WindEngineMillVo>  windEngineMillVoList =  windEngineMillService.getWindEngineMillListByInMachineTypeCode(millTypeCodes);
         //校验机型准确性
-        for(WindEngineMillVo windEngineMillVo : windEngineMillVoList){
-           boolean flg =  windFieldExceVoList.stream().anyMatch(item -> item.getMachineTypeCode().equals(windEngineMillVo.getMachineTypeCode()));
+        for(String millTypeCode : millTypeCodes){
+           boolean flg =  windEngineMillVoList.stream().anyMatch(item -> item.getMachineTypeCode().equals(millTypeCode));
            if(!flg){
                return ResultResp.FAIL("当前导入机型编号系统中不存在,请核查导入数据!");
            }
         }
-        for(WindEngineGroupExcelVo windEngineGroupExcelVo : windFieldExceVoList){
+        for(WindEngineGroupExcelVo windEngineGroupExcelVo : windEngineGroupExceVoList){
             for(WindEngineMillVo windEngineMillVo : windEngineMillVoList){
                 if(windEngineGroupExcelVo.getMachineTypeCode().equals(windEngineMillVo.getMachineTypeCode())){
                     windEngineGroupExcelVo.setMillTypeCode(windEngineMillVo.getMillTypeCode());
@@ -150,7 +157,7 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
         }
 
         // 数据校验是否有重名风机编号
-        List<String> engineNamees = windFieldExceVoList.stream().map(item -> item.getEngineName()).collect(Collectors.toList());
+        List<String> engineNamees = windEngineGroupExceVoList.stream().map(item -> item.getEngineName()).collect(Collectors.toList());
         Example queryExample = new Example(WindEngineGroupPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
         criteria.andIn("engineName", engineNamees);
@@ -162,7 +169,7 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
 
         WindEngineGroupPO windEngineGroupPO = null;
         List<WindEngineGroupPO> list = Lists.newArrayList();
-        for (WindEngineGroupExcelVo windFieldExceVos : windFieldExceVoList) {
+        for (WindEngineGroupExcelVo windFieldExceVos : windEngineGroupExceVoList) {
             windEngineGroupPO = new WindEngineGroupPO();
             BeanUtil.copyProperties(windFieldExceVos, windEngineGroupPO);
             String number = IdPrefixEnum.WIND_GROUP_NUMBER.getCode().concat(IdGeneratorUtil.zeroFillUtil(cacheService.incr(ManagerRedisKeyConstant.build(ManagerRedisKeyConstant.IDGENERATOR_CONSTANTS_KEY, IdPrefixEnum.WIND_GROUP_NUMBER.getCode()))));

+ 7 - 4
energy-manage-service/src/main/java/com/energy/manage/service/service/windfield/impl/WindFieldServiceImpl.java

@@ -55,10 +55,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.entity.Example;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -159,6 +156,12 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
                 return ResultResp.FAIL("当前导入风场数据未填写经纬度,请核查导入数据!");
             }
         }
+
+        // 校验是否有重复的风场名称
+        Set<String> fieldNameStrings = windFieldExceVoList.stream().map(item -> item.getFieldName()).collect(Collectors.toSet());
+        if(windFieldExceVoList.size()!=fieldNameStrings.size()){
+            return ResultResp.FAIL("当前导入风场数据有重复风场名称,请核查导入数据!");
+        }
         // 数据校验是否有重名风场
         List<String> fieldNames = windFieldExceVoList.stream().map(item -> item.getFieldName()).collect(Collectors.toList());
         Example queryExample = new Example(WindFieldPO.class);