C/S架构软件开发平台旗舰版V6.1迭代开发记录|工作流程引擎集成|流程引擎
作者:csframework|C/S框架网  发布日期:2023/12/12 11:02:19

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

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

20231208 - 集成CSFramework.WorkflowV2.0解决方案

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

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

1、系统管理模块增加《工作流管理》

逻辑:

  • 管理与维护流程图,包括流程图设计、查询、修改、删除等操作
  • 配置业务单据与流程图关系
  • 连接流程数据库 【CSFramework.Workflow】

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

工作流管理界面

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

注意事项:

流程图管理操作按钮:

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

业务单据配置操作按钮:

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

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

2、《销售订单》集成工作流审批

处理逻辑:

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

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

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

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

销售订单主表模型(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个列:

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

colAppComment:审批意见,绑定字段:AppComment

colAppStatus:审批状态,绑定字段:AppStatus

colAppWorkflowKey流程图,绑定字段:AppWorkflowKey

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

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

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

表格预览效果:

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

增加【流程审批】按钮

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

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

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

销售单分配审批流程

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

流程审批界面

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

完整版源码参考 frmSO.cs

3、《应付款》集成工作流审批

处理逻辑:

  • 应付款主表增加审批信息字段:AppUserName、AppComment、AppStatus、AppWorkflowKey
  • 主表表格增加列(GridColumn)
  • 增加按钮:流程审批、审批结果
  • 实现《销售订单》的流程引擎数据提供者
  • 读取销售订单的审批流程,打开流程审批界面。

操作步骤参考销售订单。

流程审批界面

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

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇