|
|
|
@ -1705,8 +1705,8 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { |
|
|
|
|
return redInvoiceRespPo; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// @Resource
|
|
|
|
|
// private RedissonClient redisson;
|
|
|
|
|
@Resource |
|
|
|
|
private RedissonClient redisson; |
|
|
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
|
@Override |
|
|
|
@ -1718,12 +1718,12 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { |
|
|
|
|
//组装发票报文
|
|
|
|
|
//金额、数量、税额跟跟换为负数,折扣行要与被折扣行合并
|
|
|
|
|
//校验重复提交数据覆盖问题
|
|
|
|
|
// RLock lock = redisson.getLock(redInvoiceSaveReqPo.getFpqqlsh());
|
|
|
|
|
RLock lock = redisson.getLock(redInvoiceSaveReqPo.getFpqqlsh()); |
|
|
|
|
// boolean redRedisLock = redisService.setNx(redInvoiceSaveReqPo.getFpqqlsh(), key, RedisConstant.REDIS_EXPIRE_TIME_2HOUR);
|
|
|
|
|
for (int i = 0; i < 3; i++) { |
|
|
|
|
// try {
|
|
|
|
|
// if(!lock.isLocked()){
|
|
|
|
|
// lock.lock();
|
|
|
|
|
try { |
|
|
|
|
if(!lock.isLocked()){ |
|
|
|
|
lock.lock(); |
|
|
|
|
Map<String, String> paramMap = redisService.pullAllHashMap(key); |
|
|
|
|
if(paramMap != null){ |
|
|
|
|
String value = redisService.pullHashMap(key, innerKey); |
|
|
|
@ -1750,16 +1750,16 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService { |
|
|
|
|
redisService.set(redSyjeKey,syfpje); |
|
|
|
|
hashMap.put(redItemList.get(0).getId(),syfpje); |
|
|
|
|
} |
|
|
|
|
// lock.unlock();
|
|
|
|
|
lock.unlock(); |
|
|
|
|
return R.ok().put(OrderManagementConstant.DATA,hashMap); |
|
|
|
|
// } else {
|
|
|
|
|
// Thread.sleep(2000);
|
|
|
|
|
// log.info("获取redis锁请等待,三次之后还是获取锁失败则返回。。。");
|
|
|
|
|
// }
|
|
|
|
|
// } catch (InterruptedException e) {
|
|
|
|
|
// lock.unlock();
|
|
|
|
|
// throw new RuntimeException(e);
|
|
|
|
|
// }
|
|
|
|
|
} else { |
|
|
|
|
Thread.sleep(2000); |
|
|
|
|
log.info("获取redis锁请等待,三次之后还是获取锁失败则返回。。。"); |
|
|
|
|
} |
|
|
|
|
} catch (InterruptedException e) { |
|
|
|
|
lock.unlock(); |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|