/// <summary> /// 执行事件链中各个节点 /// </summary> /// <param name="request"></param> /// <param name="responseParam"></param> /// <param name="handler"></param> public void DoSendAction(RequestParam request, ResponseParam response, AbstractActionHandler handler) { if (handler == null) { return; } this.request = request; if (!this.validate(this.request)) { return; } response = new ResponseParam(); handler.DoSendAction(this.request, this.response); }
/// <summary> /// 诊毕流程 /// </summary> /// <param name="actionName">触发事件的(菜单、按钮)名称,如果后续逻辑需要判断就加,不需要可以不加</param> private void CreateCompleteHandlerChain(string actionName) { if (request.context == null || request.ent4BannerDTO == null) { return; } AbstractActionHandler startCompleteHandler = null; string idDep = this.Context.Dept.Id_dep; // 诊毕状态 0 无诊毕 可以去掉诊毕按钮,任何业务部受限制 // 1 仅诊毕 通过点击诊毕按钮,进行批量业务处理(是否处理按业务场景确定,比如是否修改诊毕状态,是否调用打印) // 2 诊毕撤回,严格控制诊毕后不允许做其他业务,只有进行撤回后才能继续 //string finishMode = this.Context.GetParam<string>(idDep, ICiOrdNSysParamConst.SYS_PARAM_OpThisPatVisitFinishMode); // 设置按钮事件名称 request.actionName = actionName; startCompleteHandler = this.GetStartCompleteHandler(actionName); if (startCompleteHandler != null) { startCompleteHandler.DoSendAction(request, null, startCompleteHandler); } }