当项目接近尾声的时候,客户突然过来撂下一句话“系统管理加上单据解锁的功能”,一句话隐含多少需求估计只有开发该模块的人自己清楚,但是人已经走了,如果是我的模块我一般会直接给客户改动,关键我不熟悉这块。
当时的想法就是直接写解决方案,慢慢和客户扯业务场景、扯需求。
首先和客户确定客户使用场景,为什么流程单据会被加锁?在什么情况下被加锁?
一开始我以为可能处理该单据的用户离职,需要将该用户的代办任务转签给别人,和客户沟通知道不是这种情况,
最终确定是在下面两种情况下会被加锁:
1、流程审批链(流程审批对应的审批用户)
2、共享审批池里面(一个队列,业务抢单池)
如果是第二种情况的话还好,解锁后单据会回到池子里面去,如果是第一种的情况可能就比较麻烦。
客户说主要是是审批链出现的情况多,添加此功能主要是解决审批链在作业过程中自己的单子总是被无缘无故的加锁,
如果真的是这样的话就很不可思议,搞不好还是一个bug不能算做新需求。
我当时的想法是首先个人的代办列表任务是被自己加锁了然后自己才能看到,
类似于 自己的个人邮箱里的邮件是不可能被别人加锁,只有在公共邮箱里的邮件才会被需要处理的人加锁。
问题的最后发现是流程引擎里面有两个字段一个是被加锁人,一个是代办处理人。
为什么上线到现在也有两年了到现在才发现这么个问题直到系统管理员将工作交接给别的同事的时候才提出来。
该系统管理员一直都是自己在流程控制台里面自己解决他同事提出解锁的问题,客户就那么喜欢他同事找他帮这个忙。