From d94ad26737417a6cf7381685861022d55a873fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=9D=E8=B1=AA?= <1437200870@qq.com> Date: Sun, 8 Sep 2024 10:32:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=BA=BF=E7=A8=8B=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/task/feign/DataValueClient.java | 18 ++++++++++-- .../muyu/service/impl/TaskServiceImpl.java | 29 +++++++++---------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueClient.java b/cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueClient.java index 7e45094..0392bd0 100644 --- a/cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueClient.java +++ b/cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueClient.java @@ -22,23 +22,35 @@ public interface DataValueClient { /** * 根据sql查询数据 + * * @param basicId * @param sql * @return */ @PostMapping("/DataValue/findTableValue") - public Result>> findTableValue(@RequestParam("basicId") Long basicId,@RequestParam("sql") String sql); + public Result>> findTableValue(@RequestParam("basicId") Long basicId, @RequestParam("sql") String sql); /** * 根据sql查询数据条数 + * * @param basicId * @param sql * @return */ @PostMapping("/DataValue/findCount") - public Integer findCount(@RequestParam("basicId") Long basicId,@RequestParam("sql") String sql); + public Integer findCount(@RequestParam("basicId") Long basicId, @RequestParam("sql") String sql); //添加 @PostMapping("/DataValue/addTable") - public Result addTableDataValue(@RequestParam("basicId") Long basicId,@RequestParam("tableId") Long tableId, @RequestBody List> dataValue); + public Result addTableDataValue(@RequestParam("basicId") Long basicId, @RequestParam("tableId") Long tableId, @RequestBody List> dataValue); + + + //二维数组查询 + @PostMapping("/findTableValueToArray") + public DataValue[][] findTableValueToArray(@RequestParam("basicId") Long basicId, @RequestParam("sql") String sql, @RequestParam("one") Long one, @RequestParam("two") Integer two); + + + //添加数据值 + @PostMapping("/product/addProduct") + public Result addProduct(@RequestParam("basicId") Long basicId, @RequestParam("tableId") Long tableId, @RequestBody DataValue[][] listList); } diff --git a/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java index 322deff..47cc90d 100644 --- a/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java +++ b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java @@ -110,6 +110,7 @@ public class TaskServiceImpl extends ServiceImpl implement TaskOutputInfo taskOutputInfo = taskOutputService.getOne(outputInfo); String[] outPutFileName = taskOutputInfo.getLastFileName().split(","); String[] newFileName = taskOutputInfo.getNewFileName().split(","); + Integer two = newFileName.length; HashMap fieldAsNameMap = new HashMap<>(); HashMap newAndOldMap = new HashMap<>(); HashSet basicList = new HashSet<>(); @@ -195,7 +196,7 @@ public class TaskServiceImpl extends ServiceImpl implement String finalSql = sql; log.info("sql为{}",finalSql); executeUrgently(() -> { - selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap); + selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two); }); } @@ -204,7 +205,7 @@ public class TaskServiceImpl extends ServiceImpl implement Long finalDatabaseId = databaseId; String finalSql = sql; executeHigh(() -> { - selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap); + selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two); }); } @@ -213,7 +214,7 @@ public class TaskServiceImpl extends ServiceImpl implement Long finalDatabaseId = databaseId; String finalSql = sql; executeMedium(() -> { - selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap); + selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two); }); } @@ -222,7 +223,7 @@ public class TaskServiceImpl extends ServiceImpl implement Long finalDatabaseId = databaseId; String finalSql = sql; executeLow(() -> { - selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap); + selectAndAdd(count, finalDatabaseId, basicId, finalSql, tableId,newAndOldMap,two); }); } @@ -233,27 +234,24 @@ public class TaskServiceImpl extends ServiceImpl implement } private void selectAndAdd(Integer count,Long databaseId,Long basicId,String sql,Long tableId, - HashMap newAndOldMap) { - int pageSize = 1000; + HashMap newAndOldMap,Integer two) { + int pageSize = 10000; long firstArray = 0L; int totalSegments = (int) Math.ceil((double) count / pageSize); for (int i = 0; i < totalSegments; i++) { log.info("调用第{}次", i); String limit = " limit " + i * pageSize + "," + pageSize; - firstArray = count - (long) i * pageSize; + firstArray = Math.min(pageSize, count - i * pageSize); if (firstArray >= pageSize) { firstArray = pageSize; } String limitSelect = sql + limit; log.info("执行查询语句为{}", limitSelect); log.info(databaseId); - Result>> tableValue = dataValueClient.findTableValue(databaseId, limitSelect); - List> data = tableValue.getData(); - log.info("远程调用完毕,调用数量{}",data.size()); - for (List datum : data) { - - log.info(datum.toString()); - for (DataValue dataValue : datum) { + DataValue[][] tableValue = dataValueClient.findTableValueToArray(databaseId, limitSelect, firstArray,two); + log.info("远程调用完毕,调用数量{}",tableValue.length); + for (DataValue[] dataValues : tableValue) { + for (DataValue dataValue : dataValues) { log.info(dataValue.toString()); String key = dataValue.getKey(); log.info("传来的值的键为{}",key); @@ -264,9 +262,10 @@ public class TaskServiceImpl extends ServiceImpl implement dataValue.setKey(newKey); } } - Result result = dataValueClient.addTableDataValue(basicId, tableId, data); + Result result = dataValueClient.addProduct(basicId, tableId, tableValue); log.info("添加结果为{}", result); log.info("添加到queue里成功"); + } // static class Worker implements Runnable {