自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 收藏
  • 关注

原创 一二三应用开发平台使用手册——系统管理-用户组-使用说明

在RBAC模型中,资源、角色、用户三个关键元素,构成权限体系。在小型应用中,角色数量有限的情况下,单层平铺简单实用,但在大中型应用中,角色数量在几十个甚至上百个,如果依旧平铺则难以管理和使用。采用树形结构后,可以方便地添加虚拟节点(如角色分类)。角色的称呼偏技术,对于业务用户而言,称为用户组更合适,即一组用户的集合;业务意义上的岗位和职务,与传统意义的角色含义基本一致,如部门经理、固定资产接口人。

2024-04-22 08:08:54 852

原创 电脑工作者缓解眼部疲劳问题的工具分享

针对电脑工作者普遍面临的眼部疲劳问题,本文提出了从显示器亮度调节、电脑软件绿豆沙底色启用、浏览器深色主题设置以及集成开发环境(IDE)主题设置这四个核心方面入手的解决方案。通过介绍相关工具和设置,我们旨在帮助大家减轻眼睛负担,提升工作舒适度。然而,每个人的需求各不相同,因此热切欢迎读者提出宝贵意见和建议。您是否有更好的工具或方案?是否发现还有其他方面的需求尚未得到妥善应对?请不吝分享您的经验和想法,让我们共同努力,寻找更多有效的方法来缓解眼部疲劳,守护我们明亮的双眼。

2024-04-19 13:36:59 1373

原创 一二三应用开发平台使用手册——系统管理-用户-使用说明

对于新系统,如果说初始化组织机构是第一步工作,那么初始化用户则是第二步工作。今天来介绍系统管理模块中的用户使用说明。对于企业应用,人员是重要的基础数据。在不少平台和系统中,对“人”的概念进一步细分,将人员与用户区分来。人员对应真实世界中的人,用户则特指具备系统操作账号的人。人员和用户的关系通常是一对一的,当然也不排除个别系统允许1个人对应多个账户。将人员独立出来,有人员没用户,意味着这部分人员,不需要登录和操作系统,如某些业务场景下的专家库。但是,这类场景下,需要根据业务需求建立单独的实体,因为要更多

2024-04-15 08:00:00 961

原创 一二三应用开发平台使用手册——系统管理-组织机构-使用说明

平台文档是平台的重要组成部分,这块容易被忽视或不被重视。即使一个平台或系统架构优秀、设计合理、代码优雅,但文档缺失,对于平台的使用方而言,熟悉成本高、难度大。不可避免存在疑问,需要动手尝试验证或翻看源码才能确定系统的实际处理逻辑,效率低下。此外,有些平台或系统虽然有文档,但文档流于形式化,为了写文档而写文档的产物。这样的文档质量堪忧,常见的问题主要有两个:1.形式化与套路化,把功能模块和实体一列,然后增删改查,放几张截图,实际上都是些正确而无用的套话,提供的价值非常有限。2.文档与系统实现不符,没有

2024-04-08 16:46:26 771

原创 通用接口开放平台设计与实现——(30)消息服务端之消息重发优化

消息服务通信机制为异步,且网络连接不是100%可靠,会因为网络闪断问题丢失消息,作为企业应用,需要保证业务消息传输的可靠性,需实现以下机制:a)发送方重发机制:消息发送方对未收到响应的消息进行重发,重发时保证消息唯一性标识、消息内容不变b)接收方消息去重机制:消息接收方依据消息的唯一性标识,对收到的消息进行验证,判断是否已处理过,如已处理过则不再进行处理。

2024-04-08 08:29:39 165 1

原创 应用开发平台集成表单设计器系列之6——表单构造器集成实战

平台需要实现自定义表单功能,作为低代码开发的一部分,通过技术预研和技术选型,选择form-create和form-create-designer这两个组件进行集成作为实现方案。通过深入了解和技术验证,确认了组件的功能能满足需求,具备良好的开放性和扩展性。上篇对运行模式下表单集成进行了技术验证,今天来进行实际的集成工作。

2024-04-01 08:00:00 692

原创 应用开发平台集成表单设计器系列之5——运行模式下的表单集成验证

平台需要实现自定义表单功能,作为低代码开发的一部分,通过技术预研和技术选型,选择form-create和form-create-designer这两个组件进行集成作为实现方案。通过深入了解和技术验证,确认了组件的功能能满足需求,具备良好的开放性和扩展性。上篇对表单构造器的深度了解,今天通过对fc组件的集成,验证下运行模式下的整体效果。

2024-03-25 08:00:00 588

原创 应用开发平台集成表单设计器系列之4——表单构造器深度了解

平台需要实现自定义表单功能,作为低代码开发的一部分,通过技术预研和技术选型,选择form-create和form-create-designer这两个组件进行集成作为实现方案。通过深入了解和技术验证,确认了组件的功能能满足需求,具备良好的开放性和扩展性。上篇介绍了整体集成思路以及表单设计器的深入了解,接下来则是对表单构造器的深度了解。

2024-03-18 08:00:00 923

原创 通用接口开放平台设计与实现——(8)消息服务之消息格式的设计与实现

接口平台通过消息服务来通知对接系统数据的变化,避免轮询,这些消息,本质上是业务事件。例如,对于物流这个业务场景下的交货单,在单据创建、委托下达、车辆进厂、车辆离厂、客户签收等事件产生时,给相关系统推送一条消息,简要通知事件信息,如单据的新增、修改、作废,只需要消息中携带单号和类型即可。

2024-03-17 17:08:03 734

原创 一二三文档管理系统设计——1.系统规划、方案设计与功能设计

组织内共享文件,形成网络磁盘,可用于多个业务用途,如电子文档共享、知识库等。通常包括以下功能:文件夹管理:新增、删除、更名、查看(这里是指查看下级文件夹及文件)文档管理:上传、下载、更名、在线预览、删除(还可以扩展签入、签出、打印……)权限控制:这里是专用的数据权限,权限项是相对固化的在线预览:实现文档的在线预览,需支持pdf和office等常见格式其中权限控制和在线预览是难点和重点。该功能比较复杂,分成几个迭代来实现。1.实现基本的文件夹和文档管理2.实现权限控制。

2024-03-11 08:00:00 1164

原创 一二三文档管理系统整体介绍

系统简介企事业单位一站式文档管理系统,让组织内文档管理有序,协作高效、安全可控。本应用完全开源,开源协议为MIT。本应用基于一二三应用开发平台构建,该平台完全开源,开源协议为MIT,传送门。系统特色安全高效的权限管理独创以文件夹作为权限管理单元,兼顾安全与高效,文档权限从属所在文件夹,支持继承,无需对文档进行繁琐的权限初始化与维护;提供按组织机构和按用户组两种模式授权,灵活应对各种应用场景。易用高速的文档上传支持批量上传、拖放文件,断点续传、分块上传、自动重传、手工重传,显示进度、剩余时间

2024-03-04 08:00:00 951

原创 实用为王——IDEA精选插件推荐系列4

工欲善其事,必先利器,也就是俗话说的砍柴不误磨刀工,IDE是程序猿最常使用的工具,虽然IDEA自身已经相当便捷了,但某些地方还是会存在一些繁琐的操作、重复性劳动,降低效率,而插件,就是解决这方面问题的利器,因此打算开一个专栏,将自己收集整理的实用插件,一一呈现出来。虽然市面上有很多类似的推荐,但动不动就是搞什么什么大全,里面的插件质量参差不齐,特别实用性方面有限,花里胡哨,还是需要进行二次筛选,自己动手摸索尝试,特别是部分插件需要一些注意点,才能正常运行发挥作用。因此,我是将实用作为第一要素,会在插

2024-02-26 08:00:00 1085 1

原创 实用为王——IDEA精选插件推荐系列3

工欲善其事,必先利器,也就是俗话说的砍柴不误磨刀工,IDE是程序猿最常使用的工具,虽然IDEA自身已经相当便捷了,但某些地方还是会存在一些繁琐的操作、重复性劳动,降低效率,而插件,就是解决这方面问题的利器,因此打算开一个专栏,将自己收集整理的实用插件,一一呈现出来。虽然市面上有很多类似的推荐,但动不动就是搞什么什么大全,里面的插件质量参差不齐,特别实用性方面有限,花里胡哨,还是需要进行二次筛选,自己动手摸索尝试,特别是部分插件需要一些注意点,才能正常运行发挥作用。因此,我是将实用作为第一要素,会在插

2024-02-19 07:56:13 1118

原创 实用为王——IDEA精选插件推荐系列2

工欲善其事,必先利器,也就是俗话说的砍柴不误磨刀工,IDE是程序猿最常使用的工具,虽然IDEA自身已经相当便捷了,但某些地方还是会存在一些繁琐的操作、重复性劳动,降低效率,而插件,就是解决这方面问题的利器,因此打算开一个专栏,将自己收集整理的实用插件,一一呈现出来。虽然市面上有很多类似的推荐,但动不动就是搞什么什么大全,里面的插件质量参差不齐,特别实用性方面有限,花里胡哨,还是需要进行二次筛选,自己动手摸索尝试,特别是部分插件需要一些注意点,才能正常运行发挥作用。因此,我是将实用作为第一要素,会在插

2024-02-12 08:00:00 1817

原创 一二三应用开发平台使用手册——系统管理模块整体介绍

平台文档是平台的重要组成部分,这块容易被忽视或不被重视。即使一个平台或系统架构优秀、设计合理、代码优雅,但文档缺失,对于平台的使用方而言,熟悉成本高、难度大。不可避免存在疑问,需要动手尝试验证或翻看源码才能确定系统的实际处理逻辑,效率低下。此外,有些平台或系统虽然有文档,但文档流于形式化,为了写文档而写文档的产物。这样的文档质量堪忧,常见的问题主要有两个:1.形式化与套路化,把功能模块和实体一列,然后增删改查,放几张截图,实际上都是些正确而无用的套话,提供的价值非常有限。2.文

2024-02-05 08:00:00 937

原创 一二三应用开发平台文件处理设计与实现系列之7——minio多节点共享磁盘模式验证

在不了解minio架构设计之前,我根据既往经验推测minio是将文件读写封装实现了一个应用系统,如要实现高可用,则需要部署两个minio节点,共享同一块磁盘。两个minio节组成一个集群,使用nginx实现负载均衡,这是一种常见的部署架构。官方资料介绍的部署模式有两大类(https://min.io/docs/minio/linux/operations/installation.html),单节点部署和分布式部署,其中单节点又细分为单磁盘(只使用1块磁盘,不使用纠删码)和多磁盘(至少挂载4块磁盘,启用

2024-01-29 08:00:00 1867 2

原创 一二三应用开发平台文件处理设计与实现系列之6——集成minio实现文件存储

背景前面完成了minio的技术预研,今天基于文件存储框架,集成minio,实现平台使用对象存储组件来存储文件的功能。配置文件相比于直接磁盘存储,只需要指定存储类和根路径,minio还需要指定服务地址、账号、密码、桶名,因此在配置文件的oss节点下新增minio属性,存放这几个配置信息。

2024-01-22 08:00:00 959

原创 一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研

上篇介绍了文件读写框架设计与实现,同时顺便说明了本地磁盘存储模式的实现模式。今天来说下基于文件读写框架,如何集成对象存储组件minio,集成之前,需要对minio进行必要的了解,本篇是minio的技术预研。minio简介minio是一套小而美的开源的对象存储系统(Object Storage System,简称OSS),优点如下:● 支持存储海量非结构化数据(单个文件从几十kb到最大5T不等)● 性能高,在标准硬件上,读/写速度高达183GB/秒和171GB/秒● 完全兼容Amazon S3接口

2024-01-15 08:00:00 1041

原创 一二三应用开发平台文件处理设计与实现系列之4——文件存储框架设计与实现

作为平台,需考虑支持多种文件存储方案,对于中小型系统,可以使用直接存储到磁盘这种简单实用的方式;对一中大型系统,能支持使用对象存储组件。基于上述考虑,建立抽象层,通过接口定义对于文件的上传、下载、查看等功能,对于对象存储或文件服务器存储,本质上都是具体的存储实现方式。通过功能类的具体实现,来支持多种存储模式,通过更改配置,可以灵活选择具体的存储方式,业务应用无感知。平台内置磁盘存储和主流对象存储组件minio两种实现方案,如对接其他对象存储系统,如阿里OSS,通过系统集成的方式,实现预置的抽象接口,适

2024-01-08 08:00:00 892

原创 一二三应用开发平台文件处理设计与实现系列之3——后端统一封装设计与实现

前面介绍了前端通过集成vue-simple-uploader实现了文件的上传,今天重点说一下后端的设计与实现。从功能角度而言,实际主要就两项,一是上传,二是下载。其中上传在文件体积较大的情况下,为了加快上传速度,提升用户体验,在具体实现上进行了文件分块,以及文件块的合并操作。从业务场景而言,主要分为两类:一是表单相关的附件;二是通知公告等场景,使用富文本编辑器时上传的图片。在这两类场景中,文件实际并不是主体,而是实体的附属品。平台对文件上传下载的支撑功能,重点还在于表单相关附件,并支持图片的上传与展

2024-01-01 08:00:00 1021

原创 实用为王——IDEA精选插件推荐系列1

工欲善其事,必先利器,也就是俗话说的砍柴不误磨刀工,IDE是程序猿最常使用的工具,虽然IDEA自身已经相当便捷了,但某些地方还是会存在一些繁琐的操作、重复性劳动,降低效率,而插件,就是解决这方面问题的利器,因此打算开一个专栏,将自己收集整理的实用插件,一一呈现出来。虽然市面上有很多类似的推荐,但动不动就是搞什么什么大全,里面的插件质量参差不齐,特别实用性方面有限,花里胡哨,还是需要进行二次筛选,自己动手摸索尝试,特别是部分插件需要一些注意点,才能正常运行发挥作用。因此,我是将实用作为第一要素,会在插

2023-12-25 08:00:00 1799

原创 一二三应用开发平台部署文档——开发环境搭建手册

开源平台在ReadMe文档中简要描述了如何部署与启动以及重要注意事项,有小伙伴私信我希望提供一个详细具体的部署说明,然后联想到自己出于学习或研究目的,去搭建一些开源项目时,面对简要的说明也经常遇到障碍,比如报错了难以定位原因,反复尝试花费大量时间精力,甚至于发生折腾半天发现最终无法正常运行起来而最终放弃的情况……基于上述原因,今天来详细说说平台如何搭建开发环境,包括注意事项,这部分内容不仅适用于本平台,也适用于大部分基于主流开源技术栈构建出来的平台。如在搭建开发环境时遇到问题,请留言评论,我会及时回复。

2023-12-18 08:00:00 1398 6

原创 一二三应用开发平台文件处理设计与实现系列之1——文件处理需求、方案、整体设计

对于应用系统而言,数据主要分为两大类,结构化数据和非结构化数据。结构化数据通常是指可以明确定义其数据结构及属性的对象,如组织机构、用户、合同、订单等,通常都会使用关系型数据库来存储,通过SQL来读写。非结构化数据,主要是文件类,如word、excel等office文档以及PDF、音频、视频、压缩包等二进制格式,无法明确定义数据结构,通常不会存放到关系型数据库的大字段中,而是另行存储,关系型数据库中只存放其引用,如磁盘路径或文件标识。

2023-12-11 08:00:00 959

原创 版本依赖冲突问题排查过程记录

开发平台在集成minio时,pom引入了sdk。在调用上传文件API时,控制台报错:从错误来看,是okhttp的版本过低,minio要求版本4.11.0及以上.初看这错误一脸懵,okhttp是minio内部依赖的jar包,难不成其他地方也在使用,造成了版本冲突?使用maven helper插件提供的jar包依赖分析,发现并没有出现okhttp冲突的情况。然后整个项目工程中搜索okhttp关键字,任何模块没有显性使用过。查看使用minio组件模块的依赖,确认当前使用的okhttp的版本是3.14.8,明显低

2023-12-04 08:00:00 1716

原创 windows下docker环境搭建与运行实战

学习docker使用,需要环境,今天主要的目标是在windows环境下安装docker环境。为什么要这么搞,主要是企业内部服务器,都是跟公网隔离的,没有访问公网权限,所以镜像什么的,从公网拉取完全没戏,在测试验证环节,通过公网下载各种镜像再传到服务器这种模式,效率低下。以前做过这样的尝试,详见,最后的效果并不好,只能执行有限的docker命令,因无法访问公网,从而也无法方便地从公网拉取各种镜像。

2023-11-27 08:00:00 2429

原创 应用开发平台集成表单设计器系列之3——整体集成思路及表单设计器功能深度了解

平台需要实现自定义表单功能,作为低代码开发的一部分,通过技术预研和技术选型,选择form-create和form-create-designer这两个组件进行集成作为实现方案。通过深入了解和技术验证,确认了组件的功能能满足需求,具备良好的开放性和扩展性。接下来,重点来说说整体设计。实际有个核心的问题需要先考虑清楚,即现有的开发平台低代码配置功能与表单设计器,二者的关系是什么样。思考后总结,主要有三种模式:1.相互独立,分别用于不同的场景;2.协作关系,现有配置功能进行初步配置,表单设计器在其基础上再进

2023-11-20 08:00:00 810 3

原创 应用开发平台集成表单设计器系列之2——深入了解与技术验证

上一篇,对表单设计器进行了技术预研,在三款组件form-generator、FormMaking、form-create-designer中初步选择了form-create-designer,接下来的工作,是需要深入了解,进行技术验证,确保该组件功能基本功能能满足我们的平台集成需求,有良好的开放性可以满足未来的扩展。这样可以避免投入了大量时间精力,集成工作进行了大半,突然发现功能受限,特别是关键性或核心需求实现不了,意味着已经做的集成工作实际是无效劳动,需要更换技术组件,开发成本增加,开发周期变长。

2023-11-13 08:00:00 397

原创 应用开发平台集成表单设计器系列之1——技术预研与技术选型

表单的可视化配置,是低代码开发平台的重要组成部分。平台已实现的低代码配置部分,可以配置生成前端vue页面,对于属性较少的实体,如系统基础数据的管理、配置数据的维护,采用标准化的模板模式来生成,配置简便,快速高效。但不得不说,对于非标准化的复杂表单,如三五十个字段的单表,需要分组显示;主子关系表,需要多tab页展示……在这些场景下,表单的可视化配置仍然很有价值,相比原生开发,或者基于平台现有的模板式生成后手工修改,仍存在大幅提高开发效率的空间。

2023-11-06 08:00:00 493 1

原创 应用开发平台集成工作流系列之17——流程建模功能前端设计与改造回顾

对于流程设置不友好的问题,国内钉钉另行设计与实现了一套流程建模模式,跟bpmn规范无关,有人仿照实现了下,并做了开源(),效果图如下:实现大致原理是基于无限嵌套的子节点,输出json数据,传给后端,后端进行解析后,调用Camunda引擎的api,转换成流程模型后持久化。该系列通过十几篇对Camunda工作流引擎集成做了相对比较详细的设计和实现说明工作,在集成过程中,对原前端Workflow-Vue3做了大量的改造,前面零零星星的也随着部分博客提及过,今天做一个全局性的回顾和整理。

2023-10-30 08:00:00 291

原创 应用开发平台集成工作流系列之16——办理意见设计与实现

流程任务流转过程中,各环节的处理,会填写处理意见。Camunda自带了相关的功能,但功能过于简陋,问题较多,今天来说说这一块。

2023-10-23 07:58:22 179

原创 应用开发平台集成工作流系列之15——任务处理设计与实现

依托Camunda工作流引擎,辅以集成工作,实现了流程建模、表单定制、我的待办、我的已办、我的申请等功能,接下来重点就是流程任务的处理了,今天总体来说说一个流程,从发起、环节处理到结束的过程。

2023-10-16 08:00:00 254

原创 应用开发平台集成工作流系列之14——流程表单实现示例

流程审批,通常对应一个业务表单。这个表单一般有两种实现模式,一是不同的环节对应不同表单,二是做一张大表单,分为不同的区域,从业务角度考虑,前者通常对应复杂业务处理;后面一种则更常见和更常用,更友好和实用一些。Camunda只是工作流引擎,负责流程的流转。Camunda自身实际也附带了一个表单功能,但是,实在简陋到没法用的地步,感兴趣的可以去了解下,我保证你不会有在项目或系统中使用的想法。基于上述原因,流程表单需要自行设计与实现。

2023-10-09 08:00:00 362

原创 应用开发平台集成工作流系列之13——工作流辅助功能设计与实现

Camunda只是工作流引擎,并不是一套完整的工作流产品。尽管自带了一套管理界面,可以从web登录后进行流程建模和流程管理,但界面太粗糙,不可能用于生产环境的。因此需要基于Camunda的API,通过集成和定制的方式,来实现工作流辅助功能。这里的辅助功能,主要是指以下几项:● 流程导航● 我的待办● 我的已办● 我的申请● 流程发起权限控制下面来具体展开说说。

2023-10-02 08:00:00 316

原创 应用开发平台集成工作流系列之12——流程导航功能设计与实现

流程模板主要是用于流程建模的,对于业务用户而言,需要一个业务流程的导航页,分门别类展示业务流程清单,用于发起新的流程。并且需要根据当前用户过滤,只显示有权限发起的流程。

2023-09-25 08:00:00 206

原创 应用开发平台集成工作流系列之11——流程模板功能设计与实现

流程模板不同于一般的业务实体对象,有“版本”的概念。并且,在同一时间点,某个流程模板只有一个版本处于使用状态,可基于模板创建流程实例。但是,在同一时间点,可能存在多个流程实例,属于同一个流程模板的不同版本。因为流程实例从创建到流转再到最后结束,是一个持续的过程。在持续期间,如业务需求变更,需要调整流程模板,则遵循的原则是在途的流程实例,继续按照原流程模板走完。新发起的流程实例,直接参照修改后的流程模板来创建和流转。

2023-09-18 10:10:55 431

原创 应用开发平台集成工作流系列之10——流程建模功能环节业务逻辑处理的设计与实现

基于工作流的表单流转,在某些特定的环节,需要执行一些业务逻辑处理。例如动态分配节点处理人、发送邮件或短信给待办用户、统计流程处理时长判断是否超时,以及业务层面数据处理(例如,在请假流程中将部门领导审批环节的审批意见和时间数据写入到申请表单中)。这些业务逻辑可以分为两大类,一类是通用处理逻辑,适用于所有流程,例如发送邮件或短信给待办用户;另一类则是与某个业务流程绑定的业务逻辑,通常是业务层面的数据处理。

2023-09-11 08:00:00 247

原创 应用开发平台集成工作流系列之9——流程表单权限设计与实现

流程审批,通常对应一个业务表单。这个表单一般有两种实现模式,一是不同的环节对应不同表单,二是做一张大表单,分为不同的区域,从业务角度考虑,前者通常对应复杂业务处理;后面一种则更常见和更常用,更友好和实用一些。采用后一种方案,则需要对表单内的属性进行细粒度的权限控制,在不同的环节,对同一属性有不同的要求,可以细分为不可见、只读、编辑三种权限。若是直接对每个属性进行控制,则会过于繁琐,因此增加了属性分组来实现,即将一组属性打包成一个区域,对区域进行权限配置,会作用于其下的所有属性(注意,在实现的时候,并不是

2023-09-04 08:00:00 406 1

原创 应用开发平台集成工作流系列之8——流程建模功能回退与跳转

对于流程设置不友好的问题,国内钉钉另行设计与实现了一套流程建模模式,跟bpmn规范无关,有人仿照实现了下,并做了开源。实现大致原理是基于无限嵌套的子节点,输出json数据,传给后端,后端进行解析后,调用Camunda引擎的api,转换成流程模型后持久化。**这种模式,相对于Camunda附带的bpmn2.0规范的流程建模,友好性大幅提升,但也引入了新的问题,没法设定环节之间的“跳跃式流转”。在现有的流程建模的模式下,需要进行变通,来实现跳跃式流转,具体实现思路是自定义配置的方式来存储各环节可以回退或跳转的环

2023-08-28 08:00:00 579

原创 应用开发平台集成工作流系列之7——流程建模功能路由分支转换设计与实现

上篇介绍了办理节点的转换设计与实现。虽然办理节点是流程的主要组成部分,但实际业务流程,还需要一些逻辑分支。例如请假流程中,请假天数3天以内部门经理批准即可,3天以上需要副总审批,这时候就需要用到条件分支。在比如,一份市局的基建方案,会涉及到若干个下属县局,流程需要走到相关的下属县局,这时候就需要用到并行分支。专门看了下钉钉的流程模型,没有专门的排他网关,只有两类,一类是并行分支,另一类是条件分支,这两种称呼也更符合业务含义,便于用户理解。从业务使用角度而言,就保留一个概念,分支,到底是只能走一条、走若干

2023-08-21 08:00:00 516 1

原创 应用开发平台集成工作流系列之6——流程建模功能办理节点转换设计与实现

上篇搭建了模型转换框架,今天重点来说任务办理节点如何处理。这里的任务办理不仅包括审批审核,也包括任务的处理,使用任务办理,覆盖范围更大,从业务含义上也更准确,毕竟审批往往是领导对下级。办理节点,对应着Camunda中的用户任务概念,是是最常见最常用的,模型转换的重要前置工作,实际得先把该类节点的要做的配置设计好。工作流引擎需要跟平台整合,特别是做一些特定的功能才能满足中国式审批,需要加一些额外属性,使其更友好和方便使用,例如:能够设置下一环节是会签,还是普通审批,是否需要用户指定处理人。办理节点,很重

2023-08-14 08:00:00 353

一二三应用开发平台-企业级通用低代码开发平台V1.0,前后端分离架构,vue3+elementplus+SSM

平台名称:一二三开发平台 简介: 企业级通用开发平台,前后端分离架构,单工程,多模块,部署形态为单体应用。 前端基于vue3.2.47,element-plus 2.1.0,前端框架vue-element-plus-admin深度整合改造。后端SSM+MybatisPlus,使用SpringBoot 2.3.0。 重度使用MybatisPlus,包括主键策略、逻辑删除、乐观锁、自动填充、数据分页、CURD接口、条件构造器等。 当前版本完成了系统内核部分:组织机构、人员、角色、权限、数据字典、日志;低代码配置模块:模块、实体、模型、视图,可快速配置实体元数据,基于元数据生成entity、dao、service、controller、vo及前端vue页面。基于该平台可快速构建企业应用。 内含数据库初始化脚本;平台整体架构图;平台整体研发计划;系统开发环境搭建说明。 1.实现系统内核,打通前后端,系统能运转起来 2.实现低代码配置功能,这是后续开发的孵化器 3.基于低代码配置+高代码辅助实现系统管理模块 4.整合SpringSecurity框架,实现身份认证与权限控制

2023-04-28

使用vuedraggable实现拖拽式操作实战

Element UI 提供了大部分UI控件,但对于拖拽,确实是个短板,于是就需要额外的控件来补充了,即本文档的主角vuedraggable。 从实战角度,以低代码配置功能为例,说明vuedraggable的属性、方法、用法,以及使用过程中遇到的一些坑点及解决方案。 要点如下: group属性的要点 update和sort事件的差别 add事件如何获取数据 如何处理属性重复添加问题 不同列表间拖动group属性无效 实例: 某个业务实体,如用户管理,常见的菜单对应一个列表页面,顶部为页面级功能按钮,如新增、删除、导出等,中间为查询区域,可以放几个常用的查询条件,最下面则是查询结果,以表格形式展现行列数据。查询结果表格的行记录,最后一列放一些针对于该行数据的快捷按钮,如删除、编辑等。 这个配置功能,一方面涉及到元素的排序,如按钮的次序、查询条件的次序、查询结果中列的次序;另一方面涉及到列表间元素的移动,如将实体属性添加到查询列表或查询结果中。如采用传统模式,需要选中某个元素,点击左移、右移等按钮,既不直观,操作也繁琐。而采用拖拽式操作,所见即所得,用户体验大幅提升。

2023-03-08

java诊断与调优常用命令jmap、jstack、jstat使用实战.pdf

java应用运行过程中难免会出现问题,特别是在生产环境,发生异常或宕机情况,需要诊断与分析,定位原因,进行优化,避免下次再次出现问题。 虽然现在有很多可视化工具,使用起来比命令行更方便,但我们仍需要对基本的命令进行必要的了解。实际上,可视化工具,往往是基于这些基本命令,拿到数据后进行综合处理后输出的最终结果。 本文档从实战角度出发,介绍jps、jmap、jstack和jstat这四个命令的常用方式。 jps 作用:获取java进程号,是后续命令的基础。 当一台服务器运行多个java进程时,该命令默认只输出进程号和应用名,可能无法区分哪个是自己需要分析的对象,这时候可以附加参数 -l,显示完整路径。此外,附加参数-v,可显示jvm参数。 问题:windows环境下java进程存在,但执行jps无结果 原因:windows权限问题,在 Windows系统中,每个 java 进程启动之后都在 %TMP%/hsperfdata_${user} (${user}为当前登录用户名) 目录下建立一个以该 java 进程 pid 为文件名的文件,用以记录该 java 进程的一些信息。

2023-03-07

使用VUE自定义组件封装数据字典实战

软件系统中,会有一些成组的常量值,来描述业务实体的属性,如性别、证件类型、审批状态等。我们通常称之为数据字典,作为系统后台管理的一个独立功能,来维护字典类型以及对应的字典值。后端功能和实现都比较简单,没什么好说的,本文档重点要说的是前端的封装。 对于数据字典,前端展现往往有三种常用的形式,下拉列表、单选按钮组和复选框组,其中,最常用是下拉列表,这里就以下拉列表的实现为例来说明,其他两种类似,不重复描述。 直接使用select组件,是不是可以呢?答案是可以用,但用起来比较繁琐,需要在页面加载的时候,调用后端API接口拿数据,在data中定义存放字典数据的变量,并且一个实体编辑页面,使用到字典属性往往不止一个,三五个也比较常见,这时候,需要定义多个变量来存放字典项以及加载数据,开发工作量变大且容易出错。 那有没有办法让使用变得更方便呢?答案也简单,就是自定义封装一个组件来实现。我们的目标是传入一个数据字典的类型编码,组件内部调用后端API,完成数据的加载与存储,在选择项变化时,自动更新绑定的对应的业务实体的属性值。同时,在业务实体的编辑页面,也能自动绑定和显示已选择的字典项。

2023-03-07

扩展MyBatisPlus代码生成器实现自定义源码生成,可生成前端页面、vo对象、dto对象等代码

MyBatisPlus自带了一个代码生成器mybatis-plus-generator,可基于数据库库表,结合模板技术,自动生成程序源码,不过默认情况下,只支持Entity、Mapper、Service、Controller这些层次。如果想生成未预置的代码,如vo对象、前端vue页面以及其他自定义代码等,需要做一些定制和扩展来实现。 从使用角度而言,官方资料介绍得比较简要,要实际使用,仍然需要进行具体的尝试和摸索,包括必要时看下源码怎么处理的,才能发现一些限制和约束,最终理顺。 本文档提供了整体实现思路,具体过程,包括模板的定义、数据的注入、代码的生成,以及遇到的问题和解决方案。 原代码生成组件,默认会在最终生成文件名前,默认附加实体名前缀,例如实体名是User,VO.java.ftl会自动生成UserVO.java,这样没问题。但是对于前端页面,如list.vue,edit.vue,因为是分目录放实体,希望最终文件名不变,而不要附加前缀变成UserList.vue、UserEdit.vue。 需要自定义类,继承于官方,重写outputCustomFile方法,实现上述目的。

2023-03-07

软件系统规模估算方法论介绍-功能点分析法

本文不是泛泛的理论介绍,而是从实际应用角度出发,对功能点估算法进行介绍,加入了较多的评论和观点,具备实用价值。 章节目录如下:背景、概述、简介、基本概念、计算方法、延伸计算、优缺点、总结。 应用场景 1.作为软件公司,要研发一个新的产品,功能需求大概明确了,需要确定下研发成本、资源需求等。 2.作为企业,实施软件系统,需要与软件厂商商谈具体的工期与费用等。 3.作为软件公司或企业的管理方,需要对多个软件系统进行横向对比、衡量与评价等。 以上几个问题,实际都指向一个核心问题,即如何客观估算与衡量一个软件系统的规模。只有具备了软件规模的基本数据,与之相关的工作量(人天)、工期、报价、项目成本才能计算。 目前评估软件规模的方法主要分为两种:基于技术视角和基于业务视角。 基于技术视角的方法是从开发者角度出发,如:基于软件源代码行、数据库表、函数数量等。 基于业务视角的方法是从用户角度出发,与软件开发技术无关,如:功能点、故事点、用例点、对象点等。 基于技术视角的评估方法更多地局限于软件开发团队内部,由经验丰富的技术人员估算,经常也被称之为专家估算法。这种估算法标准很难量化和达成一致,不同

2023-02-24

基于uniapp技术框架的微信小程序汇率换算完整源码

【说明】 这是使用uniapp技术框架实现的一个微信小程序,同时对头条小程序做了适配,通过了微信和头条审核并上架。业务功能相对简单,但整体框架完整,包括布局、页签、本地存储、常量、权限、自动更新、分享等。可直接基于本框架开发新的小程序,也可以将其作为学习资料,可减少大量框架方面的实现和调试工作。实现效果可使用微信搜索“小易汇率查询”(后端服务已停运,因此页面未加载数据正常)。 注:汇率数据是后端服务调用了阿里api服务市场的汇率接口,生成json数据,未包含在本源码内。 【业务功能】 本应用提供汇率查询与货币兑换功能,汇率数据准实时更新,主要包含四个页签: 【常用】:精选人民币、美元、欧元、日元、港币、新台币,韩元,英镑,加元,印度卢比等二十多个国家和地区主要货币,进行双向兑换及自定义汇率,可将关注的货币加入收藏。 【收藏】:快速浏览收藏的多种货币组合,实时掌握最新汇率。 【大全】:提供全球一百三十余种货币之间汇率查询,支持智能匹配搜索功能,可将支持的货币加入收藏,同时支持金、银、钯、铂贵金属与货币之间汇率查询。 【分享】:将本应用分享给微信好友、微信朋友圈、QQ好友、QQ空间。

2023-02-21

word、excel文档内容自动化更新技术方案

生产、研发业务上往往使用大量word和excel文档来作为资料载体,如操作规程、控制手册、卡片……,这些文档会反复使用到一些设备、工艺等参数数据。参数属性主要是名称、编码、正常范围、报警上下限、单位等,这些参数对应的属性值,是会发生变化的。 文档中使用参数的地方,中文的表达方式多种多样,人来阅读文档没啥问题。但是引用参数的文档,实际没有存在“物理”上的关联关系。当参数属性值调整时,需要更新相应的文档,这时候就出现问题了。因为没有关联关系,没有技术手段自动识别,只能人工一点点改文档,这工作量是相当大,找到需要修改的地方就不容易,并且很容易发生漏改、误改问题,从而导致不一致的问题。 解决该问题,常见的方案是通过软件系统来实现,软件系统实现,这是一个模板技术的应用场景。建立基础数据,整理文档模板,自动化替换,并引入全文搜索技术。 通过软件系统解决有诸多优点,比如使用简单、管理规范、可扩展性高。但不得不说,软件系统也有一些缺点,比如成本高,交付周期比较长。上面提到,软件系统是常见方案,但放到特定的背景下未必是最优方案。这里说一种轻量级的解决方案,即通过office自身功能来实现。

2023-02-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除