mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-09-20 02:29:24 +08:00
feat: 业务单据可以正常送审
This commit is contained in:
@@ -119,6 +119,9 @@ namespace OpenAuth.App.Flow
|
|||||||
{
|
{
|
||||||
throw new Exception("无法寻找到下一个节点");
|
throw new Exception("无法寻找到下一个节点");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//URL表单暂时不支持URL表单
|
||||||
|
if(flowInstance.FrmType == Define.FORM_TYPE_URL) return lines[0].to;
|
||||||
|
|
||||||
if (FrmData == "" || FrmData == "{}") return lines[0].to;
|
if (FrmData == "" || FrmData == "{}") return lines[0].to;
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
* @Author: yubaolee <yubaolee@163.com> | ahfu~ <954478625@qq.com>
|
* @Author: yubaolee <yubaolee@163.com> | ahfu~ <954478625@qq.com>
|
||||||
* @Date: 2024-12-13 16:55:17
|
* @Date: 2024-12-13 16:55:17
|
||||||
* @Description: 工作流实例表操作
|
* @Description: 工作流实例表操作
|
||||||
* @LastEditTime: 2025-04-05 15:22:30
|
* @LastEditTime: 2025-04-06 02:25:02
|
||||||
* Copyright (c) 2024 by yubaolee | ahfu~ , All Rights Reserved.
|
* Copyright (c) 2024 by yubaolee | ahfu~ , All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -51,6 +51,14 @@ namespace OpenAuth.App
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string CreateInstance(AddFlowInstanceReq addFlowInstanceReq)
|
public string CreateInstance(AddFlowInstanceReq addFlowInstanceReq)
|
||||||
{
|
{
|
||||||
|
//如果业务ID不为空,则需要检查该业务ID对应的审批是否存在
|
||||||
|
if(!string.IsNullOrEmpty(addFlowInstanceReq.BusinessId)){
|
||||||
|
//如果业务ID不为空,则需要检查业务ID是否存在
|
||||||
|
var business = Repository.GetFirst(u => u.BusinessId == addFlowInstanceReq.BusinessId && u.SchemeId == addFlowInstanceReq.SchemeId);
|
||||||
|
if(business != null){
|
||||||
|
throw new Exception("该业务ID已经送审过该类型的流程,请不要重复送审");
|
||||||
|
}
|
||||||
|
}
|
||||||
CheckNodeDesignate(addFlowInstanceReq);
|
CheckNodeDesignate(addFlowInstanceReq);
|
||||||
FlowScheme scheme = null;
|
FlowScheme scheme = null;
|
||||||
if (!string.IsNullOrEmpty(addFlowInstanceReq.SchemeId))
|
if (!string.IsNullOrEmpty(addFlowInstanceReq.SchemeId))
|
||||||
@@ -69,6 +77,7 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
|
|
||||||
addFlowInstanceReq.SchemeContent = scheme.SchemeContent;
|
addFlowInstanceReq.SchemeContent = scheme.SchemeContent;
|
||||||
|
addFlowInstanceReq.FrmType = scheme.FrmType;
|
||||||
|
|
||||||
FormResp form = null;
|
FormResp form = null;
|
||||||
if (scheme.FrmType != Define.FORM_TYPE_URL)
|
if (scheme.FrmType != Define.FORM_TYPE_URL)
|
||||||
@@ -83,6 +92,17 @@ namespace OpenAuth.App
|
|||||||
addFlowInstanceReq.FrmType = form.FrmType;
|
addFlowInstanceReq.FrmType = form.FrmType;
|
||||||
addFlowInstanceReq.FrmId = form.Id;
|
addFlowInstanceReq.FrmId = form.Id;
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
if(string.IsNullOrEmpty(scheme.FrmUrlTemplate)){ //流程设计的时候没有URL表单模板
|
||||||
|
if(addFlowInstanceReq.FrmData.IsNullOrEmpty()){
|
||||||
|
throw new Exception("该流程使用的是URL表单,但流程设计时没有指定URL表单模板,需要修改流程模板或前端调用时直接传业务详情的URL地址");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
//流程设计的时候有URL表单模板,则使用URL表单模板,并替换模板中的{id}为业务详情的ID
|
||||||
|
addFlowInstanceReq.FrmData = scheme.FrmUrlTemplate.Replace("{id}", addFlowInstanceReq.BusinessId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var flowInstance = addFlowInstanceReq.MapTo<FlowInstance>();
|
var flowInstance = addFlowInstanceReq.MapTo<FlowInstance>();
|
||||||
|
|
||||||
|
@@ -16,167 +16,174 @@ using OpenAuth.Repository.Core;
|
|||||||
|
|
||||||
namespace OpenAuth.Repository.Domain
|
namespace OpenAuth.Repository.Domain
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 工作流流程实例表
|
/// 工作流流程实例表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Table("FlowInstance")]
|
[Table("FlowInstance")]
|
||||||
public partial class FlowInstance : StringEntity
|
public partial class FlowInstance : StringEntity
|
||||||
|
{
|
||||||
|
public FlowInstance()
|
||||||
{
|
{
|
||||||
public FlowInstance()
|
this.InstanceSchemeId = string.Empty;
|
||||||
{
|
this.Code = string.Empty;
|
||||||
this.InstanceSchemeId= string.Empty;
|
this.CustomName = string.Empty;
|
||||||
this.Code= string.Empty;
|
this.ActivityId = string.Empty;
|
||||||
this.CustomName= string.Empty;
|
this.ActivityName = string.Empty;
|
||||||
this.ActivityId= string.Empty;
|
this.PreviousId = string.Empty;
|
||||||
this.ActivityName= string.Empty;
|
this.SchemeContent = string.Empty;
|
||||||
this.PreviousId= string.Empty;
|
this.SchemeId = string.Empty;
|
||||||
this.SchemeContent= string.Empty;
|
this.DbName = string.Empty;
|
||||||
this.SchemeId= string.Empty;
|
this.FrmData = string.Empty;
|
||||||
this.DbName= string.Empty;
|
this.FrmType = 0;
|
||||||
this.FrmData= string.Empty;
|
this.FrmContentData = string.Empty;
|
||||||
this.FrmType= 0;
|
this.FrmContentParse = string.Empty;
|
||||||
this.FrmContentData= string.Empty;
|
this.FrmId = string.Empty;
|
||||||
this.FrmContentParse= string.Empty;
|
this.SchemeType = string.Empty;
|
||||||
this.FrmId= string.Empty;
|
this.Disabled = 0;
|
||||||
this.SchemeType= string.Empty;
|
this.CreateDate = DateTime.Now;
|
||||||
this.Disabled= 0;
|
this.CreateUserId = string.Empty;
|
||||||
this.CreateDate= DateTime.Now;
|
this.CreateUserName = string.Empty;
|
||||||
this.CreateUserId= string.Empty;
|
this.FlowLevel = 0;
|
||||||
this.CreateUserName= string.Empty;
|
this.Description = string.Empty;
|
||||||
this.FlowLevel= 0;
|
this.IsFinish = FlowInstanceStatus.Running;
|
||||||
this.Description= string.Empty;
|
this.MakerList = string.Empty;
|
||||||
this.IsFinish= FlowInstanceStatus.Running;
|
|
||||||
this.MakerList= string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 流程实例模板Id【已废弃】
|
|
||||||
/// </summary>
|
|
||||||
[Description("流程实例模板Id")]
|
|
||||||
public string InstanceSchemeId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 实例编号
|
|
||||||
/// </summary>
|
|
||||||
[Description("实例编号")]
|
|
||||||
public string Code { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 自定义名称
|
|
||||||
/// </summary>
|
|
||||||
[Description("自定义名称")]
|
|
||||||
public string CustomName { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 当前节点ID
|
|
||||||
/// </summary>
|
|
||||||
[Description("当前节点ID")]
|
|
||||||
public string ActivityId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 当前节点类型(0会签节点)
|
|
||||||
/// </summary>
|
|
||||||
[Description("当前节点类型(0会签节点)")]
|
|
||||||
public int? ActivityType { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 当前节点名称
|
|
||||||
/// </summary>
|
|
||||||
[Description("当前节点名称")]
|
|
||||||
public string ActivityName { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 前一个ID
|
|
||||||
/// </summary>
|
|
||||||
[Description("前一个ID")]
|
|
||||||
public string PreviousId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 流程模板内容
|
|
||||||
/// </summary>
|
|
||||||
[Description("流程模板内容")]
|
|
||||||
public string SchemeContent { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 流程模板ID
|
|
||||||
/// </summary>
|
|
||||||
[Description("流程模板ID")]
|
|
||||||
public string SchemeId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 数据库名称
|
|
||||||
/// </summary>
|
|
||||||
[Description("数据库名称")]
|
|
||||||
public string DbName { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 表单数据
|
|
||||||
/// </summary>
|
|
||||||
[Description("表单数据")]
|
|
||||||
public string FrmData { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 表单类型
|
|
||||||
/// <para>0:动态表单;1:开发者自定义表单;2:拖动表单</para>
|
|
||||||
/// <para>当类型为1时,流程实例必需有DbName,用于直接向对应数据库表中写入数据</para>
|
|
||||||
/// </summary>
|
|
||||||
[Description("表单类型:0:动态表单;1:开发者自定义表单;2:拖动表单")]
|
|
||||||
public int FrmType { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 表单中的控件属性描述
|
|
||||||
/// </summary>
|
|
||||||
[Description("表单中的控件属性描述")]
|
|
||||||
public string FrmContentData { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 表单控件位置模板
|
|
||||||
/// </summary>
|
|
||||||
[Description("表单控件位置模板")]
|
|
||||||
public string FrmContentParse { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 表单ID
|
|
||||||
/// </summary>
|
|
||||||
[Description("表单ID")]
|
|
||||||
public string FrmId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 流程类型
|
|
||||||
/// </summary>
|
|
||||||
[Description("流程类型")]
|
|
||||||
public string SchemeType { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 有效标志
|
|
||||||
/// </summary>
|
|
||||||
[Description("有效标志")]
|
|
||||||
public int Disabled { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 创建时间
|
|
||||||
/// </summary>
|
|
||||||
[Description("创建时间")]
|
|
||||||
public System.DateTime CreateDate { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 创建用户主键
|
|
||||||
/// </summary>
|
|
||||||
[Description("创建用户主键")]
|
|
||||||
public string CreateUserId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 创建用户
|
|
||||||
/// </summary>
|
|
||||||
[Description("创建用户")]
|
|
||||||
public string CreateUserName { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 等级
|
|
||||||
/// </summary>
|
|
||||||
[Description("等级")]
|
|
||||||
public int FlowLevel { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 实例备注
|
|
||||||
/// </summary>
|
|
||||||
[Description("实例备注")]
|
|
||||||
public string Description { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 是否完成,当前节点的状态也通过该值表示
|
|
||||||
/// </summary>
|
|
||||||
[Description("是否完成,当前节点的状态也通过该值表示")]
|
|
||||||
public int IsFinish { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 执行人
|
|
||||||
/// </summary>
|
|
||||||
[Description("执行人")]
|
|
||||||
public string MakerList { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 所属部门
|
|
||||||
/// </summary>
|
|
||||||
[Description("所属部门")]
|
|
||||||
public string OrgId { get; set; }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 流程实例模板Id【已废弃】
|
||||||
|
/// </summary>
|
||||||
|
[Description("流程实例模板Id")]
|
||||||
|
public string InstanceSchemeId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 实例编号
|
||||||
|
/// </summary>
|
||||||
|
[Description("实例编号")]
|
||||||
|
public string Code { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 自定义名称
|
||||||
|
/// </summary>
|
||||||
|
[Description("自定义名称")]
|
||||||
|
public string CustomName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 当前节点ID
|
||||||
|
/// </summary>
|
||||||
|
[Description("当前节点ID")]
|
||||||
|
public string ActivityId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 当前节点类型(0会签节点)
|
||||||
|
/// </summary>
|
||||||
|
[Description("当前节点类型(0会签节点)")]
|
||||||
|
public int? ActivityType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 当前节点名称
|
||||||
|
/// </summary>
|
||||||
|
[Description("当前节点名称")]
|
||||||
|
public string ActivityName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 前一个ID
|
||||||
|
/// </summary>
|
||||||
|
[Description("前一个ID")]
|
||||||
|
public string PreviousId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 流程模板内容
|
||||||
|
/// </summary>
|
||||||
|
[Description("流程模板内容")]
|
||||||
|
public string SchemeContent { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 流程模板ID
|
||||||
|
/// </summary>
|
||||||
|
[Description("流程模板ID")]
|
||||||
|
public string SchemeId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 数据库名称
|
||||||
|
/// </summary>
|
||||||
|
[Description("数据库名称")]
|
||||||
|
public string DbName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 表单数据
|
||||||
|
/// </summary>
|
||||||
|
[Description("表单数据")]
|
||||||
|
public string FrmData { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 表单类型
|
||||||
|
/// <para>0:动态表单;1:开发者自定义表单;2:拖动表单</para>
|
||||||
|
/// <para>当类型为1时,流程实例必需有DbName,用于直接向对应数据库表中写入数据</para>
|
||||||
|
/// </summary>
|
||||||
|
[Description("表单类型:0:动态表单;1:开发者自定义表单;2:拖动表单")]
|
||||||
|
public int FrmType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 表单中的控件属性描述
|
||||||
|
/// </summary>
|
||||||
|
[Description("表单中的控件属性描述")]
|
||||||
|
public string FrmContentData { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 表单控件位置模板
|
||||||
|
/// </summary>
|
||||||
|
[Description("表单控件位置模板")]
|
||||||
|
public string FrmContentParse { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 表单ID
|
||||||
|
/// </summary>
|
||||||
|
[Description("表单ID")]
|
||||||
|
public string FrmId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 流程类型
|
||||||
|
/// </summary>
|
||||||
|
[Description("流程类型")]
|
||||||
|
public string SchemeType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 业务ID
|
||||||
|
/// 当流程实例与业务单据关联时,记录关联的业务ID
|
||||||
|
/// </summary>
|
||||||
|
[Description("业务ID")]
|
||||||
|
public string BusinessId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 有效标志
|
||||||
|
/// </summary>
|
||||||
|
[Description("有效标志")]
|
||||||
|
public int Disabled { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
[Description("创建时间")]
|
||||||
|
public System.DateTime CreateDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建用户主键
|
||||||
|
/// </summary>
|
||||||
|
[Description("创建用户主键")]
|
||||||
|
public string CreateUserId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建用户
|
||||||
|
/// </summary>
|
||||||
|
[Description("创建用户")]
|
||||||
|
public string CreateUserName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 等级
|
||||||
|
/// </summary>
|
||||||
|
[Description("等级")]
|
||||||
|
public int FlowLevel { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 实例备注
|
||||||
|
/// </summary>
|
||||||
|
[Description("实例备注")]
|
||||||
|
public string Description { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否完成,当前节点的状态也通过该值表示
|
||||||
|
/// </summary>
|
||||||
|
[Description("是否完成,当前节点的状态也通过该值表示")]
|
||||||
|
public int IsFinish { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 执行人
|
||||||
|
/// </summary>
|
||||||
|
[Description("执行人")]
|
||||||
|
public string MakerList { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 所属部门
|
||||||
|
/// </summary>
|
||||||
|
[Description("所属部门")]
|
||||||
|
public string OrgId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user