From 47ea10053f5ea988ef18af678cad5e416cbeb3c9 Mon Sep 17 00:00:00 2001 From: zhenggm Date: Wed, 20 Jul 2022 21:26:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=EF=BC=9A=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=AD=90=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bpm/web/design/form/ModelFormSaveHandler.java | 47 ++++++++++++++++------ .../core/mvc/service/DefaultSaveHandler.java | 7 +++- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java index f0da389..eb025a5 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormSaveHandler.java @@ -12,6 +12,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.CommUtil; import cc.smtweb.framework.core.util.JsonUtil; import org.apache.commons.lang3.StringUtils; @@ -33,25 +34,45 @@ public class ModelFormSaveHandler extends DefaultSaveHandler { @Override protected void updateBean(EntityDao dao) { + updateFormChild(dao); + dao.updateEntityEx(bean, "mf_content", "mf_dataset", "mf_tmpl"); + } + + @Override + protected void insertBean(EntityDao dao) { + super.insertBean(dao); + updateFormChild(dao); + } + + private void updateFormChild(EntityDao dao) { SwMap opts = bean.getOpts(); if (opts != null) { opts.remove(ModelFormHelper.KEY_EVENT_PATH); bean.setOption(JsonUtil.encodeString(opts)); - if (bean.getType() == SwEnum.FormType.MODULE.value) { - addChildPage(opts); - } } - dao.updateEntityEx(bean, "mf_content", "mf_dataset", "mf_tmpl"); + if (bean.getType() == SwEnum.FormType.MODULE.value) { + addChildPage(dao, opts); + } } //自动增加子页面 - private void addChildPage(SwMap opts) { - List incPage = (List) opts.get("incPage"); - if (incPage == null || incPage.isEmpty()) return; + private void addChildPage(EntityDao dao, SwMap opts) { listFormChild = new ArrayList<>(); Set setExists = ModelFormCache.getInstance().getListByModule(bean.getEntityId()); - EntityDao dao = DbEngine.getInstance().findDao(ModelForm.class); - for (String type: incPage) { + //维护已有的子页面 + for (ModelForm mf: setExists) { + if (!CommUtil.isStrEquals(mf.getService(), bean.getService())) { + mf.setService(bean.getService()); + dao.updateEntityEx(bean, "mf_content", "mf_dataset", "mf_tmpl"); + listFormChild.add(mf); + } + } + if (opts == null) return; + List incPage = (List) opts.get("incPage"); + if (incPage == null || incPage.isEmpty()) return; + + //增加新的子页面 + for (String type : incPage) { String name = bean.getName() + "_" + type; if (existsPage(setExists, name)) continue; ModelForm page = new ModelForm(); @@ -61,7 +82,7 @@ public class ModelFormSaveHandler extends DefaultSaveHandler { page.setName(name); page.setTitle(bean.getTitle() + "_" + SwEnum.PageType.instance.getName(type)); listFormChild.add(page); - dao.updateEntityEx(page, "mf_content", "mf_dataset", "mf_tmpl"); + dao.insertEntity(page); } } @@ -69,7 +90,7 @@ public class ModelFormSaveHandler extends DefaultSaveHandler { protected void saveSuccess() { ModelFormCache.getInstance().put(bean); if (listFormChild == null) { - for (ModelForm page: listFormChild) { + for (ModelForm page : listFormChild) { ModelFormCache.getInstance().put(page); } } @@ -79,7 +100,7 @@ public class ModelFormSaveHandler extends DefaultSaveHandler { protected void saveFailed() { ModelFormCache.getInstance().reset(bean); if (listFormChild == null) { - for (ModelForm page: listFormChild) { + for (ModelForm page : listFormChild) { ModelFormCache.getInstance().reset(page); } } @@ -87,7 +108,7 @@ public class ModelFormSaveHandler extends DefaultSaveHandler { //已经存在的,不管了 private boolean existsPage(Set setExists, String name) { - for (ModelForm form: setExists) { + for (ModelForm form : setExists) { if (name.equalsIgnoreCase(form.getName())) return true; } return false; diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java index 0a0defa..64ed02e 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java @@ -88,7 +88,7 @@ public class DefaultSaveHandler extends AbstractSaveHan protected void saveDb() { EntityDao dao = DbEngine.getInstance().findDao(tableName); if (isNew) { - dao.insertEntity(bean); + insertBean(dao); } else { ModelTable table = ModelTableCache.getInstance().getByName(tableName); ModelField field = table.findFieldByType(SwEnum.FieldType.UPDATE_USER.value); @@ -106,6 +106,11 @@ public class DefaultSaveHandler extends AbstractSaveHan dao.updateEntity(bean); } + //更新入库 + protected void insertBean(EntityDao dao) { + dao.insertEntity(bean); + } + @Override protected void saveSuccess() {