diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHandler.java index 4d7d5df..42e7f5c 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHandler.java @@ -31,7 +31,7 @@ public class ModelCatalogTreeHandler extends AbstractTreeHandler private long prj_id;//所属项目 private int type;//查询类型:0-目录;1-表定义;2-页面定义 private boolean exc_empty;//排除空目录,type非目录时有效 - + private boolean exc_depend;//排除依赖项目的目录 private ModelCatalogTreeHelper mcTreeHelper = null; //模块子页面,暂存 @@ -43,6 +43,7 @@ public class ModelCatalogTreeHandler extends AbstractTreeHandler type = params.readInt("type"); 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); } @@ -56,7 +57,7 @@ public class ModelCatalogTreeHandler extends AbstractTreeHandler @Override protected List filterData() { - Set setId = ModelProjectCache.getInstance().getDependsPrjIds(prj_id); + Set setId =exc_depend ? new HashSet<>(Arrays.asList(prj_id)) : ModelProjectCache.getInstance().getDependsPrjIds(prj_id); if (setId.isEmpty()) return new ArrayList<>(); String sqlPrjId = CommUtil.getSqlInIds(setId); @@ -93,7 +94,7 @@ public class ModelCatalogTreeHandler extends AbstractTreeHandler @Override protected List getChildren(long id) { - List list = mcTreeHelper.getChildren(id, prj_id, (o1, o2) -> CommUtil.chineseCompare(o1.getName(), o2.getName())); + List list = mcTreeHelper.getChildren(id, prj_id,exc_depend, (o1, o2) -> CommUtil.chineseCompare(o1.getName(), o2.getName())); List listRet; if (type != TYPE_CATALOG && exc_empty) {//排除空目录 listRet = cleanEmpty(list); @@ -141,7 +142,7 @@ public class ModelCatalogTreeHandler extends AbstractTreeHandler addPageChildren(listRet, mc.getId(), type); } if (!listRet.isEmpty()) return true; - List list = mcTreeHelper.getChildren(mc.getId(), prj_id, null); + List list = mcTreeHelper.getChildren(mc.getId(), prj_id,exc_depend,null); if (list == null || list.isEmpty()) return false; for (ModelCatalog c : list) { if (hasChildren(c)) return true; @@ -223,6 +224,8 @@ public class ModelCatalogTreeHandler extends AbstractTreeHandler } else if (bean instanceof ModelForm) { final ModelForm form = (ModelForm) bean; node.put("type", form.getType() + 2); + // 返回页面名称 + bean.put("pageName",ModelProjectCache.getInstance().getModule(((ModelForm) bean).getPrjId())+"."+((ModelForm) bean).getName()); //是模块,需要加子页面 if (form.getType() == SwEnum.FormType.MODULE.value) { List lf = mapFormChild.get(form.getEntityId()); 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 debb085..d35ac09 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 @@ -17,11 +17,11 @@ public class ModelCatalogTreeHelper extends TreeHelper { super(ModelCatalog.ENTITY_NAME); } - public List getChildren(long id, long prj_id, Comparator comparator) { + public List getChildren(long id, long prj_id,boolean exc_depend, Comparator comparator) { if (id > 0) { return getChildren(id, comparator); } - Set setId = ModelProjectCache.getInstance().getDependsPrjIds(prj_id); + Set setId = exc_depend ? new HashSet<>(Arrays.asList(prj_id)) : ModelProjectCache.getInstance().getDependsPrjIds(prj_id); if (setId.isEmpty()) return new ArrayList<>(); Set set = new HashSet<>(); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java index d01b054..1bf4062 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java @@ -7,6 +7,8 @@ import cc.smtweb.framework.core.cache.CacheManager; import cc.smtweb.framework.core.common.SwConsts; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.EntityDao; +import cc.smtweb.framework.core.util.PubUtil; +import cc.smtweb.system.bpm.web.design.db.ModelProjectCache; import java.util.ArrayList; import java.util.Comparator; @@ -23,13 +25,14 @@ public class ModelFormCache extends AbstractEntityCache { private final static String mc = "c"; private final static String mt = "t"; private final static String ms = "s"; - + private final static String mn = "mn"; public static ModelFormCache getInstance() { return CacheManager.getIntance().getCache(ModelFormCache.class); } public ModelFormCache() { regMap(mk, k-> k.getName().toUpperCase()); + regMap(mn, k-> ModelProjectCache.getInstance().getModule(k.getPrjId())+"-"+k.getName().toUpperCase()); regList(mp, k-> String.valueOf(k.getPrjId())); regList(mc, k-> String.valueOf(k.getMcId())); regList(ms, k-> String.valueOf(k.getParent())); @@ -90,4 +93,17 @@ public class ModelFormCache extends AbstractEntityCache { ModelForm form = get(id); return form != null ? form.getTitle() : String.valueOf(id); } + + /** + * 根据末模块名称和页面名称获取 页面模型 + * @param module + * @param pageName + * @return ModelForm + */ + public ModelForm getByName(String module,String pageName){ + if(PubUtil.isEmptyStr(module)||PubUtil.isEmptyStr(pageName)){ + return null; + } + return getByKey(mn,module+"-"+pageName.toUpperCase()); + } } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java index 67fd445..2aa4abd 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java @@ -63,7 +63,12 @@ public class ModelFormLoadHandler extends DefaultLoadHandler { if (bean == null) throw new BizException("没有找到指定定义信息!id=" + id); return R.success(ModelFormHelper.buildEngineModel(bean, params, us)); } - + // 页面引擎-获取页面模型 + public R loadForm(String module, String pageName) { + ModelForm bean = ModelFormCache.getInstance().getByName(module,pageName); + if (bean == null) throw new BizException("没有找到指定定义信息!module=" + module+",pageName="+pageName); + return R.success(ModelFormHelper.buildEngineModel(bean, params, us)); + } //获取页面使用的控件的filter信息 public R loadWidgetFilter() { long id = params.readLong("id"); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java index 1bc25e0..5e04e61 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java @@ -109,7 +109,15 @@ public class ModelFormService extends AbstractCompService { public R model(@SwBody SwMap params, UserSession us) { try { ModelFormLoadHandler handler = (ModelFormLoadHandler) getHandler(params, us, TYPE_LOAD); - return handler.loadForm(); + String page = params.readString("id",""); + String [] array = page.split("\\."); + String module = ""; + String pageName = ""; + if(array.length==2){ + module = array[0]; + pageName = array[1]; + } + return handler.loadForm(module,pageName); } catch (Exception e) { return R.error("操作失败!", e); } diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java index 0b6c366..2d8151d 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java @@ -54,7 +54,7 @@ public class PreviewMenuTreeService { MenuVO menu = new MenuVO(); menu.setId(form.getId()); menu.setName(form.getTitle()); - menu.setPath("/bpm/" + form.getId()); + menu.setPath("/bpm/" + module+"."+form.getName()); menu.setParentId(form.getMcId()); setMenuChildren(map.get(form.getMcId()), menu);