|
@@ -139,36 +139,51 @@ public abstract class WorkflowEntity : FullStateEntity, IWorkflow
|
|
|
[SugarColumn(IsNullable = true)]
|
|
|
public string? WorkflowId { get; set; }
|
|
|
|
|
|
- [SugarColumn(ColumnDataType = "varchar(2000)", IsJson = true)]
|
|
|
+ [SugarColumn(ColumnDataType = "varchar(1000)", IsJson = true)]
|
|
|
public List<string> AssignOrgCodes { get; set; } = new();
|
|
|
|
|
|
[SugarColumn(ColumnDataType = "varchar(2000)", IsJson = true)]
|
|
|
public List<string> AssignUserIds { get; set; } = new();
|
|
|
|
|
|
- public void Assign(EFlowAssignType type, string id)
|
|
|
+ [SugarColumn(ColumnDataType = "varchar(600)", IsJson = true)]
|
|
|
+ public List<string> AssignRoles { get; set; } = new();
|
|
|
+
|
|
|
+ public void Assign(EFlowAssignType type, string handler)
|
|
|
{
|
|
|
switch (type)
|
|
|
{
|
|
|
case EFlowAssignType.Org:
|
|
|
- AssignOrgCodes.Add(id);
|
|
|
+ if (!AssignOrgCodes.Exists(d => d == handler))
|
|
|
+ AssignOrgCodes.Add(handler);
|
|
|
break;
|
|
|
case EFlowAssignType.User:
|
|
|
- AssignUserIds.Add(id);
|
|
|
+ if (!AssignUserIds.Exists(d => d == handler))
|
|
|
+ AssignUserIds.Add(handler);
|
|
|
+ break;
|
|
|
+ case EFlowAssignType.Role:
|
|
|
+ if (!AssignRoles.Exists(d => d == handler))
|
|
|
+ AssignRoles.Add(handler);
|
|
|
break;
|
|
|
default:
|
|
|
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void Assign(EFlowAssignType type, IEnumerable<string> ids)
|
|
|
+ public void Assign(EFlowAssignType type, IEnumerable<string> handlers)
|
|
|
{
|
|
|
switch (type)
|
|
|
{
|
|
|
case EFlowAssignType.Org:
|
|
|
- AssignOrgCodes.AddRange(ids);
|
|
|
+ AssignOrgCodes.AddRange(handlers);
|
|
|
+ AssignOrgCodes = AssignOrgCodes.Distinct().ToList();
|
|
|
break;
|
|
|
case EFlowAssignType.User:
|
|
|
- AssignUserIds.AddRange(ids);
|
|
|
+ AssignUserIds.AddRange(handlers);
|
|
|
+ AssignUserIds = AssignUserIds.Distinct().ToList();
|
|
|
+ break;
|
|
|
+ case EFlowAssignType.Role:
|
|
|
+ AssignRoles.AddRange(handlers);
|
|
|
+ AssignRoles = AssignRoles.Distinct().ToList();
|
|
|
break;
|
|
|
default:
|
|
|
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
|
@@ -217,36 +232,51 @@ public abstract class PositionWorkflowEntity : PositionEntity, IWorkflow
|
|
|
[SugarColumn(IsNullable = true)]
|
|
|
public string? WorkflowId { get; set; }
|
|
|
|
|
|
- [SugarColumn(ColumnDataType = "varchar(2000)", IsJson = true)]
|
|
|
+ [SugarColumn(ColumnDataType = "varchar(1000)", IsJson = true)]
|
|
|
public List<string> AssignOrgCodes { get; set; } = new();
|
|
|
|
|
|
[SugarColumn(ColumnDataType = "varchar(2000)", IsJson = true)]
|
|
|
public List<string> AssignUserIds { get; set; } = new();
|
|
|
|
|
|
- public void Assign(EFlowAssignType type, string id)
|
|
|
+ [SugarColumn(ColumnDataType = "varchar(600)", IsJson = true)]
|
|
|
+ public List<string> AssignRoles { get; set; } = new();
|
|
|
+
|
|
|
+ public void Assign(EFlowAssignType type, string handler)
|
|
|
{
|
|
|
switch (type)
|
|
|
{
|
|
|
case EFlowAssignType.Org:
|
|
|
- AssignOrgCodes.Add(id);
|
|
|
+ if (!AssignOrgCodes.Exists(d => d == handler))
|
|
|
+ AssignOrgCodes.Add(handler);
|
|
|
break;
|
|
|
case EFlowAssignType.User:
|
|
|
- AssignUserIds.Add(id);
|
|
|
+ if (!AssignUserIds.Exists(d => d == handler))
|
|
|
+ AssignUserIds.Add(handler);
|
|
|
+ break;
|
|
|
+ case EFlowAssignType.Role:
|
|
|
+ if (!AssignRoles.Exists(d => d == handler))
|
|
|
+ AssignRoles.Add(handler);
|
|
|
break;
|
|
|
default:
|
|
|
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void Assign(EFlowAssignType type, IEnumerable<string> ids)
|
|
|
+ public void Assign(EFlowAssignType type, IEnumerable<string> handlers)
|
|
|
{
|
|
|
switch (type)
|
|
|
{
|
|
|
case EFlowAssignType.Org:
|
|
|
- AssignOrgCodes.AddRange(ids);
|
|
|
+ AssignOrgCodes.AddRange(handlers);
|
|
|
+ AssignOrgCodes = AssignOrgCodes.Distinct().ToList();
|
|
|
break;
|
|
|
case EFlowAssignType.User:
|
|
|
- AssignUserIds.AddRange(ids);
|
|
|
+ AssignUserIds.AddRange(handlers);
|
|
|
+ AssignUserIds = AssignUserIds.Distinct().ToList();
|
|
|
+ break;
|
|
|
+ case EFlowAssignType.Role:
|
|
|
+ AssignRoles.AddRange(handlers);
|
|
|
+ AssignRoles = AssignRoles.Distinct().ToList();
|
|
|
break;
|
|
|
default:
|
|
|
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|