|
|
@@ -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);
|
|
|
// }
|
|
|
// }
|
|
|
|