|
|
@@ -58,6 +58,7 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult updateOrderStatus(UpdateOrderStatusParam param) {
|
|
|
+ log.info("更新订单状态入参:{}", JSON.toJSONString(param));
|
|
|
if (Objects.isNull(param.getUpdateBy()) || StringUtils.isBlank(param.getUpdateByName())) {
|
|
|
return HttpResult.error("操作人信息不能为空!");
|
|
|
}
|
|
|
@@ -102,6 +103,7 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult createOrCancelLogisticsOrder(CreateOrCancelLogisticsOrderParam param) {
|
|
|
+ log.info("生成或撤销物流订单入参:{}", JSON.toJSONString(param));
|
|
|
Long id = param.getTOrderId();
|
|
|
BigDecimal entrustAmount = param.getEntrustAmount();
|
|
|
Long updateBy = param.getUpdateBy();
|
|
|
@@ -113,7 +115,7 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
return HttpResult.error("任务量不能为空!");
|
|
|
}
|
|
|
String lockKey = String.format(RedisConstant.TORDER_UPDATE_AMOUNT_KEY, id);
|
|
|
- if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 10L, 30L))) {
|
|
|
+ if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 5L, 10L))) {
|
|
|
return HttpResult.error("业务繁忙,请稍后再试!");
|
|
|
}
|
|
|
try {
|
|
|
@@ -135,15 +137,16 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
updateParam.setTOrderId(order.getId()).setEntrustAmount(totalEntrustAmount)
|
|
|
.setUpdateBy(param.getUpdateBy()).setUpdateByName(param.getUpdateByName()).setUpdateTime(new Date());
|
|
|
saveMongoDb(updateParam);
|
|
|
- return HttpResult.ok();
|
|
|
} finally {
|
|
|
RedissonUtils.unlock(lockKey);
|
|
|
}
|
|
|
+ return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult completeLogisticsOrder(CompleteLogisticsOrderParam param) {
|
|
|
+ log.info("物流订单完结入参:{}", JSON.toJSONString(param));
|
|
|
Long id = param.getTOrderId();
|
|
|
BigDecimal entrustAmount = param.getEntrustAmount();
|
|
|
BigDecimal actualLoadAmount = param.getActualLoadAmount();
|
|
|
@@ -160,7 +163,7 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
return HttpResult.error("物流订单是否已全部完结不能为空!");
|
|
|
}
|
|
|
String lockKey = String.format(RedisConstant.TORDER_UPDATE_AMOUNT_KEY, id);
|
|
|
- if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 10L, 30L))) {
|
|
|
+ if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 5L, 10L))) {
|
|
|
return HttpResult.error("业务繁忙,请稍后再试!");
|
|
|
}
|
|
|
try {
|
|
|
@@ -192,47 +195,58 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
updateParam.setTOrderId(order.getId()).setEntrustAmount(totalEntrustAmount).setActualAmount(totalActualAmount)
|
|
|
.setStatus(order.getStatus()).setUpdateBy(param.getUpdateBy()).setUpdateByName(param.getUpdateByName()).setUpdateTime(new Date());
|
|
|
saveMongoDb(updateParam);
|
|
|
- return HttpResult.ok();
|
|
|
} finally {
|
|
|
RedissonUtils.unlock(lockKey);
|
|
|
}
|
|
|
+ return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void contractSignCompleted(ContractSignCompletedParam param) {
|
|
|
+ log.info("合同签约完成入参:{}", JSON.toJSONString(param));
|
|
|
if (Objects.isNull(param.getUpdateBy()) || StringUtils.isBlank(param.getUpdateByName())) {
|
|
|
throw new BusinessException("操作人信息不能为空!");
|
|
|
}
|
|
|
Long contractId = param.getContractId();
|
|
|
Long updateBy = param.getUpdateBy();
|
|
|
- List<KwoTradeOrderContract> contracts = kwoTradeOrderContractService.getByContractId(contractId);
|
|
|
- if (CollectionUtils.isEmpty(contracts)) {
|
|
|
- log.info("合同:{}无相关联待签约的贸易订单", contractId);
|
|
|
- return;
|
|
|
+
|
|
|
+ String lockKey = String.format(RedisConstant.TORDER_CONTRACT_UPDATE_KEY, param.getContractId());
|
|
|
+ if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 5L, 10L))) {
|
|
|
+ throw new BusinessException("业务繁忙,请稍后再试!");
|
|
|
}
|
|
|
- List<Long> tOrderIds = contracts.stream().map(KwoTradeOrderContract::getTOrderId).toList();
|
|
|
- List<KwoTradeOrder> orders = kwoTradeOrderService.getWaitSignByIds(tOrderIds);
|
|
|
- if (CollectionUtils.isEmpty(orders)) {
|
|
|
- log.info("合同:{}无相关联待签约的贸易订单", contractId);
|
|
|
- return;
|
|
|
+ try {
|
|
|
+ List<KwoTradeOrderContract> contracts = kwoTradeOrderContractService.getByContractId(contractId);
|
|
|
+ if (CollectionUtils.isEmpty(contracts)) {
|
|
|
+ log.info("合同:{}无相关联待签约的贸易订单", contractId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Long> tOrderIds = contracts.stream().map(KwoTradeOrderContract::getTOrderId).toList();
|
|
|
+ List<KwoTradeOrder> orders = kwoTradeOrderService.getWaitSignByIds(tOrderIds);
|
|
|
+ if (CollectionUtils.isEmpty(orders)) {
|
|
|
+ log.info("合同:{}无相关联待签约的贸易订单", contractId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<KwoTradeOrderTrack> tracks = Lists.newArrayList();
|
|
|
+ List<SckwTradeOrder> tradeOrders = Lists.newArrayList();
|
|
|
+ List<Long> ids = orders.stream().map(KwoTradeOrder::getId).toList();
|
|
|
+
|
|
|
+ kwoTradeOrderService.contractCompletedUpdate(ids, updateBy);
|
|
|
+ orders.forEach(e -> {
|
|
|
+ KwoTradeOrderTrack track = new KwoTradeOrderTrack();
|
|
|
+ track.setTOrderId(e.getId()).setTOrderNo(e.getTOrderNo()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_4.getValue()))
|
|
|
+ .setCreateBy(updateBy).setUpdateBy(updateBy);
|
|
|
+ tracks.add(track);
|
|
|
+ SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
|
+ updateParam.setTOrderId(e.getId()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_4.getValue()))
|
|
|
+ .setUpdateBy(updateBy).setUpdateByName(param.getUpdateByName()).setUpdateTime(new Date());
|
|
|
+ tradeOrders.add(updateParam);
|
|
|
+ });
|
|
|
+ kwoTradeOrderTrackService.insertBatch(tracks);
|
|
|
+ tradeOrders.forEach(this::saveMongoDb);
|
|
|
+ } finally {
|
|
|
+ RedissonUtils.unlock(lockKey);
|
|
|
}
|
|
|
- List<KwoTradeOrderTrack> tracks = Lists.newArrayList();
|
|
|
- List<SckwTradeOrder> tradeOrders = Lists.newArrayList();
|
|
|
- List<Long> ids = orders.stream().map(KwoTradeOrder::getId).toList();
|
|
|
- kwoTradeOrderService.contractCompletedUpdate(ids, updateBy);
|
|
|
- orders.forEach(e -> {
|
|
|
- KwoTradeOrderTrack track = new KwoTradeOrderTrack();
|
|
|
- track.setTOrderId(e.getId()).setTOrderNo(e.getTOrderNo()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_4.getValue()))
|
|
|
- .setCreateBy(updateBy).setUpdateBy(updateBy);
|
|
|
- tracks.add(track);
|
|
|
- SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
|
- updateParam.setTOrderId(e.getId()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_4.getValue()))
|
|
|
- .setUpdateBy(updateBy).setUpdateByName(param.getUpdateByName()).setUpdateTime(new Date());
|
|
|
- tradeOrders.add(updateParam);
|
|
|
- });
|
|
|
- kwoTradeOrderTrackService.insertBatch(tracks);
|
|
|
- tradeOrders.forEach(this::saveMongoDb);
|
|
|
}
|
|
|
|
|
|
/**
|