diff --git a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs index ccff2132..83ff17e0 100644 --- a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs +++ b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs @@ -303,6 +303,13 @@ namespace OpenAuth.App if (!string.IsNullOrEmpty(request.FrmData)) { flowInstance.FrmData = request.FrmData; + + if (flowInstance.FrmType == 1) //如果是开发者自定义的表单,更新对应数据库表数据 + { + var t = Type.GetType("OpenAuth.App." + flowInstance.DbName + "App"); + ICustomerForm icf = (ICustomerForm) _serviceProvider.GetService(t); + icf.Update(flowInstance.Id,flowInstance.FrmData); + } } UnitWork.Update(flowInstance); diff --git a/OpenAuth.App/FrmLeave/FrmLeaveReqApp.cs b/OpenAuth.App/FrmLeave/FrmLeaveReqApp.cs index d02956f6..1a4267c8 100644 --- a/OpenAuth.App/FrmLeave/FrmLeaveReqApp.cs +++ b/OpenAuth.App/FrmLeave/FrmLeaveReqApp.cs @@ -32,15 +32,6 @@ namespace OpenAuth.App Repository.Add(obj); } - public void Update(FrmLeaveReq obj) - { - UnitWork.Update(u => u.Id == obj.Id, u => new FrmLeaveReq - { - //todo:要修改的字段赋值 - }); - - } - public FrmLeaveReqApp(IUnitWork unitWork, IRepository repository, RevelanceManagerApp app,IAuth auth) : base(unitWork, repository, auth) { @@ -53,5 +44,17 @@ namespace OpenAuth.App req.FlowInstanceId = flowInstanceId; Add(req); } + + public void Update(string flowInstanceId, string frmData) + { + var req = JsonHelper.Instance.Deserialize(frmData); + UnitWork.Update(u => u.FlowInstanceId == flowInstanceId, u => new FrmLeaveReq + { + UserName = req.UserName, + RequestComment = req.RequestComment, + RequestType = req.RequestType + //补充其他需要更新的字段 + }); + } } } \ No newline at end of file diff --git a/OpenAuth.App/Interface/ICustomerForm.cs b/OpenAuth.App/Interface/ICustomerForm.cs index fc09f3a4..e387de32 100644 --- a/OpenAuth.App/Interface/ICustomerForm.cs +++ b/OpenAuth.App/Interface/ICustomerForm.cs @@ -12,5 +12,12 @@ /// 表单对应的流程实例ID /// 表单数据 void Add(string flowInstanceId, string frmData); + + /// + /// 该接口定义流程自定义表单模式时需实现向数据库更新表单数据 + /// + /// 更新的时候前端没有存储Id,需要用流程实例ID来关联,如果前端设计了Id字段,则可以不用 + /// 表单数据 + void Update(string flowInstanceId, string frmData); } }