Переглянути джерело

Merge remote-tracking branch 'origin/bjcz_his_scrm' into bjcz_his_scrm

# Conflicts:
#	fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java
吴树波 1 тиждень тому
батько
коміт
3b8302fb05

+ 2 - 2
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java

@@ -377,7 +377,7 @@ public class FsStoreHealthOrderScrmController extends BaseController {
     //订单发货批量导入
     @Log(title = "发货同步导入", businessType = BusinessType.IMPORT)
     @PostMapping("/importDeliveryNoteExpress")
-    public R importDeliveryNoteExpress(@RequestParam("file") MultipartFile file,@RequestParam("miniAppId") String miniAppId) {
+    public R importDeliveryNoteExpress(@RequestParam("file") MultipartFile file,@RequestParam("miniAppId") String miniAppId,@RequestParam("shipmentType") Integer shipmentType) {
         // 1. 检查文件是否为空
         if (file.isEmpty()) {
             return R.error("上传的文件不能为空");
@@ -399,7 +399,7 @@ public class FsStoreHealthOrderScrmController extends BaseController {
                 if(dtoList.size() > 200){
                     R.error("操作失败,导入数据不能大于200条!");
                 }
-               return fsStoreOrderService.importDeliveryNoteExpress(dtoList,miniAppId);
+               return fsStoreOrderService.importDeliveryNoteExpress(dtoList,miniAppId,shipmentType);
             }else {
                 R.error("操作失败,导入数据不能小于1条!");
             }

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreOrderScrmService.java

@@ -296,7 +296,7 @@ public interface IFsStoreOrderScrmService
      * @param dtoList 订单数据
      * @param appId 小程序ID
      * **/
-    R importDeliveryNoteExpress(List<FsOrderDeliveryNoteDTO> dtoList,String appId);
+    R importDeliveryNoteExpress(List<FsOrderDeliveryNoteDTO> dtoList,String appId,Integer shipmentType);
 
     /**
      * 查询app商城订单金额统计信息

+ 63 - 42
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -4105,7 +4105,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R importDeliveryNoteExpress(List<FsOrderDeliveryNoteDTO> dtoList, String appId) {
+    public R importDeliveryNoteExpress(List<FsOrderDeliveryNoteDTO> dtoList, String appId,Integer shipmentType) {
         try {
             StringBuilder builder = new StringBuilder();
             //获取商城配置
@@ -4236,7 +4236,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 if (config.getIsWeChatShipping() != null && config.getIsWeChatShipping()) {
                     // 上传物流信息到微信
                     List<FsStoreOrderCodeOpenIdVo> orderDetails = orderDetailsMap.get(orderNumber);
-                    if (uploadShippingInfoToWechat(wxService, orderInfo, orderDetails, dto, uploadTime)) {
+                    if (uploadShippingInfoToWechat(wxService, orderInfo, orderDetails, dto, uploadTime,shipmentType)) {
                         successList.add(dto);
                     } else {
                         builder.append("数据第").append(rowNum).append("行订单号为")
@@ -5631,47 +5631,68 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         return value == null ? BigDecimal.ZERO : value;
     }
 
-//    private boolean uploadShippingInfoToWechat(WxMaService wxService, OrderOpenIdTransDTO orderInfo, List<FsStoreOrderCodeOpenIdVo> orderDetails, FsOrderDeliveryNoteDTO dto, String uploadTime) {
-//        try {
-//            WxMaOrderShippingInfoUploadRequest request = new WxMaOrderShippingInfoUploadRequest();
-//            OrderKeyBean orderKeyBean = new OrderKeyBean();
-//            orderKeyBean.setOrderNumberType(2);
-//            orderKeyBean.setTransactionId(orderInfo.getTransactionId());
-//            request.setOrderKey(orderKeyBean);
-//            request.setDeliveryMode(1);
-//            request.setLogisticsType(1);
-//            List<ShippingListBean> shippingList = new ArrayList<>(orderDetails.size());
-//            ShippingListBean shippingListBean = null;
-//            for (FsStoreOrderCodeOpenIdVo detail : orderDetails) {
-//                if (shippingListBean == null) {
-//                    shippingListBean = new ShippingListBean();
-//                    shippingListBean.setTrackingNo(dto.getDeliveryId());
-//                    shippingListBean.setExpressCompany(dto.getDeliverySn());
+    private boolean uploadShippingInfoToWechat(WxMaService wxService,
+                                               OrderOpenIdTransDTO orderInfo,
+                                               List<FsStoreOrderCodeOpenIdVo> orderDetails,
+                                               FsOrderDeliveryNoteDTO dto,
+                                               String uploadTime,Integer shipmentType) {
+        try {
+            WxMaOrderShippingInfoUploadRequest request = new WxMaOrderShippingInfoUploadRequest();
+            OrderKeyBean orderKeyBean = new OrderKeyBean();
+            orderKeyBean.setOrderNumberType(2);
+            orderKeyBean.setTransactionId(orderInfo.getTransactionId());
+            request.setOrderKey(orderKeyBean);
+            request.setDeliveryMode(1);
+            if(shipmentType == 1){//线上
+                request.setLogisticsType(1);
+            }else {//用户自提
+                request.setLogisticsType(4);
+            }
+
+            List<ShippingListBean> shippingList = new ArrayList<>(orderDetails.size());
+            ShippingListBean shippingListBean = null;
+            for (FsStoreOrderCodeOpenIdVo detail : orderDetails) {
+                if (shippingListBean == null) {
+                    shippingListBean = new ShippingListBean();
+                    shippingListBean.setTrackingNo(dto.getDeliveryId());
+                    shippingListBean.setExpressCompany(dto.getDeliverySn());
+                    JSONObject js = JSON.parseObject(detail.getJsonInfo());
+                    shippingListBean.setItemDesc(js.getString("productName"));
+                    ContactBean contactBean = new ContactBean();
+                    contactBean.setReceiverContact(detail.getPhone());
+                    shippingListBean.setContact(contactBean);
+                } else {
+                    //拼接
 //                    JSONObject js = JSON.parseObject(detail.getJsonInfo());
-//                    shippingListBean.setItemDesc(js.getString("productName"));
-//                    ContactBean contactBean = new ContactBean();
-//                    contactBean.setReceiverContact(detail.getPhone());
-//                    shippingListBean.setContact(contactBean);
-//                } else {
-//                    //拼接
-////                    JSONObject js = JSON.parseObject(detail.getJsonInfo());
-////                    shippingListBean.setItemDesc(shippingListBean.getItemDesc()+"-"+js.getString("productName"));
-//                    break;
-//                }
-//            }
-//            shippingList.add(shippingListBean);
-//            request.setShippingList(shippingList);
-//            request.setUploadTime(uploadTime);
-//            // 设置支付者信息
-//            PayerBean payerBean = new PayerBean();
-//            payerBean.setOpenid(orderInfo.getOpenId());
-//            request.setPayer(payerBean);
-//
-//            // 上传物流信息
-//            return wxService.getWxMaOrderShippingService().upload(request).getErrCode() == 0;
-//        } catch (Exception e) {
-//            log.error("上传物流信息到微信失败,订单号: {}", dto.getOrderNumber(), e);
-//            return false;
+//                    shippingListBean.setItemDesc(shippingListBean.getItemDesc()+"-"+js.getString("productName"));
+                    break;
+                }
+            }
+            shippingList.add(shippingListBean);
+            request.setShippingList(shippingList);
+            request.setUploadTime(uploadTime);
+            // 设置支付者信息
+            PayerBean payerBean = new PayerBean();
+            payerBean.setOpenid(orderInfo.getOpenId());
+            request.setPayer(payerBean);
+
+            // 上传物流信息
+            return wxService.getWxMaOrderShippingService().upload(request).getErrCode() == 0;
+        } catch (Exception e) {
+            log.error("上传物流信息到微信失败,订单号: {}", dto.getOrderNumber(), e);
+            return false;
+        }
+    }
+
+//    private void batchUpdateDeliveryNotes(List<FsOrderDeliveryNoteDTO> list) {
+//        int batchSize = 500;
+//        int total = list.size();
+//        int batches = (total + batchSize - 1) / batchSize;
+//        for (int i = 0; i < batches; i++) {
+//            int start = i * batchSize;
+//            int end = Math.min(start + batchSize, total);
+//            List<FsOrderDeliveryNoteDTO> subList = list.subList(start, end);
+//            fsStoreOrderMapper.batchUpdateInOrderCode(subList);
 //        }
 //    }