diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java index 6747cad..81845e7 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java @@ -58,4 +58,6 @@ public interface ISysLocaleResourceService { @ApiOperation(value = "添加初始化资源") void insertInitSysLocaleResourceList(List sysLocaleResources); + @ApiOperation(value = "删除所有资源") + void deleteSysLocaleResourceAll(); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java index 9f4b659..1137011 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java @@ -28,6 +28,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.collections4.ListUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -310,7 +311,18 @@ public class SysLocaleResourceController extends CoreBaseController { itemMap.put(resourceKey, localeResource); } - sysLocaleResourceService.insertInitSysLocaleResourceList(new ArrayList<>(itemMap.values())); + List importDataList = new ArrayList<>(itemMap.values()); + sysLocaleResourceService.deleteSysLocaleResourceAll(); + + for (List resourceList : ListUtils.partition(importDataList, 1000)) { + new Thread(){ + @Override + public void run() { + super.run(); + sysLocaleResourceService.saveSysLocaleResource(resourceList); + } + }.start(); + } // 重新加载资源 systemInitService.putAndLoadSysLocaleLanguage(); @@ -420,15 +432,24 @@ public class SysLocaleResourceController extends CoreBaseController { LOGGER.info("数据去重完毕, 数据去重耗时 {}", deduplicationExecuteTime - excelToolExecuteTime); // 分批导入 - for (List resourceList : splitList(sysLocaleResourceList, 1000)) { - sysLocaleResourceService.saveSysLocaleResource(resourceList); + int size = 1000; + int i = 0; + for (List resourceList : ListUtils.partition(sysLocaleResourceList, size)) { + new Thread(){ + @Override + public void run() { + super.run(); + long startTime = System.currentTimeMillis(); + sysLocaleResourceService.saveSysLocaleResource(resourceList); + LOGGER.info("增量导入完毕, 导入耗时{}",System.currentTimeMillis() - startTime); + } + }.start(); } - LOGGER.info("增量导入完毕, 导入耗时{}",System.currentTimeMillis() - deduplicationExecuteTime); // 重新加载资源 - systemInitService.putAndLoadSysLocaleLanguage(); - LOGGER.info("数据缓存更新完毕,总耗时:{}",System.currentTimeMillis()-startTime); - return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); +// systemInitService.putAndLoadSysLocaleLanguage(); +// LOGGER.info("数据缓存更新完毕,总耗时:{}",System.currentTimeMillis()-startTime); + return ResultBean.success("数据导入中...").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (BaseImppException busExcep) { @@ -475,31 +496,4 @@ public class SysLocaleResourceController extends CoreBaseController { } return null; } - - /** - * 按指定大小,分隔集合,将集合按规定个数分为n个部分 - * @param - * - * @param list - * @param len - * @return - */ - public static List> splitList(List list, int len) { - - if (list == null || list.isEmpty() || len < 1) { - return Collections.emptyList(); - } - - List> result = new ArrayList<>(); - - int size = list.size(); - int count = (size + len - 1) / len; - - for (int i = 0; i < count; i++) { - List subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1))); - result.add(subList); - } - - return result; - } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java index a7c0cc8..81ee7f8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java @@ -228,4 +228,9 @@ public class SysLocaleResourceService implements ISysLocaleResourceService { sysLocaleResourceRDao.saveAll(sysLocaleResourceList); } + @Override + public void deleteSysLocaleResourceAll() { + sysLocaleResourceRDao.deleteAll(); + } + }