Foxtable(狐表)用户栏目专家坐堂 → [求助]流程审批并发处理


  共有4875人关注过本帖树形打印复制链接

主题:[求助]流程审批并发处理

帅哥哟,离线,有人找我吗?
chnfo
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2216 积分:18231 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2022/3/25 17:26:00 [显示全部帖子]

Dim dic As new Dictionary(of String,List(of String)) '定义一个字典,以业务ID为键,审核流水集合作为值

'当接收到客户端传来的信息时,就做下面的这个处理
Dim s As String = "业务ID|环节ID,审核意见"
Dim BusiID As String = s.Split("|")(0)  '业务ID
Dim Auditer As String = s.Split("|")(1)  '业务ID对应的审核意见

If dic.ContainsKey(BusiID) = False Then
    Dim lst As new List(of String)
    lst.add(Auditer)
    dic.add(BusiID ,lst)
Else
    Dim lst As  List(of String) = dic(BusiID )
    lst.add(Auditer)
    dic.add(BusiID ,lst)
End If

''接下来处理这些业务ID的审核流水
For Each x As String In dic.Keys
    Dim lst As List(of String) = dic(x)
    Functions.AsyncExecute("执行判断",x,lst)  '这里定义一个函数来判断下一步是否能执行等等
    dic.Remove(x)  ''' 好象这样是不行的,不能在遍历字典的时候清除键
Next


'''似乎可以这样。但是这样会导致一个问题,就是最后加进来的流水会优先处理,是不是先排进来的一直在等待?
For i As Integer = dic.Count - 1 To 0 Step -1
    Dim x As String = dic.Keys(i)
    Output.Show(dic(x))
    dic.Remove(x)
Next
'执行判断的函数

[此贴子已经被作者于2022/3/25 17:35:08编辑过]

 回到顶部
总数 12 上一页 1 2