* fix #I4Q1IR 修复自定义表单流程审批时,不能修改数据库记录

This commit is contained in:
yubaolee 2022-03-08 16:23:39 +08:00
parent f4a8e93de9
commit 502ab43f26
3 changed files with 26 additions and 9 deletions

View File

@ -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);

View File

@ -32,15 +32,6 @@ namespace OpenAuth.App
Repository.Add(obj);
}
public void Update(FrmLeaveReq obj)
{
UnitWork.Update<FrmLeaveReq>(u => u.Id == obj.Id, u => new FrmLeaveReq
{
//todo:要修改的字段赋值
});
}
public FrmLeaveReqApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<FrmLeaveReq,OpenAuthDBContext> 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<FrmLeaveReq>(frmData);
UnitWork.Update<FrmLeaveReq>(u => u.FlowInstanceId == flowInstanceId, u => new FrmLeaveReq
{
UserName = req.UserName,
RequestComment = req.RequestComment,
RequestType = req.RequestType
//补充其他需要更新的字段
});
}
}
}

View File

@ -12,5 +12,12 @@
/// <param name="flowInstanceId">表单对应的流程实例ID</param>
/// <param name="frmData">表单数据</param>
void Add(string flowInstanceId, string frmData);
/// <summary>
/// 该接口定义流程自定义表单模式时需实现向数据库更新表单数据
/// </summary>
/// <param name="flowInstanceId">更新的时候前端没有存储Id需要用流程实例ID来关联如果前端设计了Id字段则可以不用</param>
/// <param name="frmData">表单数据</param>
void Update(string flowInstanceId, string frmData);
}
}