From 5ad0bfb6c677c19814f29655a5468f97f010bce6 Mon Sep 17 00:00:00 2001 From: zhenggm Date: Thu, 18 Aug 2022 19:06:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0SWConsts.debug,=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E8=B0=83=E8=AF=95=E6=A8=A1=E5=BC=8F=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=A8=A1=E5=BC=8F=E7=BC=93=E5=AD=98=E4=BB=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/bpm/spring/BpmStartedListener.java | 5 +++++ .../bpm/web/design/db/ModelCatalogTreeHandler.java | 2 +- .../bpm/web/design/db/ModelCatalogTreeHelper.java | 2 +- .../framework/core/mvc/service/TreeHelper.java | 24 ++++++++++++++-------- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmStartedListener.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmStartedListener.java index a0ee817..74066cf 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmStartedListener.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmStartedListener.java @@ -5,8 +5,11 @@ import cc.smtweb.framework.core.cache.CacheManager; import cc.smtweb.framework.core.common.SwConsts; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.impl.DatabaseUtil; +import cc.smtweb.framework.core.db.vo.ModelCatalog; +import cc.smtweb.framework.core.mvc.service.TreeHelper; import cc.smtweb.framework.core.systask.TaskStartEvent; import cc.smtweb.framework.core.systask.WebStartedEvent; +import cc.smtweb.system.bpm.web.design.db.ModelCatalogTreeHelper; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; import org.springframework.context.event.EventListener; @@ -26,5 +29,7 @@ public class BpmStartedListener implements ApplicationListener prj_id = params.readLong("prj_id"); exc_empty = params.readBool("exc_empty"); exc_depend = params.readBool("exc_depend"); - mcTreeHelper = (ModelCatalogTreeHelper) TreeHelper.getTreeHelper(ModelCatalog.ENTITY_NAME, ModelCatalogTreeHelper.class); + mcTreeHelper = (ModelCatalogTreeHelper) TreeHelper.getTreeHelper(ModelCatalog.ENTITY_NAME); } @Override diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHelper.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHelper.java index d35ac09..12e6c14 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHelper.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHelper.java @@ -18,7 +18,7 @@ public class ModelCatalogTreeHelper extends TreeHelper { } public List getChildren(long id, long prj_id,boolean exc_depend, Comparator comparator) { - if (id > 0) { + if (id > 0L) { return getChildren(id, comparator); } Set setId = exc_depend ? new HashSet<>(Arrays.asList(prj_id)) : ModelProjectCache.getInstance().getDependsPrjIds(prj_id); diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java index 889a446..36885a2 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java @@ -20,8 +20,10 @@ import java.util.concurrent.ConcurrentHashMap; * Created by Akmm at 2022/3/17 19:56 */ public class TreeHelper { + private static Map> mapDef; private static Map mapInstance; static { + mapDef = new HashMap<>(); mapInstance = new ConcurrentHashMap<>(); } private String tableName; @@ -36,20 +38,24 @@ public class TreeHelper { public static TreeHelper getTreeHelper(String tableName) { - return mapInstance.computeIfAbsent(tableName, k-> new TreeHelper(tableName)); - } - - public static TreeHelper getTreeHelper(String tableName, Class clazz) { - TreeHelper helper = mapInstance.get(tableName); - if (helper == null) { + TreeHelper bean = mapInstance.get(tableName); + if (bean != null) return bean; + Class clazz = mapDef.get(tableName); + if (clazz == null) { + bean = new TreeHelper(tableName); + } else { try { - helper = clazz.newInstance(); - mapInstance.put(tableName, helper); + bean = clazz.newInstance(); } catch (Exception e) { throw new SwException(e); } } - return helper; + mapInstance.put(tableName, bean); + return bean; + } + + public static void regTreeHelper(String tableName, Class clazz) { + mapDef.put(tableName, clazz); } //先禁止外部创建