diff --git a/app/src/components/Search.vue b/app/src/components/Search.vue index 4cb2fc2..ffe4fe7 100644 --- a/app/src/components/Search.vue +++ b/app/src/components/Search.vue @@ -154,7 +154,10 @@ Object.keys(resp.data.data).forEach(async (key) => { await this.getHeaders(key); }); - setTimeout(() => {this.result = resp.data.data; this.progress = false;}, 500); + setTimeout(() => { + this.result = resp.data.data; + this.progress = false; + }, 500); // this.result = resp.data.data; }); }, diff --git a/src/main/java/com/moze/rms/controller/InventoryController.java b/src/main/java/com/moze/rms/controller/InventoryController.java index 1c6d1e6..23deed8 100644 --- a/src/main/java/com/moze/rms/controller/InventoryController.java +++ b/src/main/java/com/moze/rms/controller/InventoryController.java @@ -141,7 +141,8 @@ public class InventoryController { descriptMap.put(m.getColname(), m.getDescript2()); } ExcelExpoter excelExpoter = new ExcelExpoter(""); - excelExpoter.expoerDataExcel(resp, titleKeyList, titleMap, descriptMap, items, info.get("tablename")); + String sheetName = mappingTableDAO.findTitle(info.get("tablename")); + excelExpoter.expoerDataExcel(resp, titleKeyList, titleMap, descriptMap, items, info.get("tablename"), sheetName); } @GetMapping("/allHeaders") diff --git a/src/main/java/com/moze/rms/controller/SearchController.java b/src/main/java/com/moze/rms/controller/SearchController.java index a5e5c83..4a91712 100644 --- a/src/main/java/com/moze/rms/controller/SearchController.java +++ b/src/main/java/com/moze/rms/controller/SearchController.java @@ -55,30 +55,60 @@ public class SearchController { - Iterator>>> iterator = data.entrySet().iterator(); - - +// Iterator>>> iterator = data.entrySet().iterator(); +// +// +// Map>titleKeyLists = new ManagedMap<>(); +// Map> titleMaps = new ManagedMap<>(); +// Map> descriptMaps = new ManagedMap<>(); +// while (iterator.hasNext()) { +// Map.Entry>> next = iterator.next(); +// String key = next.getKey(); +// List mappingCols = mappingColDAO.findByTable(key); +// ArrayList titleKeyList= new ArrayList<>(); +// Map titleMap = new ManagedMap<>(); +// Map descriptMap = new ManagedMap<>(); +// for(MappingCol m: mappingCols) { +// titleKeyList.add(m.getColname()); +// titleMap.put(m.getColname(), m.getDescript()); +// descriptMap.put(m.getColname(), m.getDescript2()); +// } +// titleKeyLists.put(key, titleKeyList); +// titleMaps.put(key, titleMap); +// descriptMaps.put(key, descriptMap); +// } +// ExcelExpoter excelExpoter = new ExcelExpoter(""); +// List mappingTables = mappingTableDAO.findAll(); +// Map mappingSheetNames = new HashMap<>(); +// for (MappingTable mappingTable : mappingTables) { +// mappingSheetNames.put(mappingTable.getTablename(), mappingTable.getDescript()); +// } +// excelExpoter.expoerDataExcelMultiSheet(resp, titleKeyLists, titleMaps, descriptMaps, data, "", mappingSheetNames); + + + List mappingTables = mappingTableDAO.findAll(); + Map mappingSheetNames = new ManagedMap<>(); Map>titleKeyLists = new ManagedMap<>(); Map> titleMaps = new ManagedMap<>(); Map> descriptMaps = new ManagedMap<>(); - while (iterator.hasNext()) { - Map.Entry>> next = iterator.next(); - String key = next.getKey(); - List mappingCols = mappingColDAO.findByTable(key); - ArrayList titleKeyList= new ArrayList<>(); - Map titleMap = new ManagedMap<>(); - Map descriptMap = new ManagedMap<>(); - for(MappingCol m: mappingCols) { - titleKeyList.add(m.getColname()); - titleMap.put(m.getColname(), m.getDescript()); - descriptMap.put(m.getColname(), m.getDescript2()); + for (MappingTable mappingTable : mappingTables) { + if (data.get(mappingTable.getTablename()) != null) { + List mappingCols = mappingColDAO.findByTable(mappingTable.getTablename()); + ArrayList titleKeyList= new ArrayList<>(); + Map titleMap = new ManagedMap<>(); + Map descriptMap = new ManagedMap<>(); + for(MappingCol m: mappingCols) { + titleKeyList.add(m.getColname()); + titleMap.put(m.getColname(), m.getDescript()); + descriptMap.put(m.getColname(), m.getDescript2()); + } + titleKeyLists.put(mappingTable.getTablename(), titleKeyList); + titleMaps.put(mappingTable.getTablename(), titleMap); + descriptMaps.put(mappingTable.getTablename(), descriptMap); + mappingSheetNames.put(mappingTable.getTablename(), mappingTable.getDescript()); } - titleKeyLists.put(key, titleKeyList); - titleMaps.put(key, titleMap); - descriptMaps.put(key, descriptMap); } ExcelExpoter excelExpoter = new ExcelExpoter(""); - excelExpoter.expoerDataExcelMultiSheet(resp, titleKeyLists, titleMaps, descriptMaps, data, ""); + excelExpoter.expoerDataExcelMultiSheet(resp, titleKeyLists, titleMaps, descriptMaps, data, "", mappingSheetNames); } - } diff --git a/src/main/java/com/moze/rms/dao/AccountDAO.java b/src/main/java/com/moze/rms/dao/AccountDAO.java index 89d5d3f..3ee88dd 100644 --- a/src/main/java/com/moze/rms/dao/AccountDAO.java +++ b/src/main/java/com/moze/rms/dao/AccountDAO.java @@ -24,7 +24,7 @@ public interface AccountDAO extends SqlObject { List findAll(); @RegisterBeanMapper(List.class) - @SqlQuery("select * from department;") + @SqlQuery("select * from department order by department;") List finfDepartments(); diff --git a/src/main/java/com/moze/rms/utils/ExcelExpoter.java b/src/main/java/com/moze/rms/utils/ExcelExpoter.java index a3f5f70..129d665 100644 --- a/src/main/java/com/moze/rms/utils/ExcelExpoter.java +++ b/src/main/java/com/moze/rms/utils/ExcelExpoter.java @@ -3,6 +3,7 @@ package com.moze.rms.utils; import java.io.*; import java.util.*; +import com.moze.rms.entity.model.MappingTable; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -177,7 +178,7 @@ public class ExcelExpoter { } - public void expoerDataExcel(HttpServletResponse response, ArrayList titleKeyList, Map titleMap, Map descriptMap, List> src_list, String filename) throws IOException { + public void expoerDataExcel(HttpServletResponse response, ArrayList titleKeyList, Map titleMap, Map descriptMap, List> src_list, String filename, String sheetName) throws IOException { String xlsFile_name = filename + ".xls"; //輸出xls檔名稱 //記憶體中只建立100個物件 @@ -199,7 +200,7 @@ public class ExcelExpoter { //寫入300000條後切換到下個工作表 if (rowNo % 300000 == 0) { System.out.println("Current Sheet:" + rowNo / 300000); - sheet = wb.createSheet("工作表1");//建立新的sheet物件 + sheet = wb.createSheet(sheetName);//建立新的sheet物件 sheet = wb.getSheetAt(rowNo / 300000); //動態指定當前的工作表 pageRowNo = 0; //新建了工作表,重置工作表的行號為0 // -----------定義表頭----------- @@ -238,6 +239,7 @@ public class ExcelExpoter { cell_tem.setCellStyle(descriptStyle); } rowNo++; + sheet.createFreezePane(0, 2); // --------------------------- } rowNo++; @@ -265,7 +267,7 @@ public class ExcelExpoter { } - public void expoerDataExcelMultiSheet(HttpServletResponse response, Map> titleKeyLists, Map> titleMaps, Map> descriptMaps, Map>> src_lists, String filename) throws IOException { + public void expoerDataExcelMultiSheet(HttpServletResponse response, Map> titleKeyLists, Map> titleMaps, Map> descriptMaps, Map>> src_lists, String filename, Map sheetNames) throws IOException { String xlsFile_name = "SeverList.xls"; //輸出xls檔名稱 //記憶體中只建立100個物件 @@ -295,7 +297,7 @@ public class ExcelExpoter { //寫入300000條後切換到下個工作表 if (rowNo % 300000 == 0) { System.out.println("Current Sheet:" + key); - sheet = wb.createSheet(key);//建立新的sheet物件 + sheet = wb.createSheet(sheetNames.get(key));//建立新的sheet物件 // sheet = wb.getSheetAt(k); //動態指定當前的工作表 pageRowNo = 0; //新建了工作表,重置工作表的行號為0 // -----------定義表頭----------- @@ -334,12 +336,11 @@ public class ExcelExpoter { cell_tem.setCellStyle(descriptStyle); } rowNo++; + sheet.createFreezePane(0, 2); // --------------------------- } rowNo++; nRow = sheet.createRow(pageRowNo++); //新建行物件 - - // 行,獲取cell值 for (int j = 0; j < titleKeyLists.get(key).size(); j++) { nCell = nRow.createCell(j); @@ -369,4 +370,5 @@ public class ExcelExpoter { outputStream.flush(); outputStream.close(); } + } \ No newline at end of file diff --git a/src/test/java/com/moze/rms/RmsApplicationTests.java b/src/test/java/com/moze/rms/RmsApplicationTests.java index ac1b28f..86bc74a 100644 --- a/src/test/java/com/moze/rms/RmsApplicationTests.java +++ b/src/test/java/com/moze/rms/RmsApplicationTests.java @@ -3,6 +3,9 @@ package com.moze.rms; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import java.util.HashMap; +import java.util.Map; + @SpringBootTest class RmsApplicationTests { @@ -10,4 +13,9 @@ class RmsApplicationTests { void contextLoads() { } + @Test + public static void main(String[] args) { + Map a = new HashMap<>(); + System.out.println(a.get("asd")); + } }