瀏覽代碼

供应商查看物流

chao 3 年之前
父節點
當前提交
5f241e8fac

+ 18 - 1
src/main/java/com/caimei365/order/controller/ShipApi.java

@@ -123,6 +123,23 @@ public class ShipApi {
         return shipService.getDeliveryRecord(shopOrderId, pageNum, pageSize);
     }
 
-
+    /**
+     * 供应商查看物流
+     */
+    @ApiOperation("供应商查看物流(旧:/supplier/logisticsInfo)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "shopOrderId", value = "子订单Id"),
+            @ApiImplicitParam(required = true, name = "logisticsBatchId", value = "发货物流批次Id")
+    })
+    @GetMapping("/ship/logistics/info")
+    public ResponseJson<Map<String, Object>> getLogisticsInfo(Integer shopOrderId, Integer logisticsBatchId) {
+        if (null == shopOrderId) {
+            return ResponseJson.error("子订单Id不能为空!", null);
+        }
+        if (null == logisticsBatchId) {
+            return ResponseJson.error("发货物流批次Id不能为空!", null);
+        }
+        return shipService.getLogisticsInfo(shopOrderId, logisticsBatchId);
+    }
 
 }

+ 6 - 4
src/main/java/com/caimei365/order/mapper/ShipMapper.java

@@ -3,10 +3,7 @@ package com.caimei365.order.mapper;
 import com.caimei365.order.model.po.LogisticsBatchPo;
 import com.caimei365.order.model.po.LogisticsInformationPo;
 import com.caimei365.order.model.po.LogisticsRecordPo;
-import com.caimei365.order.model.vo.CompanyVo;
-import com.caimei365.order.model.vo.OrderProductVo;
-import com.caimei365.order.model.vo.OrderVo;
-import com.caimei365.order.model.vo.ShopOrderVo;
+import com.caimei365.order.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -93,4 +90,9 @@ public interface ShipMapper {
      * @param shopOrderId 子订单Id
      */
     Integer getOrderIdByShopOrder(Integer shopOrderId);
+    /**
+     * 发货物流批次
+     * @param logisticsBatchId 发货物流批次Id
+     */
+    LogisticsBatchVo getLogisticsBatchById(Integer logisticsBatchId);
 }

+ 6 - 0
src/main/java/com/caimei365/order/service/ShipService.java

@@ -62,4 +62,10 @@ public interface ShipService {
      * @param pageSize       每页数量
      */
     ResponseJson<Map<String, Object>> getDeliveryRecord(Integer shopOrderId, int pageNum, int pageSize);
+    /**
+     * 供应商查看物流
+     * @param shopOrderId       子订单Id
+     * @param logisticsBatchId  发货物流批次Id
+     */
+    ResponseJson<Map<String, Object>> getLogisticsInfo(Integer shopOrderId, Integer logisticsBatchId);
 }

+ 68 - 16
src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java

@@ -358,22 +358,8 @@ public class ShipServiceImpl implements ShipService {
                 List<LogisticsRecordVo> recordList = orderCommonMapper.getLogisticsRecord(shopOrderId, batchVo.getId());
                 if (null != recordList && recordList.size() > 0) {
                     for (LogisticsRecordVo recordVo : recordList) {
-                        OrderProductVo orderProduct = shipMapper.getOrderProductById(recordVo.getOrderProductId());
-                        recordVo.setBuyNum(orderProduct.getNum() + orderProduct.getPresentNum());
-                        recordVo.setImage(orderProduct.getImage());
-                        recordVo.setUnit(orderProduct.getProductUnit());
-                        // 已发货数量
-                        int shipmentsNum = orderProduct.getNum() + orderProduct.getPresentNum() - orderProduct.getNotOutStore();
-                        recordVo.setShipmentsNum(shipmentsNum);
-                        // 已退货数量
-                        Integer returnedNum = orderCommonMapper.countReturnedNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
-                        returnedNum = null != returnedNum ? returnedNum : 0;
-                        recordVo.setReturnedNum(returnedNum);
-                        // 已取消发货数量
-                        Integer actualCancelNum = orderCommonMapper.countActualCancelNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
-                        actualCancelNum = null != actualCancelNum ? actualCancelNum : 0;
-                        // 未发货数量
-                        recordVo.setNotShippedNum(orderProduct.getNotOutStore() - actualCancelNum);
+                        // 设置 已发,已退,已取消发货数量
+                        setLogisticsRecordNum(recordVo);
                     }
                 }
                 batchVo.setLogisticsRecordList(recordList);
@@ -401,5 +387,71 @@ public class ShipServiceImpl implements ShipService {
         return ResponseJson.success(map);
     }
 
+    private void setLogisticsRecordNum(LogisticsRecordVo recordVo) {
+        OrderProductVo orderProduct = shipMapper.getOrderProductById(recordVo.getOrderProductId());
+        recordVo.setBuyNum(orderProduct.getNum() + orderProduct.getPresentNum());
+        recordVo.setImage(orderProduct.getImage());
+        recordVo.setUnit(orderProduct.getProductUnit());
+        // 已发货数量
+        int shipmentsNum = orderProduct.getNum() + orderProduct.getPresentNum() - orderProduct.getNotOutStore();
+        recordVo.setShipmentsNum(shipmentsNum);
+        // 已退货数量
+        Integer returnedNum = orderCommonMapper.countReturnedNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
+        returnedNum = null != returnedNum ? returnedNum : 0;
+        recordVo.setReturnedNum(returnedNum);
+        // 已取消发货数量
+        Integer actualCancelNum = orderCommonMapper.countActualCancelNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
+        actualCancelNum = null != actualCancelNum ? actualCancelNum : 0;
+        // 未发货数量
+        recordVo.setNotShippedNum(orderProduct.getNotOutStore() - actualCancelNum);
+    }
+
+    /**
+     * 供应商查看物流
+     *
+     * @param shopOrderId      子订单Id
+     * @param logisticsBatchId 发货物流批次Id
+     */
+    @Override
+    public ResponseJson<Map<String, Object>> getLogisticsInfo(Integer shopOrderId, Integer logisticsBatchId) {
+        // 发货物流批次
+        LogisticsBatchVo logisticsBatch = shipMapper.getLogisticsBatchById(logisticsBatchId);
+        if (null == logisticsBatch) {
+            return ResponseJson.error("物流异常,logisticsBatchID:" + logisticsBatchId, null);
+        }
+        OrderUserinfoVo userInfo = addressMapper.getOrderUserinfo(logisticsBatch.getOrderId());
+        // 获取发货物流记录
+        List<LogisticsRecordVo> recordList = orderCommonMapper.getLogisticsRecord(shopOrderId, logisticsBatch.getId());
+        if (null != recordList && recordList.size() > 0) {
+            for (LogisticsRecordVo recordVo : recordList) {
+                // 设置 已发,已退,已取消发货数量
+                setLogisticsRecordNum(recordVo);
+            }
+        }
+        // 获取物流信息
+        List<LogisticsInformationVo> logisticsInfoList = orderCommonMapper.getLogisticsInfoList(logisticsBatch.getId());
+        logisticsInfoList.forEach(logisticsInfo -> {
+            List<LogisticsRouterVo> routers = JSONArray.parseArray(logisticsInfo.getInfo(), LogisticsRouterVo.class);
+            if (!CollectionUtils.isEmpty(routers)) {
+                routers.forEach(router -> {
+                    if (org.apache.commons.lang3.StringUtils.isEmpty(router.getDesc())) {
+                        router.setDesc(router.getContext());
+                    }
+                });
+                logisticsInfo.setRouterList(routers);
+            }
+        });
+        logisticsBatch.setLogisticsRecordList(recordList);
+        logisticsBatch.setLogisticsInformationList(logisticsInfoList);
+        if (StringUtils.isNotBlank(logisticsBatch.getRemarkImage())) {
+            String[] remarkImages = logisticsBatch.getRemarkImage().split("##");
+            logisticsBatch.setRemarkImages(remarkImages);
+        }
+        Map<String, Object> map = new HashMap<>(2);
+        map.put("userInfo", userInfo);
+        map.put("logisticsBatch", logisticsBatch);
+        return ResponseJson.success(map);
+    }
+
 
 }

+ 16 - 0
src/main/resources/mapper/ShipMapper.xml

@@ -189,4 +189,20 @@
         SELECT orderID FROM cm_shop_order
         WHERE shopOrderID = #{shopOrderId} AND delFlag = '0'
     </select>
+    <select id="getLogisticsBatchById" resultType="com.caimei365.order.model.vo.LogisticsBatchVo">
+        SELECT
+        id,
+        shopOrderID AS shopOrderId,
+        orderID AS orderId,
+        outStoreTimes,
+        status,
+        mailer,
+        shopID AS shopId,
+        updateDate,
+        deliveryTime,
+        receiptTime,
+        remarkImage,
+        remark
+        FROM cm_logistics_batch WHERE id= #{logisticsBatchId}
+    </select>
 </mapper>