低代码A9
[!TIP] M5桌面调试指南 以设置域名设置为https://dev.seyonv8.com举例:
-
打开M5桌面端(调试版),登录
-
打开Developer Tools控制台(cmd + alt + shift + i)切换到Application 切换到Cookies,选中https://dev.seyonv8.com 可看到右侧有token,SY_ACCESS_TOKEN
-
M5中打开目标页面,并打开调试界面(点击调试按钮),修改 location.href为本地项目地址(如:http://localhost:3000/main/child-frame/app-doc/doc-center/lib-detail/-4879104018880428158/-4879104018880428158)
-
复制2.中的Cookie到3.中,刷新页面。如果弹出"退出提示 您的账号已在另一个设备上登录",点击确定,重新登录即可。
软件立项研发文件清单:
《产品立项任务书》----产品经理
《产品立项申请表单》----项目经理
《产品立项的评审记录单》----产品经理
《Product Backlog》---产品经理
《研发一级计划》-----项目经理
《质量目标清单》
《配置管理计划》
工作流相关

对上图中各部分的关系说明如下:
| 工作流与低代码平台 | 低代码平台在搭建应用的过程中,如有要用到流程,则会创建、引用流程模板,并在这个过程完成流程参数的绑定;在设计发送、处理界面时会引用流程图组件和流程节点动作; |
|---|---|
| 工作流与组织模型 | 工作流与组织模型唯一有关联的点就是流程的参与者,工作流通过定义人员匹配接口,这个接口的实现由【人员匹配接口适配层】来负责实现,【人员匹配接口适配层】再调用组【织模型微服务】对外暴露的API实现人员查找; |
| 工作流与XXX应用微服务 | XXX应用微服务一般为低代码平台搭建出来的应用,XXX应用微服务在运行过程中会与工作流发生关系,通过向工作流传递流程参数、通过【工作流API】实现对工作流服务的调用,通过引用【流程图组件】实现对流程的可视化查看 |
| 工作流与待办中心服务 | 工作流在运行过程中会产生流程事件,工作流会将这些流程事件发送到【消息队列】中,待办中心服务通过监听【消息队列】获得流程事件,产生待办数据,实现统一待办中心的功能 |
| 工作流与消息中心服务 | 工作流在运行过程中会产生流程消息,工作流会将这些流程消息发送到【消息中心服务】中,消息中心服务将这些消息提供给各应用使用; |
| 工作流与第三方系统 | 流程事件和自动节点通过【连接器】实现对第三方系统的调用,第三方系统也可以通过【工作流API】实现对工作流服务的调用; |
1、workitem等流程结束的时候才移动进history,所有相关等流程结束的时候进历史表
2、Join节点启用finishNumber和finishNumber2.
3、Join和Split的配对关系,作图保存的时候就存到process
4、子流程节点需要再主流程的XML中存在节点引用,不需要每次都去查询sub_process_setting表;
5、复合节点的总的人员数和已经处理的存在case中,a、提交的时候直接判断2个数是否相等来决定是否向下流转,b、流程图中显示的时候直接取Case中的状态,不去查询workitem.鼠标移动上去的时候再去查询workitem.
6、CaselogDetail不需要了,用workitem.actionState,Caselog还是需要,存节点的最后一次状态。
7、运行过程中(尤其是普通的查看和处理),不要解析Process
8、不要出现大文本字段,废除clob、blob类型


查询应用的graphql接口和字段
目前graphql服务是通过rest接口swagger生成的,所以我们需要先查找到对应rest接口,然后按照规则转换为graphql查询字段
- 需要一个graphql客户端(推荐altair)graphql请求查看Chrome插件
- 访问https://service-{环境名}.seeyonv8.com/{应用名}/doc.html, 如https://service-apaas.seeyonv8.com/portal/graphql/doc.html 可以访问到portal应用的rest接口文档
- 访问https://service-{环境名}.seeyonv8.com/{应用名}/graphql/doc.html, 如https://service-apaas.seeyonv8.com/portal/graphql/graphql/doc.html 可以访问到portal应用的graphql文档
- 将接口rest路径转换为graphql字段,查询字段详情
代码中调用grapghql接口
在@seeyon/global中封装了graphql相关api,同时这些api统一处理了全局loading和error,开发时如无特殊需要不用关心loading和异常处理(如果不需要也可以在options里关闭)。
apolloQuery // 原始grapql请求,遗留api,建议使用第三个 queryLoader.load, mutationLoader.load // query和muation请求api,使用这2个api时,接口不会立即发起,会收集本次事件循环内的请求,在下一个事件循环合并发起,因此如果该接口不阻塞渲染或低优先级的,建议使用该api。 queryLoader.loadImmediately, mutationLoader.loadImmediately // query和muation请求api,使用这2个api时接口会立即发起,包含一些优化,如枚举缓存等
中间件
业务平台域名清单
| 类别 | 名称 |
|---|---|
| 平台类 | k8s 容器运维平台 |
| 混沌测试平台 | chaos mesh |
| 分布式文件系统 | minio |
| app 托管平台 | |
| 应用性能追踪平台 | skywalking |
| 监控可视化平台 | grafana |
| 静态代码检查 | Sonar |
| 接口测试平台 | metersphere |
| 前端NPM | npm |
| Code Review | Upsource |
| 前端组件 | |
| 文件管理 | ftp |
| 构建发布平台 | Jenkins |
| 仓库类 | 私有镜像仓库 |
| 代码管理 | gitlab |
| maven私库 | nexus |
| 数据库 | 关系型数据库 |
| NoSql | clickhouse |
| 缓存 | 缓存服务 |
| 中间件 | 应用配置注册中心 |
| 消息服务 | RokectMQ控制台 |
| rocketmq | 10.3.9.84:9876,10.3.9.85:9876 |
| 大数据 | 存储 |
| 服务管理 | zookeeper |
| 文件 | 文件存储回调服务 |
JavaDoc文档管理方式
1、ShowDoc
官网:https://www.showdoc.com.cn/
showdoc安装部署文档:https://blog.star7th.com/2016/05/2007.html
docker方式安装:https://www.showdoc.com.cn/help?page_id=65610
堡垒机
我们的官网: https://www.jumpserver.org/ 我们的文档: https://docs.jumpserver.org/
软件部署脚本
zk
单点部署:https://blog.csdn.net/zhouzhiwengang/article/details/94564102
开机自启动:https://blog.csdn.net/xaccpJ2EE/article/details/105607108
mysql
单点部署:https://blog.csdn.net/mr__bai/article/details/113389185
磁盘分区格式化挂载
安装脚本:https://blog.csdn.net/weixin_29706351/article/details/116639457
https://blog.csdn.net/wj1298250240/article/details/102497785
https://www.cnblogs.com/yaun1498078591/p/11970518.html
nginx
安装文档:https://blog.csdn.net/weixin_38001682/article/details/110953851
软件下载链接:https://blog.csdn.net/wangfei0904306/article/details/55657719
代码规范
插件化
[!TIP] 各设计器实现为可插拔,松耦合的插件,提供自动发现机制。
所有的插件都采用独立工程,facade层共享。
插件通过元数据中心和facade相互调用。
每个插件的代码都放在同一个Project下,包括其Controller+Biz层的所有代码,只能依赖udc-facade。
所有提供给设计师的以配置产生元数据为目的的交互界面均称为设计器。
设计器分为图形设计器(GUI)和配置设计器,图形设计器如页面设计器、流程设计器,配置设计器如实体设计器、参照设计器。
所有为各设计器提供基础能力支撑的基础单元称为组件,如表达式、条件、枚举、配置参数组件。
插件清单
| 插件 | 备注 | 能力 |
|---|---|---|
| 实体 | 合为一个插件后续可进一步解耦 | 领域模型定义,实体、字段、关系、索引、事件、参照 |
| 微流程 | 业务逻辑可视化编排引擎。实现实体业务规则、后端微流程、前端微流程。 | |
| 页面 | 页面、表单设计器。详情、列表、参照页设计。 | |
| 数据流 | 上下游实体数据处理,推单、拉单、回写、合并拆分。 | |
| 扣减规则 | 实现扣减业务场景的规则配置 | |
| 工作流 | udc-bpm | 流程设计器嵌入流程模板列表 |
| 门户 | udc-portal | 空间设计器嵌入栏目设计器嵌入门户模板列表 |
| 数据中台 | udc-cdpbi | 报表设计器嵌入提供图表组件报表模板列表 |
| 用户中心 | udc-user | 角色定义权限标记 |
插件接入须知
- 插件定义 插件的能力均来源自中台,因此目前插件需被其他插件依赖的能力的接口都放在各自的facade中,如bpm-facade、portal-facade。
- 工程 在udc-plugins工程下建立一个module,形如udc-bpm、udc-portal,所有的实现代码都放到该工程中。 新建的工程告知udc,需要在udc-assemble中装配(后续调整为动态发现)
- 一致性校验实现 插件只要引用了其他插件的元数据,就需要提供一个实现,校验当前插件的设计的完整性和一致性,接收其他插件的变更检查对自身设计的影响。
- 设计器接入 定义要接入的菜单的描述信息,如菜单的标题、菜单的URL。
- 能力接入 如定义新的应用类型,需实现应用类型的扩展接口 增加页面类型实现页面类型扩展接口。 增加新控件,按照控件的开发规范,控件随插件发布但不从属于插件。
- 列表接入 如工作流、门户、报表均将列表信息存储在设计中心,作为索引,建立到具体能力微服务的具体详情映射。
- 元数据接入 插件需将自己的元数据注册到平台的元数据中心。 各插件之间元数据均通过元数据中心访问和plugin api访问。
- 草稿 所有能被外部引用的元数据变更时均需更新元数据中心,让引用能够感知到。
- 另存 实现导入、导出接口,支持将设计另存为新应用数据完整。
- 发布 实现发布接口,按照平台规范生成预置数据和元数据。
UDC
控制台开启开发工具
localStorage.setItem('ENABLE_DEVTOOLS', 'true')
点击开发工具里面的对应的按钮 会在控制台消息打印值
使用完后控制台关闭开发工具
localStorage.setItem('ENABLE_DEVTOOLS', 'false')