From f8f613b945e695d9993ed5af1de21ad37ac9c5d3 Mon Sep 17 00:00:00 2001 From: zhenggm Date: Tue, 24 May 2022 16:44:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cc/smtweb/framework/core/cache/CacheManager.java | 2 +- .../framework/core/mvc/service/DefaultSaveHandler.java | 10 +++++++--- .../cc/smtweb/framework/core/mvc/service/TreeHelper.java | 14 ++++++++++++++ .../system/bpm/web/design/table/ModelTableSaveHanlder.java | 1 + .../cc/smtweb/system/bpm/web/engine/flow/FlowService.java | 8 ++++++++ 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowService.java diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/CacheManager.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/CacheManager.java index f2c59b6..00828a7 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/CacheManager.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/CacheManager.java @@ -30,7 +30,7 @@ public class CacheManager { private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(2); public AbstractCache getCache(String ident) { - final AbstractCache cache = cacheMap.get(ident); + final AbstractCache cache = cacheMap.get(ident.toUpperCase()); if (cache != null && cache.isNotInited()) { cache.init(); } diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java index b3a3a11..5403dd2 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultSaveHandler.java @@ -70,6 +70,9 @@ public class DefaultSaveHandler extends AbstractSaveHan if (field.isNotNull() && StringUtils.isEmpty(bean.getStr(field.getName()))) { throw new SwException(field.getTitle() + "不能为空!"); } + if (field.getFieldType() == SwEnum.FieldType.PARENT_ID.value) { + TreeHelper.getTreeHelper(tableName).checkParent(bean); + } } EntityDao dao = DbEngine.getInstance().findDao(tableName); @@ -144,16 +147,17 @@ public class DefaultSaveHandler extends AbstractSaveHan } else { bean = loadComp(id); } + TreeHelper.getTreeHelper(tableName).checkParent(bean); //不考虑没有级次码等情况,这个在表设计时校验 - ModelField fieldParentCode = table.findFieldByType(SwEnum.FieldType.PARENT_ID.value); + ModelField fieldParentId = table.findFieldByType(SwEnum.FieldType.PARENT_ID.value); - bean.put(fieldParentCode.getName(), parentId); + bean.put(fieldParentId.getName(), parentId); DbEngine.getInstance().doTrans(new AbsDbWorker() { @Override public void work() { EntityDao dao = DbEngine.getInstance().findDao(tableName); listTreeBean = TreeHelper.getTreeHelper(tableName).resetTreeLevel(bean); - dao.updateEntity(bean, fieldParentCode.getName()); + dao.updateEntity(bean, fieldParentId.getName()); } @Override diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java index 20830d4..9d81145 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/TreeHelper.java @@ -88,6 +88,20 @@ public class TreeHelper { return list; } + public void checkParent(T bean) { + if (table.getType() != SwEnum.TableType.TYPE_TREE.value) return; + if (!table.isNeedCache()) throw new SwException("请定义为需要缓存!"); + long pId = getParentId(bean); + if (bean.getEntityId() == pId) throw new SwException("上级节点不能为自己!"); + if (pId <= 0) return; + T parent = cache.get(pId); + if (parent == null) return; + String plevelcode = SwConsts.SPLIT_CHAR + parent.getStr(fieldLevelCode) + SwConsts.SPLIT_CHAR; + if (plevelcode.contains(SwConsts.SPLIT_CHAR + bean.getEntityId() + SwConsts.SPLIT_CHAR)) { + throw new SwException("上级节点不能为自己的下级!"); + } + } + public List resetTreeLevel(T bean) { List list = new ArrayList<>(); if (table.getType() != SwEnum.TableType.TYPE_TREE.value) return list; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableSaveHanlder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableSaveHanlder.java index 8eef349..56d5a03 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableSaveHanlder.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableSaveHanlder.java @@ -15,5 +15,6 @@ public class ModelTableSaveHanlder extends DefaultSaveHandler { protected void readFromPage() { super.readFromPage(); bean.setContent(bean.getContent()); + bean.setName(bean.getName().toUpperCase()); } } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowService.java new file mode 100644 index 0000000..270beb0 --- /dev/null +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowService.java @@ -0,0 +1,8 @@ +package cc.smtweb.system.bpm.web.engine.flow; + +/** + * Created by Akmm at 2022/5/24 14:21 + * 工作流 + */ +public class FlowService { +}