|
|
@@ -206,7 +206,46 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
|
|
|
@Override
|
|
|
public HttpResult updateActualAmount(UpdateActualAmountParam param) {
|
|
|
- return null;
|
|
|
+ Long id = param.getTOrderId();
|
|
|
+ BigDecimal actualLoadAmount = param.getActualLoadAmount();
|
|
|
+ BigDecimal actualUnloadAmount = param.getActualUnloadAmount();
|
|
|
+ Long updateBy = param.getUpdateBy();
|
|
|
+ String updateByName = param.getUpdateByName();
|
|
|
+ if (Objects.isNull(actualLoadAmount) || Objects.isNull(actualUnloadAmount)) {
|
|
|
+ return HttpResult.error("装卸总量不能为空!");
|
|
|
+ }
|
|
|
+ if (Objects.isNull(updateBy) || StringUtils.isBlank(updateByName)) {
|
|
|
+ return HttpResult.error("操作人信息不能为空!");
|
|
|
+ }
|
|
|
+ String lockKey = String.format(RedisConstant.TORDER_UPDATE_AMOUNT_KEY, id);
|
|
|
+ if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 5L, 10L))) {
|
|
|
+ return HttpResult.error("业务繁忙,请稍后再试!");
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ KwoTradeOrder order = kwoTradeOrderService.getById(id);
|
|
|
+ if (Objects.isNull(order)) {
|
|
|
+ return HttpResult.error("订单不存在!");
|
|
|
+ }
|
|
|
+ if (!Objects.equals(order.getStatus(), OrderStatusEnum.EXECUTING.getCode())) {
|
|
|
+ return HttpResult.error("执行中的订单才可物流托运!");
|
|
|
+ }
|
|
|
+ BigDecimal addActualAmount = Objects.equals(order.getDeliveryType(), DeliveryTypeEnum.ISSUE.getType())
|
|
|
+ ? actualLoadAmount : actualUnloadAmount;
|
|
|
+ order.setActualAmount(addActualAmount).setUpdateBy(param.getUpdateBy());
|
|
|
+ kwoTradeOrderService.updateById(order);
|
|
|
+ //更新mongodb
|
|
|
+ SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
|
+ updateParam.setTOrderId(order.getId())
|
|
|
+ .setActualAmount(addActualAmount.doubleValue())
|
|
|
+ .setStatus(order.getStatus())
|
|
|
+ .setUpdateBy(param.getUpdateBy())
|
|
|
+ .setUpdateByName(param.getUpdateByName())
|
|
|
+ .setUpdateTime(new Date());
|
|
|
+ saveMongoDb(updateParam);
|
|
|
+ } finally {
|
|
|
+ RedissonUtils.unlock(lockKey);
|
|
|
+ }
|
|
|
+ return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
@Override
|