C/S架构软件开发平台旗舰版V6.1迭代开发记录|工作流程引擎集成|C/S开发框架

C/S架构软件开发平台旗舰版V6.1迭代开发记录-工作流程引擎集成
目录
20231208 - 集成CSFramework.WorkflowV2.0解决方案
工作流引擎使用EF6.4框架,在集成到C/S开发框架要安装EntityFramework 6.4.4 NuGet包。
添加EntityFramework nuget包
在CSFrameworkV6.Main项目右键,管理NuGet程序包,




业务系统集成流程引擎架构图

1、系统管理模块增加《工作流管理》
逻辑:
- 管理与维护流程图,包括流程图设计、查询、修改、删除等操作
- 配置业务单据与流程图关系
- 连接流程数据库 【CSFramework.Workflow】

工作流管理界面

注意事项:
流程图管理操作按钮:

业务单据配置操作按钮:


2、《销售订单》集成工作流审批
处理逻辑:
- 销售订单主表增加四个字段:AppUserName、AppComment、AppStatus、AppWorkflowKey
- 主表表格增加以上四列(GridColumn)
- 增加按钮:流程审批、审批结果
- 实现《销售订单》的流程引擎数据提供者
- 读取销售订单的审批流程,打开流程审批界面。

销售订单主表(tb_SO )增加字段

销售订单主表模型(tb_SO/res_SO)增加属性
C# 全选
#region 单据审批信息
/// <summary>
/// 审批标识,Y=已审批完成,N/null=审批中
/// </summary>
public System.String FlagApp { get; set; }
/// <summary>
/// 审批用户id
/// </summary>
public System.String AppUser { get; set; }
/// <summary>
/// 审批时间
/// </summary>
public System.DateTime? AppDate { get; set; }
/// <summary>
/// 审批人姓名
/// </summary>
public string AppUserName { get; set; }
/// <summary>
/// 最后一次审批意见
/// </summary>
public string AppComment { get; set; }
/// <summary>
/// 最后一次审批状态
/// </summary>
public string AppStatus { get; set; }
/// <summary>
/// 工作流key
/// </summary>
public string AppWorkflowKey { get; set; }
#endregion主表表格增加列(GridColumn)
在 GridControl 设计器内添加3个列:

colAppComment:审批意见,绑定字段:AppComment
colAppStatus:审批状态,绑定字段:AppStatus
colAppWorkflowKey:流程图,绑定字段:AppWorkflowKey

数据访问层dalSO.Query方法添加代码

表格预览效果:

增加【流程审批】按钮

C# 全选
public override IButtonInfo[] GetBusinessButtons()
{
//增加【流程审批】按钮
if (this.ButtonAuthorized(ButtonAuthority.APPROVAL))
{
var button = this.ToolbarRegister.CreateButton(ButtonNameList.btnApproval,
"流程审批", ToolBarGroup.审核功能, Globals.LoadBitmap("24_Approval.ico"), new Size(57, 28), true, true, this.DoApproval);
return new IButtonInfo[] { button };
}
else
{
return new IButtonInfo[] { };
}
}流程审批事件 - 重写 DoApproval 按钮事件
C# 全选
public override void DoApproval(IButtonInfo button)
{
AssertFocusedRow();
try
{
CCursor.ShowWaitCursor();
var row = (res_SO)_SummaryView.GetFocusedRow();
var flowDataKey = row.AppWorkflowKey;
//单据没有审批记录,取配置表的流程图key
if (row.AppWorkflowKey.IsEmpty())
flowDataKey = new bll_Workflow().GetDocFlowKey("SO");
else
flowDataKey = row.AppWorkflowKey;
if (flowDataKey.IsEmpty()) throw new CustomException("没有配置流程图!");
//初始化流程引擎数据提供者
BusinessDataProvider.Provider = new BusinessDataProvider_SO();
BusinessDataProvider.Provider.ApprovalForm.OnApprovalFinish += ApprovalForm_OnApprovalFinish;
BusinessDataProvider.Provider.ApprovalForm.OnApprovalOperation += ApprovalForm_OnApprovalOperation;
BusinessDataProvider.Provider.ApprovalForm.ShowForm(row.SONO, flowDataKey, this);
}
finally
{
CCursor.ShowDefaultCursor();
}
}BLL/DAL层实现 UpdateBusinessDocApproval 方法
C# 全选
public bool UpdateBusinessDocApproval(CSFrameworkV6.Models.WorkflowModels.WorkflowApprovalData data, bool isFinish)
{
var obj = _Database.GetQueryable<tb_SO>().Where(w => w.SONO == data.BusinessKey).FirstOrDefault();
if (obj != null)
{
obj.FlagApp = isFinish ? "Y" : "N";
obj.AppUser = _Loginer.Account;
obj.AppUserName = _Loginer.AccountName;
obj.AppDate = DateTime.Now;
obj.AppComment = data.ApprovalComments;
obj.AppStatus = data.ApprovalStatus;
obj.AppWorkflowKey = data.FlowDataKey;//工作流key
return _Database.Update(obj) == 1;
}
else
{
return false;
}
}实现《销售订单》数据提供者 - BusinessDataProvider_SO

销售单分配审批流程

流程审批界面

完整版源码参考 frmSO.cs
3、《应付款》集成工作流审批
处理逻辑:
- 应付款主表增加审批信息字段:AppUserName、AppComment、AppStatus、AppWorkflowKey
- 主表表格增加列(GridColumn)
- 增加按钮:流程审批、审批结果
- 实现《销售订单》的流程引擎数据提供者
- 读取销售订单的审批流程,打开流程审批界面。
操作步骤参考销售订单。
流程审批界面

工作流数据库文件
Workflow.bak 数据库备份文件还原为数据库:

操作步骤参考:



参考文档:
C/S架构软件开发平台 | 旗舰版V6.1 | 新功能汇总|C/S开发框架
CSFrameworkV6.1前端+WebApiV3后端测试报告(前后端分离)|C/S开发框架
SqlConnectorV6.1 | 数据库连接工具|C/S开发框架
代码生成器 CodeGenerator V6.1 | 提供两种生成报表策略(表格/标签,TableObject/TextObject)|C/S开发框架
CSFrameworkV6.1 | ServiceOrSID 属性说明|C/S开发框架
CSFramework WebApi开发框架集成PostgreSql数据库及测试报告|C/S开发框架
C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架
C/S客户端软件授权设计方案 | 在线用户并发数+软件到期时间授权|C/S开发框架
CSFrameworkV6软件开发框架+达梦数据库(国产数据库)测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | MySql数据库测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | Oracle数据库测试报告|C/S开发框架
CSFrameworkV6快速开发框架 | SqlServer(MsSql)数据库测试报告|C/S开发框架
C/S开发框架两种后台连接:直连模式与WebApi模式(ADODirect与WebApi)|C/S开发框架
CSFrameworkV6软件开发平台主流数据库测试报告(SqlServer/MySql/Oracle/达梦)|C/S开发框架
C/S开发框架:系统数据库与账套数据库合并解决方案|C/S开发框架
C/S架构软件开发平台V6旗舰版 | 客户端运行环境需要的程序文件|C/S开发框架
C/S架构软件开发平台 | 旗舰版V6.1 | 新功能汇总|C/S开发框架
CSFrameworkV6.1前端+WebApiV3后端测试报告(前后端分离)|C/S开发框架
SqlConnectorV6.1 | 数据库连接工具|C/S开发框架
代码生成器 CodeGenerator V6.1 | 提供两种生成报表策略(表格/标签,TableObject/TextObject)|C/S开发框架
CSFrameworkV6.1 | ServiceOrSID 属性说明|C/S开发框架
CSFramework WebApi开发框架集成PostgreSql数据库及测试报告|C/S开发框架
C/S客户端软件授权设计方案 | MAC地址白名单+软件到期时间授权|C/S开发框架
C/S客户端软件授权设计方案 | 在线用户并发数+软件到期时间授权|C/S开发框架
CSFrameworkV6软件开发框架+达梦数据库(国产数据库)测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | MySql数据库测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | Oracle数据库测试报告|C/S开发框架
CSFrameworkV6快速开发框架 | SqlServer(MsSql)数据库测试报告|C/S开发框架
C/S开发框架两种后台连接:直连模式与WebApi模式(ADODirect与WebApi)|C/S开发框架
CSFrameworkV6软件开发平台主流数据库测试报告(SqlServer/MySql/Oracle/达梦)|C/S开发框架
C/S开发框架:系统数据库与账套数据库合并解决方案|C/S开发框架
C/S架构软件开发平台V6旗舰版 | 客户端运行环境需要的程序文件|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
