服务端源码说明¶
包结构说明¶
结构图¶
%%{init: {"flowchart": {"nodeSpacing": 12, "rankSpacing": 28, "padding": 4}}}%%
flowchart LR
runtime[obpm-runtime] -.-> authtime[obpm-authtime]
designer[obpm-designer] & authtime & kms[obpm-kms] -.-> core[obpm-core]
core -.-> common[obpm-common]
signon[obpm-signon] & qms[obpm-qms] & message[obpm-message] & gateway[obpm-gateway] -.-> common
说明
obpm-common**模块:基础包。包含jwt加密、IUser接口等基本功能;
obpm-core**模块:核心包。包含初始化功能、授权时DAO、授权时Service、设计时DAO、设计时Service、运行时DAO、运行时Service等;
obpm-authtime**模块:授权时实现。包含授权时Controller等;
obpm-runtime**模块:运行时实现。包含运行时Controller等;
obpm-message**模块:消息功能实现。包含消息DAO、消息Service、消息Controller等;
obpm-gateway**模块:网关功能实现。实现API路由分发、JWT权鉴等;
obpm-signon**模块:登录功能实现。包含登录DAO、登录Service、登录Controller等;
obpm-designer**模块:设计时功能实现。包含设计时Controller。设计时的静态页面打包在obpm-designer中;
obpm-kms**模块:知识文档功能实现。包含知识文档DAO、知识文档Service、知识文档Controller等;
obpm-qms**模块:问卷调查功能实现;
obpm-upgrade**模块:升级功能模块实现;
obpm-converter**模块:文档转换功能实现。
Maven说明¶
MyApps采用Maven工程结构,包括:
工程文件pom.xml片段..
…….
<modules>
<module>obpm-common</module>
<module>obpm-core</module>
<module>obpm-authtime</module>
<module>obpm-runtime</module>
<module>obpm-runtime-war</module>
<module>obpm-runtime-consul</module>
<module>obpm-runtime-nacos</module>
<module>obpm-runtime-eureka</module>
<module>obpm-message</module>
<module>obpm-message-war</module>
<module>obpm-message-consul</module>
<module>obpm-message-nacos</module>
<module>obpm-email</module>
<module>obpm-email-consul</module>
<module>obpm-email-nacos</module>
<module>obpm-email-war</module>
<module>obpm-gateway</module>
<module>obpm-gateway-consul</module>
<module>obpm-gateway-nacos</module>
<module>obpm-gateway-eureka</module>
<module>obpm-signon</module>
<module>obpm-signon-consul</module>
<module>obpm-signon-eureka</module>
<module>obpm-signon-nacos</module>
<module>obpm-signon-war</module>
<module>obpm-designer</module>
<module>obpm-designer-consul</module>
<module>obpm-designer-nacos</module>
<module>obpm-designer-war</module>
<module>obpm-kms</module>
<module>obpm-kms-consul</module>
<module>obpm-kms-nacos</module>
<module>obpm-kms-war</module>
<module>obpm-qms</module>
<module>obpm-qms-consul</module>
<module>obpm-qms-nacos</module>
<module>obpm-qms-war</module>
<module>obpm-pms</module>
<module>obpm-static-war</module>
<module>obpm-upgrade</module>
<module>obpm-converter</module>
</modules>
……
模块功用说明¶
参见:【微服务架构说明】
基本类¶
classDiagram
direction TB
class IUser {
<<interface>>
}
class DesignTimeSerializable {
<<interface>>
}
class CommonDAO {
<<interface>>
}
class DesignTimeService {
<<interface>>
}
class FileSystemDesignTimeSerializable
class ParamsTable
class DataPackage~E~
class AbstractDesignTimeService {
<<abstract>>
}
DesignTimeSerializable <|.. FileSystemDesignTimeSerializable
DesignTimeService <|.. AbstractDesignTimeService
说明
IUser——用户接口,WebUser实现IUser接口
DesignTimeSerializable——设计时存储对象接口
CommonDAO——设计时DAO基础接口
ParamsTable——参数表,通常用作Controller和Service参数传递
DesignTimeService——设计时Service基础接口
AbstractDesignTimeService——设计时Service接口基本实现抽象类
FileSystemDesignTimeSerializable——设计时存储对象接口基本实现抽象类
DataPackage——返回结果集,包含数据分页信息和集合
系统表初始化¶
%%{init: {"flowchart": {"nodeSpacing": 10, "rankSpacing": 24, "padding": 4}}}%%
flowchart TB
L1[ApplicationContextEventListener] -.-> M[DesignTimeServiceManager]
L2[ApplicationDesignTimeServiceImpl] -.-> M
M -.-> Abstract["«abstract» AbstractApplicationInitDAO"]
Abstract -.-> layer1
Abstract -.-> layer2
Abstract -.-> layer3
subgraph layer1[" "]
direction LR
DB2["DB2"]
OceanBase["OceanBase"]
Hsqldb["Hsqldb"]
end
subgraph layer2[" "]
direction LR
DmSQL["DmSQL"]
PostgreSQL["PostgreSQL"]
Oracle["Oracle"]
end
subgraph layer3[" "]
direction LR
KingBase["KingBase"]
Mysql["Mysql"]
Mssql["Mssql"]
end
说明
MyApps的动态表单功能会将表单的字段初始化到关系型数据库的物理表中。初始化入口为:
图中数据库节点为 *ApplicationInitDAO 的简写(如 Mysql 表示 MysqlApplicationInitDAO)。
系统启动时执行——系统会检查initTable.log文件是否存在,当不存在时才执行。程序入口为:ApplicationContextEventListener
表单保存时执行——系统会在表单创建或表单修改时执行系统表的修改。程序入口为:ApplicationDesignTimeServiceImpl
设计时DAO相关¶
在MyApps中,DesignerTimeDAO的作用是存储软件(应用)配置信息(表单、视图、数据源等)。通常是将配置信息存储在文件系统中。类图如下:
%%{init: {"flowchart": {"nodeSpacing": 10, "rankSpacing": 24, "padding": 4}}}%%
flowchart TB
ADS["«abstract» AbstractDesignTimeService"] -.-> Common["«interface» CommonDAO"]
FS[FileSystemDesignTimeSerializable]
Common -.-> r1 & r2 & r3 & r4 & r5 & r6 & r7 & r8
subgraph r1[" "]
direction LR
SuperUser["SuperUser"]
SummaryCfg["SummaryCfg"]
Versions["Versions"]
Task["Task"]
end
subgraph r2[" "]
direction LR
ValidateRepo["ValidateRepository"]
FlowParamter["FlowParamter"]
View["View"]
BillDefi["BillDefi"]
end
subgraph r3[" "]
direction LR
Column["Column"]
StyleRepo["StyleRepository"]
PageWidget["PageWidget"]
Role["Role"]
end
subgraph r4[" "]
direction LR
Report["Report"]
Resource["Resource"]
StateLabel["StateLabel"]
CrossReport["CrossReport"]
end
subgraph r5[" "]
direction LR
ApiGroup["ApiGroup"]
Link["Link"]
Application["Application"]
DataSource["DataSource"]
end
subgraph r6[" "]
direction LR
Repository["Repository"]
Activity["Activity"]
MultiLanguage["MultiLanguage"]
Page["Page"]
end
subgraph r7[" "]
direction LR
ReportGroup["ReportGroup"]
IMPMapping["IMPMappingConfig"]
Eip["Eip"]
Module["Module"]
end
subgraph r8[" "]
direction LR
EchartsReport["EchartsReport"]
Chart["Chart"]
Api["Api"]
Form["Form"]
end
Form -.-> FormBind["FormDAO~Form~"]
FormBind -.-> FSForm["FileSystemFormDAO"]
图中节点为 *DAO 简写(如 View 表示 ViewDAO),对应实现均为 FileSystem*DAO(如 FileSystemViewDAO)。FormDAO 经 <<bind>> E->Form 绑定为 FormDAO~Form~ 后再由 FileSystemFormDAO 实现。
说明
CommonDAO——设计时对象访问接口,是所有设计时DAO的基础接口。
AbstractFSDesignTimeDAO——抽象的文件DAO接口,所有的DAO实现类均集成自此。
FileSystemDesignTimeSerializable——文件序列化对象,所有FileObject均集成自此。
SuperUserDAO——超级用户存储接口
SummaryCfgDAO——表单摘要存储接口
VersionsDAO——已废弃
TaskDAO——定时任务存储接口
ValidateRepositoryDAO——校验库存储接口
FlowParamterDAO——流程变量存储接口
ViewDAO——视图存储接口
BillDefiDAO——流程定义存储接口
ColumnDAO——视图列存储接口
StyleRepositoryDAO——样式库存储接口
PageWidgetDAO——页面小组件存储接口
RoleDAO——角色存储接口
ReportDAO——报表存储接口
ResourceDAO——资源存储接口
StateLabelDAO——状态标签存储接口
CrossReportDAO——交叉报表存储接口(已废弃)
ApiGroupDAO——API接口存储接口
LinkDAO——链接存储接口(已废弃)
ApplicationDAO——软件(应用)存储接口
DataSourceDAO——数据源存储接口
RepositoryDAO——宏语言库存储接口
ActivityDAO——按钮存储接口
MultiLanguageDAO——多语言标签存储接口
PageDAO——页面存储接口
ReportGroupDAO——报表组存储接口
IMPMappingConfigDAO——Excel导入导出存储接口
EipDAO——Eip存储接口
ModuleDAO——模块存储接口
EchartsReportDAO——图标存储接口
ChartDAO——图表存储接口
ApiDAO——API中心存储接口
设计时VO相关¶
%%{init: {"flowchart": {"nodeSpacing": 10, "rankSpacing": 24, "padding": 4}}}%%
flowchart TB
DTS["«interface» DesignTimeSerializable"]
DTS -.-> r1 & r2 & r3 & r4 & r5 & r6
DTS --> AbsView["«abstract» AbstractView"]
subgraph r1[" "]
direction LR
ApiGroup["ApiGroup"]
ResourceVO["ResourceVO"]
Activity["Activity"]
RepositoryVO["RepositoryVO"]
end
subgraph r2[" "]
direction LR
SuperUserVO["SuperUserVO"]
SummaryCfgVO["SummaryCfgVO"]
Module["Module"]
StyleRepositoryVO["StyleRepositoryVO"]
end
subgraph r3[" "]
direction LR
EchartsReportVO["EchartsReportVO"]
FlowParameter["FlowParameter"]
EipVO["EipVO"]
DataSource["DataSource"]
end
subgraph r4[" "]
direction LR
BillDefiVO["BillDefiVO"]
Chart["Chart"]
IMPMappingConfigVO["IMPMappingConfigVO"]
Application["Application"]
end
subgraph r5[" "]
direction LR
Task["Task"]
Role["Role"]
ApiConfig["ApiConfig"]
PageWidget["PageWidget"]
end
subgraph r6[" "]
direction LR
MultiLanguage["MultiLanguage"]
StateLabel["StateLabel"]
ValidateRepositoryVO["ValidateRepositoryVO"]
end
AbsView -.-> v1 & v2
AbsView -.-> Column & FilterExpression & ExcelFileBuilder
subgraph v1[" "]
direction LR
TreeView["TreeView"]
GanttView["GanttView"]
ListView["ListView"]
end
subgraph v2[" "]
direction LR
CalendarView["CalendarView"]
CollapsibleView["CollapsibleView"]
MapView["MapView"]
end
subgraph unlinked["未关联类"]
direction LR
CheckinVO["CheckinVO"]
CrossReportVO["CrossReportVO"]
Versions["Versions"]
LinkVO["LinkVO"]
Page["Page"]
end
设计时存储对象均实现 DesignTimeSerializable;AbstractView 的子类为各类视图,Column / FilterExpression / ExcelFileBuilder 依赖 AbstractView。
说明
ApiGroup——API中心分组
ResourceVO——菜单资源
Activity——按钮
RepositoryVO——宏语言库
SuperUserVO——超级用户
SummaryCfgVO——表单摘要
Module——模块
StyleRepositoryVO——样式库
EchertsReportVO——图表库
FlowParameter——流程变量
EipVO——EIP企业信息集成处理
DataSource——数据源
BillDefiVO——流程定义
Chart——(已废弃)
IMPMappingConfigVO——Excel可视化导入
Application——软件(应用)
Task——定时任务
Role——角色
ApiConfig——API中心定义
PageWidget——页面小组件
MultiLanguage——多语言标签
StateLabel——状态标签
ValidateRepositoryVO——检验库
AbstractView——视图抽象类
GanttView——甘特视图
TreeView——树形视图
ListView——列表视图
CalendarView——日历视图
CollapsibleView——折叠视图
MapView——地图视图
设计时Service相关¶
classDiagram
direction TB
class DesignTimeService {
<<interface>>
}
class DTS_StateLabel["DesignTimeService~StateLabel~"]
class DTS_PageWidget["DesignTimeService~PageWidget~"]
class DTS_Task["DesignTimeService~Task~"]
class DTS_FlowParameter["DesignTimeService~FlowParameter~"]
class DTS_Chart["DesignTimeService~Chart~"]
class DTS_IMP["DesignTimeService~IMPMappingConfigVO~"]
class DTS_ApiGroup["DesignTimeService~ApiGroup~"]
class DTS_Eip["DesignTimeService~EipVO~"]
class DTS_Module["DesignTimeService~Module~"]
class DTS_Resource["DesignTimeService~ResourceVO~"]
class DTS_Page["DesignTimeService~Page~"]
class DTS_ReportGroup["DesignTimeService~ReportGroup~"]
class DTS_Report["DesignTimeService~Report~"]
class DTS_Form["DesignTimeService~Form~"]
class DTS_View["DesignTimeService~AbstractView~"]
class DTS_Api["DesignTimeService~ApiConfig~"]
class DTS_Role["DesignTimeService~Role~"]
class DTS_MultiLanguage["DesignTimeService~MultiLanguage~"]
class DTS_Application["DesignTimeService~Application~"]
class DTS_Repository["DesignTimeService~RepositoryVO~"]
class DTS_DataSource["DesignTimeService~DataSource~"]
class DTS_Activity["DesignTimeService~Activity~"]
class DTS_SummaryCfg["DesignTimeService~SummaryCfgVO~"]
class DTS_Column["DesignTimeService~Column~"]
class DTS_Style["DesignTimeService~StyleRepositoryVO~"]
class DTS_BillDefi["DesignTimeService~BillDefiVO~"]
class DTS_Validate["DesignTimeService~ValidateRepositoryVO~"]
DesignTimeService <|.. DTS_StateLabel : "<<bind>> T->StateLabel"
DesignTimeService <|.. DTS_PageWidget : "<<bind>> T->PageWidget"
DesignTimeService <|.. DTS_Task : "<<bind>> T->Task"
DesignTimeService <|.. DTS_FlowParameter : "<<bind>> T->FlowParameter"
DesignTimeService <|.. DTS_Chart : "<<bind>> T->Chart"
DesignTimeService <|.. DTS_IMP : "<<bind>> T->IMPMappingConfigVO"
DesignTimeService <|.. DTS_ApiGroup : "<<bind>> T->ApiGroup"
DesignTimeService <|.. DTS_Eip : "<<bind>> T->EipVO"
DesignTimeService <|.. DTS_Module : "<<bind>> T->Module"
DesignTimeService <|.. DTS_Resource : "<<bind>> T->ResourceVO"
DesignTimeService <|.. DTS_Page : "<<bind>> T->Page"
DesignTimeService <|.. DTS_ReportGroup : "<<bind>> T->ReportGroup"
DesignTimeService <|.. DTS_Report : "<<bind>> T->Report"
DesignTimeService <|.. DTS_Form : "<<bind>> T->Form"
DesignTimeService <|.. DTS_View : "<<bind>> T->AbstractView"
DesignTimeService <|.. DTS_Api : "<<bind>> T->ApiConfig"
DesignTimeService <|.. DTS_Role : "<<bind>> T->Role"
DesignTimeService <|.. DTS_MultiLanguage : "<<bind>> T->MultiLanguage"
DesignTimeService <|.. DTS_Application : "<<bind>> T->Application"
DesignTimeService <|.. DTS_Repository : "<<bind>> T->RepositoryVO"
DesignTimeService <|.. DTS_DataSource : "<<bind>> T->DataSource"
DesignTimeService <|.. DTS_Activity : "<<bind>> T->Activity"
DesignTimeService <|.. DTS_SummaryCfg : "<<bind>> T->SummaryCfgVO"
DesignTimeService <|.. DTS_Column : "<<bind>> T->Column"
DesignTimeService <|.. DTS_Style : "<<bind>> T->StyleRepositoryVO"
DesignTimeService <|.. DTS_BillDefi : "<<bind>> T->BillDefiVO"
DesignTimeService <|.. DTS_Validate : "<<bind>> T->ValidateRepositoryVO"
DTS_StateLabel <|-- StateLabelService
DTS_PageWidget <|-- PageWidgetDesignTimeService
DTS_Task <|-- TaskDesignTimeService
DTS_FlowParameter <|-- FlowParameterDesignTimeService
DTS_Chart <|-- ChartDesignTimeService
DTS_IMP <|-- IMPMappingConfigDesignTimeService
DTS_ApiGroup <|-- ApiGroupDesignTimeService
DTS_Eip <|-- EipDesignTimeService
DTS_Module <|-- ModuleDesignTimeService
DTS_Resource <|-- ResourceDesignTimeService
DTS_Page <|-- PageDesignTimeService
DTS_ReportGroup <|-- ReportGroupDesignTimeService
DTS_Report <|-- ReportDesignTimeService
DTS_Report <|-- SuperUserDesignTimeService
DTS_Report <|-- OpenQueryService
DTS_Form <|-- FormDesignTimeService
DTS_View <|-- ViewDesignTimeService
DTS_Api <|-- ApiDesignService
DTS_Role <|-- RoleDesignTimeService
DTS_MultiLanguage <|-- MultiLanguageService
DTS_Application <|-- ApplicationDesignTimeService
DTS_Repository <|-- RepositoryDesignTimeService
DTS_DataSource <|-- DataSourceDesignTimeService
DTS_Activity <|-- ActivityDesignTimeService
DTS_SummaryCfg <|-- SummaryCfgDesignTimeService
DTS_Column <|-- ColumnDesignTimeService
DTS_Style <|-- StyleRepositoryDesignTimeService
DTS_BillDefi <|-- BillDefiDesignTimeService
DTS_Validate <|-- ValidateRepositoryDesignTimeService
授权时DAO相关¶
classDiagram
direction TB
class HibernateBaseDAO
class IAuthTimeDAO {
<<interface>>
}
class FieldExtendsDAO {
<<interface>>
}
class UserDAO {
<<interface>>
}
class LogDAO {
<<interface>>
}
class OperationDAO {
<<interface>>
}
class DepartmentDAO {
<<interface>>
}
class DomainDAO {
<<interface>>
}
class UserDefinedDAO {
<<interface>>
}
class UserGroupDAO {
<<interface>>
}
class UserGroupSetDAO {
<<interface>>
}
class CalendarDAO {
<<interface>>
}
class StandardDayDAO {
<<interface>>
}
class SpecialDayDAO {
<<interface>>
}
HibernateBaseDAO <|.. IAuthTimeDAO
IAuthTimeDAO <|-- FieldExtendsDAO
IAuthTimeDAO <|-- DepartmentDAO
IAuthTimeDAO <|-- DomainDAO
IAuthTimeDAO <|-- UserDefinedDAO
IAuthTimeDAO <|-- UserGroupDAO
IAuthTimeDAO <|-- UserGroupSetDAO
IAuthTimeDAO <|-- CalendarDAO
IAuthTimeDAO <|-- StandardDayDAO
IAuthTimeDAO <|-- SpecialDayDAO
HibernateBaseDAO <|-- HibernateFieldExtendsDAO
HibernateBaseDAO <|-- HibernateUserDAO
HibernateBaseDAO <|-- HibernateLogDAO
HibernateBaseDAO <|-- HibernateOperationDAO
HibernateBaseDAO <|-- HibernateDepartmentDAO
HibernateBaseDAO <|-- HibernateDomainDAO
HibernateBaseDAO <|-- HibernateUserDefinedDAO
HibernateBaseDAO <|-- HibernateUserGroupDAO
HibernateBaseDAO <|-- HibernateUserGroupSetDAO
HibernateBaseDAO <|-- HibernateCalendarDAO
HibernateBaseDAO <|-- HibernateStandardDayDAO
HibernateBaseDAO <|-- HibernateSpecialDayDAO
FieldExtendsDAO <|.. HibernateFieldExtendsDAO
UserDAO <|.. HibernateUserDAO
LogDAO <|.. HibernateLogDAO
OperationDAO <|.. HibernateOperationDAO
DepartmentDAO <|.. HibernateDepartmentDAO
DomainDAO <|.. HibernateDomainDAO
UserDefinedDAO <|.. HibernateUserDefinedDAO
UserGroupDAO <|.. HibernateUserGroupDAO
UserGroupSetDAO <|.. HibernateUserGroupSetDAO
CalendarDAO <|.. HibernateCalendarDAO
StandardDayDAO <|.. HibernateStandardDayDAO
SpecialDayDAO <|.. HibernateSpecialDayDAO
授权时VO相关¶
classDiagram
direction TB
class AuthtimeValueObject {
<<abstract>>
}
AuthtimeValueObject <|-- BaseDay
AuthtimeValueObject <|-- UserGroupVO
AuthtimeValueObject <|-- OperationVO
AuthtimeValueObject <|-- LogVO
AuthtimeValueObject <|-- FieldExtendsVO
AuthtimeValueObject <|-- DomainVO
AuthtimeValueObject <|-- BaseUser
AuthtimeValueObject <|-- CalendarVO
AuthtimeValueObject <|-- UserGroupSet
AuthtimeValueObject <|-- DepartmentVO
BaseDay <|-- StandardDayVO
BaseDay <|-- SpecialDayVO
BaseUser <|-- UserVO
BaseUser <|-- ObpmSystem
class DayPart
class RoleDepartmentVO
class UserDepartmentRoleSet
授权时Service相关¶
classDiagram
direction TB
class AuthTimeService {
<<interface>>
}
class ATS_Dept["AuthTimeService~DepartmentVO~"]
class ATS_Domain["AuthTimeService~DomainVO~"]
class ATS_Field["AuthTimeService~FieldExtendsVO~"]
class ATS_UserGroup["AuthTimeService~UserGroupVO~"]
class ATS_UserGroupSet["AuthTimeService~UserGroupSet~"]
class ATS_SpecialDay["AuthTimeService~SpecialDayVO~"]
class ATS_StandardDay["AuthTimeService~StandardDayVO~"]
class ATS_User["AuthTimeService~UserVO~"]
class ATS_Calendar["AuthTimeService~CalendarVO~"]
class ATS_UserDefined["AuthTimeService~UserDefined~"]
AuthTimeService <|.. ATS_Dept : "<<bind>> E->DepartmentVO"
AuthTimeService <|.. ATS_Domain : "<<bind>> E->DomainVO"
AuthTimeService <|.. ATS_Field : "<<bind>> E->FieldExtendsVO"
AuthTimeService <|.. ATS_UserGroup : "<<bind>> E->UserGroupVO"
AuthTimeService <|.. ATS_UserGroupSet : "<<bind>> E->UserGroupSet"
AuthTimeService <|.. ATS_SpecialDay : "<<bind>> E->SpecialDayVO"
AuthTimeService <|.. ATS_StandardDay : "<<bind>> E->StandardDayVO"
AuthTimeService <|.. ATS_User : "<<bind>> E->UserVO"
AuthTimeService <|.. ATS_Calendar : "<<bind>> E->CalendarVO"
AuthTimeService <|.. ATS_UserDefined : "<<bind>> E->UserDefined"
ATS_Dept <|-- DepartmentProcess
ATS_Domain <|-- DomainProcess
ATS_Field <|-- FieldExtendsProcess
ATS_UserGroup <|-- UserGroupProcess
ATS_UserGroupSet <|-- UserGroupSetProcess
ATS_SpecialDay <|-- SpecialDayProcess
ATS_StandardDay <|-- StandardDayProcess
ATS_User <|-- UserProcess
ATS_Calendar <|-- CalendarProcess
ATS_UserDefined <|-- UserDefinedProcess
class SysConfigProcess
运行时文档解析相关¶
%%{init: {"flowchart": {"nodeSpacing": 10, "rankSpacing": 24, "padding": 4}}}%%
flowchart TB
RTS["«interface» RunTimeService~Form~"] --> FTP["«interface» FormTableProcess"]
FTP --> FTPB[FormTableProcessBean]
FTPB -.-> Form
TP[TemplateParser] -.-> Form
TP -.-> FE["«interface» FormElement"]
TPV[TemplateProcessVisitor] -.-> TP
TNPV[TemplateNewProcessVisitor] -.-> TP
Form --> ReplayForm
FE --> Textpart
FE --> FormField
FormField -.-> f1 & f2 & f3 & f4 & f5 & f6 & f7 & f8 & f9 & f10 & f11
subgraph f1[" "]
direction LR
No["No"]
Checkbox["Checkbox"]
Select["Select"]
DataTree["DataTree"]
end
subgraph f2[" "]
direction LR
UserSelect["UserSelect"]
Radio["Radio"]
User["User"]
HandWriting["HandWriting"]
end
subgraph f3[" "]
direction LR
Button["Button"]
Word["Word"]
ValueList["ValueList"]
KmsData["KmsData"]
end
subgraph f4[" "]
direction LR
AbstractUpload["AbstractUpload"]
ViewDialog["ViewDialog"]
Split["Split"]
SelectAbout["SelectAbout"]
end
subgraph f5[" "]
direction LR
Date["Date"]
OnLineTakePhoto["onLineTakePhoto"]
GenericWord["GenericWord"]
Null["Null"]
end
subgraph f6[" "]
direction LR
Map["Map"]
Suggest["Suggest"]
FileManager["FileManager"]
Textarea["Textarea"]
end
subgraph f7[" "]
direction LR
Department["Department"]
HTMLEditor["HTMLEditor"]
WeixinRecord["WeixinRecord"]
Input["Input"]
end
subgraph f8[" "]
direction LR
Survey["Survey"]
Include["Include"]
Reminder["Reminder"]
WeixinGps["WeixinGps"]
end
subgraph f9[" "]
direction LR
FlowReminderHistory["FlowReminderHistory"]
Ocr["Ocr"]
Comment["Comment"]
AttachmentUploadToDB["AttachmentUploadToDataBase"]
end
subgraph f10[" "]
direction LR
FlowHistory["FlowHistory"]
InformationFeedback["InformationFeedback"]
Calctext["Calctext"]
Tab["Tab"]
end
subgraph f11[" "]
direction LR
QRCode["QRCode"]
ImageUploadToDB["ImageUploadToDataBase"]
TreeDepartment["TreeDepartment"]
end
AbstractUpload --> AttachmentUpload["AttachmentUpload"]
AbstractUpload --> ImageUpload["ImageUpload"]
Suggest -.-> OptionItem
Tab --> TabNormal
Tab --> TabCollapse
图中字段节点为 *Field 简写(如 Checkbox 表示 CheckboxField)。AbstractUpload 下有 AttachmentUploadField / ImageUploadField;Tab 下有 TabNormal / TabCollapse。
说明
TemplateParser——
TemplateProcessVisitor——
TemplateNewProcessVisitor——
Form——
FormElement——
FormField——
NoField——
CheckboxField——
SelectField——
DataTreeField——
RadioField——
UserSelectField——
UserField——
HandWritingField——
ButtonField——
WordField——
Textpart——
ValueListField——
KmsDataField——
AbstractUploadField——
AttachmentUploadField——
ImageUploadField——
ViewDialogField——
SplitField——
SelectAboutField——
DateField——
onLineTakePhotoField——
GenericWordField——
NullField——
MapField——
SuggestField——
FileManagerField——
TextareaField——
DepartmentField——
HTMLEditorField——
WeixinRecordField——
InputField——
SurveyField——
IncludeField——
ReminderField——
WeixinGpsField——
FlowReminderHistoryField,
OcrField——
CommentField——
AttachmentUploadToDataBaseField——
FlowHistoryField——
InformationFeedbackField——
CalctextField——
TabField——
QRCodeField——
ImageUploadToDataBaseField——
TreeDepartmentField——
运行时文档存储相关¶
%%{init: {"flowchart": {"nodeSpacing": 10, "rankSpacing": 24, "padding": 4}}}%%
flowchart TB
DocDAO["«interface» DocumentDAO"] --> AbsDoc["«abstract» AbstractDocStaticTblDAO"]
AbsDoc -.-> DP["DataPackage~Document~"]
AbsDoc -.-> d1 & d2 & d3
subgraph d1[" "]
direction LR
D_Hsqldb["Hsqldb"]
D_Mysql["Mysql"]
D_DB2["DB2"]
end
subgraph d2[" "]
direction LR
D_DmSQL["DmSQL"]
D_PostgreSQL["PostgreSQL"]
D_KingBase["KingBase"]
end
subgraph d3[" "]
direction LR
D_Oracle["Oracle"]
D_OceanBase["OceanBase"]
D_Mssql["Mssql"]
end
FormDAO["«interface» FormTableDAO"] --> AbsForm["«abstract» AbstractFormTableDAO"]
AbsForm -.-> t1 & t2 & t3
subgraph t1[" "]
direction LR
T_Hsqldb["Hsqldb"]
T_Mssql["Mssql"]
T_Mysql["Mysql"]
end
subgraph t2[" "]
direction LR
T_PostgreSQL["PostgreSQL"]
T_OceanBase["OceanBase"]
T_KingBase["KingBase"]
end
subgraph t3[" "]
direction LR
T_Oracle["Oracle"]
T_DmSQL["DmSQL"]
T_DB2["DB2"]
end
上半部分节点为 *DocStaticTblDAO 简写;下半部分为 *FormTableDAO 简写(如 Mysql 分别表示 MysqlDocStaticTblDAO / MysqlFormTableDAO)。
运行时流程解析相关¶
classDiagram
direction TB
class Element {
<<abstract>>
}
class PaintElement {
<<abstract>>
}
XMLOperate ..> FlowDiagram
ImageUtil ..> FlowDiagram
FlowDiagram ..> OGraphics
FlowDiagram ..> PaintElement
Element <|-- NodeActivity
Element <|-- Actor
Element <|-- PaintElement
PaintElement <|-- Relation
PaintElement <|-- Node
Node <|-- AutoNode
Node <|-- StartNode
Node <|-- SuspendNode
Node <|-- SubFlow
Node <|-- CompleteNode
Node <|-- ManualNode
Node <|-- EndNode
说明:
XMLOperate——负责将流程XML模型转换为Java Object模型
FlowDiagram——流程图的Java Object模型描述。流程图的基本实现。
Element——流程基础元素
Node——节点抽象类
AutoNode——自动节点
StartNode——启动节点
SuspendNode——挂起节点
EndNode——结束节点
ManualNode——人工节点
CompleteNode——完成节点
SubFlow——子流程节点
运行时流程运行相关¶
classDiagram
direction TB
class RunTimeService {
<<interface>>
}
class FlowRuntimeService {
<<interface>>
}
class RTS_Circulator["RunTimeService~Circulator~"]
class RTS_RelationHIS["RunTimeService~RelationHIS~"]
class RTS_NodeRT["RunTimeService~NodeRT~"]
class RTS_Reminder["RunTimeService~FlowReminderHistory~"]
RunTimeService <|.. RTS_Circulator : "<<bind>> E->Circulator"
RunTimeService <|.. RTS_RelationHIS : "<<bind>> E->RelationHIS"
RunTimeService <|.. RTS_NodeRT : "<<bind>> E->NodeRT"
RunTimeService <|.. RTS_Reminder : "<<bind>> E->FlowReminderHistory"
RTS_Circulator <|-- CirculatorProcess
RTS_RelationHIS <|-- FlowHistoryService
RTS_NodeRT <|-- TaskInfoProcess
RTS_Reminder <|-- FlowReminderHistoryProcess
CirculatorProcess <|.. CirculatorProcessBean
FlowHistoryService <|.. FlowHistoryServiceImpl
TaskInfoProcess <|.. TaskInfoProcessBean
FlowReminderHistoryProcess <|.. FlowReminderHistoryProcessBean
CirculatorProcessBean ..> Circulator
FlowHistoryServiceImpl ..> RelationHIS
TaskInfoProcessBean ..> NodeRT
FlowReminderHistoryProcessBean ..> FlowReminderHistory
StateMachine ..> FlowRuntimeService
FlowRuntimeService <|.. FlowRuntimeServiceImpl
FlowRuntimeServiceImpl ..> ActorHIS
FlowRuntimeServiceImpl ..> ActorRT
FlowRuntimeServiceImpl ..> CoActorRT
FlowRuntimeServiceImpl ..> FlowHistory
FlowRuntimeServiceImpl ..> FlowStateRT
FlowRuntimeServiceImpl ..> FlowHistoryVO
说明:
StateMachine——流程状态机。实现流程状态的变迁,启动->运行,运行->运行,运行->结束等
FlowRuntimeServiceImpl——流程运行处理Service。驱动流程存储机制
FlowHistoryServiceImpl——流程历史处理Service。
文档更新时间: 2023-09-12 10:33 作者:admin