Bläddra i källkod

承运订单-分包托运-去除goodsid
承运订单-完结订单逻辑修改

lengfaqiang 2 år sedan
förälder
incheckning
ec822d2b68

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java

@@ -136,7 +136,7 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     /**
      * 货物id
      */
-    @NotNull(message = "货物id不能为空")
+//    @NotNull(message = "货物id不能为空")
     private String goodsId;
 
     /**

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

@@ -57,6 +57,11 @@ public class OrderDetailVO {
      * 扣亏损值
      */
     private String deduct;
+
+    /**
+     * 商品名称
+     */
+    private String goodsId;
     /**
      * 商品名称
      */

+ 205 - 59
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -29,6 +29,7 @@ import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.order.api.model.CompleteLogisticsOrderParam;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
@@ -143,9 +144,9 @@ public class AcceptCarriageOrderService {
             log.info("承运订单-分包托运 用户id:{}", LoginUserHolder.getUserId());
             throw new RuntimeException("企业信息查询异常");
         }
-        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
-            throw new RuntimeException("当前用户企业不具有分包功能权限!");
-        }
+//        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
+//            throw new RuntimeException("当前用户企业不具有分包功能权限!");
+//        }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         if (!bo.getIsFullDose()) {
             BigDecimal amount = bo.getAmount();
@@ -238,8 +239,6 @@ public class AcceptCarriageOrderService {
         busSum.setMethod(2);
         //业务汇总数据对象
         busSum.setObject(lOrder);
-        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
-        busSum.setMethod(NumberConstant.TWO);
         streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
         //新增当前分包mongodb数据
         subcontractSendMongoDB(lOrderNo, orderId, bo, logisticsOrder, orderStatus);
@@ -291,10 +290,13 @@ public class AcceptCarriageOrderService {
         logisticsOrder.setRemark(bo.getRemark());
         logisticsOrder.setEntId(LoginUserHolder.getEntId());
         logisticsOrder.setFirmName(remoteSystemService.queryEntCacheById(LoginUserHolder.getEntId()).getFirmName());
-        logisticsOrder.setGoodsId(Long.parseLong(bo.getGoodsId()));
-        KwpGoods goods = goodsInfoService.getGoodsById(Long.parseLong(bo.getGoodsId()));
-        logisticsOrder.setGoodsType(goods == null ? null : goods.getGoodsType());
-        logisticsOrder.setGoodsSpec(goods == null ? null : goods.getSpec());
+        if (bo.getGoodsId() != null) {
+            logisticsOrder.setGoodsId(Long.parseLong(bo.getGoodsId()));
+            KwpGoods goods = goodsInfoService.getGoodsById(Long.parseLong(bo.getGoodsId()));
+            logisticsOrder.setGoodsType(goods == null ? null : goods.getGoodsType());
+            logisticsOrder.setGoodsSpec(goods == null ? null : goods.getSpec());
+        }
+        logisticsOrder.setGoodsName(bo.getGoodsName());
         logisticsOrder.setContractId(bo.getContractId());
         logisticsOrder.setContractNo(bo.getContractNo());
         logisticsOrder.setContractName(bo.getContractName());
@@ -566,7 +568,7 @@ public class AcceptCarriageOrderService {
     private void insertSubcontractLogisticsGoods(SubcontractConsignmentDTO bo, String lOrderNo, Long orderId) {
         KwtLogisticsOrderGoods kwtLogisticsOrderGoods = new KwtLogisticsOrderGoods();
         kwtLogisticsOrderGoods.setId(new IdWorker(NumberConstant.ONE).nextId());
-//        kwtLogisticsOrderGoods.setGoodsId(Long.parseLong(bo.getGoodsId()));
+        kwtLogisticsOrderGoods.setGoodsId(bo.getGoodsId() == null ? null : Long.parseLong(bo.getGoodsId()));
         kwtLogisticsOrderGoods.setGoodsName(bo.getGoodsName());
 //        kwtLogisticsOrderGoods.setSkuId(StringUtils.isBlank(bo.getSkuId()) ? null : Long.parseLong(bo.getSkuId()));
         kwtLogisticsOrderGoods.setLOrderId(orderId);
@@ -1082,6 +1084,7 @@ public class AcceptCarriageOrderService {
      * @param orderFinishDTO
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult commitAcceptCarriageOrderFinish(OrderFinishDTO orderFinishDTO) {
         /** 订单完结 物流运单状态为【待派车】、【运输中】可操作*/
         /**完结拦截 必须车辆运单无正在运输中的单据才能完结 状态有 待接单之后已核弹之前的状态 都不能完结*/
@@ -1114,35 +1117,162 @@ public class AcceptCarriageOrderService {
         if (count > NumberConstant.ZERO) {
             throw new RuntimeException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕");
         }
+        BigDecimal ignoreAmount = logisticsOrder.getAmount().subtract(logisticsOrder.getTotalLoadAmount());
+        //修改单据本身数据
+        updateDataByItself(logisticsOrder, orderFinishDTO, ignoreAmount);
+        //获取物流订单下的子单
         /**完结订单-对应物流订单下子订单都要进行完结*/
         List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .in(KwtLogisticsOrder::getPids, Long.parseLong(orderFinishDTO.getId())));
-        if (CollectionUtils.isNotEmpty(kwtLogisticsOrders)) {
-            for (KwtLogisticsOrder kwtLogisticsOrder : kwtLogisticsOrders) {
-                String[] split = kwtLogisticsOrder.getPids().split(StringConstant.COMMA);
-                if (split.length > NumberConstant.ONE) {
-                    for (String s : split) {
-                        if (String.valueOf(kwtLogisticsOrder.getId()).equals(s)) {
-                            //本身订单
-                            //只存在当前订单无分包订单
-                            /**单据完结修改状态以及数据*/
-                            updateDataByItself(logisticsOrder, orderFinishDTO);
-                        } else {
-                            //修改分包后的订单-代表存在分包订单
-                            /**单据完结修改状态以及数据*/
-                            updateDataBySubset(orderFinishDTO, s);
-                        }
-                    }
-                } else {
-                    //只存在当前订单无分包订单
-                    /**单据完结修改状态以及数据*/
-                    updateDataByItself(logisticsOrder, orderFinishDTO);
-                }
+                .eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO)
+                .apply(id != null, "FIND_IN_SET ('" + id + "', pids)").ne(KwtLogisticsOrder::getId, id));
+        /**找到该订单下所有的物流订单**/
+        //需要修改的mongodb数据
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (!org.springframework.util.CollectionUtils.isEmpty(kwtLogisticsOrders)) {
+            //修改单据状态
+//            List<Long> ids = kwtLogisticsOrders.stream().map(KwtLogisticsOrder::getId).collect(Collectors.toList());
+            //修改单据剩余运输量
+            kwtLogisticsOrders.forEach(kwtLogisticsOrder -> {
+                BigDecimal subtract = kwtLogisticsOrder.getAmount().subtract(kwtLogisticsOrder.getTotalLoadAmount());
+                updateLogisticOrderAndTrack(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
+                //新增mongodb要修改的数据
+                Map<String, Object> map = new HashMap<>();
+                map.put("id", kwtLogisticsOrder.getId());
+                map.put("ignoreAmount", subtract);
+                list.add(map);
+//                updateMongoDbByLogisticsOrder(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
+            });
+        }
+        /**是否是一级订单,是->推送至贸易,否,数据推送至物流订单上级*/
+        if (logisticsOrder.getPid() == null) {
+            //数据推送至贸易订单
+            CompleteLogisticsOrderParam tradeOrder = new CompleteLogisticsOrderParam();
+            //获取实际装货量-实际卸货量
+            Map<String, BigDecimal> map = kwtLogisticsOrderMapper.countAmountByTradeOrderId(logisticsOrder.getTOrderId());
+            //获取是否订单已经全部处理完成
+            List<Integer> orderStatusList = new ArrayList<>();
+            orderStatusList.add(LogisticsOrderEnum.TO_BE_PLANNED.getCode());
+            orderStatusList.add(LogisticsOrderEnum.PENDING_ORDER.getCode());
+            orderStatusList.add(LogisticsOrderEnum.WAIT_DELIVERY.getCode());
+            orderStatusList.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("单据完结出现错误!");
+            }
+        }
+        //修改mongodb的数据
+        updateMongoDbByLogisticsOrder(logisticsOrder.getId(), orderFinishDTO, ignoreAmount);
+        if (!CollectionUtils.isEmpty(list) && list.size() > 0) {
+            for (Map<String, Object> map : list) {
+                updateMongoDbByLogisticsOrder(Long.parseLong(map.get("id").toString()), orderFinishDTO, new BigDecimal(map.get("ignoreAmount").toString()));
             }
         }
+//        /**完结订单-对应物流订单下子订单都要进行完结*/
+//        List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+//                .in(KwtLogisticsOrder::getPids, Long.parseLong(orderFinishDTO.getId())));
+//        if (CollectionUtils.isNotEmpty(kwtLogisticsOrders)) {
+//            for (KwtLogisticsOrder kwtLogisticsOrder : kwtLogisticsOrders) {
+//                String[] split = kwtLogisticsOrder.getPids().split(StringConstant.COMMA);
+//                if (split.length > NumberConstant.ONE) {
+//                    for (String s : split) {
+//                        if (String.valueOf(kwtLogisticsOrder.getId()).equals(s)) {
+//                            //本身订单
+//                            //只存在当前订单无分包订单
+//                            /**单据完结修改状态以及数据*/
+//                            updateDataByItself(logisticsOrder, orderFinishDTO);
+//                        } else {
+//                            //修改分包后的订单-代表存在分包订单
+//                            /**单据完结修改状态以及数据*/
+//                            updateDataBySubset(orderFinishDTO, s);
+//                        }
+//                    }
+//                } else {
+//                    //只存在当前订单无分包订单
+//                    /**单据完结修改状态以及数据*/
+//                    updateDataByItself(logisticsOrder, orderFinishDTO);
+//                }
+//            }
+//        }
         return HttpResult.ok("承运订单-分包托运完结订单成功");
     }
 
+    private void updateLogisticOrderAndTrack(Long lOrderId, OrderFinishDTO orderFinishDTO, BigDecimal ignoreAmount) {
+        Integer code = LogisticsOrderEnum.HAVE_FINISHED.getCode();
+        kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                .set(KwtLogisticsOrder::getStatus, code)
+                .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
+                .set(KwtLogisticsOrder::getIgnoreAmount, ignoreAmount)
+                .set(KwtLogisticsOrder::getUpdateTime, new Date())
+                .eq(KwtLogisticsOrder::getId, lOrderId)
+        );
+        KwtLogisticsOrderTrack track = logisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
+                .eq(KwtLogisticsOrderTrack::getLOrderId, lOrderId).eq(KwtLogisticsOrderTrack::getStatus, code)
+        );
+        if (track != null) {
+            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
+                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
+                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date())
+                    .set(KwtLogisticsOrderTrack::getRemark, orderFinishDTO.getRemark())
+                    .eq(KwtLogisticsOrderTrack::getId, track.getId())
+            );
+        } else {
+            KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
+            orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
+            orderTrack.setLOrderId(lOrderId);
+            orderTrack.setRemark(orderFinishDTO.getRemark());
+            orderTrack.setStatus(code);
+            orderTrack.setCreateBy(LoginUserHolder.getUserId());
+            orderTrack.setCreateTime(new Date());
+            orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+            orderTrack.setUpdateTime(new Date());
+            orderTrack.setDelFlag(NumberConstant.ZERO);
+            logisticsOrderTrackMapper.insert(orderTrack);
+        }
+    }
+
+    /**
+     * 根据物流订单修改mongodb数据
+     *
+     * @param id             物流订单id
+     * @param orderFinishDTO
+     * @param ignoreAmount   剩余量
+     */
+    private void updateMongoDbByLogisticsOrder(Long id, OrderFinishDTO orderFinishDTO, BigDecimal ignoreAmount) {
+        //更新mongodb
+        SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+        lOrder.set_id(id);
+        lOrder.setLOrderId(id);
+        lOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getStatus());
+        lOrder.setUpdateTime(new Date());
+        lOrder.setUpdateBy(LoginUserHolder.getUserId());
+        lOrder.setUpdateByName(LoginUserHolder.getUserName());
+        lOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
+        lOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
+        lOrder.setIgnoreAmount(ignoreAmount);
+        //rabbitMq业务汇总数据发送/消费对象
+        SckwBusSum busSum = new SckwBusSum();
+        //业务汇总类型
+        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+        //操作对象(1新增/2修改/3替换数据)
+        busSum.setMethod(2);
+        //业务汇总数据对象
+        busSum.setObject(lOrder);
+        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+        busSum.setMethod(NumberConstant.TWO);
+        streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
+    }
 
     /**
      * 承运订单-分包托运-完结订单-修改本身数据
@@ -1150,39 +1280,55 @@ public class AcceptCarriageOrderService {
      * @param logisticsOrder 本身物流订单数据
      * @param orderFinishDTO 页面传递数据
      */
-    private void updateDataByItself(KwtLogisticsOrder logisticsOrder, OrderFinishDTO orderFinishDTO) {
+    private void updateDataByItself(KwtLogisticsOrder logisticsOrder, OrderFinishDTO orderFinishDTO, BigDecimal ignoreAmount) {
         logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
         logisticsOrder.setLoadAmount(orderFinishDTO.getLoadAmount());
         logisticsOrder.setUnloadAmount(orderFinishDTO.getUnloadAmount());
         logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
         logisticsOrder.setUpdateTime(new Date());
         logisticsOrder.setRemark(orderFinishDTO.getRemark());
+        logisticsOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
+        logisticsOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
+        logisticsOrder.setIgnoreAmount(ignoreAmount);
         kwtLogisticsOrderMapper.updateById(logisticsOrder);
-        KwtLogisticsOrderTrack track = new KwtLogisticsOrderTrack();
-        track.setId(new IdWorker(NumberConstant.ONE).nextId());
-        track.setLOrderId(logisticsOrder.getId());
-        track.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
-        track.setCreateTime(new Date());
-        track.setRemark(orderFinishDTO.getRemark());
-        track.setCreateBy(LoginUserHolder.getUserId());
-        track.setUpdateBy(LoginUserHolder.getUserId());
-        track.setUpdateTime(new Date());
-        logisticsOrderTrackMapper.insert(track);
-        /**单据完结修改Mongodb*/
-        SckwLogisticsOrder updateParam = new SckwLogisticsOrder();
-        updateParam.setLOrderId(Long.parseLong(orderFinishDTO.getId()))
-                .setStatus(LogisticsOrderEnum.HAVE_FINISHED.getStatus())
-                .setUpdateBy(LoginUserHolder.getUserId())
-                .setUpdateByName(LoginUserHolder.getUserName())
-                .setUpdateTime(new Date())
-                .setLoadAmount(orderFinishDTO.getLoadAmount())
-                .setUnloadAmount(orderFinishDTO.getUnloadAmount())
-        ;
-        SckwBusSum busSum = new SckwBusSum();
-        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
-        busSum.setMethod(2);
-        busSum.setObject(updateParam);
-        streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+        KwtLogisticsOrderTrack track = logisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
+                .eq(KwtLogisticsOrderTrack::getLOrderId, logisticsOrder.getId()).eq(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.HAVE_FINISHED.getCode())
+        );
+        if (track != null) {
+            logisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
+                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
+                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date())
+                    .set(KwtLogisticsOrderTrack::getRemark, orderFinishDTO.getRemark())
+                    .eq(KwtLogisticsOrderTrack::getId, track.getId())
+            );
+        } else {
+            KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
+            orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
+            orderTrack.setLOrderId(logisticsOrder.getId());
+            orderTrack.setRemark(orderFinishDTO.getRemark());
+            orderTrack.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
+            orderTrack.setCreateBy(LoginUserHolder.getUserId());
+            orderTrack.setCreateTime(new Date());
+            orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+            orderTrack.setUpdateTime(new Date());
+            orderTrack.setDelFlag(NumberConstant.ZERO);
+            logisticsOrderTrackMapper.insert(orderTrack);
+        }
+//        /**单据完结修改Mongodb*/
+//        SckwLogisticsOrder updateParam = new SckwLogisticsOrder();
+//        updateParam.setLOrderId(Long.parseLong(orderFinishDTO.getId()))
+//                .setStatus(LogisticsOrderEnum.HAVE_FINISHED.getStatus())
+//                .setUpdateBy(LoginUserHolder.getUserId())
+//                .setUpdateByName(LoginUserHolder.getUserName())
+//                .setUpdateTime(new Date())
+//                .setLoadAmount(orderFinishDTO.getLoadAmount())
+//                .setUnloadAmount(orderFinishDTO.getUnloadAmount())
+//        ;
+//        SckwBusSum busSum = new SckwBusSum();
+//        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+//        busSum.setMethod(2);
+//        busSum.setObject(updateParam);
+//        streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
     }
 
     /**
@@ -1368,7 +1514,7 @@ public class AcceptCarriageOrderService {
             orderStatus = LogisticsOrderEnum.WAIT_DELIVERY.getCode();
         } else {
             log.info("承运订单创建订单异常");
-            throw new RuntimeException("自建订单异常");
+            throw new BusinessException("自建订单异常");
         }
         /**2023-08-04 自建订单商品可以不需要关联查询*/
 //        /**获取商品信息*/

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -952,7 +952,7 @@ public class ConsignOrderService {
             orderStatus = LogisticsOrderEnum.WAIT_DELIVERY.getCode();
         } else {
             log.info("托运订单创建订单异常");
-            throw new RuntimeException("自建订单异常");
+            throw new BusinessException("自建订单异常");
         }
         saveConsignLogisticsOrder(addOrderDTO, lOrderId, orderStatus, lOrderNo);
         saveConsignLogisticsOrderAddress(addOrderDTO, lOrderId);

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -176,6 +176,7 @@ public class TransportCommonService {
             orderDetailVO.setCarrierContacts(unitTwo.getContacts());
             orderDetailVO.setCarrierPhone(unitTwo.getPhone());
         }
+        orderDetailVO.setGoodsId(String.valueOf(orderGoods == null ? null : orderGoods.getGoodsId()));
         orderDetailVO.setGoodsName(orderGoods == null ? null : orderGoods.getGoodsName());
         orderDetailVO.setNumber(logisticsOrder.getAmount() == null ? null : String.valueOf(logisticsOrder.getAmount()));
         orderDetailVO.setPrice(logisticsOrder.getPrice() == null ? null : String.valueOf(logisticsOrder.getPrice()));