From e122158107e81dd62848483ce7373e3ca9cacf16 Mon Sep 17 00:00:00 2001 From: Soumya Samanta <2742756@tcs.com> Date: Wed, 27 Aug 2025 15:35:45 +0530 Subject: [PATCH] resolve bulkfile issue --- loadreportfile/Main.java | 256 ++++++++++++++++++++++++--------------- 1 file changed, 158 insertions(+), 98 deletions(-) diff --git a/loadreportfile/Main.java b/loadreportfile/Main.java index 3f75cbb..a8e901f 100644 --- a/loadreportfile/Main.java +++ b/loadreportfile/Main.java @@ -7,6 +7,7 @@ import java.io.FileOutputStream; import java.io.FileReader; import java.io.InputStream; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Properties; import java.util.concurrent.TimeUnit; @@ -53,122 +54,181 @@ public class Main { File folder = new File(inpFolderPath); - File unzipFolder = new File(inpFolderPath + "unzipped"); - File processedFolder = new File(inpFolderPath + "processed_bkp"); + File unzipFolder = new File(inpFolderPath + "unzipped"); + File processedFolder = new File(inpFolderPath + "processed_bkp"); - if (!unzipFolder.exists()) { - unzipFolder.mkdir(); - } + if (!unzipFolder.exists()) { + unzipFolder.mkdir(); + } - if (!processedFolder.exists()) { - processedFolder.mkdir(); - } + if (!processedFolder.exists()) { + processedFolder.mkdir(); + } + while (true) { + String unzipFolderPath = unzipFolder.getAbsolutePath(); + File[] gzFileList = folder.listFiles(); - while (true) { - String unzipFolderPath = unzipFolder.getAbsolutePath(); - File[] gzFileList = folder.listFiles(); - byte[] buffer = new byte[1024]; + try { + for (File file : gzFileList) { + + if (file.isFile()) { + System.out.println("Current File name: " + file.getName()); + if (file.getName().endsWith(".gz")) { + GZIPInputStream gzis = new GZIPInputStream(new FileInputStream(file.getAbsoluteFile())); + FileOutputStream out = new FileOutputStream( + unzipFolderPath + File.separator + file.getName().replace(".gz", "")); + byte[] buffer = new byte[1024]; + int len; + while ((len = gzis.read(buffer)) > 0) { + out.write(buffer, 0, len); + } - try { - for (File file : gzFileList) { - System.out.println("Current File name: " + file.getName()); - if (file.isFile()) { - GZIPInputStream gzis = new GZIPInputStream(new FileInputStream(file.getAbsoluteFile())); - FileOutputStream out = new FileOutputStream( - unzipFolderPath + File.separator + file.getName().replace(".gz", "")); - int len; - while ((len = gzis.read(buffer)) > 0) { - out.write(buffer, 0, len); - } + gzis.close(); + out.close(); + } else { + File destFile = new File(unzipFolderPath + File.separator + file.getName()); + FileInputStream fis = new FileInputStream(file); + FileOutputStream fos = new FileOutputStream(destFile); + byte[] buffer = new byte[1024]; + int len; + while ((len = fis.read(buffer)) > 0) { + fos.write(buffer, 0, len); + } + fis.close(); + fos.close(); + } - gzis.close(); - out.close(); + file.renameTo(new File(processedFolder.getAbsoluteFile() + File.separator + file.getName())); - file.renameTo(new File(processedFolder.getAbsoluteFile() + File.separator + file.getName())); + System.out.println("Done"); + } + } + } catch (Exception e) { + e.printStackTrace(); + } - System.out.println("Done"); - } - } - } catch (Exception e) { - e.printStackTrace(); - } + File[] listOfFiles = unzipFolder.listFiles(); + // ✅ Allowed codes + String[] allowedCodes = { "00002" }; - File[] listOfFiles = unzipFolder.listFiles(); + try { + for (File file2 : listOfFiles) { + if (file2.isFile()) { + accntdetailsList.clear(); + String fileName = file2.getName(); + System.out.println(fileName); + // ✅ Split by underscore and extract second part EX- BLK_00014_20082025* + String[] parts = fileName.split("_"); + String code = (parts.length > 1) ? parts[1] : ""; - try { - for (File file2 : listOfFiles) { - if (file2.isFile()) { - accntdetailsList.clear(); - System.out.println(file2.getName()); - br = new BufferedReader(new FileReader(file2.getAbsoluteFile())); - String fileName = file2.getName(); + // ✅ Check if code is in allowedCodes + boolean match = Arrays.asList(allowedCodes).contains(code); + if (!match) { + br = new BufferedReader(new FileReader(file2.getAbsoluteFile())); - while ((line = br.readLine()) != null) { + while ((line = br.readLine()) != null) { - if (!line.isEmpty() && line.length() == 146) { - accNo = line.substring(129); - cbsAccNo = line.substring(75, 88); - cbsCIF = line.substring(95, 108); - cbsAccNo = cbsAccNo.replace("-", ""); - cbsAccNo = cbsAccNo.replace(" ", ""); - cbsCIF = cbsCIF.replace("-", ""); - cbsCIF = cbsCIF.replace(" ", ""); + if (!line.isEmpty() && line.length() == 146) { + accNo = line.substring(129); + cbsAccNo = line.substring(75, 88); + cbsCIF = line.substring(95, 108); + cbsAccNo = cbsAccNo.replace("-", ""); + cbsAccNo = cbsAccNo.replace(" ", ""); + cbsCIF = cbsCIF.replace("-", ""); + cbsCIF = cbsCIF.replace(" ", ""); - if (cbsAccNo.length() != 0 && accNo.length() != 0) { + if (cbsAccNo.length() != 0 && accNo.length() != 0) { - accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); - System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); - } - } + accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); + System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); + } + } - if (!line.isEmpty() && line.length() == 129) { - accNo = line.substring(112); - cbsAccNo = line.substring(74, 89); - cbsCIF = line.substring(94, 109); - cbsAccNo = cbsAccNo.replace("-", ""); - cbsAccNo = cbsAccNo.replace(" ", ""); - cbsCIF = cbsCIF.replace("-", ""); - cbsCIF = cbsCIF.replace(" ", ""); + if (!line.isEmpty() && line.length() == 129) { + accNo = line.substring(112); + cbsAccNo = line.substring(74, 89); + cbsCIF = line.substring(94, 109); + cbsAccNo = cbsAccNo.replace("-", ""); + cbsAccNo = cbsAccNo.replace(" ", ""); + cbsCIF = cbsCIF.replace("-", ""); + cbsCIF = cbsCIF.replace(" ", ""); - if (cbsAccNo.length() != 0 && accNo.length() != 0) { + if (cbsAccNo.length() != 0 && accNo.length() != 0) { - accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); - System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); - } - } + accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); + System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); + } + } - if (!line.isEmpty() && line.length() > 112 && line.length() != 129 - && line.length() != 146) { - accNo = "E"; - cbsAccNo = line.substring(74, 89); - cbsCIF = line.substring(94, 109); - cbsAccNo = cbsAccNo.replace("-", ""); - cbsAccNo = cbsAccNo.replace(" ", ""); - cbsCIF = cbsCIF.replace("-", ""); - cbsCIF = cbsCIF.replace(" ", ""); + if (!line.isEmpty() && line.length() > 112 && line.length() != 129 + && line.length() != 146) { + accNo = "E"; + cbsAccNo = line.substring(74, 89); + cbsCIF = line.substring(94, 109); + cbsAccNo = cbsAccNo.replace("-", ""); + cbsAccNo = cbsAccNo.replace(" ", ""); + cbsCIF = cbsCIF.replace("-", ""); + cbsCIF = cbsCIF.replace(" ", ""); - if (cbsAccNo.length() != 0 && cbsCIF.length() != 0) { + if (cbsAccNo.length() != 0 && cbsCIF.length() != 0) { - accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); - System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); - } - } - } + accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); + System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); + } + } + } + } else { + br = new BufferedReader(new FileReader(file2.getAbsoluteFile())); + while ((line = br.readLine()) != null) { + + if (!line.isEmpty() && line.length() == 118) { + accNo = line.substring(102); + cbsAccNo = line.substring(62, 75); + cbsCIF = line.substring(84, 97); + cbsAccNo = cbsAccNo.replace("-", ""); + cbsAccNo = cbsAccNo.replace(" ", ""); + cbsCIF = cbsCIF.replace("-", ""); + cbsCIF = cbsCIF.replace(" ", ""); - if (accntdetailsList.size() > 0) - outMsg = dao.insertBulkAccMap(accntdetailsList, "", "", dbUrl, dbUsr, dbPass, dbSchema, - fileName); - System.out.println(outMsg); - } - file2.delete(); - } - System.out.println("___________________________________________________"); - TimeUnit.MINUTES.sleep(sleep); - } catch (Exception ex) { - ex.printStackTrace(); - System.out.println("___________________________________________________"); - TimeUnit.MINUTES.sleep(sleep); - } - } - } + if (cbsAccNo.length() != 0 && accNo.length() != 0) { + + accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); + System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); + } + } + if (!line.isEmpty() && line.length() > 112 && line.length() != 118) { + System.out.println(line); + accNo = "E"; + cbsAccNo = line.substring(62, 75); + cbsCIF = line.substring(84, 97); + cbsAccNo = cbsAccNo.replace("-", ""); + cbsAccNo = cbsAccNo.replace(" ", ""); + cbsCIF = cbsCIF.replace("-", ""); + cbsCIF = cbsCIF.replace(" ", ""); + + if (cbsAccNo.length() != 0 && cbsCIF.length() != 0) { + + accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); + System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); + } + } + } + } + if (accntdetailsList.size() > 0) + outMsg = dao.insertBulkAccMap(accntdetailsList, "", "", dbUrl, dbUsr, dbPass, dbSchema, + fileName); + System.out.println(outMsg); + } + file2.delete(); + br.close(); + } + System.out.println("___________________________________________________"); + TimeUnit.MINUTES.sleep(sleep); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("___________________________________________________"); + TimeUnit.MINUTES.sleep(sleep); + } + } + } }