From 3e984316739cbcc6461d29855e41b10a3a910cb8 Mon Sep 17 00:00:00 2001 From: zhenggm Date: Thu, 2 Jun 2022 20:25:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../smtweb/framework/core/db/vo/ModelProject.java | 8 ++++ .../bpm/web/design/form/ModelFormHelper.java | 22 +++++++++ .../bpm/web/design/form/ModelFormLoadHandler.java | 7 +++ .../bpm/web/design/form/ModelFormSaveHandler.java | 8 ++++ .../bpm/web/design/table/ModelCatalogCache.java | 52 ++++++++++++++++++++++ .../bpm/web/design/table/ModelProjectCache.java | 43 ++++++++++++++++++ .../bpm/web/engine/dynPage/DynPageLoadHandler.java | 8 ++-- .../bpm/web/engine/dynPage/DynPageSaveHandler.java | 8 +++- 8 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogCache.java create mode 100644 smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectCache.java diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelProject.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelProject.java index 6b8382f..33925e8 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelProject.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelProject.java @@ -30,6 +30,14 @@ public class ModelProject extends DefaultEntity { put("prj_name", prjName); } + public String getModule() { + return getStr("prj_module"); + } + + public void setModule(String prj_module) { + put("prj_module", prj_module); + } + public String getDepends() { return getStr("prj_depends"); } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java index 97dfe28..baca930 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java @@ -13,6 +13,8 @@ import cc.smtweb.framework.core.util.CommUtil; import cc.smtweb.framework.core.util.JsonUtil; import cc.smtweb.framework.core.util.MapUtil; import cc.smtweb.system.bpm.web.design.form.define.*; +import cc.smtweb.system.bpm.web.design.table.ModelCatalogCache; +import cc.smtweb.system.bpm.web.design.table.ModelProjectCache; import com.fasterxml.jackson.core.JsonProcessingException; import org.apache.commons.lang3.StringUtils; @@ -23,6 +25,7 @@ import java.util.*; * 辅助类 */ public class ModelFormHelper { + public static final String KEY_EVENT_PATH = "eventPath"; /** * 从缓存获取Form对象 * @@ -235,6 +238,11 @@ public class ModelFormHelper { SwMap ret = new SwMap(); PageModel pageInfo = parsePageInfo(form.getContent()); if (pageInfo == null) return ""; + ret.put("pageId", form.getEntityId()); + ret.put("label", form.getTitle()); + ret.put("service", form.getService()); + ret.put("module", ModelProjectCache.getInstance().getModule(form.getPrjId())); + buildOptsEx(form, ret); //form不用管 if (pageInfo.form != null) ret.put("form", pageInfo.form); List listModel = new ArrayList<>(); @@ -325,4 +333,18 @@ public class ModelFormHelper { listRet.sort((o1, o2) -> CommUtil.chineseCompare(o1.readString("label"), o2.readString("label"))); return listRet; } + + /** + * 构建一些扩展属性,目前主要是eventPath + * @param opts + */ + public static void buildOptsEx(ModelForm bean, SwMap opts) { + String moduleName = ModelProjectCache.getInstance().getModule(bean.getPrjId()); + if (StringUtils.isNotEmpty(moduleName)) { + String ep = moduleName; + String cn = ModelCatalogCache.getInstance().getFullName(bean.getMcId()); + if (StringUtils.isNotEmpty(cn)) ep = ep + "." + cn; + opts.put(KEY_EVENT_PATH, ep + "." + bean.getName()); + } + } } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java index c967528..193e065 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormLoadHandler.java @@ -2,7 +2,9 @@ package cc.smtweb.system.bpm.web.design.form; import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwException; +import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.mvc.service.DefaultLoadHandler; +import cc.smtweb.framework.core.util.JsonUtil; /** * Created by Akmm at 2022/5/9 16:17 @@ -15,6 +17,11 @@ public class ModelFormLoadHandler extends DefaultLoadHandler { @Override protected ModelForm loadComp(long id) { ModelForm bean = super.loadComp(id); + SwMap opts = ModelFormHelper.parseFormOption(bean.getOption()); + if (opts != null) { + ModelFormHelper.buildOptsEx(bean, opts); + bean.setOption(JsonUtil.encodeString(opts)); + } //去掉content和dataset bean.getData().remove("mf_content"); bean.getData().remove("mf_dataset"); diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java index 2f1f818..4155d02 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java @@ -3,6 +3,7 @@ package cc.smtweb.system.bpm.web.design.form; import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.EntityDao; import cc.smtweb.framework.core.db.cache.ModelTableCache; @@ -10,6 +11,7 @@ import cc.smtweb.framework.core.db.jdbc.AbsDbWorker; import cc.smtweb.framework.core.db.vo.ModelField; import cc.smtweb.framework.core.db.vo.ModelTable; import cc.smtweb.framework.core.mvc.service.DefaultSaveHandler; +import cc.smtweb.framework.core.util.JsonUtil; import org.apache.commons.lang3.StringUtils; /** @@ -23,6 +25,12 @@ public class ModelFormSaveHandler extends DefaultSaveHandler { @Override protected void updateBean(EntityDao dao) { + SwMap opts = ModelFormHelper.parseFormOption(bean.getOption()); + if (opts != null) { + opts.remove(ModelFormHelper.KEY_EVENT_PATH); + bean.setOption(JsonUtil.encodeString(opts)); + } + dao.updateEntityEx(bean, "mf_content", "mf_dataset"); } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogCache.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogCache.java new file mode 100644 index 0000000..a7d5d46 --- /dev/null +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogCache.java @@ -0,0 +1,52 @@ +package cc.smtweb.system.bpm.web.design.table; + +import cc.smtweb.framework.core.annotation.SwCache; +import cc.smtweb.framework.core.cache.AbstractCache; +import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.db.DbEngine; +import cc.smtweb.framework.core.db.EntityDao; +import cc.smtweb.framework.core.db.vo.ModelCatalog; +import cc.smtweb.framework.core.db.vo.ModelCatalog; +import cc.smtweb.framework.core.db.vo.ModelProject; + +import java.util.List; + +/** + * Created by Akmm at 2022/1/12 18:34 + */ +@SwCache(ident = "ASP_MODEL_CATALOG", title = "目录") +public class ModelCatalogCache extends AbstractCache { + public static ModelCatalogCache getInstance() { + return CacheManager.getIntance().getCache(ModelCatalogCache.class); + } + + public ModelCatalogCache() { + } + + @Override + protected String getId(ModelCatalog bean) { + return String.valueOf(bean.getId()); + } + + @Override + protected List loadAll() { + EntityDao dao = DbEngine.getInstance().findDao(ModelCatalog.class); + return dao.query(); + } + + public String getName(long id) { + ModelCatalog bean = get(id); + return bean != null ? bean.getName() : ""; + } + + public String getFullName(long id) { + ModelCatalog bean = get(id); + if (bean == null) return null; + StringBuilder sret = new StringBuilder(); + while (bean != null) { + sret.insert(0, "." + bean.getCode()); + bean = get(bean.getParentId()); + } + return sret.substring(1); + } +} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectCache.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectCache.java new file mode 100644 index 0000000..888892c --- /dev/null +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectCache.java @@ -0,0 +1,43 @@ +package cc.smtweb.system.bpm.web.design.table; + +import cc.smtweb.framework.core.annotation.SwCache; +import cc.smtweb.framework.core.cache.AbstractCache; +import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.db.DbEngine; +import cc.smtweb.framework.core.db.EntityDao; +import cc.smtweb.framework.core.db.vo.ModelProject; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Set; + +/** + * Created by Akmm at 2022/1/12 18:34 + */ +@SwCache(ident = "ASP_MODEL_PROJECT", title = "项目定义") +public class ModelProjectCache extends AbstractCache { + public static ModelProjectCache getInstance() { + return CacheManager.getIntance().getCache(ModelProjectCache.class); + } + + public ModelProjectCache() { + } + + @Override + protected String getId(ModelProject bean) { + return String.valueOf(bean.getId()); + } + + @Override + protected List loadAll() { + EntityDao dao = DbEngine.getInstance().findDao(ModelProject.class); + return dao.query(); + } + + public String getModule(long id) { + ModelProject bean = get(id); + return bean != null ? bean.getModule() : ""; + } + +} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageLoadHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageLoadHandler.java index cf8b067..fd07750 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageLoadHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageLoadHandler.java @@ -49,11 +49,11 @@ public class DynPageLoadHandler extends AbstractDynPageHandler { mapRet.put(dataSet.name, new SwMap()); continue; } - mapRet.put(dataSet.name, DynPageHelper.createBean(dataSet)); + mapRet.put(dataSet.name, DynRetBean.createBean(DynPageHelper.createBean(dataSet))); } else if (SwEnum.DatasetType.TREE.value.equals(dataSet.type)) {//树 - mapRet.put(dataSet.name, new SwMap()); + mapRet.put(dataSet.name, DynRetBean.createBean(new SwMap())); } else if (!SwEnum.DatasetType.ENUM.value.equals(dataSet.type)) {//非枚举 - mapRet.put(dataSet.name, SwListData.create(null, 0)); + mapRet.put(dataSet.name, DynRetBean.createList(SwListData.create(null, 0))); } } return R.success(mapRet); @@ -68,7 +68,7 @@ public class DynPageLoadHandler extends AbstractDynPageHandler { return R.error("指定数据集为只读数据集[" + pageDataSet.label + "]!"); } //懒加载,给个空对象 - return R.success(DynPageHelper.createBean(pageDataSet)); + return R.success(DynRetBean.createBean(DynPageHelper.createBean(pageDataSet))); } public R loadOne() { diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageSaveHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageSaveHandler.java index 86e13be..472a13a 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageSaveHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageSaveHandler.java @@ -66,7 +66,7 @@ public class DynPageSaveHandler extends AbstractDynPageHandler { afterRollback(bean); } }); - return R.success(bean); + return R.success(DynRetBean.createBean(bean.getData())); } /** @@ -124,7 +124,11 @@ public class DynPageSaveHandler extends AbstractDynPageHandler { } } }); - return R.success(map); + Map mapRet = new HashMap<>(map.size()); + for (Map.Entry entry: map.entrySet()) { + mapRet.put(entry.getKey(), DynRetBean.createBean(entry.getValue().getData())); + } + return R.success(mapRet); } /**