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


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

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迭代开发记录-工作流程引擎集成

 

工作流数据库文件

 

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

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

操作步骤参考:

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

 

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

 

 

 

 

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
评论列表

发表评论

评论内容
昵称:
关联文章

C/S架构软件开发平台旗舰V6.1开发记录-工作流程引擎集成
C/S软件开发平台旗舰V6.0-开发记录-系统登录
C/S软件开发平台旗舰V6.0-开发记录-主界面
C/S软件开发平台旗舰V6.0-开发记录-销售订单
C/S软件开发平台旗舰V6.0-开发记录-报价单
C/S软件开发平台旗舰V6.0-开发记录-财务科目管理
C/S软件开发平台旗舰V6.0-开发记录-成品入库单
C/S软件开发平台旗舰V6.0-开发记录-成品库存、实时库存
C/S架构软件开发平台旗舰V6.0开发记录-单据号码规则
C/S软件开发平台旗舰V6.0-开发记录-成品出货单、成品送货单
C/S架构软件开发平台旗舰V6.0开发记录-公共数据字典
C/S架构软件开发平台 - 旗舰V6.0 软件简介
C/S架构软件开发平台 - 旗舰V6.0 主页
C/S架构软件快速开发平台-旗舰V5.1简介
C/S架构软件开发平台旗舰V6.0开发记录-组织架构管理
C/S软件开发平台旗舰V6.0-开发记录-系统参数设置
C/S架构快速开发平台-旗舰V5.1 (2021最新版)
C/S架构软件快速开发平台-旗舰V5.1软件截图
C/S架构软件开发平台旗舰V6.0开发记录-用户管理
C/S架构软件开发平台 - 旗舰V6.0开发者技能要求