s-HR互斥锁使用案例之单据编辑互斥

案例场景:工作流自定义了审批界面,其中一个节点同时两个人填写,后提交的人会把先提交人填的信息覆盖掉,此时可以通过二开单据互斥,保证同时只能一个人编辑单据。 效果如下:

解决思路: 1.在单据编辑时申请互斥锁,如果没有申请到就给出友好提示信息 2.在单据保存时释放互斥锁。
二开参考代码,在二开单据handler中重写父类(EditHandler)的editAction和afterSave方法:
/**
* 编辑
*/
public String editAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
String billId = this.getBillId(request);
try {
if (billId != null) {
//申请互斥锁,成功返回true
boolean requestObjIDForUpdate = NetCtrlHelper.requestObjIDForUpdate(billId);
if(!requestObjIDForUpdate){
IMutexServiceControl mutexService = MutexServiceControlFactory.getRemoteInstance();
ObjectUpdateLock objectUpdateLock = mutexService.getObjectUpdateLock(billId);
String userName = objectUpdateLock.getUserName();
throw new ShrWebBizException("当前单据正在被"+user
s-HR互斥锁使用案例之单据编辑互斥
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



