diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/AbstractCache.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/AbstractCache.java index f7bf144..b7f2305 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/AbstractCache.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/AbstractCache.java @@ -1,9 +1,9 @@ package cc.smtweb.framework.core.cache; import cc.smtweb.framework.core.annotation.SwCache; +import cc.smtweb.framework.core.cache.redis.RedisBroadcastEvent; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.common.SwConsts; -import cc.smtweb.framework.core.redis.RedisBroadcastEvent; -import cc.smtweb.framework.core.redis.RedisManager; import cc.smtweb.framework.core.util.CommUtil; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; 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 00828a7..af521d0 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 @@ -1,10 +1,9 @@ package cc.smtweb.framework.core.cache; -import cc.smtweb.framework.core.annotation.SwTable; +import cc.smtweb.framework.core.cache.redis.RedisBroadcastEvent; import cc.smtweb.framework.core.db.cache.EntityCache; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.framework.core.redis.RedisBroadcastEvent; import cc.smtweb.framework.core.util.SpringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.context.event.EventListener; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCache.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCache.java index 531cd07..7b32a62 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCache.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCache.java @@ -2,9 +2,6 @@ package cc.smtweb.framework.core.cache; import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; -import com.github.benmanes.caffeine.cache.LoadingCache; -import com.github.benmanes.caffeine.cache.Scheduler; -import org.checkerframework.checker.nullness.qual.NonNull; import java.util.concurrent.TimeUnit; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCacheFactory.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCacheFactory.java index c9ddffe..8ad6fdc 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCacheFactory.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/SessionCacheFactory.java @@ -1,6 +1,5 @@ package cc.smtweb.framework.core.cache; -import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisBroadcastEvent.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisBroadcastEvent.java similarity index 91% rename from smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisBroadcastEvent.java rename to smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisBroadcastEvent.java index 4294b5a..f9d00bf 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisBroadcastEvent.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisBroadcastEvent.java @@ -1,4 +1,4 @@ -package cc.smtweb.framework.core.redis; +package cc.smtweb.framework.core.cache.redis; import lombok.Data; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisConnection.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisConnection.java similarity index 99% rename from smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisConnection.java rename to smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisConnection.java index a493769..25a4701 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisConnection.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisConnection.java @@ -1,4 +1,4 @@ -package cc.smtweb.framework.core.redis; +package cc.smtweb.framework.core.cache.redis; import cc.smtweb.framework.core.util.CommUtil; import io.lettuce.core.KeyValue; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisManager.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisManager.java similarity index 99% rename from smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisManager.java rename to smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisManager.java index 5c5630f..4d6eeac 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisManager.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisManager.java @@ -1,4 +1,4 @@ -package cc.smtweb.framework.core.redis; +package cc.smtweb.framework.core.cache.redis; import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.systask.SysTaskManager; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisPooledObjectFactory.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisPooledObjectFactory.java similarity index 96% rename from smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisPooledObjectFactory.java rename to smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisPooledObjectFactory.java index d53eda7..0c0c4c6 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisPooledObjectFactory.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisPooledObjectFactory.java @@ -1,4 +1,4 @@ -package cc.smtweb.framework.core.redis; +package cc.smtweb.framework.core.cache.redis; import io.lettuce.core.RedisClient; import io.lettuce.core.api.StatefulRedisConnection; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisSysTask.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisSysTask.java similarity index 97% rename from smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisSysTask.java rename to smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisSysTask.java index 518d170..b679838 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/RedisSysTask.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/RedisSysTask.java @@ -1,4 +1,4 @@ -package cc.smtweb.framework.core.redis; +package cc.smtweb.framework.core.cache.redis; import cc.smtweb.framework.core.systask.ISysTask; import cc.smtweb.framework.core.util.JsonUtil; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/config/RedisConfig.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/config/RedisConfig.java similarity index 92% rename from smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/config/RedisConfig.java rename to smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/config/RedisConfig.java index 390aa64..83367e3 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/redis/config/RedisConfig.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/cache/redis/config/RedisConfig.java @@ -1,9 +1,8 @@ -package cc.smtweb.framework.core.redis.config; +package cc.smtweb.framework.core.cache.redis.config; -import cc.smtweb.framework.core.redis.RedisManager; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.systask.SysTaskManager; -import io.lettuce.core.RedisClient; import io.lettuce.core.RedisURI; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java index c534ff5..380b2c3 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwConsts.java @@ -1,7 +1,5 @@ package cc.smtweb.framework.core.common; -import lombok.Data; - /** * Created by Akmm at 2022/3/23 9:46 */ diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java index d2b27ff..8f57da0 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java @@ -1,6 +1,5 @@ package cc.smtweb.framework.core.common; -import lombok.Data; import org.apache.commons.lang3.StringUtils; import java.sql.Types; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityDao.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityDao.java index 796852d..2b679b7 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityDao.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityDao.java @@ -1,7 +1,7 @@ package cc.smtweb.framework.core.db; -import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.db.dao.AbstractEntityDao; import cc.smtweb.framework.core.db.dao.EntityColumn; import cc.smtweb.framework.core.db.impl.DefaultEntity; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityHelper.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityHelper.java index fa165a7..9ffa04d 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityHelper.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/EntityHelper.java @@ -1,8 +1,8 @@ package cc.smtweb.framework.core.db; -import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.vo.ModelLinkName; import cc.smtweb.framework.core.db.vo.ModelTable; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/cache/EntityCache.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/cache/EntityCache.java index b0648e8..b95d305 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/cache/EntityCache.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/cache/EntityCache.java @@ -1,6 +1,5 @@ package cc.smtweb.framework.core.db.cache; -import cc.smtweb.framework.core.annotation.SwCache; import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.common.SwConsts; import cc.smtweb.framework.core.db.DbEngine; @@ -10,14 +9,9 @@ import cc.smtweb.framework.core.db.vo.ModelCache; import cc.smtweb.framework.core.db.vo.ModelTable; import cc.smtweb.framework.core.mvc.controller.scan.BeanManager; import cc.smtweb.framework.core.util.CommUtil; -import com.github.benmanes.caffeine.cache.Caffeine; -import com.github.benmanes.caffeine.cache.Scheduler; import org.apache.commons.lang3.StringUtils; -import org.checkerframework.checker.nullness.qual.NonNull; import java.util.List; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; /** * Created by Akmm at 2022/2/19 17:19 diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/config/DbEngineConfiguration.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/config/DbEngineConfiguration.java index fde972d..774420e 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/config/DbEngineConfiguration.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/config/DbEngineConfiguration.java @@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; /** diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/dao/AbstractEntityDao.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/dao/AbstractEntityDao.java index be49c49..eaaf2c3 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/dao/AbstractEntityDao.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/dao/AbstractEntityDao.java @@ -1,9 +1,9 @@ package cc.smtweb.framework.core.db.dao; -import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.annotation.SwTable; import cc.smtweb.framework.core.cache.CacheManager; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.impl.DefaultEntity; import cc.smtweb.framework.core.db.vo.ModelField; @@ -18,7 +18,10 @@ import org.springframework.util.ClassUtils; import java.beans.IntrospectionException; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 抽象的值对象数据库访问 diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/impl/DefaultDatabaseInfoImpl.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/impl/DefaultDatabaseInfoImpl.java index b7283b4..1ba2d15 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/impl/DefaultDatabaseInfoImpl.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/impl/DefaultDatabaseInfoImpl.java @@ -4,8 +4,6 @@ import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.util.SpringUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.dao.DataAccessException; -import org.springframework.jdbc.core.ConnectionCallback; import org.springframework.jdbc.support.JdbcUtils; import java.sql.Connection; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SelectSqlBuilder.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SelectSqlBuilder.java index 61b1433..2a83149 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SelectSqlBuilder.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SelectSqlBuilder.java @@ -1,8 +1,5 @@ package cc.smtweb.framework.core.db.sqlbuilder; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.jdbc.JdbcEngine; - import java.util.ArrayList; import java.util.List; import java.util.function.BiFunction; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SqlJoinField.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SqlJoinField.java index be4f2df..e9ecfce 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SqlJoinField.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/sqlbuilder/SqlJoinField.java @@ -1,6 +1,5 @@ package cc.smtweb.framework.core.db.sqlbuilder; -import lombok.Data; import lombok.Getter; @Getter diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelCache.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelCache.java index 6ff3a11..edd4d1b 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelCache.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelCache.java @@ -2,8 +2,6 @@ package cc.smtweb.framework.core.db.vo; import lombok.Data; -import java.util.List; - /** * 表缓存信息定义:{"name":"tn","title":"按表名","fields":"table_name","type":"M"} * Created by Akmm at 2022/2/21 16:22 diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelDatabase.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelDatabase.java index 8a1ef57..112588d 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelDatabase.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelDatabase.java @@ -4,9 +4,6 @@ import cc.smtweb.framework.core.annotation.SwTable; import cc.smtweb.framework.core.db.impl.DefaultEntity; import lombok.Data; -import java.io.Serializable; -import java.util.Map; - @Data @SwTable(value = "ASP_MODEL_DATABASE") public class ModelDatabase extends DefaultEntity { diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelIndex.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelIndex.java index 23c52d8..06273b4 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelIndex.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelIndex.java @@ -2,9 +2,6 @@ package cc.smtweb.framework.core.db.vo; import lombok.Data; -import java.util.ArrayList; -import java.util.List; - /** * 索引定义 {name:"索引名称,如idx_t1", fields:"字段,如f1,f2", type="索引类别:P-主键 I-一般索引 U-唯一索引"} */ diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelTable.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelTable.java index 1174764..5e05db1 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelTable.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/db/vo/ModelTable.java @@ -1,16 +1,12 @@ package cc.smtweb.framework.core.db.vo; import cc.smtweb.framework.core.annotation.SwTable; -import cc.smtweb.framework.core.common.AbstractEnum; -import cc.smtweb.framework.core.common.IntEnum; import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.cache.ModelDatabaseCache; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.impl.DefaultEntity; import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.framework.core.util.jackson.BaseBeanSerializer; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/exception/ExceptionMessage.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/exception/ExceptionMessage.java index d4d739a..39ea4ec 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/exception/ExceptionMessage.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/exception/ExceptionMessage.java @@ -3,9 +3,6 @@ package cc.smtweb.framework.core.exception; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.apache.commons.lang3.StringUtils; - -import java.util.Set; /** * 错误码 JDK version used: diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/ControllerConfig.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/ControllerConfig.java index 1dd91ff..a36f7bd 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/ControllerConfig.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/ControllerConfig.java @@ -1,6 +1,5 @@ package cc.smtweb.framework.core.mvc.config; -import cc.smtweb.framework.core.mvc.controller.scan.IScanAction; import cc.smtweb.framework.core.mvc.controller.scan.IScanActionBuilder; import lombok.Getter; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/GlobalExceptionHandler.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/GlobalExceptionHandler.java index f0b6bba..6737ab9 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/GlobalExceptionHandler.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/GlobalExceptionHandler.java @@ -1,5 +1,6 @@ package cc.smtweb.framework.core.mvc.config; +import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.mvc.realm.exception.*; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; @@ -8,7 +9,6 @@ import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; -import cc.smtweb.framework.core.common.R; import java.util.List; import java.util.stream.Collectors; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/SettingsEnvironmentPostProcessor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/SettingsEnvironmentPostProcessor.java index 6d0fa03..e31d3a9 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/SettingsEnvironmentPostProcessor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/SettingsEnvironmentPostProcessor.java @@ -1,8 +1,5 @@ package cc.smtweb.framework.core.mvc.config; -import java.io.File; -import java.util.ArrayList; -import java.util.List; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.boot.SpringApplication; import org.springframework.boot.env.EnvironmentPostProcessor; @@ -10,6 +7,10 @@ import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.PropertiesPropertySource; import org.springframework.core.io.FileSystemResource; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + /** * 〈读取外部配置文件〉 * diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/WebMvcConfig.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/WebMvcConfig.java index aa35f29..11369d7 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/WebMvcConfig.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/config/WebMvcConfig.java @@ -1,10 +1,10 @@ package cc.smtweb.framework.core.mvc.config; import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.db.jdbc.IdGenerator; -import cc.smtweb.framework.core.mvc.controller.MethodAccessManager; import cc.smtweb.framework.core.mvc.controller.ApiConfigBean; -import cc.smtweb.framework.core.redis.RedisManager; +import cc.smtweb.framework.core.mvc.controller.MethodAccessManager; import cc.smtweb.framework.core.session.SessionManager; import cc.smtweb.framework.core.session.UserSessionArgumentResolver; import cc.smtweb.framework.core.util.JsonUtil; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/MethodAccessManager.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/MethodAccessManager.java index 815b67d..67e99d1 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/MethodAccessManager.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/MethodAccessManager.java @@ -1,8 +1,9 @@ package cc.smtweb.framework.core.mvc.controller; -import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.cache.CacheManager; import cc.smtweb.framework.core.cache.ISwCache; +import cc.smtweb.framework.core.cache.redis.RedisManager; +import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.mvc.SchedulerManager; import cc.smtweb.framework.core.mvc.controller.access.IMethodAccess; import cc.smtweb.framework.core.mvc.controller.access.MethodAccess; @@ -10,7 +11,6 @@ import cc.smtweb.framework.core.mvc.controller.scan.BeanManager; import cc.smtweb.framework.core.mvc.realm.interceptor.PermInterceptor; import cc.smtweb.framework.core.mvc.realm.service.PermChecker; import cc.smtweb.framework.core.mvc.scheduler.SchedulerTaskManager; -import cc.smtweb.framework.core.redis.RedisManager; import lombok.Getter; import lombok.extern.slf4j.Slf4j; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/BindFieldAccess.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/BindFieldAccess.java index a664270..482b0df 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/BindFieldAccess.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/BindFieldAccess.java @@ -1,6 +1,5 @@ package cc.smtweb.framework.core.mvc.controller.access; -import cc.smtweb.framework.core.exception.BindBeanException; import cc.smtweb.framework.core.mvc.controller.IBeanContext; import cc.smtweb.framework.core.mvc.controller.IEditor; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/FieldAccess.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/FieldAccess.java index 3fb7791..392ec6e 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/FieldAccess.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/FieldAccess.java @@ -2,7 +2,6 @@ package cc.smtweb.framework.core.mvc.controller.access; import cc.smtweb.framework.core.exception.BindBeanException; import cc.smtweb.framework.core.mvc.controller.IBeanContext; -import cc.smtweb.framework.core.mvc.controller.IEditor; import java.lang.reflect.Field; import java.util.Map; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/MethodParamAccess.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/MethodParamAccess.java index cf66b21..800c24a 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/MethodParamAccess.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/access/MethodParamAccess.java @@ -5,7 +5,6 @@ import cc.smtweb.framework.core.mvc.controller.IEditor; import lombok.Getter; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.Map; /** diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/WebDataBinder.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/WebDataBinder.java index 5d7ab2d..d11759e 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/WebDataBinder.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/WebDataBinder.java @@ -1,8 +1,8 @@ package cc.smtweb.framework.core.mvc.controller.binder; +import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.common.SwIpAddr; import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.mvc.controller.IEditor; import cc.smtweb.framework.core.mvc.controller.binder.attr.BeanAttrEditor; import cc.smtweb.framework.core.mvc.controller.binder.bean.*; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/AbstractContextEditor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/AbstractContextEditor.java index 92fa9a3..1187721 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/AbstractContextEditor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/AbstractContextEditor.java @@ -4,7 +4,6 @@ import cc.smtweb.framework.core.mvc.controller.IBeanContext; import cc.smtweb.framework.core.mvc.controller.IEditor; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.Map; public abstract class AbstractContextEditor implements IEditor { diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/NullEditor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/NullEditor.java index 3b54cbd..c791f97 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/NullEditor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/NullEditor.java @@ -4,7 +4,6 @@ import cc.smtweb.framework.core.mvc.controller.IBeanContext; import cc.smtweb.framework.core.mvc.controller.IEditor; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.Map; public class NullEditor implements IEditor { diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/SwIpAddrEditor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/SwIpAddrEditor.java index b838308..8329f39 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/SwIpAddrEditor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/bean/SwIpAddrEditor.java @@ -1,13 +1,9 @@ package cc.smtweb.framework.core.mvc.controller.binder.bean; -import cc.smtweb.framework.core.mvc.controller.IEditor; import cc.smtweb.framework.core.mvc.controller.binder.param.AbstractRequestEditor; -import cc.smtweb.framework.core.session.SessionUtil; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.BeanFactory; import javax.servlet.http.HttpServletRequest; -import java.util.Map; /*** * 获取客户端IP地址;这里通过了Nginx获取;X-Real-IP diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/AbstractRequestEditor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/AbstractRequestEditor.java index 758d1b0..eb17731 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/AbstractRequestEditor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/AbstractRequestEditor.java @@ -4,7 +4,6 @@ import cc.smtweb.framework.core.mvc.controller.IBeanContext; import cc.smtweb.framework.core.mvc.controller.IEditor; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.Map; public abstract class AbstractRequestEditor implements IEditor { diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/BeanTypeEditor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/BeanTypeEditor.java index dcb2721..b96da02 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/BeanTypeEditor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/binder/param/BeanTypeEditor.java @@ -4,7 +4,6 @@ import cc.smtweb.framework.core.mvc.controller.IBeanContext; import cc.smtweb.framework.core.mvc.controller.IEditor; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.Map; public class BeanTypeEditor implements IEditor { diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/MethodParser.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/MethodParser.java index aaf2b46..37664f2 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/MethodParser.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/MethodParser.java @@ -10,9 +10,7 @@ import cc.smtweb.framework.core.mvc.controller.binder.WebDataBinder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.ResolvableType; -import org.springframework.core.annotation.SynthesizingMethodParameter; import java.lang.annotation.Annotation; import java.lang.reflect.Method; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/PackageScanner.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/PackageScanner.java index cb6532f..d0bfe8b 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/PackageScanner.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/PackageScanner.java @@ -3,11 +3,9 @@ package cc.smtweb.framework.core.mvc.controller.scan; import lombok.extern.slf4j.Slf4j; import java.io.File; -import java.io.FileFilter; import java.io.IOException; import java.lang.reflect.Modifier; import java.net.JarURLConnection; -import java.net.URISyntaxException; import java.net.URL; import java.net.URLDecoder; import java.util.Enumeration; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/ScanContext.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/ScanContext.java index f56de44..061806b 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/ScanContext.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/controller/scan/ScanContext.java @@ -1,7 +1,10 @@ package cc.smtweb.framework.core.mvc.controller.scan; +import cc.smtweb.framework.core.annotation.SwBean; +import cc.smtweb.framework.core.annotation.SwConstruct; +import cc.smtweb.framework.core.annotation.SwDestroy; +import cc.smtweb.framework.core.annotation.SwScheduling; import cc.smtweb.framework.core.common.SwException; -import cc.smtweb.framework.core.annotation.*; import cc.smtweb.framework.core.mvc.controller.access.MethodAccess; import cc.smtweb.framework.core.mvc.controller.access.SchedulerMethodAccess; import cc.smtweb.framework.core.mvc.controller.binder.WebDataBinder; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AbstractPermInterceptor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AbstractPermInterceptor.java index 3562236..73e4c3c 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AbstractPermInterceptor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AbstractPermInterceptor.java @@ -1,6 +1,8 @@ package cc.smtweb.framework.core.mvc.realm.interceptor; import cc.smtweb.framework.core.annotation.SwPerm; +import cc.smtweb.framework.core.cache.ISwCache; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.mvc.controller.IEditor; import cc.smtweb.framework.core.mvc.realm.exception.ForbiddenException; import cc.smtweb.framework.core.mvc.realm.exception.UnauthenticatedException; @@ -8,8 +10,6 @@ import cc.smtweb.framework.core.mvc.realm.service.PermCheckItem; import cc.smtweb.framework.core.mvc.realm.service.PermChecker; import cc.smtweb.framework.core.session.SessionUtil; import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.framework.core.cache.ISwCache; -import cc.smtweb.framework.core.redis.RedisManager; import org.apache.commons.lang3.StringUtils; import javax.servlet.http.HttpServletRequest; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AuthorizationInterceptor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AuthorizationInterceptor.java index 85da726..47a24d5 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AuthorizationInterceptor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/AuthorizationInterceptor.java @@ -1,7 +1,7 @@ package cc.smtweb.framework.core.mvc.realm.interceptor; import cc.smtweb.framework.core.annotation.SwPerm; -import cc.smtweb.framework.core.redis.RedisManager; +import cc.smtweb.framework.core.cache.redis.RedisManager; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/PermInterceptor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/PermInterceptor.java index ee6a9ac..dcf9184 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/PermInterceptor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/realm/interceptor/PermInterceptor.java @@ -1,6 +1,6 @@ package cc.smtweb.framework.core.mvc.realm.interceptor; -import cc.smtweb.framework.core.redis.RedisManager; +import cc.smtweb.framework.core.cache.redis.RedisManager; import javax.servlet.http.HttpServletRequest; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/AbstractJobQueue.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/AbstractJobQueue.java index 2c71c4f..1f5993f 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/AbstractJobQueue.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/AbstractJobQueue.java @@ -3,7 +3,6 @@ package cc.smtweb.framework.core.mvc.scheduler; import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/SchedulerTaskManager.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/SchedulerTaskManager.java index cedf460..7fe5a7d 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/SchedulerTaskManager.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/SchedulerTaskManager.java @@ -1,6 +1,7 @@ package cc.smtweb.framework.core.mvc.scheduler; import cc.smtweb.framework.core.annotation.SwScheduling; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.mvc.ISchedulerWakeup; import cc.smtweb.framework.core.mvc.controller.IBeanContext; @@ -9,7 +10,6 @@ import cc.smtweb.framework.core.mvc.scheduler.job.GroupJob; import cc.smtweb.framework.core.mvc.scheduler.job.LocalJobExecutor; import cc.smtweb.framework.core.mvc.scheduler.job.RedisJobExecutor; import cc.smtweb.framework.core.mvc.scheduler.job.SimpleJob; -import cc.smtweb.framework.core.redis.RedisManager; import com.serotonin.timer.RealTimeTimer; import com.serotonin.timer.TimerTask; import org.apache.commons.lang3.StringUtils; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/GroupJob.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/GroupJob.java index 189574b..0fc49c5 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/GroupJob.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/GroupJob.java @@ -1,10 +1,10 @@ package cc.smtweb.framework.core.mvc.scheduler.job; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.mvc.controller.access.MethodAccess; import cc.smtweb.framework.core.mvc.scheduler.AbstractJob; import cc.smtweb.framework.core.mvc.scheduler.AbstractJobExecutor; import cc.smtweb.framework.core.mvc.scheduler.AbstractJobQueue; -import cc.smtweb.framework.core.redis.RedisManager; public class GroupJob extends AbstractJob { @Override diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/RedisJobExecutor.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/RedisJobExecutor.java index 1251de5..643d67a 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/RedisJobExecutor.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/RedisJobExecutor.java @@ -1,10 +1,10 @@ package cc.smtweb.framework.core.mvc.scheduler.job; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.mvc.controller.IBeanContext; import cc.smtweb.framework.core.mvc.scheduler.AbstractJob; import cc.smtweb.framework.core.mvc.scheduler.AbstractJobExecutor; -import cc.smtweb.framework.core.redis.RedisManager; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ExecutorService; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/SimpleJob.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/SimpleJob.java index ec38b04..19b2720 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/SimpleJob.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/scheduler/job/SimpleJob.java @@ -1,10 +1,10 @@ package cc.smtweb.framework.core.mvc.scheduler.job; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.mvc.controller.access.MethodAccess; import cc.smtweb.framework.core.mvc.scheduler.AbstractJob; import cc.smtweb.framework.core.mvc.scheduler.AbstractJobExecutor; import cc.smtweb.framework.core.mvc.scheduler.AbstractJobQueue; -import cc.smtweb.framework.core.redis.RedisManager; public class SimpleJob extends AbstractJob { public SimpleJob(MethodAccess methodAccess) { diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompProvider.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompProvider.java index 0185538..472a9a3 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompProvider.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompProvider.java @@ -1,8 +1,5 @@ package cc.smtweb.framework.core.mvc.service; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.EntityDao; - import java.util.HashMap; import java.util.Map; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompService.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompService.java index d1900c7..7906bc7 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompService.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractCompService.java @@ -1,9 +1,9 @@ package cc.smtweb.framework.core.mvc.service; +import cc.smtweb.framework.core.annotation.SwBody; 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.annotation.SwBody; import cc.smtweb.framework.core.session.UserSession; /** diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractListHandler.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractListHandler.java index 911a4d8..b9fbbc4 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractListHandler.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/AbstractListHandler.java @@ -1,9 +1,9 @@ package cc.smtweb.framework.core.mvc.service; -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.cache.SessionCache; import cc.smtweb.framework.core.cache.SessionCacheFactory; +import cc.smtweb.framework.core.common.R; +import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.mvc.service.list.FooterField; import lombok.extern.slf4j.Slf4j; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultComboHandler.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultComboHandler.java index eff88d9..0760241 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultComboHandler.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultComboHandler.java @@ -1,9 +1,9 @@ package cc.smtweb.framework.core.mvc.service; import cc.smtweb.framework.core.common.R; +import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.impl.DefaultEntity; @@ -11,7 +11,9 @@ import cc.smtweb.framework.core.db.vo.ModelField; import cc.smtweb.framework.core.db.vo.ModelTable; import org.apache.commons.lang3.StringUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** * Created by Akmm at 2022/3/2 19:52 diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultListHandler.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultListHandler.java index 092fedb..791756b 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultListHandler.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/DefaultListHandler.java @@ -1,7 +1,7 @@ package cc.smtweb.framework.core.mvc.service; -import cc.smtweb.framework.core.common.SwMap; 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.EntityHelper; @@ -11,7 +11,8 @@ import cc.smtweb.framework.core.db.vo.ModelField; import cc.smtweb.framework.core.db.vo.ModelTable; import org.apache.commons.lang3.StringUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.List; /** * Created by Akmm at 2022/3/2 19:52 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 5915852..b0e3a7a 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 @@ -1,10 +1,10 @@ package cc.smtweb.framework.core.mvc.service; -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.EntityDao; import cc.smtweb.framework.core.db.cache.ModelTableCache; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/IWorker.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/IWorker.java index 92cdb81..a37939e 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/IWorker.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/IWorker.java @@ -1,8 +1,6 @@ package cc.smtweb.framework.core.mvc.service; import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.session.UserSession; /** * Created by Akmm at 2022/3/2 19:01 diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/SwListData.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/SwListData.java index 3317cd1..d2299d2 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/SwListData.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/mvc/service/SwListData.java @@ -1,6 +1,5 @@ package cc.smtweb.framework.core.mvc.service; -import cc.smtweb.framework.core.common.SwMap; import lombok.Getter; import java.util.ArrayList; 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 9d81145..46b7fcb 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 @@ -1,10 +1,10 @@ package cc.smtweb.framework.core.mvc.service; -import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.cache.CacheManager; import cc.smtweb.framework.core.common.SwConsts; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.EntityDao; import cc.smtweb.framework.core.db.cache.ModelTableCache; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java index bfae9d5..b03e1c4 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java @@ -1,9 +1,9 @@ package cc.smtweb.framework.core.session; +import cc.smtweb.framework.core.cache.redis.RedisBroadcastEvent; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.db.jdbc.IdGenerator; import cc.smtweb.framework.core.mvc.controller.IEditor; -import cc.smtweb.framework.core.redis.RedisBroadcastEvent; -import cc.smtweb.framework.core.redis.RedisManager; import org.apache.commons.lang3.StringUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionUtil.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionUtil.java index 6baae17..09e63a6 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionUtil.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/session/SessionUtil.java @@ -1,8 +1,8 @@ package cc.smtweb.framework.core.session; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.mvc.controller.IEditor; import cc.smtweb.framework.core.mvc.realm.exception.UnauthenticatedException; -import cc.smtweb.framework.core.redis.RedisManager; import org.apache.commons.lang3.StringUtils; import org.springframework.web.context.request.RequestContextHolder; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/IpAddrUtil.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/IpAddrUtil.java index 0bee08f..9ba2642 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/IpAddrUtil.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/IpAddrUtil.java @@ -1,9 +1,10 @@ package cc.smtweb.framework.core.util; +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.http.HttpServletRequest; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.servlet.http.HttpServletRequest; -import org.apache.commons.lang3.StringUtils; /** * 〈IP〉工具类 diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/BaseBeanSerializer.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/BaseBeanSerializer.java index b333a4c..b0e6b4e 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/BaseBeanSerializer.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/BaseBeanSerializer.java @@ -7,7 +7,6 @@ import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; -import java.util.Date; public class BaseBeanSerializer extends JsonSerializer { diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/TimestampDeserializer.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/TimestampDeserializer.java index c9a4dd3..fb1a3a0 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/TimestampDeserializer.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/jackson/TimestampDeserializer.java @@ -1,8 +1,6 @@ package cc.smtweb.framework.core.util.jackson; -import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.exc.InvalidFormatException; diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/kryo/KryoTool.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/kryo/KryoTool.java index 6da195f..f444964 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/kryo/KryoTool.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/kryo/KryoTool.java @@ -5,6 +5,7 @@ import com.esotericsoftware.kryo.io.Input; import com.esotericsoftware.kryo.io.Output; import com.esotericsoftware.kryo.pool.KryoFactory; import com.esotericsoftware.kryo.pool.KryoPool; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.Serializable; diff --git a/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileDownloadController.java b/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileDownloadController.java index cf07861..a98ee5c 100644 --- a/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileDownloadController.java +++ b/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileDownloadController.java @@ -1,6 +1,6 @@ package cc.smtweb.framework.file.spring.controller; -import cc.smtweb.framework.core.redis.RedisManager; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.session.SessionUtil; import cc.smtweb.framework.file.FilePathGenerator; import org.apache.commons.lang3.StringUtils; diff --git a/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileUploadController.java b/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileUploadController.java index 1fdb0a2..853d662 100644 --- a/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileUploadController.java +++ b/smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileUploadController.java @@ -2,7 +2,7 @@ package cc.smtweb.framework.file.spring.controller; import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.redis.RedisManager; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.session.SessionUtil; import cc.smtweb.framework.file.FilePathGenerator; import cc.smtweb.framework.file.FilePathInfo; diff --git a/smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoTimerService.java b/smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoTimerService.java index 2fc1859..4c8e46f 100644 --- a/smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoTimerService.java +++ b/smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoTimerService.java @@ -4,7 +4,7 @@ import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.annotation.*; import cc.smtweb.framework.core.mvc.SchedulerManager; import cc.smtweb.framework.core.mvc.scheduler.SchedulerPoint; -import cc.smtweb.framework.core.redis.RedisManager; +import cc.smtweb.framework.core.cache.redis.RedisManager; import cc.smtweb.framework.core.util.DateUtil; import lombok.extern.slf4j.Slf4j; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/annotation/BpmEvent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/annotation/BpmEvent.java deleted file mode 100644 index c3cad60..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/annotation/BpmEvent.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.smtweb.system.bpm.core.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * 数据模型注解,放到@SwService类中使用 - * @author xkliu - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD}) -public @interface BpmEvent { - - /** 数据集地址,如 uc.perm.perm.sysRoleMenuPrivilege */ - String dataset(); - /** 事件类型, BpmEventType */ - int event(); -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/annotation/BpmEventType.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/annotation/BpmEventType.java deleted file mode 100644 index 5118b84..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/annotation/BpmEventType.java +++ /dev/null @@ -1,39 +0,0 @@ -package cc.smtweb.system.bpm.core.annotation; - -/** - * 数据模型事件类型 - * @author xkliu - */ -public interface BpmEventType { - /** - * 卡片模型 - */ - int CARD_BEFORE_LOAD = 101; - int CARD_LOAD = 102; - int CARD_AFTER_LOAD = 103; - int CARD_BEFORE_SAVE = 104; - int CARD_SAVE = 105; - int CARD_AFTER_SAVE = 106; - int CARD_BEFORE_REMOVE = 107; - int CARD_REMOVE = 108; - int CARD_AFTER_REMOVE = 109; -// int CARD_LOAD_LOOKUP = 16; - /** - * 列表模型 - */ - int LIST_BEFORE_LIST = 201; - int LIST_LIST = 202; - int LIST_AFTER_LIST = 203; - int LIST_BEFORE_COUNT = 204; - int LIST_COUNT = 205; - int LIST_AFTER_COUNT = 206; - /** - * 树模型 - */ - int TREE_BEFORE_TREE = 301; - int TREE_TREE = 302; - int TREE_AFTER_TREE = 303; - int TREE_BEFORE_MOVE = 304; - int TREE_MOVE = 305; - int TREE_AFTER_MOVE = 306; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmDataException.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmDataException.java deleted file mode 100644 index 08b4c7e..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmDataException.java +++ /dev/null @@ -1,7 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -public class BpmDataException extends BpmException { - public BpmDataException(String msg) { - super(msg); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmException.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmException.java deleted file mode 100644 index d82ebbb..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmException.java +++ /dev/null @@ -1,19 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -import cc.smtweb.framework.core.common.SwException; - -import java.io.IOException; - -public class BpmException extends SwException { - public BpmException(String message) { - super(message); - } - - public BpmException(Exception e) { - super(e); - } - - public BpmException(String message, IOException e) { - super(message, e); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmFieldError.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmFieldError.java deleted file mode 100644 index 52ffb71..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmFieldError.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -import lombok.Data; - -@Data -public class BpmFieldError { - private String field; - private String message; - - public BpmFieldError(String field, String message) { - this.field = field; - this.message = message; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmIlegalArgumentException.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmIlegalArgumentException.java deleted file mode 100644 index 43b6222..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmIlegalArgumentException.java +++ /dev/null @@ -1,12 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -import java.io.IOException; - -public class BpmIlegalArgumentException extends RuntimeException { - public BpmIlegalArgumentException(String message) { - super(message); - } - public BpmIlegalArgumentException(String message, IOException e) { - super(message, e); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmLockRevException.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmLockRevException.java deleted file mode 100644 index d4ffb70..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmLockRevException.java +++ /dev/null @@ -1,7 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -public class BpmLockRevException extends BpmException { - public BpmLockRevException() { - super("update lock rev error"); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmObjectNotFoundException.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmObjectNotFoundException.java deleted file mode 100644 index d1444e0..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmObjectNotFoundException.java +++ /dev/null @@ -1,7 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -public class BpmObjectNotFoundException extends BpmException { - public BpmObjectNotFoundException(String msg) { - super(msg); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmValidException.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmValidException.java deleted file mode 100644 index ae22ad4..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/BpmValidException.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -import lombok.Getter; - -import java.util.List; - -public class BpmValidException extends BpmException { - @Getter - private List fieldErrors; - - public BpmValidException(List fieldErrors) { - super("数据验证失败"); - this.fieldErrors = fieldErrors; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/ModelLoaderError.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/ModelLoaderError.java deleted file mode 100644 index 4c4c8c2..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/exception/ModelLoaderError.java +++ /dev/null @@ -1,46 +0,0 @@ -package cc.smtweb.system.bpm.core.exception; - -import lombok.Getter; - -@Getter -public class ModelLoaderError { - public static final int ERROR_FLOW = 11; - public static final int ERROR_NODE = 12; - public static final int ERROR_ACTION = 13; - public static final int ERROR_CONNECTION = 14; - public static final int ERROR_DB = 21; - public static final int ERROR_TABLE = 22; - public static final int ERROR_FIELD = 23; - public static final int ERROR_INDEX = 24; - public static final int ERROR_UI = 31; - public static final int ERROR_UI_DATASET = 32; - - private int type; - private final String id; - private final String subId; - private String msg; - - public ModelLoaderError(int type, String msg) { - this(type, null, null, msg); - } - - public ModelLoaderError(int type, String id, String msg) { - this(type, id, null, msg); - } - - public ModelLoaderError(int type, String id, String subId, String msg) { - this.type = type; - this.id = id; - this.subId = subId; - this.msg = msg; - } - - @Override - public String toString() { - if (id != null) { - return msg; - } else { - return "[id=" + id + "]"+ msg; - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmKeyValue.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmKeyValue.java deleted file mode 100644 index c8cdd7b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmKeyValue.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.core.ui; - -import lombok.Data; - -@Data -public class BpmKeyValue { - private String optKey; - private String optValue; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmListData.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmListData.java deleted file mode 100644 index 17c5cbc..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmListData.java +++ /dev/null @@ -1,37 +0,0 @@ -package cc.smtweb.system.bpm.core.ui; - -import cc.smtweb.framework.core.common.SwMap; -import lombok.Getter; - -import java.util.ArrayList; -import java.util.List; - -@Getter -public class BpmListData { - public static final BpmListData EMPTY = new BpmListData(new ArrayList<>(), 0); - - private final List rows; - // 总数, -1 表示需要异步获取数量, >=0 表示总数 - private int total; - - private BpmListData(List rows, int total) { - this.rows = rows; - this.total = total; - } - - public static BpmListData create(List list, boolean loadCount) { - if (list == null) { - return BpmListData.EMPTY; - } - - if (loadCount) { - return new BpmListData(list, -1); - } else { - return new BpmListData(list, list.size()); - } - } - - public boolean isEmpty() { - return rows == null || rows.isEmpty(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmMapData.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmMapData.java deleted file mode 100644 index 5ec3107..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmMapData.java +++ /dev/null @@ -1,13 +0,0 @@ -package cc.smtweb.system.bpm.core.ui; - -import java.util.HashMap; - -public class BpmMapData extends HashMap { - public BpmMapData() { - - } - - public BpmMapData(int initialCapacity) { - super(initialCapacity); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmPageContext.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmPageContext.java deleted file mode 100644 index 350c3d9..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/BpmPageContext.java +++ /dev/null @@ -1,60 +0,0 @@ -package cc.smtweb.system.bpm.core.ui; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.mvc.controller.IBeanContext; -import cc.smtweb.framework.core.session.SessionUtil; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldLookup; -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.lang3.StringUtils; - -import javax.servlet.http.HttpServletRequest; -import java.util.Map; - -@Getter -public class BpmPageContext { - static final String ATTR_MAP_BODY = "_bpm_map_body"; - private final IBeanContext context; - private final Map params; - private final HttpServletRequest request; - private final String postBody; - - private SwMap body; - private UserSession session; - @Setter - private boolean deploy = true; - @Setter - private String pageName; - @Setter - private BpmDataset dataset; - @Setter - private BpmFieldLookup fieldLookup; - -// BpmPageContext(SwMap body, UserSession session) { -// this.body = body; -// this.session = session; -// } - - public BpmPageContext(IBeanContext context, Map params, String body, HttpServletRequest request) { - this.context = context; - this.params = params; - this.request = request; - this.postBody = body; - - SwMap mapBody = null; - if (StringUtils.isNotBlank(body)) { - mapBody = JsonUtil.parse(body, SwMap.class); - request.setAttribute(ATTR_MAP_BODY, mapBody); - } - - this.body = mapBody; - this.session = (UserSession) SessionUtil.getSession(); - } - - public long getParamId() { - return body.readLong(IParamConst.PARAM_ID, 0L); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/IParamConst.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/IParamConst.java deleted file mode 100644 index 97acc79..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/IParamConst.java +++ /dev/null @@ -1,29 +0,0 @@ -package cc.smtweb.system.bpm.core.ui; - -/** - * 前端页面参数名 - * @author xkliu - */ -public interface IParamConst { - // 请求参数 - String PARAM_PAGE_ID = "pageId"; - String PARAM_PAGE_NAME = "pageName"; - String PARAM_DATASET = "dataset"; - String PARAM_ID = "id"; - String PARAMS_IDS = "ids"; - String PARAM_PARENT_ID = "dataParentId"; - String PARAM_ORDERS = "dataOrders"; - // 分页参数 - String PARAM_PAGE_INDEX = "pageIndex"; - String PARAM_PAGE_SIZE = "pageSize"; - int PAGE_DEFAULT_SIZE = 20; - // 字段参数后缀 - String LOOKUP_TEXT = "_text"; - String LOOKUP_KEY = "_key"; - // lookup : select/tree - String OPTION_KEY = "optKey"; - String OPTION_LABEL = "optLabel"; - String OPTION_ORDER = "optOrder"; - // tree 返回值 - String TREE_CHILDREN = "children"; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmBeanAttrEditor.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmBeanAttrEditor.java deleted file mode 100644 index 4cb129c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmBeanAttrEditor.java +++ /dev/null @@ -1,80 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.bind; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.exception.BindBeanException; -import cc.smtweb.framework.core.mvc.controller.binder.attr.AbstractAttrEditor; -import cc.smtweb.system.bpm.util.BeanUtil; - -import javax.servlet.http.HttpServletRequest; -import java.util.List; - -/** - * API函数@SwBody参数的转换处理,POST请求直接转换Json内容为Bean对象,GET请求转换Map请求参数为Bean对 - * @author xkliu - */ -public class BpmBeanAttrEditor extends AbstractAttrEditor implements IBpmBeanConst { - @Override - public Object getValue(String paramName, Class paramType, HttpServletRequest request) { - if (ATTRIBUTE_ROW.equals(paramName)) { - return getBeanRow(paramType, request); - } else if (ATTRIBUTE_ROWS.equals(paramName)) { - return getBeanRows(paramType, request); - } - - return request.getAttribute(paramName); - } - - private Object getBeanRow(Class paramType, HttpServletRequest request) { - SwMap map = (SwMap)request.getAttribute(BEAN_ROW_MAP); - Object bean = request.getAttribute(BEAN_ROW_BEAN); - - if (bean != null) { - if (map != null) { - // 逻辑有错误 map 和 bean 不会同时有值 - request.removeAttribute(BEAN_ROW_BEAN); - } - -// if (paramType != null) { -// if (!paramType.equals(bean.getClass())) { -// throw new BindBeanException("type noe equals " + paramType.getName() + "," + bean.getClass().getName()); -// } -// } - } else if (map != null) { - try { - bean = paramType.newInstance(); - } catch (IllegalAccessException | InstantiationException e) { - throw new BindBeanException(e); - } - - BeanUtil.mapToBean(map, bean); - request.setAttribute(BEAN_ROW_MAP, bean); - request.removeAttribute(BEAN_ROW_BEAN); - } - - return bean; - } - - private List getBeanRows(Class paramType, HttpServletRequest request) { - List map = (List)request.getAttribute(BEAN_ROWS_MAP); - List bean = (List)request.getAttribute(BEAN_ROWS_BEAN); - - if (bean != null) { - if (map != null) { - // 逻辑有错误 map 和 bean 不会同时有值 - request.removeAttribute(BEAN_ROWS_MAP); - } - -// if (paramType != null) { -// if (!paramType.equals(bean.getClass())) { -// throw new BindBeanException("type noe equals " + paramType.getName() + "," + bean.getClass().getName()); -// } -// } - } else if (map != null) { - bean = BeanUtil.toBeanList(map, paramType); - request.setAttribute(BEAN_ROWS_BEAN, bean); - request.removeAttribute(BEAN_ROWS_MAP); - } - - return bean; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmMapAttrEditor.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmMapAttrEditor.java deleted file mode 100644 index c4fb09d..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmMapAttrEditor.java +++ /dev/null @@ -1,62 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.bind; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.mvc.controller.binder.attr.AbstractAttrEditor; -import cc.smtweb.system.bpm.util.BeanUtil; - -import javax.servlet.http.HttpServletRequest; -import java.util.List; - -/** - * API函数@SwBody参数的转换处理,POST请求直接转换Json内容为Bean对象,GET请求转换Map请求参数为Bean对 - * @author xkliu - */ -public class BpmMapAttrEditor extends AbstractAttrEditor implements IBpmBeanConst { - @Override - public Object getValue(String paramName, Class paramType, HttpServletRequest request) { - if (ATTRIBUTE_ROW.equals(paramName)) { - return getMapRow(request); - } else if (ATTRIBUTE_ROWS.equals(paramName)) { - return getMapRows(request); - } - - return request.getAttribute(paramName); - } - - private Object getMapRow(HttpServletRequest request) { - SwMap map = (SwMap)request.getAttribute(BEAN_ROW_MAP); - Object bean = request.getAttribute(BEAN_ROW_BEAN); - - if (map != null) { - if (bean != null) { - // 逻辑有错误 map 和 bean 不会同时有值 - request.removeAttribute(BEAN_ROW_BEAN); - } - } else if (bean != null) { - map = new SwMap(); - BeanUtil.beanToMap(bean, map); - request.setAttribute(BEAN_ROW_MAP, map); - request.removeAttribute(BEAN_ROW_BEAN); - } - - return map; - } - - private Object getMapRows(HttpServletRequest request) { - List map = (List)request.getAttribute(BEAN_ROWS_MAP); - List bean = (List)request.getAttribute(BEAN_ROWS_BEAN); - - if (map != null) { - if (bean != null) { - // 逻辑有错误 map 和 bean 不会同时有值 - request.removeAttribute(BEAN_ROWS_BEAN); - } - } else if (bean != null) { - map = BeanUtil.toMapList(bean); - request.setAttribute(BEAN_ROWS_MAP, map); - request.removeAttribute(BEAN_ROWS_BEAN); - } - - return map; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmPageContextEditor.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmPageContextEditor.java deleted file mode 100644 index 192ae78..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/BpmPageContextEditor.java +++ /dev/null @@ -1,68 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.bind; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.mvc.controller.IBeanContext; -import cc.smtweb.framework.core.mvc.controller.IEditor; -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.spring.cache.BpmPageCache; - -import javax.servlet.http.HttpServletRequest; -import java.util.Map; - -public class BpmPageContextEditor implements IEditor { - - public BpmPageContextEditor(){ - } - - @Override - public Object getParamValue(String paramName, Class paramType, IBeanContext context, Map params, String body, HttpServletRequest request) { - BpmPageContext pageContext = new BpmPageContext(context, params, body, request); - SwMap mapBody = pageContext.getBody(); - String pageName = mapBody.readString(IParamConst.PARAM_PAGE_NAME); - if (pageName == null) { - pageName = mapBody.readString(IParamConst.PARAM_PAGE_ID); - } - - BpmPage page = loadPage(pageName); - pageContext.setPageName(page.getFullName()); - pageContext.setDeploy(page.isDeploy()); - pageContext.setDataset(findUiDataset(page, mapBody.readString(IParamConst.PARAM_DATASET))); - - return pageContext; - } - - private BpmPage loadPage(String pageName) { - if (pageName == null) { - throw new BpmException("参数 pageName 必填"); - } - - BpmPage uiPage = BpmPageCache.getInstance().get(pageName); - if (uiPage == null) { - uiPage = BpmPageCache.getInstance().getByOtherKey(pageName); - } - - if (uiPage == null) { - throw new BpmException("未找到页面, name=" + pageName); - } - - return uiPage; - } - - private BpmDataset findUiDataset(BpmPage uiPage, String datasetName) { - if (datasetName == null) { - throw new BpmException("参数 dataset 必填"); - } - - BpmDataset dataset = uiPage.findDatasetByName(datasetName); - - if (dataset == null) { - throw new BpmException("未找到dataset, pageId=" + uiPage.getId() + ", id=" + datasetName); - } - - return dataset; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/IBpmBeanConst.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/IBpmBeanConst.java deleted file mode 100644 index 18a61e9..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/bind/IBpmBeanConst.java +++ /dev/null @@ -1,13 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.bind; - -public interface IBpmBeanConst { - String ATTRIBUTE_ROW = "row"; - String ATTRIBUTE_ROWS = "rows"; - - String BEAN_ROW = "_sw_bpm_" + ATTRIBUTE_ROW; - String BEAN_ROW_MAP = BEAN_ROW + "_map"; - String BEAN_ROW_BEAN = BEAN_ROW + "_bean"; - String BEAN_ROWS = "_sw_bpm_" + ATTRIBUTE_ROWS; - String BEAN_ROWS_MAP = BEAN_ROWS + "_map"; - String BEAN_ROWS_BEAN = BEAN_ROWS + "_bean"; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/CardDataBuilder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/CardDataBuilder.java deleted file mode 100644 index a91933e..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/CardDataBuilder.java +++ /dev/null @@ -1,310 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.builder; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractUpdateSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.DeleteSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.InsertSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.framework.core.util.DateUtil; -import cc.smtweb.system.bpm.core.exception.BpmFieldError; -import cc.smtweb.system.bpm.core.exception.BpmValidException; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmField; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldLookup; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import lombok.Getter; -import org.apache.commons.lang3.StringUtils; - -import java.util.*; -import java.util.regex.Pattern; - -/** - * 卡片界面保存操作的SQL构建 - * @author xkliu - */ -public class CardDataBuilder { - private DbEngine dbEngine; - - @Getter - private long masterId; - - private Long masterParentId; - - @Getter - private boolean instert; - private UserSession userSession; - private Long now; - private CardTreeDataBuilder cardTreeDataBuilder; - - private List sqlBuilders = new ArrayList<>(); - private BpmDataset masterDataset; - - /* 字段验证错误列表 */ - @Getter - private List fieldErrors; - - public CardDataBuilder(DbEngine dbEngine, long dataId, Long parentDataId, UserSession userSession) { - this.dbEngine = dbEngine; - this.masterId = dataId; - this.masterParentId = parentDataId; - this.instert = dataId == 0; - this.userSession = userSession; - } - - public void build(BpmDataset dataset, SwMap body, UserSession us) { - masterDataset = dataset; - build(dataset, body, masterId, masterParentId); - List slaves = dataset.getOneToOneDataset(); - if (slaves != null) { - for (BpmDataset slave : slaves) { - long slaveId = body.readLong(slave.getIdField().getName(), 0L); - build(slave, body, slaveId, null); - } - } - } - - private void build(BpmDataset dataset, SwMap body, long dataId, Long parentDataId) { - AbstractUpdateSqlBuilder sqlBuilder; - if (dataId == 0) { - // insert - sqlBuilder = SqlBuilder.createInsert(dataset.getDatabase(), dataset.getTable()); - - if (masterId == 0) { - masterId = dbEngine.nextId(); - if (dataset.getIdField() != null) { - body.put(dataset.getIdField().getName(), masterId); - } - } - // remove: 放到后面统一处理 - // sqlBuilder.add(dataset.getIdFieldName(), masterId); - -// if (parentDataId != null && parentDataId > 0) { -// BpmField parentIdField = dataset.findFieldByRefType(UiEnum.FieldRefType.PARENT_ID); -// if (parentIdField != null) { -// sqlBuilder.add(parentIdField.getFieldName(), parentDataId); -// } -// } - } else { - // update - sqlBuilder = SqlBuilder.createUpdate(dataset.getDatabase(), dataset.getTable()); - sqlBuilder.addWhere(dataset.readIdFieldName(), masterId); - } - - cardTreeDataBuilder = null; - - for (Map.Entry entry: dataset.getFields().entrySet()) { - BpmField bpmField = entry.getValue(); - - String fieldName = bpmField.getFieldName(); - // 只读和虚拟控件不进行保存 - if (!bpmField.isReadonly() && StringUtils.isNotBlank(fieldName)) { - if (dataset.getIdField() == bpmField) { - // id字段新增才需要设置值 - if (dataId == 0) { - sqlBuilder.add(fieldName, masterId); - } - } else { - Object fieldValue = body.get(bpmField.getName()); - - validField(bpmField, fieldValue); - - if (bpmField.isLookupManyToMay()) { - // 中间表数据修改 - buildManyToMany(dataset, bpmField, (String) fieldValue); - } else { - // 处理String空串为NULL值 - if (fieldValue != null) { - if (fieldValue instanceof String && StringUtils.isBlank((String) fieldValue)) { - fieldValue = null; - } - } - - // 处理默认值字段和计算字段 - switch (bpmField.getRefType()) { - case UiEnum.FieldRefType.SITE_ID: - if (dataId == 0) { - // 新增才保存数据 - sqlBuilder.add(fieldName, userSession.getSiteId()); - } - break; - case UiEnum.FieldRefType.CREATE_TIME: - if (dataId == 0) { - // 新增才保存数据 - sqlBuilder.add(fieldName, loadLastTime()); - } - break; - case UiEnum.FieldRefType.LAST_TIME: - sqlBuilder.add(fieldName, loadLastTime()); - break; - case UiEnum.FieldRefType.PARENT_ID: - sqlBuilder.add(fieldName, fieldValue); - updateCardTreeData(UiEnum.FieldRefType.PARENT_ID, fieldName, fieldValue); - break; - case UiEnum.FieldRefType.PARENT_ID_LIST: - updateCardTreeData(UiEnum.FieldRefType.PARENT_ID_LIST, fieldName, fieldValue); - break; - case UiEnum.FieldRefType.TREE_LEVEL: - updateCardTreeData(UiEnum.FieldRefType.TREE_LEVEL, fieldName, fieldValue); - break; - default: - sqlBuilder.add(fieldName, fieldValue); - break; - } - } - } - } - } - - saveCardTreeData(dataset, dataId, sqlBuilder); - - sqlBuilders.add(sqlBuilder); - } - - private void updateCardTreeData(int type, String fieldName, Object fieldValue) { - if (cardTreeDataBuilder == null) { - cardTreeDataBuilder = new CardTreeDataBuilder(dbEngine); - } - - cardTreeDataBuilder.add(type, fieldName, fieldValue); - } - - private void saveCardTreeData(BpmDataset dataset, long dataId, AbstractUpdateSqlBuilder sqlBuilder) { - if (cardTreeDataBuilder != null) { - AbstractUpdateSqlBuilder newSqlBuilder = cardTreeDataBuilder.save(dataset, dataId, sqlBuilder); - cardTreeDataBuilder = null; - - if (newSqlBuilder != null) { - sqlBuilders.add(newSqlBuilder); - } - } - } - - private Long loadLastTime() { - if (now == null) { - now = DateUtil.nowDateTimeLong(); - } - - return now; - } - - private void validField(BpmField bpmField, Object fieldValue) { - if (bpmField.isRequired()) { - if (fieldValue == null || StringUtils.isBlank(fieldValue.toString())) { - // 对应前端的验证错误对象 ValidateError(message, field) - addFieldError(bpmField.getName(), bpmField.getLabel() + "必须填写"); - return; - } - } - - if (fieldValue != null && StringUtils.isNotBlank(bpmField.getValidPatten())) { - if (!Pattern.matches(bpmField.getValidPatten(), fieldValue.toString())) { - if (StringUtils.isNotBlank(bpmField.getValidMessage())) { - addFieldError(bpmField.getName(), bpmField.getValidMessage()); - } else { - addFieldError(bpmField.getName(), bpmField.getLabel() + "格式不正确"); - } - } - } - } - - private void addFieldError(String field, String message) { - if (this.fieldErrors == null) { - this.fieldErrors = new ArrayList<>(); - } - - this.fieldErrors.add(new BpmFieldError(field, message)); - } - - private void buildManyToMany(BpmDataset dataset, BpmField bpmField, String newValue) { - BpmFieldLookup lookup = (BpmFieldLookup) bpmField.getLookup(); - - // 读取旧记录 - Set oldIds = dbEngine.queryStringSet("SELECT " + lookup.getMiddleValueField() + " FROM " + dataset.getDatabase() + "." + lookup.getMiddleTable() - + " WHERE " + lookup.getMiddleKeyField() + "=?", masterId); - Set newIds = toIdSet(newValue); - - for (String newId: newIds) { - if (!oldIds.remove(newId)) { - // insert - InsertSqlBuilder sqlBuilder = SqlBuilder.createInsert(dataset.getDatabase(), lookup.getMiddleTable()); - sqlBuilder.add(lookup.getMiddleIdField(), dbEngine.nextId()); - sqlBuilder.add(lookup.getMiddleKeyField(), masterId); - sqlBuilder.add(lookup.getMiddleValueField(), newId); - sqlBuilders.add(sqlBuilder); - } - } - - for (String oldId: oldIds) { - // delete - DeleteSqlBuilder sqlBuilder = SqlBuilder.createDelete(dataset.getDatabase(), lookup.getMiddleTable()); - sqlBuilder.addWhere(lookup.getMiddleKeyField(), masterId); - sqlBuilder.addWhere(lookup.getMiddleValueField(), oldId); - sqlBuilders.add(sqlBuilder); - } - } - - private Set toIdSet(String str) { - Set result = new HashSet<>(); - - if (StringUtils.isNotBlank(str)) { - Collections.addAll(result, str.split(",")); - } - - return result; - } - - public long update() { - if (sqlBuilders.size() > 1) { - dbEngine.doTrans(() -> { - for (AbstractUpdateSqlBuilder sqlBuilder : sqlBuilders) { - sqlBuilder.update(dbEngine); - } - - return true; - }); - } else { - for (AbstractUpdateSqlBuilder sqlBuilder : sqlBuilders) { - sqlBuilder.update(dbEngine); - } - } - - return masterId; - } - - public SwMap update(SwMap data) { - if (data == null) { - data = new SwMap(); - } - - for (AbstractUpdateSqlBuilder sqlBuilder : sqlBuilders) { - sqlBuilder.updateMap(data); - } - - return data; - } - - public String getTableName() { - return masterDataset.fullName(); - } - - public boolean hasFieldErrors() { - return this.fieldErrors != null; - } - - public static CardDataBuilder create(DbEngine dbEngine, BpmDataset dataset, SwMap body, UserSession us) { - long dataId = body.readLong(IParamConst.PARAM_ID, 0L); - Long parentDataId = body.readLong(IParamConst.PARAM_PARENT_ID); - CardDataBuilder cardDataBuilder = new CardDataBuilder(dbEngine, dataId, parentDataId, us); - - cardDataBuilder.build(dataset, body, us); - - if (cardDataBuilder.hasFieldErrors()) { - throw new BpmValidException(cardDataBuilder.getFieldErrors()); - } - - return cardDataBuilder; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/CardTreeDataBuilder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/CardTreeDataBuilder.java deleted file mode 100644 index c2efec0..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/CardTreeDataBuilder.java +++ /dev/null @@ -1,134 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.builder; - -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractSelectSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractUpdateSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.UpdateSqlBuilder; -import cc.smtweb.system.bpm.core.exception.BpmDataException; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import org.apache.commons.lang3.StringUtils; - -public class CardTreeDataBuilder { - private Long parentId; - private String fieldParentId; - private String fieldParentIdList; - private String fieldLevel; - private DbEngine dbEngine; - - public CardTreeDataBuilder(DbEngine dbEngine) { - this.dbEngine = dbEngine; - } - - public void add(int type, String fieldName, Object fieldValue) { - switch (type) { - case UiEnum.FieldRefType.PARENT_ID: - parentId = readLong(fieldValue); - fieldParentId = fieldName; - break; - case UiEnum.FieldRefType.PARENT_ID_LIST: - fieldParentIdList = fieldName; - break; - case UiEnum.FieldRefType.TREE_LEVEL: - fieldLevel = fieldName; - break; - default: - throw new IllegalStateException("Unexpected value: " + type); - } - } - - public static Long readLong(Object s) { - if (s != null) { - if (s instanceof Number) { - return ((Number) s).longValue(); - } else { - String value = s.toString(); - if (StringUtils.isNotBlank(value)) { - return Long.parseLong(value); - } - } - } - - return null; - } - - public AbstractUpdateSqlBuilder save(BpmDataset dataset, long dataId, AbstractUpdateSqlBuilder sqlBuilder) { - if (fieldParentId != null) { - if (fieldParentIdList == null && fieldLevel == null) { - return null; - } - - if (fieldParentIdList == null || fieldLevel == null) { - throw new BpmDataException("必须同时设置parentIdList和level作用字段"); - } - - // TODO 检测需要同时设置idList和level - String idFileName = dataset.readIdFieldName(); - String parentIdList = null; - int treeLevel = 0; - if (parentId == null) { - sqlBuilder.add(fieldParentIdList, ""); - sqlBuilder.add(fieldLevel, 0); - parentIdList = parentId + "-"; - } else { - // 读取SQL - AbstractSelectSqlBuilder select = SqlBuilder.createSelect(dataset.getDatabase(), dataset.getTable()); - select.add(fieldParentIdList + " parentIdList"); - select.add(fieldLevel + " level"); - - select.addWhere(idFileName, parentId); - - TreeItemVO parentVO = select.queryEntity(dbEngine, TreeItemVO.class); - if (parentVO != null) { - parentIdList = parentVO.getParentIdList() + parentId + "-"; - treeLevel = parentVO.getLevel() + 1; - sqlBuilder.add(fieldParentIdList, parentIdList); - sqlBuilder.add(fieldLevel, treeLevel); - } else { - throw new BpmDataException("not find parent by " + dataset.getTable() + "." + idFileName + "=" + parentId); - } - } - - // 如果parentId有修改,需要处理所有下级的 parentIdList 和 level - if (dataId != 0) { - AbstractSelectSqlBuilder select = SqlBuilder.createSelect(dataset.getDatabase(), dataset.getTable()); - select.add(fieldParentIdList, parentIdList); - select.add(fieldParentId + " parentId"); - select.add(fieldLevel + " level"); - select.addWhere(idFileName, dataId); - - TreeItemVO curVO = select.queryEntity(dbEngine, TreeItemVO.class); - if (curVO != null) { - if (!LongEquals(curVO.getParentId(), parentId)) { - parentIdList = parentIdList + dataId + "-"; - // update table set parentIdList=CONCAT('1-2-4-', SUBSTR(parentIdList, 6)) where parentIdList like "1-2-3-%", level = level + 1; - UpdateSqlBuilder sb = SqlBuilder.createUpdate(dataset.getDatabase(), dataset.getTable()); - sb.add(String.format("%s=CONCAT('%s', SUBSTR(%s, %d))", fieldParentIdList, parentIdList, fieldParentIdList, curVO.getParentIdList().length() + 1), - UpdateSqlBuilder.VALUE_INVALID); - if (curVO.getLevel() > treeLevel) { - sb.add(String.format("%s=%s + %d", fieldLevel, fieldLevel, curVO.getLevel() - treeLevel), UpdateSqlBuilder.VALUE_INVALID); - } else if (curVO.getLevel() < treeLevel) { - sb.add(String.format("%s=%s - %d", fieldLevel, fieldLevel, treeLevel - curVO.getLevel()), UpdateSqlBuilder.VALUE_INVALID); - } - sb.addWhere(fieldParentIdList, curVO.getParentIdList() + "%", " like "); - - return sb; - } - } else { - throw new BpmDataException("not find data by " + dataset.getTable() + "." + idFileName + "=" + dataId); - } - } - } - - return null; - } - - private static boolean LongEquals(Long oldValue, Long newValue) { - if (oldValue != null) { - return oldValue.equals(newValue); - } - - return newValue == null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/SqlUtil.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/SqlUtil.java deleted file mode 100644 index 4ff9d1b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/SqlUtil.java +++ /dev/null @@ -1,106 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.builder; - -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; - -import java.util.List; -import java.util.function.Function; - -public class SqlUtil { - // 包含 - static final int OP_SUB = 1; - // 全匹配 - static final int OP_ALL = 2; - // 前匹配 - static final int OP_BEGIN = 3; - // 后匹配 - static final int OP_END = 4; - // 等于 - static final int OP_EQUAL = 5; - // 不等于 - static final int OP_NOT_EQUAL = 6; - // 大于 - static final int OP_GRATER = 7; - // 大于等于 - static final int OP_NOT_LESS = 8; - // 小于 - static final int OP_LESS = 9; - // 小于等于 - static final int OP_NOT_GRATER = 10; - - // 查询参数 - public static final String PN_FILTER = "filter"; - public static final String PN_SEARCH = "search"; - public static final String PN_SEARCH_TYPE = "searchType"; - - private SqlUtil(){} - - public static void addSqlWhere(SqlBuilder sqlBuilder, String field, int op, Object keyword) { - if (keyword instanceof String) { - keyword = ((String) keyword).trim(); - } - - switch (op) { - default: - case OP_EQUAL: - case OP_ALL: - sqlBuilder.addWhere(field, keyword, "="); - break; - case OP_NOT_EQUAL: - sqlBuilder.addWhere(field, keyword, "<>"); - break; - case OP_GRATER: - sqlBuilder.addWhere(field, keyword, ">"); - break; - case OP_NOT_LESS: - sqlBuilder.addWhere(field, keyword, ">="); - break; - case OP_LESS: - sqlBuilder.addWhere(field, keyword, "<"); - break; - case OP_NOT_GRATER: - sqlBuilder.addWhere(field, keyword, "<="); - break; - case OP_SUB: - sqlBuilder.addWhere(field, "%" + keyword + "%", " like "); - break; - case OP_BEGIN: - sqlBuilder.addWhere(field, "%" + keyword, " like "); - break; - case OP_END: - sqlBuilder.addWhere(field, keyword + "%", " like "); - break; - } - } - - public static String makeSummaryField(String rule, String fieldName) { - switch (rule) { - case "${count}": - return "count(" + fieldName + ")"; - case "${sum}": - return "sum(" + fieldName + ")"; - case "${avg}": - return "avg(" + fieldName + ")"; - case "${min}": - return "min(" + fieldName + ")"; - case "${max}": - return "max(" + fieldName + ")"; - default: - return rule; - } - } - - public static String join(List list, Function action) { - if (list.isEmpty()) { - return null; - } - - StringBuilder sb = new StringBuilder(); - for (T t: list) { - sb.append(action.apply(t)).append(','); - } - - sb.setLength(sb.length() - 1); - - return sb.toString(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/TreeDataBuilder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/TreeDataBuilder.java deleted file mode 100644 index c1a41df..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/TreeDataBuilder.java +++ /dev/null @@ -1,207 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.builder; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractSelectSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmField; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import cc.smtweb.system.bpm.engine.ui.entity.po.DynFormLogPO; -import lombok.Getter; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * 数据模型处理,读取和排序处理 - */ -@Getter -public class TreeDataBuilder { - private BpmField idField = null; - private BpmField parentField = null; - private BpmField orderField = null; - private BpmField titleField = null; - private BpmDataset dataset; - private Long parentId; - private Long[] orders; - private String idName; - - public static TreeDataBuilder create(BpmPageContext ctx) { - SwMap body = ctx.getBody(); - Long parentId = body.readLong(IParamConst.PARAM_PARENT_ID); - Long[] orders = body.readLongArray(IParamConst.PARAM_ORDERS); - - if (orders == null) { - throw new BpmException(IParamConst.PARAM_ORDERS + " 参数必填"); - } - - TreeDataBuilder treeDataBuilder = new TreeDataBuilder(ctx.getDataset(), parentId, orders); - - if (treeDataBuilder.getParentField() == null) { - throw new BpmException("dataset未设置‘上级ID’字段"); - } - - if (treeDataBuilder.getOrderField() == null) { - throw new BpmException("dataset未设置‘排序’字段"); - } - return treeDataBuilder; - } - - public TreeDataBuilder(BpmDataset dataset, Long parentId, Long[] orders) { - this.dataset = dataset; - this.parentId = parentId; - this.orders = orders; - for (Map.Entry entry: dataset.getFields().entrySet()) { - BpmField bpmField = entry.getValue(); - - switch (bpmField.getRefType()) { - case UiEnum.FieldRefType.ID: - idField = bpmField; - break; - case UiEnum.FieldRefType.PARENT_ID: - parentField = bpmField; - break; - case UiEnum.FieldRefType.ORDER: - orderField = bpmField; - break; - case UiEnum.FieldRefType.TITLE: - titleField = bpmField; - break; - default: - break; - } - } - - idName = idField != null ? idField.getName() : IParamConst.PARAM_ID; - } - - public AbstractSelectSqlBuilder tableSqlBuilder() { - AbstractSelectSqlBuilder sqlBuilder = SqlBuilder.createSelect(dataset.getDatabase(), dataset.getTable()); - - if (idField != null) { - sqlBuilder.add(idField.getFieldName() + " " + idField.getName()); - } else { - sqlBuilder.add(dataset.readIdFieldName() + " id"); - } - sqlBuilder.add(parentField.getFieldName() + " " + parentField.getName()); - sqlBuilder.add(titleField.getFieldName() + " " + titleField.getName()); - - if (orderField != null) { - sqlBuilder.addOrderBy(orderField.getFieldName() + "," + dataset.readIdFieldName()); - } else { - sqlBuilder.addOrderBy(dataset.readIdFieldName()); - } - - return sqlBuilder; - } - - public SwMap mapTreeFields(BpmDataset dataset, DynFormLogPO po) { - if (StringUtils.isNotBlank(po.getDflContent())) { - SwMap item = new SwMap(); - SwMap entity = JsonUtil.parse(po.getDflContent(), SwMap.class); - - item.put(parentField.getName(), entity.get(parentField.getFieldName())); - item.put(titleField.getName(), entity.get(titleField.getFieldName())); - item.put("id", po.getDflId()); - - return item; - } - - return null; - } - - public SwMap updateOrder(DynFormLogPO po, Long parentId, int order) { - SwMap entity; - if (StringUtils.isNotBlank(po.getDflContent())) { - entity = JsonUtil.parse(po.getDflContent(), SwMap.class); - } else { - entity = new SwMap(); - } - - entity.put(this.parentField.getFieldName(), parentId); - entity.put(this.orderField.getFieldName(), order); - - return entity; - } - - public static boolean longEquals(Long l1, Long l2) { - if (l1 != null) { - return l1.equals(l2); - } - - return l2 == null; - } - - private void addChild(SwMap parent, SwMap item) { - List children = readChildren(parent); - - if (children == null) { - children = new ArrayList<>(); - parent.put(IParamConst.TREE_CHILDREN, children); - } - - children.add(item); - } - - private boolean findAndAdd(SwMap parent, SwMap item) { - if (longEquals(parent.readLong(idName), item.readLong(parentField.getName()))) { - addChild(parent, item); - return true; - } else { - List children = readChildren(parent); - - if (children != null) { - for (SwMap child : children) { - if (findAndAdd(child, item)) { - return true; - } - } - } - } - - return false; - } - - private List readChildren(SwMap parent) { - return (List) parent.get(IParamConst.TREE_CHILDREN); - } - - // 读取树结构 - public List buildTree(List list, boolean forceAdd) { - SwMap root = new SwMap(); - - if (list != null) { - for (SwMap item: list) { - if (!findAndAdd(root, item)) { - for (SwMap it: list) { - // TODO IParamConst.PARAM_ID => idField.getId() - if (longEquals(it.readLong(idName), item.readLong(parentField.getName()))) { - addChild(it, item); - item = null; - break; - } - } - - // not find item parent - if (item != null && forceAdd) { - addChild(root, item); - } - } - } - } - - List result = readChildren(root); - - if (result == null) { - result = new ArrayList<>(); - } - - return result; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/TreeItemVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/TreeItemVO.java deleted file mode 100644 index 5ab5b8b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/builder/TreeItemVO.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.builder; - -import lombok.Data; - -@Data -public class TreeItemVO { - private Long parentId; - private String parentIdList; - private int level; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/DateFieldFormater.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/DateFieldFormater.java deleted file mode 100644 index 7aa3d97..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/DateFieldFormater.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.dataset; - - -import cc.smtweb.framework.core.util.DateUtil; - -public class DateFieldFormater extends FieldFormatter { - - public DateFieldFormater(String name) { - super(name); - } - - @Override - public String format(Object value) { - if (value instanceof Number) { - return DateUtil.formatDate(((Number) value).longValue()); - } - - return ""; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/DateTimeFieldFormater.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/DateTimeFieldFormater.java deleted file mode 100644 index e68f906..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/DateTimeFieldFormater.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.dataset; - - -import cc.smtweb.framework.core.util.DateUtil; - -public class DateTimeFieldFormater extends FieldFormatter { - - public DateTimeFieldFormater(String name) { - super(name); - } - - @Override - public String format(Object value) { - if (value instanceof Number) { - return DateUtil.formatDateTime(((Number) value).longValue()); - } - - return ""; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/FieldFormatTool.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/FieldFormatTool.java deleted file mode 100644 index 7778f73..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/FieldFormatTool.java +++ /dev/null @@ -1,42 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.dataset; - -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmField; -import org.apache.commons.lang3.StringUtils; - -/** - * 字段格式化工具 - * - * @author xkliu - */ -public class FieldFormatTool { - public static boolean needFormat(BpmField bpmField) { - return StringUtils.isNotBlank(bpmField.getDisplayFormat()); - } - - public static FieldFormatter buildFormatter(BpmField bpmField) { - - switch (bpmField.getType()) { - case BpmField.TYPE_DATE: - return new DateFieldFormater(bpmField.getName()); - case BpmField.TYPE_DATE_TIME: - return new DateTimeFieldFormater(bpmField.getName()); - default: - return new FieldFormatter(bpmField.getName()); - } - } - - public static void fixDisplayFormat(BpmField bpmField) { - if (StringUtils.isBlank(bpmField.getDisplayFormat())) { - switch (bpmField.getType()) { - case BpmField.TYPE_DATE: - bpmField.setDisplayFormat("yyyy-MM-dd"); - break; - case BpmField.TYPE_DATE_TIME: - bpmField.setDisplayFormat("yyyy-MM-dd HH:mm:ss"); - break; - default: - break; - } - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/FieldFormatter.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/FieldFormatter.java deleted file mode 100644 index 91a3ed9..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/dataset/FieldFormatter.java +++ /dev/null @@ -1,16 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.dataset; - -import lombok.Getter; - -public class FieldFormatter { - @Getter - private String name; - - FieldFormatter(String name) { - this.name = name; - } - - public String format(Object value) { - return value.toString(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/BpmPage.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/BpmPage.java deleted file mode 100644 index f073680..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/BpmPage.java +++ /dev/null @@ -1,43 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity; - -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmForm; -import lombok.Data; -import org.apache.commons.lang3.StringUtils; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -@Data -public class BpmPage implements Serializable { - private long id; - private String fullName; - private int modelType; - private boolean isDeploy = true; - private Boolean destroyOnClose; - // 数据集 - private List datasets = new ArrayList<>(); - // 界面 - private List forms = new ArrayList<>(); - - public BpmDataset findDatasetByName(String name) { - if (StringUtils.isNotBlank(name)) { - for (BpmDataset dataset : datasets) { - if (name.equals(dataset.getName())) { - return dataset; - } - } - } - - return null; - } - - public BpmDataset findMasterDataset() { - return datasets.get(0); - } - - public void addDataset(BpmDataset dataset) { - datasets.add(dataset); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/AbstractBpmFieldLookup.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/AbstractBpmFieldLookup.java deleted file mode 100644 index 59db0d9..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/AbstractBpmFieldLookup.java +++ /dev/null @@ -1,33 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import lombok.Getter; - -public abstract class AbstractBpmFieldLookup { - @Getter - private final String db; - - @Getter - private final String table; - - @Getter - private final boolean number; - - /** - * lookup对象类型 - * @return Lookup对象类型 - */ - public abstract int type(); - - public AbstractBpmFieldLookup(String dbName, String table, boolean isNumber) { - this.db = dbName; - this.table = table; - this.number = isNumber; - } - - public abstract MappingTypeEnum getMappingType(); - - public boolean isManyToMany() { - return MappingTypeEnum.manyToMany.equals(getMappingType()); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmDataset.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmDataset.java deleted file mode 100644 index a7214d6..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmDataset.java +++ /dev/null @@ -1,186 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import lombok.Data; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * BPM界面引擎后台执行用到的对象 - * @author xkliu - */ -@Data -public class BpmDataset { - public static final int DATA_MODEL_CARD = 1; - public static final int DATA_MODEL_LIST = 2; - public static final int DATA_MODEL_TREE = 3; - - private String id; - private String name; - private String database; - private String table; - /** 主键字段名 */ - private BpmField idField; - - private String fieldPrefix; - // 字段列表,name => UiField - private Map fields = new HashMap<>(); - // 是否只读 - private boolean readonly; - // 是否有统计字段 - private boolean useSummary; - // 是否有查找字段 - private boolean useLookup; - // 外键关联属性 - private AbstractBpmFieldLookup lookup; - // 与主表的映射关系 - private BpmMasterMapping masterMapping = new BpmMasterMapping(); - // 1:1 映射的从表 - private List oneToOneDataset; - // 数据模型 - private int dataModel; - - // 是否有级联数据集,TODO: 分离前台界面需要的参数 -// private boolean cascade; - - private String customApi; - - private boolean initData; - - private BpmDatasetSql sql; - - public void addField(BpmField bpmField) { - fields.put(bpmField.getName(), bpmField); - - String summary = bpmField.getSummary(); - if (StringUtils.isNotBlank(summary)) { - this.useSummary = true; - } - - if (bpmField.getLookup() != null) { - this.useLookup = true; - } - - if (bpmField.getRefType() == UiEnum.FieldRefType.ID) { - setIdField(bpmField); -// props.setIdField(bpmField.getName()); - } - } - - public BpmField addField(String fieldName, String name) { - return addField(fieldName, name, 0); - } - - public BpmField addField(String fieldName, String name, int refType) { - BpmField bpmField = null; - if (StringUtils.isNotBlank(fieldName)) { - bpmField = new BpmField(); - bpmField.setId(name); - bpmField.setFieldName(fieldName); - bpmField.setName(name); - bpmField.setRefType(refType); - this.addField(bpmField); - } - - return bpmField; - } - - public BpmField findFieldByName(String name) { - return fields.get(name); - } - - public BpmField findFieldById(String fieldId) { - return findFieldById(fieldId, false); - } - - public BpmField findFieldById(String fieldId, boolean findSlave) { - if (StringUtils.isNotBlank(fieldId)) { - for (BpmField field : fields.values()) { - if (fieldId.equals(field.getId())) { - return field; - } - } - } - - if(findSlave && this.oneToOneDataset != null) { - for (BpmDataset slave: this.oneToOneDataset) { - BpmField field = slave.findFieldById(fieldId); - if (field != null) { - return field; - } - } - } - - return null; - } - - public String fullName() { - return database + "." + table; - } - -// public String getFieldPrefix() { -// return props.getFieldPrefix(); -// } -// -// public String getId() { -// return props.getId(); -// } - -// public BpmField findFieldByRefType(int refType) { -// for (Map.Entry entry: fields.entrySet()) { -// BpmField bpmField = entry.getValue(); -// -// if (bpmField.getRefType() == refType) { -// return bpmField; -// } -// } -// -// return null; -// } - - public BpmField findFieldByFieldName(String fieldName) { - if (fieldName != null) { - for (Map.Entry entry : fields.entrySet()) { - BpmField bpmField = entry.getValue(); - - if (fieldName.equals(bpmField.getFieldName())) { - return bpmField; - } - } - } - - return null; - } - - public void addOneToOneDataset(BpmDataset slave) { - if (oneToOneDataset == null) { - oneToOneDataset = new ArrayList<>(); - } - - oneToOneDataset.add(slave); - } - -// public BpmDataset findById(String datasetId) { -// if (datasetId.equals(getProps().getId())) { -// return this; -// } -// -// if (this.oneToOneDataset != null) { -// for (BpmDataset slave: this.oneToOneDataset) { -// if (datasetId.equals(slave.getProps().getId())) { -// return slave; -// } -// } -// } -// -// return null; -// } - - public String readIdFieldName() { - return idField != null ? idField.getFieldName() : null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmDatasetSql.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmDatasetSql.java deleted file mode 100644 index 1bf0342..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmDatasetSql.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import lombok.Data; - -@Data -public class BpmDatasetSql { - private String select; - private String insert; - private String update; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmField.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmField.java deleted file mode 100644 index 7b7acd5..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmField.java +++ /dev/null @@ -1,51 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import lombok.Data; - -@Data -public class BpmField { - public static final String TYPE_DATE = "date"; - public static final String TYPE_DATE_TIME = "datetime"; -// /** ID */ -// public static final int REF_TYPE_ID = 1; -// /** 上级ID */ -// public static final int REF_TYPE_PARENT_ID = 2; -// /** CODE编码 */ -// public static final int REF_TYPE_CODE = 3; -// /** 显示顺序 */ -// public static final int REF_TYPE_ORDER = 11; -// /** 标题字段 */ -// public static final int REF_TYPE_TITLE = 21; -// /** 描述字段 */ -// public static final int REF_TYPE_REMARK = 22; - - private String id; - private String name; - private String label; - private String fieldName; - private String type; - private String summary; - private boolean required; - private boolean readonly; - private String validPatten; - private String validMessage; - private int refType; - private String displayFormat; - private AbstractBpmFieldLookup lookup; - private int filter; - private int filterType; - - public void setLookup(AbstractBpmFieldLookup lookup) { - this.lookup = lookup; - } - - // 判断是否多对多字段 - public boolean isLookupManyToMay() { - if (this.lookup != null) { - return MappingTypeEnum.manyToMany.equals(this.lookup.getMappingType()); - } - - return false; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldDict.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldDict.java deleted file mode 100644 index 8dfa259..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldDict.java +++ /dev/null @@ -1,26 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import lombok.Getter; - -@Getter -public class BpmFieldDict extends AbstractBpmFieldLookup { - private final String dictType; -// public static final int TYPE = 2; - - @Override - public int type() { - return UiEnum.FieldLookupType.DICT; - } - - @Override - public MappingTypeEnum getMappingType() { - return MappingTypeEnum.manyToOne; - } - - public BpmFieldDict(String dbName, String table, boolean isNumber, String dictType) { - super(dbName, table, isNumber); - this.dictType = dictType; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldFilter.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldFilter.java deleted file mode 100644 index 1cbf3e8..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldFilter.java +++ /dev/null @@ -1,11 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import lombok.Data; - -@Data -public class BpmFieldFilter { - private String field; - private int op; - private String keyword; - private boolean cascade; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldLookup.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldLookup.java deleted file mode 100644 index d4df3ec..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmFieldLookup.java +++ /dev/null @@ -1,50 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import lombok.Getter; -import lombok.Setter; - -import java.util.ArrayList; -import java.util.List; - -@Getter @Setter -public class BpmFieldLookup extends AbstractBpmFieldLookup { -// public static final int TYPE = 1; - private final MappingTypeEnum mappingType; - - private String keyField; - private String labelField; - private String parentField; - private String orderField; - private String middleTable; - private String middleIdField; - private String middleKeyField; - private String middleValueField; - - private List filters; - - @Override - public int type() { - return UiEnum.FieldLookupType.TABLE; - } - - public BpmFieldLookup(String dbName, String table, boolean isNumber, MappingTypeEnum mappingType) { - super(dbName, table, isNumber); - this.mappingType = mappingType; - } - - public void addFilter(String field, int op, String keyword, boolean cascade) { - if (filters == null) { - filters = new ArrayList<>(); - } - - BpmFieldFilter filter = new BpmFieldFilter(); - filter.setField(field); - filter.setKeyword(keyword); - filter.setOp(op); - filter.setCascade(cascade); - - filters.add(filter); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmMappingField.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmMappingField.java deleted file mode 100644 index 6a636ae..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmMappingField.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import lombok.Data; - -@Data -public class BpmMappingField { - private String master; - private String slave; - private String middle; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmMasterMapping.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmMasterMapping.java deleted file mode 100644 index ccfa225..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/BpmMasterMapping.java +++ /dev/null @@ -1,36 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import lombok.Data; - -import java.util.ArrayList; -import java.util.List; - -@Data -public class BpmMasterMapping { - // 映射到主表的类型 MappingTypeEnum - private MappingTypeEnum mappingType; - // 主表表名 - private String master; - // 中间表名 - private String middle; - // 映射字段列表 - private List mappingFields; - - public void add(String masterFieldName, String slaveFieldName, String middleFieldName) { - if (mappingFields == null) { - mappingFields = new ArrayList<>(); - } - - BpmMappingField linkField = new BpmMappingField(); - linkField.setMaster(masterFieldName); - linkField.setSlave(slaveFieldName); - linkField.setMiddle(middleFieldName); - - mappingFields.add(linkField); - } - - public boolean isOneToOne() { - return MappingTypeEnum.oneToOne.equals(mappingType); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/IBpmDatasetConst.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/IBpmDatasetConst.java deleted file mode 100644 index faf2c1d..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/dataset/IBpmDatasetConst.java +++ /dev/null @@ -1,78 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.dataset; - -/** 数据集常量 */ -public interface IBpmDatasetConst { - /** 数据模型类型 */ - int DATA_MODEL_CARD = 1; - int DATA_MODEL_LIST = 2; - int DATA_MODEL_TREE = 3; - int DATA_MODEL_MAX = 10; - - /** 表类型 -> 延迟加载 */ -// public static final int TABLE_TYPE_MASTER = 1; -// public static final int TABLE_TYPE_SLAVE = 2; -// public static final int TABLE_TYPE_LOOKUP = 3; - - String PN_ITEM_KEYWORD = "keyword"; - String PN_ITEM_FIELD = "field"; - String PN_ITEM_OP = "op"; - String PN_ITEM_CASCADE = "cascade"; -// -// private String id; // repeat -// private String name; // repeat -// private int tableType; // -> 可以移动 -// private String fieldPrefix; // repeat -// private int listModel; // repeat dataModel -// private String idField; // -> 可以移动 -// // 主表名 -// private String master; // repeat masterMapping -// // 是否级联过滤表 -// private Boolean cascade; // notuse 仅在生成界面时设置和使用 -// -// private String customApi; // -> 可以移动 -// /** 表单验证规则 */ -// private Map rules; // -> 移动到字段属性中了 -// -//// private Map apis; -// private Map events; // -> 可以移动 -// -//// public void addApi(FzApiVO api) { -//// if (apis == null) { -//// apis = new HashMap<>(); -//// } -//// -//// apis.put(api.getName(), api); -//// } -// -// public void addRule(String name, String type, Boolean required, String patten, String message) { -// BpmFieldValidator rule = new BpmFieldValidator(); -// boolean add = false; -// -// if (Boolean.TRUE.equals(required)) { -// rule.setRequired(Boolean.TRUE); -// add = true; -// } -// -// if (StringUtils.isNotBlank(type)) { -// rule.setType(type); -//// add = true; -//// } else { -//// rule.setType("string"); -// } -// -// if (StringUtils.isNotBlank(patten)) { -// rule.setPattern(patten); -// add = true; -// } -// -// rule.setMessage(message); -// -// if (add) { -// if (rules == null) { -// rules = new HashMap<>(); -// } -// -// rules.put(name, rule); -// } -// } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmForm.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmForm.java deleted file mode 100644 index 626f417..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmForm.java +++ /dev/null @@ -1,4 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.form; - -public class BpmForm extends BpmWidget { -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmWidget.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmWidget.java deleted file mode 100644 index dd6c80d..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmWidget.java +++ /dev/null @@ -1,75 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.form; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.engine.ui.entity.vo.widiget.UiControlDataVO; -import lombok.Data; -import org.apache.commons.lang3.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -/** - * 设计器的控件配置数据 - * @author xkliu - */ -@Data -public class BpmWidget { - private String type; - private String name; - private BpmWidgetLayout layout; - private SwMap props = new SwMap(); - private Map slots; - private Map events; - /** 前端响应变量,key和value值相同表示要生成前端变量 */ - private Map vars; - /** 子控件列表 */ - private BpmWidget[] children; - - public void addProp(String key, String value) { - props.put(key, value); - } - - public void addEvents(Map events) { - if (events != null && !events.isEmpty()) { - this.events = events; - } - } - - public void addProps(Map props) { - this.props.putAll(props); - } - - public void addVars(Map vars) { - if (vars != null && !vars.isEmpty()) { - for (Map.Entry entry: vars.entrySet()) { - String key = entry.getKey(); - String value = entry.getValue(); - - if (StringUtils.isNotBlank(value)) { - if (this.vars == null) { - this.vars = new HashMap<>(vars.size()); - } - - this.vars.put(key, value); - } - } - } - } - - public void addSlots(Map slots) { - if (slots != null && !slots.isEmpty()) { - this.slots = new HashMap<>(slots.size()); - slots.forEach((k, v) -> { - if (v.length > 0) { - this.slots.put(k, v); - } - }); - - if (this.slots.isEmpty()) { - this.slots = null; - } - } else { - this.slots = null; - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmWidgetLayout.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmWidgetLayout.java deleted file mode 100644 index 5b7ed01..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/entity/form/BpmWidgetLayout.java +++ /dev/null @@ -1,12 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.entity.form; - -import lombok.Data; - -@Data -public class BpmWidgetLayout { - private int col; - - public BpmWidgetLayout(int col) { - this.col = col; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/AbstractDatasetAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/AbstractDatasetAgent.java deleted file mode 100644 index 9cfc2bf..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/AbstractDatasetAgent.java +++ /dev/null @@ -1,204 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.bind.IBpmBeanConst; -import cc.smtweb.system.bpm.util.BeanUtil; - -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.List; - -public abstract class AbstractDatasetAgent implements IBpmBeanConst { - protected Class clazz; - protected boolean mapClass; - - public Class getBodyClass() { - return this.clazz; - } - - public void checkType(Class clazz) { - if (clazz == null) { - return; - } - - if (this.clazz == null) { - this.clazz = clazz; - this.mapClass = SwMap.class.equals(clazz); - return; - } - - if (!this.clazz.equals(clazz)) { - throw new BpmException("type " + this.clazz.getName() + " is not equals " + clazz.getName()); - } - } - -// private Object createBean(SwMap body) { -// if (!this.mapClass) { -// Object bean; -// try { -// bean = clazz.newInstance(); -// } catch (InstantiationException | IllegalAccessException e) { -// throw new BpmException(e); -// } -// -// BeanUtil.mapToBean(body, bean); -// return bean; -// } else { -// return body; -// } -// } - - private void mapToBean(SwMap body, Object bean) { - if (!this.mapClass && bean != null) { - BeanUtil.mapToBean(body, bean); - } - } - - private void beanToMap(Object bean, SwMap body) { - if (!this.mapClass && bean != null) { - BeanUtil.beanToMap(bean, body); - } - } - - private List createListBean(List bodyList) { - if (!this.mapClass) { - List beans = new ArrayList<>(bodyList.size()); - try { - for (SwMap body: bodyList) { - Object bean = clazz.newInstance(); - BeanUtil.mapToBean(body, bean); - beans.add(bean); - } - } catch (InstantiationException | IllegalAccessException e) { - throw new BpmException(e); - } - return beans; - } else { - return bodyList; - } - } - - private List createListMap(List beans) { - List bodyList = null; - if (beans != null) { - if (!this.mapClass) { - bodyList = new ArrayList<>(beans.size()); - for (Object bean: beans) { - SwMap body = new SwMap(); - BeanUtil.beanToMap(bean, body); - bodyList.add(body); - } - } else { - return (List)beans; - } - } - - return bodyList; - } - -// public static Class resolveArgClass(Class type, Class subType, int index) { -// Class clazz = null; -// if (type != null) { -// Class[] typeArgs = TypeResolver.resolveRawArguments(type, subType); -// if (typeArgs.length > index) { -// clazz = (Class) typeArgs[index]; -// } else { -// throw new BpmException("resolveRawArguments error " + type.getName() + "," + subType.getName()); -// } -// } -// return clazz; -// } - - protected void saveAttrRowMap(BpmPageContext pageContext, SwMap value) { - HttpServletRequest request = pageContext.getRequest(); - if (value != null) { - request.setAttribute(BEAN_ROW_MAP, value); - } else { - request.removeAttribute(BEAN_ROW_MAP); - } - request.removeAttribute(BEAN_ROW_BEAN); - } - - protected void saveAttrRow(BpmPageContext pageContext, Object value) { - if (this.mapClass) { - saveAttrRowMap(pageContext, (SwMap)value); - } else { - HttpServletRequest request = pageContext.getRequest(); - if (value != null) { - request.setAttribute(BEAN_ROW_BEAN, value); - } else { - request.removeAttribute(BEAN_ROW_BEAN); - } - request.removeAttribute(BEAN_ROW_MAP); - } - } - - protected SwMap loadAttrRowMap(BpmPageContext pageContext) { - HttpServletRequest request = pageContext.getRequest(); - - Object map = request.getAttribute(BEAN_ROW_MAP); - if (map != null) { - return (SwMap)map; - } - - Object bean = request.getAttribute(BEAN_ROW_BEAN); - if (bean != null) { - SwMap body = new SwMap(); - beanToMap(bean, body); - return body; - } - - return null; - } - - protected void saveAttr(BpmPageContext pageContext, String key, Object value) { - HttpServletRequest request = pageContext.getRequest(); - if (value != null) { - request.setAttribute(key, value); - } else { - request.removeAttribute(key); - } - } - - protected List loadAttrRowsMap(BpmPageContext pageContext) { - HttpServletRequest request = pageContext.getRequest(); - - Object map = request.getAttribute(BEAN_ROWS_MAP); - if (map != null) { - return (List)map; - } - - Object bean = request.getAttribute(BEAN_ROWS_BEAN); - if (bean != null) { - return createListMap((List)bean); - } - - return null; - } - - protected void saveAttrRows(BpmPageContext pageContext, List value) { - if (this.mapClass) { - saveAttrRowsMap(pageContext, (List)value); - } else { - HttpServletRequest request = pageContext.getRequest(); - if (value != null) { - request.setAttribute(BEAN_ROWS_BEAN, value); - } else { - request.removeAttribute(BEAN_ROWS_BEAN); - } - request.removeAttribute(BEAN_ROW_MAP); - } - } - - protected void saveAttrRowsMap(BpmPageContext pageContext, List value) { - HttpServletRequest request = pageContext.getRequest(); - if (value != null) { - request.setAttribute(BEAN_ROWS_MAP, value); - } else { - request.removeAttribute(BEAN_ROWS_MAP); - } - request.removeAttribute(BEAN_ROWS_BEAN); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/AbstractDatasetService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/AbstractDatasetService.java deleted file mode 100644 index f439ee1..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/AbstractDatasetService.java +++ /dev/null @@ -1,37 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service; - -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.spring.dao.DatasetConfigDao; - -/** - * 基于数据集的服务 - * @author xkliu - */ -public abstract class AbstractDatasetService { - @SwParam - protected DatasetConfigDao datasetConfigDao; - - @SwParam - protected DbEngine dbEngine; - - // 非服务继承时设置 - protected void init(DbEngine dbEngine, DatasetConfigDao datasetConfigDao) { - this.dbEngine = dbEngine; - this.datasetConfigDao = datasetConfigDao; - } - - /** - * 初始化事件调度器中的事件 - * @param handler 事件调度器 - */ -// protected abstract void setup(T handler); -// -// /** -// * 加载对应的页面上下问,包括数据集 -// * @param body 页面参数 -// * @param userSession 用户会话 -// * @return 返回数据集对象 -// */ -// protected abstract PageContext context(SwMap body, UserSession userSession); -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/DatasetApiInvoker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/DatasetApiInvoker.java deleted file mode 100644 index d3cb86c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/DatasetApiInvoker.java +++ /dev/null @@ -1,47 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service; - -import cc.smtweb.framework.core.mvc.controller.access.IMethodAccess; -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; - -/** - * Bpm事件执行器,执行@BpmEvent注解的函数 - * @author xkliu - */ -public class DatasetApiInvoker { - private IMethodAccess methodAccess; - - public DatasetApiInvoker(IMethodAccess methodAccess) { - this.methodAccess = methodAccess; - } - - public Object invoke(BpmPageContext pageContext) { - try { - // TODO 检测返回值 - return methodAccess.invoke(pageContext.getContext(), pageContext.getParams(), pageContext.getPostBody(), pageContext.getRequest()); - } catch (Exception e) { - throw new BpmException(e); - } - } - - public Object invoke(BpmPageContext pageContext, Object bean) { - try { - // TODO bean放入上下文 - return methodAccess.invoke(pageContext.getContext(), pageContext.getParams(), pageContext.getPostBody(), pageContext.getRequest()); - } catch (Exception e) { - throw new BpmException(e); - } - } - - public Class getReturnType() { - return methodAccess.getReturnType(); - } - - public Class getBodyType() { - return methodAccess.getBodyType(); - } - - public Class getAttrType(String paramName) { - return methodAccess.getAttrType(paramName); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/DatasetWorker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/DatasetWorker.java deleted file mode 100644 index f011b50..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/DatasetWorker.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service; - -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; - -public abstract class DatasetWorker { - protected BpmPageContext pageContext; - - public DatasetWorker(BpmPageContext pageContext) { - this.pageContext = pageContext; - } - - public BpmDataset getDataset() { - return pageContext.getDataset(); - } - - public BpmPageContext getPageContext() { - return pageContext; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/IDatasetHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/IDatasetHandler.java deleted file mode 100644 index 61339b5..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/IDatasetHandler.java +++ /dev/null @@ -1,13 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service; - -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; - -/** - * 数据集事件调度 - * @author xkliu - */ -public interface IDatasetHandler { - BpmDataset getDataset(); - BpmPageContext getPageContext(); -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/AbstractDatasetCardService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/AbstractDatasetCardService.java deleted file mode 100644 index a42deac..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/AbstractDatasetCardService.java +++ /dev/null @@ -1,159 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.card; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmKeyValue; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.dataset.FieldFormatTool; -import cc.smtweb.system.bpm.core.ui.dataset.FieldFormatter; -import cc.smtweb.system.bpm.core.ui.entity.dataset.*; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetService; -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import org.apache.commons.lang3.StringUtils; - -import java.util.Map; - -/** - * card数据模型处理服务抽象类 - * @author xkliu - */ -public abstract class AbstractDatasetCardService extends AbstractDatasetService { - /** - * 创建卡片数据集load处理器 - * @param pageContext BPM页面上小文 - * @return 列表数据集时间处理器 - */ - protected abstract DatasetCardWorker createCardLoadHandler(BpmPageContext pageContext); - - /** - * 创建卡片数据集save处理器 - * @param pageContext BPM页面上小文 - * @return 列表数据集时间处理器 - */ - protected abstract DatasetCardWorker createCardSaveHandler(BpmPageContext pageContext); - - /** - * 创建卡片数据集remove处理器 - * @param pageContext BPM页面上小文 - * @return 列表数据集时间处理器 - */ - protected abstract DatasetCardWorker createCardRemoveHandler(BpmPageContext pageContext); - - /** - * 初始化Load事件调度器中的事件 - * @param bpmPageContext Page上下文 - */ -// protected abstract void setupRemove(IDatasetRemoveHandler handler); - - public R load(BpmPageContext bpmPageContext) { - DatasetCardWorker handler = createCardLoadHandler(bpmPageContext); -// setupLoad(handler); - BpmDataset dataset = handler.getDataset(); - - // 读取主表数据 - long id = bpmPageContext.getParamId(); - SwMap result = handler.load(dataset, id); - - // 读取关联表数据 - if (result != null && dataset.isUseLookup()) { - for (Map.Entry entry: dataset.getFields().entrySet()) { - String uiKey = entry.getKey(); - BpmField bpmField = entry.getValue(); - - AbstractBpmFieldLookup lookup = bpmField.getLookup(); - if (lookup != null) { - // 读取查找表数据 select in, FieldId - // 生成ID列表查询条件 - // uiField.getId()); - Object lookupKey = result.get(uiKey); - - if (lookupKey != null) { - BpmKeyValue lookupValue = null; - if (lookup.type() == UiEnum.FieldLookupType.TABLE) { - lookupValue = handler.loadLookup(dataset, (BpmFieldLookup) lookup, lookupKey); - } else if (lookup.type() == UiEnum.FieldLookupType.DICT) { - lookupValue = loadDict((BpmFieldDict) lookup, lookupKey); - } - - if (lookupValue != null) { - String textKey = uiKey + IParamConst.LOOKUP_TEXT; - - if (lookupValue.getOptValue() != null) { - result.put(textKey, lookupValue.getOptValue()); - } - - boolean isManyToMany = lookup.getMappingType().equals(MappingTypeEnum.manyToMany); - if (isManyToMany) { - result.put(uiKey, lookupValue.getOptKey()); - result.put(uiKey + IParamConst.LOOKUP_KEY, lookupValue.getOptKey()); - } - } - } - } else { - // 格式化字段显示 - FieldFormatter fieldFormatter = FieldFormatTool.buildFormatter(bpmField); - if (fieldFormatter != null) { - Object value = result.get(fieldFormatter.getName()); - if (value != null) { - result.put(fieldFormatter.getName() + IParamConst.LOOKUP_TEXT, fieldFormatter.format(value)); - } - } - } - } - } - - return R.success(result); - } - - private BpmKeyValue loadDict(BpmFieldDict lookup, Object lookupKey) { - /*if (lookupKey != null) { - // 字典数据 - String key = lookupKey.toString(); - DictPO dictPo = dbCache.dictEntity(DictPO.class, lookup.getDictType(), key); - - if (dictPo != null) { - BpmKeyValue item = new BpmKeyValue(); - item.setOptKey(key); - item.setOptValue(dictPo.getDictLabel()); - - return item; - } - }*/ - - return null; - } - - public R save(BpmPageContext bpmPageContext) { - DatasetCardWorker handler = createCardSaveHandler(bpmPageContext); -// setupSave(handler); - Long id = handler.save(); - SwMap body = bpmPageContext.getBody(); - if (id != null) { - body.put("id", id); - } - return R.success(body); - } - - public R remove(BpmPageContext bpmPageContext) { - DatasetCardWorker handler = createCardRemoveHandler(bpmPageContext); -// setupRemove(handler); - BpmDataset dataset = handler.getDataset(); - - long dataId = bpmPageContext.getParamId(); - - int data = 0; - if (dataId != 0) { - data = handler.remove(dataset, dataId); - } else { - String dataIds = bpmPageContext.getBody().readString(IParamConst.PARAMS_IDS); - - if (StringUtils.isNotBlank(dataIds)) { - data = handler.removeList(dataset, dataIds); - } - } - - return R.success(data); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/DatasetCardAgentWorker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/DatasetCardAgentWorker.java deleted file mode 100644 index ec7b274..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/DatasetCardAgentWorker.java +++ /dev/null @@ -1,86 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.card; - -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.bind.IBpmBeanConst; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import cc.smtweb.system.bpm.core.ui.service.card.agent.DatasetLoadAgent; -import cc.smtweb.system.bpm.core.ui.service.card.agent.DatasetRemoveAgent; -import cc.smtweb.system.bpm.core.ui.service.card.agent.DatasetSaveAgent; - -public class DatasetCardAgentWorker extends DatasetCardWorker { - private DatasetSaveAgent datasetSaveAgent; - private DatasetLoadAgent datasetLoadAgent; - private DatasetRemoveAgent datasetRemoveAgent; - - public DatasetCardAgentWorker(BpmPageContext ctx) { - super(ctx); - } - - public void onBeforeSave(DatasetApiInvoker func) { - loadDatasetSaveAgent(func.getBodyType()).setBeforeSave(func); - } - - public void onAfterSave(DatasetApiInvoker func) { - loadDatasetSaveAgent(func.getBodyType()).setAfterSave(func); - } - - public void onSave(DatasetApiInvoker func) { - loadDatasetSaveAgent(func.getBodyType()).setSave(func); - } - - private DatasetSaveAgent loadDatasetSaveAgent(Class clazz) { - if (datasetSaveAgent == null) { - datasetSaveAgent = new DatasetSaveAgent(saveFunc); - this.handleSave(datasetSaveAgent::doSave); - } - - datasetSaveAgent.checkType(clazz); - - return datasetSaveAgent; - } - - public void onBeforeLoad(DatasetApiInvoker func) { - loadDatasetLoadAgent(null).setBeforeLoad(func); - } - - public void onLoad(DatasetApiInvoker func) { - loadDatasetLoadAgent(func.getReturnType()).setLoad(func); - } - - public void onAfterLoad(DatasetApiInvoker func) { - loadDatasetLoadAgent(func.getAttrType(IBpmBeanConst.ATTRIBUTE_ROW)).setAfterLoad(func); - } - - private DatasetLoadAgent loadDatasetLoadAgent(Class clazz) { - if (datasetLoadAgent == null) { - datasetLoadAgent = new DatasetLoadAgent(loadFunc); - this.handleLoad(datasetLoadAgent::doLoad); - } - - datasetLoadAgent.checkType(clazz); - - return datasetLoadAgent; - } - - public void onBeforeRemove(DatasetApiInvoker func) { - loadDatasetRemoveAgent().setBeforeRemove(func); - } - - public void onAfterRemove(DatasetApiInvoker func) { - loadDatasetRemoveAgent().setAfterRemove(func); - } - - public void onRemove(DatasetApiInvoker func) { - loadDatasetRemoveAgent().setRemove(func); - } - - private DatasetRemoveAgent loadDatasetRemoveAgent() { - if (datasetRemoveAgent == null) { - datasetRemoveAgent = new DatasetRemoveAgent(removeFunc); - this.handleRemove(datasetRemoveAgent::doRemove); - this.handleRemoveList(datasetRemoveAgent::doRemove); - } - - return datasetRemoveAgent; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/DatasetCardWorker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/DatasetCardWorker.java deleted file mode 100644 index 222f1e7..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/DatasetCardWorker.java +++ /dev/null @@ -1,71 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.card; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmKeyValue; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldLookup; -import cc.smtweb.system.bpm.core.ui.service.DatasetWorker; - -import java.util.function.BiFunction; -import java.util.function.Function; - -public class DatasetCardWorker extends DatasetWorker { - protected Function loadFunc; - protected Function saveFunc; - protected Function removeFunc; - protected Function removeListFunc; - protected BiFunction loadLookupFunc; - - public DatasetCardWorker(BpmPageContext ctx) { - super(ctx); - } - - public void handleLoad(Function loadFunc) { - this.loadFunc = loadFunc; - } - - public void handleLoadLookup(BiFunction loadLookupFunc) { - this.loadLookupFunc = loadLookupFunc; - } - - public void handleSave(Function saveFunc) { - this.saveFunc = saveFunc; - } - - public void handleRemove(Function removeFunc) { - this.removeFunc = removeFunc; - } - - public void handleRemoveList(Function removeListFunc) { - this.removeListFunc = removeListFunc; - } - - public SwMap load(BpmDataset dataset, long id) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(null); - return loadFunc.apply(pageContext); - } - - public BpmKeyValue loadLookup(BpmDataset dataset, BpmFieldLookup lookup, Object lookupKey) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(lookup); - return loadLookupFunc.apply(pageContext, lookupKey); - } - - public Long save() { - return saveFunc.apply(pageContext); - } - - public int remove(BpmDataset dataset, long dataId) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(null); - return removeFunc.apply(pageContext); - } - - public int removeList(BpmDataset dataset, String dataIds) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(null); - return removeListFunc.apply(pageContext); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetLoadAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetLoadAgent.java deleted file mode 100644 index 233cc16..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetLoadAgent.java +++ /dev/null @@ -1,48 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.card.agent; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetAgent; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import lombok.Setter; - -import java.util.function.Function; - -/** - * Card数据集读取执行代理,调用@BpmEvent的事件 - * @author xkliu - */ -public class DatasetLoadAgent extends AbstractDatasetAgent { - @Setter - private DatasetApiInvoker beforeLoad; - @Setter - private DatasetApiInvoker afterLoad; - @Setter - private DatasetApiInvoker load; - private final Function defaultLoadFunc; - - public DatasetLoadAgent(Function loadFunc) { - this.defaultLoadFunc = loadFunc; - } - - public SwMap doLoad(BpmPageContext pageContext) { - // bean 处理 - if (beforeLoad != null) { - beforeLoad.invoke(pageContext); - } - - if (this.load != null) { - Object bean = this.load.invoke(pageContext); - saveAttrRow(pageContext, bean); - } else { - SwMap body = this.defaultLoadFunc.apply(pageContext); - saveAttrRowMap(pageContext, body); - } - - if (afterLoad != null) { - afterLoad.invoke(pageContext); - } - - return loadAttrRowMap(pageContext); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetRemoveAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetRemoveAgent.java deleted file mode 100644 index a2b1055..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetRemoveAgent.java +++ /dev/null @@ -1,69 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.card.agent; - -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetAgent; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import lombok.Setter; -import org.apache.commons.lang3.StringUtils; - -import java.util.function.Function; - -/** - * card数据集删除方法代理执行,调用@BpmEvent的事件 - * @author xkliu - */ -public class DatasetRemoveAgent extends AbstractDatasetAgent { - @Setter - private DatasetApiInvoker beforeRemove; - @Setter - private DatasetApiInvoker afterRemove; - @Setter - private DatasetApiInvoker remove; - - private final Function defaultRemoveFunc; - - public DatasetRemoveAgent(Function defaultRemoveFunc) { - this.defaultRemoveFunc = defaultRemoveFunc; - } - - public Integer doRemove(BpmPageContext pageContext) { - Integer result = null; - Long[] ids; - String dataIds = pageContext.getBody().readString(IParamConst.PARAMS_IDS); - if (StringUtils.isNotBlank(dataIds)) { - ids = parse(dataIds); - } else { - ids = new Long[]{pageContext.getParamId()}; - } - - saveAttr(pageContext, "ids", ids); - - // bean 处理 - if (beforeRemove != null) { - beforeRemove.invoke(pageContext); - } - - if (this.remove != null) { - result = (Integer)this.remove.invoke(pageContext); - } else { - result = this.defaultRemoveFunc.apply(pageContext); - } - - if (afterRemove != null) { - afterRemove.invoke(pageContext); - } - - return result; - } - - private Long[] parse(String ids) { - String[] ary = ids.split(","); - Long[] result = new Long[ary.length]; - for (int i = 0; i < result.length; i++) { - result[i] = Long.valueOf(ary[i]); - } - - return result; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetSaveAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetSaveAgent.java deleted file mode 100644 index bf322f2..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/card/agent/DatasetSaveAgent.java +++ /dev/null @@ -1,52 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.card.agent; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetAgent; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import lombok.Setter; - -import java.util.function.Function; - -/** - * card数据集保存方法代理执行,调用@BpmEvent的事件 - * @author xkliu - */ -public class DatasetSaveAgent extends AbstractDatasetAgent { - @Setter - private DatasetApiInvoker beforeSave; - @Setter - private DatasetApiInvoker afterSave; - @Setter - private DatasetApiInvoker save; - private final Function defaultSaveFunc; - - public DatasetSaveAgent(Function defaultSaveFunc) { - this.defaultSaveFunc = defaultSaveFunc; - } - - public Long doSave(BpmPageContext pageContext) { - SwMap body = pageContext.getBody(); - saveAttrRowMap(pageContext, body); - // bean 处理 - if (beforeSave != null) { - beforeSave.invoke(pageContext); - } - - Long result; - if (this.save != null) { - result = (Long)this.save.invoke(pageContext); - } else { - result = this.defaultSaveFunc.apply(pageContext); - } - - if (afterSave != null) { - afterSave.invoke(pageContext); - } - - return result; - } - - - -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/AbstractDatasetListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/AbstractDatasetListService.java deleted file mode 100644 index 10a9d38..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/AbstractDatasetListService.java +++ /dev/null @@ -1,216 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.list; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmListData; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.dataset.FieldFormatTool; -import cc.smtweb.system.bpm.core.ui.dataset.FieldFormatter; -import cc.smtweb.system.bpm.core.ui.entity.dataset.*; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetService; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; - -import java.util.*; - -/** - * 列表数据集抽象类 - * @author xkliu - */ -public abstract class AbstractDatasetListService extends AbstractDatasetService { - /** - * 创建列表数据集ListPart处理器 - * @param pageContext 页面上下文参数 - * @return 列表数据集处理器 - */ - protected abstract DatasetListWorker createListPartHandler(BpmPageContext pageContext); - /** - * 创建列表数据集ListPart处理器 - * @param pageContext 页面上下文参数 - * @return 列表数据集处理器 - */ - protected abstract DatasetListWorker createListAllHandler(BpmPageContext pageContext); - - public R list(BpmPageContext pageContext) { - DatasetListWorker handler = createListPartHandler(pageContext); -// setupListPart(handler); - BpmListData data = doList(handler, false); - return R.success(data); - } - - private BpmListData doList(DatasetListWorker handler, boolean listAll) { - BpmDataset dataset = handler.getDataset(); - -// IDynFormList dynFormList = uiPage.isDelpoy() ? dynFormTableList : dynFormJsonList; - List list = null; - boolean loadCount = false; - - AbstractBpmFieldLookup lookup = dataset.getLookup(); - if (lookup != null) { - // 读取字典表 - if (lookup.type() == UiEnum.FieldLookupType.DICT) { - BpmFieldDict fieldDict = (BpmFieldDict) lookup; - // 字典数据 - /*Map dictMap = dbCache.dictMap(DictPO.class, fieldDict.getDictType()); - - if (dictMap != null) { - List dictList = new ArrayList<>(dictMap.size()); - - for (DictPO dictPo : dictMap.values()) { - SwMap item = new SwMap(); - - item.put(IParamConst.OPTION_LABEL, dictPo.getDictLabel()); - if (lookup.isNumber()) { - item.put(IParamConst.OPTION_KEY, Integer.parseInt(dictPo.getDictCode())); - } else { - item.put(IParamConst.OPTION_KEY, dictPo.getDictCode()); - } - - dictList.add(item); - } - - list = dictList; - }*/ - } else if (lookup.type() == UiEnum.FieldLookupType.TABLE) { - list = handler.listAll(dataset, (BpmFieldLookup)lookup); - } - } else { - // TODO 减少无需要显示的字段,同时减少lookup - if (listAll) { - list = handler.listAll(dataset, null); - } else { - list = handler.list(dataset); - if (list != null) { - if (dataset.isUseSummary()) { - loadCount = true; - } else { - int limit = handler.getPageContext().getBody().readInt(IParamConst.PARAM_PAGE_SIZE, IParamConst.PAGE_DEFAULT_SIZE); - if (list.size() >= limit) { - loadCount = true; - } - } - } - } - - // 统一返回列表数据 data[datasetId].list.data - if (list != null) { - // lookupField 查询 - if (!list.isEmpty()) { - listLookup(handler, dataset, list); - - if (dataset.getOneToOneDataset() != null) { - for (BpmDataset slave : dataset.getOneToOneDataset()) { - listLookup(handler, slave, list); - } - } - } - } - } - - // TODO -1表示需要异步获取count - - return BpmListData.create(list, loadCount); - } - - private Map listDict(BpmFieldDict lookup, Set ids) { - // 字典数据 - /*Map dictMap = dbCache.dictMap(DictPO.class, lookup.getDictType()); - - if (dictMap != null) { - Map result = new HashMap<>(ids.size()); - - for (String id : ids) { - DictPO dictPo = dictMap.get(id); - - if (dictPo != null) { - result.put(id, dictPo.getDictLabel()); - } - } - - return result; - }*/ - - return null; - } - - private void listLookup(DatasetListWorker context, BpmDataset dataset, List list) { - List fieldFormatters = null; - - // 查找lookup表数据,并初始化格式化器 - for (BpmField bpmField : dataset.getFields().values()) { - AbstractBpmFieldLookup lookup = bpmField.getLookup(); - if (lookup != null) { - String uiFieldName = bpmField.getName(); - // TODO 处理N:N非ID字段情况 - if (bpmField == dataset.getIdField()) { - uiFieldName = IParamConst.PARAM_ID; - } - - // 读取查找表数据 - Set keys = new HashSet<>(); - for (SwMap item : list) { - Object key = item.get(uiFieldName); - if (key != null) { - keys.add(key.toString()); - } - } - - if (!keys.isEmpty()) { - Map lookValues = null; - if (lookup.type() == UiEnum.FieldLookupType.TABLE) { - lookValues = context.listLookup(dataset, (BpmFieldLookup)lookup, keys); - } else if (lookup.type() == UiEnum.FieldLookupType.DICT) { - lookValues = listDict((BpmFieldDict) lookup, keys); - } - - if (lookValues != null) { - String textKey = bpmField.getName() + IParamConst.LOOKUP_TEXT; - for (SwMap item : list) { - Object key = item.get(uiFieldName); - if (key != null) { - String value = lookValues.get(key.toString()); - if (value != null) { - item.put(textKey, value); - } - } - } - } - } - } else if(FieldFormatTool.needFormat(bpmField)) { - if (fieldFormatters == null) { - fieldFormatters = new ArrayList<>(); - } - - fieldFormatters.add(FieldFormatTool.buildFormatter(bpmField)); - } - } - - // 格式化字段显示 - if (fieldFormatters != null) { - for (SwMap item : list) { - for (FieldFormatter fieldFormatter: fieldFormatters) { - Object value = item.get(fieldFormatter.getName()); - if (value != null) { - item.put(fieldFormatter.getName() + IParamConst.LOOKUP_TEXT, fieldFormatter.format(value)); - } - } - } - } - } - - public R count(BpmPageContext pageContext) { - DatasetListWorker handler = createListPartHandler(pageContext); -// setupListPart(handler); - BpmDataset dataset = handler.getDataset(); - - SwMap data = handler.count(dataset); - return R.success(data); - } - - public R listAll(BpmPageContext pageContext) { - DatasetListWorker handler = createListAllHandler(pageContext); -// setupListAll(handler); - BpmListData data = doList(handler, true); - return R.success(data); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/DatasetListAgentWorker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/DatasetListAgentWorker.java deleted file mode 100644 index 2a0d92a..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/DatasetListAgentWorker.java +++ /dev/null @@ -1,79 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.list; - -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.bind.IBpmBeanConst; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import cc.smtweb.system.bpm.core.ui.service.list.agent.DatasetCountAgent; -import cc.smtweb.system.bpm.core.ui.service.list.agent.DatasetListAgent; - -public class DatasetListAgentWorker extends DatasetListWorker { - private DatasetListAgent listAllAgent; - private DatasetListAgent listPartAgent; - private DatasetCountAgent countAgent; - - public DatasetListAgentWorker(BpmPageContext pageContext) { - super(pageContext); - } - - private DatasetListAgent loadListAllAgent(Class clazz) { - if (listAllAgent == null) { - listAllAgent = new DatasetListAgent(listAllFunc); - this.handleListAll(listAllAgent::doList); - } - - listAllAgent.checkType(clazz); - - return listAllAgent; - } - - private DatasetListAgent loadListPartAgent(Class clazz) { - if (listPartAgent == null) { - listPartAgent = new DatasetListAgent(listFunc); - this.handleListPart(listPartAgent::doList); - } - - listPartAgent.checkType(clazz); - - return listPartAgent; - } - - private DatasetCountAgent loadCountAgent(Class clazz) { - if (countAgent == null) { - countAgent = new DatasetCountAgent(countFunc); - this.handleCount(countAgent::doCount); - } - - countAgent.checkType(clazz); - return countAgent; - } - - public void onBeforeList(DatasetApiInvoker beforeFunc) { - loadListAllAgent(beforeFunc.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setBeforeList(beforeFunc); - loadListPartAgent(beforeFunc.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setBeforeList(beforeFunc); - } - - public void onListAll(DatasetApiInvoker listAllFunc) { - loadListAllAgent(listAllFunc.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setList(listAllFunc); - } - - public void onAfterList(DatasetApiInvoker afterFunc) { - loadListAllAgent(afterFunc.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setAfterList(afterFunc); - loadListPartAgent(afterFunc.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setAfterList(afterFunc); - } - - public void onListPart(DatasetApiInvoker listFunc) { - loadListPartAgent(listFunc.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setList(listFunc); - } - - public void onBeforeCount(DatasetApiInvoker beforeFunc) { - loadCountAgent(null).setBeforeCount(beforeFunc); - } - - public void onAfterCount(DatasetApiInvoker afterFunc) { - loadCountAgent(null).setAfterCount(afterFunc); - } - - public void onCount(DatasetApiInvoker countFunc) { - loadCountAgent(null).setCount(countFunc); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/DatasetListWorker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/DatasetListWorker.java deleted file mode 100644 index 7ccb420..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/DatasetListWorker.java +++ /dev/null @@ -1,64 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.list; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmMapData; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldLookup; -import cc.smtweb.system.bpm.core.ui.service.DatasetWorker; - -import java.util.List; -import java.util.Set; -import java.util.function.BiFunction; -import java.util.function.Function; - -public class DatasetListWorker extends DatasetWorker { - protected Function> listFunc; - protected Function> listAllFunc; - protected BiFunction, BpmMapData> listLookupFunc; - protected Function countFunc; - - public DatasetListWorker(BpmPageContext body) { - super(body); - } - - public void handleListPart(Function> listFunc) { - this.listFunc = listFunc; - } - - public void handleCount(Function countFunc) { - this.countFunc = countFunc; - } - - public void handleListAll(Function> listAllFunc) { - this.listAllFunc = listAllFunc; - } - - public void handleListLookup(BiFunction, BpmMapData> listLookupFunc) { - this.listLookupFunc = listLookupFunc; - } - - public List list(BpmDataset dataset) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(null); - return this.listFunc.apply(pageContext); - } - - public SwMap count(BpmDataset dataset) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(null); - return this.countFunc.apply(pageContext); - } - - public List listAll(BpmDataset dataset, BpmFieldLookup lookup) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(lookup); - return this.listAllFunc.apply(pageContext); - } - - public BpmMapData listLookup(BpmDataset dataset, BpmFieldLookup lookup, Set idSet) { - pageContext.setDataset(dataset); - pageContext.setFieldLookup(lookup); - return this.listLookupFunc.apply(pageContext, idSet); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/agent/DatasetCountAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/agent/DatasetCountAgent.java deleted file mode 100644 index 88d80c0..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/agent/DatasetCountAgent.java +++ /dev/null @@ -1,48 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.list.agent; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetAgent; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import lombok.Setter; - -import java.util.function.Function; -/** - * list数据集统计方法代理执行,调用@BpmEvent的事件 - * @author xkliu - */ -public class DatasetCountAgent extends AbstractDatasetAgent { - @Setter - private DatasetApiInvoker beforeCount; - @Setter - private DatasetApiInvoker afterCount; - @Setter - private DatasetApiInvoker count; - - private final Function defaultCountFunc; - - public DatasetCountAgent(Function countFunc) { - this.defaultCountFunc = countFunc; - } - - public SwMap doCount(BpmPageContext pageContext) { - // bean 处理 - if (beforeCount != null) { - beforeCount.invoke(pageContext); - } - - if (this.count != null) { - Object bean = this.count.invoke(pageContext); - saveAttrRow(pageContext, bean); - } else { - SwMap body = this.defaultCountFunc.apply(pageContext); - saveAttrRowMap(pageContext, body); - } - - if (afterCount != null) { - afterCount.invoke(pageContext); - } - - return loadAttrRowMap(pageContext); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/agent/DatasetListAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/agent/DatasetListAgent.java deleted file mode 100644 index 25170bd..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/list/agent/DatasetListAgent.java +++ /dev/null @@ -1,54 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.list.agent; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetAgent; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import lombok.Setter; - -import java.util.List; -import java.util.function.Function; - -/** - * card数据集读取列表方法代理执行,调用@BpmEvent的事件 - * @author xkliu - */ -public class DatasetListAgent extends AbstractDatasetAgent { - @Setter - private DatasetApiInvoker beforeList; - @Setter - private DatasetApiInvoker list; - @Setter - private DatasetApiInvoker afterList; - - private final Function> defaultListFunc; - - public DatasetListAgent(Function> listFunc) { - this.defaultListFunc = listFunc; - } - - public List doList(BpmPageContext pageContext) { - // bean 处理 - if (beforeList != null) { - beforeList.invoke(pageContext); - } - - if (this.list != null) { - List beans = (List)this.list.invoke(pageContext); - saveAttrRows(pageContext, beans); - - if (afterList != null) { - afterList.invoke(pageContext); - } - } else { - List map = this.defaultListFunc.apply(pageContext); - saveAttrRowsMap(pageContext, map); - - if (afterList != null) { - afterList.invoke(pageContext); - } - } - - return loadAttrRowsMap(pageContext); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/AbstractDatasetTreeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/AbstractDatasetTreeService.java deleted file mode 100644 index b4742c5..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/AbstractDatasetTreeService.java +++ /dev/null @@ -1,43 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.tree; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetService; - -import java.util.List; - -public abstract class AbstractDatasetTreeService extends AbstractDatasetService { - /** - * 创建树数据集treeAll处理器 - * @param pageContext 页面上下文参数 - * @return 树数据集处理器 - */ - protected abstract DatasetTreeWorker createTreeAllHandler(BpmPageContext pageContext); - /** - * 创建树数据集treeMove处理器 - * @param pageContext 页面上下文参数 - * @return 树数据集处理器 - */ - protected abstract DatasetTreeWorker createTreeMoveHandler(BpmPageContext pageContext); - - public R treeAll(BpmPageContext pageContext) { - DatasetTreeWorker handler = createTreeAllHandler(pageContext); -// setupTreeAll(handler); - - List data = handler.treeAll(handler.getDataset()); - - return R.success(data); - } - - public R move(BpmPageContext pageContext) { - DatasetTreeWorker handler = createTreeMoveHandler(pageContext); -// setupMove(handler); - BpmDataset dataset = handler.getDataset(); - - handler.move(dataset); - - return null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/DatasetTreeAgentWorker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/DatasetTreeAgentWorker.java deleted file mode 100644 index f634eaa..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/DatasetTreeAgentWorker.java +++ /dev/null @@ -1,59 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.tree; - -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.bind.IBpmBeanConst; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import cc.smtweb.system.bpm.core.ui.service.tree.agent.DatasetMoveAgent; -import cc.smtweb.system.bpm.core.ui.service.tree.agent.DatasetTreeAllAgent; - -public class DatasetTreeAgentWorker extends DatasetTreeWorker { - private DatasetTreeAllAgent treeAllAgent; - private DatasetMoveAgent moveAgent; - - public DatasetTreeAgentWorker(BpmPageContext pageContext) { - super(pageContext); - } - - private DatasetTreeAllAgent loadTreeAllAgent(Class clazz) { - if (treeAllAgent == null) { - treeAllAgent = new DatasetTreeAllAgent(treeAllFunc); - this.handleTreeAll(treeAllAgent::doTreeAll); - } - - treeAllAgent.checkType(clazz); - return treeAllAgent; - } - - private DatasetMoveAgent loadMoveAgent() { - if (moveAgent == null) { - moveAgent = new DatasetMoveAgent(moveFunc); - this.handleMove(moveAgent::doMove); - } - - return moveAgent; - } - - public void onBeforeMove(DatasetApiInvoker func) { - loadMoveAgent().setBeforeMove(func); - } - - public void onMove(DatasetApiInvoker func) { - loadMoveAgent().setMove(func); - } - - public void onAfterMove(DatasetApiInvoker func) { - loadMoveAgent().setAfterMove(func); - } - - public void onBeforeTreeAll(DatasetApiInvoker func) { - loadTreeAllAgent(null).setBeforeTreeAll(func); - } - - public void onTreeAll(DatasetApiInvoker func) { - loadTreeAllAgent(func.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setTreeAll(func); - } - - public void onAfterTreeAll(DatasetApiInvoker func) { - loadTreeAllAgent(func.getAttrType(IBpmBeanConst.ATTRIBUTE_ROWS)).setAfterTreeAll(func); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/DatasetTreeWorker.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/DatasetTreeWorker.java deleted file mode 100644 index efe6990..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/DatasetTreeWorker.java +++ /dev/null @@ -1,46 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.tree; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.service.DatasetWorker; - -import java.util.List; -import java.util.function.Function; - -public class DatasetTreeWorker extends DatasetWorker { - protected Function> treeAllFunc; - protected Function> treeFunc; - protected Function moveFunc; - - public DatasetTreeWorker(BpmPageContext pageContext) { - super(pageContext); - } - - public void handleTreePart(Function> treeFunc) { - this.treeFunc = treeFunc; - } - - public void handleMove(Function moveFunc) { - this.moveFunc = moveFunc; - } - - public void handleTreeAll(Function> treeAllFunc) { - this.treeAllFunc = treeAllFunc; - } - - public List tree(BpmDataset dataset) { - pageContext.setDataset(dataset); - return treeFunc.apply(pageContext); - } - - public List treeAll(BpmDataset dataset) { - pageContext.setDataset(dataset); - return treeAllFunc.apply(pageContext); - } - - public Integer move(BpmDataset dataset) { - pageContext.setDataset(dataset); - return moveFunc.apply(pageContext); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/agent/DatasetMoveAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/agent/DatasetMoveAgent.java deleted file mode 100644 index 5b1acf9..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/agent/DatasetMoveAgent.java +++ /dev/null @@ -1,46 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.tree.agent; - -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import lombok.Setter; - -import java.util.function.Function; -/** - * tree数据集排序方法代理执行,调用@BpmEvent的事件 - * @author xkliu - */ -public class DatasetMoveAgent { - @Setter - private DatasetApiInvoker beforeMove; - @Setter - private DatasetApiInvoker afterMove; - @Setter - private DatasetApiInvoker move; - - private final Function defaultMoveFunc; - - public DatasetMoveAgent(Function defaultMoveFunc) { - this.defaultMoveFunc = defaultMoveFunc; - } - - public Integer doMove(BpmPageContext pageContext) { - Integer result = null; - - // bean 处理 - if (beforeMove != null) { - beforeMove.invoke(pageContext); - } - - if (this.move != null) { - result = (Integer)this.move.invoke(pageContext); - } else { - result = this.defaultMoveFunc.apply(pageContext); - } - - if (afterMove != null) { - afterMove.invoke(pageContext); - } - - return result; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/agent/DatasetTreeAllAgent.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/agent/DatasetTreeAllAgent.java deleted file mode 100644 index 2cc495f..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/core/ui/service/tree/agent/DatasetTreeAllAgent.java +++ /dev/null @@ -1,49 +0,0 @@ -package cc.smtweb.system.bpm.core.ui.service.tree.agent; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.AbstractDatasetAgent; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import lombok.Setter; - -import java.util.List; -import java.util.function.Function; -/** - * tree数据获取全部树方法代理执行,调用@BpmEvent的事件 - * @author xkliu - */ -public class DatasetTreeAllAgent extends AbstractDatasetAgent { - @Setter - private DatasetApiInvoker beforeTreeAll; - @Setter - private DatasetApiInvoker treeAll; - @Setter - private DatasetApiInvoker afterTreeAll; - - private final Function> defaultTreeAllFunc; - - public DatasetTreeAllAgent(Function> treePartFunc) { - this.defaultTreeAllFunc = treePartFunc; - } - - public List doTreeAll(BpmPageContext pageContext) { - // bean 处理 - if (beforeTreeAll != null) { - beforeTreeAll.invoke(pageContext); - } - - if (this.treeAll != null) { - List beans = (List)this.treeAll.invoke(pageContext); - saveAttrRows(pageContext, beans); - } else { - List body = this.defaultTreeAllFunc.apply(pageContext); - saveAttrRowsMap(pageContext, body); - } - - if (afterTreeAll != null) { - afterTreeAll.invoke(pageContext); - } - - return loadAttrRowsMap(pageContext); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/AbstractLoader.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/AbstractLoader.java deleted file mode 100644 index d7dc6fd..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/AbstractLoader.java +++ /dev/null @@ -1,54 +0,0 @@ -package cc.smtweb.system.bpm.engine; - -import cc.smtweb.system.bpm.core.exception.ModelLoaderError; -import lombok.Getter; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public abstract class AbstractLoader { - /** 错误信息 */ - @Getter - protected List errors = new ArrayList<>(); - - protected void clearErrors() { - this.errors.clear(); - } - - public void addError(int type, String msg) { - this.errors.add(new ModelLoaderError(type, msg)); - } - - public void addError(int type, String id, String msg) { - this.errors.add(new ModelLoaderError(type, id, msg)); - } - - public void addError(int type, String id, String detailId, String msg) { - this.errors.add(new ModelLoaderError(type, id, detailId, msg)); - } - - /** 根据map转换String为int值 */ - protected int mapValue(Map map, String orginValue, int defaultValue) { - Integer value = map.get(orginValue); - return (value != null) ? value : defaultValue; - } - - protected int mapValue(Map map, String orginValue) { - return mapValue(map, orginValue, 0); - } - - public String getLastError() { - if (this.errors.isEmpty()) { - return null; - } - - return this.errors.get(0).getMsg(); - } - - public abstract T load(String jsonText); - -// public T load(InputStream is) { -// return null; -// } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelCatalogPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelCatalogPO.java deleted file mode 100644 index d002439..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelCatalogPO.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.smtweb.system.bpm.engine.entity; - -import cc.smtweb.framework.core.annotation.SwTable; -import lombok.Data; - -/** - * asp_model_catalog - * @author xkliu - */ -@Data -@SwTable("sw_bpm.asp_model_catalog") -public class AspModelCatalogPO { - private Long mcId; - private Long mcParentId; - private String mcCode; - private String mcName; - private Long mcCreateTime; - private Long mcLastTime; - private String mcModule; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelPO.java deleted file mode 100644 index 29edb0d..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelPO.java +++ /dev/null @@ -1,37 +0,0 @@ -package cc.smtweb.system.bpm.engine.entity; - -import lombok.Data; - -/** - * asp_model - * @author xkliu - */ -@Data -public class AspModelPO { - // 模型类型: - /** 数据模型 */ - public static final byte TYPE_DB = 1; - /** 工作流模型 */ - public static final byte TYPE_FLOW = 2; - /** PC界面模型 */ - public static final byte TYPE_UI_PC = 3; - /** 手机界面模型 */ - public static final byte TYPE_UI_MOBILE = 4; - - private Long modelId; - private Long modelParentId; - private Long modelMcId; - private String modelKey; - private String modelName; - private int modelStatus; - private String modelContent; - private String modelContentSign; - private byte modelType; - private byte modelSubType; - private int modelVersion; - private Long modelCreateTime; - private Long modelLastTime; - private String modelFullName; - private byte modelUseVue; - private byte modelUseYaml; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelTreeVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelTreeVO.java deleted file mode 100644 index d4a0a48..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/AspModelTreeVO.java +++ /dev/null @@ -1,47 +0,0 @@ -package cc.smtweb.system.bpm.engine.entity; - -import cc.smtweb.system.bpm.util.ITreeDataLevelHandler; -import lombok.Data; - -import java.util.List; - -@Data -public class AspModelTreeVO extends AspModelPO { - private List children; - private int level; - - // 树结构数据句柄 - public static ITreeDataLevelHandler createTreeHandler() { - return new ITreeDataLevelHandler () { - @Override - public Long getId (AspModelTreeVO node){ - return node.getModelId(); - } - - @Override - public Long getParentId (AspModelTreeVO node){ - return node.getModelParentId(); - } - - @Override - public List getChildren (AspModelTreeVO node){ - return node.children; - } - - @Override - public void setChildren (AspModelTreeVO node, List < AspModelTreeVO > children){ - node.children = children; - } - - @Override - public int getLevel (AspModelTreeVO node){ - return node.level; - } - - @Override - public void setLevel (AspModelTreeVO node,int level){ - node.level = level; - } - } ; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/DictPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/DictPO.java deleted file mode 100644 index 7d618d4..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/entity/DictPO.java +++ /dev/null @@ -1,22 +0,0 @@ -package cc.smtweb.system.bpm.engine.entity; - -import cc.smtweb.framework.core.annotation.SwColumn; -import cc.smtweb.framework.core.annotation.SwColumnForeign; -import cc.smtweb.framework.core.annotation.SwTable; -import lombok.Data; - -@Data -@SwTable("sw_user.sys_dict") -public class DictPO { - @SwColumn(type = SwColumn.Type.ID) - private Long dictId; - - @SwColumn(type = SwColumn.Type.MASTER_ID) - @SwColumnForeign(table="sw_user.sys_dict_type", id="dt_id", code="dt_name") - private Long dictDtId; - - @SwColumn(type = {SwColumn.Type.CODE, SwColumn.Type.ORDER}) - private String dictCode; - - private String dictLabel; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/AbstractTaskCardService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/AbstractTaskCardService.java deleted file mode 100644 index 60704bd..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/AbstractTaskCardService.java +++ /dev/null @@ -1,146 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwBody; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.vo.ModelField; -import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.system.bpm.engine.process.impl.entity.CommitTaskVO; -import cc.smtweb.system.bpm.engine.process.impl.entity.LoadTaskAckVO; -import cc.smtweb.system.bpm.engine.process.impl.entity.LoadTaskVO; -import cc.smtweb.system.bpm.engine.process.impl.entity.SaveTaskVO; -import cc.smtweb.system.bpm.engine.process.runtime.ProcessInstance; -import cc.smtweb.system.bpm.engine.process.task.Task; -import cc.smtweb.system.bpm.engine.process.vo.FlowAction; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.engine.process.vo.FlowNodeField; -import cc.smtweb.system.bpm.spring.IProcessEngine; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -// "工作流任务接口" -public abstract class AbstractTaskCardService { - @SwParam - protected IProcessEngine processEngine; - - @SwParam - protected DbEngine dbEngine; - - /** 读取表单界面结构和数据 */ - protected abstract LoadTaskAckVO loadForm(Task task); - - /** 保存表单数据 */ - protected void saveForm(Task task, SaveTaskVO postTaskVO, UserSession us) { - ProcessInstance processInstance = task.getProcessInstance(); - FlowNode flowNode = processInstance.getCurNode(); - List fields = flowNode.getFields(); - - if (fields != null) { - ModelTable modelTable = processInstance.getModelTable(); - SwMap body = new SwMap(fields.size()); - for (FlowNodeField nodeField : fields) { - ModelField modelField = modelTable.findField(nodeField.getId()); - int perm = nodeField.getPerm(); - - if (modelField != null && perm == FlowNodeField.PERM_WRITE) { - Object value = postTaskVO.get(modelField.getName()); - if (value != null) { - body.put(modelField.getName(), value); - } - } - } - - processEngine.getFormDataStore().save(processInstance.getId(), processInstance.getRootId(), processInstance.getRootId(), - postTaskVO.readTaskId(), modelTable.fullName(), body, us); - } - } - - private Task loadTask(long flowId, long taskId, String nodeKey) { - Task task; - - if (taskId == 0) { - task = processEngine.newTask(flowId, nodeKey); - } else { - task = processEngine.loadTask(taskId); - } - - return task; - } - - // @ApiOperation(value = "读取界面结构") - public R load(UserSession us, @SwBody LoadTaskVO loadTaskVO) { -// String form = "{\"form\": [{\"component\":\"fy-text\",\"props\":{\"name\":\"用户名\",\"label\":\"用户名\",\"placeholder\":\"用户名\",\"rules\":[{\"required\":true,\"message\":\"请填写用户名\"}]}},{\"component\":\"fy-text\",\"props\":{\"type\":\"password\",\"name\":\"密码\",\"label\":\"密码\",\"placeholder\":\"密码\",\"rules\":[{\"required\":true,\"message\":\"请填写密码\"}]}}]}"; - - Task task = loadTask(loadTaskVO.getFlowId(), loadTaskVO.getTaskId(), null); - if (task == null) { - return R.error("创建任务失败"); - } - - LoadTaskAckVO data = loadForm(task); - - if (data != null) { - Map formData = data.getData(); - ProcessInstance processInstance = task.getProcessInstance(); - if (task.getCreateAt() == 0L) { - formData.put(SaveTaskVO.FLOW_ID, processInstance.getFlow().getId()); - } else { - formData.put(SaveTaskVO.TASK_ID, task.getId()); - } - - FlowNode curNode = processInstance.getCurNode(); - formData.put(SaveTaskVO.FLOW_NODE_ID, curNode.getId()); - formData.put("bpm_flowNodeLabel", curNode.getLabel()); - - return R.success(data); - } - - return R.error("读取表单数据出错"); - } - - // @ApiOperation(value = "保存表单数据") - public R save(UserSession us, @SwBody SaveTaskVO saveTaskVO) { - long taskId = saveTaskVO.readTaskId(); - Task task = this.loadTask(saveTaskVO.readFlowId(), taskId, saveTaskVO.readFlowNodeId()); - - if (task == null) { - return R.error("加载任务失败"); - } - - task.setAssigneeUserId(us.getUserId()); - - dbEngine.doTrans(() -> { - processEngine.saveTask(task); - - // 保存数据到表 - saveForm(task, saveTaskVO, us); - - return true; - }); - - Map data = new HashMap<>(8); - data.put(SaveTaskVO.FLOW_ID, task.getProcessInstance().getFlow().getId()); - data.put(SaveTaskVO.TASK_ID, task.getId()); - data.put(SaveTaskVO.TASK_LOCK_REVID, task.getLockRev()); - data.put(SaveTaskVO.FLOW_ACTION_ID, saveTaskVO.readFlowActionId()); - return R.success(data); - } - - // @ApiOperation(value = "有选人情况下的提交") - public R commit(UserSession us, @SwBody CommitTaskVO commitTaskVO) { - if (commitTaskVO.getUsers() == null || commitTaskVO.getUsers().size() == 0) { - return R.error("执行人数据为空"); - } - - Task task = processEngine.loadTask(commitTaskVO.getTaskId()); - FlowAction flowAction = task.getProcessInstance().getCurNode().checkAndGetAction(commitTaskVO.getActionKey()); - - processEngine.commitTask(task, flowAction, commitTaskVO.getUsers()); - - return R.success(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/dao/TaskDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/dao/TaskDao.java deleted file mode 100644 index a1051b1..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/dao/TaskDao.java +++ /dev/null @@ -1,351 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.cache.ModelTableCache; -import cc.smtweb.framework.core.db.sqlbuilder.InsertSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.UpdateSqlBuilder; -import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.framework.core.util.DateUtil; -import cc.smtweb.system.bpm.core.exception.BpmLockRevException; -import cc.smtweb.system.bpm.core.exception.BpmObjectNotFoundException; -import cc.smtweb.system.bpm.engine.process.impl.entity.ProcessLogPO; -import cc.smtweb.system.bpm.engine.process.impl.entity.ProcessPO; -import cc.smtweb.system.bpm.engine.process.impl.entity.TaskPO; -import cc.smtweb.system.bpm.engine.process.impl.entity.VariablePO; -import cc.smtweb.system.bpm.engine.process.runtime.ProcessInstance; -import cc.smtweb.system.bpm.engine.process.task.Task; -import cc.smtweb.system.bpm.engine.process.vo.Flow; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.spring.cache.BpmFlowCache; -import org.apache.commons.lang3.StringUtils; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; - -public class TaskDao { - private DbEngine dbEngine; - - public TaskDao(DbEngine dbEngine) { - this.dbEngine = dbEngine; - } - - public void saveProcess(ProcessInstance processInstance, Timestamp now) { - String route = processInstance.postRoute(); - long lastTime = DateUtil.nowDateTimeLong(); - - if (processInstance.getCreateAt() == 0L) { - Flow flow = processInstance.getFlow(); - - InsertSqlBuilder sqlBuilder = SqlBuilder.createInsert("sw_bpm.bpm_process"); - sqlBuilder.add("process_id", processInstance.getId()) - .add("process_parent_id", processInstance.getParentId()) - .add("process_root_id", processInstance.getRootId()) - .add("process_flow_id", flow.getId()) - .add("process_business_key", processInstance.getBusinessKey()) - .add("process_name", processInstance.getName()) - .add("process_node_key", processInstance.getCurNode().getId()) - .add("process_priority", processInstance.getPriority()) - .add("process_active", 1) - .add("process_route", route) - .add("process_is_concurrent", processInstance.isConcurrent() ? 1 : 0) - .add("process_create_time", lastTime) - .add("process_last_time", lastTime); - sqlBuilder.update(dbEngine); - - processInstance.setCreateAt(DateUtil.nowDateTimeLong()); - } else { - UpdateSqlBuilder sqlBuilder = SqlBuilder.createUpdate("sw_bpm.bpm_process"); - sqlBuilder.add("process_business_key", processInstance.getBusinessKey()) - .add("process_node_key", processInstance.getCurNode().getId()) - .add("process_priority", processInstance.getPriority()) - .add("process_route", route) - .add("process_lock_rev", processInstance.getLockRev() + 1) - .add("process_last_time", lastTime) - .addWhere("process_id", processInstance.getId()) - .addWhere("process_parent_id", processInstance.getLockRev()); - int ret = sqlBuilder.update(dbEngine); - - if (ret == 0) { - throw new BpmLockRevException(); - } - - processInstance.incLockRev(); - } - - processInstance.setUpdateAt(DateUtil.nowDateTimeLong()); - } - - public void saveTask(Task task, Timestamp now) { - if (task.getCreateAt() == 0L) { - ProcessInstance processInstance = task.getProcessInstance(); - - InsertSqlBuilder sqlBuilder = SqlBuilder.createInsert("sw_bpm.bpm_task"); - sqlBuilder.add("task_id", task.getId()) - .add("task_parent_id", task.getParentId()) - .add("task_process_id", processInstance.getId()) - .add("task_process_root_id", processInstance.getRootId()) - .add("task_ui_id", task.getUiId()) - .add("task_assignee_uid", task.getAssigneeUserId()) - .add("task_name", task.getName()) - .add("task_priority", task.getPriority()); - sqlBuilder.update(dbEngine); - } else { - UpdateSqlBuilder sqlBuilder = SqlBuilder.createUpdate("sw_bpm.bpm_task"); - sqlBuilder.add("task_assignee_uid", task.getAssigneeUserId()) - .add("task_name", task.getName()) - .add("task_priority", task.getPriority()) - .add("task_lock_rev", task.getLockRev() + 1) - .add("task_last_time", DateUtil.nowDateTimeLong()) - .addWhere("task_id", task.getId()) - .addWhere("task_lock_rev", task.getLockRev()); - int ret = sqlBuilder.update(dbEngine); - - if (ret == 0) { - throw new BpmLockRevException(); - } - - task.incLockRev(); - } - - task.setUpdateAt(DateUtil.nowDateTimeLong()); - } - - public void suspensionTask(Task task) { - // 修改挂起状态 - dbEngine.update("update sw_bpm.bpm_task set task_is_suspension=1 where task_id=?", task.getId()); - } - - public void deleteProcess(ProcessInstance processInstance) { - String route = processInstance.postRoute(); - // 添加日志 - InsertSqlBuilder sqlBuilder = SqlBuilder.createInsert("sw_bpm.bpm_process_log"); - sqlBuilder.add("pl_id", processInstance.getId()) - .add("pl_parent_id", processInstance.getParentId()) - .add("pl_root_id", processInstance.getRootId()) - .add("pl_flow_id", processInstance.getFlow().getId()) - .add("pl_business_key", processInstance.getBusinessKey()) - .add("pl_name", processInstance.getName()) - .add("pl_delete_reason", 1) - .add("pl_priority", processInstance.getPriority()) - .add("pl_is_concurrent", processInstance.isConcurrent() ? 1 : 0) - .add("pl_route", route) - .add("pl_begin_time", processInstance.getCreateAt()) - .add("pl_end_time", processInstance.getUpdateAt()) - .add("pl_duration", tsDur(processInstance.getCreateAt(), processInstance.getUpdateAt())); - sqlBuilder.update(dbEngine); - - // 删除运行时数据 - dbEngine.update("delete from sw_bpm.bpm_process where process_id=?", processInstance.getId()); - } - - public void deleteTask(Task task) { - if (task.getCreateAt() > 0L) { - // 添加日志 - ProcessInstance process = task.getProcessInstance(); - - InsertSqlBuilder sqlBuilder = SqlBuilder.createInsert("sw_bpm.bpm_task_log"); - sqlBuilder.add("tl_id", task.getId()) - .add("tl_parent_id", task.getParentId()) - .add("tl_process_id", process.getId()) - .add("tl_process_root_id", process.getRootId()) - .add("tl_ui_id", task.getUiId()) - .add("tl_assignee_uid", task.getAssigneeUserId()) - .add("tl_owner_uid", task.getOwnerUserId()) - .add("tl_delegation_status", 0) - .add("tl_name", task.getName()) - .add("tl_delete_reason", 1) - .add("tl_node_key", task.getNodeKey()) - .add("tl_priority", task.getPriority()) - .add("tl_is_suspension", task.getIsSuspension()) - .add("tl_begin_time", task.getCreateAt()) - .add("tl_end_time", task.getUpdateAt()) - .add("tl_duration", tsDur(task.getCreateAt(), task.getUpdateAt())); - sqlBuilder.update(dbEngine); - - // 删除数据 - dbEngine.update("delete from sw_bpm.bpm_task where task_id=?", task.getId()); - // 避免并行节点重复删除 - task.setCreateAt(0L); - } - } - - private long tsDur(long begin, long end) { - long diff = (end - begin);// / 1000; - - long result = 0; - if (diff > 0) { - // sec - result = diff % 60; - diff /= 60; - // min - result += (diff % 60) * 100; - diff /= 60; - // hour - result += (diff % 24) * 10000; - // day - result += diff / 24; - } - - return result; - } - - public Task loadTask(long taskId) { - TaskPO taskPO = dbEngine.queryEntity("select task_id,task_parent_id,task_process_id,task_process_root_id,task_ui_id,task_assignee_uid,task_name,task_priority,task_lock_rev,task_create_time,task_last_time from sw_bpm.bpm_task where task_id=?", TaskPO.class, taskId); - - if (taskPO == null) { - throw new BpmObjectNotFoundException("未找到任务, task_id=" + taskId); - } - - Task task = new Task(dbEngine.nextId(), loadProcess(taskPO.getTaskProcessId())); - task.setId(taskId); - task.setAssigneeUserId(taskPO.getTaskAssigneeUid()); - task.setLockRev(taskPO.getTaskLockRev()); - task.setName(taskPO.getTaskName()); - task.setParentId(taskPO.getTaskParentId()); - task.setPriority(taskPO.getTaskPriority()); - task.setCreateAt(taskPO.getTaskCreateTime()); - task.setUpdateAt(taskPO.getTaskLastTime()); - - return task; - } - - public List loadProcessList(List ids) { - List processPos = dbEngine.query("select process_id,process_parent_id,process_root_id,process_flow_id,process_business_key,process_node_key,process_priority,process_active,process_is_concurrent,process_lock_rev,process_create_time,process_last_time,process_route from sw_bpm.bpm_process where process_id in(" - + StringUtils.join(ids, ",") + ")", ProcessPO.class); - - if (processPos != null) { - List result = new ArrayList<>(); - for (ProcessPO processPo : processPos) { - result.add(buildProcessInstance(processPo)); - } - - return result; - } - - return null; - } - - public ProcessInstance loadProcess(long processId) { - ProcessPO processPo = dbEngine.queryEntity("select process_id,process_parent_id,process_root_id,process_flow_id,process_business_key,process_node_key,process_priority,process_active,process_is_concurrent,process_lock_rev,process_create_time,process_last_time,process_route from sw_bpm.bpm_process where process_id=?", - ProcessPO.class, processId); - - if (processPo == null) { - throw new BpmObjectNotFoundException("未找到流程实例, process_id=" + processId); - } - - return buildProcessInstance(processPo); - } - - private ProcessInstance buildProcessInstance(ProcessPO processPo) { - ProcessInstance processInstance = startProcessInstanceByKey(processPo.getProcessFlowId(), processPo.getProcessNodeKey()); - processInstance.setId(processPo.getProcessId()); - processInstance.setRootId(processPo.getProcessRootId()); - processInstance.setLockRev(processPo.getProcessLockRev()); - processInstance.setBusinessKey(processPo.getProcessBusinessKey()); - processInstance.setPriority(processPo.getProcessPriority()); - processInstance.setParentId(processPo.getProcessParentId()); - processInstance.fillRoute(processPo.getProcessRoute()); - processInstance.setCreateAt(processPo.getProcessCreateAt()); - processInstance.setUpdateAt(processPo.getProcessUpdateAt()); - processInstance.setConcurrent(processPo.getProcessIsConcurrent() != 0); - return processInstance; - } - - public ProcessInstance loadProcessByLog(Long processId) { - ProcessLogPO processPO = dbEngine.queryEntity("select pl_id,pl_parent_id,pl_root_id,pl_flow_id,pl_business_key,pl_node_key,pl_priority,pl_is_concurrent,pl_create_time,pl_route from sw_bpm.bpm_process_log where pl_id=?", - ProcessLogPO.class, processId); - - if (processPO == null) { - throw new BpmObjectNotFoundException("未找到流程实例, process_id=" + processId); - } - - ProcessInstance processInstance = startProcessInstanceByKey(processPO.getPlFlowId(), null); - processInstance.setId(processPO.getPlId()); - processInstance.setRootId(processPO.getPlRootId()); - processInstance.setBusinessKey(processPO.getPlBusinessKey()); - processInstance.setPriority(processPO.getPlPriority()); - processInstance.setParentId(processPO.getPlParentId()); - processInstance.fillRoute(processPO.getPlRoute()); - processInstance.setCreateAt(processPO.getPlCreateAt()); - processInstance.setUpdateAt(processPO.getPlCreateAt()); - processInstance.setConcurrent(processPO.getPlIsConcurrent() != 0); - return processInstance; - } - - - public SwMap loadVars(ProcessInstance processInstance) { - // 读取流程变量 - List list = dbEngine.query("select var_id,var_name,var_type,var_scope,var_value from bpm_variable where (var_root_process_id=? and var_scope=1) or (var_process_id=? and var_scope=2)", - VariablePO.class, processInstance.getRootId(), processInstance.getId()); - - if (list != null) { - SwMap vars = new SwMap(list.size()); - for (VariablePO variablePo : list) { - String name = variablePo.getVarName(); - String value = variablePo.getVarValue(); - - if (StringUtils.isNotBlank(value)) { - switch (variablePo.getType()) { - case VariablePO.TYPE_CHAR: - vars.put(name, value); - break; - case VariablePO.TYPE_INT: - vars.put(name, Long.parseLong(value)); - break; - case VariablePO.TYPE_FLOAT: - vars.put(name, Double.parseDouble(value)); - break; - case VariablePO.TYPE_BOOL: - vars.put(name, Boolean.parseBoolean(value)); - break; -// case VariablePO.TYPE_DATE: -// vars.put(name, Boolean.parseBoolean(value)); -// break; - default: - break; - } - } else if (variablePo.getType() == VariablePO.TYPE_CHAR) { - vars.put(name, ""); - } - } - - return vars; - } - - return null; - } - - public ProcessInstance startProcessInstanceByKey(long flowId, String flowNodeKey) { - // 读取流程(新建流程) - Flow flow = BpmFlowCache.getInstance().get(flowId); - if (flow == null) { - throw new BpmObjectNotFoundException("读取流程失败, model_id=" + flowId); - } - - // 读取关联表 - ModelTable table = ModelTableCache.getInstance().get(flow.getTable().getId()); - if (table == null) { - throw new BpmObjectNotFoundException("读取表失败, model_id=" + flow.getTable().getModelId() + ", table=" + flow.getTable().getName()); - } - - ProcessInstance processInstance = new ProcessInstance(dbEngine.nextId(), flow, table); - FlowNode flowNode; - - if (StringUtils.isNotBlank(flowNodeKey)) { - flowNode = flow.findNode(flowNodeKey); - } else { - flowNode = flow.getBeginNode(); - } - - if (flowNode == null) { - throw new BpmObjectNotFoundException("未找到流程节点, model_id=" + flowId + ", nodeId=" + flowNodeKey); - } - - processInstance.setCurNode(flowNode, false); - - return processInstance; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/CommitTaskUserVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/CommitTaskUserVO.java deleted file mode 100644 index 796bcce..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/CommitTaskUserVO.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import lombok.Data; - -@Data -public class CommitTaskUserVO { - String nodeKey; - Long userId; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/CommitTaskVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/CommitTaskVO.java deleted file mode 100644 index ac75457..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/CommitTaskVO.java +++ /dev/null @@ -1,17 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import lombok.Data; - -import java.util.List; - -/** - * - * @author xkliu - */ -@Data -public class CommitTaskVO { - private long taskId; - private int taskLockRev; - private String actionKey; - private List users; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/LoadTaskAckVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/LoadTaskAckVO.java deleted file mode 100644 index a68d23e..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/LoadTaskAckVO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import cc.smtweb.framework.core.common.SwMap; -import lombok.Getter; - -import java.util.ArrayList; -import java.util.List; - -@Getter -public class LoadTaskAckVO { - private SwMap data = new SwMap(); - private List form = new ArrayList<>(); - private List action = new ArrayList<>(); -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/LoadTaskVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/LoadTaskVO.java deleted file mode 100644 index bddc042..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/LoadTaskVO.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import lombok.Data; - -/** - * - * @author xkliu - */ -@Data -public class LoadTaskVO { - private long flowId; - private long taskId; - private String actionKey; - private String toNodeKey; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/NodeUserVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/NodeUserVO.java deleted file mode 100644 index 2e4e397..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/NodeUserVO.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.web.task.entity.UserPO; -import lombok.Getter; - -import java.util.List; - -/** - * - * @author xkliu - */ -@Getter -public class NodeUserVO { - private String label; - private String nodeKey; - private List users; - - public NodeUserVO(FlowNode flowNode, List users) { - this.users = users; - this.label =flowNode.getLabel(); - this.nodeKey = flowNode.getId(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/NodeUsersVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/NodeUsersVO.java deleted file mode 100644 index 214d3b1..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/NodeUsersVO.java +++ /dev/null @@ -1,30 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.web.task.entity.UserPO; -import lombok.Data; - -import java.util.ArrayList; -import java.util.List; - -@Data -public class NodeUsersVO { - private String actionKey; - private String nodeKey; - private List nodes = new ArrayList<>(); - - public void add(NodeUserVO nodeUserVO) { - nodes.add(nodeUserVO); - } - - public NodeUserVO add(FlowNode flowNode) { - return add(flowNode, null); - } - - public NodeUserVO add(FlowNode flowNode, List users) { - NodeUserVO result = new NodeUserVO(flowNode, users); - nodes.add(result); - - return result; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/ProcessLogPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/ProcessLogPO.java deleted file mode 100644 index 5c323f3..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/ProcessLogPO.java +++ /dev/null @@ -1,18 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import lombok.Data; - -@Data -public class ProcessLogPO { - private Long plId; - private Long plParentId; - private Long plRootId; - private Long plFlowId; - private Long plBusinessKey; - private byte plPriority; - private byte plActive; - private byte plIsConcurrent; - private String plRoute; - private long plCreateAt; - private long plUpdateAt; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/ProcessPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/ProcessPO.java deleted file mode 100644 index 961d2f3..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/ProcessPO.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import lombok.Data; - -@Data -public class ProcessPO { - private Long processId; - private Long processParentId; - private Long processRootId; - private Long processFlowId; - private Long processBusinessKey; - private String processNodeKey; - private byte processPriority; - private byte processActive; - private byte processIsConcurrent; - private int processLockRev; - private String processRoute; - private long processCreateAt; - private long processUpdateAt; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/SaveTaskVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/SaveTaskVO.java deleted file mode 100644 index 077686b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/SaveTaskVO.java +++ /dev/null @@ -1,30 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import cc.smtweb.framework.core.common.SwMap; - -public class SaveTaskVO extends SwMap { - public static final String TASK_ID = "bpm_taskId"; - public static final String FLOW_ID = "bpm_flowId"; - public static final String FLOW_NODE_ID = "bpm_flowNodeId"; - public static final String FLOW_ACTION_ID = "bpm_flowActionId"; - public static final String TASK_LOCK_REVID = "bpm_taskLockRev"; - /** 选人节点 */ - public static final String NEXT_NODE_ID = "bpm_nextNodeId"; - - public long readTaskId() { - return readLong(TASK_ID, 0L); - } - - public long readFlowId() { - return readLong(FLOW_ID, 0L); - } - - public String readFlowNodeId() { - return readString(FLOW_NODE_ID); - } - - public String readFlowActionId() { - return readString(FLOW_ACTION_ID); - } - -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/TaskPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/TaskPO.java deleted file mode 100644 index 5263870..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/TaskPO.java +++ /dev/null @@ -1,19 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import lombok.Data; - -@Data -public class TaskPO { - private Long taskId; - private Long taskParentId; - private Long taskProcessId; - private Long taskProcessRootId; - private Long taskUiId; - private Long taskAssigneeUid; - private String taskName; - private byte taskPriority; - private int taskLockRev; - private Long taskCreateTime; - private Long taskLastTime; - private String taskNodeKey; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/VariablePO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/VariablePO.java deleted file mode 100644 index 386218a..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/impl/entity/VariablePO.java +++ /dev/null @@ -1,25 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.impl.entity; - -import lombok.Data; - -@Data -public class VariablePO { - // 字符 - public static final byte TYPE_CHAR = 1; - // 整型 - public static final byte TYPE_INT = 2; - // 时间 - public static final byte TYPE_DATE = 3; - // 浮点 - public static final byte TYPE_FLOAT = 4; - // 布尔 - public static final byte TYPE_BOOL = 5; - - private Long varId; - private Long processId; - private Long processRootId; - private String varName; - private String varValue; - private byte scope; - private byte type; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/FlowLoader.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/FlowLoader.java deleted file mode 100644 index 7b8a0cf..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/FlowLoader.java +++ /dev/null @@ -1,263 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader; - -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.exception.ModelLoaderError; -import cc.smtweb.system.bpm.engine.AbstractLoader; -import cc.smtweb.system.bpm.engine.process.loader.vo.*; -import cc.smtweb.system.bpm.engine.process.vo.*; -import org.apache.commons.lang3.StringUtils; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author xkliu - * 流程定义读取器 - */ -public class FlowLoader extends AbstractLoader { - private static final Map PERM_MAP = new HashMap<>(); - private static final Map ACTION_TYPE_MAP = new HashMap<>(); - private static final Map USER_TYPE_MAP = new HashMap<>(); - private static final Map USER_FILTER_MAP = new HashMap<>(); - - static { - PERM_MAP.put(NodeFieldVO.PERM_READ, FlowNodeField.PERM_READ); - PERM_MAP.put(NodeFieldVO.PERM_WRITE, FlowNodeField.PERM_WRITE); - PERM_MAP.put(NodeFieldVO.PERM_DISABLE, FlowNodeField.PERM_DISABLE); - PERM_MAP.put(NodeFieldVO.PERM_HIDE, FlowNodeField.PERM_HIDE); - - ACTION_TYPE_MAP.put(ActionVO.TYPE_COMMIT, FlowAction.TYPE_COMMIT); - ACTION_TYPE_MAP.put(ActionVO.TYPE_SAVE, FlowAction.TYPE_SAVE); - ACTION_TYPE_MAP.put(ActionVO.TYPE_RETURN, FlowAction.TYPE_RETURN); - ACTION_TYPE_MAP.put(ActionVO.TYPE_TRANSMIT, FlowAction.TYPE_TRANSMIT); - ACTION_TYPE_MAP.put(ActionVO.TYPE_FINISH, FlowAction.TYPE_FINISH); - ACTION_TYPE_MAP.put(ActionVO.TYPE_REJECT, FlowAction.TYPE_REJECT); - - USER_TYPE_MAP.put(NodeUsersVO.TYPE_ALL, FlowNodeUser.TYPE_ALL); - USER_TYPE_MAP.put(NodeUsersVO.TYPE_ROLE, FlowNodeUser.TYPE_ROLE); - USER_TYPE_MAP.put(NodeUsersVO.TYPE_USER_GROUP, FlowNodeUser.TYPE_USER_GROUP); - USER_TYPE_MAP.put(NodeUsersVO.TYPE_USER, FlowNodeUser.TYPE_USER); - USER_TYPE_MAP.put(NodeUsersVO.TYPE_DEPT, FlowNodeUser.TYPE_DEPT); - USER_TYPE_MAP.put(NodeUsersVO.TYPE_FIELD, FlowNodeUser.TYPE_FIELD); - USER_TYPE_MAP.put(NodeUsersVO.TYPE_EXP, FlowNodeUser.TYPE_EXP); - USER_TYPE_MAP.put(NodeUsersVO.TYPE_API, FlowNodeUser.TYPE_API); - - USER_FILTER_MAP.put(NodeUsersVO.FILTER_CUR_DEPT, FlowNodeUser.FILTER_CUR_DEPT); - USER_FILTER_MAP.put(NodeUsersVO.FILTER_SUB_DEPT, FlowNodeUser.FILTER_SUB_DEPT); - USER_FILTER_MAP.put(NodeUsersVO.FILTER_UP_DEPT, FlowNodeUser.FILTER_UP_DEPT); - USER_FILTER_MAP.put(NodeUsersVO.FILTER_CUR_USER, FlowNodeUser.FILTER_CUR_USER); - USER_FILTER_MAP.put(NodeUsersVO.FILTER_CUR_MANAGER, FlowNodeUser.FILTER_CUR_MANAGER); - USER_FILTER_MAP.put(NodeUsersVO.FILTER_UP_MANAGER, FlowNodeUser.FILTER_UP_MANAGER); - } - - @Override - public Flow load(String text) { - clearErrors(); - - if (StringUtils.isBlank(text)) { - addError(ModelLoaderError.ERROR_FLOW, "流程为空"); - return null; - } - - FlowVO flowVO = JsonUtil.parse(text, FlowVO.class); - - return convert(flowVO); - } - - public Flow load(InputStream is) { - clearErrors(); - - if (is == null) { - addError(ModelLoaderError.ERROR_FLOW, "流程为空"); - return null; - } - - FlowVO flowVO = JsonUtil.parse(is, FlowVO.class); - - return convert(flowVO); - } - - private Flow convert(FlowVO flowVO) { - Flow result = new Flow(); - - FlowPropsVO flowProps = flowVO.getProps(); - if (flowProps == null) { - addError(ModelLoaderError.ERROR_FLOW, "流程缺少属性"); - return null; - } - - if (flowProps.getDm() == null) { - addError(ModelLoaderError.ERROR_FLOW, "流程缺少关联库"); - return null; - } - - FlowTableVO flowTableVO = flowProps.getTable(); - if (flowTableVO == null) { - addError(ModelLoaderError.ERROR_FLOW, "流程缺少关联表"); - return null; - } - - FlowTable flowTable = new FlowTable(); - flowTable.setModelId(flowProps.getDm().getModelId()); - flowTable.setId(flowTableVO.getId()); - flowTable.setName(flowTableVO.getName()); - result.setTable(flowTable); - - List nodes = flowVO.getNodes(); - - if (nodes == null) { - addError(ModelLoaderError.ERROR_FLOW, "流程缺少活动节点"); - return null; - } - - Map nodeMap = new HashMap<>(nodes.size()); - FlowNode beginFlowNode = null; - FlowNode endFlowNode = null; - - for (NodeVO nodeVO: nodes) { - FlowNode flowNode = new FlowNode(); - flowNode.setId(nodeVO.getId()); - - NodePropsVO nodePropsVO = nodeVO.getProps(); - - if (nodePropsVO != null) { - // 读取节点基本属性 - flowNode.setLabel(nodePropsVO.getLabel()); - flowNode.setName(nodePropsVO.getName()); - flowNode.setDisableNotify(nodePropsVO.getDisableNotify()); - - switch (nodeVO.getType()) { - case NodeVO.TYPE_BEGIN: - flowNode.setType(FlowNode.TYPE_BEGIN); - if (beginFlowNode == null) { - beginFlowNode = flowNode; - } else { - addError(ModelLoaderError.ERROR_NODE, nodeVO.getId(), "开始节点重复:" + beginFlowNode.getId()); - } - break; - case NodeVO.TYPE_END: - flowNode.setType(FlowNode.TYPE_END); - if (endFlowNode == null) { - endFlowNode = flowNode; - } else { - addError(ModelLoaderError.ERROR_NODE, nodeVO.getId(), "结束节点重复:" + endFlowNode.getId()); - } - break; - case NodeVO.TYPE_MANUAL: - flowNode.setType(FlowNode.TYPE_MANUAL); - break; - case NodeVO.TYPE_MULTI_SIGN: - flowNode.setType(FlowNode.TYPE_MULTI_SIGN); - break; - case NodeVO.TYPE_CONDITION: - flowNode.setType(FlowNode.TYPE_CONDITION); - break; - case NodeVO.TYPE_SPLIT: - flowNode.setType(FlowNode.TYPE_SPLIT); - break; - case NodeVO.TYPE_MERGE: - flowNode.setType(FlowNode.TYPE_MERGE); - break; - case NodeVO.TYPE_SUB_FLOW: - flowNode.setType(FlowNode.TYPE_SUB_FLOW); - break; - case NodeVO.TYPE_AUTO: - flowNode.setType(FlowNode.TYPE_AUTO); - break; - default: - addError(ModelLoaderError.ERROR_NODE, nodeVO.getId(), "未支持的活动节点类型:" + nodeVO.getType()); - break; - } - - // 读取节点字段权限 - List nodeFields = nodePropsVO.getFields(); - if (nodeFields != null) { - List fields = new ArrayList<>(); - - for (NodeFieldVO nodeFieldVO: nodeFields) { - FlowNodeField field = new FlowNodeField(); - field.setId(nodeFieldVO.getId()); - field.setLabel(nodeFieldVO.getLabel()); - field.setPerm(mapValue(PERM_MAP, nodeFieldVO.getPerm(), FlowNodeField.PERM_READ)); - field.setNotNull(nodeFieldVO.isNotNull()); - field.setDefaultValue(nodeFieldVO.getAssignValue()); - - fields.add(field); - } - - flowNode.setFields(fields); - } - - // 读取动作和动作跳转 - List actionVOs = nodeVO.getColumns(); - if (actionVOs != null) { - List flowActions = new ArrayList<>(); - for (ActionVO actionVO: actionVOs) { - FlowAction flowAction = new FlowAction(); - - flowAction.setId(actionVO.getId()); - flowAction.setType(mapValue(ACTION_TYPE_MAP, actionVO.getType())); - - ActionPropsVO actionPropsVO = actionVO.getProps(); - if (actionPropsVO != null) { - flowAction.setLabel(actionPropsVO.getLabel()); - } - - flowActions.add(flowAction); - - List connectionVOS = actionVO.getConnections(); - if (connectionVOS != null && connectionVOS.size() > 0) { - ConnectionVO connectionVO = connectionVOS.get(0); - - FlowConnection flowConnection = new FlowConnection(); - flowConnection.setToNodeId(connectionVO.getTo()); - - flowAction.setConnection(flowConnection); - } - } - - flowNode.setActions(flowActions); - } else { - if (flowNode.getType() != FlowNode.TYPE_END) { - addError(ModelLoaderError.ERROR_NODE, nodeVO.getId(), "活动节点缺少动作"); - } - } - - // 执行对象 - List nodeUsersVos = nodePropsVO.getUsers(); - if (nodeUsersVos != null) { - List flowNodeUsers = new ArrayList<>(); - for (NodeUsersVO nodeUsersVo: nodeUsersVos) { - FlowNodeUser flowNodeUser = new FlowNodeUser(); - flowNodeUser.setType(mapValue(USER_TYPE_MAP, nodeUsersVo.getType())); - flowNodeUser.setFilter(mapValue(USER_FILTER_MAP, nodeUsersVo.getFilter())); - - NodeUserTargetVO target = nodeUsersVo.getTarget(); - if (target != null && target.getUgId() != null) { - flowNodeUser.setTarget(target.getUgId() + ""); - } - - flowNodeUsers.add(flowNodeUser); - } - - flowNode.setUsers(flowNodeUsers); - } - } else { - addError(ModelLoaderError.ERROR_NODE, nodeVO.getId(), "活动节点缺少属性"); - } - - if (nodeMap.putIfAbsent(nodeVO.getId(), flowNode) != null) { - addError(ModelLoaderError.ERROR_NODE, nodeVO.getId(), "活动节点ID重复:" + nodeVO.getId()); - } - } - - // TODO 检查节点的连通性,死循环 - result.setNodeMap(nodeMap); - result.setBeginNode(beginFlowNode); - - return result; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ActionPropsVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ActionPropsVO.java deleted file mode 100644 index 2559508..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ActionPropsVO.java +++ /dev/null @@ -1,8 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -@Data -public class ActionPropsVO { - private String label; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ActionVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ActionVO.java deleted file mode 100644 index 71189e9..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ActionVO.java +++ /dev/null @@ -1,20 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -import java.util.List; - -@Data -public class ActionVO { - public static final String TYPE_COMMIT = "commitAction"; - public static final String TYPE_SAVE = "saveAction"; - public static final String TYPE_RETURN = "returnAction"; - public static final String TYPE_TRANSMIT = "transmitAction"; - public static final String TYPE_FINISH = "finishAction"; - public static final String TYPE_REJECT = "rejectAction"; - - private String id; - private String type; - private List connections; - private ActionPropsVO props; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ConnectionVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ConnectionVO.java deleted file mode 100644 index e228210..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/ConnectionVO.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -@Data -public class ConnectionVO { - private String id; - private String to; - private String type; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowDatabaseVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowDatabaseVO.java deleted file mode 100644 index 5a0370d..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowDatabaseVO.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -@Data -public class FlowDatabaseVO { - private long modelId; - private String modelName; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowPropsVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowPropsVO.java deleted file mode 100644 index d8fd2ae..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowPropsVO.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -@Data -public class FlowPropsVO { - private FlowDatabaseVO dm; - private FlowTableVO table; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowTableVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowTableVO.java deleted file mode 100644 index 5c8a409..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowTableVO.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -@Data -public class FlowTableVO { - private String id; - private String label; - private String name; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowVO.java deleted file mode 100644 index e8db866..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/FlowVO.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -import java.util.List; - -/** - * @author xkliu - */ -@Data -public class FlowVO { - private String id; - private List nodes; - private FlowPropsVO props; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeFieldVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeFieldVO.java deleted file mode 100644 index 1633989..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeFieldVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -@Data -public class NodeFieldVO { - public static final String PERM_READ = "read"; - public static final String PERM_WRITE = "write"; - public static final String PERM_HIDE = "hide"; - public static final String PERM_DISABLE = "disable"; - - private String id; - private String name; - private String label; - private String perm; - private boolean notNull; - private String assignValue; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodePropsVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodePropsVO.java deleted file mode 100644 index 2c9644b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodePropsVO.java +++ /dev/null @@ -1,21 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -import java.util.List; - -@Data -public class NodePropsVO { - /** 标题 */ - private String label; - /** 英文名称 */ - private String name; - /** 禁止提醒 */ - private String disableNotify; - /** 表单权限 */ - private List fields; - /** 执行人参照 */ - private String userReference; - /** 执行人列表 */ - private List users; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeUserTargetVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeUserTargetVO.java deleted file mode 100644 index 046f19c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeUserTargetVO.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -@Data -public class NodeUserTargetVO { - private Long ugId; - private String ugName; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeUsersVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeUsersVO.java deleted file mode 100644 index 8c0e74c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeUsersVO.java +++ /dev/null @@ -1,44 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -/** 执行人 */ -@Data -public class NodeUsersVO { - /** 所有人 */ - public static final String TYPE_ALL = "all"; - /** 角色 */ - public static final String TYPE_ROLE = "role"; - /** 用户组 */ - public static final String TYPE_USER_GROUP = "userGroup"; - /** 用户 */ - public static final String TYPE_USER = "user"; - /** 部门 */ - public static final String TYPE_DEPT = "dept"; - /** 表单字段 */ - public static final String TYPE_FIELD = "field"; - /** 表达式 */ - public static final String TYPE_EXP = "exp"; - /** API接口 */ - public static final String TYPE_API = "api"; - - /** 本部门 */ - public static final String FILTER_CUR_DEPT = "curDept"; - /** 子部门 */ - public static final String FILTER_SUB_DEPT = "subDept"; - /** 上级部门 */ - public static final String FILTER_UP_DEPT = "upDept"; - /** 本人 */ - public static final String FILTER_CUR_USER = "curUser"; - /** 本部门负责人 */ - public static final String FILTER_CUR_MANAGER = "curManager"; - /** 上级部门负责人 */ - public static final String FILTER_UP_MANAGER = "upManager"; - - /** 类型 */ - private String type; - /** 目标值 */ - private NodeUserTargetVO target; - /** 过滤条件 */ - private String filter; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeVO.java deleted file mode 100644 index 7b0c72b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/loader/vo/NodeVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.loader.vo; - -import lombok.Data; - -import java.util.List; - -@Data -public class NodeVO { - /** 开始 */ - public static final String TYPE_BEGIN = "beginNode"; - /** 结束 */ - public static final String TYPE_END = "endNode"; - /** 任务 */ - public static final String TYPE_MANUAL = "manualNode" ; - /** 会签 */ - public static final String TYPE_MULTI_SIGN = "multSignNode"; - /** 条件 */ - public static final String TYPE_CONDITION = "conditionNode"; - /** 分支 */ - public static final String TYPE_SPLIT = "splitNode"; - /** 聚合 */ - public static final String TYPE_MERGE = "mergeNode"; - /** 子流程 */ - public static final String TYPE_SUB_FLOW = "subFlowNode"; - /** 自动 */ - public static final String TYPE_AUTO = "autoNode"; - - private String id; - private String type; - private List columns; - private NodePropsVO props; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ConditionExpression.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ConditionExpression.java deleted file mode 100644 index 15a3d46..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ConditionExpression.java +++ /dev/null @@ -1,26 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; - -/** - * 条件表达式处理器 - * @author kevin - */ -public class ConditionExpression { - private ExpressionParser parser = new SpelExpressionParser(); - private StandardEvaluationContext context; - - public ConditionExpression(ProcessContext rootObject) { - context = new StandardEvaluationContext(rootObject); - } - - public Object execute(String condition) { - return parser.parseExpression(condition).getValue(context); - } - - public T execute(String condition, Class clazz) { - return parser.parseExpression(condition).getValue(context, clazz); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessContext.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessContext.java deleted file mode 100644 index c95b3ac..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessContext.java +++ /dev/null @@ -1,12 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import cc.smtweb.framework.core.common.SwMap; -import lombok.Data; - -@Data -public class ProcessContext { - /** 流程上下文变量 */ - private SwMap vars; - /** 数据 */ - private SwMap data; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessInfo.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessInfo.java deleted file mode 100644 index 378040b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessInfo.java +++ /dev/null @@ -1,30 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import lombok.Data; - -@Data -public class ProcessInfo { - protected Long id; - private Long parentId; - private Long rootId; - private Long businessKey; - private String name; - private byte priority; - /** 乐观锁 */ - protected int lockRev; - - private boolean concurrent; - - private long createAt; - - private long updateAt; - - public void assign(ProcessInfo source) { - this.parentId = source.parentId; - this.rootId = source.rootId; - this.businessKey = source.businessKey; - this.name = source.name; - this.priority = source.priority; - } - -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessInstance.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessInstance.java deleted file mode 100644 index d2b4a3b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessInstance.java +++ /dev/null @@ -1,160 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.exception.BpmObjectNotFoundException; -import cc.smtweb.system.bpm.engine.process.vo.Flow; -import cc.smtweb.system.bpm.engine.process.vo.FlowAction; -import cc.smtweb.system.bpm.engine.process.vo.FlowConnection; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.lang3.StringUtils; - -import java.util.List; - -public class ProcessInstance extends ProcessInfo { - @Getter - private Flow flow; - - @Getter - private ModelTable modelTable; - - @Getter - private FlowNode curNode; - - @Getter @Setter - private ConditionExpression conditionExpression; - - @Getter - private ProcessRoute processRoute = new ProcessRoute(); - - public ProcessInstance(long id, Flow flow, ModelTable modelTable) { - this.id = id; - this.flow = flow; - this.modelTable = modelTable; - } - - /** 添加乐观锁计数,在修改记录成功后调用 */ - public void incLockRev() { - this.lockRev++; - } - - public FlowNode nextNode(int actionType) { - if (curNode != null) { - List actions = curNode.getActions(); - if (actions != null) { - for (FlowAction action: actions) { - if (action.getType() == actionType) { - FlowConnection connection = action.getConnection(); - - if (connection != null) { - String nodeId = connection.getToNodeId(); - return this.flow.findNode(nodeId); - } - - break; - } - } - } - } - - return null; - } - - public FlowAction checkAndGetCurNodeAction(String actionId) { - if (curNode == null) { - throw new BpmObjectNotFoundException("current node is null"); - } - - return curNode.checkAndGetAction(actionId); - } - - public FlowNode nextNode(String actionId) { - if (curNode != null) { - List actions = curNode.getActions(); - if (actions != null) { - for (FlowAction action: actions) { - if (actionId.equals(action.getId())) { - FlowConnection connection = action.getConnection(); - - if (connection != null) { - String nodeId = connection.getToNodeId(); - return this.flow.findNode(nodeId); - } - - break; - } - } - } - } - - return null; - } - - public void setCurNode(FlowNode flowNode, boolean addRoute) { - this.curNode = flowNode; - if (addRoute) { - this.processRoute.setNode(flowNode); - } - } - - public FlowNode nextNode(FlowAction flowAction) { - FlowConnection connection = flowAction.getConnection(); - - if (connection != null) { - String nodeId = connection.getToNodeId(); - return this.flow.findNode(nodeId); - } - - return null; - } - - public ProcessInstance createSubProcess(long id, FlowNode flowNode) { - ProcessInstance result = new ProcessInstance(id, flow, modelTable); - - result.assign(this); - result.setParentId(this.getId()); - result.curNode = flowNode; - result.conditionExpression = conditionExpression; - - // 添加当前路由节点 - this.processRoute.addSubProcess(result); - - return result; - } - - public String postRoute() { - ProcessRouteInfo info = this.processRoute.post(); - - if (info != null) { - return JsonUtil.encodeString(info); - } - - return null; - } - - public void fillRoute(String processRoute) { - if (StringUtils.isNotBlank(processRoute)) { - this.processRoute.setInfo(JsonUtil.parse(processRoute, ProcessRouteInfo.class)); - } - } - - public ProcessInstance createSame(long id) { - ProcessInstance result = new ProcessInstance(id, flow, modelTable); - - result.assign(this); - result.setParentId(this.getId()); - result.conditionExpression = conditionExpression; - result.processRoute = this.processRoute; - - return result; - } - - // 从日志恢复数据,新建流程 - public void resume(long newId) { - this.id = newId; - this.setCreateAt(0L); - this.setUpdateAt(0L); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRoute.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRoute.java deleted file mode 100644 index 163ed5a..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRoute.java +++ /dev/null @@ -1,91 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import lombok.Getter; -import lombok.Setter; - -import java.util.ArrayList; -import java.util.List; - -public class ProcessRoute { - @Getter @Setter - private FlowNode node; - @Getter - private List subList; - - @Getter @Setter - private ProcessRouteInfo info; - - public void addSubProcess(ProcessInstance process) { - if (subList == null) { - subList = new ArrayList<>(); - } - - subList.add(process); - } - - public ProcessRouteInfo post() { - if (info == null) { - info = new ProcessRouteInfo(); - info.setRoutes(new ArrayList<>()); - } - - if (node != null || subList != null) { - ProcessRouteItem item = new ProcessRouteItem(); - item.setNode(node.getId()); - - if (subList != null) { - List list = new ArrayList<>(); - for (ProcessInstance pi: subList) { - list.add(pi.getId()); - } - - item.setSub(list); - subList = null; - } - - node = null; - } - - return info; - } - - public ProcessRouteItem findRouteByProcess(long processId) { - if (info != null) { - List routes = info.getRoutes(); - if (routes != null) { - for (int i = routes.size() - 1; i >= 0; i--) { - ProcessRouteItem item = routes.get(i); - - if (item.findProcess(processId)) { - return item; - } - } - } - } - - return null; - } - - public ProcessRouteItem returnRoute() { - if (info != null) { - List routes = info.getRoutes(); - if (routes != null && routes.size() > 0) { - return routes.remove(routes.size() - 1); - } - } - - return null; - } - - public ProcessRouteItem lastRoute() { - if (info != null) { - List routes = info.getRoutes(); - if (routes != null && routes.size() > 0) { - return routes.get(routes.size() - 1); - } - } - - return null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRouteInfo.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRouteInfo.java deleted file mode 100644 index adcb407..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRouteInfo.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import lombok.Data; - -import java.util.List; - -@Data -public class ProcessRouteInfo { - private List routes; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRouteItem.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRouteItem.java deleted file mode 100644 index fe34437..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/ProcessRouteItem.java +++ /dev/null @@ -1,25 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import lombok.Data; - -import java.util.List; - -@Data -public class ProcessRouteItem { - /** 节点Key */ - private String node; - /** 子流程ID */ - private List sub; - - public boolean findProcess(long processId) { - if (sub != null) { - for (Long id: sub) { - if (id == processId) { - return true; - } - } - } - - return false; - } -} \ No newline at end of file diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/Route.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/Route.java deleted file mode 100644 index f35468a..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/Route.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import lombok.Getter; - -@Getter -public class Route { - private final ProcessInstance process; - private final FlowNode node; - - public Route(ProcessInstance process, FlowNode node) { - this.process = process; - this.node = node; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/RouteInfo.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/RouteInfo.java deleted file mode 100644 index b2ba447..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/RouteInfo.java +++ /dev/null @@ -1,23 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -import cc.smtweb.system.bpm.core.exception.BpmIlegalArgumentException; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import lombok.Getter; - -import java.util.ArrayList; -import java.util.List; - -@Getter -public class RouteInfo { - List routes = new ArrayList<>(); - - public void add(ProcessInstance process, FlowNode node) { - if (routes.size() > 1000) { - // 避免死循环 - throw new BpmIlegalArgumentException("route count out of range"); - } - - process.setCurNode(node, true); - routes.add(new Route(process, node)); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/VariableInstance.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/VariableInstance.java deleted file mode 100644 index 1fbec5b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/runtime/VariableInstance.java +++ /dev/null @@ -1,4 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.runtime; - -public class VariableInstance { -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/Task.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/Task.java deleted file mode 100644 index 267efec..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/Task.java +++ /dev/null @@ -1,32 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.task; - -import cc.smtweb.system.bpm.engine.process.runtime.ProcessInstance; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import lombok.Getter; - -public class Task extends TaskInfo { - @Getter - private ProcessInstance processInstance; - - /** 需要选人的节点ID */ -// @Getter @Setter -// private String nextNodeKey; - - @Getter - private String nodeKey; - - public Task(long id, ProcessInstance processInstance) { - this.id = id; - this.processInstance = processInstance; - FlowNode curNode = processInstance.getCurNode(); - - if (curNode != null) { - this.setName(curNode.getLabel()); - this.nodeKey = curNode.getId(); - } - } - - public void incLockRev() { - this.lockRev++; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/TaskCommitInfo.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/TaskCommitInfo.java deleted file mode 100644 index 83b1f0a..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/TaskCommitInfo.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.task; - -import lombok.Data; - -@Data -public class TaskCommitInfo { - private String nodeKey; - private long userId; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/TaskInfo.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/TaskInfo.java deleted file mode 100644 index e2180d0..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/task/TaskInfo.java +++ /dev/null @@ -1,28 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.task; - -import lombok.Data; - -@Data -public class TaskInfo { - protected long id; - - private Long uiId; - - private Long parentId; - /** 处理人 */ - private long assigneeUserId; - /** 委托人 */ - private Long ownerUserId; - - private String name; - - private byte priority; - /** 乐观锁 */ - protected int lockRev; - - private int isSuspension; - - private long createAt; - - private long updateAt; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/Flow.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/Flow.java deleted file mode 100644 index d6917cd..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/Flow.java +++ /dev/null @@ -1,29 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.vo; - -import cc.smtweb.system.bpm.core.exception.BpmObjectNotFoundException; -import lombok.Data; - -import java.io.Serializable; -import java.util.Map; - -@Data -public class Flow implements Serializable { - private Map nodeMap; - private FlowNode beginNode; - private FlowTable table; - private long id; - - public FlowNode findNode(String nodeId) { - return this.nodeMap.get(nodeId); - } - - public FlowNode checkAndGetNode(String nodeKey) { - FlowNode flowNode = findNode(nodeKey); - - if (flowNode == null) { - throw new BpmObjectNotFoundException("not find node by key: " + nodeKey); - } - - return flowNode; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowAction.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowAction.java deleted file mode 100644 index 0ec48a7..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowAction.java +++ /dev/null @@ -1,29 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.vo; - -import cc.smtweb.system.bpm.core.exception.BpmObjectNotFoundException; -import lombok.Data; - -@Data -public class FlowAction { - public static final int TYPE_COMMIT = 1; - public static final int TYPE_SAVE = 2; - public static final int TYPE_RETURN = 3; - public static final int TYPE_TRANSMIT = 4; - public static final int TYPE_FINISH = 5; - public static final int TYPE_REJECT = 6; - - private String id; - private int type; - private String label; - private FlowConnection connection; - /** 条件表达式 */ - private String expression; - - public FlowConnection checkAndGetConnection() { - if (connection == null) { - throw new BpmObjectNotFoundException("未找Action的连接, action_id=" + id); - } - - return connection; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowConnection.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowConnection.java deleted file mode 100644 index d584e61..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowConnection.java +++ /dev/null @@ -1,8 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.vo; - -import lombok.Data; - -@Data -public class FlowConnection { - private String toNodeId; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNode.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNode.java deleted file mode 100644 index 284fc55..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNode.java +++ /dev/null @@ -1,79 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.vo; - -import cc.smtweb.system.bpm.core.exception.BpmObjectNotFoundException; -import lombok.Data; - -import java.util.List; - -/** - * @author xkliu - * 流程的活动节点对象 - */ -@Data -public class FlowNode { - /** 开始 */ - public static final int TYPE_BEGIN = 10; - /** 结束 */ - public static final int TYPE_END = 20; - /** 任务 */ - public static final int TYPE_MANUAL = 30; - /** 会签 */ - public static final int TYPE_MULTI_SIGN = 40; - /** 条件 */ - public static final int TYPE_CONDITION = 50; - /** 分支 */ - public static final int TYPE_SPLIT = 60; - /** 聚合 */ - public static final int TYPE_MERGE = 70; - /** 子流程 */ - public static final int TYPE_SUB_FLOW = 80; - /** 自动 */ - public static final int TYPE_AUTO = 90; - - /** 活动类型,枚举值参考TYPE_XXX */ - private int type; - - private String id; - /** 标题 */ - private String label; - /** 英文名称 */ - private String name; - /** 禁止提醒 */ - private String disableNotify; - /** 字段权限列表 */ - private List fields; - /** 执行人列表 */ - private List users; - /** 动作列表 */ - private List actions; - - public FlowAction findAction(int typeCommit) { - for (FlowAction flowAction: actions) { - if (flowAction.getType() == typeCommit) { - return flowAction; - } - } - - return null; - } - - public FlowAction checkAndGetAction(String actionKey) { - FlowAction nextFlowAction = findAction(actionKey); - - if (nextFlowAction == null) { - throw new BpmObjectNotFoundException("未找到Action, action_key=" + actionKey); - } - - return nextFlowAction; - } - - private FlowAction findAction(String actionKey) { - for (FlowAction flowAction: actions) { - if (flowAction.getId().equals(actionKey)) { - return flowAction; - } - } - - return null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNodeField.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNodeField.java deleted file mode 100644 index 904071b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNodeField.java +++ /dev/null @@ -1,17 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.vo; - -import lombok.Data; - -@Data -public class FlowNodeField { - public static final int PERM_READ = 1; - public static final int PERM_WRITE = 2; - public static final int PERM_HIDE = 3; - public static final int PERM_DISABLE = 4; - - private String id; - private String label; - private int perm; - private boolean notNull; - private String defaultValue; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNodeUser.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNodeUser.java deleted file mode 100644 index fa1af65..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowNodeUser.java +++ /dev/null @@ -1,42 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.vo; - -import lombok.Data; - -@Data -public class FlowNodeUser { - /** 所有人 */ - public static final int TYPE_ALL = 0; - /** 角色 */ - public static final int TYPE_ROLE = 1; - /** 用户组 */ - public static final int TYPE_USER_GROUP = 2; - /** 用户 */ - public static final int TYPE_USER = 3; - /** 部门 */ - public static final int TYPE_DEPT = 4; - /** 表单字段 */ - public static final int TYPE_FIELD = 5; - /** 表达式 */ - public static final int TYPE_EXP = 6; - /** API接口 */ - public static final int TYPE_API = 7; - - /** 本部门 */ - public static final int FILTER_NONE = 0; - /** 本部门 */ - public static final int FILTER_CUR_DEPT = 1; - /** 子部门 */ - public static final int FILTER_SUB_DEPT = 2; - /** 上级部门 */ - public static final int FILTER_UP_DEPT = 3; - /** 本人 */ - public static final int FILTER_CUR_USER = 4; - /** 本部门负责人 */ - public static final int FILTER_CUR_MANAGER = 5; - /** 上级部门负责人 */ - public static final int FILTER_UP_MANAGER = 6; - - private int type; - private String target; - private int filter; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowTable.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowTable.java deleted file mode 100644 index 74daacf..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/process/vo/FlowTable.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.engine.process.vo; - -import lombok.Data; - -@Data -public class FlowTable { - private long modelId; - private String id; - private String name; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/IFormDataStore.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/IFormDataStore.java deleted file mode 100644 index fafff9e..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/IFormDataStore.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.session.UserSession; - -public interface IFormDataStore { - SwMap load(Long processId, Long processRootId); - void save(Long processId, Long processRootId, Long taskId, Long businessKey, String tabelName, SwMap body, UserSession us); -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/AbstractVelocityEngine.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/AbstractVelocityEngine.java deleted file mode 100644 index 69cce87..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/AbstractVelocityEngine.java +++ /dev/null @@ -1,184 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.codegen; - -import cc.smtweb.framework.core.common.R; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.VelocityEngine; -import org.apache.velocity.runtime.RuntimeConstants; -import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader; - -import java.io.*; - -public abstract class AbstractVelocityEngine { - private static final int DIGEST_SIZE = 9+64+9+17; - private static final int MIN_FILE_SIZE = DIGEST_SIZE + 4; - private static final int MAX_FILE_SIZE = 1024 * 1024 *10; - - private VelocityEngine ve = new VelocityEngine(); - protected VelocityContext ctx; - - public AbstractVelocityEngine() { - ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); - ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName()); - ve.init(); - } - - /** 生成文件,通过签名检查就替换文件 */ - public R buildUseSign(long id, String templateFile, File destFile) throws IOException { - // 载入(获取)模板对象 - Template t = ve.getTemplate(templateFile); -// VelocityContext ctx = getVelocityContext(uiPage, uiPageRef); - File tmpFile = new File(destFile.getAbsoluteFile() + ".tmp"); - - Sha256OutputStream shaOutputStream = new Sha256OutputStream(new FileOutputStream(tmpFile), true); - - try(Writer writer = new OutputStreamWriter(shaOutputStream)) { - t.merge(ctx, writer); - - writer.flush(); - String sha256 = shaOutputStream.sha256Hex(); - int digestSize = shaOutputStream.digestSize(); - - // 写入11+64+9+17字节签名 - if (destFile.getName().endsWith(".vue")) { - writer.write(String.format("\n\n", sha256, digestSize, id)); - } else { // ts / java - writer.write(String.format("\n/* ![%s,%08x,%016x] */\n", sha256, digestSize, id)); - } - } - - // 签名对比是否手动修改 - if (destFile.exists()) { - R r = checkOldFile(id, destFile); - if (r != null) { - return r; - } - - destFile.delete(); - } - - // 更名正式文件 - if (!tmpFile.renameTo(destFile)) { - return R.error("写文件失败,请用tmp文件手动替换!"); - } - - return null; - } - - /** 生成文件,文件不存在就替换文件 */ - public R build(String templateFile, File destFile) throws IOException { - if (!destFile.exists()) { - // 载入(获取)模板对象 - Template t = ve.getTemplate(templateFile); -// VelocityContext ctx = getVelocityContext(uiPage, uiPageRef); - - try(Writer writer = new OutputStreamWriter(new FileOutputStream(destFile))) { - t.merge(ctx, writer); - } - } - - return null; - } - - protected R checkOldFile(Long modelId, File vmFile) throws IOException { - // TODO 判断签名是否可以覆盖 - long vmFileLength = vmFile.length(); - if (vmFileLength <= MIN_FILE_SIZE) { - return R.error("文件太小:" + vmFileLength); - } - - if (vmFileLength > MAX_FILE_SIZE) { - return R.error("文件太大:" + vmFileLength); - } - - try (RandomAccessFile raFile = new RandomAccessFile(vmFile, "r")) { - raFile.seek(vmFile.length() - MIN_FILE_SIZE); - byte[] digest = new byte[MIN_FILE_SIZE]; - if (raFile.read(digest) != MIN_FILE_SIZE) { - return R.error("读取签名数据失败"); - } - - // 查找签名行 - String[] tokens = null; - int digestEnd = 0; - for (int i = digest.length - 1; i >= 0; i--) { - byte b = digest[i]; - if (b >= 0 && b <= 20) { - // 换行符 - if (digestEnd > 0) { - if (digestEnd - i == DIGEST_SIZE) { - String line = new String(digest, i + 1, digestEnd - i); - tokens = line.substring(5, line.length() - 4).split(","); - vmFileLength -= digest.length - i; - } - - break; - } - } else { - // 有效字符 - if (digestEnd == 0) { - digestEnd = i; - } - } - } - - if (tokens == null) { - return R.error("未找到签名数据"); - } - -// String[] tokens = line.substring(6, line.length() - 5).split(","); - if (tokens.length < 3) { - return R.error("签名格式出错"); - } - // sha256,size,id - long id = Long.parseLong(tokens[2].trim(), 16); - if (id != modelId) { - return R.error("文件ID值不一致:" + id); - } - - int size = (int) (vmFileLength); // - DIGEST_SIZE - - raFile.seek(0); - byte[] fileData = new byte[size]; - if (raFile.read(fileData) != size) { - return R.error("读取文件失败"); - } - - Sha256Helper sha256Helper = new Sha256Helper(true); - sha256Helper.write(fileData); - String sha256 = sha256Helper.sha256Hex(); - - if (!sha256.equals(tokens[0].trim())) { - return R.error("文件签名比对失败,文件内容请参考tmp文件手动调整!"); - } - - int oldSize = Integer.parseInt(tokens[1].trim(), 16); - if (oldSize != sha256Helper.digestSize()) { - return R.error("文件尺寸校验失败,文件内容请参考tmp文件手动调整!"); - } - } - - return null; - } - - private String[] findDigestLine(byte[] digest) { - int stop = 0; - for (int i = digest.length - 1; i >= 0; i--) { - byte b = digest[i]; - if (stop > 0 && b >= 0 && b <= 20) { - if (stop - i == DIGEST_SIZE) { - String line = new String(digest, i, stop - i); -// String[] tokens = line.substring(6, line.length() - 5).split(","); - return line.substring(5, line.length() - 4).split(","); - } else { - return null; - } - } else if (b < 0 || b > 20) { - stop = i; - } - } - - return null; - } - -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/DefaultVelocityEngine.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/DefaultVelocityEngine.java deleted file mode 100644 index 28cbbcd..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/DefaultVelocityEngine.java +++ /dev/null @@ -1,16 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.codegen; - -import org.apache.velocity.VelocityContext; - -public class DefaultVelocityEngine extends AbstractVelocityEngine{ - public DefaultVelocityEngine() { - this.ctx = new VelocityContext(); - ctx.put("vmTool", new VmTool()); - } - - public DefaultVelocityEngine put(String key, Object value) { - this.ctx.put(key, value); - - return this; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/Sha256Helper.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/Sha256Helper.java deleted file mode 100644 index 5cf8ddf..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/Sha256Helper.java +++ /dev/null @@ -1,80 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.codegen; - -import org.apache.commons.codec.binary.Hex; -import org.apache.commons.codec.digest.DigestUtils; - -import java.io.IOException; -import java.security.MessageDigest; - -public class Sha256Helper { - // 是否跳过空字符(\r\n\t )和(逗号,分号,单引号,双引号),避免格式化后不能生成代码 - private boolean skipSpaceChar; - private MessageDigest md = DigestUtils.getSha256Digest(); - private int size; - public static final byte[] SPACE_CHAR = new byte[256]; - - static { - SPACE_CHAR[' '] = 1; - SPACE_CHAR['\r'] = 2; - SPACE_CHAR['\n'] = 3; - SPACE_CHAR['\t'] = 1; - SPACE_CHAR[','] = 1; - SPACE_CHAR[';'] = 1; - SPACE_CHAR['\''] = 1; - SPACE_CHAR['"'] = 1; - } - - public Sha256Helper(boolean skipSpaceChar) { - this.skipSpaceChar = skipSpaceChar; - } - - public void write(int b) throws IOException { - if (md != null) { - if (skipSpaceChar) { - digitUpdate(md, (byte) b); - } else { - md.update((byte) b); - size ++; - } - } - } - - public void write(byte[] b) { - write(b, 0, b.length); - } - - public void write(byte[] b, int off, int len) { - if (md != null) { - if (skipSpaceChar) { - for (int i = off; i < off + len; i++) { - digitUpdate(md, b[i]); - } - } else { - md.update(b, off, len); - size += len; - } - } - } - - private void digitUpdate(MessageDigest md, byte ch) { - // != ' ' && ch != '\r' && ch != '\n' && ch != '\t' && ch != ',' && ch != ';' && ch != '\'' && ch != '"' - if (ch < 0 || SPACE_CHAR[ch] == 0) { - md.update(ch); - size++; - } - } - - public String sha256Hex() { - String reuslt = null; - if (md != null) { - reuslt = Hex.encodeHexString(md.digest()); - md = null; - } - - return reuslt; - } - - public int digestSize() { - return size; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/Sha256OutputStream.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/Sha256OutputStream.java deleted file mode 100644 index 6630104..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/Sha256OutputStream.java +++ /dev/null @@ -1,45 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.codegen; - -import java.io.IOException; -import java.io.OutputStream; - -public class Sha256OutputStream extends OutputStream { - private final OutputStream os; - // 是否跳过空字符和逗号(\r\n\t ),避免格式化后不能生成代码 - private Sha256Helper md; - - public Sha256OutputStream(OutputStream os, boolean skipSpaceChar) { - this.os = os; - this.md = new Sha256Helper(skipSpaceChar); - } - - @Override - public void write(int b) throws IOException { - os.write(b); - md.write(b); - } - - @Override - public void write(byte[] b, int off, int len) throws IOException { - os.write(b, off, len); - md.write(b, off, len); - } - - @Override - public void flush() throws IOException { - os.flush(); - } - - @Override - public void close() throws IOException { - os.close(); - } - - public String sha256Hex() { - return md.sha256Hex(); - } - - public int digestSize() { - return md.digestSize(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/VmTool.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/VmTool.java deleted file mode 100644 index cc09ab8..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/codegen/VmTool.java +++ /dev/null @@ -1,121 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.codegen; - -import cc.smtweb.framework.core.util.jackson.*; -import cc.smtweb.system.bpm.util.CodeGenUtil; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.json.JsonWriteFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.json.JsonMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import org.apache.commons.lang3.StringUtils; - -import java.sql.Timestamp; - -/** - * Velocity生成用的工具函数 - * @author xkliu - */ -public class VmTool { - private final ObjectMapper OBJECT_MAPPER = JsonMapper.builder() - .disable(JsonWriteFeature.QUOTE_FIELD_NAMES).build(); - - private final ObjectMapper OBJECT_MAPPER_FULL = JsonMapper.builder() - .disable(JsonWriteFeature.QUOTE_FIELD_NAMES).build(); - - VmTool() { - OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL); - OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); - OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_DEFAULT); - initObjectMapper(OBJECT_MAPPER); - - OBJECT_MAPPER_FULL.setSerializationInclusion(JsonInclude.Include.ALWAYS); - initObjectMapper(OBJECT_MAPPER_FULL); - } - - private void initObjectMapper(ObjectMapper objectMapper) { - SimpleModule module = new SimpleModule(); - LongSerializer longSerializer = new LongSerializer(); - module.addSerializer(Long.class, longSerializer); - module.addSerializer(Long.TYPE, longSerializer); - - DateSerializer dateSerializer = new DateSerializer(); - module.addSerializer(java.sql.Date.class, dateSerializer); - TimeSerializer timeSerializer = new TimeSerializer(); - module.addSerializer(java.sql.Time.class, timeSerializer); - - module.addDeserializer(Timestamp.class, new TimestampDeserializer()); - module.addDeserializer(java.util.Date.class, new DateDeserializer()); - - objectMapper.registerModule(module); - } - - public String json(Object obj) throws JsonProcessingException { - return OBJECT_MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(obj); - } - - public String jsonFull(Object obj) throws JsonProcessingException { - return OBJECT_MAPPER_FULL.writerWithDefaultPrettyPrinter().writeValueAsString(obj); - } - - public String gridArea(int x, int y, int w, int h) { - return (y + 1) + "/" + (x + 1) + "/ span " + h + "/span " + w; - } - - public int length(Object[] list) { - if (list != null) { - return list.length; - } - - return 0; - } - - public String toHump(String value) { - return CodeGenUtil.underlineToHump(value); - } - - public String toUpperHump(String value) { - return CodeGenUtil.underlineToUpperHump(value); - } - - /** - * 生成模板属性,根据不同的值类型进行处理 - */ - public String htmlProp(String key, Object value) throws JsonProcessingException { - if (value != null) { - String name = CodeGenUtil.humpToDash(key); - if (value instanceof Boolean) { - if (Boolean.TRUE.equals(value)) { - return name; - } - return ""; - } else if (value instanceof Number) { - return ":" + name + "=\"" + value + "\""; - } else if (value instanceof String) { - if (StringUtils.isNotBlank((String)value)) { - return name + "=\"" + value + "\""; - } - } else { - return ":" + name + "=\"" + escapeJson(OBJECT_MAPPER.writeValueAsString(value)) + "\""; - } - } - - return ""; - } - - private String escapeJson(String value) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < value.length(); i++) { - char ch = value.charAt(i); - if (ch == '\"') { - sb.append('\''); - } else if (ch == '\'') { - sb.append("\\'"); - } else { - sb.append(ch); - } - } - - return sb.toString(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/BiMapEnum.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/BiMapEnum.java deleted file mode 100644 index c2a1a53..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/BiMapEnum.java +++ /dev/null @@ -1,54 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.consts; - -import java.util.HashMap; -import java.util.Map; - -public class BiMapEnum { - private Map normalMap = new HashMap<>(); - private Map reverseMap = new HashMap<>(); - - public V put(K key, V value) { - if (key != null && value != null) { - V result = normalMap.put(key, value); - reverseMap.put(value, key); - - return result; - } - - return null; - } - - public V getValue(K key) { - return normalMap.get(key); - } - - public K getKey(V value) { - return reverseMap.get(value); - } - - public V remove(K key) { - V result = normalMap.remove(key); - if (result != null) { - reverseMap.remove(result); - } - - return result; - } - - public K addEnum(K key, V value) { - put(key, value); - return key; - } - - public static class IntEnum extends BiMapEnum {} - -// public static class EnumBean { -// public K key; -// public V value; -// -// public EnumBean(K key, V value) { -// this.key = key; -// this.value = value; -// } -// } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/MappingTypeEnum.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/MappingTypeEnum.java deleted file mode 100644 index 92fc779..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/MappingTypeEnum.java +++ /dev/null @@ -1,48 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.consts; - -import lombok.Getter; -import org.apache.commons.lang3.StringUtils; - -/** - * 数据集映射关系 - * @author xkliu - */ -@Getter -public enum MappingTypeEnum { - // none, 1:1, 1:N, N:1, N:N - none, oneToOne, oneToMany, manyToOne, manyToMany; - - public static int toOrdinal(String name) { - return toEnum(name).ordinal(); - } - - public static MappingTypeEnum toEnum(String name) { - if (StringUtils.isNotBlank(name)) { - return valueOf(name); - } - - return none; - } - - public boolean sameOrdinal(int value) { - return ordinal() == value; - } - - public boolean sameName(String name) { - if (StringUtils.isNotBlank(name)) { - return name().equals(name); - } - - return this.equals(none); - } - - public boolean include(MappingTypeEnum ... args) { - for (MappingTypeEnum arg: args) { - if (arg.equals(this)) { - return true; - } - } - - return false; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/UiEnum.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/UiEnum.java deleted file mode 100644 index adb628f..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/consts/UiEnum.java +++ /dev/null @@ -1,47 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.consts; - -/** - * 界面相关枚举,字段作用 - * @author xkliu - */ -public interface UiEnum { - // 字段作用类型 - class FieldRefType extends BiMapEnum.IntEnum{ - /** 字段作用 */ - public static final int ID = 1; - public static final int PARENT_ID = 2; - public static final int CODE = 3; - public static final int PARENT_ID_LIST = 4; - public static final int TREE_LEVEL = 5; - public static final int CREATE_TIME = 6; - public static final int LAST_TIME = 7; - public static final int SITE_ID = 8; -// public static final int USER_ID = 9; - public static final int ORDER = 11; - public static final int TITLE = 21; - public static final int REMARK = 22; - - public static FieldRefType INSTANCE = new FieldRefType(); - private FieldRefType() { - addEnum(ID, "id"); - addEnum(PARENT_ID, "parentId"); - addEnum(CODE, "code"); - addEnum(ORDER, "order"); - addEnum(TITLE, "title"); - addEnum(REMARK, "remark"); - addEnum(PARENT_ID_LIST, "parentIdList"); - addEnum(TREE_LEVEL, "level"); - addEnum(CREATE_TIME, "createTime"); - addEnum(LAST_TIME, "lastTime"); - addEnum(SITE_ID, "siteId"); - } - } - - // 字段外键类型 - final class FieldLookupType extends BiMapEnum.IntEnum { - public static final FieldLookupType INSTANCE = new FieldLookupType(); - public static final int TABLE = INSTANCE.addEnum(1, "table"); - public static final int DICT = INSTANCE.addEnum(2, "dict"); - public static final int DATASET = INSTANCE.addEnum(3, "dataset"); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/po/DynFormLogPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/po/DynFormLogPO.java deleted file mode 100644 index 023c56d..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/po/DynFormLogPO.java +++ /dev/null @@ -1,18 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.po; - -import lombok.Data; - -import java.sql.Timestamp; - -@Data -public class DynFormLogPO { - private Long dflId; - - private String dflContent; - - private Integer dflLockRev; - - private Timestamp dflCreateAt; - - private Timestamp dflUpdateAt; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzApiVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzApiVO.java deleted file mode 100644 index 3fb0ce8..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzApiVO.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.dataset; - -import lombok.Data; - -@Data -public class FzApiVO { - private String name; - private String url; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzDatasetPropsVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzDatasetPropsVO.java deleted file mode 100644 index 101d3dc..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzDatasetPropsVO.java +++ /dev/null @@ -1,25 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.dataset; - -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDatasetSql; -import lombok.Data; - -@Data -public class FzDatasetPropsVO { - public static final String TYPE_MASTER = "master"; - public static final String TYPE_SLAVE = "slave"; - public static final String TYPE_LOOKUP = "lookup"; - - private String datasource; - private String table; - private String tableType; - private Integer dataModel; - private FzFieldVO[] fields; - private String masterDataset; - private FzMasterMappingVO masterFields; - private String customApi; - private String name; - private String label; - private boolean initData; - - private BpmDatasetSql sql; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzDatasetVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzDatasetVO.java deleted file mode 100644 index d637dc8..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzDatasetVO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.dataset; - -import lombok.Data; - -import java.util.Map; - -@Data -public class FzDatasetVO { - private String type; - private String id; - private FzDatasetPropsVO props; - private Map events; - private Map apis; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzFieldVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzFieldVO.java deleted file mode 100644 index 620a832..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzFieldVO.java +++ /dev/null @@ -1,12 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.dataset; - -import cc.smtweb.system.bpm.engine.ui.entity.vo.widiget.UiControlPropsVO; -import lombok.Data; - -@Data -public class FzFieldVO { - private String type; - private String id; - - private UiControlPropsVO props; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzMasterMappingVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzMasterMappingVO.java deleted file mode 100644 index 59d1d74..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/dataset/FzMasterMappingVO.java +++ /dev/null @@ -1,11 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.dataset; - -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmMappingField; -import lombok.Data; - -@Data -public class FzMasterMappingVO { - private String mappingType; - private String middleDataset; - private BpmMappingField[] fields; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/AbstractUiControlVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/AbstractUiControlVO.java deleted file mode 100644 index 4b8ae6c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/AbstractUiControlVO.java +++ /dev/null @@ -1,30 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import lombok.Data; - -import java.util.Map; - -@Data -//@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type", visible = true) -//@JsonSubTypes({ -// @JsonSubTypes.Type(value = FzDatasetVO.class, name = "fz-dataset"), -// @JsonSubTypes.Type(value = FyControlVO.class, name = "fy-datetime"), -// @JsonSubTypes.Type(value = FyControlVO.class, name = "fy-file"), -// @JsonSubTypes.Type(value = FyControlVO.class, name = "fy-image"), -// @JsonSubTypes.Type(value = FyControlVO.class, name = "fy-select"), -// @JsonSubTypes.Type(value = FyControlVO.class, name = "fy-switch"), -// @JsonSubTypes.Type(value = FyControlVO.class, name = "fy-text"), -// @JsonSubTypes.Type(value = FyControlVO.class, name = "fy-textarea"), -//}) - -public abstract class AbstractUiControlVO { - private String type; - private String id; - private int x; - private int y; - private int w; - private int h; - - private T props; - private Map events; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlDataVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlDataVO.java deleted file mode 100644 index 9dedb90..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlDataVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import lombok.Data; - -import java.util.Map; - -@Data -public class UiControlDataVO { - private String id; - // 变量名,系统自动根据 props.name 和 id 值设置 - private String name; - private String type; - private UiControlLayoutVO layout; - private UiControlPropsVO props; - private Map slots; - private Map vars; - private Map events; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlLayoutVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlLayoutVO.java deleted file mode 100644 index f8e5e8f..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlLayoutVO.java +++ /dev/null @@ -1,8 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import lombok.Data; - -@Data -public class UiControlLayoutVO { - private Integer col; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlPropsVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlPropsVO.java deleted file mode 100644 index 5c8eae8..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlPropsVO.java +++ /dev/null @@ -1,37 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import cc.smtweb.framework.core.common.SwMap; -import org.apache.commons.lang3.StringUtils; - -import java.util.List; - -public class UiControlPropsVO extends SwMap { - public List readList(String name) { - Object v = get(name); - - if (v instanceof List) { - return (List)v; - } - - return null; - } - - public boolean isNotBlank(String name) { - Object v = get(name); - if (v == null) { - return false; - } - - return StringUtils.isNotBlank(v.toString()); - } - - public SwMap readMap(String name) { - Object item = get(name); - - if (item instanceof SwMap) { - return (SwMap) item; - } - - return null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlVO.java deleted file mode 100644 index e3bca63..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiControlVO.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import lombok.Data; - -@Data -public class UiControlVO { - private int x; - private int y; - private int w; - private int h; - private int zIndex; - private String shape; - private UiControlDataVO data; - private UiControlVO[] children; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageControlVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageControlVO.java deleted file mode 100644 index 10ca533..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageControlVO.java +++ /dev/null @@ -1,8 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import lombok.Data; - -@Data -public class UiPageControlVO { - private UiPagePropsVO props; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageFormVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageFormVO.java deleted file mode 100644 index 7857ab0..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageFormVO.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import lombok.Data; - -@Data -public class UiPageFormVO { - private UiPageControlVO widget; - // tree struct - private UiControlVO graph; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPagePropsVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPagePropsVO.java deleted file mode 100644 index 621085c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPagePropsVO.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import lombok.Data; - -@Data -public class UiPagePropsVO { - private String title; - private String key; - private Boolean destroyOnClose; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageVO.java deleted file mode 100644 index a3f2763..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/vo/widiget/UiPageVO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.vo.widiget; - -import cc.smtweb.system.bpm.engine.ui.entity.vo.dataset.FzDatasetVO; -import lombok.Data; - -@Data -public class UiPageVO { - private Integer version; -// private UiPageControlVO page; -// // tree struct -// private UiControlVO graph; - private UiPageFormVO[] forms; - private FzDatasetVO[] model; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlDataset.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlDataset.java deleted file mode 100644 index 71d9724..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlDataset.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import lombok.Data; - -import java.util.List; - -@Data -public class YamlDataset { - private String name; - private String database; - private String table; - // 数据模型 - private String dataModel; - // 是否只读 - private boolean readonly; - private String customApi; - private Boolean initData; - // 与主表的映射关系 - private YamlMasterMapping masterMapping; - // 字段列表,name => UiField - private List fields; - - private YamlDatasetSql sql; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlDatasetSql.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlDatasetSql.java deleted file mode 100644 index 63fc864..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlDatasetSql.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import lombok.Data; - -@Data -public class YamlDatasetSql { - private String select; - private String update; - private String insert; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlField.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlField.java deleted file mode 100644 index ff7f1ca..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlField.java +++ /dev/null @@ -1,22 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import lombok.Data; - -@Data -public class YamlField { - private String name; - private String label; - private String fieldName; - private String type; - private String summary; - private String refType; - private String displayFormat; - private Boolean required; - private Boolean readonly; - private String validPatten; - private String validMessage; - private int filter; - private int filterType; - - private YamlFieldLookup lookup; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldFilter.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldFilter.java deleted file mode 100644 index 7b2d556..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldFilter.java +++ /dev/null @@ -1,16 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import lombok.Data; - -@Data -public class YamlFieldFilter { - @JacksonXmlProperty(isAttribute=true) - private String field; - @JacksonXmlProperty(isAttribute=true) - private int op; - @JacksonXmlProperty(isAttribute=true) - private String keyword; - @JacksonXmlProperty(isAttribute=true) - private boolean cascade; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldLookup.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldLookup.java deleted file mode 100644 index d895540..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldLookup.java +++ /dev/null @@ -1,36 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import lombok.Data; - -import java.util.List; - -@Data -public class YamlFieldLookup { - @JacksonXmlProperty(isAttribute=true) - private String type; - @JacksonXmlProperty(isAttribute=true) - private MappingTypeEnum mappingType; - @JacksonXmlProperty(isAttribute=true) - private boolean numberValue; - @JacksonXmlProperty(isAttribute=true) - private String db; - @JacksonXmlProperty(isAttribute=true) - private String table; - @JacksonXmlProperty(isAttribute=true) - private String keyField; - @JacksonXmlProperty(isAttribute=true) - private String labelField; - @JacksonXmlProperty(isAttribute=true) - private String parentField; - @JacksonXmlProperty(isAttribute=true) - private String orderField; - - private YamlFieldLookupMiddle middle; - - @JacksonXmlProperty(localName = "filter") - @JacksonXmlElementWrapper(useWrapping = false) - private List filters; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldLookupMiddle.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldLookupMiddle.java deleted file mode 100644 index d6d23ba..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldLookupMiddle.java +++ /dev/null @@ -1,16 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import lombok.Data; - -@Data -public class YamlFieldLookupMiddle { - @JacksonXmlProperty(isAttribute=true) - private String table; - @JacksonXmlProperty(isAttribute=true) - private String idField; - @JacksonXmlProperty(isAttribute=true) - private String keyField; - @JacksonXmlProperty(isAttribute=true) - private String valueField; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldValidator.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldValidator.java deleted file mode 100644 index 2675dd4..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlFieldValidator.java +++ /dev/null @@ -1,16 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import lombok.Data; - -@Data -public class YamlFieldValidator { - @JacksonXmlProperty(isAttribute=true) - private String type; - @JacksonXmlProperty(isAttribute=true) - private Boolean required; - @JacksonXmlProperty(isAttribute=true) - private String pattern; - @JacksonXmlProperty(isAttribute=true) - private String message; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlForm.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlForm.java deleted file mode 100644 index acbfd8b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlForm.java +++ /dev/null @@ -1,8 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import lombok.Data; - -@Data -public class YamlForm extends YamlWidget { - -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlMappingField.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlMappingField.java deleted file mode 100644 index d3b60e4..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlMappingField.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import lombok.Data; - -@Data -public class YamlMappingField { - @JacksonXmlProperty(isAttribute=true) - private String masterField; - @JacksonXmlProperty(isAttribute=true) - private String slaveField; - @JacksonXmlProperty(isAttribute=true) - private String middleField; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlMasterMapping.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlMasterMapping.java deleted file mode 100644 index 891dc26..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlMasterMapping.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import lombok.Data; - -import java.util.List; - -@Data -public class YamlMasterMapping { - // 映射到主表的类型 - @JacksonXmlProperty(isAttribute=true) - private String mappingType; - // 主表名 - @JacksonXmlProperty(isAttribute=true) - private String masterTable; - // 中间表名 - @JacksonXmlProperty(isAttribute=true) - private String middleTable; - // 映射字段列表 - @JacksonXmlProperty(localName = "mappingField") - @JacksonXmlElementWrapper(useWrapping = false) - private List mappingFields; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlPage.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlPage.java deleted file mode 100644 index 5b86673..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlPage.java +++ /dev/null @@ -1,13 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import lombok.Data; - -import java.util.List; - -@Data -public class YamlPage { - private Long id; - private List datasets; - private List forms; - private Boolean destroyOnClose; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlWidget.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlWidget.java deleted file mode 100644 index 1e95ba6..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlWidget.java +++ /dev/null @@ -1,29 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import lombok.Data; - -import java.util.HashMap; -import java.util.Map; - -@Data -public class YamlWidget { - private String type; - private String name; - private YamlWidgetLayout layout; - private Map props; - private Map events; - private YamlWidget[] children; - - public void addProps(Map props) { - this.props = new HashMap<>(props.size()); - // 深度对象应用的问题,不运行修改 - this.props.putAll(props); - } - - public void addEvents(Map events) { - if (events != null) { - this.events = new HashMap<>(events.size()); - this.events.putAll(events); - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlWidgetLayout.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlWidgetLayout.java deleted file mode 100644 index 554ce8c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/entity/yaml/YamlWidgetLayout.java +++ /dev/null @@ -1,8 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.entity.yaml; - -import lombok.Data; - -@Data -public class YamlWidgetLayout { - private Integer col; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/impl/FormDataStoreImpl.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/impl/FormDataStoreImpl.java deleted file mode 100644 index 1524fb0..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/impl/FormDataStoreImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.impl; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.sqlbuilder.InsertSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.UpdateSqlBuilder; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.framework.core.util.DateUtil; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.engine.ui.IFormDataStore; -import org.apache.commons.lang3.StringUtils; - -public class FormDataStoreImpl implements IFormDataStore { - private DbEngine dbEngine; - - public FormDataStoreImpl(DbEngine dbEngine) { - this.dbEngine = dbEngine; - } - - @Override - public SwMap load(Long processId, Long processRootId) { - if (processRootId != null) { - String content = dbEngine.queryString("select pdl_content from sw_bpm.bpm_process_detail_log where pdl_id=?", processRootId); - if (StringUtils.isNotBlank(content)) { - return JsonUtil.parse(content, SwMap.class); - } - } - - return null; - } - - @Override - public void save(Long processId, Long processRootId, Long taskId, Long businessKey, String tableName, SwMap body, UserSession us) { - String content = JsonUtil.encodeString(body); - - if (processId == null) { - processId = businessKey; - } - - if (taskId == null || taskId == 0) { - InsertSqlBuilder sqlBuilder = SqlBuilder.createInsert("sw_bpm.bpm_process_detail_log"); - sqlBuilder.add("pdl_id", businessKey) - .add("pdl_process_id", processId) - .add("pdl_process_root_id", processRootId) - .add("pdl_table", tableName) - .add("pdl_content", content) - .add("pdl_create_uid", us.getUserId()) - .add("pdl_update_uid", us.getUserId()); - sqlBuilder.update(dbEngine); - } else { - UpdateSqlBuilder sqlBuilder = SqlBuilder.createUpdate("sw_bpm.bpm_process_detail_log"); - sqlBuilder.add("pdl_process_id", processId) - .add("pdl_task_id", taskId) - .add("pdl_content", content) - .add("pdl_last_time", DateUtil.nowDateTimeLong()) - .add("pdl_update_uid", us.getUserId()) - .addWhere("pdl_id", businessKey); - sqlBuilder.update(dbEngine); - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/IPageRouter.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/IPageRouter.java deleted file mode 100644 index 2fed018..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/IPageRouter.java +++ /dev/null @@ -1,5 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader; - -public interface IPageRouter { - String loadFullName(Long pageId); -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/TreePageRouter.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/TreePageRouter.java deleted file mode 100644 index 372a241..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/TreePageRouter.java +++ /dev/null @@ -1,52 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader; - -import cc.smtweb.system.bpm.engine.entity.AspModelTreeVO; -import cc.smtweb.system.bpm.util.CodeGenUtil; - -import java.util.ArrayList; -import java.util.List; - -public class TreePageRouter implements IPageRouter { - private AspModelTreeVO root; - private String moduleName; - - public TreePageRouter(AspModelTreeVO root, String moduleName) { - this.root = root; - this.moduleName = moduleName; - } - - @Override - public String loadFullName(Long pageId) { - List names = new ArrayList<>(); - - if (getRouterName(pageId, root, names)) { - if (moduleName != null) { - names.add(0, moduleName); - } - - return String.join(".", names); - } - - return null; - } - - private boolean getRouterName(Long pageId, AspModelTreeVO parent, List names) { - List children = parent.getChildren(); - - if (children != null) { - for (AspModelTreeVO child: children) { - if (pageId.equals(child.getModelId())) { - names.add(CodeGenUtil.toLowerHump(child.getModelKey())); - return true; - } else { - if (getRouterName(pageId, child, names)) { - names.add(0, CodeGenUtil.toLowerHump(child.getModelKey())); - return true; - } - } - } - } - - return false; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiMobileLoader.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiMobileLoader.java deleted file mode 100644 index 7eb57a7..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiMobileLoader.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader; - -import cc.smtweb.system.bpm.engine.entity.AspModelPO; - -public class UiMobileLoader extends UiPageLoader { - public UiMobileLoader(IPageRouter pageRouter) { - super(pageRouter, AspModelPO.TYPE_UI_MOBILE); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiPageLoader.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiPageLoader.java deleted file mode 100644 index 862c893..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiPageLoader.java +++ /dev/null @@ -1,44 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader; - -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.engine.AbstractLoader; -import cc.smtweb.system.bpm.engine.ui.loader.json.JsonPageDecoder; -import cc.smtweb.system.bpm.engine.ui.loader.yaml.YamlPageDecoder; -import lombok.extern.slf4j.Slf4j; - -import java.io.InputStream; - -@Slf4j -public abstract class UiPageLoader extends AbstractLoader { - private IPageRouter pageRouter; - private int modelType; - - public UiPageLoader(IPageRouter pageRouter, int modelType) { - this.pageRouter = pageRouter; - this.modelType = modelType; - } - - @Override - public BpmPage load(String content) { - JsonPageDecoder jsonPageDecoder = new JsonPageDecoder(this, pageRouter); - - BpmPage result = jsonPageDecoder.decode(content); - if (result != null) { - result.setModelType(modelType); - } - - return result; - } - - public BpmPage load(InputStream is) { - YamlPageDecoder yamlPageDecoder = new YamlPageDecoder(); - - BpmPage result = yamlPageDecoder.decode(is); - if (result != null) { - result.setModelType(modelType); - } - - return result; - } -} - diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiPcLoader.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiPcLoader.java deleted file mode 100644 index 3efa2fc..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/UiPcLoader.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader; - -import cc.smtweb.system.bpm.engine.entity.AspModelPO; - -public class UiPcLoader extends UiPageLoader { - public UiPcLoader(IPageRouter pageRouter) { - super(pageRouter, AspModelPO.TYPE_UI_PC); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/JsonDatasetDecoder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/JsonDatasetDecoder.java deleted file mode 100644 index c1f5159..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/JsonDatasetDecoder.java +++ /dev/null @@ -1,551 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader.json; - -import cc.smtweb.framework.core.db.cache.ModelDatabaseCache; -import cc.smtweb.framework.core.db.cache.ModelTableCache; -import cc.smtweb.framework.core.db.vo.ModelDatabase; -import cc.smtweb.framework.core.db.vo.ModelField; -import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.framework.core.util.MapUtil; -import cc.smtweb.system.bpm.core.exception.ModelLoaderError; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.dataset.FieldFormatTool; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.dataset.*; -import cc.smtweb.system.bpm.engine.AbstractLoader; -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import cc.smtweb.system.bpm.engine.ui.entity.vo.dataset.FzDatasetPropsVO; -import cc.smtweb.system.bpm.engine.ui.entity.vo.dataset.FzDatasetVO; -import cc.smtweb.system.bpm.engine.ui.entity.vo.dataset.FzFieldVO; -import cc.smtweb.system.bpm.engine.ui.entity.vo.dataset.FzMasterMappingVO; -import cc.smtweb.system.bpm.engine.ui.entity.vo.widiget.UiControlPropsVO; -import cc.smtweb.system.bpm.engine.ui.entity.vo.widiget.UiPageVO; -import cc.smtweb.system.bpm.engine.ui.loader.yaml.YamlDatasetDecoder; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Slf4j -public class JsonDatasetDecoder { - private AbstractLoader loader; - private Map datasetMap = new HashMap<>(); - private Map databases = new HashMap<>(); - @Getter - private List slaveDatasetList = new ArrayList<>(); -// private Map lookupDatasetMap = new HashMap<>(); - - public JsonDatasetDecoder(AbstractLoader loader) { - this.loader = loader; - } - - protected void decode(BpmPage result, UiPageVO uiPageVO) { - // 处理DataSet - buildDataset(uiPageVO.getModel(), result, slaveDatasetList); - - fixMasterDataset(result, slaveDatasetList); - } - - private String getMasterName(BpmDataset dataset) { -// BpmMasterMapping bpmMasterMapping = dataset.getMasterMapping(); -// if (bpmMasterMapping != null && bpmMasterMapping.isOneToOne()) { -// return bpmMasterMapping.getMaster(); -// } - - return dataset.getName(); - } - -// private void addLookupField(BpmDataset dataset, String fieldName, String name, int refType) { -// if (StringUtils.isNotBlank(fieldName)) { -// BpmField bpmField = new BpmField(); -// bpmField.setFieldName(fieldName); -// bpmField.setName(name); -// bpmField.setRefType(refType); -// dataset.addField(bpmField); -// } -// } - - private void fixMasterDataset(BpmPage result, List slaveDatasetList) { -// if (result.getMasterDataset() != null) { -// UiPageFormDataset pageFormDataset = result.getMasterDataset().getPageFormDataset(); -// if (pageFormDataset.getTableType() != UiPageFormDataset.TABLE_TYPE_MASTER) { -// pageFormDataset.setTableType(UiPageFormDataset.TABLE_TYPE_MASTER); -// } -// } - - for (SlaveDataset slaveDataset: slaveDatasetList) { - BpmDataset slave = slaveDataset.getDataset(); -// UiPageFormDataset slaveProps = slaveDataset.getPageFormDataset(); - String masterId = slaveDataset.getMasterId(); - BpmDataset master = findDataset(masterId); - - if (master != null) { - // 1:1 映射需要重新设置从表名称 - FzMasterMappingVO masterMappingVO = slaveDataset.getMasterMapping(); - BpmDataset middle = null; - - BpmMasterMapping masterMapping = slave.getMasterMapping(); - - masterMapping.setMappingType(MappingTypeEnum.toEnum(masterMappingVO.getMappingType())); - masterMapping.setMaster(master.getName()); - - // 处理从表映射 - if (MappingTypeEnum.oneToOne.equals(masterMapping.getMappingType())) { - // 名字改成一样,便于控件引用 -// slaveProps.setName(master.getName()); - slave.setName(master.getName()); - master.addOneToOneDataset(slave); - } else if (MappingTypeEnum.manyToMany.equals(masterMapping.getMappingType())) { - String middleId = masterMappingVO.getMiddleDataset(); - if (StringUtils.isBlank(middleId)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, slave.getId(), "未设置Middle数据集"); - continue; - } - - middle = findDataset(middleId); - if (middle == null) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, slave.getId(), "未找到Middle数据集, id=" + masterId); - continue; - } - - masterMapping.setMiddle(middle.getName()); - } - - // 处理字段映射 - for (BpmMappingField linkFieldVO: masterMappingVO.getFields()) { - BpmField masterField = master.findFieldById(linkFieldVO.getMaster()); - - if (masterField == null) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, slave.getId(), "未找到Master数据集字段, id=" + linkFieldVO.getMaster()); - continue; - } - - BpmField slaveField = slave.findFieldById(linkFieldVO.getSlave()); - if (slaveField == null) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, slave.getId(), "未找到Slave数据集字段, id=" + linkFieldVO.getSlave()); - continue; - } - - String middleFieldName = null; - if (middle != null) { - BpmField middleField = middle.findFieldById(linkFieldVO.getMiddle()); - if (middleField == null) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, slave.getId(), "未找到Middle数据集字段, id=" + linkFieldVO.getMiddle()); - continue; - } - - middleFieldName = middleField.getFieldName(); - } - - masterMapping.add(masterField.getFieldName(), slaveField.getFieldName(), middleFieldName); - } - } else { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, slave.getId(), "未找到Master数据集, id=" + masterId); - } - } - } - - public BpmDataset findDataset(String masterId) { - BpmDataset result = null; - SlaveDataset linkDataset = datasetMap.get(masterId); - if (linkDataset == null) { - for (SlaveDataset slaveDataset : slaveDatasetList) { - if (masterId.equals(slaveDataset.getDataset().getId())) { - result = slaveDataset.getDataset(); - break; - } - } - } else { - result = linkDataset.getDataset(); - } - - return result; - } - - private void buildDataset(FzDatasetVO[] fzDatasetAry, BpmPage result, List slaveDatasetList) { - if (fzDatasetAry != null) { - for (FzDatasetVO datasetVO : fzDatasetAry) { - FzDatasetPropsVO datasetPropsVO = datasetVO.getProps(); - - if (datasetPropsVO.getSql() != null) { - buildBpmDataset(result, slaveDatasetList, datasetVO, null, null); - } else { - if (StringUtils.isBlank(datasetPropsVO.getDatasource())) { - loader.addError(ModelLoaderError.ERROR_DB, "未设置数据库"); - } else { - String datasource = datasetPropsVO.getDatasource(); - - ModelDatabase db = getModelDatabase(datasource); - - if (db == null) { - loader.addError(ModelLoaderError.ERROR_DB, "未找到数据库, name= " + datasource); - } else { - ModelTable mobileTable = ModelTableCache.getInstance().getByName(datasetPropsVO.getTable()); - - if (mobileTable == null) { - loader.addError(ModelLoaderError.ERROR_TABLE, "未找到数据表 " + datasetPropsVO.getTable() + ", datasource: " + datasource); - } else { - buildBpmDataset(result, slaveDatasetList, datasetVO, db, mobileTable); - } - } - } - } - } - } - } - - private void buildBpmDataset(BpmPage result, List slaveDatasetList, FzDatasetVO datasetVO, ModelDatabase db, ModelTable mobileTable) { - boolean addToPage = true; - FzDatasetPropsVO datasetPropsVO = datasetVO.getProps(); - BpmDataset dataset = new BpmDataset(); - - dataset.setId(datasetVO.getId()); - dataset.setDataModel(toInt(datasetPropsVO.getDataModel())); - dataset.setInitData(datasetPropsVO.isInitData()); - dataset.setCustomApi(StringUtils.trimToNull(datasetPropsVO.getCustomApi())); - - if (db != null) { - dataset.setDatabase(db.getName()); - dataset.setTable(mobileTable.getName()); - dataset.setFieldPrefix((YamlDatasetDecoder.getFieldPrefix(mobileTable.getIdField()))); - } else { - dataset.setSql(datasetPropsVO.getSql()); - } - - if (StringUtils.isNotBlank(datasetPropsVO.getName())) { - dataset.setName(datasetPropsVO.getName()); - } else { - dataset.setName(datasetVO.getId()); - } - - SlaveDataset linkDataset = new SlaveDataset(dataset, datasetVO.getId(), datasetPropsVO.getMasterDataset(), datasetPropsVO.getMasterFields()); - if (linkDataset.isSlave()) { - slaveDatasetList.add(linkDataset); - if (MappingTypeEnum.oneToOne.sameName(datasetPropsVO.getMasterFields().getMappingType())) { - addToPage = false; - } - } - - FzFieldVO[] fields = datasetPropsVO.getFields(); - - for (FzFieldVO fieldVO : fields) { - BpmField bpmField = new BpmField(); - UiControlPropsVO fieldProps = fieldVO.getProps(); - String field = fieldProps.readString("field"); - - if (mobileTable != null) { - ModelField modelField = mobileTable.findField(field); - - if (StringUtils.isNotBlank(field) && modelField == null) { - loader.addError(ModelLoaderError.ERROR_FIELD, "未找到字段 " + dataset.getTable() + "." + field); - continue; - } - - // 处理自动名,虚拟数据集用ID作为字段名 - if (modelField != null) { - if (StringUtils.isNotBlank(modelField.getName())) { - bpmField.setFieldName(modelField.getName()); - } else { - // 测试时可以使用ID来作为字段名 - bpmField.setFieldName(modelField.getName()); - } - } - } else { - bpmField.setFieldName(field); - } - - bpmField.setId(fieldVO.getId()); - bpmField.setSummary(fieldProps.readString("summary")); - bpmField.setRefType(fieldProps.readInt("refType", 0)); - bpmField.setRequired(fieldProps.readBool("required", false)); - bpmField.setValidPatten(fieldProps.readString("validPatten")); - bpmField.setValidMessage(fieldProps.readString("validMessage")); - bpmField.setLabel(fieldProps.readString("label")); - bpmField.setDisplayFormat(fieldProps.readString("displayFormat")); - bpmField.setFilter(fieldProps.readInt("filter", 0)); - bpmField.setFilterType(fieldProps.readInt("filterType", 0)); - - // 处理查找属性 - Map lookup = fieldProps.readMap("lookup"); - if (lookup != null) { - fixFieldLookup(datasetVO, fieldVO, bpmField, lookup); - } - - // 处理变量名,控件关联 - String name = fieldProps.readString("name"); - if (StringUtils.isNotBlank(name)) { - bpmField.setName(name); - } else { - bpmField.setName(bpmField.getId()); - } - - String fieldType = fieldVO.getType(); - if (fieldType != null && fieldType.startsWith("fz-field-")) { - bpmField.setType(fieldType.substring(9)); - } else { - loader.addError(ModelLoaderError.ERROR_FIELD, datasetVO.getId(), fieldVO.getId(), "无效字段类型 " + fieldType); - } - - FieldFormatTool.fixDisplayFormat(bpmField); - dataset.addField(bpmField); - } - - if (dataset.getIdField() == null) { - if (mobileTable != null) { - BpmField idField = dataset.findFieldByFieldName(mobileTable.getIdField()); - dataset.setIdField(idField); - } - - if (dataset.getIdField() == null) { - loader.addError(ModelLoaderError.ERROR_TABLE, "数据表未设置ID字段 " + datasetPropsVO.getTable() + ", dataset: " + dataset.getName()); - return; - } - } - -// datasetProps.setIdField(dataset.getIdField().getName()); - - if (addToPage) { - addDataset(result, linkDataset); - } - } - - private boolean fixFieldLookup(FzDatasetVO datasetVO, FzFieldVO fieldVO, BpmField bpmField, Map lookup) { - String type = MapUtil.readString(lookup, "type"); - String dbName = MapUtil.readString(lookup, "db"); - String table = MapUtil.readString(lookup, "table"); - boolean isNumber = isNumberType(fieldVO.getType()); - - if ("dict".equals(type)) { - String dictType = MapUtil.readString(lookup, "dictType"); - - if (StringUtils.isBlank(dictType)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, datasetVO.getId(), fieldVO.getId(), "lookup未配置dictType"); - return true; - } - - bpmField.setLookup(new BpmFieldDict(dbName, table, isNumber, dictType)); - } else if ("table".equals(type) || "lookup".equals(type)) { // "lookup" 是兼容旧配置 - MappingTypeEnum mappingType = MappingTypeEnum.toEnum(MapUtil.readString(lookup, "mappingType")); - if (!mappingType.include(MappingTypeEnum.manyToOne, MappingTypeEnum.manyToMany)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, datasetVO.getId(), fieldVO.getId(), "lookup未配置映射类型"); - return true; - } - - // 数据库字段名 - String keyField = MapUtil.readString(lookup, "keyField"); - if (StringUtils.isBlank(keyField)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, datasetVO.getId(), fieldVO.getId(), "lookup未配置keyField"); - return true; - } - - // 数据库字段名 - String labelField = MapUtil.readString(lookup, "labelField"); - if (StringUtils.isBlank(labelField)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, datasetVO.getId(), fieldVO.getId(), "lookup未配置labelField"); - return true; - } - - BpmFieldLookup fieldLookup = new BpmFieldLookup(dbName, table, isNumber, mappingType); - - fieldLookup.setKeyField(keyField); - fieldLookup.setLabelField(labelField); - - // 数据库上级字段名 - String parentField = MapUtil.readString(lookup, "parentField"); - if (StringUtils.isNotBlank(parentField)) { - fieldLookup.setParentField(parentField); - } - - List> filters = (List>)lookup.get("filter"); - if (filters != null && !filters.isEmpty()) { - for (Map filter: filters) { - String filterField = MapUtil.readString(filter, IBpmDatasetConst.PN_ITEM_FIELD); - String filterKeyword = MapUtil.readString(filter, IBpmDatasetConst.PN_ITEM_KEYWORD); - int filterOp = MapUtil.readInt(filter, IBpmDatasetConst.PN_ITEM_OP, 0); - boolean cascade = MapUtil.readBool(filter, IBpmDatasetConst.PN_ITEM_CASCADE, false); - - fieldLookup.addFilter(filterField, filterOp, filterKeyword, cascade); - } - } - - if (mappingType.equals(MappingTypeEnum.manyToMany)) { - // 数据库字段名 - String middleTable = MapUtil.readString(lookup, "middleTable"); - if (StringUtils.isBlank(middleTable)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, datasetVO.getId(), fieldVO.getId(), "lookup未配置中间表"); - return true; - } - fieldLookup.setMiddleTable(middleTable); - - String middleKeyField = MapUtil.readString(lookup, "middleKeyField"); - if (StringUtils.isBlank(middleKeyField)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, datasetVO.getId(), fieldVO.getId(), "lookup未配置中间表映射字段"); - return true; - } - fieldLookup.setMiddleKeyField(middleKeyField); - - String middleValueField = MapUtil.readString(lookup, "middleValueField"); - if (StringUtils.isBlank(middleValueField)) { - loader.addError(ModelLoaderError.ERROR_UI_DATASET, datasetVO.getId(), fieldVO.getId(), "lookup未配置中间表映射字段"); - return true; - } - fieldLookup.setMiddleValueField(middleValueField); - } - - bpmField.setLookup(fieldLookup); - } // else "dataset" - - return false; - } - - private void addDataset(BpmPage result, SlaveDataset slaveDataset) { - List datasets = result.getDatasets(); - int insert = -1; - - String id = slaveDataset.getId(); - if (id != null) { - // 保证主表在前 - for (int i = 0; i < datasets.size(); i++) { - SlaveDataset linkDataset = datasetMap.get(datasets.get(i).getId()); - - if (linkDataset != null) { - if (id.equals(linkDataset.getMasterId())) { - insert = i; - break; - } - } - } - - datasetMap.put(slaveDataset.getId(), slaveDataset); - } - - BpmDataset dataset = slaveDataset.getDataset(); - if (insert >= 0) { - datasets.add(insert, dataset); - } else { - datasets.add(dataset); - } - } - - public void addLookupDataset(BpmPage result, BpmDataset masterDataset, BpmField field, boolean isTree) { - // 1:1关联需要找到主表名称 - String masterName = getMasterName(masterDataset); - - String name = masterName + "_" + field.getName(); - - BpmDataset datasetWrapper = result.findDatasetByName(name); - if (datasetWrapper == null) { - AbstractBpmFieldLookup lookup = field.getLookup(); - - ModelDatabase db = getModelDatabase(lookup.getDb()); - if (db == null) { - loader.addError(ModelLoaderError.ERROR_UI, "未找到数据源, database= " + lookup.getDb()); - return; - } - - BpmDataset dataset = new BpmDataset(); - - dataset.setInitData(true); - dataset.setName(name); - dataset.setDatabase(lookup.getDb()); - dataset.setTable(lookup.getTable()); - dataset.setLookup(lookup); - dataset.setDataModel(isTree ? BpmDataset.DATA_MODEL_TREE : BpmDataset.DATA_MODEL_LIST); - - if (lookup instanceof BpmFieldLookup) { - BpmFieldLookup fieldLookup = (BpmFieldLookup)lookup; - - dataset.setFieldPrefix(YamlDatasetDecoder.getFieldPrefix(fieldLookup.getKeyField())); - - ModelTable modelTable = ModelTableCache.getInstance().getByName(lookup.getTable()); - - if (modelTable == null) { - loader.addError(ModelLoaderError.ERROR_UI, "未找到数据表, table= " + lookup.getDb() + "." + lookup.getTable()); - return; - } - - dataset.addField(modelTable.getIdField(), "optId", UiEnum.FieldRefType.ID); - dataset.addField(fieldLookup.getKeyField(), IParamConst.OPTION_KEY); - dataset.addField(fieldLookup.getLabelField(), IParamConst.OPTION_LABEL, UiEnum.FieldRefType.TITLE); - dataset.addField(fieldLookup.getOrderField(), IParamConst.OPTION_ORDER, UiEnum.FieldRefType.ORDER); - dataset.setFieldPrefix(YamlDatasetDecoder.getFieldPrefix(modelTable.getIdField())); - - if (isTree) { - if (fieldLookup.getParentField() == null) { - loader.addError(ModelLoaderError.ERROR_UI, "树控件未配置上级字段, field= " + field.getName()); - return; - } - - dataset.addField(fieldLookup.getParentField(), "optParentId", UiEnum.FieldRefType.PARENT_ID); - } - - if (fieldLookup.isManyToMany()) { - modelTable = ModelTableCache.getInstance().getByName(fieldLookup.getMiddleTable()); - - if (modelTable == null) { - loader.addError(ModelLoaderError.ERROR_UI, "未找到中间数据表, table= " + lookup.getDb() + "." + lookup.getTable()); - return; - } - - fieldLookup.setMiddleIdField(modelTable.getIdField()); - } - - // 级联属性设置,不初始化,与级联库关联(master) - if (fieldLookup.getFilters() != null) { - for (BpmFieldFilter bpmFieldFilter: fieldLookup.getFilters()) { - if (bpmFieldFilter.isCascade()) { -// pageRef.addCascade(bpmDataset.getMasterMapping().getMaster(), bpmFieldFilter.getKeyword(), bpmDataset.getName(), bpmFieldFilter.getField()); -// dataset.setCascade(true); - dataset.getMasterMapping().setMaster(masterName); - dataset.setInitData(false); - } - } - } - - if (dataset.getIdField() == null) { - loader.addError(ModelLoaderError.ERROR_TABLE, "数据表未设置ID字段 " + dataset.getTable() + ", db: " + dataset.getDatabase()); - } - } - - addDataset(result, new SlaveDataset(dataset, null, null, null)); - } else { - int dataModel = isTree ? BpmDataset.DATA_MODEL_TREE : BpmDataset.DATA_MODEL_LIST; - if (datasetWrapper.getDataModel() != dataModel) { - loader.addError(ModelLoaderError.ERROR_UI, "多控件关联数据集时数据模型冲突 " + name); - } - } - } - - private boolean isNumberType(String type) { - return "fz-field-int".equals(type) || "fz-field-short".equals(type) || "fz-field-byte".equals(type); - } - - private int toInt(Integer value) { - return value != null ? value : 0; - } - - private ModelDatabase getModelDatabase(String datasource) { - ModelDatabase result = databases.get(datasource); - - if(result != null) { - return result; - } - - return ModelDatabaseCache.getInstance().get(datasource); - } - -// public void addLookupDataset(BpmPage result, BpmField bpmField, boolean isTree) { -// BpmDataset dataset = this.lookupDatasetMap.get(bpmField); -// if (dataset != null) { -// // 查找页面路由 -// addLookupDataset(result, dataset, bpmField, isTree); -// } else { -// loader.addError(ModelLoaderError.ERROR_UI, "未找到lookup数据集, field= " + bpmField.getName()); -// } -// } -} - diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/JsonPageDecoder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/JsonPageDecoder.java deleted file mode 100644 index 920f586..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/JsonPageDecoder.java +++ /dev/null @@ -1,385 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader.json; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.exception.ModelLoaderError; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.dataset.FieldFormatTool; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.dataset.AbstractBpmFieldLookup; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmField; -import cc.smtweb.system.bpm.core.ui.entity.dataset.IBpmDatasetConst; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmForm; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidget; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidgetLayout; -import cc.smtweb.system.bpm.engine.AbstractLoader; -import cc.smtweb.system.bpm.engine.ui.entity.vo.widiget.*; -import cc.smtweb.system.bpm.engine.ui.loader.IPageRouter; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -@Slf4j -public class JsonPageDecoder { - private static final int LIST_MODEL_SELECT = 1000; - private static final int LIST_MODEL_SELECT_TREE = IBpmDatasetConst.DATA_MODEL_TREE + LIST_MODEL_SELECT; - private static final int LIST_MODEL_SELECT_LIST = IBpmDatasetConst.DATA_MODEL_LIST + LIST_MODEL_SELECT; - - private AbstractLoader loader; - private IPageRouter pageRouter; - private JsonDatasetDecoder jsonDatasetDecoder; - - private final static Map CONTROL_LIST_MODEL = new HashMap() {{ - put("fx-list", IBpmDatasetConst.DATA_MODEL_LIST); - put("fx-table", IBpmDatasetConst.DATA_MODEL_LIST); - put("fy-list", IBpmDatasetConst.DATA_MODEL_LIST); - put("fy-table", IBpmDatasetConst.DATA_MODEL_LIST); - put("fx-tree", IBpmDatasetConst.DATA_MODEL_TREE); - put("fy-tree", IBpmDatasetConst.DATA_MODEL_TREE); - put("fx-select", LIST_MODEL_SELECT); - put("fy-select", LIST_MODEL_SELECT); - put("fx-select-tree", LIST_MODEL_SELECT_TREE); - put("fy-select-tree", LIST_MODEL_SELECT_TREE); - put("fx-select-table", LIST_MODEL_SELECT_LIST); - }}; - - public JsonPageDecoder(AbstractLoader loader, IPageRouter pageRouter) { - this.loader = loader; - this.pageRouter = pageRouter; - jsonDatasetDecoder = new JsonDatasetDecoder(loader); - } - - public BpmPage decode(String content) { - UiPageVO uiPageVO = JsonUtil.parse(content, UiPageVO.class); - - if (uiPageVO.getVersion() == null || uiPageVO.getVersion() < 5) { - log.error("界面版本不能小于 5.0; version=" + uiPageVO.getVersion()); - return new BpmPage(); - } - - BpmPage result = new BpmPage(); - - // 处理DataSet - jsonDatasetDecoder.decode(result, uiPageVO); - - // 处理界面控件 - UiPagePropsVO pageProps = null; - for (UiPageFormVO formVO: uiPageVO.getForms()) { - BpmForm form = new BpmForm(); - fixUiForm(result, form, formVO.getGraph()); - result.getForms().add(form); - - // 处理主界面熟悉 - if (pageProps == null) { - pageProps = formVO.getWidget().getProps(); - if (pageProps != null) { - result.setDestroyOnClose(pageProps.getDestroyOnClose()); - } - } - } - return result; - } - - /** 处理界面控件 */ - private void fixUiForm(BpmPage result, BpmWidget widget, UiControlVO parent) { - /* - 控件进行dataset, 通用规则 data[dataset][dataModel][field] - 卡片界面控件设置 data[datasetId].form[fieldId] - 列表控件设置 data[datasetId].list.data - */ - UiControlDataVO controlData = parent.getData(); - // 校正数据,设置数据集 - BpmDataset dataset = fixContrData(controlData); - - widget.setName(controlData.getName()); - widget.setType(controlData.getType()); - widget.addProps(controlData.getProps()); - widget.addSlots(controlData.getSlots()); - widget.addVars(controlData.getVars()); - widget.addEvents(controlData.getEvents()); - - if (dataset != null) { - fixWidget(result, widget, dataset, controlData); - } - - // 设置布局尺寸 - UiControlLayoutVO layout = controlData.getLayout(); - if (layout != null && layout.getCol() != null) { - widget.setLayout(new BpmWidgetLayout(layout.getCol())); - } - - // String datasetId = props.readString("dataset"); -// if (StringUtils.isNotBlank(datasetId)) { -// BpmDataset dataset = jsonDatasetDecoder.findDataset(datasetId); -// -// if (dataset != null) { -// fixWidget(result, widget, dataset, controlData); -// -// // 转换 id 为 name -// widget.addProp("dataset", dataset.getName()); -// } else { -// loader.addError(ModelLoaderError.ERROR_UI, controlData.getId(),"控件关联数据集未找到, datasetId= " + datasetId); -// } -// } - - // 处理panel的子控件 - UiControlVO[] children = parent.getChildren(); - if (children != null && children.length > 0) { - BpmWidget[] widgetChildren = new BpmWidget[children.length]; - for (int i = 0; i < children.length; i++) { - BpmWidget childWidget = new BpmWidget(); - fixUiForm(result, childWidget, children[i]); - widgetChildren[i] = childWidget; - } - - widget.setChildren(widgetChildren); - } - - // 处理插槽的控件 - if (widget.getSlots() != null) { - for (UiControlDataVO[] slotWidgets: widget.getSlots().values()) { - for (UiControlDataVO slotWidget: slotWidgets) { - fixContrData(slotWidget); - if (dataset != null) { - fixSlotWidget(slotWidget, dataset, controlData.getId()); - } - } - } - } - } - - // 设置table.column的显示字段 - private void fixSlotWidget(UiControlDataVO controlWidget, BpmDataset dataset, String widgetId) { - SwMap props = controlWidget.getProps(); - String field = props.readString("field"); - if (StringUtils.isNotBlank(field)) { - BpmField bpmField = dataset.findFieldById(field, true); - if (bpmField != null) { - String fieldName = bpmField.getName(); - if (StringUtils.isBlank(fieldName)) { - fieldName = bpmField.getId(); - } - - // 切换到显示字段 - if (bpmField.getLookup() != null || FieldFormatTool.needFormat(bpmField)) { - props.put("field", fieldName + IParamConst.LOOKUP_TEXT); - } else { - props.put("field", fieldName); - } - -// fixWidgetFormat(widget, map, bpmField); - } else { - loader.addError(ModelLoaderError.ERROR_UI, widgetId, - controlWidget.getId(), "未找到表格控件的列字段 " + field); - } - } - } - - // 预处理控件属性,包括slot控件 - private BpmDataset fixContrData(UiControlDataVO controlData) { - SwMap props = controlData.getProps(); - // 保持name不为空 - String name = props.readString("name"); - if (StringUtils.isNotBlank(name)) { - controlData.setName(name); - } else { - controlData.setName(controlData.getId()); - } - - // 处理button链接地址 - if (controlData.getType().endsWith("-button")) { - String link = (String) props.get("link"); - if (StringUtils.isNotBlank(link)) { - Long pageId = Long.valueOf(link); - // 查找页面路由 - String routerName = pageRouter.loadFullName(pageId); - if (routerName != null) { - props.put("link", routerName); - } else { - loader.addError(ModelLoaderError.ERROR_UI, "控件关联页面未找到, pageId= " + pageId); - } -// pageRef.getRoutes().put("id_" + pageId, routerName); - } - } - - // 处理数据集,转换id为name - String datasetId = props.readString("dataset"); - if (StringUtils.isNotBlank(datasetId)) { - BpmDataset dataset = jsonDatasetDecoder.findDataset(datasetId); - - if (dataset != null) { - // 转换 id 为 name - props.put("dataset", dataset.getName()); - } else { - loader.addError(ModelLoaderError.ERROR_UI, controlData.getId(),"控件关联数据集未找到, datasetId= " + datasetId); - } - return dataset; - } - - return null; - } - - // 主控件检测数据模型和处理lookup - private void fixWidget(BpmPage result, BpmWidget widget, BpmDataset dataset, UiControlDataVO controlData) { - UiControlPropsVO controlProps = controlData.getProps(); - String field = controlProps.readString("field"); - - int listModel = getListMode(controlData.getType(), field); - - if (listModel == IBpmDatasetConst.DATA_MODEL_LIST) { - if (dataset.getDataModel() != IBpmDatasetConst.DATA_MODEL_LIST) { - loader.addError(ModelLoaderError.ERROR_UI, controlData.getId(), "控件需要引用列表模式数据集 " + dataset.getName()); - } - - // 1. field id => name, 2. fix lookup field -// fixColumnField(widget, dataset, readList(widget.getProps(), "columns"), controlData.getId()); - } else if (listModel == IBpmDatasetConst.DATA_MODEL_TREE) { - if (dataset.getDataModel() != IBpmDatasetConst.DATA_MODEL_TREE) { - loader.addError(ModelLoaderError.ERROR_UI, controlData.getId(), "控件需要引用树模式数据集 " + dataset.getName()); - } - } else { - if (StringUtils.isNotBlank(field)) { - BpmField bpmField = dataset.findFieldById(field); - - if (bpmField != null) { - // 处理关联表 - AbstractBpmFieldLookup lookup = bpmField.getLookup(); - - if (lookup != null) { -// controlProps.put("lookup", lookup); - if (listModel >= LIST_MODEL_SELECT) { // || listModel == LIST_MODEL_SELECT_TREE - // 设置使用了查找数据集,后面进行实际添加 - jsonDatasetDecoder.addLookupDataset(result, dataset, bpmField, listModel == LIST_MODEL_SELECT_TREE); - } - } - - widget.addProp("field", bpmField.getName()); -// fixWidgetFormat(widget, controlProps, bpmField); -// datasetProps.addRule(bpmField.getName(), validType, required, validPatten, validMessage); - } else { - loader.addError(ModelLoaderError.ERROR_UI, controlData.getId(), "控件未找到字段, id= " + field); - } - } - } - - // 处理 button 的链接地址 -// fixPageRef(widget); - } - - private int getListMode(String controlType, String field) { - Integer type = CONTROL_LIST_MODEL.get(controlType); - - if (type != null) { - if (StringUtils.isBlank(field) || type >= LIST_MODEL_SELECT) { - return type; - } else { - return type + LIST_MODEL_SELECT; - } - } - - return IBpmDatasetConst.DATA_MODEL_CARD; - } - - /** 完善table列field,切换到显示字段 */ -// private void fixColumnField(BpmWidget widget, BpmDataset dataset, List columns, String widgetId) { -// if (columns != null) { -// for (Object item: columns) { -// if (item instanceof Map) { -// Map column = (Map) item; -// Map map = (Map)column.get("props"); -// -// String field = MapUtil.readString(map, "field"); -// if (StringUtils.isNotBlank(field)) { -// BpmField bpmField = dataset.findFieldById(field, true); -// if (bpmField != null) { -// String fieldName = bpmField.getName(); -// if (StringUtils.isBlank(fieldName)) { -// fieldName = bpmField.getId(); -// } -// -// // 切换到显示字段 -// if (bpmField.getLookup() != null || FieldFormatTool.needFormat(bpmField)) { -// map.put("field", fieldName + IParamConst.LOOKUP_TEXT); -// } else { -// map.put("field", fieldName); -// } -// -// } else { -// loader.addError(ModelLoaderError.ERROR_UI, widgetId, -// MapUtil.readString(column, "id"), "未找到表格控件的列字段 " + field); -// } -// } -// } -// } -// } -// } - -// public List readList(SwMap map, String name) { -// Object v = map.get(name); -// -// if (v instanceof List) { -// return (List)v; -// } -// -// return null; -// } - - // pageId -> 转化为pagePath -// private void fixPageRef(BpmWidget widget) { -// SwMap controlPropsVO = widget.getProps(); -// -// switch (widget.getType()) { -// case "fx-table": -// case "fy-table": -// fillButtons(controlPropsVO, "columnButtons"); -// fillButtons(controlPropsVO, "toolbarButtons"); -// // table.columnButtons, table.toolbarButtons -// break; -// case "fx-button-group": -// case "fz-button-group": -// fillButtons(controlPropsVO, "buttons"); -// // button-group.buttons -// break; -// case "fx-button": -// case "fz-button": -// fillButton(controlPropsVO); -// break; -// default: -// break; -// } -// } -// -// private void fillButtons(SwMap controlPropsVO, String name) { -// Object props = controlPropsVO.get(name); -// if (props instanceof List) { -// for (Object prop: (List)props) { -// if (prop instanceof Map) { -// Object controlProps = ((Map)prop).get("props"); -// if (controlProps instanceof Map) { -// fillButton((Map) controlProps); -// } -// } -// } -//// log.error("" + props.getClass()); -// } -// } -// -// private void fillButton(Map controlPropsVO) { -// String link = (String)controlPropsVO.get("link"); -// if (StringUtils.isNotBlank(link)) { -// Long pageId = Long.valueOf(link); -// // 查找页面路由 -// String routerName = pageRouter.loadFullName(pageId); -// if(routerName != null) { -// controlPropsVO.put("link", routerName); -// } else { -// loader.addError(ModelLoaderError.ERROR_UI, "控件关联页面未找到, pageId= " + pageId); -// } -//// pageRef.getRoutes().put("id_" + pageId, routerName); -// } -// } -} - diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/SlaveDataset.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/SlaveDataset.java deleted file mode 100644 index 54c7cdc..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/json/SlaveDataset.java +++ /dev/null @@ -1,31 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader.json; - -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.engine.ui.entity.vo.dataset.FzMasterMappingVO; -import lombok.Getter; -import org.apache.commons.lang3.StringUtils; - -@Getter -class SlaveDataset { - private BpmDataset dataset; - private String id; - private String masterId; - private FzMasterMappingVO masterMapping; - - public SlaveDataset(BpmDataset dataset, String id, String masterId, FzMasterMappingVO masterMapping) { - this.dataset = dataset; - this.id = id; - this.masterId = masterId; - if (StringUtils.isNotBlank(masterId) && masterMapping != null && masterMapping.getFields() != null) { - this.masterMapping = masterMapping; - } - } - - public String getMasterId() { - return masterId; - } - - public boolean isSlave() { - return masterMapping != null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlDatasetDecoder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlDatasetDecoder.java deleted file mode 100644 index 2669ecd..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlDatasetDecoder.java +++ /dev/null @@ -1,164 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader.yaml; - -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.core.ui.entity.dataset.*; -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.*; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.List; - -public class YamlDatasetDecoder { - private YamlDatasetDecoder() {} - - public static BpmDataset decode(YamlDataset yamlDataset) { - BpmDataset bpmDataset = new BpmDataset(); - bpmDataset.setName(yamlDataset.getName()); - bpmDataset.setDatabase(yamlDataset.getDatabase()); - bpmDataset.setTable(yamlDataset.getTable()); - bpmDataset.setDataModel(decodeDataModel(yamlDataset.getDataModel())); - bpmDataset.setReadonly(yamlDataset.isReadonly()); - bpmDataset.setCustomApi(StringUtils.trimToNull(yamlDataset.getCustomApi())); - bpmDataset.setInitData(decodeBoolean(yamlDataset.getInitData())); - bpmDataset.setSql(decodeSql(yamlDataset.getSql())); - decodeMasterMapping(bpmDataset.getMasterMapping(), yamlDataset.getMasterMapping()); - - yamlDataset.getFields().forEach((field) -> { - BpmField bpmField = new BpmField(); - - bpmField.setType(field.getType()); - bpmField.setName(field.getName()); - bpmField.setLabel(field.getLabel()); - bpmField.setDisplayFormat(field.getDisplayFormat()); - bpmField.setFieldName(field.getFieldName()); - bpmField.setSummary(field.getSummary()); - bpmField.setLookup(decodeLookup(field.getLookup())); - bpmField.setRefType(decodeRefType(field.getRefType())); - bpmField.setRequired(decodeBoolean(field.getRequired())); - bpmField.setReadonly(decodeBoolean(field.getReadonly())); - bpmField.setValidPatten(StringUtils.trimToNull(field.getValidPatten())); - bpmField.setValidMessage(StringUtils.trimToNull(field.getValidMessage())); - bpmField.setFilter(field.getFilter()); - bpmField.setFilterType(field.getFilterType()); - - bpmDataset.addField(bpmField); - }); - - bpmDataset.setFieldPrefix(getFieldPrefix(bpmDataset.readIdFieldName())); - - return bpmDataset; - } - - private static BpmDatasetSql decodeSql(YamlDatasetSql sql) { - if (sql != null && StringUtils.isNotBlank(sql.getSelect())) { - BpmDatasetSql result = new BpmDatasetSql(); - result.setSelect(sql.getSelect()); - - if (StringUtils.isNotBlank(sql.getInsert())) { - result.setInsert(sql.getInsert()); - } - - if (StringUtils.isNotBlank(sql.getUpdate())) { - result.setUpdate(sql.getUpdate()); - } - - return result; - } - - return null; - } - - private static boolean decodeBoolean(Boolean value) { - return Boolean.TRUE.equals(value); - } - - private static int decodeRefType(String refType) { - Integer value = UiEnum.FieldRefType.INSTANCE.getKey(refType); - - if (value != null) { - return value; - } - - return 0; - } - - private static void decodeMasterMapping(BpmMasterMapping bpmMasterMapping, YamlMasterMapping masterMapping) { - if (masterMapping != null && masterMapping.getMappingFields() != null && !MappingTypeEnum.none.equals(masterMapping.getMappingType())) { - bpmMasterMapping.setMappingType(MappingTypeEnum.toEnum(masterMapping.getMappingType())); - bpmMasterMapping.setMaster(masterMapping.getMasterTable()); - bpmMasterMapping.setMiddle(masterMapping.getMiddleTable()); - - List mappingFields = new ArrayList<>(masterMapping.getMappingFields().size()); - for (YamlMappingField mappingField: masterMapping.getMappingFields()) { - BpmMappingField bpmMappingField = new BpmMappingField(); - bpmMappingField.setMaster(mappingField.getMasterField()); - bpmMappingField.setSlave(mappingField.getSlaveField()); - bpmMappingField.setMiddle(mappingField.getMiddleField()); - - mappingFields.add(bpmMappingField); - } - - bpmMasterMapping.setMappingFields(mappingFields); - } - } - - private static int decodeDataModel(String dataModel) { - switch (dataModel) { - case "card": - return BpmDataset.DATA_MODEL_CARD; - case "list": - return BpmDataset.DATA_MODEL_LIST; - case "tree": - return BpmDataset.DATA_MODEL_TREE; - default: - throw new BpmException(String.format("不支持的refType类型:%s", dataModel)); - } - } - - protected static AbstractBpmFieldLookup decodeLookup(YamlFieldLookup lookup) { - if (lookup != null) { - int lookupType = UiEnum.FieldLookupType.INSTANCE.getKey(lookup.getType()); - if (lookupType == UiEnum.FieldLookupType.DICT) { - String dictType = lookup.getFilters().get(0).getKeyword(); - return new BpmFieldDict(lookup.getDb(), lookup.getTable(), lookup.isNumberValue(), dictType); - } else if (lookupType == UiEnum.FieldLookupType.TABLE) { - BpmFieldLookup bpmFieldLookup = new BpmFieldLookup(lookup.getDb(), lookup.getTable(), lookup.isNumberValue(), lookup.getMappingType()); - bpmFieldLookup.setKeyField(lookup.getKeyField()); - bpmFieldLookup.setLabelField(lookup.getLabelField()); - bpmFieldLookup.setOrderField(lookup.getOrderField()); - bpmFieldLookup.setParentField(lookup.getParentField()); - - if (bpmFieldLookup.isManyToMany()) { - YamlFieldLookupMiddle middle = lookup.getMiddle(); - bpmFieldLookup.setMiddleTable(middle.getTable()); - bpmFieldLookup.setMiddleIdField(middle.getIdField()); - bpmFieldLookup.setMiddleKeyField(middle.getKeyField()); - bpmFieldLookup.setMiddleValueField(middle.getValueField()); - } - - if (lookup.getFilters() != null) { - for (YamlFieldFilter yamlFieldFilter : lookup.getFilters()) { - bpmFieldLookup.addFilter(yamlFieldFilter.getField(), yamlFieldFilter.getOp(), yamlFieldFilter.getKeyword(), yamlFieldFilter.isCascade()); - } - } - - return bpmFieldLookup; - } - } - - return null; - } - - public static String getFieldPrefix(String idField) { - if (idField != null) { - String[] ary = idField.split("_"); - if (ary.length > 0) { - return ary[0]; - } - } - - return null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlDatasetEncoder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlDatasetEncoder.java deleted file mode 100644 index d10b363..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlDatasetEncoder.java +++ /dev/null @@ -1,194 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader.yaml; - -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.core.ui.entity.dataset.*; -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import cc.smtweb.system.bpm.engine.ui.entity.consts.UiEnum; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.*; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.List; - -public class YamlDatasetEncoder { - private BpmDataset dataset; - - public YamlDatasetEncoder(BpmDataset dataset) { - this.dataset = dataset; - } - - public YamlDataset encode() { - YamlDataset yamlDataset = new YamlDataset(); - yamlDataset.setName(dataset.getName()); - yamlDataset.setDatabase(dataset.getDatabase()); - yamlDataset.setTable(dataset.getTable()); - yamlDataset.setDataModel(encodeDataModel(dataset.getDataModel())); - yamlDataset.setReadonly(dataset.isReadonly()); - yamlDataset.setCustomApi(StringUtils.trimToNull(dataset.getCustomApi())); - yamlDataset.setInitData(encodeBoolean(dataset.isInitData())); - yamlDataset.setMasterMapping(encodeMasterMapping(dataset.getMasterMapping())); - yamlDataset.setSql(encodeSql(dataset.getSql())); - - List yamlFields = new ArrayList<>(); - dataset.getFields().forEach((name, field) -> { - YamlField yamlField = new YamlField(); - - yamlField.setType(field.getType()); - yamlField.setName(field.getName()); - yamlField.setLabel(field.getLabel()); - yamlField.setDisplayFormat(field.getDisplayFormat()); - yamlField.setFieldName(field.getFieldName()); - yamlField.setSummary(field.getSummary()); - yamlField.setLookup(encodeLookup(field.getLookup())); - yamlField.setRefType(encodeRefType(field.getRefType())); - yamlField.setRequired(encodeBoolean(field.isRequired())); - yamlField.setReadonly(encodeBoolean(field.isReadonly())); - yamlField.setValidPatten(StringUtils.trimToNull(field.getValidPatten())); - yamlField.setValidMessage(StringUtils.trimToNull(field.getValidMessage())); - yamlField.setFilter(field.getFilter()); - yamlField.setFilterType(field.getFilterType()); - - yamlFields.add(yamlField); - }); - - yamlDataset.setFields(yamlFields); - - return yamlDataset; - } - - private YamlDatasetSql encodeSql(BpmDatasetSql sql) { - if (sql != null && StringUtils.isNotBlank(sql.getSelect())) { - YamlDatasetSql result = new YamlDatasetSql(); - result.setSelect(sql.getSelect()); - - if (StringUtils.isNotBlank(sql.getInsert())) { - result.setInsert(sql.getInsert()); - } - - if (StringUtils.isNotBlank(sql.getUpdate())) { - result.setUpdate(sql.getUpdate()); - } - - return result; - } - - return null; - } - - private Boolean encodeBoolean(boolean value) { - return value ? Boolean.TRUE : null; - } - - private YamlMasterMapping encodeMasterMapping(BpmMasterMapping masterMapping) { - if (masterMapping != null && masterMapping.getMappingFields() != null && !MappingTypeEnum.none.equals(masterMapping.getMappingType())) { - YamlMasterMapping yamlMasterMapping = new YamlMasterMapping(); - yamlMasterMapping.setMappingType(masterMapping.getMappingType().name()); - yamlMasterMapping.setMasterTable(masterMapping.getMaster()); - yamlMasterMapping.setMiddleTable(masterMapping.getMiddle()); - - List mappingFields = new ArrayList<>(masterMapping.getMappingFields().size()); - for (BpmMappingField mappingField: masterMapping.getMappingFields()) { - YamlMappingField yamlMappingField = new YamlMappingField(); - yamlMappingField.setMasterField(mappingField.getMaster()); - yamlMappingField.setSlaveField(mappingField.getSlave()); - yamlMappingField.setMiddleField(mappingField.getMiddle()); - - mappingFields.add(yamlMappingField); - } - - yamlMasterMapping.setMappingFields(mappingFields); - - return yamlMasterMapping; - } - - return null; - } - - private YamlFieldLookup encodeLookup(AbstractBpmFieldLookup lookup) { - YamlFieldLookup yamlFieldLookup = null; - if (lookup != null) { - String lookupType = UiEnum.FieldLookupType.INSTANCE.getValue(lookup.type()); - yamlFieldLookup = new YamlFieldLookup(); - yamlFieldLookup.setType(lookupType); - yamlFieldLookup.setNumberValue(lookup.isNumber()); - yamlFieldLookup.setMappingType(lookup.getMappingType()); - yamlFieldLookup.setDb(lookup.getDb()); - yamlFieldLookup.setTable(lookup.getTable()); - - if (lookup.type() == UiEnum.FieldLookupType.DICT) { - BpmFieldDict bpmFieldDict = (BpmFieldDict)lookup; - yamlFieldLookup.setKeyField("dict_code"); - yamlFieldLookup.setLabelField("dict_label"); - yamlFieldLookup.setOrderField("dict_order"); - - List yamlFieldFilters = new ArrayList<>(1); - YamlFieldFilter yamlFieldFilter = new YamlFieldFilter(); - yamlFieldFilter.setField("dt_name"); - yamlFieldFilter.setKeyword(bpmFieldDict.getDictType()); - yamlFieldFilters.add(yamlFieldFilter); - - yamlFieldLookup.setFilters(yamlFieldFilters); - } else if (lookup.type() == UiEnum.FieldLookupType.TABLE) { - BpmFieldLookup bpmFieldLookup = (BpmFieldLookup)lookup; - yamlFieldLookup.setKeyField(bpmFieldLookup.getKeyField()); - yamlFieldLookup.setLabelField(bpmFieldLookup.getLabelField()); - yamlFieldLookup.setOrderField(bpmFieldLookup.getOrderField()); - yamlFieldLookup.setParentField(bpmFieldLookup.getParentField()); - - if (bpmFieldLookup.isManyToMany()) { - YamlFieldLookupMiddle middle = new YamlFieldLookupMiddle(); - middle.setTable(bpmFieldLookup.getMiddleTable()); - middle.setIdField(bpmFieldLookup.getMiddleIdField()); - middle.setKeyField(bpmFieldLookup.getMiddleKeyField()); - middle.setValueField(bpmFieldLookup.getMiddleValueField()); - - yamlFieldLookup.setMiddle(middle); - } - - if (bpmFieldLookup.getFilters() != null) { - List yamlFieldFilters = new ArrayList<>(); - for (BpmFieldFilter filter : bpmFieldLookup.getFilters()) { - YamlFieldFilter yamlFieldFilter = new YamlFieldFilter(); - yamlFieldFilter.setField(filter.getField()); - yamlFieldFilter.setKeyword(filter.getKeyword()); - yamlFieldFilter.setOp(filter.getOp()); - yamlFieldFilter.setCascade(filter.isCascade()); - yamlFieldFilters.add(yamlFieldFilter); - } - yamlFieldLookup.setFilters(yamlFieldFilters); - } - } - } - - return yamlFieldLookup; - } - - private String encodeRefType(int refType) { - if (refType == 0) { - return null; - } - - String result = UiEnum.FieldRefType.INSTANCE.getValue(refType); - - if (result != null) { - return result; - } - - throw new BpmException(String.format("%s不支持的refType类型:%d", dataset.getName(), refType)); - } - - private String encodeDataModel(int dataModel) { - switch (dataModel) { - case BpmDataset.DATA_MODEL_CARD: - return "card"; - case BpmDataset.DATA_MODEL_LIST: - return "list"; - case BpmDataset.DATA_MODEL_TREE: - return "tree"; - case 0: - throw new BpmException(String.format("未设置%s.dataModel类型", dataset.getName())); - default: - throw new BpmException(String.format("不支持的%s.dataModel类型:%d", dataset.getName(), dataModel)); - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlPageDecoder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlPageDecoder.java deleted file mode 100644 index 1ced008..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlPageDecoder.java +++ /dev/null @@ -1,64 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader.yaml; - -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmForm; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidget; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidgetLayout; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.*; -import cc.smtweb.system.bpm.util.YamlUtil; - -import java.io.InputStream; -import java.util.List; - -// TODO 关联信息的正确性检测 -public class YamlPageDecoder { - public YamlPageDecoder() { - } - - public BpmPage decode(InputStream is) { - YamlPage yamlPage = YamlUtil.readValue(is, YamlPage.class); - - BpmPage bpmPage = new BpmPage(); - bpmPage.setId(yamlPage.getId()); - bpmPage.setDestroyOnClose(yamlPage.getDestroyOnClose()); - - List datasets = yamlPage.getDatasets(); - for (YamlDataset yamlDataset: datasets) { - bpmPage.addDataset(YamlDatasetDecoder.decode(yamlDataset)); - } - - for (BpmForm form: bpmPage.getForms()) { -// BpmForm form = bpmPage.getForm(); - YamlForm yamlForm = new YamlForm(); - decodeWidget(form ,yamlForm); - yamlPage.getForms().add(yamlForm); - } - - return bpmPage; - } - - private void decodeWidget(BpmWidget bpmForm, YamlWidget yamlForm) { - bpmForm.setType(yamlForm.getType()); - bpmForm.setName(yamlForm.getName()); - - YamlWidgetLayout layout = yamlForm.getLayout(); - if (layout != null && layout.getCol() != null) { - bpmForm.setLayout(new BpmWidgetLayout(layout.getCol())); - } - - bpmForm.addProps(yamlForm.getProps()); - bpmForm.addEvents(yamlForm.getEvents()); - - YamlWidget[] children = yamlForm.getChildren(); - if (children != null && children.length > 0) { - BpmWidget[] bpmWidgets = new BpmWidget[children.length]; - for (int i = 0; i < children.length; i++) { - BpmWidget bpmWidget = new BpmWidget(); - decodeWidget(bpmWidget, children[i]); - bpmWidgets[i] = bpmWidget; - } - - bpmForm.setChildren(bpmWidgets); - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlPageEncoder.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlPageEncoder.java deleted file mode 100644 index 9a90237..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/engine/ui/loader/yaml/YamlPageEncoder.java +++ /dev/null @@ -1,44 +0,0 @@ -package cc.smtweb.system.bpm.engine.ui.loader.yaml; - -import cc.smtweb.system.bpm.core.ui.entity.form.BpmForm; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidget; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidgetLayout; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.YamlForm; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.YamlWidget; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.YamlWidgetLayout; - -public class YamlPageEncoder { - public static YamlForm encode(BpmForm form) { - YamlForm yamlForm = new YamlForm(); - encodeWidget(yamlForm, form); - - return yamlForm; - } - - private static void encodeWidget(YamlWidget yamlForm, BpmWidget bpmForm) { - yamlForm.setType(bpmForm.getType()); - yamlForm.setName(bpmForm.getName()); - - BpmWidgetLayout layout = bpmForm.getLayout(); - if (layout != null && layout.getCol() > 1) { - YamlWidgetLayout yamlWidgetLayout = new YamlWidgetLayout(); - yamlWidgetLayout.setCol(layout.getCol()); - yamlForm.setLayout(yamlWidgetLayout); - } - - yamlForm.addProps(bpmForm.getProps()); - yamlForm.addEvents(bpmForm.getEvents()); - - BpmWidget[] children = bpmForm.getChildren(); - if (children != null && children.length > 0) { - YamlWidget[] yamlWidgets = new YamlWidget[children.length]; - for (int i = 0; i < children.length; i++) { - YamlWidget yamlWidget = new YamlWidget(); - encodeWidget(yamlWidget, children[i]); - yamlWidgets[i] = yamlWidget; - } - - yamlForm.setChildren(yamlWidgets); - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmAutoConfiguration.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmAutoConfiguration.java index 5307647..211a8f7 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmAutoConfiguration.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/BpmAutoConfiguration.java @@ -1,14 +1,6 @@ package cc.smtweb.system.bpm.spring; -import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.mvc.config.ControllerConfig; -import cc.smtweb.framework.core.mvc.controller.binder.ParamEditor; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.bind.BpmBeanAttrEditor; -import cc.smtweb.system.bpm.core.ui.bind.BpmMapAttrEditor; -import cc.smtweb.system.bpm.core.ui.bind.BpmPageContextEditor; -import cc.smtweb.system.bpm.spring.action.BpmEventDao; -import cc.smtweb.system.bpm.spring.action.BpmEventLoader; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @@ -22,11 +14,6 @@ public class BpmAutoConfiguration { /** 配置自定义service扫描路径 {module}/{service}/{method} */ @Bean public ControllerConfig bpmControllerConfig() { - return new ControllerConfig("bpm", "cc.smtweb.system.bpm.web", (applicationContext, webDataBinder) -> { - webDataBinder.bind(ParamEditor.TYPE_PARAM, BpmPageContext.class, new BpmPageContextEditor()); - webDataBinder.bind(ParamEditor.TYPE_ATTR, SwMap.class, new BpmMapAttrEditor()); - webDataBinder.bindDefault(ParamEditor.TYPE_ATTR, new BpmBeanAttrEditor()); - return new BpmEventLoader(applicationContext.getBean(BpmEventDao.class)); - }); + return new ControllerConfig("bpm", "cc.smtweb.system.bpm.web", null); } } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/IProcessEngine.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/IProcessEngine.java deleted file mode 100644 index ad43a57..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/IProcessEngine.java +++ /dev/null @@ -1,49 +0,0 @@ -package cc.smtweb.system.bpm.spring; - -import cc.smtweb.system.bpm.engine.process.impl.entity.CommitTaskUserVO; -import cc.smtweb.system.bpm.engine.process.runtime.RouteInfo; -import cc.smtweb.system.bpm.engine.process.task.Task; -import cc.smtweb.system.bpm.engine.process.vo.FlowAction; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.engine.ui.IFormDataStore; - -import java.util.List; - -public interface IProcessEngine { - /** - * 新建任务,一般在流程开始时新建 - * @param flowId - * @param nodeKey - * @return - */ - Task newTask(long flowId, String nodeKey); - - /** - * 保存任务数据 - * @param task - * @return - */ - Task saveTask(Task task); - -// void claim(long taskId, String userId); -// -// void unclaim(String taskId); - - /** - * 完成任务 - * @param task - */ - void commitTask(Task task, FlowAction flowAction, List taskCommitInfo); - - void deleteTask(Task task); - - Task loadTask(long taskId); - - /** 提交路由 */ - RouteInfo routeCommit(Task task, FlowNode toFlowNode); - - /** 驳回路由 */ - RouteInfo routeReturn(Task task); - - IFormDataStore getFormDataStore(); -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/ProcessEngineImpl.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/ProcessEngineImpl.java deleted file mode 100644 index 55f71d9..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/ProcessEngineImpl.java +++ /dev/null @@ -1,322 +0,0 @@ -package cc.smtweb.system.bpm.spring; - -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.core.exception.BpmIlegalArgumentException; -import cc.smtweb.system.bpm.core.exception.BpmObjectNotFoundException; -import cc.smtweb.system.bpm.engine.process.impl.dao.TaskDao; -import cc.smtweb.system.bpm.engine.process.impl.entity.CommitTaskUserVO; -import cc.smtweb.system.bpm.engine.process.runtime.*; -import cc.smtweb.system.bpm.engine.process.task.Task; -import cc.smtweb.system.bpm.engine.process.vo.Flow; -import cc.smtweb.system.bpm.engine.process.vo.FlowAction; -import cc.smtweb.system.bpm.engine.process.vo.FlowConnection; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.engine.ui.IFormDataStore; -import cc.smtweb.system.bpm.engine.ui.impl.FormDataStoreImpl; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.sql.Timestamp; -import java.util.List; - -@Service -public class ProcessEngineImpl implements IProcessEngine { - private DbEngine dbEngine; - private TaskDao taskDao; - - private IFormDataStore formDataStore; - - public ProcessEngineImpl(DbEngine dbEngine) { - taskDao = new TaskDao(dbEngine); - this.dbEngine = dbEngine; - this.formDataStore = new FormDataStoreImpl(dbEngine); - } - - @Override - public Task newTask(long flowId, String nodeKey) { - ProcessInstance processInstance = taskDao.startProcessInstanceByKey(flowId, nodeKey); - - FlowNode flowNode; - - if (nodeKey == null) { - // 找到第一个执行节点,读取字段权限 - flowNode = processInstance.nextNode(FlowAction.TYPE_COMMIT); - } else { - flowNode = processInstance.getFlow().findNode(nodeKey); - } - - if (flowNode == null) { - throw new BpmObjectNotFoundException("not find node by key: " + nodeKey); - } - - processInstance.setCurNode(flowNode, nodeKey == null); - return new Task(dbEngine.nextId(), processInstance); - } - - @Override - public Task saveTask(Task task) { - Timestamp now = new Timestamp(System.currentTimeMillis()); - - ProcessInstance processInstance = task.getProcessInstance(); - taskDao.saveProcess(processInstance, now); - taskDao.saveTask(task, now); - - return task; - } - - private CommitTaskUserVO findTaskUser(List users, String nodeKey) { - for (CommitTaskUserVO user : users) { - // 判断flowNode的合法性和必填性 - if (nodeKey.equals(user.getNodeKey())) { - return user; - } - } - - return null; - } - - @Override - public void commitTask(Task task, FlowAction flowAction, List users) { - switch (flowAction.getType()) { - case FlowAction.TYPE_COMMIT: - FlowNode flowNode = task.getProcessInstance().getFlow().checkAndGetNode(flowAction.checkAndGetConnection().getToNodeId()); - RouteInfo nextProcessInfo = this.routeCommit(task, flowNode); - commitRoute(task, nextProcessInfo, users); - break; - case FlowAction.TYPE_TRANSMIT: - // 转发 - CommitTaskUserVO commitTaskUser = users.get(0); - task.setAssigneeUserId(commitTaskUser.getUserId()); - saveTask(task); - break; - case FlowAction.TYPE_RETURN: - // 1. 终止所有同级子流程 - // 2. 回到来源节点(可能是多个) - nextProcessInfo = this.routeReturn(task); - commitRoute(task, nextProcessInfo, users); - break; - default: - throw new BpmIlegalArgumentException("error action type: " + flowAction.getType()); - } - } - - public void commitRoute(Task task, RouteInfo nextProcessInfo, List users) { - ProcessInstance processInstance = task.getProcessInstance(); - Timestamp now = new Timestamp(System.currentTimeMillis()); - - dbEngine.doTrans(() -> { - for (Route route: nextProcessInfo.getRoutes()) { - FlowNode flowNode = route.getNode(); - if (flowNode != null) { - CommitTaskUserVO user = findTaskUser(users, flowNode.getId()); - - // 判断flowNode的合法性和必填性 - if (user == null) { - throw new BpmObjectNotFoundException("not find task user by node key: " + flowNode.getId()); - } - - Long userId = user.getUserId(); - Task nextTask; - - switch (flowNode.getType()) { - case FlowNode.TYPE_END: - case FlowNode.TYPE_MERGE: - break; - case FlowNode.TYPE_MANUAL: - if (userId == null) { - throw new BpmIlegalArgumentException("not set assignee user"); - } - default: - ProcessInstance subProcess = route.getProcess(); - nextTask = new Task(dbEngine.nextId(), subProcess); - - nextTask.setAssigneeUserId(userId); - this.saveTask(nextTask); - break; - } - } else { - taskDao.deleteProcess(route.getProcess()); - } - } - - taskDao.deleteTask(task); - - return true; - }); - } - - @Override - public void deleteTask(Task task) { - taskDao.deleteTask(task); - } - - @Override - public Task loadTask(long taskId) { - return taskDao.loadTask(taskId); - } - - @Override - public RouteInfo routeCommit(Task task, FlowNode toFlowNode) { - RouteInfo result = new RouteInfo(); - fillNextNodes(result, task.getProcessInstance(), toFlowNode); - return result; - } - - @Override - public IFormDataStore getFormDataStore() { - return formDataStore; - } - - private void fillNextNodes(RouteInfo result, ProcessInstance processInstance, FlowNode toFlowNode) { - Flow flow = processInstance.getFlow(); - - switch (toFlowNode.getType()) { - case FlowNode.TYPE_END: - result.add(processInstance, null); - case FlowNode.TYPE_AUTO: - case FlowNode.TYPE_MANUAL: - result.add(processInstance, toFlowNode); - break; - case FlowNode.TYPE_SPLIT: { - List flowActions = toFlowNode.getActions(); - if (flowActions != null) { - for (FlowAction splitFlowAction : flowActions) { - FlowConnection splitFlowConnection = splitFlowAction.checkAndGetConnection(); - FlowNode splitFlowNode = flow.checkAndGetNode(splitFlowConnection.getToNodeId()); - - // create subProcess - ProcessInstance subProcess = processInstance.createSubProcess(dbEngine.nextId(), splitFlowNode); - subProcess.setConcurrent(true); - fillNextNodes(result, subProcess, splitFlowNode); - } - } - } - break; - case FlowNode.TYPE_MERGE: - // 结束并行流程 - result.add(processInstance, null); - - ProcessInstance parentProcess = taskDao.loadProcess(processInstance.getParentId()); - - if (parentProcess == null) { - throw new BpmObjectNotFoundException("not find process by id " + processInstance.getParentId()); - } - - ProcessRouteItem processRouteItem = parentProcess.getProcessRoute().findRouteByProcess(processInstance.getId()); - - if (processRouteItem == null) { - throw new BpmObjectNotFoundException("not find route by process id " + processInstance.getId()); - } - - // TODO 调整为通过路由列表来判断是否最后一个执行人 - if (dbEngine.queryInt("select count(*) from sw_bpm.bpm_task where task_process_id in (" + StringUtils.join(processRouteItem.getSub(), ",") + ")") == 1) { - FlowAction nextFlowAction = toFlowNode.findAction(FlowAction.TYPE_COMMIT); - - if (nextFlowAction == null) { - throw new BpmObjectNotFoundException("未找到下一步Action, node_id=" + toFlowNode.getId()); - } - - // 回到上级流程继续执行 - FlowConnection nextFlowConnection = nextFlowAction.checkAndGetConnection(); - FlowNode nextFlowNode = flow.checkAndGetNode(nextFlowConnection.getToNodeId()); - - fillNextNodes(result, parentProcess, nextFlowNode); - } - break; - case FlowNode.TYPE_CONDITION: { - List flowActions = toFlowNode.getActions(); - if (flowActions != null) { - for (FlowAction action : flowActions) { - if (checkCondition(action, processInstance)) { - FlowConnection splitFlowConnection = action.checkAndGetConnection(); - FlowNode splitFlowNode = flow.checkAndGetNode(splitFlowConnection.getToNodeId()); - fillNextNodes(result, processInstance, splitFlowNode); - break; - } - } - } - } - break; - default: - break; - } - } - - @Override - public RouteInfo routeReturn(Task task) { - RouteInfo result = new RouteInfo(); - - task.getProcessInstance().getProcessRoute().returnRoute(); - fillReturnNodes(result, task.getProcessInstance(), true); - - return result; - } - - private void fillReturnNodes(RouteInfo result, ProcessInstance processInstance, boolean resume) { - ProcessRouteItem routeItem = processInstance.getProcessRoute().lastRoute(); - if (routeItem != null) { - if (routeItem.getNode() != null) { - // 恢复一个节点 - result.add(processInstance, processInstance.getFlow().checkAndGetNode(routeItem.getNode())); - } else { - List ids = routeItem.getSub(); - if (resume) { - // 恢复并行流程 - for (int i = 0; i < ids.size(); i++) { - // 到历史记录中读取子流程 - ProcessInstance subProcess = taskDao.loadProcessByLog(ids.get(i)); - if (subProcess == null) { - throw new BpmObjectNotFoundException("not find process log by id " + ids.get(i)); - } - - subProcess.resume(dbEngine.nextId()); - ids.set(i, subProcess.getId()); - fillReturnNodes(result, subProcess, true); - } - } else { - // 停止同级并行流程 - List processList = taskDao.loadProcessList(ids); - if (processList != null) { - for (ProcessInstance pi: processList) { - result.add(pi, null); - } - } - } - } - } else if (processInstance.getParentId() != null) { - // 读取上级流程 - ProcessInstance parentProcess = taskDao.loadProcess(processInstance.getParentId()); - fillReturnNodes(result, parentProcess, false); - } - } - - /** SpEL 表达式计算 */ - private boolean checkCondition(FlowAction action, ProcessInstance processInstance) { - String expression = action.getExpression(); - if (StringUtils.isBlank(expression)) { - return true; - } - - ConditionExpression conditionExpression = processInstance.getConditionExpression(); - if (conditionExpression == null) { - ProcessContext rootObject = createProcessContext(processInstance); - - conditionExpression = new ConditionExpression(rootObject); - processInstance.setConditionExpression(conditionExpression); - } - - Boolean value = conditionExpression.execute(expression, Boolean.class); - return value != null ? value: false; - } - - private ProcessContext createProcessContext(ProcessInstance processInstance) { - ProcessContext context = new ProcessContext(); - - context.setVars(taskDao.loadVars(processInstance)); - - // 读取表单数据 - context.setData(this.formDataStore.load(processInstance.getId(), processInstance.getRootId())); - - return context; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/BpmEventDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/BpmEventDao.java deleted file mode 100644 index d0e19a5..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/BpmEventDao.java +++ /dev/null @@ -1,195 +0,0 @@ -package cc.smtweb.system.bpm.spring.action; - -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.mvc.controller.access.IMethodAccess; -import cc.smtweb.system.bpm.core.annotation.BpmEvent; -import cc.smtweb.system.bpm.core.annotation.BpmEventType; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import cc.smtweb.system.bpm.core.ui.service.card.AbstractDatasetCardService; -import cc.smtweb.system.bpm.core.ui.service.list.AbstractDatasetListService; -import cc.smtweb.system.bpm.core.ui.service.tree.AbstractDatasetTreeService; -import cc.smtweb.system.bpm.spring.action.service.BpmActionCardService; -import cc.smtweb.system.bpm.spring.action.service.BpmActionListService; -import cc.smtweb.system.bpm.spring.action.service.BpmActionTreeService; -import cc.smtweb.system.bpm.spring.dao.DatasetCardDao; -import cc.smtweb.system.bpm.spring.dao.DatasetConfigDao; -import cc.smtweb.system.bpm.spring.dao.DatasetListDao; -import cc.smtweb.system.bpm.spring.dao.DatasetTreeDao; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.Map; - -/** - * BpmEvent事件处理Dao - * @author xkliu - */ -@Slf4j -@Service -public class BpmEventDao { - private DbEngine dbEngine; - private DatasetConfigDao datasetConfigDao; - private DatasetCardDao datasetCardDao; - private DatasetListDao datasetListDao; - private DatasetTreeDao datasetTreeDao; - - private Map cardServiceMap = new HashMap<>(); - private Map listServiceMap = new HashMap<>(); - private Map treeServiceMap = new HashMap<>(); - - private BpmActionCardService defaultActionCardService; - private BpmActionListService defaultActionListService; - private BpmActionTreeService defaultActionTreeService; - - public BpmEventDao(DbEngine dbEngine, DatasetConfigDao datasetConfigDao, - DatasetCardDao datasetCardDao, DatasetListDao datasetListDao, DatasetTreeDao datasetTreeDao) { - this.dbEngine = dbEngine; - this.datasetConfigDao = datasetConfigDao; - this.datasetCardDao = datasetCardDao; - this.datasetListDao = datasetListDao; - this.datasetTreeDao = datasetTreeDao; - - defaultActionCardService = new BpmActionCardService(dbEngine, datasetConfigDao, datasetCardDao, null); - defaultActionListService = new BpmActionListService(dbEngine, datasetConfigDao, datasetListDao, null); - defaultActionTreeService = new BpmActionTreeService(dbEngine, datasetConfigDao, datasetTreeDao, null); - } - - // 系统启动时添加扫描的BpmEvent - // 检测是否重复设置和相同动作时类型匹配 - void addAction(BpmEvent bpmEvent, IMethodAccess methodAccess) { - switch (bpmEvent.event()) { - case BpmEventType.CARD_BEFORE_LOAD: - buildCardService(bpmEvent).setBeforeLoad(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.CARD_LOAD: { - buildCardService(bpmEvent).setLoad(new DatasetApiInvoker(methodAccess)); - } - break; - case BpmEventType.CARD_AFTER_LOAD: - buildCardService(bpmEvent).setAfterLoad(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.CARD_BEFORE_SAVE: - buildCardService(bpmEvent).setBeforeSave(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.CARD_SAVE: - buildCardService(bpmEvent).setSave(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.CARD_AFTER_SAVE: - buildCardService(bpmEvent).setAfterSave(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.CARD_BEFORE_REMOVE: - buildCardService(bpmEvent).setBeforeRemove(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.CARD_REMOVE: - buildCardService(bpmEvent).setRemove(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.CARD_AFTER_REMOVE: - buildCardService(bpmEvent).setAfterRemove(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.LIST_BEFORE_LIST: - buildListService(bpmEvent).setBeforeList(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.LIST_LIST: - buildListService(bpmEvent).setList(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.LIST_AFTER_LIST: - buildListService(bpmEvent).setAfterList(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.LIST_BEFORE_COUNT: - buildListService(bpmEvent).setBeforeCount(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.LIST_AFTER_COUNT: - buildListService(bpmEvent).setAfterCount(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.LIST_COUNT: - buildListService(bpmEvent).setCount(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.TREE_BEFORE_TREE: - buildTreeService(bpmEvent).setBeforeTreeAll(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.TREE_AFTER_TREE: - buildTreeService(bpmEvent).setAfterTreeAll(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.TREE_TREE: - buildTreeService(bpmEvent).setTreeAll(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.TREE_BEFORE_MOVE: - buildTreeService(bpmEvent).setBeforeMove(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.TREE_AFTER_MOVE: - buildTreeService(bpmEvent).setAfterMove(new DatasetApiInvoker(methodAccess)); - break; - case BpmEventType.TREE_MOVE: - buildTreeService(bpmEvent).setMove(new DatasetApiInvoker(methodAccess)); - break; - default: - log.error("unknown type :" + bpmEvent.event()); - break; - } - } - - private BpmActionCardService buildCardService(BpmEvent bpmEvent) { - BpmActionCardService result = cardServiceMap.get(bpmEvent.dataset()); - if (result == null) { - result = new BpmActionCardService(dbEngine, datasetConfigDao, datasetCardDao, bpmEvent.dataset()); - cardServiceMap.put(bpmEvent.dataset(), result); - } - - return result; - } - - private BpmActionListService buildListService(BpmEvent bpmEvent) { - BpmActionListService result = listServiceMap.get(bpmEvent.dataset()); - if (result == null) { - result = new BpmActionListService(dbEngine, datasetConfigDao, datasetListDao, bpmEvent.dataset()); - listServiceMap.put(bpmEvent.dataset(), result); - } - - return result; - } - - private BpmActionTreeService buildTreeService(BpmEvent bpmEvent) { - BpmActionTreeService result = treeServiceMap.get(bpmEvent.dataset()); - if (result == null) { - result = new BpmActionTreeService(dbEngine, datasetConfigDao, datasetTreeDao, bpmEvent.dataset()); - treeServiceMap.put(bpmEvent.dataset(), result); - } - - return result; - } - - public AbstractDatasetCardService getCardService(BpmPageContext pageContext) { - String dataset = pageContext.getPageName() + "." + pageContext.getDataset().getName(); - BpmActionCardService result = cardServiceMap.get(dataset); - if (result == null) { - // null就返回默认service - result = this.defaultActionCardService; - } - - return result; - } - - public AbstractDatasetListService getListService(BpmPageContext pageContext) { - String dataset = pageContext.getPageName() + "." + pageContext.getDataset().getName(); - BpmActionListService result = listServiceMap.get(dataset); - if (result == null) { - // null就返回默认service - result = this.defaultActionListService; - } - - return result; - } - - public AbstractDatasetTreeService getTreeService(BpmPageContext pageContext) { - String dataset = pageContext.getPageName() + "." + pageContext.getDataset().getName(); - BpmActionTreeService result = treeServiceMap.get(dataset); - if (result == null) { - // null就返回默认service - result = this.defaultActionTreeService; - } - - return result; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/BpmEventLoader.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/BpmEventLoader.java deleted file mode 100644 index 0ec6b91..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/BpmEventLoader.java +++ /dev/null @@ -1,27 +0,0 @@ -package cc.smtweb.system.bpm.spring.action; - -import cc.smtweb.framework.core.mvc.controller.IActionManager; -import cc.smtweb.framework.core.mvc.controller.access.IMethodAccess; -import cc.smtweb.framework.core.mvc.controller.scan.IScanAction; -import cc.smtweb.system.bpm.core.annotation.BpmEvent; - -public class BpmEventLoader implements IScanAction { - private BpmEventDao bpmEventDao; - - public BpmEventLoader(BpmEventDao bpmActionService) { - this.bpmEventDao = bpmActionService; - } - - @Override - public Class actionType() { - return BpmEvent.class; - } - - @Override - public void load(IActionManager apiManager, String module, BpmEvent webAction, IMethodAccess methodAccess) { -// WebMethodAccess webMethodAccess = new WebMethodAccess(methodAccess); -// apiManager.api("web/webAction", webMethodAccess); - // 给 bpmActionService 添加数据集扩展实现,先判断是否有重复 - bpmEventDao.addAction(webAction, methodAccess); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionCardService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionCardService.java deleted file mode 100644 index a340e6b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionCardService.java +++ /dev/null @@ -1,115 +0,0 @@ -package cc.smtweb.system.bpm.spring.action.service; - -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import cc.smtweb.system.bpm.core.ui.service.card.AbstractDatasetCardService; -import cc.smtweb.system.bpm.core.ui.service.card.DatasetCardAgentWorker; -import cc.smtweb.system.bpm.core.ui.service.card.DatasetCardWorker; -import cc.smtweb.system.bpm.spring.dao.DatasetCardDao; -import cc.smtweb.system.bpm.spring.dao.DatasetConfigDao; -import lombok.Setter; - -/** - * 动态界面Card数据服务 - * @author xkliu - */ -public class BpmActionCardService extends AbstractDatasetCardService { - protected DatasetCardDao datasetCardDao; - // 动态数据集 - private String dataset; - // 检测是否重复设置 -// @Setter -// protected BiFunction loadFunc; -// @Setter -// protected BiFunction saveFunc; -// @Setter -// protected BiFunction removeFunc; -// @Setter -// protected BiFunction removeListFunc; -// @Setter -// protected BiFunction loadLookupFunc; - - @Setter - private DatasetApiInvoker beforeLoad; - @Setter - private DatasetApiInvoker afterLoad; - @Setter - private DatasetApiInvoker load; - @Setter - private DatasetApiInvoker beforeSave; - @Setter - private DatasetApiInvoker afterSave; - @Setter - private DatasetApiInvoker save; - @Setter - private DatasetApiInvoker beforeRemove; - @Setter - private DatasetApiInvoker afterRemove; - @Setter - private DatasetApiInvoker remove; - - public BpmActionCardService(DbEngine dbEngine, DatasetConfigDao datasetConfigDao, DatasetCardDao datasetCardDao, String dataset) { - this.dataset = dataset; - super.init(dbEngine, datasetConfigDao); - this.datasetCardDao = datasetCardDao; - } - - @Override - protected DatasetCardWorker createCardLoadHandler(BpmPageContext pageContext) { - datasetConfigDao.loadDataset(pageContext, dataset); - DatasetCardAgentWorker worker = new DatasetCardAgentWorker(pageContext); - - worker.handleLoad(datasetCardDao::load); - worker.handleLoadLookup(datasetCardDao::loadLookup); - - if (beforeLoad != null) { - worker.onBeforeLoad(beforeLoad); - } - - if (afterLoad != null) { - worker.onAfterLoad(afterLoad); - } - - if (load != null) { - worker.onLoad(load); - } - - return worker; - } - - @Override - protected DatasetCardWorker createCardSaveHandler(BpmPageContext pageContext) { - datasetConfigDao.loadDataset(pageContext, dataset); - DatasetCardAgentWorker worker = new DatasetCardAgentWorker(pageContext); - worker.handleSave(datasetCardDao::save); - - if (beforeSave != null) { - worker.onBeforeSave(beforeSave); - } - - if (afterSave != null) { - worker.onAfterSave(afterSave); - } - - if (save != null) { - worker.onSave(save); - } - - return worker; - } - - @Override - protected DatasetCardWorker createCardRemoveHandler(BpmPageContext pageContext) { - datasetConfigDao.loadDataset(pageContext, dataset); - DatasetCardAgentWorker worker = new DatasetCardAgentWorker(pageContext); - - worker.handleRemove(datasetCardDao::remove); - - worker.onBeforeRemove(beforeRemove); - worker.onAfterRemove(afterRemove); - worker.onRemove(remove); - - return worker; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionListService.java deleted file mode 100644 index 928e67f..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionListService.java +++ /dev/null @@ -1,99 +0,0 @@ -package cc.smtweb.system.bpm.spring.action.service; - -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import cc.smtweb.system.bpm.core.ui.service.list.AbstractDatasetListService; -import cc.smtweb.system.bpm.core.ui.service.list.DatasetListAgentWorker; -import cc.smtweb.system.bpm.core.ui.service.list.DatasetListWorker; -import cc.smtweb.system.bpm.spring.dao.DatasetConfigDao; -import cc.smtweb.system.bpm.spring.dao.DatasetListDao; -import lombok.Setter; - -/** - * 动态界面List数据服务 - * @author xkliu - */ -public class BpmActionListService extends AbstractDatasetListService { - protected DatasetListDao datasetListDao; - private String dataset; - - @Setter - private DatasetApiInvoker beforeCount; - @Setter - private DatasetApiInvoker afterCount; - @Setter - private DatasetApiInvoker count; - - @Setter - private DatasetApiInvoker beforeList; - @Setter - private DatasetApiInvoker list; - @Setter - private DatasetApiInvoker afterList; - - @Setter - private DatasetApiInvoker listAll; - - public BpmActionListService(DbEngine dbEngine, DatasetConfigDao datasetConfigDao, DatasetListDao datasetListDao, String dataset) { - this.dataset = dataset; - super.init(dbEngine, datasetConfigDao); - this.datasetListDao = datasetListDao; - } - - @Override - protected DatasetListWorker createListPartHandler(BpmPageContext pageContext) { - datasetConfigDao.loadDataset(pageContext, dataset); - - DatasetListAgentWorker worker = new DatasetListAgentWorker(pageContext); - - worker.handleListPart(datasetListDao::list); - worker.handleCount(datasetListDao::count); - worker.handleListLookup(datasetListDao::listLookup); - - if (beforeCount != null) { - worker.onBeforeCount(beforeCount); - } - if (afterCount != null) { - worker.onAfterCount(afterCount); - } - if (count != null) { - worker.onCount(count); - } - if (beforeList != null) { - worker.onBeforeList(beforeList); - } - if (afterList != null) { - worker.onAfterList(afterList); - } - if (list != null) { - worker.onListPart(list); - } - - return worker; - } - - @Override - protected DatasetListWorker createListAllHandler(BpmPageContext pageContext) { - datasetConfigDao.loadDataset(pageContext, dataset); - - DatasetListAgentWorker worker = new DatasetListAgentWorker(pageContext); - - worker.handleListAll(datasetListDao::listAll); - worker.handleListLookup(datasetListDao::listLookup); - - if (beforeList != null) { - worker.onBeforeList(beforeList); - } - - if (afterList != null) { - worker.onAfterList(afterList); - } - - if (listAll != null) { - worker.onListAll(listAll); - } - - return worker; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionTreeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionTreeService.java deleted file mode 100644 index 278a251..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/action/service/BpmActionTreeService.java +++ /dev/null @@ -1,79 +0,0 @@ -package cc.smtweb.system.bpm.spring.action.service; - -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.DatasetApiInvoker; -import cc.smtweb.system.bpm.core.ui.service.tree.AbstractDatasetTreeService; -import cc.smtweb.system.bpm.core.ui.service.tree.DatasetTreeAgentWorker; -import cc.smtweb.system.bpm.core.ui.service.tree.DatasetTreeWorker; -import cc.smtweb.system.bpm.spring.dao.DatasetConfigDao; -import cc.smtweb.system.bpm.spring.dao.DatasetTreeDao; -import lombok.Setter; - -/** - * 动态界面List数据服务 - * @author xkliu - */ -public class BpmActionTreeService extends AbstractDatasetTreeService { - protected DatasetTreeDao datasetTreeDao; - private String dataset; - - @Setter - private DatasetApiInvoker beforeMove; - @Setter - private DatasetApiInvoker afterMove; - @Setter - private DatasetApiInvoker move; - @Setter - private DatasetApiInvoker beforeTreeAll; - @Setter - private DatasetApiInvoker treeAll; - @Setter - private DatasetApiInvoker afterTreeAll; - - public BpmActionTreeService(DbEngine dbEngine, DatasetConfigDao datasetConfigDao, DatasetTreeDao datasetTreeDao, String dataset) { - this.dataset = dataset; - super.init(dbEngine, datasetConfigDao); - this.datasetTreeDao = datasetTreeDao; - } - - @Override - protected DatasetTreeWorker createTreeAllHandler(BpmPageContext pageContext) { - datasetConfigDao.loadDataset(pageContext, dataset); - - DatasetTreeAgentWorker worker = new DatasetTreeAgentWorker(pageContext); - worker.handleTreeAll(datasetTreeDao::treeAll); - - if (beforeTreeAll != null) { - worker.onBeforeTreeAll(beforeTreeAll); - } - if (afterTreeAll != null) { - worker.onAfterTreeAll(afterTreeAll); - } - if (treeAll != null) { - worker.onTreeAll(treeAll); - } - - return worker; - } - - @Override - protected DatasetTreeWorker createTreeMoveHandler(BpmPageContext pageContext) { - datasetConfigDao.loadDataset(pageContext, dataset); - - DatasetTreeAgentWorker worker = new DatasetTreeAgentWorker(pageContext); - worker.handleMove(datasetTreeDao::move); - - if (beforeMove != null) { - worker.onBeforeMove(beforeMove); - } - if (afterMove != null) { - worker.onAfterMove(afterMove); - } - if (move != null) { - worker.onMove(move); - } - - return worker; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/BpmFlowCache.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/BpmFlowCache.java deleted file mode 100644 index 305d337..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/BpmFlowCache.java +++ /dev/null @@ -1,49 +0,0 @@ -package cc.smtweb.system.bpm.spring.cache; - -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.system.bpm.engine.entity.AspModelPO; -import cc.smtweb.system.bpm.engine.process.loader.FlowLoader; -import cc.smtweb.system.bpm.engine.process.vo.Flow; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.ArrayList; -import java.util.List; - -@SwCache(ident = "BPM_FLOW", title = "工作流定义") -@Slf4j -public class BpmFlowCache extends AbstractCache { - @Autowired - private DbEngine dbEngine; - - public static BpmFlowCache getInstance() { - return CacheManager.getIntance().getCache(BpmFlowCache.class); - } - - @Override - protected String getId(Flow bean) { - return String.valueOf(bean.getId()); - } - - @Override - protected List loadAll() { - String sql = "select model_id, model_mc_id, model_site_id, model_name, model_status, model_content, model_type, model_version, model_create_uid, model_update_uid, model_create_time, model_last_time from sw_bpm.asp_model" + - " where model_type=?"; - List list = dbEngine.query(sql, AspModelPO.class, 2); - List listRet = new ArrayList<>(list.size()); - for (AspModelPO po: list) { - FlowLoader flowLoader = new FlowLoader(); - Flow flow = flowLoader.load(po.getModelContent()); - - if (flow == null) { - log.error(flowLoader.getLastError()); - } else { - listRet.add(flow); - } - } - return listRet; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/BpmPageCache.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/BpmPageCache.java deleted file mode 100644 index 13ba35b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/BpmPageCache.java +++ /dev/null @@ -1,209 +0,0 @@ -package cc.smtweb.system.bpm.spring.cache; - -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.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.engine.entity.AspModelPO; -import cc.smtweb.system.bpm.engine.entity.AspModelTreeVO; -import cc.smtweb.system.bpm.engine.ui.loader.*; -import cc.smtweb.system.bpm.spring.BpmConfigBean; -import cc.smtweb.system.bpm.util.ITreeDataLevelHandler; -import cc.smtweb.system.bpm.util.TreeDataUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; - -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -@SwCache(ident = "BPM_PAGE", title = "页面设计", lazy = true) -@Slf4j -public class BpmPageCache extends AbstractCache { - private final static String fn = "n"; - @Autowired - private DbEngine dbEngine; - - @Autowired - private BpmConfigBean bpmConfigBean; - - public static BpmPageCache getInstance() { - return CacheManager.getIntance().getCache(BpmPageCache.class); - } - - public BpmPageCache() { - regMap(fn, BpmPage::getFullName); - } - - @Override - protected String getId(BpmPage bean) { - return String.valueOf(bean.getId()); - } - - @Override - protected List loadAll() { - return null; - } - - protected BpmPage load(Long key) { - BpmPage result = null; - - if (key != null) { - IPageRouter pageRouter = null; - if (bpmConfigBean.isDebug()) { - // 设计界面界面数据 - // json内容 - String sql = "select model_id, model_mc_id, model_parent_id, model_site_id, model_key, model_name, model_status, model_content, model_type, model_version, model_create_uid, model_update_uid, model_create_time, model_last_time from sw_bpm.asp_model" + - " where model_id=? and model_type in (3,4)"; - AspModelPO po = dbEngine.queryEntity(sql, AspModelPO.class, key); - - // 项目树 - ITreeDataLevelHandler handler = AspModelTreeVO.createTreeHandler(); - - List list = dbEngine.query("select model_id, model_parent_id, model_key, model_name from sw_bpm.asp_model where model_mc_id=?", - AspModelTreeVO.class, po.getModelMcId()); - AspModelTreeVO root = new AspModelTreeVO(); - TreeDataUtil.buildLevelTree(root, list, handler); - String moduleName = dbEngine.queryString("select mc_module from sw_bpm.asp_model_catalog where mc_id=?", po.getModelMcId()); - - pageRouter = new TreePageRouter(root, moduleName); - result = loadFromJson(po, pageRouter); - } else { - // 部署界面数据 - String sql = "select model_id, model_site_id, model_full_name, model_name, model_status, model_content, model_type, model_version, model_create_time, model_last_time from sw_bpm.bpm_model" + - " where model_id=? and model_type in (3,4)"; - AspModelPO po = dbEngine.queryEntity(sql, AspModelPO.class, key); - - if (po != null) { - // TODO 路由缓存性能 - sql = "select model_id, model_site_id, model_full_name, model_name, model_status, model_type from sw_bpm.bpm_model" + - " where model_type=? and model_status=?"; - List list = dbEngine.query(sql, AspModelPO.class, po.getModelType(), 0); - pageRouter = new ListPageRouter(list); - result = loadFromJson(po, pageRouter); - } - } - - if (result != null && pageRouter != null) { - result.setFullName(pageRouter.loadFullName(key)); - } - } - - return result; - } - - private BpmPage loadFromJson(AspModelPO po, IPageRouter pageRouter) { - BpmPage result = null; - if (po != null) { - UiPageLoader loader; - - if (po.getModelType() == AspModelPO.TYPE_UI_PC) { - loader = new UiPcLoader(pageRouter); - } else { - loader = new UiMobileLoader(pageRouter); - } - - result = loader.load(po.getModelContent()); - - if (result == null) { - log.error(loader.getLastError()); - } else { - // 表存储或者json存储设置 - result.setDeploy(true); - result.setId(po.getModelId()); -// result.getForm().setKey(po.getModelKey()); -// result.getForm().setTitle(po.getModelName()); -// result.setParentId(po.getModelParentId()); -// result.setUpdateAt(NumberTimeUtil.toTimestamp(po.getModelLastTime())); - } - } - - return result; - } - -// public BpmPage get(Long pageId) { -// return super.get(String.valueOf(pageId)); -// } - - public BpmDataset getDataset(String key) { - BpmDataset result = null; - int pos = key.lastIndexOf('.'); - - if (pos > 0) { - BpmPage bpmPage = loadFromOtherKey(key.substring(0, pos)); - if (bpmPage != null) { - result = bpmPage.findDatasetByName(key.substring(pos + 1)); - if (result == null) { - log.error("not find dataset in page:" + key); - } - } - } - - return result; - } - - public BpmPage getByOtherKey(String otherKey) { - BpmPage bean = getByKey(fn, otherKey); - if (bean == null) { - bean = loadFromOtherKey(otherKey); - if (bean != null) { - this.put(bean); - } - } - return bean; - } - - protected BpmPage loadFromOtherKey(String key) { - BpmPage result = null; - - if (key != null) { - if (bpmConfigBean.isDebug()) { - // 部署界面数据 - String sql = "select model_id, model_site_id, model_full_name, model_name, model_status, model_content, model_type, model_version, model_use_vue, model_use_yaml, model_create_time, model_last_time from sw_bpm.bpm_model" + - " where model_full_name=? and model_type in (3,4)"; - AspModelPO po = dbEngine.queryEntity(sql, AspModelPO.class, key); - - if (po != null) { - if (po.getModelUseYaml() != 0) { - result = loadFromYaml(key); - } else { - // TODO 路由缓存性能 - sql = "select model_id, model_site_id, model_full_name, model_name, model_status, model_type from sw_bpm.bpm_model" + - " where model_type=? and model_status=?"; - List list = dbEngine.query(sql, AspModelPO.class, po.getModelType(), 0); - result = loadFromJson(po, new ListPageRouter(list)); - } - } - } else { - result = loadFromYaml(key); - } - } - - if (result != null) { - result.setFullName(key); - } - - return result; - } - - // 读yaml配置文件 - private BpmPage loadFromYaml(String key) { - // 读取其他包的资源文件不能以 "/" 开头 - String path = "plugin/" + key.replace('.', '/') + ".yaml"; - ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - try (InputStream is = classLoader.getResourceAsStream(path)) { - if (is != null) { - UiPageLoader loader = new UiPcLoader(null); - return loader.load(is); - } else { - log.error("not find resource: " + path); - } - } catch (IOException e) { - log.error("load resource error: " + path, e); - } - - return null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/ListPageRouter.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/ListPageRouter.java deleted file mode 100644 index b8dfb4c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/cache/ListPageRouter.java +++ /dev/null @@ -1,28 +0,0 @@ -package cc.smtweb.system.bpm.spring.cache; - -import cc.smtweb.system.bpm.engine.entity.AspModelPO; -import cc.smtweb.system.bpm.engine.ui.loader.IPageRouter; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class ListPageRouter implements IPageRouter { - private Map map = new HashMap<>(); - - public ListPageRouter(List list) { - for (AspModelPO item: list) { - map.put(item.getModelId(), item); - } - } - - @Override - public String loadFullName(Long pageId) { - AspModelPO po = map.get(pageId); - if (po != null) { - return po.getModelFullName(); - } - - return null; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/AbstractDatasetPlugin.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/AbstractDatasetPlugin.java deleted file mode 100644 index ca250c4..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/AbstractDatasetPlugin.java +++ /dev/null @@ -1,247 +0,0 @@ -package cc.smtweb.system.bpm.spring.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractSelectSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlJoinTable; -import cc.smtweb.system.bpm.core.ui.builder.SqlUtil; -import cc.smtweb.system.bpm.core.ui.entity.dataset.*; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.List; -import java.util.Map; - -@Slf4j -public abstract class AbstractDatasetPlugin { - @Autowired - protected DbEngine dbEngine; - - protected AbstractSelectSqlBuilder makeSqlBuilderForTable(BpmDataset dataset, SwMap body, boolean countSql) { - AbstractSelectSqlBuilder sqlBuilder = createSqlBuilderForTable(dataset, countSql); - - List> filter = (List>)body.get(SqlUtil.PN_FILTER); - if (filter != null) { - addSqlWhereForTable(dataset, sqlBuilder, filter, false); - } - - List> search = (List>) body.get(SqlUtil.PN_SEARCH); - - if (search != null) { - int filterType = body.readInt(SqlUtil.PN_SEARCH_TYPE, 0); - - addSqlWhereForTable(dataset, sqlBuilder, search, filterType != 0); - } - - return sqlBuilder; - } - - protected AbstractSelectSqlBuilder createSqlBuilderForTable(BpmDataset dataset, boolean countSql) { - AbstractSelectSqlBuilder sqlBuilder = null; - - if (dataset.getDatabase() != null) { - sqlBuilder = SqlBuilder.createSelect(dataset.getDatabase(), dataset.getTable()); - } else if (dataset.getSql() != null){ - sqlBuilder = SqlBuilder.createDirectSelect(dataset.getSql().getSelect()); - } else { - return null; - } - - if (countSql) { - sqlBuilder.add("count(*) total"); - - // 主表统计字段 - addSummaryFields(dataset, sqlBuilder, ""); - - // 1:1从表统计字段 - List slaves = dataset.getOneToOneDataset(); - if (slaves != null) { - int index = 0; - for (BpmDataset slave: slaves) { - String tableAlias = "b" + (++index); - if (addSummaryFields(slave, sqlBuilder, tableAlias + ".")) { - addJoinTable(sqlBuilder, slave, tableAlias); - } - } - } - } else { - // 主表字段 - // TODO: 后期不需要返回ID字段,控件设置具体id字段值 - sqlBuilder.add(dataset.readIdFieldName() + " id"); - - addFields(dataset, sqlBuilder, ""); - - // 1:1从表字段 - List slaves = dataset.getOneToOneDataset(); - if (slaves != null) { - int index = 0; - for (BpmDataset slave: slaves) { - String tableAlias = "b" + (++index); - BpmDataset slaveDataset = slave; - if (addFields(slaveDataset, sqlBuilder, tableAlias + ".")) { - addJoinTable(sqlBuilder, slave, tableAlias); - } - } - } - } - return sqlBuilder; - } - - private static SqlJoinTable addJoinTable(AbstractSelectSqlBuilder sqlBuilder, BpmDataset slave, String tableAlias) { - SqlJoinTable joinTable = sqlBuilder.addJoinTable(slave.getDatabase(), slave.getTable(), tableAlias); - for (BpmMappingField bpmMappingField : slave.getMasterMapping().getMappingFields()) { - joinTable.add(bpmMappingField.getMaster(), tableAlias + "." + bpmMappingField.getSlave()); - } - - return joinTable; - } - - private static boolean addFields(BpmDataset dataset, AbstractSelectSqlBuilder sqlBuilder, String tableAlias) { - boolean result = false; - for (Map.Entry entry : dataset.getFields().entrySet()) { - BpmField bpmField = entry.getValue(); - -// if (!uiField.isVirtual()) { - sqlBuilder.add(tableAlias + bpmField.getFieldName() + " " + bpmField.getName()); - result = true; -// } - } - - return result; - } - - private static boolean addSummaryFields(BpmDataset dataset, AbstractSelectSqlBuilder sqlBuilder, String tableAlias) { - boolean result = false; - for (Map.Entry entry: dataset.getFields().entrySet()) { - String field = entry.getKey(); - BpmField bpmField = entry.getValue(); - String rule = bpmField.getSummary(); - - if (StringUtils.isNotBlank(rule)) { - String fieldName = tableAlias + bpmField.getFieldName(); - - sqlBuilder.add(SqlUtil.makeSummaryField(rule, fieldName) + " " + field); - result = true; - } - } - - return result; - } - -// protected SelectSqlBuilder makeSqlBuilderForTable(BpmDataset dataset, SwMap query, List fieldFilters) { -// SelectSqlBuilder sqlBuilder = createSqlBuilderForTable(dataset, false); -// -// List> filters = (List>)query.get(SqlUtil.PN_FILTER); -// -// if (fieldFilters != null) { -// for (BpmFieldFilter fieldFilter : fieldFilters) { -// String keyword = fieldFilter.getKeyword(); -// String fieldName = fieldFilter.getField(); -// -// if (StringUtils.isNotBlank(keyword) && StringUtils.isNotBlank(fieldName)) { -// // 级联动态数据 -// if (fieldFilter.isCascade()) { -// if (filters != null) { -// for (Map filter : filters) { -// String queryField = (String) filter.get(IBpmDatasetConst.PN_ITEM_FIELD); -// -// if (fieldName.equals(queryField)) { -// String queryKeyword = (String) filter.get(IBpmDatasetConst.PN_ITEM_KEYWORD); -// if (StringUtils.isNotBlank(queryKeyword)) { -// SqlUtil.addSqlWhere(sqlBuilder, fieldName, fieldFilter.getOp(), queryKeyword); -// } -// break; -// } -// } -// } -// } else { -// SqlUtil.addSqlWhere(sqlBuilder, fieldName, fieldFilter.getOp(), keyword); -// } -// } -// } -// } -// -// return sqlBuilder; -// } - - private void addSqlWhereForTable(BpmDataset dataset, AbstractSelectSqlBuilder sqlBuilder, List> filters, boolean whereOr) { - if (!filters.isEmpty()) { - if (whereOr) { - sqlBuilder.addWhereOrBegin(); - } - - for (Map filter : filters) { - String keyword = (String) filter.get(IBpmDatasetConst.PN_ITEM_KEYWORD); - String field = (String) filter.get(IBpmDatasetConst.PN_ITEM_FIELD); - int op = MapUtils.getIntValue(filter, IBpmDatasetConst.PN_ITEM_OP, 0); - - if (StringUtils.isNotBlank(keyword) && StringUtils.isNotBlank(field)) { - BpmField bpmField = dataset.findFieldByName(field); - - if (bpmField != null) { - SqlUtil.addSqlWhere(sqlBuilder, bpmField.getFieldName(), op, keyword); - } else { - List slaves = dataset.getOneToOneDataset(); - if (slaves != null) { - int index = 0; - for (BpmDataset slave : slaves) { - bpmField = slave.findFieldByName(field); - if (bpmField != null) { - String tableAlias; - - SqlJoinTable joinTable = sqlBuilder.findJoinTable(slave.getDatabase(), slave.getTable()); - if (joinTable != null) { - // select 重设为 inner join - tableAlias = joinTable.getTableAlias(); - } else { - // count 需要加 table - tableAlias = "c" + (++index); - joinTable = addJoinTable(sqlBuilder, slave, tableAlias); - } - - joinTable.setJoinType(SqlJoinTable.INNER_JOIN); - SqlUtil.addSqlWhere(sqlBuilder, tableAlias + "." + bpmField.getFieldName(), op, keyword); - break; - } - } - } - } - - if (bpmField == null) { - // error - log.error("not find filter field " + dataset.getName() + "." + field); - } - } - } - - if (whereOr) { - sqlBuilder.addWhereOrEnd(); - } - } - } - - StringBuilder makeLookupSql(BpmFieldLookup fieldLookup, boolean manyToMany) { - StringBuilder sb = new StringBuilder("SELECT "); - - if (manyToMany) { - sb.append("m.").append(fieldLookup.getMiddleKeyField()).append(" optKey,") - .append("b.").append(fieldLookup.getKeyField()).append(" optChildKey,") - .append("b.").append(fieldLookup.getLabelField()).append(" optValue ").append(" FROM ") - .append(fieldLookup.getDb()).append(".").append(fieldLookup.getMiddleTable()).append(" m LEFT JOIN ") - .append(fieldLookup.getDb()).append(".").append(fieldLookup.getTable()).append(" b ON(b.") - .append(fieldLookup.getKeyField()).append("=m.").append(fieldLookup.getMiddleValueField()).append(") WHERE m.") - .append(fieldLookup.getMiddleKeyField()); - } else { - sb.append(fieldLookup.getKeyField()).append(" optKey,").append(fieldLookup.getLabelField()).append(" optValue FROM ") - .append(fieldLookup.getDb()).append(".").append(fieldLookup.getTable()).append(" WHERE ") - .append(fieldLookup.getKeyField()); - } - -// StringBuilder sb = new StringBuilder("SELECT "); - - return sb; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/BpmKeyManyValue.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/BpmKeyManyValue.java deleted file mode 100644 index 34de38c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/BpmKeyManyValue.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.spring.dao; - -import cc.smtweb.system.bpm.core.ui.BpmKeyValue; -import lombok.Data; - -@Data -public class BpmKeyManyValue extends BpmKeyValue { - private String optChildKey; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetCardDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetCardDao.java deleted file mode 100644 index b0d85dc..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetCardDao.java +++ /dev/null @@ -1,71 +0,0 @@ -package cc.smtweb.system.bpm.spring.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractSelectSqlBuilder; -import cc.smtweb.system.bpm.core.ui.BpmKeyValue; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.builder.CardDataBuilder; -import cc.smtweb.system.bpm.core.ui.builder.SqlUtil; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldLookup; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class DatasetCardDao extends AbstractDatasetPlugin { - public SwMap load(BpmPageContext ctx) { - long id = ctx.getParamId(); - if (id != 0) { - BpmDataset dataset = ctx.getDataset(); - // select - AbstractSelectSqlBuilder sqlBuilder = makeSqlBuilderForTable(dataset, ctx.getBody(), false); - sqlBuilder.addWhere(dataset.readIdFieldName(), id); - - return sqlBuilder.queryEntity(dbEngine, SwMap.class); - } - - return null; - } - - public Long save(BpmPageContext ctx) { - CardDataBuilder builder = CardDataBuilder.create(dbEngine, ctx.getDataset(), ctx.getBody(), ctx.getSession()); - return builder.update(); - } - - public int remove(BpmPageContext ctx) { - String ids = ctx.getBody().readString(IParamConst.PARAMS_IDS); - - BpmDataset dataset = ctx.getDataset(); - if (StringUtils.isNotBlank(ids)) { - return dbEngine.update("delete from " + dataset.fullName() + " where " + dataset.readIdFieldName() + " in(" + ids + ")"); - } else { - long id = ctx.getParamId(); - if (id != 0) { - return dbEngine.update("delete from " + dataset.fullName() + " where " + dataset.readIdFieldName() + "=?", id); - } - } - - return 0; - } - - public BpmKeyValue loadLookup(BpmPageContext ctx, Object lookupKey) { - BpmFieldLookup fieldLookup = ctx.getFieldLookup(); - if (fieldLookup.isManyToMany()) { - StringBuilder sb = makeLookupSql(fieldLookup, true).append("=?"); - List list = dbEngine.query(sb.toString(), BpmKeyManyValue.class, lookupKey); - BpmKeyValue result = new BpmKeyValue(); - - result.setOptKey(SqlUtil.join(list, BpmKeyManyValue::getOptChildKey)); - result.setOptValue(SqlUtil.join(list, BpmKeyManyValue::getOptValue)); - - return result; - } else { - StringBuilder sb = makeLookupSql(fieldLookup, false).append("=?"); - return dbEngine.queryEntity(sb.toString(), BpmKeyValue.class, lookupKey); - } - } - -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetConfigDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetConfigDao.java deleted file mode 100644 index 7d69532..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetConfigDao.java +++ /dev/null @@ -1,141 +0,0 @@ -package cc.smtweb.system.bpm.spring.dao; - -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.core.exception.BpmIlegalArgumentException; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.engine.entity.AspModelPO; -import cc.smtweb.system.bpm.spring.cache.BpmPageCache; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; - -@Service -public class DatasetConfigDao { - @SwParam - private BpmPageCache bpmPageCache; - - @Autowired - private DbEngine dbEngine; - - public BpmPage loadPage(Long pageId) { - if (pageId == null) { - throw new BpmException("参数 pageId 必填"); - } - - BpmPage uiPage = bpmPageCache.get(pageId); - - if (uiPage == null) { - throw new BpmException("未找到页面, id=" + pageId); - } - - return uiPage; - } - - public BpmPage loadPage(String pageName) { - if (pageName == null) { - throw new BpmException("参数 pageName 必填"); - } - - BpmPage uiPage = bpmPageCache.get(pageName); - if (uiPage == null) { - uiPage = bpmPageCache.getByOtherKey(pageName); - } - - if (uiPage == null) { - throw new BpmException("未找到页面, name=" + pageName); - } - - return uiPage; - } - -// private BpmDataset findUiDataset(BpmPage uiPage, String datasetName) { -// if (datasetName == null) { -// throw new BpmException("参数 dataset 必填"); -// } -// -// BpmDataset dataset = uiPage.findDatasetByName(datasetName); -// -// if (dataset == null) { -// throw new BpmException("未找到dataset, pageId=" + uiPage.getId() + ", id=" + datasetName); -// } -// -// return dataset; -// } - -// public void loadDataset(BpmPageContext pageContext) { -// SwMap body = pageContext.getBody(); -// String pageName = body.readString(IParamConst.PARAM_PAGE_NAME); -// if (pageName == null) { -// pageName = body.readString(IParamConst.PARAM_PAGE_ID); -// } -// -// BpmPage page = loadPage(pageName); -// pageContext.setDeploy(page.isDeploy()); -// pageContext.setDataset(findUiDataset(page, body.readString(IParamConst.PARAM_DATASET))); -// } - - public void loadDataset(BpmPageContext pageContext, String datasetPath) { - if (datasetPath != null) { - BpmDataset pageDataset = bpmPageCache.getDataset(datasetPath); - - if (pageDataset == null) { - throw new BpmIlegalArgumentException("not find dataset: " + datasetPath); - } - - pageContext.setDeploy(true); - pageContext.setDataset(pageDataset); -// } else { -// loadDataset(pageContext); - } - } - - /** - * 读取页面全路径 - * - * @param uiPage 页面对象 - * @param includeModule 是否包含模块路径 - * @return 页面全路径,全局唯一 - */ - public List loadPagePath(BpmPage uiPage, boolean includeModule) { - String sql = "select model_id, model_parent_id, model_key, model_name from sw_bpm.asp_model where model_id=?"; - AspModelPO curPage = dbEngine.queryEntity(sql, AspModelPO.class, uiPage.getId()); - - if (StringUtils.isBlank(curPage.getModelKey())) { - throw new BpmException("页面 '" + curPage.getModelName() + "' 未设置名称"); - } - - List names = new ArrayList<>(); - - Long parentId = curPage.getModelParentId(); - while (parentId != null) { - AspModelPO po = dbEngine.queryEntity(sql, AspModelPO.class, parentId); - - if (StringUtils.isBlank(po.getModelKey())) { - throw new BpmException("页面 '" + po.getModelName() + "' 未设置名称"); - } - - names.add(0, po.getModelKey()); - parentId = po.getModelParentId(); - } - - if (includeModule) { - String module = dbEngine.queryString("SELECT mc_module FROM sw_bpm.asp_model_catalog WHERE mc_id IN (SELECT model_mc_id FROM sw_bpm.asp_model WHERE model_id=?)", uiPage.getId()); - if (StringUtils.isBlank(module)) { - throw new BpmException("未设置服务模块名称"); - } - - names.add(0, module); - } - - names.add(curPage.getModelKey()); - - return names; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetListDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetListDao.java deleted file mode 100644 index e8da7be..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetListDao.java +++ /dev/null @@ -1,128 +0,0 @@ -package cc.smtweb.system.bpm.spring.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractSelectSqlBuilder; -import cc.smtweb.system.bpm.core.ui.BpmKeyValue; -import cc.smtweb.system.bpm.core.ui.BpmMapData; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.builder.SqlUtil; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldFilter; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldLookup; -import cc.smtweb.system.bpm.core.ui.entity.dataset.IBpmDatasetConst; -import cc.smtweb.system.bpm.engine.ui.entity.consts.MappingTypeEnum; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -@Service -public class DatasetListDao extends AbstractDatasetPlugin { - public List list(BpmPageContext ctx) { - BpmDataset dataset = ctx.getDataset(); - SwMap query = ctx.getBody(); - // select - AbstractSelectSqlBuilder sqlBuilder = makeSqlBuilderForTable(dataset, query, false); - - int limit = query.readInt(IParamConst.PARAM_PAGE_SIZE, IParamConst.PAGE_DEFAULT_SIZE); - int start = query.readInt(IParamConst.PARAM_PAGE_INDEX, 0) * limit; - - return sqlBuilder.pagedQuery(dbEngine, SwMap.class, start, limit); - } - - public SwMap count(BpmPageContext ctx) { - AbstractSelectSqlBuilder sqlBuilder = makeSqlBuilderForTable(ctx.getDataset(), ctx.getBody(), true); - - // select - return sqlBuilder.queryEntity(dbEngine, SwMap.class); - } - - public BpmMapData listLookup(BpmPageContext ctx, Set idSet) { - BpmFieldLookup fieldLookup = ctx.getFieldLookup(); - if (fieldLookup.getMappingType().equals(MappingTypeEnum.manyToMany)) { - return listLookupManyToMany(fieldLookup, idSet); - } else { - return listLookupManyToOne(fieldLookup, idSet); - } - } - - public List listAll(BpmPageContext ctx) { - // select - AbstractSelectSqlBuilder sqlBuilder = makeSqlBuilderForTable(ctx.getDataset(), ctx.getBody(), ctx.getFieldLookup().getFilters()); - - return sqlBuilder.query(dbEngine, SwMap.class); - } - - private AbstractSelectSqlBuilder makeSqlBuilderForTable(BpmDataset dataset, SwMap query, List fieldFilters) { - AbstractSelectSqlBuilder sqlBuilder = createSqlBuilderForTable(dataset, false); - - List> filters = (List>)query.get(SqlUtil.PN_FILTER); - - if (fieldFilters != null) { - for (BpmFieldFilter fieldFilter : fieldFilters) { - String keyword = fieldFilter.getKeyword(); - String fieldName = fieldFilter.getField(); - - if (StringUtils.isNotBlank(keyword) && StringUtils.isNotBlank(fieldName)) { - // 级联动态数据 - if (fieldFilter.isCascade()) { - if (filters != null) { - for (Map filter : filters) { - String queryField = (String) filter.get(IBpmDatasetConst.PN_ITEM_FIELD); - - if (fieldName.equals(queryField)) { - String queryKeyword = (String) filter.get(IBpmDatasetConst.PN_ITEM_KEYWORD); - if (StringUtils.isNotBlank(queryKeyword)) { - SqlUtil.addSqlWhere(sqlBuilder, fieldName, fieldFilter.getOp(), queryKeyword); - } - break; - } - } - } - } else { - SqlUtil.addSqlWhere(sqlBuilder, fieldName, fieldFilter.getOp(), keyword); - } - } - } - } - - return sqlBuilder; - } - - private BpmMapData listLookupManyToOne(BpmFieldLookup fieldLookup, Set ids) { - StringBuilder sb = makeLookupSql(fieldLookup, false) - .append(" IN (").append(String.join(",", ids)).append(")"); - - List list = dbEngine.query(sb.toString(), BpmKeyValue.class); - - BpmMapData result = new BpmMapData(list.size()); - for (BpmKeyValue item : list) { - result.put(item.getOptKey(), item.getOptValue()); - } - - return result; - } - - private BpmMapData listLookupManyToMany(BpmFieldLookup fieldLookup, Set ids) { - // id, 子表ID, 子表值 - // select m.key, b.key, b.value from m left join b on(b.key = m.value) where m.key in ... - StringBuilder sb = makeLookupSql(fieldLookup, true) - .append(" IN (").append(String.join(",", ids)).append(")"); - - List list = dbEngine.query(sb.toString(), BpmKeyManyValue.class); - - BpmMapData result = new BpmMapData(list.size()); - for (BpmKeyManyValue item : list) { - String value = item.getOptValue(); - - if (StringUtils.isNotBlank(value)) { - result.merge(item.getOptKey(), value, (a, b) -> a + "," + b); - } - } - - return result; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetTreeDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetTreeDao.java deleted file mode 100644 index e2a6b07..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/spring/dao/DatasetTreeDao.java +++ /dev/null @@ -1,61 +0,0 @@ -package cc.smtweb.system.bpm.spring.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractSelectSqlBuilder; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.builder.TreeDataBuilder; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.engine.entity.AspModelTreeVO; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; - -@Service -public class DatasetTreeDao extends AbstractDatasetPlugin { - public List treeAll(BpmPageContext ctx) { - TreeDataBuilder treeDataBuilder = new TreeDataBuilder(ctx.getDataset(), null, null); - - AbstractSelectSqlBuilder sqlBuilder = treeDataBuilder.tableSqlBuilder(); - - List list = sqlBuilder.query(dbEngine, SwMap.class); - - AspModelTreeVO root = new AspModelTreeVO(); - root.setModelName("项目"); - - return treeDataBuilder.buildTree(list, true); - } - - public List tree(BpmPageContext ctx) { - SwMap body = ctx.getBody(); - Long parentId = body.readLong(IParamConst.PARAM_PARENT_ID); - TreeDataBuilder treeDataBuilder = new TreeDataBuilder(ctx.getDataset(), parentId, null); - - AbstractSelectSqlBuilder sqlBuilder = treeDataBuilder.tableSqlBuilder(); - - sqlBuilder.addWhere(treeDataBuilder.getParentField().getFieldName(), parentId); - - return sqlBuilder.query(dbEngine, SwMap.class); - } - - public int move(BpmPageContext ctx) { - TreeDataBuilder treeDataBuilder = TreeDataBuilder.create(ctx); - - List params = new ArrayList<>(); - Long parentId = treeDataBuilder.getParentId(); - Long[] orders = treeDataBuilder.getOrders(); - - int index = 0; - for (Long order: orders) { - params.add(new Object[]{parentId, ++index, order}); - } - - BpmDataset dataset = treeDataBuilder.getDataset(); - - int[] ret = dbEngine.batchUpdate("update " + dataset.fullName() + " set " + treeDataBuilder.getParentField().getFieldName() + "=?, " - + treeDataBuilder.getOrderField().getFieldName() + "=? where " + dataset.readIdFieldName() + "=?", params); - - return ret.length; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/BeanUtil.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/BeanUtil.java index c2f1c13..c52d288 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/BeanUtil.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/util/BeanUtil.java @@ -1,7 +1,7 @@ package cc.smtweb.system.bpm.util; +import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.system.bpm.core.exception.BpmException; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; import org.springframework.beans.FatalBeanException; @@ -99,7 +99,7 @@ public class BeanUtil { beans.add(bean); } } catch (InstantiationException | IllegalAccessException e) { - throw new BpmException(e); + throw new SwException(e); } return beans; } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/AbstractCodeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/AbstractCodeService.java deleted file mode 100644 index 4d0057d..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/AbstractCodeService.java +++ /dev/null @@ -1,28 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.engine.entity.AspModelTreeVO; -import cc.smtweb.system.bpm.spring.dao.DatasetConfigDao; -import cc.smtweb.system.bpm.util.ITreeDataLevelHandler; -import cc.smtweb.system.bpm.util.TreeDataUtil; - -import java.util.List; - -public abstract class AbstractCodeService { - @SwParam - protected DbEngine dbEngine; - - @SwParam - protected DatasetConfigDao datasetConfigDao; - - protected AspModelTreeVO loadParentPage(Long pageId) { - List list = dbEngine.query("select model_id, model_parent_id, model_key, model_name from sw_bpm.asp_model where model_mc_id in" + - " (select model_mc_id from sw_bpm.asp_model where model_id=?)", - AspModelTreeVO.class, pageId); - AspModelTreeVO root = new AspModelTreeVO(); - ITreeDataLevelHandler handler = AspModelTreeVO.createTreeHandler(); - TreeDataUtil.buildLevelTree(root, list, handler); - return TreeDataUtil.findParent(root, pageId, 1, handler); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/JavaCodeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/JavaCodeService.java deleted file mode 100644 index d9c67e3..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/JavaCodeService.java +++ /dev/null @@ -1,413 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.cache.ModelDatabaseCache; -import cc.smtweb.framework.core.db.cache.ModelTableCache; -import cc.smtweb.framework.core.db.vo.ModelDatabase; -import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.framework.file.FilePathGenerator; -import cc.smtweb.system.bpm.core.exception.ModelLoaderError; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmForm; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidget; -import cc.smtweb.system.bpm.engine.entity.AspModelTreeVO; -import cc.smtweb.system.bpm.engine.ui.codegen.DefaultVelocityEngine; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.YamlDataset; -import cc.smtweb.system.bpm.engine.ui.entity.yaml.YamlPage; -import cc.smtweb.system.bpm.engine.ui.loader.yaml.YamlDatasetEncoder; -import cc.smtweb.system.bpm.engine.ui.loader.yaml.YamlPageEncoder; -import cc.smtweb.system.bpm.spring.BpmConfigBean; -import cc.smtweb.system.bpm.util.CodeGenUtil; -import cc.smtweb.system.bpm.util.YamlUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -// 后台java代码生成 -@Slf4j -@SwService -public class JavaCodeService extends AbstractCodeService { - public static final String SRC_MAIN_JAVA = "/src/main/java/"; - public static final String SRC_MAIN_RES = "/src/main/resources"; - public static final String RESOURCE_PLUGIN = "/plugin/"; - public static final String RESOURCE_STATIC = "/static/bpm/"; - - @SwParam - protected DbEngine dbEngine; - - @SwParam - private FilePathGenerator filePathGenerator; - - @SwParam - private BpmConfigBean bpmConfigBean; - - public R info(UserSession us) throws IOException { - URL url = getClass().getResource("/"); - - return R.success(url); - } - - public R buildEntity(UserSession us, @SwParam("id") Long id) throws IOException { - R x = checkConfig(); - if (x != null) { - return x; - } - - String codeJavaPath = bpmConfigBean.getCodeJavaPath(); - - ModelDatabase modelDatabase = ModelDatabaseCache.getInstance().get(id); - - if (modelDatabase == null) { - return R.error("数据模型对象不存在, id=" + id); - } - - String codeJavaPackage = bpmConfigBean.getCodeJavaPackage(); - String[] names = codeJavaPackage.split("\\."); - - File entityPath = new File(codeJavaPath + String.join("/", names) + "/entity"); - - if (!entityPath.exists()) { - if (!entityPath.mkdirs()) { - return R.error("创建目录失败:" + entityPath.getAbsolutePath()); - } - } - - DefaultVelocityEngine velocityEngine = makeJavaVelocityEngine(codeJavaPackage); - - List errors = new ArrayList<>(); - - for (ModelTable modelTable: ModelTableCache.getInstance().getDbTables(modelDatabase.getId())) { - File javaFile = new File(entityPath.getAbsolutePath() + "/" - + CodeGenUtil.underlineToUpperHump(modelTable.getName()) + ".java"); - - // 代码生成到临时文件 - velocityEngine.put("table", modelTable); - R r = velocityEngine.buildUseSign(id, "/codegen/vm/server/entity.java.vm", javaFile); - - if (r != null) { - errors.add(new ModelLoaderError(0, "生成文件‘" + javaFile.getName() + "’失败,请用tmp文件手动替换!")); - } - } - - R r = R.success(entityPath.getAbsolutePath()); - - if (!errors.isEmpty()) { - r.put("errors", errors); - } - - return r; - } - - private R checkConfig() { - if (!bpmConfigBean.isCodeBuild()) { - return R.error("禁用代码生成(bpm.code-build)"); - } - - String codeJavaPath = bpmConfigBean.getCodeJavaPath(); - if (StringUtils.isBlank(codeJavaPath)) { - return R.error("未配置Java文件路径(bpm.code-java-path)"); - } - - if (!codeJavaPath.endsWith(SRC_MAIN_JAVA)) { - return R.error("Java文件路径必须用 '/src/main/java/' 结尾(bpm.code-java-path)"); - } - - File srcPath = new File(codeJavaPath); - - if (!(srcPath.isDirectory() && srcPath.exists())) { - return R.error("Java文件路径不存在:" + codeJavaPath); - } - -// String codeJavaResource = bpmConfigBean.getCodeJavaResource(); -// if (StringUtils.isBlank(codeJavaResource)) { -// return R.error("未配置Java resource文件路径(bpm.code-java-resource)"); -// } -// -// if (!codeJavaResource.startsWith("/plugin/") || !codeJavaResource.endsWith("/")) { -// return R.error("Java resource文件路径必须用 '/plugin/' 开头, '微服务名/' 结尾(bpm.code-java-resource)"); -// } - - String packageName = bpmConfigBean.getCodeJavaPackage(); - if (StringUtils.isBlank(packageName)) { - return R.error("未配置生成Java包名(bpm.code-java-package)"); - } - - if (!packageName.endsWith(".web")) { - return R.error("包名路径必须用 '.web' 结尾(bpm.code-java-package)"); - } - - String[] names = packageName.split("\\."); - - File webPath = new File(codeJavaPath + String.join("/", names)); - if (!(webPath.isDirectory() && webPath.exists())) { - return R.error("包目录不存在:" + webPath.getAbsolutePath()); - } - - return null; - } - - public R buildService(UserSession us, @SwParam("pageId") Long pageId) throws IOException { - R x = checkConfig(); - if (x != null) { - return x; - } - - String modelFullName = dbEngine.queryString("select model_full_name from sw_bpm.bpm_model where model_id=?", pageId); - if (modelFullName == null) { - return R.error("页面未提交"); - } - - AspModelTreeVO moduleNode = loadParentPage(pageId); - - if (moduleNode == null) { - return R.error("未找到页面的模块信息"); - } - - String codeJavaPath = bpmConfigBean.getCodeJavaPath(); - String codeJavaPackage = bpmConfigBean.getCodeJavaPackage(); - JavaPath javaSrcPath = new JavaPath(codeJavaPath, codeJavaPackage); - String[] packageNames = modelFullName.split("\\."); - if (packageNames.length < 2) { - return R.error("未找到页面的节点信息"); - } - - // 生成后台java service代码 - List files = new ArrayList<>(); - BpmPage uiPage = datasetConfigDao.loadPage(pageId); - - DefaultVelocityEngine velocityEngine = new DefaultVelocityEngine(); - for (BpmDataset dataset: uiPage.getDatasets()) { - String customApi = dataset.getCustomApi(); - if (customApi != null) { - String modelName; - switch (dataset.getDataModel()) { - case BpmDataset.DATA_MODEL_CARD: - modelName = "Card"; - break; - case BpmDataset.DATA_MODEL_LIST: - modelName = "List"; - break; - case BpmDataset.DATA_MODEL_TREE: - modelName = "Tree"; - break; - default: - return R.error(dataset.getName() + " 未设置正确的数据模型: " + dataset.getDataModel()); - } - - // Java服务文件路径 - javaSrcPath.setPackages(packageNames); - // Java服务类名 - String[] customNames = customApi.split("/"); - if (customNames.length > 1) { - // 配置了路径和类名 - javaSrcPath.setClassName(customNames[customNames.length - 1]); - } else { - // 只配置了类名 -// javaSrcPath.setPackages(serviceNames).addPackage(serviceNode.getModelKey()); - javaSrcPath.setClassName(customApi); - } - - if (!javaSrcPath.makeDirs()) { - return R.error("创建目录失败:" + javaSrcPath.getAbsolutePath()); - } - - String className = javaSrcPath.getClassName() + "Service"; - - File javaFile = new File(javaSrcPath.getAbsolutePath() + "/" + className + ".java"); - - if (!javaFile.exists()) { - velocityEngine.put("package", javaSrcPath.getPackage()); - velocityEngine.put("dataset", dataset); - velocityEngine.put("className", className); - velocityEngine.put("resourceUrl", modelFullName + "." + dataset.getName()); - - R r = velocityEngine.build("/codegen/vm/server/" + modelName + "Service.java.vm", javaFile); - - if (r != null) { - return r; - } - - files.add(javaFile.getAbsolutePath()); - } - } else { - // TODO: 附加的Lookup表,通过字段的lookup产生的 - } - } - - return R.success(files); - } - - /** 创建配置Yaml文件,项目部署时需要 */ - public R buildYaml(UserSession us, @SwParam("pageId") Long pageId) { - R x = checkConfig(); - if (x != null) { - return x; - } - - String modelFullName = dbEngine.queryString("select model_full_name from sw_bpm.bpm_model where model_id=?", pageId); - if (modelFullName == null) { - return R.error("页面未提交"); - } - -// AspModelTreeVO moduleNode = loadParentPage(pageId); -// -// if (moduleNode == null) { -// return R.error("未找到页面的模块信息"); -// } - - String codeJavaPath = bpmConfigBean.getCodeJavaPath(); - String[] packageNames = modelFullName.split("\\."); - if (packageNames.length < 2) { - return R.error("未找到页面的节点信息"); - } - - // 生成后台java service代码 - List files = new ArrayList<>(); - BpmPage uiPage = datasetConfigDao.loadPage(pageId); - - List yamlDatasets = new ArrayList<>(); - for (BpmDataset dataset: uiPage.getDatasets()) { - yamlDatasets.add(new YamlDatasetEncoder(dataset).encode()); - } - - YamlPage page = new YamlPage(); - page.setId(pageId); - page.setDestroyOnClose(uiPage.getDestroyOnClose()); - - if (!yamlDatasets.isEmpty()) { - page.setDatasets(yamlDatasets); - } - - for (BpmForm form: uiPage.getForms()) { - page.getForms().add(YamlPageEncoder.encode(form)); - } - - // 生成数据集代码 - // 资源文件路径 - String resourceRootPath = codeJavaPath.substring(0, codeJavaPath.length() - SRC_MAIN_JAVA.length()) + SRC_MAIN_RES; - File yamlFile = new File(resourceRootPath + RESOURCE_PLUGIN + StringUtils.join(packageNames, "/") + ".yaml"); - File resourcePath = yamlFile.getParentFile(); - if (!resourcePath.exists()) { - if (!resourcePath.mkdirs()) { - return R.error("创建目录失败:" + resourcePath.getAbsolutePath()); - } - } - - YamlUtil.writeValue(yamlFile, page); - files.add(yamlFile.getAbsolutePath()); - - return R.success(files); - } - -// private AspModelTreeVO loadServiceNames(AspModelTreeVO node, Long pageId, List names) { -// if (pageId.equals(node.getModelId())) { -// return node; -// } -// -// List children = node.getChildren(); -// -// if (children != null) { -// for (AspModelTreeVO child: children) { -// AspModelTreeVO result = loadServiceNames(child, pageId, names); -// if (result != null) { -// names.add(0, node.getModelKey().toLowerCase()); -// -// return result; -// } -// } -// } -// -// return null; -// } - - public R buildEvent(UserSession us, @SwParam("pageId") Long pageId) throws IOException { - R x = checkConfig(); - if (x != null) { - return x; - } - - String modelFullName = dbEngine.queryString("select model_full_name from sw_bpm.bpm_model where model_id=?", pageId); - if (modelFullName == null) { - return R.error("页面未提交"); - } - - String codeJavaPath = bpmConfigBean.getCodeJavaPath(); - String[] packageNames = modelFullName.split("\\."); - if (packageNames.length < 2) { - return R.error("未找到页面的节点信息"); - } - - // 生成后台java service代码 - BpmPage uiPage = datasetConfigDao.loadPage(pageId); - - // 资源文件路径 - String resourceRootPath = codeJavaPath.substring(0, codeJavaPath.length() - SRC_MAIN_JAVA.length()) + SRC_MAIN_RES; - File eventFile = new File(resourceRootPath + RESOURCE_STATIC + StringUtils.join(packageNames, "/") + "-event.js"); - - if (eventFile.exists()) { - return R.error("事件文件已经存在: " + eventFile.getAbsolutePath()); - } - - File eventDir = eventFile.getParentFile(); - if (!eventDir.exists()) { - if (!eventDir.mkdirs()) { - return R.error("创建目录失败:" + eventDir.getAbsolutePath()); - } - } - - List events = new ArrayList<>(); - for (BpmDataset dataset: uiPage.getDatasets()) { - events.add(dataset.getName() + "$onLoad"); - } - - for (BpmForm form: uiPage.getForms()) { - fillEvent(form, events); - } - - DefaultVelocityEngine velocityEngine = new DefaultVelocityEngine(); - velocityEngine.put("url", modelFullName); - velocityEngine.put("events", events); - - R r = velocityEngine.build("/codegen/vm/server/event.js.vm", eventFile); - - if (r != null) { - return r; - } - - return R.success(eventFile.getAbsolutePath()); - } - - private void fillEvent(BpmWidget widget, List events) { - Map widgetEvents = widget.getEvents(); - if (widgetEvents != null) { - widgetEvents.forEach((key, value) -> { - if (StringUtils.isNotBlank(value)) { - events.add(widget.getName() + "$" + value); - } - }); - } - - BpmWidget[] children = widget.getChildren(); - if (children != null) { - for (BpmWidget child: children) { - fillEvent(child, events); - } - } - } - - - private DefaultVelocityEngine makeJavaVelocityEngine(String codeJavaPackage) { - return new DefaultVelocityEngine().put("package", codeJavaPackage); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/JavaPath.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/JavaPath.java deleted file mode 100644 index baaa1d2..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/JavaPath.java +++ /dev/null @@ -1,77 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import cc.smtweb.system.bpm.util.CodeGenUtil; -import lombok.Getter; -import org.apache.commons.lang3.StringUtils; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -public class JavaPath { - private final String rootPath; - private final String[] rootPackages; - private List packageNames; - @Getter - private String className; - @Getter - private String moduleName; - - public JavaPath(String rootPath, String rootPackage) { - this.rootPath = rootPath; - this.rootPackages = rootPackage.split("\\."); - } - - public void setPackages(String[] names) { - this.packageNames = null; - this.moduleName = names[0]; - for (int i = 1; i < names.length; i++) { - addPackage(names[i]); - } - } - - public JavaPath addPackage(String name) { - if (packageNames == null) { - packageNames = new ArrayList<>(); - } - - packageNames.add(name.toLowerCase()); - return this; - } - - public boolean makeDirs() { - File servicePath = new File(getAbsolutePath()); - - if (servicePath.exists()) { - return true; - } - - return servicePath.mkdirs(); - } - - public String getAbsolutePath() { - return rootPath + String.join("/", rootPackages) + "/" + StringUtils.join(packageNames, "/"); - } - - public JavaPath setPackageUrl(String customApi) { - return setPackageUrl(customApi.split("/")); - } - - public JavaPath setPackageUrl(String[] names) { - this.packageNames = null; - for (int i = 0; i < names.length - 1; i++) { - addPackage(names[i].toLowerCase()); - } - - this.className = CodeGenUtil.toUpperHump(names[names.length - 1]); - return this; - } - - public void setClassName(String className) { - this.className = CodeGenUtil.toUpperHump(className); - } - - public String getPackage() { - return StringUtils.join(rootPackages, ".") + "." + StringUtils.join(packageNames, "."); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/PageMetaVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/PageMetaVO.java deleted file mode 100644 index 1167b46..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/PageMetaVO.java +++ /dev/null @@ -1,11 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import lombok.Data; - -import java.sql.Timestamp; - -@Data -public class PageMetaVO { - private Long id; - private Timestamp updateAt; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/RouterVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/RouterVO.java deleted file mode 100644 index 6b07f87..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/RouterVO.java +++ /dev/null @@ -1,11 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import lombok.Data; - -@Data -public class RouterVO { - private String path; - private String name; - private String title; - private String filePath; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/UiPageRef.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/UiPageRef.java deleted file mode 100644 index 78ca089..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/UiPageRef.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import lombok.Data; - -import java.util.HashMap; -import java.util.Map; - -@Data -public class UiPageRef { - private Map routes = new HashMap<>(); - private Map> widgets = new HashMap<>(); - private Long id; - private String name; - private String dir; - private String routerName; - - public void addWidget(String name, Map props) { - widgets.put(name, props); - } - -// public void addLookupDataset(String dataset, String field) { -// lookups.add(dataset + "_" + field); -// } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/UiPageRefLoader.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/UiPageRefLoader.java deleted file mode 100644 index d33d672..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/UiPageRefLoader.java +++ /dev/null @@ -1,58 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmForm; -import cc.smtweb.system.bpm.core.ui.entity.form.BpmWidget; -import cc.smtweb.system.bpm.util.CodeGenUtil; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class UiPageRefLoader { - // 处理button link 页面 - protected UiPageRef loadPageRef(BpmPage bpmPage, String dir, String routerName) { - UiPageRef pageRef = new UiPageRef(); - pageRef.setId(bpmPage.getId()); - pageRef.setName(bpmPage.getFullName()); - pageRef.setDir(dir); - pageRef.setRouterName(routerName); - for (BpmForm form: bpmPage.getForms()) { - buildWidgets(form, pageRef); - } - - return pageRef; - } - - private void buildWidgets(BpmWidget parent, UiPageRef pageRef) { - // 生成响应对象 - if (parent.getVars() != null) { - Map props = new HashMap<>(parent.getVars().size()); - for (Map.Entry entry: parent.getVars().entrySet()) { - String key = entry.getKey(); - Object value = parent.getProps().get(key); - props.put(key, value); - } - - if (!props.isEmpty()) { - pageRef.addWidget(parent.getName(), props); - } - } - - // 循环子控件 - if (parent.getChildren() != null) { - for (BpmWidget widget: parent.getChildren()) { - buildWidgets(widget, pageRef); - } - } - } - - String getRouterName(List names) { - StringBuilder sb = new StringBuilder(); - for (String name: names) { - sb.append(CodeGenUtil.toUpperHump(name)); - } - - return sb.toString(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/VueCodeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/VueCodeService.java deleted file mode 100644 index 072ca7b..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/VueCodeService.java +++ /dev/null @@ -1,226 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.framework.file.FilePathGenerator; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.engine.entity.AspModelTreeVO; -import cc.smtweb.system.bpm.engine.ui.codegen.DefaultVelocityEngine; -import cc.smtweb.system.bpm.spring.BpmConfigBean; -import cc.smtweb.system.bpm.util.CodeGenUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.apache.tomcat.util.http.fileupload.IOUtils; - -import java.io.*; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -// 前端界面代码生成 -@Slf4j -@SwService -public class VueCodeService extends AbstractCodeService { - @SwParam - private FilePathGenerator filePathGenerator; - - @SwParam - private BpmConfigBean bpmConfigBean; - - public R info(UserSession us) throws IOException { - URL url = getClass().getResource("/"); - - return R.success(url); - } - - /** 生成代码 */ - public R build(UserSession us, @SwParam("pageId") Long pageId, @SwParam("type") String type) throws IOException { - if (!bpmConfigBean.isCodeBuild()) { - return R.error("禁用代码生成(bpm.code-build)"); - } - - String codeVuePath = bpmConfigBean.getCodeVuePath(); - if (StringUtils.isBlank(codeVuePath)) { - return R.error("未配置生成VUE文件路径(bpm.code-vue-path)"); - } - - String codeVueDir = getDir(); - - if (!codeVuePath.endsWith("/src/")) { - return R.error("VUE文件路径必须用 '/src/' 结尾(bpm.code-vue-path)"); - } - - File srcPath = new File(codeVuePath); - - if (!(srcPath.isDirectory() && srcPath.exists())) { - return R.error("VUE文件路径不存在:" + codeVuePath); - } - - if ("router".equals(type)) { - return makeRouterCode(pageId, codeVuePath); - } else if (dbEngine.queryLong("select model_id from sw_bpm.bpm_model where model_id=?", pageId) == null) { - return R.error("页面未提交"); - } - - return makePageCode(pageId, codeVuePath, codeVueDir); - } - - private R makeRouterCode(Long pageId, String codeVuePath) throws IOException { - AspModelTreeVO moduleNode = loadParentPage(pageId); - - if (moduleNode == null) { - return R.error("未找到页面的模块信息"); - } - - // src/router/modules/{moduleNode.name}.ts - List routers = new ArrayList<>(); - R r = buildRouter(moduleNode, routers, new ArrayList<>()); - if (r != null) { - return r; - } - - DefaultVelocityEngine velocityEngine = new DefaultVelocityEngine(); - velocityEngine.put("routers", routers); - - // 生成vue主页面 - File vmFile = new File(codeVuePath + "/router/modules/" + moduleNode.getModelKey() + ".ts"); - r = velocityEngine.buildUseSign(moduleNode.getModelId(), "/codegen/vm/router.ts.vm", vmFile); - if (r != null) { - return r; - } - - return R.success(vmFile.getAbsolutePath()); - } - - private R buildRouter(AspModelTreeVO node, List routers, List names) { - if (StringUtils.isBlank(node.getModelKey())) { - return R.error("页面 '" + node.getModelName() + "' 未设置命名"); - } - names.add(node.getModelKey()); - - List children = node.getChildren(); - - if (children != null) { - for (AspModelTreeVO child: children) { - R r = buildRouter(child, routers, names); - if (r != null) { - return r; - } - } - } - - // 最后一级才生成页面路由 - if (node.getChildren() == null) { - StringBuilder sb = new StringBuilder(); - names.forEach((name) -> sb.append(CodeGenUtil.toLowerHump(name))); - sb.setCharAt(0, Character.toLowerCase(sb.charAt(0))); - - RouterVO router = new RouterVO(); - router.setFilePath(String.join("/", names)); - router.setPath(String.join("/", names)); - router.setName(getRouterName(names)); - router.setTitle(node.getModelName()); - - routers.add(router); - } - - names.remove(names.size() - 1); - - return null; - } - - private static String getRouterName(List names) { - StringBuilder sb = new StringBuilder(); - for (String name: names) { - sb.append(CodeGenUtil.toUpperHump(name)); - } - - return sb.toString(); - } - - private R makePageCode(@SwParam("pageId") Long pageId, String codeVuePath, String codeVueDir) throws IOException { - // 重新读取页面,获取加载错误值 - BpmPage uiPage = datasetConfigDao.loadPage(pageId); - - // 创建页面目录 - List names = datasetConfigDao.loadPagePath(uiPage, false); - - File viewPath = new File(codeVuePath + codeVueDir + "/" + String.join("/", names)); - - if (!viewPath.exists()) { - if (!viewPath.mkdirs()) { - return R.error("创建目录失败:" + viewPath.getAbsolutePath()); - } - } - - /* - * 启用VM引擎生成页面 - */ - DefaultVelocityEngine velocityEngine = makeVueVelocityEngine(codeVueDir, uiPage, names); - - // 生成vue主页面 - File vmFile = new File(viewPath.getAbsolutePath() + "/index.vue"); - R r = velocityEngine.buildUseSign(uiPage.getId(), "/codegen/vm/index.vue.vm", vmFile); - if (r != null) { - return r; - } - - // 生成dataset.ts文件 - File tsFile = new File(viewPath.getAbsolutePath() + "/dataset.ts"); - r = velocityEngine.buildUseSign(uiPage.getId(), "/codegen/vm/dataset.ts.vm", tsFile); - if (r != null) { - return r; - } - - // 生成 events.ts 事件文件 - r = velocityEngine.build("/codegen/vm/events.ts.vm", new File(viewPath.getAbsolutePath() + "/event.ts")); - if (r != null) { - return r; - } - - // 复制基础文件 - File commonPath = new File(codeVuePath + "/" + codeVueDir + "/page"); - if (!commonPath.exists()) { - if (!commonPath.mkdirs()) { - return R.error("创建目录失败:" + commonPath.getAbsolutePath()); - } - } - - copy("dataset.ts", commonPath); - copy("events.ts", commonPath); - copy("page.types.ts", commonPath); - - return R.success(vmFile.getAbsolutePath()); - } - - private DefaultVelocityEngine makeVueVelocityEngine(String codeVueDir, BpmPage uiPage, List routerNames) { - DefaultVelocityEngine velocityEngine = new DefaultVelocityEngine(); - - UiPageRefLoader pageRefLoader = new UiPageRefLoader(); - - velocityEngine.put("page", uiPage).put("pageRef", pageRefLoader.loadPageRef(uiPage, codeVueDir, pageRefLoader.getRouterName(routerNames))); - - return velocityEngine; - } - - private void copy(String srcFileName, File commonPath) throws IOException { - File destFile = new File(commonPath.getAbsoluteFile() + "/" + srcFileName); - - if (!destFile.exists()) { - try (InputStream is = this.getClass().getResourceAsStream("/codegen/ts/" + srcFileName); - OutputStream os = new FileOutputStream(destFile)) { - IOUtils.copy(is, os); - } - } - } - - private String getDir() { - String codeVueDir = bpmConfigBean.getCodeVueDir(); - if (StringUtils.isBlank(codeVueDir)) { - codeVueDir = "views"; - } - return codeVueDir; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/WidgetCodeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/WidgetCodeService.java deleted file mode 100644 index 8087ec7..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/codegen/WidgetCodeService.java +++ /dev/null @@ -1,40 +0,0 @@ -package cc.smtweb.system.bpm.web.design.codegen; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwBody; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.file.FilePathGenerator; -import cc.smtweb.system.bpm.spring.BpmConfigBean; -import cc.smtweb.system.bpm.util.YamlUtil; -import lombok.extern.slf4j.Slf4j; - -import java.io.File; -import java.io.IOException; - -// 控件配置代码后台生成 -@Slf4j -@SwService -public class WidgetCodeService extends AbstractCodeService { - @SwParam - private FilePathGenerator filePathGenerator; - - @SwParam - private BpmConfigBean bpmConfigBean; - - /** 生成代码 */ - public R build(@SwParam("type") String type, @SwBody SwMap body) throws IOException { - // 资源文件路径 - String codeJavaPath = bpmConfigBean.getCodeJavaPath(); - String resourceRootPath = codeJavaPath.substring(0, codeJavaPath.length() - JavaCodeService.SRC_MAIN_JAVA.length()) - + JavaCodeService.SRC_MAIN_RES + "/bpm/ui/"; - File file = new File(resourceRootPath + type + ".yaml"); - if (file.exists()) { - return R.success(); - } - - YamlUtil.writeValue(file, body); - return R.success(file.getAbsolutePath()); - } -} 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/db/ModelCatalogCache.java similarity index 91% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogCache.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogCache.java index d564575..100114a 100644 --- 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/db/ModelCatalogCache.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.annotation.SwCache; import cc.smtweb.framework.core.cache.AbstractCache; @@ -7,8 +7,6 @@ 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.db.vo.ModelCatalog; -import cc.smtweb.framework.core.db.vo.ModelCatalog; -import cc.smtweb.framework.core.db.vo.ModelProject; import java.util.List; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogService.java similarity index 95% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogService.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogService.java index 5438512..19cedf8 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogService.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.annotation.SwService; import cc.smtweb.framework.core.db.vo.ModelCatalog; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogTreeHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHandler.java similarity index 98% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogTreeHandler.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHandler.java index 5f4bc6d..6ec3335 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogTreeHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHandler.java @@ -1,6 +1,5 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; -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; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogTreeHelper.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHelper.java similarity index 95% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogTreeHelper.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHelper.java index 8cc0b32..037a170 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelCatalogTreeHelper.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelCatalogTreeHelper.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.common.SwConsts; import cc.smtweb.framework.core.db.vo.ModelCatalog; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelDatabaseComboHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelDatabaseComboHandler.java similarity index 93% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelDatabaseComboHandler.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelDatabaseComboHandler.java index d6eb302..265eee2 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelDatabaseComboHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelDatabaseComboHandler.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.db.vo.ModelDatabase; import cc.smtweb.framework.core.mvc.service.DefaultComboHandler; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelDatabaseService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelDatabaseService.java similarity index 95% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelDatabaseService.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelDatabaseService.java index 7e91da0..c002425 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelDatabaseService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelDatabaseService.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.annotation.SwService; import cc.smtweb.framework.core.db.vo.ModelCatalog; 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/db/ModelProjectCache.java similarity index 89% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectCache.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelProjectCache.java index 888892c..2d059b6 100644 --- 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/db/ModelProjectCache.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.annotation.SwCache; import cc.smtweb.framework.core.cache.AbstractCache; @@ -7,10 +7,7 @@ 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 diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelProjectService.java similarity index 95% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectService.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelProjectService.java index 19e0e54..396c2b1 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelProjectService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelProjectService.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.annotation.SwService; import cc.smtweb.framework.core.db.vo.ModelProject; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableComboHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelTableComboHandler.java similarity index 94% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableComboHandler.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelTableComboHandler.java index 243d251..b4b574f 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableComboHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelTableComboHandler.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.db.vo.ModelTable; import cc.smtweb.framework.core.mvc.service.DefaultComboHandler; 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/db/ModelTableSaveHanlder.java similarity index 91% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableSaveHanlder.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelTableSaveHanlder.java index 56d5a03..01ab1eb 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/db/ModelTableSaveHanlder.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.db.vo.ModelTable; import cc.smtweb.framework.core.mvc.service.DefaultSaveHandler; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelTableService.java similarity index 97% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableService.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelTableService.java index f1ef2b9..4936a5f 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/table/ModelTableService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/db/ModelTableService.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.table; +package cc.smtweb.system.bpm.web.design.db; import cc.smtweb.framework.core.annotation.SwBody; import cc.smtweb.framework.core.annotation.SwService; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcCache.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcCache.java index 117321b..3cfd542 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcCache.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcCache.java @@ -5,7 +5,6 @@ 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.system.bpm.web.design.form.ModelForm; import java.util.ArrayList; import java.util.Comparator; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcService.java index 1b44c10..d44fad1 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/flow/ModelProcService.java @@ -6,7 +6,10 @@ import cc.smtweb.framework.core.common.R; 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.mvc.service.*; +import cc.smtweb.framework.core.mvc.service.AbstractCompService; +import cc.smtweb.framework.core.mvc.service.AbstractHandler; +import cc.smtweb.framework.core.mvc.service.DefaultDelHandler; +import cc.smtweb.framework.core.mvc.service.DefaultListHandler; import cc.smtweb.framework.core.session.UserSession; import cc.smtweb.framework.core.util.SqlUtil; import cc.smtweb.system.bpm.web.design.form.ModelForm; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java index 1597435..f054778 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormCache.java @@ -5,13 +5,7 @@ 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.impl.DefaultEntity; -import cc.smtweb.framework.core.db.vo.ModelTable; -import org.springframework.dao.DataAccessException; -import org.springframework.jdbc.core.ResultSetExtractor; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Comparator; import java.util.List; 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 baca930..18b9da4 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 @@ -1,9 +1,9 @@ package cc.smtweb.system.bpm.web.design.form; -import cc.smtweb.framework.core.common.SwException; -import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; +import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.vo.ModelField; import cc.smtweb.framework.core.db.vo.ModelTable; @@ -12,13 +12,15 @@ import cc.smtweb.framework.core.session.UserSession; 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.db.ModelCatalogCache; +import cc.smtweb.system.bpm.web.design.db.ModelProjectCache; 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; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; /** * Created by Akmm at 2022/4/20 18:45 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 4155d02..8900b26 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 @@ -1,8 +1,8 @@ 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.SwException; import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.EntityDao; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java index e80da43..5b2bdb6 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormService.java @@ -1,12 +1,15 @@ package cc.smtweb.system.bpm.web.design.form; +import cc.smtweb.framework.core.annotation.SwBody; +import cc.smtweb.framework.core.annotation.SwService; import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwBody; -import cc.smtweb.framework.core.annotation.SwService; import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.mvc.service.*; +import cc.smtweb.framework.core.mvc.service.AbstractCompService; +import cc.smtweb.framework.core.mvc.service.AbstractHandler; +import cc.smtweb.framework.core.mvc.service.DefaultDelHandler; +import cc.smtweb.framework.core.mvc.service.DefaultListHandler; import cc.smtweb.framework.core.session.UserSession; import cc.smtweb.framework.core.util.SqlUtil; import org.apache.commons.lang3.StringUtils; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDataset.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDataset.java index 54a965d..99c7b6a 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDataset.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDataset.java @@ -1,7 +1,7 @@ package cc.smtweb.system.bpm.web.design.form.define; -import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.vo.ModelField; import cc.smtweb.framework.core.db.vo.ModelTable; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetField.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetField.java index dcb67d7..6faa2f3 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetField.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetField.java @@ -1,6 +1,5 @@ package cc.smtweb.system.bpm.web.design.form.define; -import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonIgnore; /** diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetFilter.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetFilter.java index cf90921..d2b3ec6 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetFilter.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasetFilter.java @@ -1,7 +1,5 @@ package cc.smtweb.system.bpm.web.design.form.define; -import com.fasterxml.jackson.annotation.JsonFilter; - /** * Created by Akmm at 2022/4/20 18:15 */ //过滤条件信息 diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/entity/MenuVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/MenuVO.java similarity index 95% rename from smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/entity/MenuVO.java rename to smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/MenuVO.java index 6dd9ded..09a506d 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/entity/MenuVO.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/MenuVO.java @@ -1,4 +1,4 @@ -package cc.smtweb.system.bpm.web.design.preview.entity; +package cc.smtweb.system.bpm.web.design.preview; import cc.smtweb.system.bpm.util.ITreeDataLevelHandler; import lombok.Data; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewAppCardService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewAppCardService.java deleted file mode 100644 index 7a32502..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewAppCardService.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.smtweb.system.bpm.web.design.preview; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.system.bpm.web.design.preview.entity.AppVO; - -@SwService -public class PreviewAppCardService { - @SwParam - private DbEngine dbEngine; - - public R load(@SwParam("module") String module, UserSession us) { - String sql = "select mc_id id, mc_name name, mc_module module from sw_bpm.asp_model_catalog" + - " where mc_module=? and mc_site_id=?"; - AppVO app = dbEngine.queryEntity(sql, AppVO.class, module, us.getSiteId()); - if (app == null) { - return R.error(module + " 模块不存在!"); - } - return R.success(app); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewAppListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewAppListService.java deleted file mode 100644 index 8f7a175..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewAppListService.java +++ /dev/null @@ -1,28 +0,0 @@ -package cc.smtweb.system.bpm.web.design.preview; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.system.bpm.web.design.preview.entity.AppVO; - -import java.util.List; - -@SwService -public class PreviewAppListService { - @SwParam - private DbEngine dbEngine; - - public R listAll(UserSession us) { - String sql = "select mc_id id, mc_name name, mc_module module from sw_bpm.asp_model_catalog" + - " where mc_site_id=? order by mc_name"; - List list = dbEngine.query(sql, AppVO.class, us.getSiteId()); - if (list != null) { - for (AppVO app: list) { - app.setUrl("/static/uc/index.html#/?module=" + app.getModule()); - } - } - return R.success(list); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java index 7e1ddd3..92a013d 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/PreviewMenuTreeService.java @@ -1,8 +1,8 @@ package cc.smtweb.system.bpm.web.design.preview; -import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.annotation.SwParam; import cc.smtweb.framework.core.annotation.SwService; +import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.session.UserSession; @@ -10,11 +10,8 @@ import cc.smtweb.framework.core.util.CommUtil; import cc.smtweb.system.bpm.util.TreeDataUtil; import cc.smtweb.system.bpm.web.design.form.ModelForm; import cc.smtweb.system.bpm.web.design.form.ModelFormCache; -import cc.smtweb.system.bpm.web.design.preview.entity.MenuVO; -import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; @SwService @@ -45,13 +42,4 @@ public class PreviewMenuTreeService { return R.success(data); } - - private void fixPath(List children, String path) { - if (children != null) { - for (MenuVO menu : children) { - menu.setPath(path + "." + menu.getPath()); - fixPath(menu.getChildren(), menu.getPath()); - } - } - } } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/entity/AppVO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/entity/AppVO.java deleted file mode 100644 index 5dac2e6..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/preview/entity/AppVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package cc.smtweb.system.bpm.web.design.preview.entity; - -import cc.smtweb.framework.core.annotation.SwTable; -import lombok.Data; - -/** - * asp_model_catalog - * @author xkliu - */ -@Data -@SwTable("sw_bpm.asp_model_catalog") -public class AppVO { - private Long id; - private String name; - private String module; - private String url; - private String icon; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/user/UserGroupListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/user/UserGroupListService.java deleted file mode 100644 index 80e8f9c..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/user/UserGroupListService.java +++ /dev/null @@ -1,30 +0,0 @@ -package cc.smtweb.system.bpm.web.design.user; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.web.design.user.entity.UserGroupPO; -import lombok.extern.slf4j.Slf4j; - -import java.util.List; - - -/** - * 角色 - * @author xkliu - * @since 1.0.0 - */ -//@Api(tags = "用户组") -@Slf4j -@SwService -public class UserGroupListService { - @SwParam - private DbEngine dbEngine; - -// @ApiOperation(value = "用户组列表", nickname = "1.0.2", response = RolePO.class) - public R list() { - List userGroupPos = dbEngine.query("SELECT ug_id, ug_name, ug_create_time, ug_last_time FROM sw_bpm.bpm_user_group", UserGroupPO.class); - return R.success(userGroupPos); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/user/entity/UserGroupPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/user/entity/UserGroupPO.java deleted file mode 100644 index cd0355f..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/user/entity/UserGroupPO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.smtweb.system.bpm.web.design.user.entity; - -import lombok.Data; - -@Data -public class UserGroupPO { - private Long ugId; - - private String ugName; - - private String ugCreateAt; - - private String ugUpdateAt; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/AbstractDynPageHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/AbstractDynPageHandler.java index 2d45239..c55a185 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/AbstractDynPageHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/AbstractDynPageHandler.java @@ -8,8 +8,6 @@ import cc.smtweb.system.bpm.web.design.form.ModelFormHelper; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; import cc.smtweb.system.bpm.web.design.form.define.PageDatasets; -import java.util.Map; - /** * Created by Akmm at 2022/4/21 17:53 */ diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageDelHandler.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageDelHandler.java index 70f70f1..1c0cee7 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageDelHandler.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageDelHandler.java @@ -1,10 +1,10 @@ package cc.smtweb.system.bpm.web.engine.dynPage; -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.cache.AbstractCache; import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; import cc.smtweb.framework.core.db.DbEngine; import cc.smtweb.framework.core.db.EntityDao; import cc.smtweb.framework.core.db.cache.ModelTableCache; diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageHelper.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageHelper.java index dd3d74c..08e00e0 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageHelper.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageHelper.java @@ -1,9 +1,9 @@ package cc.smtweb.system.bpm.web.engine.dynPage; -import cc.smtweb.framework.core.common.SwException; -import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.common.SwConsts; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; +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; 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 fd07750..ca91983 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 @@ -1,21 +1,11 @@ package cc.smtweb.system.bpm.web.engine.dynPage; 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.common.SwEnum; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.EntityHelper; -import cc.smtweb.framework.core.db.cache.ModelTableCache; -import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.framework.core.mvc.service.SqlNamedPara; +import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.mvc.service.SwListData; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; -import java.util.List; - -import static cc.smtweb.framework.core.common.SwConsts.TOTAL_KEY; - /** * Created by Akmm at 2022/4/21 17:53 */ diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageProvider.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageProvider.java index 0723685..f046509 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageProvider.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageProvider.java @@ -7,9 +7,7 @@ import cc.smtweb.framework.core.db.EntityHelper; import cc.smtweb.framework.core.db.cache.ModelTableCache; import cc.smtweb.framework.core.db.vo.ModelTable; import cc.smtweb.framework.core.mvc.service.AbstractCompProvider; -import cc.smtweb.framework.core.mvc.service.IDataProvider; import cc.smtweb.framework.core.mvc.service.SqlNamedPara; -import cc.smtweb.framework.core.mvc.service.SwListData; import cc.smtweb.system.bpm.web.design.form.define.PageDataset; import cc.smtweb.system.bpm.web.design.form.define.PageDatasets; 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 472a13a..a7b914f 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 @@ -1,11 +1,11 @@ package cc.smtweb.system.bpm.web.engine.dynPage; -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.cache.AbstractCache; import cc.smtweb.framework.core.cache.CacheManager; +import cc.smtweb.framework.core.common.R; import cc.smtweb.framework.core.common.SwEnum; +import cc.smtweb.framework.core.common.SwException; +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; @@ -20,7 +20,10 @@ import cc.smtweb.system.bpm.web.design.form.define.PageDataset; import cc.smtweb.system.bpm.web.design.form.define.PageDatasetFilter; import org.apache.commons.lang3.StringUtils; -import java.util.*; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; /** * Created by Akmm at 2022/4/21 17:53 diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageService.java index 26c727c..3803864 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageService.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/dynPage/DynPageService.java @@ -1,10 +1,11 @@ package cc.smtweb.system.bpm.web.engine.dynPage; -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; import cc.smtweb.framework.core.annotation.SwBody; import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.mvc.service.*; +import cc.smtweb.framework.core.common.R; +import cc.smtweb.framework.core.common.SwMap; +import cc.smtweb.framework.core.mvc.service.AbstractCompService; +import cc.smtweb.framework.core.mvc.service.AbstractHandler; import cc.smtweb.framework.core.session.UserSession; /** diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java index 64436ef..21c5b91 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/engine/flow/FlowInstance.java @@ -4,7 +4,9 @@ import cc.smtweb.system.bpm.web.design.flow.ModelProc; import cc.smtweb.system.bpm.web.engine.flow.define.ProcinstEntity; import cc.smtweb.system.bpm.web.engine.flow.define.TaskEntity; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; /** * Created by Akmm at 2020/3/4 11:35 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 index 21067aa..0b34f57 100644 --- 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 @@ -2,7 +2,6 @@ package cc.smtweb.system.bpm.web.engine.flow; import cc.smtweb.framework.core.mvc.service.AbstractCompService; import cc.smtweb.framework.core.mvc.service.AbstractHandler; -import cc.smtweb.framework.core.mvc.service.IWorker; /** * Created by Akmm at 2022/5/24 14:21 diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/ProcessDetailLogPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/ProcessDetailLogPO.java deleted file mode 100644 index c19f84a..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/ProcessDetailLogPO.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.smtweb.system.bpm.web.task.entity; - -import lombok.Data; - -import java.sql.Timestamp; - -@Data -public class ProcessDetailLogPO { - private Long pdlId; - - private Long pdlProcessId; - - private Long pdlProcessRootId; - - private Long pdlTaskId; - - private String pdlContent; - - private Integer pdlLockRev; - - private Timestamp pdlCreateAt; - - private Timestamp pdlUpdateAt; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/UserGroupTargetPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/UserGroupTargetPO.java deleted file mode 100644 index d30dbd2..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/UserGroupTargetPO.java +++ /dev/null @@ -1,10 +0,0 @@ -package cc.smtweb.system.bpm.web.task.entity; - -import lombok.Data; - -@Data -public class UserGroupTargetPO { - private long ugtId; - private byte ugtType; - private String ugtTarget; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/UserPO.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/UserPO.java deleted file mode 100644 index a7620a5..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/entity/UserPO.java +++ /dev/null @@ -1,14 +0,0 @@ -package cc.smtweb.system.bpm.web.task.entity; - -import lombok.Data; - -@Data -public class UserPO { - private Long userId; - - private String userName; - - private Long userSiteId; - - private Integer userStatus; -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskCardService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskCardService.java deleted file mode 100644 index 1da9ce2..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskCardService.java +++ /dev/null @@ -1,154 +0,0 @@ -package cc.smtweb.system.bpm.web.task.service; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.common.SwEnum; -import cc.smtweb.framework.core.db.vo.ModelField; -import cc.smtweb.framework.core.db.vo.ModelTable; -import cc.smtweb.system.bpm.engine.process.impl.AbstractTaskCardService; -import cc.smtweb.system.bpm.engine.process.impl.entity.LoadTaskAckVO; -import cc.smtweb.system.bpm.engine.process.runtime.ProcessInstance; -import cc.smtweb.system.bpm.engine.process.task.Task; -import cc.smtweb.system.bpm.engine.process.vo.FlowAction; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.engine.process.vo.FlowNodeField; -import org.apache.commons.lang3.StringUtils; - -import java.util.List; -import java.util.Map; - -// "工作流任务接口, 手机界面" -@SwService -public class BpmTaskCardService extends AbstractTaskCardService { - @Override - protected LoadTaskAckVO loadForm(Task task) { - ProcessInstance processInstance = task.getProcessInstance(); - FlowNode flowNode = processInstance.getCurNode(); - - LoadTaskAckVO data = new LoadTaskAckVO(); - - loadFormStructAndData(task, data); - - // 动作按钮 - List flowActions = flowNode.getActions(); - if (flowActions != null) { - List uiActions = data.getAction(); - - for (FlowAction flowAction: flowActions) { - SwMap action = new SwMap(4); - - action.put("id", flowAction.getId()); - action.put("label", flowAction.getLabel()); - action.put("type", flowAction.getType()); - switch (flowAction.getType()) { - case FlowAction.TYPE_COMMIT: - action.put("btnType", "primary"); - break; - case FlowAction.TYPE_REJECT: - case FlowAction.TYPE_FINISH: - action.put("btnType", "danger"); - break; - case FlowAction.TYPE_TRANSMIT: - case FlowAction.TYPE_RETURN: - action.put("btnType", "warning"); - break; - case FlowAction.TYPE_SAVE: - action.put("btnType", "info"); - break; - default: - action.put("btnType", "default"); - break; - } - - uiActions.add(action); - } - } - - return data; - } - - private void loadFormStructAndData(Task task, LoadTaskAckVO data) { - ProcessInstance processInstance = task.getProcessInstance(); - FlowNode flowNode = processInstance.getCurNode(); - - List fields = flowNode.getFields(); - - if (fields != null) { - // 读取数据 - SwMap body = loadFormData(task); - - // 生成界面结构和数据 - Map formData = data.getData(); - List uiFields = data.getForm(); - ModelTable modelTable = processInstance.getModelTable(); - for (FlowNodeField nodeField: fields) { - ModelField modelField = modelTable.findField(nodeField.getId()); - int perm = nodeField.getPerm(); - - if (modelField != null && (perm == FlowNodeField.PERM_READ || perm == FlowNodeField.PERM_WRITE)) { - SwMap uiField = new SwMap(8); - uiField.put("id", modelField.getName()); - - if (perm == FlowNodeField.PERM_READ) { - uiField.put("component", "fy-label"); - - if (body != null) { - // 从历史数据中读取 - Object value = body.get(modelField.getName()); - if (value != null) { - formData.put(modelField.getName(), value); - } - } - } else { - switch (modelField.getDataType()) { - case SwEnum.DataType.TYPE_BOOL: - uiField.put("component", "fy-checkbox"); - break; - case SwEnum.DataType.TYPE_DATE: - case SwEnum.DataType.TYPE_DATETIME: - uiField.put("component", "fy-datetime"); - break; - default: - uiField.put("component", "fy-text"); - break; - } - - if (task.getLockRev() == 0) { - if (StringUtils.isNotBlank(nodeField.getDefaultValue())) { - formData.put(modelField.getName(), nodeField.getDefaultValue()); - } - } else if (body != null) { - // 从历史数据中读取 - Object value = body.get(modelField.getName()); - if (value != null) { - formData.put(modelField.getName(), value); - } - } - } - - SwMap uiFieldProps = new SwMap(16); - uiField.put("props", uiFieldProps); - - uiFieldProps.put("name", modelField.getName()); - uiFieldProps.put("label", modelField.getTitle()); - uiFieldProps.put("placeholder", modelField.getTitle()); - if (nodeField.isNotNull()) { - uiFieldProps.put("required", true); - } - - uiFields.add(uiField); - } - } - } // else {R.error("读取节点字段权限, id=" + flowNode.getId());} - } - - protected SwMap loadFormData(Task task) { - if (task.getId() != 0) { - ProcessInstance processInstance = task.getProcessInstance(); - return this.processEngine.getFormDataStore().load(processInstance.getId(), processInstance.getRootId()); - } - - return null; - } - -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskListService.java deleted file mode 100644 index be7e6c3..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskListService.java +++ /dev/null @@ -1,29 +0,0 @@ -package cc.smtweb.system.bpm.web.task.service; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.system.bpm.engine.process.impl.entity.TaskPO; -import cc.smtweb.system.bpm.spring.IProcessEngine; - -import java.util.List; - -//@RequestMapping("bpm/task") -// "工作流任务接口" -@SwService -public class BpmTaskListService { - @SwParam - private DbEngine dbEngine; - - @SwParam - private IProcessEngine processEngine; - -// @ApiOperation(value = "读取任务列表") - public R list(UserSession us) { - List taskPOS = dbEngine.query("select task_id,task_ui_id,task_assignee_uid,task_name,task_priority,task_create_time,task_last_time from sw_bpm.bpm_task where task_assignee_uid=? order by task_last_time desc", TaskPO.class, us.getUserId()); - - return R.success(taskPOS); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskUserListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskUserListService.java deleted file mode 100644 index 819f38a..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/task/service/BpmTaskUserListService.java +++ /dev/null @@ -1,154 +0,0 @@ -package cc.smtweb.system.bpm.web.task.service; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwBody; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.system.bpm.core.exception.BpmException; -import cc.smtweb.system.bpm.engine.process.impl.entity.LoadTaskVO; -import cc.smtweb.system.bpm.engine.process.impl.entity.NodeUsersVO; -import cc.smtweb.system.bpm.engine.process.runtime.Route; -import cc.smtweb.system.bpm.engine.process.runtime.RouteInfo; -import cc.smtweb.system.bpm.engine.process.task.Task; -import cc.smtweb.system.bpm.engine.process.vo.FlowAction; -import cc.smtweb.system.bpm.engine.process.vo.FlowNode; -import cc.smtweb.system.bpm.engine.process.vo.FlowNodeUser; -import cc.smtweb.system.bpm.spring.IProcessEngine; -import cc.smtweb.system.bpm.web.task.entity.UserGroupTargetPO; -import cc.smtweb.system.bpm.web.task.entity.UserPO; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -//// "工作流任务接口" -@SwService -public class BpmTaskUserListService { - @SwParam - private DbEngine dbEngine; - - @SwParam - private IProcessEngine processEngine; - -// @ApiOperation(value = "读取执行候选人名单") - public R list(@SwBody LoadTaskVO loadTaskVO) { - Task task = processEngine.loadTask(loadTaskVO.getTaskId()); - if (task == null) { - return R.error("加载任务失败"); - } - - FlowAction flowAction = task.getProcessInstance().checkAndGetCurNodeAction(loadTaskVO.getActionKey()); - NodeUsersVO data = null; - - switch (flowAction.getType()) { - case FlowAction.TYPE_COMMIT: - FlowNode toFlowNode = task.getProcessInstance().getFlow().checkAndGetNode(loadTaskVO.getActionKey()); - data = loadUser(task, flowAction, toFlowNode); - break; - case FlowAction.TYPE_TRANSMIT: - data = loadUser(task, flowAction, task.getProcessInstance().getCurNode()); - break; - case FlowAction.TYPE_RETURN: - data = loadReturnUser(task); - break; - default: - break; - } - - if (data != null) { - data.setActionKey(loadTaskVO.getActionKey()); - data.setNodeKey(loadTaskVO.getToNodeKey()); - - return R.success(data); - } - - return R.error(); - } - - private NodeUsersVO loadUser(Task task, FlowAction flowAction, FlowNode toFlowNode) { - NodeUsersVO data = new NodeUsersVO(); - - RouteInfo nextProcessInfo = processEngine.routeCommit(task, toFlowNode); - - for (Route route: nextProcessInfo.getRoutes()) { - List users = loadUsers(task.getProcessInstance().getId(), flowAction, route.getNode()); - data.add(toFlowNode, users); - } - - return data; - } - - private List loadUsers(long processId, FlowAction flowAction, FlowNode toFlowNode) { - // toFlowNode.getUsers(); - // 用户组 + 过滤条件 - List flowNodeUsers = toFlowNode.getUsers(); - if (flowNodeUsers == null) { - throw new BpmException("节点未设置用户组, id=" + toFlowNode.getId()); - } - - StringBuilder ids = new StringBuilder("("); - for (FlowNodeUser flowNodeUser : flowNodeUsers) { - if (flowNodeUser.getType() == FlowNodeUser.TYPE_USER_GROUP) { - ids.append(flowNodeUser.getTarget()).append(","); - } - } - - List data = new ArrayList<>(); - Map userMap = new HashMap<>(); - - if (ids.length() > 1) { - ids.setCharAt(ids.length() - 1, ')'); - List userGroupTargetPos = dbEngine.query("SELECT ugt_id,ugt_type,ugt_target FROM sw_user.sys_user_group_target WHERE ugt_ug_id in " + ids.toString(), UserGroupTargetPO.class); - - for (UserGroupTargetPO userGroupTargetPo : userGroupTargetPos) { - List users = null; - switch (userGroupTargetPo.getUgtType()) { - case FlowNodeUser.TYPE_ROLE: - users = dbEngine.query("SELECT user_id, user_name, user_status FROM sw_user.sys_user_role LEFT JOIN smt_user.sys_user ON(ur_user_id=user_id) WHERE ur_role_id in (" + userGroupTargetPo.getUgtTarget() + ")", UserPO.class); - break; - case FlowNodeUser.TYPE_USER: - users = dbEngine.query("select user_id, user_name, user_status from sw_user.sys_user where user_id in (" + userGroupTargetPo.getUgtTarget() + ")", UserPO.class); - break; - case FlowNodeUser.TYPE_DEPT: - users = dbEngine.query("select user_id, user_name, user_status from sw_user.sys_user where user_dept_id in (" + userGroupTargetPo.getUgtTarget() + ")", UserPO.class); - break; - default: - break; - } - - if (users != null) { - for (UserPO userPo : users) { - // 去除重复 - if (userMap.putIfAbsent(userPo.getUserId(), userPo) == null) { - data.add(userPo); - } - } - } - } - } - - return data; - } - - private NodeUsersVO loadReturnUser(Task task) { - RouteInfo nextProcessInfo = processEngine.routeReturn(task); - - NodeUsersVO data = new NodeUsersVO(); - - for (Route route: nextProcessInfo.getRoutes()) { - Long userId = dbEngine.queryLong("SELECT tl_assignee_uid FROM sw_bpm.bpm_task_log WHERE tl_process_id=? AND tl_node_key=? ORDER BY tl_create_time desc LIMIT 1", - task.getProcessInstance().getId(), route.getNode().getId()); - - if (userId != null) { - List users = dbEngine.query("select user_id, user_name, user_status from sw_user.sys_user where user_id=?", - UserPO.class, userId); - - data.add(route.getNode(), users); - } - } - - return data; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/DatasetService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/DatasetService.java deleted file mode 100644 index c069039..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/DatasetService.java +++ /dev/null @@ -1,60 +0,0 @@ -package cc.smtweb.system.bpm.web.ui; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.card.AbstractDatasetCardService; -import cc.smtweb.system.bpm.core.ui.service.list.AbstractDatasetListService; -import cc.smtweb.system.bpm.core.ui.service.tree.AbstractDatasetTreeService; -import cc.smtweb.system.bpm.spring.action.BpmEventDao; - -/** - * 动态界面数据服务 - * @author xkliu - */ -@SwService -public class DatasetService { - @SwParam - private BpmEventDao bpmEventDao; - - public R load(BpmPageContext pageContext) { - AbstractDatasetCardService cardService = bpmEventDao.getCardService(pageContext); - return cardService.load(pageContext); - } - - public R save(BpmPageContext pageContext) { - AbstractDatasetCardService cardService = bpmEventDao.getCardService(pageContext); - return cardService.save(pageContext); - } - - public R remove(BpmPageContext pageContext) { - AbstractDatasetCardService cardService = bpmEventDao.getCardService(pageContext); - return cardService.remove(pageContext); - } - - public R list(BpmPageContext pageContext) { - AbstractDatasetListService listService = bpmEventDao.getListService(pageContext); - return listService.list(pageContext); - } - - public R count(BpmPageContext pageContext) { - AbstractDatasetListService listService = bpmEventDao.getListService(pageContext); - return listService.count(pageContext); - } - - public R listAll(BpmPageContext pageContext) { - AbstractDatasetListService listService = bpmEventDao.getListService(pageContext); - return listService.listAll(pageContext); - } - - public R treeAll(BpmPageContext pageContext) { - AbstractDatasetTreeService treeService = bpmEventDao.getTreeService(pageContext); - return treeService.treeAll(pageContext); - } - - public R move(BpmPageContext pageContext) { - AbstractDatasetTreeService treeService = bpmEventDao.getTreeService(pageContext); - return treeService.move(pageContext); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/AbstractJsonDatasetPlugin.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/AbstractJsonDatasetPlugin.java deleted file mode 100644 index 560e689..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/AbstractJsonDatasetPlugin.java +++ /dev/null @@ -1,118 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.sqlbuilder.SelectSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.ui.builder.SqlUtil; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmField; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldFilter; -import cc.smtweb.system.bpm.core.ui.entity.dataset.IBpmDatasetConst; -import cc.smtweb.system.bpm.engine.ui.entity.po.DynFormLogPO; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.ObjectUtils; -import org.apache.commons.lang3.StringUtils; - -import java.util.List; -import java.util.Map; - -@Slf4j -public abstract class AbstractJsonDatasetPlugin { - @SwParam - protected DbEngine dbEngine; - - protected SelectSqlBuilder makeSqlBuilderForJson(BpmDataset dataset, SwMap body) { - SelectSqlBuilder sqlBuilder = SqlBuilder.createSelect("sw_bpm.bpm_dyn_form_log"); - sqlBuilder.addWhere("dfl_table", dataset.fullName()); - - List> query = (List>)body.get(SqlUtil.PN_FILTER); - if (query != null) { - addSqlWhereForJson(sqlBuilder, query, false); - } - - List> filters = (List>)body.get(SqlUtil.PN_SEARCH); - - if (filters != null) { - int filterType = body.readInt(SqlUtil.PN_SEARCH_TYPE, 0); - addSqlWhereForJson(sqlBuilder, filters, filterType != 0); - } - - return sqlBuilder; - } - - protected SelectSqlBuilder makeSqlBuilderForJson(BpmDataset dataset, List filters) { - SelectSqlBuilder sqlBuilder = SqlBuilder.createSelect("sw_bpm.bpm_dyn_form_log"); - sqlBuilder.addWhere("dfl_table", dataset.fullName()); - - if (filters != null) { - for (BpmFieldFilter filter : filters) { - String keyword = filter.getKeyword(); - String fieldName = filter.getField(); - - if (StringUtils.isNotBlank(keyword) && StringUtils.isNotBlank(fieldName)) { - SqlUtil.addSqlWhere(sqlBuilder, sqlJsonField(fieldName), filter.getOp(), keyword); - } - } - } - - return sqlBuilder; - } - - private void addSqlWhereForJson(SqlBuilder sqlBuilder, List> filters, boolean whereOr) { - if (!filters.isEmpty()) { - if (whereOr) { - // START OR - sqlBuilder.addWhereOrBegin(); - } - - for (Map filter : filters) { - Object keyword = filter.get(IBpmDatasetConst.PN_ITEM_KEYWORD); - String field = (String) filter.get(IBpmDatasetConst.PN_ITEM_FIELD); - - if (keywordIsNotBlank(keyword) && StringUtils.isNotBlank(field)) { - int op = MapUtils.getIntValue(filter, IBpmDatasetConst.PN_ITEM_OP, 0); - SqlUtil.addSqlWhere(sqlBuilder, sqlJsonField(field), op, keyword); - } - } - - if (whereOr) { - // END OR - sqlBuilder.addWhereOrEnd(); - } - } - } - - private static boolean keywordIsNotBlank(Object keyword) { - if (keyword instanceof String) { - return StringUtils.isNotBlank((String)keyword); - } - - return ObjectUtils.isNotEmpty(keyword); - } - - SwMap mapFields(BpmDataset dataset, DynFormLogPO po) { - if (StringUtils.isNotBlank(po.getDflContent())) { - SwMap item = new SwMap(); - SwMap entity = JsonUtil.parse(po.getDflContent(), SwMap.class); - - for (Map.Entry entry : dataset.getFields().entrySet()) { - BpmField bpmField = entry.getValue(); - item.put(bpmField.getId(), entity.get(bpmField.getFieldName())); - } - - item.put("id", po.getDflId()); - - return item; - } - - return null; - } - - static String sqlJsonField(String field) { - return "JSON_EXTRACT(dfl_content, '$." + field + "')"; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetCardDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetCardDao.java deleted file mode 100644 index b0eee7e..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetCardDao.java +++ /dev/null @@ -1,120 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwBean; -import cc.smtweb.framework.core.db.sqlbuilder.InsertSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.UpdateSqlBuilder; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.framework.core.util.DateUtil; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.ui.BpmKeyValue; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.IParamConst; -import cc.smtweb.system.bpm.core.ui.builder.CardDataBuilder; -import cc.smtweb.system.bpm.core.ui.builder.SqlUtil; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmField; -import cc.smtweb.system.bpm.core.ui.entity.dataset.IBpmDatasetConst; -import cc.smtweb.system.bpm.engine.ui.entity.po.DynFormLogPO; -import org.apache.commons.lang3.StringUtils; - -import java.util.List; -import java.util.Map; - -@SwBean -public class JsonDatasetCardDao extends AbstractJsonDatasetPlugin { - public SwMap load(BpmPageContext ctx) { - BpmDataset dataset = ctx.getDataset(); - SwMap body = ctx.getBody(); - long id = ctx.getParamId(); - - if (id != 0) { - DynFormLogPO po = dbEngine.queryEntity("select dfl_id, dfl_content from sw_bpm.bpm_dyn_form_log where dfl_id=?", - DynFormLogPO.class, id); - - if (po != null){ - return mapFields(dataset, po); - } - } else { - List> filters = (List>)body.get(SqlUtil.PN_FILTER); - if (filters != null) { - SwMap data = new SwMap(); - // addSqlWhereForJson(sqlBuilder, query, false); - for (Map filter : filters) { - String keyword = (String) filter.get(IBpmDatasetConst.PN_ITEM_KEYWORD); - String field = (String) filter.get(IBpmDatasetConst.PN_ITEM_FIELD); - - if (StringUtils.isNotBlank(keyword) && StringUtils.isNotBlank(field)) { - BpmField bpmField = dataset.findFieldByFieldName(field); - if (bpmField != null) { - data.put(bpmField.getId(), keyword); - } - } - } - - return data; - } - } - - return null; - } - - public Long save(BpmPageContext ctx) { - CardDataBuilder builder = CardDataBuilder.create(dbEngine, ctx.getDataset(), ctx.getBody(), ctx.getSession()); - long dataId = builder.getMasterId(); - UserSession us = ctx.getSession(); - SwMap body = null; - - // TODO 处理1:1多表更新 - if (!builder.isInstert()) { - // 读取旧数据进行部分更新 - String oldContent = dbEngine.queryString("select dfl_content from sw_bpm.bpm_dyn_form_log where dfl_id=?", dataId); - - if (StringUtils.isNotBlank(oldContent)) { - body = JsonUtil.parse(oldContent, SwMap.class); - } - } - - String content = JsonUtil.encodeString(builder.update(body)); - - if (builder.isInstert()) { - InsertSqlBuilder sqlBuilder = SqlBuilder.createInsert("sw_bpm.bpm_dyn_form_log"); - sqlBuilder.add("dfl_id", dataId) - .add("dfl_table", builder.getTableName()) - .add("dfl_content", content) - .add("dfl_create_uid", us.getUserId()) - .add("dfl_update_uid", us.getUserId()); - sqlBuilder.update(dbEngine); - } else { - UpdateSqlBuilder sqlBuilder = SqlBuilder.createUpdate("sw_bpm.bpm_dyn_form_log"); - sqlBuilder.add("dfl_content", content) - .add("dfl_last_time", DateUtil.nowDateTimeLong()) - .add("dfl_update_uid", us.getUserId()) - .addWhere("dfl_id", dataId); - sqlBuilder.update(dbEngine); - } - - return dataId; - } - - public int remove(BpmPageContext ctx) { - String ids = ctx.getBody().readString(IParamConst.PARAMS_IDS); - - if (StringUtils.isNotBlank(ids)) { - return dbEngine.update("delete from sw_bpm.bpm_dyn_form_log where dfl_id in(" + ids + ")"); - } else { - long id = ctx.getParamId(); - if (id != 0) { - return dbEngine.update("delete from sw_bpm.bpm_dyn_form_log where dfl_id=?", ctx.getParamId()); - } - } - - return 0; - } - - public BpmKeyValue loadLookup(BpmPageContext ctx, Object key) { - return dbEngine.queryEntity("select dfl_id id, " + ctx.getFieldLookup().getLabelField() - + " value from sw_bpm.bpm_dyn_form_log where dfl_id=?", BpmKeyValue.class, key); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetListDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetListDao.java deleted file mode 100644 index 4e6d924..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetListDao.java +++ /dev/null @@ -1,109 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwBean; -import cc.smtweb.framework.core.db.sqlbuilder.SelectSqlBuilder; -import cc.smtweb.system.bpm.core.ui.BpmKeyValue; -import cc.smtweb.system.bpm.core.ui.BpmMapData; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.builder.SqlUtil; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmField; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmFieldLookup; -import cc.smtweb.system.bpm.engine.ui.entity.po.DynFormLogPO; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -@SwBean -public class JsonDatasetListDao extends AbstractJsonDatasetPlugin { - public List list(BpmPageContext ctx) { - BpmDataset dataset = ctx.getDataset(); - SwMap query = ctx.getBody(); - // 列表不能用 mobilePage.id 过滤,存储的是编辑界面的pageId - // 处理查询参数 - SelectSqlBuilder sqlBuilder = makeSqlBuilderForJson(dataset, query); - - sqlBuilder.add("dfl_id"); - sqlBuilder.add("dfl_content"); - sqlBuilder.addOrderBy("dfl_id"); - - // 处理翻页参数 - int limit = query.readInt("pageSize", 20); - int start = query.readInt("pageIndex", 0) * limit; - - List list = sqlBuilder.pagedQuery(dbEngine, DynFormLogPO.class, start, limit); - - if (list != null) { - return makeListResult(dataset, list, dataset.isUseSummary() || list.size() >= limit); - } - - return null; - } - - private List makeListResult(BpmDataset dataset, List list, boolean loadCount) { - List data = new ArrayList<>(); - for (DynFormLogPO po : list) { - SwMap item = mapFields(dataset, po); - - if (item == null) { - item = new SwMap(); - item.put("id", po.getDflId()); - } - - data.add(item); - } - - return data; - } - - public BpmMapData listLookup(BpmPageContext ctx, Set idSet) { - // 外键数据 - List list = dbEngine.query("select dfl_id optKey, " + ctx.getFieldLookup().getLabelField() - + " optValue from sw_bpm.bpm_dyn_form_log where dfl_id in (" + String.join(",", idSet) + ")", - BpmKeyValue.class); - - BpmMapData result = new BpmMapData(list.size()); - for (BpmKeyValue item: list) { - result.put(item.getOptKey(), item.getOptValue()); - } - - return result; - } - - public List listAll(BpmPageContext ctx) { - BpmDataset dataset = ctx.getDataset(); - BpmFieldLookup fieldLookup = ctx.getFieldLookup(); - // 处理查询参数 - SelectSqlBuilder sqlBuilder = makeSqlBuilderForJson(dataset, fieldLookup.getFilters()); - - sqlBuilder.add("dfl_id"); - sqlBuilder.add("dfl_content"); - sqlBuilder.addOrderBy("dfl_id"); - - List list = sqlBuilder.query(dbEngine, DynFormLogPO.class); - - return makeListResult(dataset, list, false); - } - - public SwMap count(BpmPageContext ctx) { - BpmDataset dataset = ctx.getDataset(); - SelectSqlBuilder sqlBuilder = makeSqlBuilderForJson(dataset, ctx.getBody()); - sqlBuilder.add("count(*) total"); - - for (Map.Entry entry: dataset.getFields().entrySet()) { - String field = entry.getKey(); - BpmField bpmField = entry.getValue(); - String rule = bpmField.getSummary(); - - if (StringUtils.isNotBlank(rule)) { - sqlBuilder.add(SqlUtil.makeSummaryField(rule, sqlJsonField(field)) + " " + field); - } - } - - return sqlBuilder.queryEntity(dbEngine, SwMap.class); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetTreeDao.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetTreeDao.java deleted file mode 100644 index 25bd8bc..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dao/JsonDatasetTreeDao.java +++ /dev/null @@ -1,82 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dao; - -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwBean; -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.builder.TreeDataBuilder; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.engine.ui.entity.po.DynFormLogPO; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.List; - -@SwBean -public class JsonDatasetTreeDao extends AbstractJsonDatasetPlugin { - public List treeAll(BpmPageContext ctx) { - BpmDataset dataset = ctx.getDataset(); - TreeDataBuilder treeDataBuilder = new TreeDataBuilder(dataset, null, null); - - List poList = dbEngine.query("select dfl_id, dfl_content from sw_bpm.bpm_dyn_form_log where dfl_table=?", - DynFormLogPO.class, dataset.fullName()); - - List list = new ArrayList<>(); - - for (DynFormLogPO po: poList) { - list.add(treeDataBuilder.mapTreeFields(dataset, po)); - } - - return treeDataBuilder.buildTree(list, true); - } - - public List tree(BpmPageContext ctx, Long parentId) { - BpmDataset dataset = ctx.getDataset(); - TreeDataBuilder treeDataBuilder = new TreeDataBuilder(dataset, parentId, null); - - List poList = dbEngine.query("select dfl_id, dfl_content from sw_bpm.bpm_dyn_form_log where dfl_table=? and " + - "JSON_EXTRACT(dfl_content, '$." + treeDataBuilder.getParentField().getFieldName() + "')=?", - DynFormLogPO.class, dataset.fullName(), parentId); - - List list = new ArrayList<>(); - - for (DynFormLogPO po: poList) { - list.add(treeDataBuilder.mapTreeFields(dataset, po)); - } - - return list; - } - - public int move(BpmPageContext ctx, TreeDataBuilder treeDataBuilder) { - Long parentId = treeDataBuilder.getParentId(); - Long[] orders = treeDataBuilder.getOrders(); - - String tableName = treeDataBuilder.getDataset().fullName(); - List poList = dbEngine.query("select dfl_id, dfl_content from sw_bpm.bpm_dyn_form_log where dfl_table=? and dfl_id in (" - + StringUtils.join(orders, ",") + ")", - DynFormLogPO.class, tableName); - - int count = 0; - - for (DynFormLogPO po: poList) { - SwMap content = treeDataBuilder.updateOrder(po, parentId, findOrderValue(orders, po.getDflId())); - int ret = dbEngine.update("update sw_bpm.bpm_dyn_form_log set dfl_content=? where dfl_id=? and dfl_table=?", - JsonUtil.encodeString(content), po.getDflId(), tableName); - if (ret > 0) { - count++; - } - } - - return count; - } - - private static int findOrderValue(Long[] orders, Long id) { - for (int i = 0; i < orders.length; i++) { - if (id.equals(orders[i])) { - return i + 1; - } - } - - return 0; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormCardService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormCardService.java deleted file mode 100644 index 7f3eac2..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormCardService.java +++ /dev/null @@ -1,60 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dynform; - -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.card.AbstractDatasetCardService; -import cc.smtweb.system.bpm.core.ui.service.card.DatasetCardWorker; -import cc.smtweb.system.bpm.spring.dao.DatasetCardDao; -import cc.smtweb.system.bpm.web.ui.dao.JsonDatasetCardDao; - -/** - * 动态界面Card数据服务 - * @author xkliu - */ -@SwService -public class DynFormCardService extends AbstractDatasetCardService { - @SwParam - private DatasetCardDao datasetCardDao; - - @SwParam - private JsonDatasetCardDao jsonDatasetCardDao; - - @Override - protected DatasetCardWorker createCardLoadHandler(BpmPageContext pageContext) { - DatasetCardWorker handler = new DatasetCardWorker(pageContext); - if (handler.getPageContext().isDeploy()) { - handler.handleLoad(datasetCardDao::load); - handler.handleLoadLookup(datasetCardDao::loadLookup); - } else { - handler.handleLoad(jsonDatasetCardDao::load); - handler.handleLoadLookup(jsonDatasetCardDao::loadLookup); - } - - return handler; - } - - @Override - protected DatasetCardWorker createCardSaveHandler(BpmPageContext pageContext) { - DatasetCardWorker handler = new DatasetCardWorker(pageContext); - if (handler.getPageContext().isDeploy()) { - handler.handleSave(datasetCardDao::save); - } else { - handler.handleSave(jsonDatasetCardDao::save); - } - - return handler; - } - - @Override - protected DatasetCardWorker createCardRemoveHandler(BpmPageContext pageContext) { - DatasetCardWorker handler = new DatasetCardWorker(pageContext); - if (handler.getPageContext().isDeploy()) { - handler.handleRemove(datasetCardDao::remove); - } else { - handler.handleRemove(jsonDatasetCardDao::remove); - } - - return handler; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormListService.java deleted file mode 100644 index ad8a6a2..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormListService.java +++ /dev/null @@ -1,49 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dynform; - -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.list.AbstractDatasetListService; -import cc.smtweb.system.bpm.core.ui.service.list.DatasetListWorker; -import cc.smtweb.system.bpm.spring.dao.DatasetListDao; -import cc.smtweb.system.bpm.web.ui.dao.JsonDatasetListDao; - -@SwService -public class DynFormListService extends AbstractDatasetListService { - @SwParam - private DatasetListDao datasetListDao; - - @SwParam - private JsonDatasetListDao jsonDatasetListDao; - - @Override - protected DatasetListWorker createListPartHandler(BpmPageContext pageContext) { - DatasetListWorker handler = new DatasetListWorker(pageContext); - handler.handleListLookup(datasetListDao::listLookup); - - if (handler.getPageContext().isDeploy()) { - handler.handleListPart(datasetListDao::list); - handler.handleCount(datasetListDao::count); - } else { - handler.handleListPart(jsonDatasetListDao::list); - handler.handleCount(jsonDatasetListDao::count); - } - - return handler; - } - - @Override - protected DatasetListWorker createListAllHandler(BpmPageContext pageContext) { - DatasetListWorker handler = new DatasetListWorker(pageContext); - handler.handleListLookup(datasetListDao::listLookup); - - if (handler.getPageContext().isDeploy()) { - handler.handleListAll(datasetListDao::listAll); - } else { - handler.handleListAll(jsonDatasetListDao::listAll); - } - - - return handler; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormPageService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormPageService.java deleted file mode 100644 index ad517cd..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormPageService.java +++ /dev/null @@ -1,35 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dynform; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.spring.cache.BpmPageCache; -import org.apache.commons.lang3.StringUtils; - -/** - * 获取界面结构 - */ -@SwService -public class DynFormPageService { - @SwParam - private BpmPageCache bpmPageCache; - - // @ApiOperation(value = "读取界面结构") - public R load(UserSession us, @SwParam("pageName") String pageName) { - if (StringUtils.isBlank(pageName)) { - return R.error("必须传入参数: pageName"); - } - - BpmPage bpmPage = bpmPageCache.get(pageName); - if (bpmPage == null) { - bpmPage = bpmPageCache.getByOtherKey(pageName); - } - if (bpmPage == null) { - return R.error("未找到页面: " + pageName); - } - - return R.success(bpmPage); - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormTreeService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormTreeService.java deleted file mode 100644 index 9e95368..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/DynFormTreeService.java +++ /dev/null @@ -1,41 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dynform; - -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.system.bpm.core.ui.BpmPageContext; -import cc.smtweb.system.bpm.core.ui.service.tree.AbstractDatasetTreeService; -import cc.smtweb.system.bpm.core.ui.service.tree.DatasetTreeWorker; -import cc.smtweb.system.bpm.spring.dao.DatasetTreeDao; - -@SwService -public class DynFormTreeService extends AbstractDatasetTreeService { - @SwParam - private DatasetTreeDao datasetTreeDao; - - @SwParam - private DatasetTreeDao jsonDatasetTreeDao; - - @Override - protected DatasetTreeWorker createTreeAllHandler(BpmPageContext pageContext) { - DatasetTreeWorker handler = new DatasetTreeWorker(pageContext); - if (handler.getPageContext().isDeploy()) { - handler.handleTreeAll(datasetTreeDao::treeAll); - } else { - handler.handleTreeAll(jsonDatasetTreeDao::treeAll); - } - - return handler; - } - - @Override - protected DatasetTreeWorker createTreeMoveHandler(BpmPageContext pageContext) { - DatasetTreeWorker handler = new DatasetTreeWorker(pageContext); - if (handler.getPageContext().isDeploy()) { - handler.handleMove(datasetTreeDao::move); - } else { - handler.handleMove(jsonDatasetTreeDao::move); - } - - return handler; - } -} diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/TaskListService.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/TaskListService.java deleted file mode 100644 index c5be254..0000000 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/ui/dynform/TaskListService.java +++ /dev/null @@ -1,68 +0,0 @@ -package cc.smtweb.system.bpm.web.ui.dynform; - -import cc.smtweb.framework.core.common.R; -import cc.smtweb.framework.core.common.SwMap; -import cc.smtweb.framework.core.annotation.SwParam; -import cc.smtweb.framework.core.annotation.SwService; -import cc.smtweb.framework.core.db.DbEngine; -import cc.smtweb.framework.core.db.sqlbuilder.AbstractSelectSqlBuilder; -import cc.smtweb.framework.core.db.sqlbuilder.SqlBuilder; -import cc.smtweb.framework.core.session.UserSession; -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import cc.smtweb.system.bpm.core.ui.entity.dataset.BpmDataset; -import cc.smtweb.system.bpm.spring.cache.BpmPageCache; -import cc.smtweb.system.bpm.spring.dao.DatasetConfigDao; - -import java.util.List; - -@SwService -public class TaskListService { - @SwParam - private DatasetConfigDao datasetConfigDao; - - @SwParam - protected BpmPageCache bpmPageCache; - - public R list(@SwParam("pageId") long pageId, @SwParam("start") int start, @SwParam("limit") int limit, UserSession us) { - BpmPage mobilePage = bpmPageCache.get(pageId); - - if (mobilePage != null) { - return list(mobilePage, us); - } - - return R.error("未找到定义的界面, id=" + pageId); - } - - @SwParam - protected DbEngine dbEngine; - - protected R list(BpmPage page, UserSession us) { - if (page.isDeploy()) { - BpmDataset dataset = page.findMasterDataset(); - - if (dataset != null) { - return queryList(dataset.getDatabase(), dataset.getTable(), dataset.getFieldPrefix(), us.getUserId(), 0); - } - } else { - return queryList("sw_bpm", "bpm_process_detail_log", "pdl", us.getUserId(), page.getId()); - } - - return R.error("界面未定义数据集"); - } - - private R queryList(String database, String table, String fieldPrefix, long userId, long pageId) { - AbstractSelectSqlBuilder sb = SqlBuilder.createSelect(database, table) - .add(fieldPrefix + "_id", null) - .add(fieldPrefix + "_create_time", null) - .add(fieldPrefix + "_last_time", null) - .addWhere(fieldPrefix + "_update_uid", userId); - - if (pageId != 0) { - sb.addWhere(fieldPrefix + "_process_root_id", pageId); - } - - List list = sb.query(dbEngine, SwMap.class); - - return R.success(list).put("fieldPrefix", fieldPrefix); - } -} diff --git a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/FileCompareTest.java b/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/FileCompareTest.java deleted file mode 100644 index cc39b2a..0000000 --- a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/FileCompareTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package cc.smtweb.system.bpm.test.codegen.test; - -import cc.smtweb.system.bpm.engine.ui.codegen.Sha256Helper; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.io.InputStream; - -/** - * 文件签名比较 - */ -public class FileCompareTest { - @Test - public void testCompare() throws IOException { - try (DataReader source = new DataReader("code/index.vue"); - DataReader target = new DataReader("code/index.vue.tmp")) { - while (source.hasNext() || target.hasNext()) { - byte sourceChar = source.next(); - byte targetChat = target.next(); - if (sourceChar != targetChat) { - System.out.println(sourceChar + " <> " + targetChat); - break; - } - } - - if (source.hasNext() || target.hasNext()) { - Assertions.fail("source line: " + source.getLine() + ", target line: " + target.getLine()); - } - } - } -} - -class DataReader implements AutoCloseable { - private InputStream is; - private int line = 1; - private byte[] buffer = new byte[4096]; - private int readBytes; - private int readIndex; - - public DataReader(String resource) throws IOException { - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - is = loader.getResourceAsStream(resource); - readBytes = is.read(buffer); - } - - @Override - public void close() throws IOException { - is.close(); - } - - public boolean hasNext() { - return readIndex < readBytes; - } - - public byte next() throws IOException { - while (readIndex < readBytes) { - byte ch = buffer[readIndex]; - - if (++readIndex >= readBytes) { - readBytes = is.read(buffer); - readIndex = 0; - } - - if (ch < 0) { - return ch; - } - - int type = Sha256Helper.SPACE_CHAR[ch]; - - if (type == 0) { - return ch; - } else if (type == 3) { - line++; - } - } - - return 0; - } - - public int getLine() { - return line; - } -} diff --git a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/FileUtils.java b/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/FileUtils.java deleted file mode 100644 index 0a8c7d5..0000000 --- a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/FileUtils.java +++ /dev/null @@ -1,55 +0,0 @@ -package cc.smtweb.system.bpm.test.codegen.test; - -import java.io.*; -import java.nio.charset.StandardCharsets; - -public class FileUtils { - /** - * 获取文件的行 - * - * @param fileName - * 文件名称 - * @return List - */ - public static String readFile(String fileName) { - StringBuilder lines = new StringBuilder(); - InputStreamReader read = null; - BufferedReader bufferedReader = null; - try { - String configPath = FileUtils.class.getResource(fileName).getPath(); - configPath = configPath.replaceAll("%20", " ");// 处理文件路径中空格问题 - File file = new File(configPath); - if (file.isFile() && file.exists()) { // 判断文件是否存在 - read = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8); - bufferedReader = new BufferedReader(read); - String lineTxt; - while ((lineTxt = bufferedReader.readLine()) != null) { - if (lineTxt.length() == 0) { - continue; - } - lines.append(lineTxt); - } - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - if (read != null) { - read.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (bufferedReader != null) { - try { - bufferedReader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - return lines.toString(); - } -} - diff --git a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/VmTool.java b/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/VmTool.java deleted file mode 100644 index b501451..0000000 --- a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/VmTool.java +++ /dev/null @@ -1,9 +0,0 @@ -package cc.smtweb.system.bpm.test.codegen.test; - -import cc.smtweb.framework.core.util.JsonUtil; - -public class VmTool { - public String json(Object obj) { - return JsonUtil.encodeString(obj); - } -} diff --git a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/VuegenTest.java b/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/VuegenTest.java deleted file mode 100644 index d593909..0000000 --- a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/VuegenTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package cc.smtweb.system.bpm.test.codegen.test; - -import cc.smtweb.system.bpm.core.ui.entity.BpmPage; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.VelocityEngine; -import org.apache.velocity.runtime.RuntimeConstants; -import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader; -import org.junit.jupiter.api.Test; - -import java.io.OutputStreamWriter; -import java.io.Writer; - -public class VuegenTest { - private BpmPage loadUiPage() throws Exception { -// UiPcLoader uiPageLoader = new UiPcLoader(new FileDbCache(), null); -// -// BpmPage result = uiPageLoader.load(FileUtils.readFile("/ui/508660168293093376.json")); -// result.setId(508660168293093376L); -// -// return result; - return null; - } - - @Test - public void testPrint() throws Exception { - VelocityEngine ve = new VelocityEngine(); - ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); - ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName()); - ve.init(); - // 载入(获取)模板对象 - Template t = ve.getTemplate("/template/index.vm"); - VelocityContext ctx = new VelocityContext(); - // 域对象加入参数值 - BpmPage uiPage = loadUiPage(); - ctx.put("forms", uiPage.getForms()); - ctx.put("vmTool", new VmTool()); - ctx.put("pageId", uiPage.getId()); - - Writer writer = new OutputStreamWriter(System.out); - t.merge(ctx, writer); - writer.flush(); - } -} diff --git a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/XmlTest.java b/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/XmlTest.java deleted file mode 100644 index b4b62fb..0000000 --- a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/XmlTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package cc.smtweb.system.bpm.test.codegen.test; - -import cc.smtweb.system.bpm.engine.ui.entity.yaml.YamlPage; -import cc.smtweb.system.bpm.util.XmlUtil; -import org.junit.jupiter.api.Test; - -import java.io.InputStream; - -public class XmlTest { - @Test - public void testLoad() throws Exception { - try(InputStream is = getClass().getResourceAsStream("/code/list.xml")) { - YamlPage yamlPage = XmlUtil.readValue(is, YamlPage.class); - System.out.println(yamlPage); - } - } -} diff --git a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/YamlTest.java b/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/YamlTest.java deleted file mode 100644 index 216e0fd..0000000 --- a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/YamlTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package cc.smtweb.system.bpm.test.codegen.test; - -import cc.smtweb.system.bpm.util.YamlUtil; -import lombok.Data; -import org.junit.jupiter.api.Test; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -public class YamlTest { - @Test - public void testLoad() throws Exception { - YamlTable table = new YamlTable(); - table.setName("table"); - for (int i = 0; i < 10; i++) { - YamlField field = new YamlField(); - field.setFieldName("field" + i); - field.setName("name" + i); - field.setLabel("label" + i); - table.getFields().add(field); - } - - YamlUtil.writeValue(new File("/var/1.yaml"), table); - } -} - -@Data -class YamlTable { - private String name; - private List fields = new ArrayList<>(); -} - -@Data -class YamlField { -// @JacksonYamlProperty - private String fieldName; - private String name; - private String label; -} diff --git a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/YamlToJsonTest.java b/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/YamlToJsonTest.java deleted file mode 100644 index 14ebc0f..0000000 --- a/smtweb-system/sw-system-bpm/src/test/java/cc/smtweb/system/bpm/test/codegen/test/YamlToJsonTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package cc.smtweb.system.bpm.test.codegen.test; - -import cc.smtweb.framework.core.util.JsonUtil; -import cc.smtweb.system.bpm.util.YamlUtil; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.OutputStream; -import java.util.HashMap; - -public class YamlToJsonTest { - public static void main(String[] args) throws Exception { - File dir = new File("/var/config/"); - - for (File file: dir.listFiles()) { - if (file.getName().endsWith(".yaml")) { - try (FileInputStream is = new FileInputStream(file)) { - HashMap map = YamlUtil.readValue(is, HashMap.class); - String name = (String)map.get("name"); - if (StringUtils.isNotBlank(name)) { - String json = "export default " + JsonUtil.encodeString(map); - try (OutputStream writer = new FileOutputStream("/var/config/json/" + name + ".ts")) { - IOUtils.write(json, writer, "utf8"); - } - System.out.println(name); - } - } - } - } - } -}