Browse Source

导入新增校验

ZeroLiYi 3 months ago
parent
commit
301e622364

+ 29 - 5
unis-plugin/unis-plugin-biz/src/main/java/com/unis/emergencySupport/modular/es/service/impl/EsDeliveryEnterpriseServiceImpl.java

@@ -319,28 +319,52 @@ public class EsDeliveryEnterpriseServiceImpl extends ServiceImpl<EsDeliveryEnter
319 319
                         EsNetworkEntry.setEnterpriseType(strings[16]);//企业类型
320 320
 
321 321
 
322
-                        if (strings[17] != null) {
322
+
323
+
324
+                        if (strings[17] != null && !strings[17].isEmpty()) {
323 325
                             try {
324 326
                                 BigDecimal longitude = new BigDecimal(strings[17]);
325
-                                // 进行后续的处理
327
+                                // 进行范围检查
328
+                                if (longitude.compareTo(BigDecimal.valueOf(-180)) < 0 || longitude.compareTo(BigDecimal.valueOf(180)) > 0) {
329
+                                    throw new IllegalArgumentException("经度超出有效范围");
330
+                                }
331
+                                // 进行精度和小数位数检查
332
+                                if (longitude.scale() > 6) { // 假设精度不能超过6位小数
333
+                                    throw new IllegalArgumentException("经度小数位数过多");
334
+                                }
326 335
                                 EsNetworkEntry.setLongitude(longitude);
327 336
                             } catch (NumberFormatException e) {
328 337
                                 throw new NumberFormatException(strings[17] + " 经度格式不正确");
338
+                            } catch (IllegalArgumentException e) {
339
+                                throw new IllegalArgumentException(strings[17] + " " + e.getMessage());
329 340
                             }
341
+                        } else {
342
+                            throw new NumberFormatException(strings[17] + " 经度格式不正确");
330 343
                         }
331 344
 
332
-
333
-                        if (strings[18] != null) {
345
+                        if (strings[18] != null && !strings[18].isEmpty()) {
334 346
                             try {
335 347
                                 BigDecimal latitude = new BigDecimal(strings[18]);
336
-                                // 进行后续的处理
348
+                                // 进行范围检查
349
+                                if (latitude.compareTo(BigDecimal.valueOf(-90)) < 0 || latitude.compareTo(BigDecimal.valueOf(90)) > 0) {
350
+                                    throw new IllegalArgumentException("纬度超出有效范围");
351
+                                }
352
+                                // 进行精度和小数位数检查
353
+                                if (latitude.scale() > 6) { // 假设精度不能超过6位小数
354
+                                    throw new IllegalArgumentException("纬度小数位数过多");
355
+                                }
337 356
                                 EsNetworkEntry.setLatitude(latitude);
338 357
                             } catch (NumberFormatException e) {
339 358
                                 throw new NumberFormatException(strings[18] + " 纬度格式不正确");
359
+                            } catch (IllegalArgumentException e) {
360
+                                throw new IllegalArgumentException(strings[18] + " " + e.getMessage());
340 361
                             }
362
+                        } else {
363
+                            throw new NumberFormatException(strings[18] + " 纬度格式不正确");
341 364
                         }
342 365
 
343 366
 
367
+
344 368
                         EsNetworkEntry.setLegalRepresentative(strings[19]);//法人姓名
345 369
                         EsNetworkEntry.setLegalContact(strings[20]);//法人联系方式
346 370
                         EsNetworkEntry.setEnterpriseContact(strings[21]);//联系人姓名

+ 31 - 5
unis-plugin/unis-plugin-biz/src/main/java/com/unis/emergencySupport/modular/es/service/impl/EsNetworkEntryServiceImpl.java

@@ -344,29 +344,55 @@ public class EsNetworkEntryServiceImpl extends ServiceImpl<EsNetworkEntryMapper,
344 344
 //
345 345
 //                        EsNetworkEntry.setLatitude(new BigDecimal(strings[18]));//纬度
346 346
 
347
-                        if (strings[17] != null) {
347
+
348
+
349
+                        if (strings[17] != null && !strings[17].isEmpty()) {
348 350
                             try {
349 351
                                 BigDecimal longitude = new BigDecimal(strings[17]);
350
-                                // 进行后续的处理
352
+                                // 进行范围检查
353
+                                if (longitude.compareTo(BigDecimal.valueOf(-180)) < 0 || longitude.compareTo(BigDecimal.valueOf(180)) > 0) {
354
+                                    throw new IllegalArgumentException("经度超出有效范围");
355
+                                }
356
+                                // 进行精度和小数位数检查
357
+                                if (longitude.scale() > 6) { // 假设精度不能超过6位小数
358
+                                    throw new IllegalArgumentException("经度小数位数过多");
359
+                                }
351 360
                                 EsNetworkEntry.setLongitude(longitude);
352 361
                             } catch (NumberFormatException e) {
353 362
                                 throw new NumberFormatException(strings[17] + " 经度格式不正确");
363
+                            } catch (IllegalArgumentException e) {
364
+                                throw new IllegalArgumentException(strings[17] + " " + e.getMessage());
354 365
                             }
366
+                        } else {
367
+                            throw new NumberFormatException(strings[17] + " 经度格式不正确");
355 368
                         }
356 369
 
357
-
358
-                        if (strings[18] != null) {
370
+                        if (strings[18] != null && !strings[18].isEmpty()) {
359 371
                             try {
360 372
                                 BigDecimal latitude = new BigDecimal(strings[18]);
361
-                                // 进行后续的处理
373
+                                // 进行范围检查
374
+                                if (latitude.compareTo(BigDecimal.valueOf(-90)) < 0 || latitude.compareTo(BigDecimal.valueOf(90)) > 0) {
375
+                                    throw new IllegalArgumentException("纬度超出有效范围");
376
+                                }
377
+                                // 进行精度和小数位数检查
378
+                                if (latitude.scale() > 6) { // 假设精度不能超过6位小数
379
+                                    throw new IllegalArgumentException("纬度小数位数过多");
380
+                                }
362 381
                                 EsNetworkEntry.setLatitude(latitude);
363 382
                             } catch (NumberFormatException e) {
364 383
                                 throw new NumberFormatException(strings[18] + " 纬度格式不正确");
384
+                            } catch (IllegalArgumentException e) {
385
+                                throw new IllegalArgumentException(strings[18] + " " + e.getMessage());
365 386
                             }
387
+                        } else {
388
+                            throw new NumberFormatException(strings[18] + " 纬度格式不正确");
366 389
                         }
367 390
 
368 391
 
369 392
 
393
+
394
+
395
+
370 396
                         EsNetworkEntry.setLegalRepresentative(strings[19]);//法人姓名
371 397
                         EsNetworkEntry.setLegalContact(strings[20]);//法人联系方式
372 398
                         EsNetworkEntry.setContactPerson(strings[21]);//联系人姓名

+ 31 - 7
unis-plugin/unis-plugin-biz/src/main/java/com/unis/emergencySupport/modular/es/service/impl/EsProcessEnterpriseServiceImpl.java

@@ -333,28 +333,52 @@ public class EsProcessEnterpriseServiceImpl extends ServiceImpl<EsProcessEnterpr
333 333
 //                        EsProcessEnterprise.setLatitude(new BigDecimal(strings[18]));//纬度
334 334
 
335 335
                         // 假设 strings 是字符串数组,其中包含经度和纬度的数据
336
-                        if (strings[17] != null) {
336
+
337
+
338
+                        if (strings[17] != null && !strings[17].isEmpty()) {
337 339
                             try {
338 340
                                 BigDecimal longitude = new BigDecimal(strings[17]);
339
-                                // 进行后续的处理
340
-                                EsProcessEnterprise.setLongitude(longitude);
341
+                                // 进行范围检查
342
+                                if (longitude.compareTo(BigDecimal.valueOf(-180)) < 0 || longitude.compareTo(BigDecimal.valueOf(180)) > 0) {
343
+                                    throw new IllegalArgumentException("经度超出有效范围");
344
+                                }
345
+                                // 进行精度和小数位数检查
346
+                                if (longitude.scale() > 6) { // 假设精度不能超过6位小数
347
+                                    throw new IllegalArgumentException("经度小数位数过多");
348
+                                }
349
+                                EsNetworkEntry.setLongitude(longitude);
341 350
                             } catch (NumberFormatException e) {
342 351
                                 throw new NumberFormatException(strings[17] + " 经度格式不正确");
352
+                            } catch (IllegalArgumentException e) {
353
+                                throw new IllegalArgumentException(strings[17] + " " + e.getMessage());
343 354
                             }
355
+                        } else {
356
+                            throw new NumberFormatException(strings[17] + " 经度格式不正确");
344 357
                         }
345 358
 
346
-
347
-                        if (strings[18] != null) {
359
+                        if (strings[18] != null && !strings[18].isEmpty()) {
348 360
                             try {
349 361
                                 BigDecimal latitude = new BigDecimal(strings[18]);
350
-                                // 进行后续的处理
351
-                                EsProcessEnterprise.setLatitude(latitude);
362
+                                // 进行范围检查
363
+                                if (latitude.compareTo(BigDecimal.valueOf(-90)) < 0 || latitude.compareTo(BigDecimal.valueOf(90)) > 0) {
364
+                                    throw new IllegalArgumentException("纬度超出有效范围");
365
+                                }
366
+                                // 进行精度和小数位数检查
367
+                                if (latitude.scale() > 6) { // 假设精度不能超过6位小数
368
+                                    throw new IllegalArgumentException("纬度小数位数过多");
369
+                                }
370
+                                EsNetworkEntry.setLatitude(latitude);
352 371
                             } catch (NumberFormatException e) {
353 372
                                 throw new NumberFormatException(strings[18] + " 纬度格式不正确");
373
+                            } catch (IllegalArgumentException e) {
374
+                                throw new IllegalArgumentException(strings[18] + " " + e.getMessage());
354 375
                             }
376
+                        } else {
377
+                            throw new NumberFormatException(strings[18] + " 纬度格式不正确");
355 378
                         }
356 379
 
357 380
 
381
+
358 382
                         EsProcessEnterprise.setLegalRepresentative(strings[19]);//法人姓名
359 383
                         EsProcessEnterprise.setLegalContact(strings[20]);//法人联系方式
360 384
                         EsProcessEnterprise.setEnterpriseContact(strings[21]);//企业联系人