现在在做一个工作流的项目。问题是这样的:
工作流的审批步骤有并签和汇签两个属性。
现在有一个并签的待审批步骤,审批人有A和B。情景是A和B同时打开审批页面,A先于B审批通过后,该步骤审批完成。
此时B进行审批,因为B不知道A已经审批完成。所以这时候就会出现两个错误:
一、B审批完取不到应有的数据导致后台报错。
二、A审批通过后,这个流程已经指向工作流中当前审批步骤之后的下一步,如果B也存在与这个步骤,那么B依然会进行审批,这就造成了步骤错乱。
大佬们帮下忙看这个问题该怎么解决
1:AB并签的问题可以这样解决,每次审批时根据审批流程的id或许这个流程的状态,如果已经审批了就给个提示。(每次审批都要去数据库查询一下这个流程的状态)
2:跟上面1一样,每次审批都要查询下这个流程的状态,是否在当前节点已经审批过,如果审批了则直接提示第二个人。
其实这种类似于并发访问的问题,你可以自己在业务上做控制,比如一个任务只能由同时由一个人认领,或者工作流本身支不支持多线程问题,加锁之类的。
a和b 操作的时候 提前判断一下数据状态是否一致 (本质是脏数据问题)。基本上意思等同楼上的说法。就不重复了。
在执行审批之前先查询一次看看该节点是否审批,如果审批了就提示已审批,否者就执行跟新;