Skip to content
本页目录

Locas 低代码开发平台

Locas 低代码开发平台是一个强大的低代码开发平台,旨在帮助开发者快速构建、部署和管理复杂的企业级应用程序。通过项目模式管理,您可以轻松地组织和管理多个项目,并通过图形化拖拽方式实现前端页面配置及后端服务设置。此外,我们还提供了丰富的模板库,支持快速创建各种类型的应用程序。

功能范围

  • 项目管理与项目空间
  • 页面设计器
  • 服务设计器
  • 微应用应用发布
  • 项目备份与还原
  • 页面模板库
  • 项目模板库
  • 接口、状态设计器

版本

v2.7.54,已于2024年12月16日发布

  • FBP接口、函数进行调试
  • FBP服务提供websocket能力
  • 平台部分接口(登录认证相关)由FBP服务替换

更新内容

新增

  • 新增AntPathMatcherTask、ExtensionServiceTask;扩展jar服务开发参考:点击进入
  • 新增WebSocketTask、DBMetaDataTask
  • fbp服务入口应用加入获取dsc配置数据、当前登录用户数据缓存能力,项目开发时可以通过项目DSC配置界面清理dsc配置缓存和登录用户缓存;平台提供lc-syscachemng应用给平台管理、站点管理员对系统缓存进行重置
  • 项目空间接口新增函数类型;新增调试、运行功能
  • 接口设计多tab之间、跨浏览器复制粘贴:流程查看里点击单选、Shift+拖动框选然后【ctrl+c】复制,流程编辑tab里【ctrl+v】粘贴节点及配置

修复或修改

  • 调整接口编辑器、状态编辑器操作界面
  • 修复事件捕获面板配置数据回填;sql查询动态参数in条件报错;
  • 修复polardbJTA事务连接报错;
  • 修复服务编排分页查询中逗号分隔条件的排除逻辑
  • 项目空间支持maui前置事件能力
  • 修复事件集task、状态流转task返回是否退回标识
  • 调整存储相关的task,优化IO操作;废弃FileCreateTask、FileStringWriteTask,由FileCreateTask替代;数据为null创建零字节文档,路径以/结尾创建文件夹;
  • 修复fbp的POST接口报refcnt错误
  • 修复CacheDelTask配置错误
  • 修复接口多tab打开删除tab时流程图错位问题
  • 修复函数运行显示结果弹窗多次问题(监听事件不唯一)
  • 循环节点扩展支持Map、Number、Set
  • 修复接口开发子流程节点引用其它应用、其它项目中的流程执行报错问题
  • 服务删除目录,将目录下的所有服务转移到回收站(解决fbp应用里包含locas低代码服务运行不了问题)
  • 关闭mybitsplus的打印日志输出
  • fbp新增Xml解析和序列化task;扩展系统日期task功能;新增日期转换task;调整加解密task为加密task、解密task并扩充功能、密钥对task
  • 更新常用代码
  • 优化web请求task(参数、cookies、请求头新增支持json常量串)
  • 修复压缩文件中文乱码问题
  • 系统日期task新增获取系统日期串(解决日期存库丢失时间)
  • 浙政钉task新增get、post请求方式配置,参数中对数组值进行迭代加入sdk的接口参数中
  • fbp日志过滤掉流程定义的打印
  • fbp服务容器内加入浙政钉域名解析
  • fbp容器新增环境变量:JVM_XMS、JVM_XMX、JVM_XSS类对容器内的fbp服务默认内存资源值进行覆盖【示例:JVM_XMS: -Xms512M JVM_XMX: -Xmx512M JVM_XSS: -Xss1024M】
  • webTask新增soap+xml请求方式
  • 优化jta事务报错输出
  • locas-service修复备份还原时业务卡片目录数据还原报错问题
  • 项目空间项目开发过程中编辑dsc自动清理本项目的dsc配置缓存
  • DSC管理应用支持编辑能力,编辑后自动刷新fbp缓存
  • 项目空间修复接口导出、导入(oss存储)报错;优化升级版本界面按钮控制(避免重复点击)
  • webtask新增标识用于task返回FileObject对象
  • fbp修复模板引擎task在oss存储下文件无法生成,并优化逻辑
  • fbp服务新增服务线程池大小可设置,容器中通过参数:server.thread.pool.size来配值,默认10
  • fbp服务新增线程、数据库连接状态查看功能,【查看服务线程地址:http://ip:port/api/fbp/stat/web 查看数据源使用: http://ip:port/api/fbp/stat/datasources 】

优化

  • 优化boot接口中fbp登录数据、应用/项目运行配置数据缓存;
  • 优化fbp代码逻辑
  • 优化低代码方法编辑器加入常用代码、服务、接口的选择插入功能
  • 优化QueryTask,提供不分页查询可配置成返回单条记录
  • 优化数据库task选表、取字段服务由DBMetaDataTask实现,解决数据库类型差异问题

更新资料获取

如何获取微服务镜像?

所有镜像可到容器仓库通过 docker pull 拉取

  • 武汉公司内网:192.168.1.10:5000/tangram/[微服务名]:[版本号]
  • 阿里云:registry.cn-hangzhou.aliyuncs.com/tangram/[微服务名]:[版本号]

如何获取微服务jar包?

所有正式发布版本可到私服仓库下载

  • 下载地址:http://wh.zktx-soft.com:18081/repository/maven-public/com/gsoft/[平台:mas|locas]/[应用名]/[版本号]/[应用名]-[版本号].jar

例:http://wh.zktx-soft.com:18081/repository/maven-public/com/gsoft/mas/mas-admin//mas-admin-.jar

如何获取微应用tgz包?

所有安装包可到阿里云OSS仓库下载

  • 路径:oss://foa5-oss/deploy/release/[平台:mas/locas]/[应用名称]/[版本号]/[应用名称]-[版本号].tgz 如:oss://foa5-oss/deploy/release/locas//2.7.54/locas-2.7.54.tgz

基于MAS平台版本

Locas 基于 MAS v5.13.20

微服务版本明细

序号微应用Code版本号说明
1低代码引擎locas-service2.7.5
2新低代码引擎locas-fbp2.7.32

微应用版本明细

序号微应用Code版本号更新说明
1Locar渲染引擎locar2.7.54原maui-block
2Locas低代码设计器locas2.7.54原maui-pages,对应locas-service
3PC基础组件lc-system-toolsv1.0.0.17获取地址:oss://foa5-oss/deploy/locas/lc-system-tools/
4低代码项目管理lc-project-workspacev4.0.0.95获取地址:oss://foa5-oss/deploy/locas/lc-project-workspace/

2.4升级2.7.54

  • 1、locas-service服务连的数据库中执行:
sql
ALTER TABLE t_app_menu_catalog ADD COLUMN c_hidden VARCHAR(2);
COMMENT ON COLUMN "t_app_menu_catalog"."c_hidden" IS '是否隐藏';
ALTER TABLE t_app_menu_catalog ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "t_app_menu_catalog"."c_anonymous" IS '匿名访问';

ALTER TABLE t_app_menu_pages ADD COLUMN c_hidden VARCHAR(2);
COMMENT ON COLUMN "t_app_menu_pages"."c_hidden" IS '是否隐藏';
ALTER TABLE t_app_menu_pages ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "t_app_menu_pages"."c_anonymous" IS '匿名访问';

ALTER TABLE cos_system_service_interface ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "cos_system_service_interface"."c_anonymous" IS '匿名模式';
ALTER TABLE cos_system_service_interface ADD COLUMN c_uuid VARCHAR(100);
COMMENT ON COLUMN "cos_system_service_interface"."c_uuid" IS 'uuid';

ALTER TABLE cos_sql_service ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "cos_sql_service"."c_anonymous" IS '匿名模式';
ALTER TABLE cos_sql_service ADD COLUMN c_uuid VARCHAR(100);
COMMENT ON COLUMN "cos_sql_service"."c_uuid" IS 'uuid';

ALTER TABLE cos_service_engine_service ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "cos_service_engine_service"."c_anonymous" IS '匿名模式';
ALTER TABLE cos_service_engine_service ADD COLUMN c_uuid VARCHAR(100);
COMMENT ON COLUMN "cos_service_engine_service"."c_uuid" IS 'uuid';

ALTER TABLE cos_groovy_service ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "cos_groovy_service"."c_anonymous" IS '匿名模式';
ALTER TABLE cos_groovy_service ADD COLUMN c_uuid VARCHAR(100);
COMMENT ON COLUMN "cos_groovy_service"."c_uuid" IS 'uuid';

ALTER TABLE cos_third_service ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "cos_third_service"."c_anonymous" IS '匿名模式';
ALTER TABLE cos_third_service ADD COLUMN c_uuid VARCHAR(100);
COMMENT ON COLUMN "cos_third_service"."c_uuid" IS 'uuid';

ALTER TABLE cos_system_service ADD COLUMN c_anonymous VARCHAR(2);
COMMENT ON COLUMN "cos_system_service"."c_anonymous" IS '匿名模式';
ALTER TABLE cos_system_service ADD COLUMN c_uuid VARCHAR(100);
COMMENT ON COLUMN "cos_system_service"."c_uuid" IS 'uuid';

ALTER TABLE t_version_record ADD COLUMN c_remark VARCHAR(2000);
COMMENT ON COLUMN "t_version_record"."c_remark" IS '备注说明';
  • 2、locas-service服务连的数据库中执行建表语句:
sql
-- ----------------------------
-- Table structure for fbp_service_category_info
-- ----------------------------
DROP TABLE IF EXISTS "fbp_service_category_info";
CREATE TABLE "fbp_service_category_info" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_namespace" varchar(50) ,
  "c_parent_id" int8,
  "c_cascade_id" varchar(255) ,
  "c_text" varchar(100) ,
  "c_label" varchar(100) ,
  "c_level" int4,
  "c_version" varchar(10),
  CONSTRAINT "fbp_service_category_info_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_service_category_info"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_service_category_info"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_service_category_info"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_service_category_info"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_service_category_info"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_service_category_info"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_service_category_info"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_service_category_info"."c_namespace" IS '命名空间';
COMMENT ON COLUMN "fbp_service_category_info"."c_parent_id" IS '父节点id';
COMMENT ON COLUMN "fbp_service_category_info"."c_cascade_id" IS '级联id';
COMMENT ON COLUMN "fbp_service_category_info"."c_text" IS '目录名称';
COMMENT ON COLUMN "fbp_service_category_info"."c_level" IS '目录层级';
COMMENT ON COLUMN "fbp_service_category_info"."c_version" IS '版本';
COMMENT ON TABLE "fbp_service_category_info" IS 'FBP发布接口分类信息表';

-- ----------------------------
-- Table structure for fbp_datasource
-- ----------------------------
DROP TABLE IF EXISTS "fbp_datasource";
CREATE TABLE "fbp_datasource" (
  "id" serial8 NOT NULL,
  "datasource_name" varchar(255) ,
  "type" int2,
  "url" varchar(1000) ,
  "port" varchar(20) ,
  "schema_name" varchar(255) ,
  "c_user" varchar(255) ,
  "password" varchar(255) ,
  "remark" varchar(255) ,
  "status" int2,
  "code" varchar(255) ,
  "current_model" varchar(255) ,
  "config_msg" varchar(500) ,
  "tenant_id" varchar(255) ,
  "source_level" int2,
  "c_initialsize" int2,
  "c_minidle" int2,
  "c_maxsize" int2,
  "c_driverclassname" varchar(1000) ,
  CONSTRAINT "fbp_datasource_pkey" PRIMARY KEY ("id")
);
COMMENT ON COLUMN "fbp_datasource"."id" IS '主键';
COMMENT ON COLUMN "fbp_datasource"."datasource_name" IS '数据源名称';
COMMENT ON COLUMN "fbp_datasource"."type" IS '数据源类型,1-MySQL,2-Oracle,3-达梦,4-polardb,6-人大金仓,7-神通';
COMMENT ON COLUMN "fbp_datasource"."url" IS '数据源url';
COMMENT ON COLUMN "fbp_datasource"."port" IS '端口';
COMMENT ON COLUMN "fbp_datasource"."schema_name" IS 'schema名称';
COMMENT ON COLUMN "fbp_datasource"."c_user" IS '用户名';
COMMENT ON COLUMN "fbp_datasource"."password" IS '密码';
COMMENT ON COLUMN "fbp_datasource"."remark" IS '备注';
COMMENT ON COLUMN "fbp_datasource"."status" IS '采集状态,1-未采集,2-采集中,3-采集完成,4-采集失败';
COMMENT ON COLUMN "fbp_datasource"."code" IS '唯一标识';
COMMENT ON COLUMN "fbp_datasource"."current_model" IS '当前模式';
COMMENT ON COLUMN "fbp_datasource"."config_msg" IS '配置信息';
COMMENT ON COLUMN "fbp_datasource"."tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_datasource"."source_level" IS '数据源级别,1-平台级,2-租户级';
COMMENT ON COLUMN "fbp_datasource"."c_initialsize" IS '初始化连接数';
COMMENT ON COLUMN "fbp_datasource"."c_minidle" IS '最小连接数';
COMMENT ON COLUMN "fbp_datasource"."c_maxsize" IS '最大连接数';
COMMENT ON TABLE "fbp_datasource" IS '数据源信息';
COMMENT ON COLUMN "fbp_datasource"."c_driverclassname" IS '数据源驱动类';

-- ----------------------------
-- Table structure for fbp_service
-- ----------------------------
DROP TABLE IF EXISTS "fbp_service";
CREATE TABLE "fbp_service" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(255) ,
  "c_version" varchar(50) ,
  "c_uuid" varchar(100) ,
  "c_bpmn" text ,
  "c_runner" text ,
  "c_document" text,
  "c_bizType" varchar(100) ,
  "c_element" text,
  CONSTRAINT "fbp_service_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_service"."c_project" IS '项目code';
COMMENT ON COLUMN "fbp_service"."c_version" IS '版本号';
COMMENT ON COLUMN "fbp_service"."c_uuid" IS 'uuid';
COMMENT ON COLUMN "fbp_service"."c_bpmn" IS 'xml配置';
COMMENT ON COLUMN "fbp_service"."c_runner" IS '调试参数实例数据';
COMMENT ON COLUMN "fbp_service"."c_document" IS '文档数据';
COMMENT ON COLUMN "fbp_service"."c_bizType" IS '业务类型:null:服务接口;logic-comp:部件';
COMMENT ON COLUMN "fbp_service"."c_element" IS '当c_bizType值为logic-comp,代表部件,存放部件元素信息';

-- ----------------------------
-- Table structure for fbp_tree_json
-- ----------------------------
DROP TABLE IF EXISTS "fbp_tree_json";
CREATE TABLE "fbp_tree_json" (
  "c_id" serial8 NOT NULL,
  "c_json" text ,
  "c_key" varchar(255) ,
   CONSTRAINT "fbp_tree_json_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_tree_json"."c_json" IS '树形json';
COMMENT ON COLUMN "fbp_tree_json"."c_key" IS '唯一key';

-- ----------------------------
-- Table structure for fbp_state
-- ----------------------------
DROP TABLE IF EXISTS "fbp_state";
CREATE TABLE "fbp_state" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(255) ,
  "c_version" varchar(50) ,
  "c_uuid" varchar(100) ,
  "c_bpmn" text ,
  "c_runner" text ,
  "c_document" text ,
  CONSTRAINT "fbp_state_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_state"."c_project" IS '项目code';
COMMENT ON COLUMN "fbp_state"."c_version" IS '版本号';
COMMENT ON COLUMN "fbp_state"."c_uuid" IS 'uuid';
COMMENT ON COLUMN "fbp_state"."c_bpmn" IS 'xml配置';
COMMENT ON COLUMN "fbp_state"."c_runner" IS '调试实例数据';
COMMENT ON COLUMN "fbp_state"."c_document" IS '文档说明';

-- ----------------------------
-- Table structure for fbp_dcs_setting
-- ----------------------------
DROP TABLE IF EXISTS "fbp_dcs_setting";
CREATE TABLE "fbp_dcs_setting" (
  "c_id" serial8 NOT NULL,
  "c_key" varchar(255) ,
  "c_value" varchar(255) ,
  "c_desc" varchar(255) ,
  "c_type" varchar(255) ,
  "c_catalog" varchar(255) ,
  "c_project" varchar(255) ,
  "c_version" varchar(255) ,
  "c_tenant_id" int4,
  CONSTRAINT "fbp_dcs_setting_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_dcs_setting"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_dcs_setting"."c_key" IS '数据源标识';
COMMENT ON COLUMN "fbp_dcs_setting"."c_value" IS '数据源值code';
COMMENT ON COLUMN "fbp_dcs_setting"."c_desc" IS '数据源描述说明';
COMMENT ON COLUMN "fbp_dcs_setting"."c_type" IS '类型 1 平台  2 站点';
COMMENT ON COLUMN "fbp_dcs_setting"."c_catalog" IS '分类 1 数据源  2 缓存 3 存储';
COMMENT ON COLUMN "fbp_dcs_setting"."c_project" IS '项目';
COMMENT ON COLUMN "fbp_dcs_setting"."c_version" IS '版本';
COMMENT ON COLUMN "fbp_dcs_setting"."c_tenant_id" IS '租户';

-- ----------------------------
-- Table structure for fbp_storages
-- ----------------------------
DROP TABLE IF EXISTS "fbp_storages";
CREATE TABLE "fbp_storages" (
  "c_id" serial8 NOT NULL,
  "c_code" varchar(255) ,
  "c_name" varchar(255) ,
  "c_type" varchar(50),
  "c_endpoint" varchar(1000) ,
  "c_root_path" varchar(255) ,
  "c_access_key_id" varchar(255) ,
  "c_secret_access_key" varchar(255) ,
  "c_remark" varchar(2000) ,
  "c_bucket_name" varchar(500) ,
  "c_tenant_id" int8 ,
  "c_level" int2,
  CONSTRAINT "fbp_storages_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_storages"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_storages"."c_code" IS '存储标识';
COMMENT ON COLUMN "fbp_storages"."c_name" IS '存储标识名称';
COMMENT ON COLUMN "fbp_storages"."c_type" IS '类型,local-本地存储,oss-OSS存储';
COMMENT ON COLUMN "fbp_storages"."c_endpoint" IS 'OSS域';
COMMENT ON COLUMN "fbp_storages"."c_root_path" IS '端口';
COMMENT ON COLUMN "fbp_storages"."c_access_key_id" IS 'Oss账号id';
COMMENT ON COLUMN "fbp_storages"."c_secret_access_key" IS 'Oss账号密钥';
COMMENT ON COLUMN "fbp_storages"."c_remark" IS '备注';
COMMENT ON COLUMN "fbp_storages"."c_bucket_name" IS 'Oss存储桶';
COMMENT ON COLUMN "fbp_storages"."c_tenant_id" IS '租户id';
COMMENT ON COLUMN "fbp_storages"."c_level" IS '数据源级别,1-平台级,2-站点级';
COMMENT ON TABLE "fbp_storages" IS '存储信息';

-- ----------------------------
-- Table structure for fbp_cache_pools
-- ----------------------------
DROP TABLE IF EXISTS "fbp_cache_pools";
CREATE TABLE "fbp_cache_pools" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,

  "c_code" varchar(50),
  "c_name" varchar(100),
  "c_remark" varchar(500),
  "c_level" int2,
  "c_type" varchar(50),   
  "c_expire_seconds" int8,
  "c_maximum_size" int8, 
  "c_second_expire_seconds" int8, 
  "c_url" varchar(50), 
  "c_password" varchar(50) DEFAULT null,
  "c_database" int4,
   "c_port" int4,
   CONSTRAINT "fbp_cache_pools_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_cache_pools"."c_code" IS '代码';
COMMENT ON COLUMN "fbp_cache_pools"."c_name" IS '名字';
COMMENT ON COLUMN "fbp_cache_pools"."c_level" IS '缓存级别:1平台,2站点';
COMMENT ON COLUMN "fbp_cache_pools"."c_type" IS '类型:jvm/redis/level2';
COMMENT ON COLUMN "fbp_cache_pools"."c_expire_seconds" IS '过期时间';
COMMENT ON COLUMN "fbp_cache_pools"."c_maximum_size" IS 'jvm最大缓存';
COMMENT ON COLUMN "fbp_cache_pools"."c_second_expire_seconds" IS '二级缓存过期时间';
COMMENT ON COLUMN "fbp_cache_pools"."c_url" IS '连接url';
COMMENT ON COLUMN "fbp_cache_pools"."c_password" IS '密码';
COMMENT ON COLUMN "fbp_cache_pools"."c_database" IS '连接库';
COMMENT ON COLUMN "fbp_cache_pools"."c_port" IS '端口';

-- ----------------------------
-- Table structure for fbp_page
-- ----------------------------
DROP TABLE IF EXISTS "fbp_page";
CREATE TABLE "fbp_page" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_path" varchar(500) ,
  "c_config" text ,
  "c_settings" text ,
  "c_type" varchar(20) ,
  "c_project" varchar(32) ,
  "c_version" varchar(10) ,
  "c_bg_url" varchar(500) ,
  "c_depens" text ,
   CONSTRAINT "fbp_page_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_page"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_page"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_page"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_page"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_page"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_page"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_page"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_page"."c_path" IS '页面路径';
COMMENT ON COLUMN "fbp_page"."c_config" IS '页面配置';
COMMENT ON COLUMN "fbp_page"."c_settings" IS '页面设置';
COMMENT ON COLUMN "fbp_page"."c_type" IS '页面类型';
COMMENT ON COLUMN "fbp_page"."c_project" IS '项目标识';
COMMENT ON COLUMN "fbp_page"."c_version" IS '版本';
COMMENT ON COLUMN "fbp_page"."c_bg_url" IS '页面背景图片';
COMMENT ON COLUMN "fbp_page"."c_depens" IS '依赖信息';

-- ----------------------------
-- Table structure for fbp_page_history
-- ----------------------------
DROP TABLE IF EXISTS "fbp_page_history";
CREATE TABLE "fbp_page_history" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" varchar(50) ,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_path" varchar(500) ,
  "c_config" text ,
  "c_settings" text ,
  "c_type" varchar(20) ,
  "c_project" varchar(20) ,
  "c_version" varchar(10) ,
  "c_user_name" varchar(255),
   CONSTRAINT "fbp_page_history_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_page_history"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_page_history"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_page_history"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_page_history"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_page_history"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_page_history"."c_sort_number" IS '排序号';
COMMENT ON COLUMN "fbp_page_history"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_page_history"."c_path" IS '页面路径';
COMMENT ON COLUMN "fbp_page_history"."c_config" IS '配置json';

-- ----------------------------
-- Table structure for fbp_lock_record
-- ----------------------------
DROP TABLE IF EXISTS "fbp_lock_record";
CREATE TABLE "fbp_lock_record" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_tenant_id" int8,
  "c_site_id" int8,
  "c_page_path" varchar(200) COLLATE "pg_catalog"."default",
  "c_project" varchar(50) COLLATE "pg_catalog"."default",
  "c_version" varchar(50) COLLATE "pg_catalog"."default",
  "c_login_name" varchar(50) COLLATE "pg_catalog"."default",
  "c_operator" varchar(50) COLLATE "pg_catalog"."default",
  "c_type" varchar(2) COLLATE "pg_catalog"."default",
  "c_expire_time" timestamp(6),
  CONSTRAINT "fbp_lock_record_pkey" PRIMARY KEY ("c_id")
);
COMMENT ON COLUMN "fbp_lock_record"."c_id" IS '主键';
COMMENT ON COLUMN "fbp_lock_record"."c_last_modifier" IS '修改人';
COMMENT ON COLUMN "fbp_lock_record"."c_last_modify_time" IS '修改时间';
COMMENT ON COLUMN "fbp_lock_record"."c_creator" IS '创建人';
COMMENT ON COLUMN "fbp_lock_record"."c_create_time" IS '创建时间';
COMMENT ON COLUMN "fbp_lock_record"."c_tenant_id" IS '租户ID';
COMMENT ON COLUMN "fbp_lock_record"."c_site_id" IS '站点ID';
COMMENT ON COLUMN "fbp_lock_record"."c_page_path" IS '页面path';
COMMENT ON COLUMN "fbp_lock_record"."c_login_name" IS '登录账号';
COMMENT ON COLUMN "fbp_lock_record"."c_operator" IS '操作人';
COMMENT ON COLUMN "fbp_lock_record"."c_type" IS '类型 1 页面 2 FBP页面 3 服务 4 接口 5 状态';
COMMENT ON COLUMN "fbp_lock_record"."c_expire_time" IS '过期时间';

--接口部件表
DROP TABLE IF EXISTS "fbp_component";
CREATE TABLE "fbp_component" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(255) ,
  "c_version" varchar(50) ,
  "c_uuid" varchar(100) ,
  "c_bpmn" text ,
  "c_runner" text ,
  "c_document" text ,
  "c_element" text,
  CONSTRAINT "fbp_component_pkey" PRIMARY KEY ("c_id")
);

DROP TABLE IF EXISTS "fbp_component_setting";
CREATE TABLE "fbp_component_setting" (
  "c_id" serial8 NOT NULL,
  "c_last_modifier" int8,
  "c_last_modify_time" timestamp(6),
  "c_creator" int8,
  "c_create_time" timestamp(6),
  "c_sort_number" int4,
  "c_tenant_id" int8,
  "c_project" varchar(255) ,
  "c_version" varchar(50) ,
  "c_setting" text ,
  "c_site_id" int8,
  CONSTRAINT "fbp_component_setting_pkey" PRIMARY KEY ("c_id")
);

--新增字段
ALTER TABLE "t_project_app_info" ADD COLUMN "c_run_events" text;



--注意下面两个函数要确保执行成功,否则影响页面、接口、状态的编辑锁
CREATE OR REPLACE FUNCTION "add_minutes_to_current_time"("minutes" int4)
  RETURNS "timestamp" AS $BODY$
BEGIN
  RETURN now() + INTERVAL '1 minute' * minutes;
END;
$BODY$ LANGUAGE plpgsql VOLATILE

-- 
CREATE OR REPLACE FUNCTION "add_seconds_to_current_time"("seconds" int4)
  RETURNS "timestamp" AS $BODY$
BEGIN
  RETURN now() + INTERVAL '1 second' * seconds;
END;
$BODY$ LANGUAGE plpgsql VOLATILE
  • 3、locas-service服务连的数据库中执行,将原来数据源表管理的数据迁移至fbp_datasource表:
sql
--迁移脚本
insert into fbp_datasource select id,datasource_name,type,url,port,schema_name,c_user,password,remark,status,code,current_model,config_msg,tenant_id,source_level,1,1,5,null from datasource;
--迁移后调整序列为最大值
select setval('fbp_datasource_id_seq', (select max(id)+1 from fbp_datasource));

注意:

升级后数据源管理应用应该用lc-fbppdsm来维护,且需要确保库里需有标识为locas(连到locas-service的库)、mas(连到mas-admin里连的库)的数据源

字段加密可访问公司提供的加密工具,选数据源字段加密,【工具地址 http://wh.zktx-soft.com:6493//web/$/#/lc-plat-tools/main?_anonymous=1

sql
--插入系统数据源:locas、mas
INSERT INTO "fbp_datasource"("datasource_name", "type", "url", "port", "schema_name", "c_user", "password", "remark", "status", "code", "current_model", "config_msg", "tenant_id", "source_level", "c_initialsize", "c_minidle", "c_maxsize", "c_driverclassname") VALUES 
('locas平台', 4, 'a095a3ecc3b3d486be4106835e7bfbbff48f8d3798cd7f3fd1d5daeccaaff9bb8c3d0eeab184a34796c964da1f75f0cf', '1521', '2b1e64c625349a0ce9a8b3559318be25', 'd6bdf1f2acdca3a9e642d887e31482a2', 'c201c764cac803fbf5e802176c8cdb4f', '', NULL, 'locas', 'public', 'stringtype=unspecified', NULL, 1, 1, 1, 10, NULL);

INSERT INTO "fbp_datasource"("datasource_name", "type", "url", "port", "schema_name", "c_user", "password", "remark", "status", "code", "current_model", "config_msg", "tenant_id", "source_level", "c_initialsize", "c_minidle", "c_maxsize", "c_driverclassname") VALUES 
('mas平台', 4, 'a095a3ecc3b3d486be4106835e7bfbbff48f8d3798cd7f3fd1d5daeccaaff9bb8c3d0eeab184a34796c964da1f75f0cf', '1521', 'ea9d1f348795ea3e923d08c9ab899b37', 'd6bdf1f2acdca3a9e642d887e31482a2', 'c201c764cac803fbf5e802176c8cdb4f', '', NULL, 'mas', 'public', 'stringtype=unspecified', '', 1, 1, 1, 10, NULL);
  • 4、locas-service服务连的数据库中执行,初始化一个系统缓存记录,缓存标识为:sys_cache_locas,可jvm和redis,跟据实际资源情况初始化【分布式或集群部署式应采用redis】,c_type的值为jvm或redis
sql
--redis记录
  INSERT INTO "fbp_cache_pools"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_code", "c_name", "c_remark", "c_level", "c_type", "c_expire_seconds", "c_maximum_size", "c_second_expire_seconds", "c_url", "c_password", "c_database", "c_port") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, 'sys_cache_locas', '系统缓存', '平台系统用缓存', 1, 'redis', 24000, NULL, NULL, '192.168.1.55', NULL, 1, 6379);
-- jvm记录
  INSERT INTO "fbp_cache_pools"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_code", "c_name", "c_remark", "c_level", "c_type", "c_expire_seconds", "c_maximum_size", "c_second_expire_seconds", "c_url", "c_password", "c_database", "c_port") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, 'sys_cache_locas', '系统缓存', '平台系统用缓存', 1, 'jvm', 24000, 1024, NULL, '', NULL, NULL, NULL);

注意:

上面语句只执行一条(二选一),且执行前按环境资源调整好语句里的值,特别是redis连接的

2.7.50升级至2.7.54

更新lc-project-workspace、locas、locar和locas-fbp服务

初始化安装

  • locas平台polardb数据库环境全新安装脚本获取地址:oss://foa5-oss/deploy/locas-polardb-sqls/2.7.33/

  • fbp_datasource表需初始化locas、mas的数据源,注意按实际调整,且url、schema_name、c_user、password加密字段值后再执行

字段加密可访问公司提供的加密工具,选数据源字段加密,【工具地址 http://wh.zktx-soft.com:6493/web/$/#/lc-plat-tools/main?_anonymous=1

sql
INSERT INTO "fbp_datasource"("datasource_name", "type", "url", "port", "schema_name", "c_user", "password", "remark", "status", "code", "current_model", "config_msg", "tenant_id", "source_level", "c_initialsize", "c_minidle", "c_maxsize", "c_driverclassname") VALUES 
('locas平台', 4, 'a095a3ecc3b3d486be4106835e7bfbbff48f8d3798cd7f3fd1d5daeccaaff9bb8c3d0eeab184a34796c964da1f75f0cf', '1521', '2b1e64c625349a0ce9a8b3559318be25', 'd6bdf1f2acdca3a9e642d887e31482a2', 'c201c764cac803fbf5e802176c8cdb4f', '', NULL, 'locas', 'public', 'stringtype=unspecified', NULL, 1, 1, 1, 10, NULL);

INSERT INTO "fbp_datasource"("datasource_name", "type", "url", "port", "schema_name", "c_user", "password", "remark", "status", "code", "current_model", "config_msg", "tenant_id", "source_level", "c_initialsize", "c_minidle", "c_maxsize", "c_driverclassname") VALUES 
('mas平台', 4, 'a095a3ecc3b3d486be4106835e7bfbbff48f8d3798cd7f3fd1d5daeccaaff9bb8c3d0eeab184a34796c964da1f75f0cf', '1521', 'ea9d1f348795ea3e923d08c9ab899b37', 'd6bdf1f2acdca3a9e642d887e31482a2', 'c201c764cac803fbf5e802176c8cdb4f', '', NULL, 'mas', 'public', 'stringtype=unspecified', '', 1, 1, 1, 10, NULL);
  • fbp_cache_pools表需要初始化一个系统缓存记录,缓存标识(c_code)为:sys_cache_locas,类型(c_type)可选jvm和redis,跟据实际资源情况初始化【分布式或集群部署式应采用redis】
sql
--redis记录
  INSERT INTO "fbp_cache_pools"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_code", "c_name", "c_remark", "c_level", "c_type", "c_expire_seconds", "c_maximum_size", "c_second_expire_seconds", "c_url", "c_password", "c_database", "c_port") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, 'sys_cache_locas', '系统缓存', '平台系统用缓存', 1, 'redis', 24000, NULL, NULL, '192.168.1.55', NULL, 1, 6379);
-- jvm记录
  INSERT INTO "fbp_cache_pools"("c_last_modifier", "c_last_modify_time", "c_creator", "c_create_time", "c_sort_number", "c_tenant_id", "c_code", "c_name", "c_remark", "c_level", "c_type", "c_expire_seconds", "c_maximum_size", "c_second_expire_seconds", "c_url", "c_password", "c_database", "c_port") VALUES (NULL, NULL, NULL, NULL, NULL, NULL, 'sys_cache_locas', '系统缓存', '平台系统用缓存', 1, 'jvm', 24000, 1024, NULL, '', NULL, NULL, NULL);

内部资料,请勿外传