qitz 2 лет назад
Родитель
Сommit
49197586a4

+ 1
- 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java Просмотреть файл

@@ -168,7 +168,7 @@ public class CaseApplicationController extends BaseController {
168 168
      * @param id        案件申请id
169 169
      * @return
170 170
      */
171
-    @PostMapping("/upload")
171
+    @PostMapping("/uploadZipFile")
172 172
     public AjaxResult uploadZipFile(@RequestParam("file") MultipartFile file, Long id) {
173 173
         String username = this.getUsername();
174 174
         Long userId = this.getUserId();

+ 42
- 36
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java Просмотреть файл

@@ -272,9 +272,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
272 272
         if (file.isEmpty()) {
273 273
             return AjaxResult.error("请选择要上传的文件");
274 274
         }
275
-//        String targetPath =  "/home/ruoyi/uploadPath/upload/unzipFile";
276
-//        String targetPath =  "F:\\testZip\\unzipFile";
277
-        String targetPath =  "F:\\testZip\\unzipFile";
275
+        String targetPath =  "/home/ruoyi/uploadPath/upload/unzipFile";
276
+//        String targetPath =  "F:\\testZip\\uploadPath\\upload\\upload1\\unzipFile";
278 277
         File zipFile = null;
279 278
         InputStream ins = null;
280 279
         try {
@@ -289,8 +288,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
289 288
 
290 289
         //得到解压缩的所有文件
291 290
         String zipName = file.getOriginalFilename();
292
-        String zipPath = "F:\\testZip\\unzipFile\\"+zipName;
293
-//        String zipPath =  "/home/ruoyi/uploadPath/upload/unzipFile"+zipName;
291
+        String subzipName = zipName.substring(0,zipName.indexOf(".zip"));
292
+//        String zipPath = "F:\\testZip\\uploadPath\\upload\\upload1\\unzipFile\\"+subzipName;
293
+        String zipPath =  "/home/ruoyi/uploadPath/upload/unzipFile/"+subzipName;
294
+
294 295
         File dirUnzipPath = new File(zipPath);
295 296
         List<File> allFiles = new ArrayList<>();
296 297
         List<String> allFilestr = new ArrayList<>();
@@ -306,25 +307,27 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
306 307
         if(allFilestr!=null&&allFilestr.size()>0){
307 308
             for (String filestr : allFilestr) {
308 309
                 List<Integer> allindex = new ArrayList<>();
309
-                int indexKey = filestr.indexOf("\\");
310
+//                int indexKey = filestr.indexOf("\\");
311
+                int indexKey = filestr.indexOf("/");
312
+//                System.out.println("filestr:------------"+filestr);
310 313
                 allindex.add(indexKey);
311 314
                 while (indexKey != -1) {
312
-                    indexKey = filestr.indexOf("\\", indexKey + 1);
315
+//                    indexKey = filestr.indexOf("\\", indexKey + 1);
316
+                    indexKey = filestr.indexOf("/", indexKey + 1);
313 317
                     allindex.add(indexKey);
314 318
                 }
319
+
315 320
                 if(allindex!=null&&allindex.size()>0){
316
-                    String substrOne = filestr.substring(allindex.get(2)+1,allindex.get(3));
321
+                    String substrOne = filestr.substring(allindex.get(6)+1,allindex.get(7));
317 322
                     Integer series = null;
318
-                    for (int i = 0; i < allindex.size()-2; i++) {
319
-                        String substr = filestr.substring(allindex.get(i+2)+1,allindex.get(i+3));
323
+                    for (int i = 0; i < allindex.size()-7; i++) {
324
+                        String substr = filestr.substring(allindex.get(i+5)+1,allindex.get(i+6));
320 325
                         series = i + 1;
321
-
322 326
                         if(series==1){
323
-
324 327
                             //查询这个级数的目录是否存在,若不存在,则新建这个目录
325 328
                             CaseEvidenceDirectory caseEvidenceDirectoryselect = new CaseEvidenceDirectory();
326 329
                             caseEvidenceDirectoryselect.setCaseId(id);
327
-                            caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+2)+1,allindex.get(i+3)));
330
+                            caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+5)+1,allindex.get(i+6)));
328 331
                             caseEvidenceDirectoryselect.setSeries(series);
329 332
                             List<CaseEvidenceDirectory>  caseEvidenceDirectorys = caseEvidenceDirectoryMapper.selectList(caseEvidenceDirectoryselect);
330 333
                             if(caseEvidenceDirectorys!=null&&caseEvidenceDirectorys.size()>0){
@@ -333,19 +336,16 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
333 336
                                 CaseEvidenceDirectory caseEvidenceDirectory = new CaseEvidenceDirectory();
334 337
                                 caseEvidenceDirectory.setEvidenceName(substr);
335 338
                                 caseEvidenceDirectory.setSeries(series);
336
-
337 339
                                 caseEvidenceDirectory.setCaseId(id);
338 340
                                 caseEvidenceDirectory.setCreateBy(username);
339 341
                                 caseEvidenceDirectory.setCreateTime(new Date());
340
-
341 342
                                 caseEvidenceDirectoryMapper.save(caseEvidenceDirectory);
342
-
343 343
                             }
344 344
                         }else {
345 345
                             //查询这个级数的目录是否存在,若不存在,则新建这个目录
346 346
                             CaseEvidenceDirectory directoryselect = new CaseEvidenceDirectory();
347 347
                             directoryselect.setCaseId(id);
348
-                            directoryselect.setEvidenceName(filestr.substring(allindex.get(i+2)+1,allindex.get(i+3)));
348
+                            directoryselect.setEvidenceName(filestr.substring(allindex.get(i+5)+1,allindex.get(i+6)));
349 349
                             directoryselect.setSeries(series);
350 350
                             List<CaseEvidenceDirectory>  evidenceDirectorys = caseEvidenceDirectoryMapper.selectList(directoryselect);
351 351
                             if(evidenceDirectorys!=null&&evidenceDirectorys.size()>0){
@@ -354,7 +354,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
354 354
                                 Long parentId = null;
355 355
                                 CaseEvidenceDirectory caseEvidenceDirectoryselect = new CaseEvidenceDirectory();
356 356
                                 caseEvidenceDirectoryselect.setCaseId(id);
357
-                                caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+1)+1,allindex.get(i+2)));
357
+                                caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+4)+1,allindex.get(i+5)));
358 358
                                 caseEvidenceDirectoryselect.setSeries(series-1);
359 359
                                 List<CaseEvidenceDirectory>  caseEvidenceDirectorys = caseEvidenceDirectoryMapper.selectList(caseEvidenceDirectoryselect);
360 360
                                 if(caseEvidenceDirectorys!=null&&caseEvidenceDirectorys.size()>0){
@@ -367,47 +367,54 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
367 367
                                 caseEvidenceDirectory.setCreateBy(username);
368 368
                                 caseEvidenceDirectory.setCreateTime(new Date());
369 369
                                 caseEvidenceDirectory.setCaseId(id);
370
-
371 370
                                 caseEvidenceDirectory.setParentId(parentId);
372
-
373 371
                                 caseEvidenceDirectoryMapper.save(caseEvidenceDirectory);
374
-
375 372
                             }
376 373
 
377 374
                         }
378 375
                     }
379 376
 
380 377
                     //得到最后1级的目录,即文件
381
-                    int lastIndex = allindex.size()-2;
378
+                    int lastIndex = allindex.get(7);
382 379
                     String substrfile = filestr.substring(lastIndex+1);
383
-
384 380
                     //保存到附件表
385 381
                     LocalDate now = LocalDate.now();
386 382
                     String year = Integer.toString(now.getYear());
387 383
                     String month = String.format("%02d", now.getMonthValue());
388 384
                     String day = String.format("%02d", now.getDayOfMonth());
389
-//                    String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
390
-                    String saveFolderPath = "D:/data/" + year + "/" + month + "/" + day;
385
+                    String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
386
+//                    String saveFolderPath = "D:/data/" + year + "/" + month + "/" + day;
391 387
                     String fileName = UUID.randomUUID().toString().replace("-", "")+ "_"  + substrfile;
392 388
                     String resultFilePath = saveFolderPath + "/" + fileName;
393
-
394 389
                     try {
390
+                        File resultFilePathFile  = new File(resultFilePath);
391
+                        File parentFilePathFile = resultFilePathFile.getParentFile();
392
+                        if (!parentFilePathFile.exists()) {
393
+                            parentFilePathFile.mkdirs();
394
+                        }
395
+                        if (!resultFilePathFile.exists()) {
396
+                            resultFilePathFile.createNewFile();
397
+                        }
398
+
395 399
                         FileInputStream fis = new FileInputStream(new File(filestr));
396
-                        FileOutputStream fos = new FileOutputStream(new File(resultFilePath));
397
-                        byte b[] = new byte[1024];
400
+                        FileOutputStream fos = new FileOutputStream(resultFilePathFile);
401
+                        byte[] btyeBuf = new byte[1024];
398 402
                         int len=0;
399
-                        while((len=fis.read(b))!=-1){
400
-                            fos.write(b);
403
+                        while((len=fis.read(btyeBuf))!=-1){
404
+                            fos.write(btyeBuf,0,len);
401 405
                         }
406
+                        fis.close();
407
+                        fos.close();
402 408
 
403 409
                     } catch (IOException e) {
404 410
                         AjaxResult.error("文件解压异常",e);
405 411
                     }
406 412
 
413
+                    String substrTwo = filestr.substring(allindex.get(6)+1,allindex.get(7));
407 414
                     Integer annexType = null;
408
-                    if("申请书".equals(substrOne)){
415
+                    if("申请书".equals(substrTwo)){
409 416
                         annexType = 1;
410
-                    }else if("证据材料".equals(substrOne)){
417
+                    }else if("证据材料".equals(substrTwo)){
411 418
                         annexType = 2;
412 419
                     }
413 420
                     String savePath = "/home/ruoyi/uploadPath/upload";
@@ -420,15 +427,14 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
420 427
                             .annexType(annexType)
421 428
                             .build();
422 429
                     int i = caseAttachMapper.save(caseAttach);
423
-
424 430
                     Integer annexId = caseAttach.getAnnexId();
425 431
 
426 432
                     //保存到目录表
427 433
                     Long parentId = null;
428 434
                     CaseEvidenceDirectory caseEvidenceDirectoryselect = new CaseEvidenceDirectory();
429 435
                     caseEvidenceDirectoryselect.setCaseId(id);
430
-                    caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(lastIndex)+1,allindex.get(lastIndex+1)));
431
-                    caseEvidenceDirectoryselect.setSeries(series-1);
436
+                    caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(6)+1,allindex.get(7)));
437
+                    caseEvidenceDirectoryselect.setSeries(series);
432 438
                     List<CaseEvidenceDirectory>  caseEvidenceDirectorys = caseEvidenceDirectoryMapper.selectList(caseEvidenceDirectoryselect);
433 439
                     if(caseEvidenceDirectorys!=null&&caseEvidenceDirectorys.size()>0){
434 440
                         parentId = caseEvidenceDirectorys.get(0).getId();
@@ -436,7 +442,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
436 442
 
437 443
                     CaseEvidenceDirectory caseEvidenceDirectory = new CaseEvidenceDirectory();
438 444
                     caseEvidenceDirectory.setEvidenceName(substrfile);
439
-                    caseEvidenceDirectory.setSeries(series);
445
+                    caseEvidenceDirectory.setSeries(series+1);
440 446
                     caseEvidenceDirectory.setCreateBy(username);
441 447
                     caseEvidenceDirectory.setCreateTime(new Date());
442 448
                     caseEvidenceDirectory.setAnnexId(annexId);