|
|
@@ -27,6 +27,7 @@ import com.sckw.mongo.enums.BusinessTypeEnum;
|
|
|
import com.sckw.mongo.model.SckwLogisticsOrder;
|
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
import com.sckw.order.api.model.AddressInfoDetail;
|
|
|
+import com.sckw.order.api.model.CompleteLogisticsOrderParam;
|
|
|
import com.sckw.order.api.model.CreateOrCancelLogisticsOrderParam;
|
|
|
import com.sckw.order.api.model.OrderDetailRes;
|
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
@@ -181,6 +182,18 @@ public class LogisticsConsignmentService {
|
|
|
insertLogisticsOrderAddress(bo, orderId);
|
|
|
insertLogisticsOrderTrack(bo, orderId, orderStatus);
|
|
|
sendMongoDB(lOrderNo, orderId, bo, tradeOrder, orderStatus);
|
|
|
+
|
|
|
+ /**将生成的分配量->贸易订单*/
|
|
|
+ CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
|
|
|
+ param.setTOrderId(Long.valueOf(bo.getTOrderId()));
|
|
|
+ param.setEntrustAmount(BigDecimal.valueOf(bo.getCarryingCapacity()));
|
|
|
+ param.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ param.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
|
|
|
+ if (httpResult.getCode() != HttpStatus.SUCCESS_CODE){
|
|
|
+ log.info("{}生成物流托运失败!,返回信息:{}",bo.getTOrderNo(),JSONObject.toJSONString(httpResult));
|
|
|
+ throw new BusinessException("{}生成物流托运失败!",bo.getTOrderNo());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1048,9 +1061,35 @@ public class LogisticsConsignmentService {
|
|
|
BigDecimal subtract = kwtLogisticsOrder.getAmount().subtract(kwtLogisticsOrder.getTotalLoadAmount());
|
|
|
updateLogisticOrderAndTrack(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
|
|
|
//修改mongodb的数据
|
|
|
- updateMongoDbByLogisticsOrder(kwtLogisticsOrder,orderFinishDTO);
|
|
|
+ updateMongoDbByLogisticsOrder(kwtLogisticsOrder, orderFinishDTO);
|
|
|
});
|
|
|
}
|
|
|
+ //数据推送至贸易订单
|
|
|
+ CompleteLogisticsOrderParam tradeOrder = new CompleteLogisticsOrderParam();
|
|
|
+ //获取实际装货量-实际卸货量
|
|
|
+ Map<String, BigDecimal> map = kwtLogisticsOrderMapper.countAmountByTradeOrderId(logisticsOrder.getTOrderId());
|
|
|
+ //获取是否订单已经全部处理完成
|
|
|
+ List<Integer> statusList = new ArrayList<>();
|
|
|
+ statusList.add(LogisticsOrderEnum.TO_BE_PLANNED.getCode());
|
|
|
+ statusList.add(LogisticsOrderEnum.PENDING_ORDER.getCode());
|
|
|
+ statusList.add(LogisticsOrderEnum.WAIT_DELIVERY.getCode());
|
|
|
+ statusList.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
|
|
|
+ List<KwtLogisticsOrder> logisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
+ .eq(KwtLogisticsOrder::getTOrderId, logisticsOrder.getTOrderId())
|
|
|
+ .in(KwtLogisticsOrder::getStatus, statusList));
|
|
|
+ if (org.springframework.util.CollectionUtils.isEmpty(logisticsOrders)) {
|
|
|
+ tradeOrder.setIsAllComplete(true);
|
|
|
+ }
|
|
|
+ tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
|
|
|
+ tradeOrder.setActualLoadAmount(map.get("totalLoadAmount"));
|
|
|
+ tradeOrder.setActualUnloadAmount(map.get("totalUnloadAmount"));
|
|
|
+ tradeOrder.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ tradeOrder.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ HttpResult httpResult = tradeOrderInfoService.completeLogisticsOrder(tradeOrder);
|
|
|
+ if (httpResult.getCode() != HttpStatus.SUCCESS_CODE){
|
|
|
+ log.info("贸易订单手动完结订单异常,传递信息:{},返回信息:{}",JSONObject.toJSONString(tradeOrder),JSONObject.toJSONString(httpResult));
|
|
|
+ throw new BusinessException("单据完结出现错误!");
|
|
|
+ }
|
|
|
//todo 直接订单完结-不递归操作
|
|
|
//
|
|
|
// //存在子集
|