修复用户绑定设备逻辑以确保原子操作
调整FactoryUserServiceImpl中用户与考勤设备绑定的逻辑。在异常情况下,现在会清除用户绑定的设备,并且在最终块中重新尝试绑定操作,确保数据库状态与实际业务流程一致。
This commit is contained in:
parent
c4b5279167
commit
e2c650a7fd
@ -101,7 +101,7 @@ public class FactoryUserServiceImpl implements FactoryUserService{
|
||||
usersExtDO.setUserId(user.getId());
|
||||
usersExtDO.setDeptId(deptDO.getId());
|
||||
usersExtDO.setAttendanceMachineNos(convertList(attendanceMachineDOS, AttendanceMachineDO::getDeviceNo));
|
||||
usersExtService.createUsers(usersExtDO);
|
||||
// usersExtService.createUsers(usersExtDO);
|
||||
// 工厂用户添加到GPS定位系统中
|
||||
adminUserService.gpsIncrementalSynchronizationOfUsers(user);
|
||||
try {
|
||||
@ -118,12 +118,21 @@ public class FactoryUserServiceImpl implements FactoryUserService{
|
||||
|
||||
// 发送指令至 考勤设备 下发员工
|
||||
websocketService.sendSn(machineDO.getDeviceNo(), addUserVO, 1);
|
||||
|
||||
// 下发成功则设置 用户绑定设备
|
||||
usersExtDO.setAttendanceMachineNos(convertList(attendanceMachineDOS, AttendanceMachineDO::getDeviceNo));
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
|
||||
// 手动回滚
|
||||
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
|
||||
// 下发失败则清空 用户绑定设备
|
||||
usersExtDO.setAttendanceMachineNos(null);
|
||||
return ex.getMessage();
|
||||
}finally {
|
||||
|
||||
usersExtService.createUsers(usersExtDO);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
Loading…
Reference in New Issue
Block a user