YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统

今天有空更新博客才发现快一年没有写博客了,不得不感叹时间过得真快。过去的一年确实也挺忙的,在此祝各位博友们新的一年工作顺利。权限模型在过去一年进行了不少的升级,主要集成了公文流转系统、多家手机短信接口的集成、CMS动态路由的实现、以及Hangfire消息队列与任务调度组件的集成等,本章主要对公文流转系统进行总体的介绍,感兴趣的可进一步交流或访问http://pjdemo.yellbuy.com

公文流转系统是国内企事业单位的普遍需求,具有很强的中国特色。通常其核心需求如下:

  • 具备公文流程审批,流程支持多人并批(有时需要考虑审批人的权重)、打回当前审批人之前任意人(包括起草人)
  • 有权限的审批人能在审批过程中能前插、后插审批人进行审批,审批人可提前浏览本人将审批的公文。
  • 每个公文流程可设置传阅人,传阅人只能看流程的公文信息,不参与审批
  • 公司(子公司)可分别创建不同的审批流程,根据公司(子公司)、公文类别来确定流程
  • 公文起草和审批时能上传多个附件
  • 菜单中有起草公文、已发公文、送阅公文、待办公文、已批公文、公文一览等。

权限模型以组织机构为中心,更加符合国内实际情况,也非常适合公文流转系统的开发。在权限模型框架的基础之上,能对模块、按钮、数据权限进行全方位的控制,可对各个组织不同类型的权限进行授权和管理。使用权限模型,就需要根据权限模型的开发规范对数据库进行建模,其中需要进行数据权限控制的业务功能模块需要具有(:DeleteStatus,CreatedFID和CreatedFName三个默认的字段)。如下为公文流转系统的数据库设计表结构:

WorkflowTemplate - 公文流程模板


表名


WorkflowTemplate


描述


公文流程模板


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36




标识


2


Code


nvarchar


255



编码


3


Name


nvarchar


255



名称


4


WorkflowType


nvarchar


255



类型


5


Value


nvarchar


-1




6


FormTemplate


nvarchar


-1



表单模板


7


LargeImage


nvarchar


-1



保留


8


SmallImage


nvarchar


-1



保留


9


Description


nvarchar


-1



描述


10


Comment


nvarchar


-1



备注


11


QuanPin


nvarchar


-1



保留


12


JianPin


nvarchar


255



保留


13


ExtensionDataType


nvarchar


255



扩展数据类型的名称


14


ExtensionData


nvarchar


-1



扩展数据类型存储值


15


Status


int



状态(无效,有效,预定义)


16


DisplayOrder


decimal



显示顺序


17


CreatedFID


nvarchar


2048



创建者完整标识路径


18


CreatedFName


nvarchar


2048



创建者完整名称路径


19


CreatedDate


datetime



创建时间


20


LastUpdatedFID


nvarchar


2048



最后修改人完整标识路径


21


LastUpdatedFName


nvarchar


2048



最后修改人完整名称路径


22


LastUpdatedDate


datetime



最后修改时间


23


DeleteStatus


int



删除状态


24


Owner


nvarchar


255



Owner


25


ApplicationName


nvarchar


255



ApplicationName

                 

WorkflowCreator - 流程所允许发起的组织


表名


WorkflowCreator


描述


流程所允许发起的组织


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36




标识


2


WorkflowId


nvarchar


36




流程模板标识


3


OrgFID


nvarchar


2048



可发起人组织标识全路径


4


OrgFName


nvarchar


2048



可发起人组织名称全路径


5


CreatedFID


nvarchar


2048



创建人组织标识全路径


6


CreatedFName


nvarchar


2048



创建人组织名称全路径


7


Version


int



版本号


8


ApplicationName


nvarchar


64



应用程序标识

                 

ActivityTemplate - 活动模板


表名


ActivityTemplate


描述


活动模板


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36




ID


2


WorkflowId


nvarchar


36




所属公文流程模板标识


3


Code


nvarchar


255



活动编码


4


Name


nvarchar


255



活动名称


5


Value


nvarchar


-1




6


ActivityKind


int



活动类型


7


TopValue


int



Y坐标


8


LeftValue


int



X坐标


9


WidthValue


int



宽度


10


HeightValue


int



高度


11


IsStartActivity


bit



是否开始活动


12


IsFinishActivity


bit



是否结束活动


13


ExpirationTime


int



默认过期时间


14


Description


nvarchar


-1



描述


15


Comment


nvarchar


-1



备注


16


QuanPin


nvarchar


-1



保留


17


JianPin


nvarchar


255



保留


18


DisplayOrder


decimal



显示顺序


19


LargeImage


nvarchar


-1



保留


20


SmallImage


nvarchar


-1



保留


21


ExtensionDataType


nvarchar


255



扩展数据类型名


22


ExtensionData


nvarchar


-1



扩展数据值


23


EntryExecuteTypeName


nvarchar


255



入口点执行外部方法类的信息


24


EntryExecuteMethodName


nvarchar


255



入口点执行外部方法的方法名


25


ExitExecuteTypeName


nvarchar


255



出口点执行外部方法类的信息


26


ExitExecuteMethodName


nvarchar


255



出口点执行外部方法的方法名


27


DeleteStatus


int



删除状态


28


CreatedFID


nvarchar


2048



CreatedFID


29


CreatedFName


nvarchar


2048



CreatedFName


30


CreatedDate


datetime



CreatedDate


31


LastUpdatedFID


nvarchar


2048



LastUpdatedFID


32


LastUpdatedFName


nvarchar


2048



LastUpdatedFName


33


LastUpdatedDate


datetime



LastUpdatedDate


34


Owner


nvarchar


255



Owner


35


ApplicationName


nvarchar


255



ApplicationName

                 

ActivityAuditor -活动步骤模板所允许审批的组织


表名


ActivityAuditor


描述


活动步骤模板所允许审批的组织


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36



标识


2


ActivityId


nvarchar


36




活动模板标识


3


AuditingFID


nvarchar


2048



审批人完整标识路径


4


AuditingFName


nvarchar


2048



审批人完整名称路径


5


Weight


decimal



默认审批权重


6


ExperitionTime


int



默认过期时间,小时


7


Comment


ntext


1073741823



备注

                 

WorkflowInstance - 公文实例


表名


WorkflowInstance


描述


公文实例(每个流程发起的实例)


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36




标识


2


WorkflowId


nvarchar


36




所属公文流程模板标识


3


WorkflowName


ntext


1073741823



所属公文流程模板名称


4


No


nvarchar


255



文号


5


Subject


nvarchar


255



标题


6


Kind


nvarchar


255



类型


7


Abstract


nvarchar


1024



摘要


8


Body


ntext


1073741823



内容


9


SafeLevel


int



密级


10


UrgencyDegree


int



紧急程度


10


DeleteStatus


bit



逻辑删除状态


11


DocStatus


int



当前状态,0开始 1运行 2结束


12


AuditedStatus


int



当前审核状态 0:未通过 1:已通过


13


SourceActivityId


nvarchar


36



当前已执行活动标识


14


SourceActivityName


nvarchar


50



当前已执行活动名称


15


TargetActivityId


nvarchar


36



当前待执行活动标识


16


TargetActivityName


nvarchar


50



当前待执行活动名称


17


Version


int



版本号


18


ExtensionDataType


nvarchar


255



扩展数据类型


19


ExtensionData


ntext


1073741823



扩展数据


20


CreatedFID


nvarchar


2048



起草人完整标识路径


21


CreatedFName


nvarchar


2048



起草人完整名称路径


22


CreatedDate


datetime



起草时间


23


LastUpdatedFID


nvarchar


2048



最后修改人完整路径标识


24


LastUpdatedFName


nvarchar


2048



最后修改人完整名称描述


25


LastUpdatedDate


datetime



最后修改时间

                 

Attachment - 公文附件


表名


Attachment


描述


公文附件


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36




标识


2


No


nvarchar


50



文号


3


Title


nvarchar


256



标题


4


FileName


nvarchar


256



文件名


5


FilePath


nvarchar


256



文件路径


6


ExtensionName


nvarchar


10



文件扩展名


7


Kind


int



附件类别


8


Type


nvarchar


256



类型


9


Abstract


nvarchar


1024



摘要


10


Body


ntext


1073741823



正文


11


Keyword


nvarchar


256



关键字


12


Tag


nvarchar


256



标记


13


Comment


ntext


1073741823



备注


14


FileContent


varbinary


-1



附件内容


15


PublishDate


datetime



发布日期


16


DeleteStatus


int



删除状态


17


CreatedFID


nvarchar


2048



创建人标识路径


18


CreatedFName


nvarchar


2048



创建人名称路径


19


CreatedDate


datetime



创建时间


20


LastUpdatedFID


nvarchar


2048



最后修改人标识路径


21


LastUpdatedFName


nvarchar


2048



最后修改人名称路径


22


LastUpdatedDate


datetime



最后修改时间


23


DisplayOrder


decimal



显示顺序


24


Version


int



版本号


25


ObjectId


nvarchar


255



所属记录标识

                 

ActivityInstance - 活动步骤实例


表名


ActivityInstance


描述


活动步骤实例


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36




标识


2


WorkflowId


nvarchar


36



所属公文流程模板标识


3


WorkflowName


nvarchar


255



所属公文流程模板标识


4


WorkflowInstanceId


nvarchar


36




WorkflowInstanceId


5


WorkflowInstanceSubject


nvarchar


255



WorkflowInstanceSubject


6


Code


nvarchar


255



编码


7


Name


nvarchar


255



名称


8


Value


nvarchar


-1




9


Status


int



活动状态,未执行,未通过,已通过


10


ActivityKind


int



活动类型,保留


11


TopValue


int



Y坐标


12


LeftValue


int



X坐标


13


WidthValue


int



宽度值


14


HeightValue


int



高度值


15


IsStartActivity


bit



是否开始活动


16


IsFinishActivity


bit



是否结束活动


17


ExpirationTime


int



过期时间


18


Description


nvarchar


-1



描述


19


Comment


nvarchar


-1



备注


20


QuanPin


nvarchar


-1



保留


21


JianPin


nvarchar


255



保留


22


DisplayOrder


decimal



显示顺序


23


LargeImage


nvarchar


-1



保留


24


SmallImage


nvarchar


-1



保留


25


ExtensionDataType


nvarchar


255



扩展数据类型名


26


ExtensionData


nvarchar


-1



扩展数据值


27


EntryExecuteTypeName


nvarchar


255



入口点执行外部方法类的信息


28


EntryExecuteMethodName


nvarchar


255



入口点执行外部方法的方法名


29


ExitExecuteTypeName


nvarchar


255



出口点执行外部方法类的信息


30


ExitExecuteMethodName


nvarchar


255



出口点执行外部方法的方法名


31


DeleteStatus


int



删除状态


32


CreatedFID


nvarchar


2048



CreatedFID


33


CreatedFName


nvarchar


2048



CreatedFName


34


CreatedDate


datetime



CreatedDate


35


LastUpdatedFID


nvarchar


2048



LastUpdatedFID


36


LastUpdatedFName


nvarchar


2048



LastUpdatedFName


37


LastUpdatedDate


datetime



LastUpdatedDate


38


Owner


nvarchar


255



Owner


39


ApplicationName


nvarchar


255



ApplicationName

                 

ActivityInstanceAuditor - 活动步骤实例对应的审批人


表名


ActivityInstanceAuditor


描述


活动步骤实例对应的审批人(多个审批人则为并行模式,通过权重判断是否审批通过)


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36



标识


2


ActivityInstanceId


nvarchar


36




所属活动步骤实例标识


3


ActivityInstanceName


nvarchar


255



所属活动步骤实例名称


4


AuditingFID


nvarchar


2048



活动审批人完整标识


5


AuditingFName


nvarchar


2048



审核人完整名称路径


6


ExperiationTime


int



过期时间(小时)


7


ExperiationResult


int



超时时自动执行的结果(是否通过)


8


Weight


decimal



权重


9


AuditedResult


int



审核结果(未审核,审核未通过,审核通过)


10


AuditedOpinion


ntext


1073741823



审核意见


11


AuditedFID


nvarchar


2048



审核人完整标识


12


AuditedFName


nvarchar


2048



AuditedFName


13


AuditedDate


datetime



AuditedDate


14


AuditedKind


int



人工审批,超时自动审批


15


Comment


ntext


1073741823



备注

                 

ActivityLogs - 活动日志


表名


ActivityLogs


描述


活动审批日志信息


序号


列名


字段类型


长度


可空


主键


外键


描述


1


ID


nvarchar


36




ID


2


WorkflowInstanceId


nvarchar


36




所属公文流程实例标识


3


WorkflowInstanceSubject


nvarchar


255



所属公文流程实例主题


4


WorkflowId


nvarchar


36



所属公文流程模板标识


5


WorkflowName


nvarchar


255



所属公文流程模板名称


6


SourceActivityInstanceId


nvarchar


36



执行的活动实例标识


7


SourceActivityInstanceName


nvarchar


255



执行的活动实例名称


8


SourceActivityInstanceKind


int



执行的活动实例类型


9


TargetActivityInstanceId


nvarchar


36



待执行的活动实例标识


10


TargetActivityInstanceName


nvarchar


255



待执行的活动实例名称


11


TargetActivityInstanceKind


int



待执行的活动实例类型


12


AuditedWeight


decimal



审核的权重结果


13


AuditedOpinion


nvarchar


-1



审核的意见


14


AuditedFID


nvarchar


-1



审核人完整标识路径


15


AuditedFName


nvarchar


-1



审核人完整名称路径


16


AuditedDate


datetime



审核日期


17


AuditedResult


int



审核的结果(未通过,正在并行审批,已通过)


18


AuditedKind


int



审核类别(人工审核,超时自动审核等)


19


Comment


nvarchar


-1



备注


20


CreatedFID


nvarchar


2048



起草人完整标识路径


21


CreatedFName


nvarchar


2048



起草人完整名称路径


22


CreatedDate


datetime



起草日期

                 

 最终实现的界面效果如下:

时间: 2024-10-18 01:53:19

YbSoftwareFactory 代码生成插件【二十三】:集成强大的公文流转系统的相关文章

YbSoftwareFactory 代码生成插件【十九】:实体类配合数据库表字段进行属性扩展的小技巧

实体类通常需要和数据库表进行了ORM映射,当你需要添加新的属性时,往往同时也需要在数据库中添加相应的字段并配置好映射关系,同时可能还需对数据访问组件进行重新编译和部署才能有效.而当你开始设计一个通用数据访问组件后,因为项目需求的不同和需求的不断变化演变,很难不能保证不会再添加额外的属性和字段.特别是项目部署运行后,添加一个属性和字段带来的额外维护的工作量可能要远远超过对代码进行调整的工作量.本文提供了属性字段扩展的一种思路,在满足核心字段可通过实体类强类型进行访问的同时,还可通过C# 4.0提供

YbSoftwareFactory 代码生成插件【十八】:树形结构下的查询排序的数据库设计

树形结构的排序在中国特色下十分普遍也非常重要,例如常说的五大班子,党委>人大>政府>政协>纪委,每个班子下还有部门,岗位,人员,最终排列的顺序通常需要按权力大小.重要性等进行排列,顺序排列不好可是重大的罪过,领导很生气,后果很严重.这种排序方式本质上就是典型的树形结构深度排序,但在数据库中很难直接通过SQL语句简单高效地进行处理,更不用说还要支持不同类型数据库了. 当前解决此类问题,主要有两种方法. 1. 排序码方式 原理:在每个树形节点上均设置一个排序码,排序码通常是一个字符串并

YbSoftwareFactory 代码生成插件【二十】:DynamicObject的序列化

DynamicObject 是 .NET 4.0以来才支持的一个类,但该类在.NET 4.0下未被标记为[Serializable] Attribute,而在.NET 4.5下则被标记了[Serializable] Attribute.需要注意的是,如果你使用需要进行XML序列化等操作(例如WCF中),部署到未安装.NET 4.5的环境中通常会报错并提示异常,而不管你编译时使用的目标平台是.NET 4.0 还是 .NET 4.5.通常这个错误在安装了.NET 4.5环境的开发机上通常没有问题,即

YbSoftwareFactory 代码生成插件【二十一】:Web Api及MVC性能提升的几个小技巧

最近在进行 YbSoftwareFactory 的流程功能升级,目前已经基本完成,现将用到的一些关于 Web Api 及 MVC 性能提升的一些小技巧进行了总结,这些技巧在使用.配置上也相当的简单,但通常都能大大提高应用程序的性能,希望对大家有用. 一.缓存 为了避免每次请求都去访问后台的资源,我们一般会考虑将一些更新不是很频繁的,可以重用的数据,通过一定的方式临时地保存起来,后续的请求根据情况可以直接访问这些保存起来的数据,这种机制就是所谓的缓存机制.缓存分为页面输出缓存,内存数据缓存和缓存依

YbSoftwareFactory 代码生成插件【二十二】:CMS基础功能的实现

很多网友建议在YbRapidSolution for MVC框架的基础上实现CMS功能,以方便进行内容的管理,加快前端页面的开发速度.因此花了一段时间,实现了一套CMS内容发布系统并已集成至YbRapidSolution for MVC框架中. 本CMS当前实现了CMS参数设置.栏目管理.文章管理.文档管理.评论管理.问卷调查等功能.首先看看本CMS使用的主要技术及其整体架构图: 上图中的架构可以说和YbRapidSolution for MVC的架构基本是一致的,如下将对主要的技术要点进行总结

YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把查询结果的 HTML 代码呈现到 Razor 视图中,考虑到灵活性,需要能在任意 Razor 视图中调用该方法,这样任意 Razor 页面都能以统一的方式方便地共享该页面部件的 HTML 内容,这对于代码的重用性和可维护性都是非常有必要的. 为实现上述要求,本文介绍如下可供选择的三种方式.   1.

YbSoftwareFactory 代码生成插件【二十四】:MVC中实现动态自定义路由

上一篇介绍了 公文流转系统 的实现,本篇介绍下MVC下动态自定义路由的实现. 在典型的CMS系统中,通常需要为某个栏目指定个友链地址,通过指定友链地址,该栏目的地址更人性化.方便记忆,也有利用于搜索引擎优化. 但在MVC中,通常需要在应用程序启动时注册路由规则,该路由规则又通常和控制器进行了关联,也就是某个地址通常情况下都是有对应的控制器进行处理的.但在MVC中如何做到自定义动态路由,以便能在运行时通过某个控制器处理一些运行时动态设定的Url地址呢? 方法当然是有的:    1.首先实现一个动态

基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持

在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录进行合理的分页,集成各种增删改查的按钮等功能.随着开发项目的需求辩护,对数据记录分页展示.排序等功能都是常态的要求,因此在代码生成工具中调整了主列表界面的列表展示插件为Bootstrap-table插件,本篇随笔主要介绍在代码生成工具Database2Sharp中集成对Bootstrap-table

JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算

JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习一些新的小东西吧 一.System 翻译过来系统的意思,系统类,里面的方法都是静态的,可以直接调用 我们来演示一下吧,先从获取系统信息开始: package com.lgl.hellojava; import java.util.Properties; public class HelloJJAVA