opt:优化导出功能

This commit is contained in:
zhangzq
2025-04-30 15:40:15 +08:00
parent 3379e32512
commit 2b0cd990bb
2 changed files with 116 additions and 111 deletions

View File

@@ -346,9 +346,11 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
for (List<JSONObject> jsonObjects : deque) { for (List<JSONObject> jsonObjects : deque) {
datas.addAll(jsonObjects); datas.addAll(jsonObjects);
} }
List<Map<String, String>> list = new ArrayList<>(); ConcurrentLinkedDeque<List<Map<String,String>>> listDeque = new ConcurrentLinkedDeque<>();
for (int i = 0; i < resultJSONArray.size(); i++) { Lists.partition(resultJSONArray,1000).stream().map((Function<List, CompletableFuture>) o->CompletableFuture.runAsync(() -> {
JSONObject json = resultJSONArray.getJSONObject(i); List<Map<String, String>> items = new ArrayList<>();
for (Object item : o) {
JSONObject json = (JSONObject) item;
Map<String, String> mp = new LinkedHashMap<>(); Map<String, String> mp = new LinkedHashMap<>();
// 查询第一次入库的源销售订单 // 查询第一次入库的源销售订单
JSONObject jsonSub = datas.stream() JSONObject jsonSub = datas.stream()
@@ -460,9 +462,15 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
mp.put("单位面积", json.getString("mass_per_unit_area")); mp.put("单位面积", json.getString("mass_per_unit_area"));
mp.put("制单人", json.getString("input_optname")); mp.put("制单人", json.getString("input_optname"));
mp.put("备注", json.getString("remark")); mp.put("备注", json.getString("remark"));
list.add(mp); items.add(mp);
} }
Set<String> set = list.get(0).keySet(); listDeque.add(items);
})).parallel().forEach(CompletableFuture::join);
List<Map<String, String>> list = new ArrayList<>();
for (List<Map<String, String>> maps : listDeque) {
list.addAll(maps);
}
Set<String> set = listDeque.getFirst().get(0).keySet();
int colIndex = 0; int colIndex = 0;
String[] col = new String[set.size()]; String[] col = new String[set.size()];
for (String s : set) { for (String s : set) {
@@ -470,6 +478,5 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
colIndex++; colIndex++;
} }
new FileUtil().downloadExcelIO(list,col,response); new FileUtil().downloadExcelIO(list,col,response);
// FileUtil.downloadExcel(list, response);
} }
} }

View File

@@ -6,11 +6,9 @@ spring:
druid: druid:
db-type: com.alibaba.druid.pool.DruidDataSource db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:88lmsdb}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.87}:${DB_PORT:3306}/${DB_NAME:lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_lms5}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root} username: ${DB_USER:root}
# password: ${DB_PWD:NLABC&hl123} password: ${DB_PWD:NLABC&hl123}
password: ${DB_PWD:12356}
# 初始连接数 # 初始连接数
initial-size: 5 initial-size: 5
# 最小连接数 # 最小连接数