跳转至

服务端源码说明

包结构说明

结构图

%%{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

设计时存储对象均实现 DesignTimeSerializableAbstractView 的子类为各类视图,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 / ImageUploadFieldTab 下有 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